diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 17:14:58 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 17:14:58 +0700 |
| commit | 1ca3b3df3421961caec3b747a364071c80f5c7da (patch) | |
| tree | 6778a1f0f3f9b4c6e26d6d87ccde16e24da6c9d6 /base_accounting_kit/static | |
| parent | b57188be371d36d96caac4b8d65a40745c0e972c (diff) | |
initial commit
Diffstat (limited to 'base_accounting_kit/static')
141 files changed, 46365 insertions, 0 deletions
diff --git a/base_accounting_kit/static/description/assets/icons/chevron.png b/base_accounting_kit/static/description/assets/icons/chevron.png Binary files differnew file mode 100644 index 0000000..2089293 --- /dev/null +++ b/base_accounting_kit/static/description/assets/icons/chevron.png diff --git a/base_accounting_kit/static/description/assets/icons/cogs.png b/base_accounting_kit/static/description/assets/icons/cogs.png Binary files differnew file mode 100644 index 0000000..95d0bad --- /dev/null +++ b/base_accounting_kit/static/description/assets/icons/cogs.png diff --git a/base_accounting_kit/static/description/assets/icons/consultation.png b/base_accounting_kit/static/description/assets/icons/consultation.png Binary files differnew file mode 100644 index 0000000..8319d4b --- /dev/null +++ b/base_accounting_kit/static/description/assets/icons/consultation.png diff --git a/base_accounting_kit/static/description/assets/icons/ecom-black.png b/base_accounting_kit/static/description/assets/icons/ecom-black.png Binary files differnew file mode 100644 index 0000000..a9385ff --- /dev/null +++ b/base_accounting_kit/static/description/assets/icons/ecom-black.png diff --git a/base_accounting_kit/static/description/assets/icons/education-black.png b/base_accounting_kit/static/description/assets/icons/education-black.png Binary files differnew file mode 100644 index 0000000..3eb09b2 --- /dev/null +++ b/base_accounting_kit/static/description/assets/icons/education-black.png diff --git a/base_accounting_kit/static/description/assets/icons/hotel-black.png b/base_accounting_kit/static/description/assets/icons/hotel-black.png Binary files differnew file mode 100644 index 0000000..130f613 --- /dev/null +++ b/base_accounting_kit/static/description/assets/icons/hotel-black.png diff --git a/base_accounting_kit/static/description/assets/icons/license.png b/base_accounting_kit/static/description/assets/icons/license.png Binary files differnew file mode 100644 index 0000000..a586979 --- /dev/null +++ b/base_accounting_kit/static/description/assets/icons/license.png diff --git a/base_accounting_kit/static/description/assets/icons/lifebuoy.png b/base_accounting_kit/static/description/assets/icons/lifebuoy.png Binary files differnew file mode 100644 index 0000000..658d56c --- /dev/null +++ b/base_accounting_kit/static/description/assets/icons/lifebuoy.png diff --git a/base_accounting_kit/static/description/assets/icons/manufacturing-black.png b/base_accounting_kit/static/description/assets/icons/manufacturing-black.png Binary files differnew file mode 100644 index 0000000..697eb0e --- /dev/null +++ b/base_accounting_kit/static/description/assets/icons/manufacturing-black.png diff --git a/base_accounting_kit/static/description/assets/icons/pos-black.png b/base_accounting_kit/static/description/assets/icons/pos-black.png Binary files differnew file mode 100644 index 0000000..97c0f90 --- /dev/null +++ b/base_accounting_kit/static/description/assets/icons/pos-black.png diff --git a/base_accounting_kit/static/description/assets/icons/puzzle.png b/base_accounting_kit/static/description/assets/icons/puzzle.png Binary files differnew file mode 100644 index 0000000..65cf854 --- /dev/null +++ b/base_accounting_kit/static/description/assets/icons/puzzle.png diff --git a/base_accounting_kit/static/description/assets/icons/restaurant-black.png b/base_accounting_kit/static/description/assets/icons/restaurant-black.png Binary files differnew file mode 100644 index 0000000..4a35eb9 --- /dev/null +++ b/base_accounting_kit/static/description/assets/icons/restaurant-black.png diff --git a/base_accounting_kit/static/description/assets/icons/service-black.png b/base_accounting_kit/static/description/assets/icons/service-black.png Binary files differnew file mode 100644 index 0000000..301ab51 --- /dev/null +++ b/base_accounting_kit/static/description/assets/icons/service-black.png diff --git a/base_accounting_kit/static/description/assets/icons/trading-black.png b/base_accounting_kit/static/description/assets/icons/trading-black.png Binary files differnew file mode 100644 index 0000000..9398ba2 --- /dev/null +++ b/base_accounting_kit/static/description/assets/icons/trading-black.png diff --git a/base_accounting_kit/static/description/assets/icons/training.png b/base_accounting_kit/static/description/assets/icons/training.png Binary files differnew file mode 100644 index 0000000..884ca02 --- /dev/null +++ b/base_accounting_kit/static/description/assets/icons/training.png diff --git a/base_accounting_kit/static/description/assets/icons/update.png b/base_accounting_kit/static/description/assets/icons/update.png Binary files differnew file mode 100644 index 0000000..ecbc5a0 --- /dev/null +++ b/base_accounting_kit/static/description/assets/icons/update.png diff --git a/base_accounting_kit/static/description/assets/icons/user.png b/base_accounting_kit/static/description/assets/icons/user.png Binary files differnew file mode 100644 index 0000000..6ffb23d --- /dev/null +++ b/base_accounting_kit/static/description/assets/icons/user.png diff --git a/base_accounting_kit/static/description/assets/icons/wrench.png b/base_accounting_kit/static/description/assets/icons/wrench.png Binary files differnew file mode 100644 index 0000000..6c04dea --- /dev/null +++ b/base_accounting_kit/static/description/assets/icons/wrench.png diff --git a/base_accounting_kit/static/description/banner.gif b/base_accounting_kit/static/description/banner.gif Binary files differnew file mode 100644 index 0000000..69bf230 --- /dev/null +++ b/base_accounting_kit/static/description/banner.gif diff --git a/base_accounting_kit/static/description/banner2.gif b/base_accounting_kit/static/description/banner2.gif Binary files differnew file mode 100644 index 0000000..cc886f8 --- /dev/null +++ b/base_accounting_kit/static/description/banner2.gif diff --git a/base_accounting_kit/static/description/banner_feb.gif b/base_accounting_kit/static/description/banner_feb.gif Binary files differnew file mode 100644 index 0000000..54b13df --- /dev/null +++ b/base_accounting_kit/static/description/banner_feb.gif diff --git a/base_accounting_kit/static/description/banner_old.gif b/base_accounting_kit/static/description/banner_old.gif Binary files differnew file mode 100644 index 0000000..7c28a18 --- /dev/null +++ b/base_accounting_kit/static/description/banner_old.gif diff --git a/base_accounting_kit/static/description/bannerold.gif b/base_accounting_kit/static/description/bannerold.gif Binary files differnew file mode 100644 index 0000000..8657655 --- /dev/null +++ b/base_accounting_kit/static/description/bannerold.gif diff --git a/base_accounting_kit/static/description/cybro_logo.png b/base_accounting_kit/static/description/cybro_logo.png Binary files differnew file mode 100644 index 0000000..bb30911 --- /dev/null +++ b/base_accounting_kit/static/description/cybro_logo.png diff --git a/base_accounting_kit/static/description/icon.png b/base_accounting_kit/static/description/icon.png Binary files differnew file mode 100644 index 0000000..c1fae4b --- /dev/null +++ b/base_accounting_kit/static/description/icon.png diff --git a/base_accounting_kit/static/description/images/accounting-dashboard.png b/base_accounting_kit/static/description/images/accounting-dashboard.png Binary files differnew file mode 100644 index 0000000..1bc4601 --- /dev/null +++ b/base_accounting_kit/static/description/images/accounting-dashboard.png diff --git a/base_accounting_kit/static/description/images/arabic.png b/base_accounting_kit/static/description/images/arabic.png Binary files differnew file mode 100644 index 0000000..4fb269f --- /dev/null +++ b/base_accounting_kit/static/description/images/arabic.png diff --git a/base_accounting_kit/static/description/images/auto_payroll_banner.png b/base_accounting_kit/static/description/images/auto_payroll_banner.png Binary files differnew file mode 100644 index 0000000..4d9844f --- /dev/null +++ b/base_accounting_kit/static/description/images/auto_payroll_banner.png diff --git a/base_accounting_kit/static/description/images/blue-pattern.png b/base_accounting_kit/static/description/images/blue-pattern.png Binary files differnew file mode 100644 index 0000000..326ceca --- /dev/null +++ b/base_accounting_kit/static/description/images/blue-pattern.png diff --git a/base_accounting_kit/static/description/images/bud_banner.png b/base_accounting_kit/static/description/images/bud_banner.png Binary files differnew file mode 100644 index 0000000..eff7d49 --- /dev/null +++ b/base_accounting_kit/static/description/images/bud_banner.png diff --git a/base_accounting_kit/static/description/images/dashboard.png b/base_accounting_kit/static/description/images/dashboard.png Binary files differnew file mode 100644 index 0000000..c12df6b --- /dev/null +++ b/base_accounting_kit/static/description/images/dashboard.png diff --git a/base_accounting_kit/static/description/images/espanol.png b/base_accounting_kit/static/description/images/espanol.png Binary files differnew file mode 100644 index 0000000..6d59179 --- /dev/null +++ b/base_accounting_kit/static/description/images/espanol.png diff --git a/base_accounting_kit/static/description/images/green-right-pattern.png b/base_accounting_kit/static/description/images/green-right-pattern.png Binary files differnew file mode 100644 index 0000000..18894ca --- /dev/null +++ b/base_accounting_kit/static/description/images/green-right-pattern.png diff --git a/base_accounting_kit/static/description/images/hero.png b/base_accounting_kit/static/description/images/hero.png Binary files differnew file mode 100644 index 0000000..848a5fd --- /dev/null +++ b/base_accounting_kit/static/description/images/hero.png diff --git a/base_accounting_kit/static/description/images/hr_acc_cc_banner.png b/base_accounting_kit/static/description/images/hr_acc_cc_banner.png Binary files differnew file mode 100644 index 0000000..471b306 --- /dev/null +++ b/base_accounting_kit/static/description/images/hr_acc_cc_banner.png diff --git a/base_accounting_kit/static/description/images/icons/ecom.png b/base_accounting_kit/static/description/images/icons/ecom.png Binary files differnew file mode 100644 index 0000000..6e720d5 --- /dev/null +++ b/base_accounting_kit/static/description/images/icons/ecom.png diff --git a/base_accounting_kit/static/description/images/icons/education.png b/base_accounting_kit/static/description/images/icons/education.png Binary files differnew file mode 100644 index 0000000..f0de98e --- /dev/null +++ b/base_accounting_kit/static/description/images/icons/education.png diff --git a/base_accounting_kit/static/description/images/icons/hotel.png b/base_accounting_kit/static/description/images/icons/hotel.png Binary files differnew file mode 100644 index 0000000..917c6a6 --- /dev/null +++ b/base_accounting_kit/static/description/images/icons/hotel.png diff --git a/base_accounting_kit/static/description/images/icons/manufacturing.png b/base_accounting_kit/static/description/images/icons/manufacturing.png Binary files differnew file mode 100644 index 0000000..68c3722 --- /dev/null +++ b/base_accounting_kit/static/description/images/icons/manufacturing.png diff --git a/base_accounting_kit/static/description/images/icons/pos.png b/base_accounting_kit/static/description/images/icons/pos.png Binary files differnew file mode 100644 index 0000000..600bfe4 --- /dev/null +++ b/base_accounting_kit/static/description/images/icons/pos.png diff --git a/base_accounting_kit/static/description/images/icons/restaurant.png b/base_accounting_kit/static/description/images/icons/restaurant.png Binary files differnew file mode 100644 index 0000000..680acf2 --- /dev/null +++ b/base_accounting_kit/static/description/images/icons/restaurant.png diff --git a/base_accounting_kit/static/description/images/icons/service.png b/base_accounting_kit/static/description/images/icons/service.png Binary files differnew file mode 100644 index 0000000..bfbe7a6 --- /dev/null +++ b/base_accounting_kit/static/description/images/icons/service.png diff --git a/base_accounting_kit/static/description/images/icons/trading.png b/base_accounting_kit/static/description/images/icons/trading.png Binary files differnew file mode 100644 index 0000000..a741219 --- /dev/null +++ b/base_accounting_kit/static/description/images/icons/trading.png diff --git a/base_accounting_kit/static/description/images/icons/update.png b/base_accounting_kit/static/description/images/icons/update.png Binary files differnew file mode 100644 index 0000000..fa10996 --- /dev/null +++ b/base_accounting_kit/static/description/images/icons/update.png diff --git a/base_accounting_kit/static/description/images/logo.png b/base_accounting_kit/static/description/images/logo.png Binary files differnew file mode 100644 index 0000000..478462d --- /dev/null +++ b/base_accounting_kit/static/description/images/logo.png diff --git a/base_accounting_kit/static/description/images/mobile_service_shop_pro_banner.png b/base_accounting_kit/static/description/images/mobile_service_shop_pro_banner.png Binary files differnew file mode 100644 index 0000000..68d1111 --- /dev/null +++ b/base_accounting_kit/static/description/images/mobile_service_shop_pro_banner.png diff --git a/base_accounting_kit/static/description/images/o_hrms_banner.gif b/base_accounting_kit/static/description/images/o_hrms_banner.gif Binary files differnew file mode 100644 index 0000000..e303923 --- /dev/null +++ b/base_accounting_kit/static/description/images/o_hrms_banner.gif diff --git a/base_accounting_kit/static/description/images/overview.jpg b/base_accounting_kit/static/description/images/overview.jpg Binary files differnew file mode 100644 index 0000000..b037fc4 --- /dev/null +++ b/base_accounting_kit/static/description/images/overview.jpg diff --git a/base_accounting_kit/static/description/images/payroll_banner.gif b/base_accounting_kit/static/description/images/payroll_banner.gif Binary files differnew file mode 100644 index 0000000..8a6949d --- /dev/null +++ b/base_accounting_kit/static/description/images/payroll_banner.gif diff --git a/base_accounting_kit/static/description/images/recurring-templates.png b/base_accounting_kit/static/description/images/recurring-templates.png Binary files differnew file mode 100644 index 0000000..dabb019 --- /dev/null +++ b/base_accounting_kit/static/description/images/recurring-templates.png diff --git a/base_accounting_kit/static/description/images/red-pattern.png b/base_accounting_kit/static/description/images/red-pattern.png Binary files differnew file mode 100644 index 0000000..cd4e6d4 --- /dev/null +++ b/base_accounting_kit/static/description/images/red-pattern.png diff --git a/base_accounting_kit/static/description/images/register-customer.png b/base_accounting_kit/static/description/images/register-customer.png Binary files differnew file mode 100644 index 0000000..e472b19 --- /dev/null +++ b/base_accounting_kit/static/description/images/register-customer.png diff --git a/base_accounting_kit/static/description/images/report-1.png b/base_accounting_kit/static/description/images/report-1.png Binary files differnew file mode 100644 index 0000000..20af8cd --- /dev/null +++ b/base_accounting_kit/static/description/images/report-1.png diff --git a/base_accounting_kit/static/description/images/report-10.png b/base_accounting_kit/static/description/images/report-10.png Binary files differnew file mode 100644 index 0000000..4e28ba9 --- /dev/null +++ b/base_accounting_kit/static/description/images/report-10.png diff --git a/base_accounting_kit/static/description/images/report-2.png b/base_accounting_kit/static/description/images/report-2.png Binary files differnew file mode 100644 index 0000000..db16470 --- /dev/null +++ b/base_accounting_kit/static/description/images/report-2.png diff --git a/base_accounting_kit/static/description/images/report-3.png b/base_accounting_kit/static/description/images/report-3.png Binary files differnew file mode 100644 index 0000000..d87e9fa --- /dev/null +++ b/base_accounting_kit/static/description/images/report-3.png diff --git a/base_accounting_kit/static/description/images/report-4.png b/base_accounting_kit/static/description/images/report-4.png Binary files differnew file mode 100644 index 0000000..4991aa0 --- /dev/null +++ b/base_accounting_kit/static/description/images/report-4.png diff --git a/base_accounting_kit/static/description/images/report-5.png b/base_accounting_kit/static/description/images/report-5.png Binary files differnew file mode 100644 index 0000000..b69a88e --- /dev/null +++ b/base_accounting_kit/static/description/images/report-5.png diff --git a/base_accounting_kit/static/description/images/report-6.png b/base_accounting_kit/static/description/images/report-6.png Binary files differnew file mode 100644 index 0000000..1794765 --- /dev/null +++ b/base_accounting_kit/static/description/images/report-6.png diff --git a/base_accounting_kit/static/description/images/report-7.png b/base_accounting_kit/static/description/images/report-7.png Binary files differnew file mode 100644 index 0000000..bae15d9 --- /dev/null +++ b/base_accounting_kit/static/description/images/report-7.png diff --git a/base_accounting_kit/static/description/images/report-8.png b/base_accounting_kit/static/description/images/report-8.png Binary files differnew file mode 100644 index 0000000..735674b --- /dev/null +++ b/base_accounting_kit/static/description/images/report-8.png diff --git a/base_accounting_kit/static/description/images/report-9.png b/base_accounting_kit/static/description/images/report-9.png Binary files differnew file mode 100644 index 0000000..a33b411 --- /dev/null +++ b/base_accounting_kit/static/description/images/report-9.png diff --git a/base_accounting_kit/static/description/images/screenshots/base_accounting_kit-11.png b/base_accounting_kit/static/description/images/screenshots/base_accounting_kit-11.png Binary files differnew file mode 100644 index 0000000..938bc64 --- /dev/null +++ b/base_accounting_kit/static/description/images/screenshots/base_accounting_kit-11.png diff --git a/base_accounting_kit/static/description/images/screenshots/base_accounting_kit-18.png b/base_accounting_kit/static/description/images/screenshots/base_accounting_kit-18.png Binary files differnew file mode 100644 index 0000000..e8d91d0 --- /dev/null +++ b/base_accounting_kit/static/description/images/screenshots/base_accounting_kit-18.png diff --git a/base_accounting_kit/static/description/images/screenshots/base_accounting_kit-21.png b/base_accounting_kit/static/description/images/screenshots/base_accounting_kit-21.png Binary files differnew file mode 100644 index 0000000..e0adc92 --- /dev/null +++ b/base_accounting_kit/static/description/images/screenshots/base_accounting_kit-21.png diff --git a/base_accounting_kit/static/description/images/screenshots/base_accounting_kit-24.png b/base_accounting_kit/static/description/images/screenshots/base_accounting_kit-24.png Binary files differnew file mode 100644 index 0000000..f139d44 --- /dev/null +++ b/base_accounting_kit/static/description/images/screenshots/base_accounting_kit-24.png diff --git a/base_accounting_kit/static/description/images/screenshots/base_accounting_kit-25.png b/base_accounting_kit/static/description/images/screenshots/base_accounting_kit-25.png Binary files differnew file mode 100644 index 0000000..f1f648f --- /dev/null +++ b/base_accounting_kit/static/description/images/screenshots/base_accounting_kit-25.png diff --git a/base_accounting_kit/static/description/images/screenshots/base_accounting_kit-3.png b/base_accounting_kit/static/description/images/screenshots/base_accounting_kit-3.png Binary files differnew file mode 100644 index 0000000..8e99b18 --- /dev/null +++ b/base_accounting_kit/static/description/images/screenshots/base_accounting_kit-3.png diff --git a/base_accounting_kit/static/description/images/screenshots/base_accounting_kit-4.png b/base_accounting_kit/static/description/images/screenshots/base_accounting_kit-4.png Binary files differnew file mode 100644 index 0000000..69e233a --- /dev/null +++ b/base_accounting_kit/static/description/images/screenshots/base_accounting_kit-4.png diff --git a/base_accounting_kit/static/description/images/screenshots/base_accounting_kit-43.png b/base_accounting_kit/static/description/images/screenshots/base_accounting_kit-43.png Binary files differnew file mode 100644 index 0000000..4de1ba3 --- /dev/null +++ b/base_accounting_kit/static/description/images/screenshots/base_accounting_kit-43.png diff --git a/base_accounting_kit/static/description/images/screenshots/base_accounting_kit-5.png b/base_accounting_kit/static/description/images/screenshots/base_accounting_kit-5.png Binary files differnew file mode 100644 index 0000000..bce4449 --- /dev/null +++ b/base_accounting_kit/static/description/images/screenshots/base_accounting_kit-5.png diff --git a/base_accounting_kit/static/description/images/screenshots/screenshot1.png b/base_accounting_kit/static/description/images/screenshots/screenshot1.png Binary files differnew file mode 100644 index 0000000..d313379 --- /dev/null +++ b/base_accounting_kit/static/description/images/screenshots/screenshot1.png diff --git a/base_accounting_kit/static/description/images/screenshots/screenshot10-can combine to one image_1.png b/base_accounting_kit/static/description/images/screenshots/screenshot10-can combine to one image_1.png Binary files differnew file mode 100644 index 0000000..1b938f7 --- /dev/null +++ b/base_accounting_kit/static/description/images/screenshots/screenshot10-can combine to one image_1.png diff --git a/base_accounting_kit/static/description/images/screenshots/screenshot10-can combine to one image_2.png b/base_accounting_kit/static/description/images/screenshots/screenshot10-can combine to one image_2.png Binary files differnew file mode 100644 index 0000000..5514e75 --- /dev/null +++ b/base_accounting_kit/static/description/images/screenshots/screenshot10-can combine to one image_2.png diff --git a/base_accounting_kit/static/description/images/screenshots/screenshot10-can combine to one image_3.png b/base_accounting_kit/static/description/images/screenshots/screenshot10-can combine to one image_3.png Binary files differnew file mode 100644 index 0000000..1c7503d --- /dev/null +++ b/base_accounting_kit/static/description/images/screenshots/screenshot10-can combine to one image_3.png diff --git a/base_accounting_kit/static/description/images/screenshots/screenshot10-can combine to one image_4.png b/base_accounting_kit/static/description/images/screenshots/screenshot10-can combine to one image_4.png Binary files differnew file mode 100644 index 0000000..2a85b21 --- /dev/null +++ b/base_accounting_kit/static/description/images/screenshots/screenshot10-can combine to one image_4.png diff --git a/base_accounting_kit/static/description/images/screenshots/screenshot10-can combine to one image_5.png b/base_accounting_kit/static/description/images/screenshots/screenshot10-can combine to one image_5.png Binary files differnew file mode 100644 index 0000000..0e6bed8 --- /dev/null +++ b/base_accounting_kit/static/description/images/screenshots/screenshot10-can combine to one image_5.png diff --git a/base_accounting_kit/static/description/images/screenshots/screenshot11.png b/base_accounting_kit/static/description/images/screenshots/screenshot11.png Binary files differnew file mode 100644 index 0000000..5c05023 --- /dev/null +++ b/base_accounting_kit/static/description/images/screenshots/screenshot11.png diff --git a/base_accounting_kit/static/description/images/screenshots/screenshot1_dasboard_arabic.png b/base_accounting_kit/static/description/images/screenshots/screenshot1_dasboard_arabic.png Binary files differnew file mode 100644 index 0000000..3a68b22 --- /dev/null +++ b/base_accounting_kit/static/description/images/screenshots/screenshot1_dasboard_arabic.png diff --git a/base_accounting_kit/static/description/images/screenshots/screenshot1_dashboard_spanish.png b/base_accounting_kit/static/description/images/screenshots/screenshot1_dashboard_spanish.png Binary files differnew file mode 100644 index 0000000..3b3ac94 --- /dev/null +++ b/base_accounting_kit/static/description/images/screenshots/screenshot1_dashboard_spanish.png diff --git a/base_accounting_kit/static/description/images/screenshots/screenshot2.png b/base_accounting_kit/static/description/images/screenshots/screenshot2.png Binary files differnew file mode 100644 index 0000000..188aa56 --- /dev/null +++ b/base_accounting_kit/static/description/images/screenshots/screenshot2.png diff --git a/base_accounting_kit/static/description/images/screenshots/screenshot3.png b/base_accounting_kit/static/description/images/screenshots/screenshot3.png Binary files differnew file mode 100644 index 0000000..38687b5 --- /dev/null +++ b/base_accounting_kit/static/description/images/screenshots/screenshot3.png diff --git a/base_accounting_kit/static/description/images/screenshots/screenshot4.png b/base_accounting_kit/static/description/images/screenshots/screenshot4.png Binary files differnew file mode 100644 index 0000000..5ae1dd6 --- /dev/null +++ b/base_accounting_kit/static/description/images/screenshots/screenshot4.png diff --git a/base_accounting_kit/static/description/images/screenshots/screenshot5.png b/base_accounting_kit/static/description/images/screenshots/screenshot5.png Binary files differnew file mode 100644 index 0000000..7b8400b --- /dev/null +++ b/base_accounting_kit/static/description/images/screenshots/screenshot5.png diff --git a/base_accounting_kit/static/description/images/screenshots/screenshot6.png b/base_accounting_kit/static/description/images/screenshots/screenshot6.png Binary files differnew file mode 100644 index 0000000..faf8567 --- /dev/null +++ b/base_accounting_kit/static/description/images/screenshots/screenshot6.png diff --git a/base_accounting_kit/static/description/images/screenshots/screenshot7-can combine to one image_1.png b/base_accounting_kit/static/description/images/screenshots/screenshot7-can combine to one image_1.png Binary files differnew file mode 100644 index 0000000..11ce99b --- /dev/null +++ b/base_accounting_kit/static/description/images/screenshots/screenshot7-can combine to one image_1.png diff --git a/base_accounting_kit/static/description/images/screenshots/screenshot7-can combine to one image_2.png b/base_accounting_kit/static/description/images/screenshots/screenshot7-can combine to one image_2.png Binary files differnew file mode 100644 index 0000000..5853475 --- /dev/null +++ b/base_accounting_kit/static/description/images/screenshots/screenshot7-can combine to one image_2.png diff --git a/base_accounting_kit/static/description/images/screenshots/screenshot7-can combine to one image_3.png b/base_accounting_kit/static/description/images/screenshots/screenshot7-can combine to one image_3.png Binary files differnew file mode 100644 index 0000000..e57ebb1 --- /dev/null +++ b/base_accounting_kit/static/description/images/screenshots/screenshot7-can combine to one image_3.png diff --git a/base_accounting_kit/static/description/images/screenshots/screenshot7-can combine to one image_4.png b/base_accounting_kit/static/description/images/screenshots/screenshot7-can combine to one image_4.png Binary files differnew file mode 100644 index 0000000..6097fb0 --- /dev/null +++ b/base_accounting_kit/static/description/images/screenshots/screenshot7-can combine to one image_4.png diff --git a/base_accounting_kit/static/description/images/screenshots/screenshot8.png b/base_accounting_kit/static/description/images/screenshots/screenshot8.png Binary files differnew file mode 100644 index 0000000..be04fc9 --- /dev/null +++ b/base_accounting_kit/static/description/images/screenshots/screenshot8.png diff --git a/base_accounting_kit/static/description/images/screenshots/screenshot9.png b/base_accounting_kit/static/description/images/screenshots/screenshot9.png Binary files differnew file mode 100644 index 0000000..1abf52d --- /dev/null +++ b/base_accounting_kit/static/description/images/screenshots/screenshot9.png diff --git a/base_accounting_kit/static/description/images/swiss-flag.png b/base_accounting_kit/static/description/images/swiss-flag.png Binary files differnew file mode 100644 index 0000000..1a22e4c --- /dev/null +++ b/base_accounting_kit/static/description/images/swiss-flag.png diff --git a/base_accounting_kit/static/description/images/trophy.png b/base_accounting_kit/static/description/images/trophy.png Binary files differnew file mode 100644 index 0000000..a5496a8 --- /dev/null +++ b/base_accounting_kit/static/description/images/trophy.png diff --git a/base_accounting_kit/static/description/images/yellow-pattern.png b/base_accounting_kit/static/description/images/yellow-pattern.png Binary files differnew file mode 100644 index 0000000..6b5dec4 --- /dev/null +++ b/base_accounting_kit/static/description/images/yellow-pattern.png diff --git a/base_accounting_kit/static/description/index.html b/base_accounting_kit/static/description/index.html new file mode 100644 index 0000000..f370921 --- /dev/null +++ b/base_accounting_kit/static/description/index.html @@ -0,0 +1,948 @@ +<div class="container" style="padding: 1rem !important; margin-bottom: 1.5rem !important;">
+ <div class="row">
+ <div class="col-sm-12 col-md-12 col-lg-12 d-flex justify-content-between"
+ style="border-bottom: 1px solid #d5d5d5;">
+ <div class="my-3">
+ <img src="./images/logo.png" style="width: auto !important; height: 40px !important;">
+ </div>
+ <div class="my-3 d-flex align-items-center">
+ <div
+ style="background-color: #7C7BAD !important; color: #fff !important; font-weight: 600 !important; padding: 5px 15px 8px !important; margin: 0 5px !important;">
+ <i class="fa fa-check mr-1"></i>Community
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+
+<!-- HERO -->
+<section class="container oe_container" style="padding: 3em 3.5rem; background-color: #fff ; border-radius: 15px;">
+ <div class="row">
+ <div class="col-lg-12 d-flex flex-column justify-content-center">
+ <h1 class="text-center" style="font-family: Montserrat, 'sans-serif'; font-weight: 800; color:#0a1e2c;">
+ Odoo 14
+ Accounting Kit</h1>
+ <p class="lead text-center" style="color: #102e42;">A full-fledged accounting kit for every
+ organization.</p>
+ <hr style="background-color: #0984e3; border: 2px solid #0984e3; width: 100px;" ;>
+ <img class="mt-4" src="./images/hero.png" height="350px" width="auto">
+ </div>
+ </div>
+</section>
+<!-- END OF HERO -->
+<!-- START OF UPDATES -->
+<section class="container oe_container" style="padding: 3em 3.5rem; background-color: #fff ;">
+ <div class="row" style="margin-top: 2rem;">
+ <div class="col-lg-12">
+ <div class="d-flex align-itmes-center" style=" border-bottom: 2px solid #0a1e2c; padding-bottom: 5px;">
+ <img class="mr-1" src="./images/icons/update.png" style="height: 28px; width: auto;">
+ <h5 class="font-weight-bold "
+ style="font-size: 0.9375rem; font-family: Montserrat,'sans-serif'; color: #0a1e2c; margin-top: 0.3rem">
+ Latest Updates</h5>
+ </div>
+ </div>
+ <div class="col-lg-6">
+ <div class="mt-3">
+ <ul style="list-style: none !important; padding-left: 0;">
+ <li class="deep-1 font-weight-bold"
+ style="font-family: Montserrat, 'sans-serif'; font-size: 0.9125rem; background-color: #fff; padding: 0.5rem 1rem; border-radius: 5px; color: #102e42; list-style: none !important;">
+ <i class="fa fa-files-o mr-2"></i>Multiple Invoice Copies Option Added
+ </li>
+
+ <li class="deep-1 mt-2 font-weight-bold"
+ style="font-family: Montserrat, 'sans-serif'; font-size: 0.9125rem; background-color: #fff; padding: 0.5rem 1rem; border-radius: 5px; color: #102e42; list-style: none !important;">
+ <i class="fa fa-language mr-2"></i>Translations Added
+ <ul class="mt-1" style="list-style: none !important; font-size: 0.8rem; padding-left: 1.3rem;">
+ <li><i class="fa fa-check mt-3 mr-1"></i> Arabic</li>
+ <li><i class="fa fa-check mt-3 mr-1"></i> German (CH) / Deutsch (CH)</li>
+ <li><i class="fa fa-check mt-3 mr-1"></i> Spanish (AR) / Espanol (AR)</li>
+ <li><i class="fa fa-check mt-3 mr-1"></i> French (BE) / Francais (BE)</li>
+ <li><i class="fa fa-check mt-3 mr-1"></i> Ukrainian</li>
+ <li><i class="fa fa-check mt-3 mr-1"></i> Chinese (HK)</li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <div class="col-lg-6">
+ <div class="mt-3">
+ <ul style="list-style: none !important; padding-left: 0;">
+ <li class="deep-1 mt-2 font-weight-bold"
+ style="font-family: Montserrat, 'sans-serif'; font-size: 0.9125rem; background-color: #fff; padding: 0.5rem 1rem; border-radius: 5px; color: #102e42;">
+ <i class="fa fa-random mr-2"></i>Reconciliation Widget Added
+ </li>
+ <li class="deep-1 mt-2 font-weight-bold"
+ style="font-family: Montserrat, 'sans-serif'; font-size: 0.9125rem; background-color: #fff; padding: 0.5rem 1rem; border-radius: 5px; color: #102e42;">
+ <i class="fa fa-pie-chart mr-2"></i>Payments Matching
+ option in Journal Overview
+ </li>
+ <li class="deep-1 mt-2 font-weight-bold"
+ style="font-family: Montserrat, 'sans-serif'; font-size: 0.9125rem; background-color: #fff; padding: 0.5rem 1rem; border-radius: 5px; color: #102e42;">
+ <i class="fa fa-money mr-2"></i>Payments Matching
+ button Payment Form
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+</section>
+<!-- END OF UPDATES -->
+<!-- OVERVIEW -->
+<div class="container oe_container">
+ <div class="row" style="margin-top: 3rem;">
+ <div class="col-lg-6" style="background-color: #fff;">
+ <img src="./images/overview.jpg" width="512px" height="auto">
+ </div>
+ <div class="col-lg-6 px-4 py-3" style="background-color: #fff;">
+ <h4>Overview</h4>
+ <hr style="background-color: #0984e3; border: 2px solid #0984e3; width: 50px; margin-left: 0" ;>
+ <p style="font-size: 0.9rem; line-height: 1.6; font-family: Roboto, 'sans-serif'; color: #636e72;">
+ Accounting in odoo is sufficient for any organization to meet all their needs related to
+ accounting.
+ As you know for any organization, accounting is one of the most important processes in order to
+ run
+ the company without any financial losses. Odoo accounting is connected with all the other apps
+ such
+ as sales, purchase, inventory and more.
+
+ In community edition, we have only limited features available under Odoo accounting. Here comes
+ the
+ use of the module Odoo14 Full Accounting Kit by Cybrosys Technologies which is built under the
+ V14
+ platform. This module will bring back the accounting features such as Asset management,
+ Accounting
+ Reports, PDC Management, Account Lock dates, Multiple Invoice Copies, Customer Credit Limit, and
+ Follow-Ups, Daybook, Bankbook, and Cashbook reports.
+ </p>
+ </div>
+
+ </div>
+</div>
+<!-- END OF OVERVIEW -->
+
+<!-- ALL FEATURES -->
+<section class="container oe_container">
+ <div class="row" style="margin-top: 3rem;">
+ <div class="col-lg-12 d-flex justify-content-center">
+ <h4 class="font-weight-bold" style="color: #0a1e2c;">All Features</h4>
+ </div>
+ <div class="col-lg-4 mt-4">
+ <div class="px-3 pt-3 my-2 d-flex align-itmes-center"
+ style="background-color: #fff; border: 1px solid #d5d5d5; border-radius: 5px;">
+ <i class="fa fa-check-circle mt-1 mr-2 deep-1" style="color: #27ae60; font-size: 1.3rem;"></i>
+ <p style="color: #102e42; font-weight: 500; margin-top: 1px;">Multiple Invoice Copies Option</p>
+ </div>
+
+ <div class="px-3 pt-3 my-2 d-flex align-itmes-center"
+ style="background-color: #fff; border: 1px solid #d5d5d5; border-radius: 5px;">
+ <i class="fa fa-check-circle mt-1 mr-2 deep-1" style="color: #27ae60; font-size: 1.3rem;"></i>
+ <p style="color: #102e42; font-weight: 500; margin-top: 1px;">Reconciliation Widget</p>
+ </div>
+
+ <div class="px-3 pt-3 my-2 d-flex align-itmes-center"
+ style="background-color: #fff; border: 1px solid #d5d5d5; border-radius: 5px;">
+ <i class="fa fa-check-circle mt-1 mr-2 deep-1" style="color: #27ae60; font-size: 1.3rem;"></i>
+ <p style="color: #102e42; font-weight: 500; margin-top: 1px;">Accounting Dashboard with all
+ necessary details</p>
+ </div>
+
+ <div class="px-3 pt-3 my-2 d-flex align-itmes-center"
+ style="background-color: #fff; border: 1px solid #d5d5d5; border-radius: 5px;">
+ <i class="fa fa-check-circle mt-1 mr-2 deep-1" style="color: #27ae60; font-size: 1.3rem;"></i>
+ <p style="color: #102e42; font-weight: 500; margin-top: 1px;">Manage Customer follow-ups</p>
+ </div>
+
+ <div class="px-3 pt-3 my-2 d-flex align-itmes-center"
+ style="background-color: #fff; border: 1px solid #d5d5d5; border-radius: 5px;">
+ <i class="fa fa-check-circle mt-1 mr-2 deep-1" style="color: #27ae60; font-size: 1.3rem;"></i>
+ <p style="color: #102e42; font-weight: 500; margin-top: 1px;">PDC management is now in</p>
+ </div>
+
+ <div class="px-3 pt-3 my-2 d-flex align-itmes-center"
+ style="background-color: #fff; border: 1px solid #d5d5d5; border-radius: 5px;">
+ <i class="fa fa-check-circle mt-1 mr-2 deep-1" style="color: #27ae60; font-size: 1.3rem;"></i>
+ <p style="color: #102e42; font-weight: 500; margin-top: 1px;">Accounting lock dates for Odoo 14
+ community edition</p>
+ </div>
+
+ </div>
+
+ <div class="col-lg-4 mt-4">
+ <div class="px-3 pt-3 my-2 d-flex align-itmes-center"
+ style="background-color: #fff; border: 1px solid #d5d5d5; border-radius: 5px;">
+ <i class="fa fa-check-circle mt-1 mr-2 deep-1" style="color: #27ae60; font-size: 1.3rem;"></i>
+ <p style="color: #102e42; font-weight: 500; margin-top: 1px;">Customer credit limit</p>
+ </div>
+
+ <div class="px-3 pt-3 my-2 d-flex align-itmes-center"
+ style="background-color: #fff; border: 1px solid #d5d5d5; border-radius: 5px;">
+ <i class="fa fa-check-circle mt-1 mr-2 deep-1" style="color: #27ae60; font-size: 1.3rem;"></i>
+ <p style="color: #102e42; font-weight: 500; margin-top: 1px;">Handle Recurring payments in Odoo
+ </p>
+ </div>
+
+ <div class="px-3 pt-3 my-2 d-flex align-itmes-center"
+ style="background-color: #fff; border: 1px solid #d5d5d5; border-radius: 5px;">
+ <i class="fa fa-check-circle mt-1 mr-2 deep-1" style="color: #27ae60; font-size: 1.3rem;"></i>
+ <p style="color: #102e42; font-weight: 500; margin-top: 1px;">Asset management system for Odoo
+ 14 community edition</p>
+ </div>
+
+ <div class="px-3 pt-3 my-2 d-flex align-itmes-center"
+ style="background-color: #fff; border: 1px solid #d5d5d5; border-radius: 5px;">
+ <i class="fa fa-check-circle mt-1 mr-2 deep-1" style="color: #27ae60; font-size: 1.3rem;"></i>
+ <p style="color: #102e42; font-weight: 500; margin-top: 1px;">Multiple Invoice Copies</p>
+ </div>
+
+ <div class="px-3 pt-3 my-2 d-flex align-itmes-center"
+ style="background-color: #fff; border: 1px solid #d5d5d5; border-radius: 5px;">
+ <i class="fa fa-check-circle mt-1 mr-2 deep-1" style="color: #27ae60; font-size: 1.3rem;"></i>
+ <p style="color: #102e42; font-weight: 500; margin-top: 1px;">Day book, Bank book and Cash book
+ reports</p>
+ </div>
+
+ <div class="px-3 pt-3 my-2 d-flex align-itmes-center"
+ style="background-color: #fff; border: 1px solid #d5d5d5; border-radius: 5px;">
+ <i class="fa fa-check-circle mt-1 mr-2 deep-1" style="color: #27ae60; font-size: 1.3rem;"></i>
+ <p style="color: #102e42; font-weight: 500; margin-top: 1px;">Financial reports</p>
+ </div>
+
+ </div>
+
+ <div class="col-lg-4 mt-4">
+
+ <div class="px-3 pt-3 my-2 d-flex align-itmes-center"
+ style="background-color: #fff; border: 1px solid #d5d5d5; border-radius: 5px;">
+ <i class="fa fa-check-circle mt-1 mr-2 deep-1" style="color: #27ae60; font-size: 1.3rem;"></i>
+ <p style="color: #102e42; font-weight: 500; margin-top: 1px;">Trial balance report</p>
+ </div>
+
+ <div class="px-3 pt-3 my-2 d-flex align-itmes-center"
+ style="background-color: #fff; border: 1px solid #d5d5d5; border-radius: 5px;">
+ <i class="fa fa-check-circle mt-1 mr-2 deep-1" style="color: #27ae60; font-size: 1.3rem;"></i>
+ <p style="color: #102e42; font-weight: 500; margin-top: 1px;">Journal audit report</p>
+ </div>
+
+ <div class="px-3 pt-3 my-2 d-flex align-itmes-center"
+ style="background-color: #fff; border: 1px solid #d5d5d5; border-radius: 5px;">
+ <i class="fa fa-check-circle mt-1 mr-2 deep-1" style="color: #27ae60; font-size: 1.3rem;"></i>
+ <p style="color: #102e42; font-weight: 500; margin-top: 1px;">General ledger report</p>
+ </div>
+
+ <div class="px-3 pt-3 my-2 d-flex align-itmes-center"
+ style="background-color: #fff; border: 1px solid #d5d5d5; border-radius: 5px;">
+ <i class="fa fa-check-circle mt-1 mr-2 deep-1" style="color: #27ae60; font-size: 1.3rem;"></i>
+ <p style="color: #102e42; font-weight: 500; margin-top: 1px;">Partner ledger report</p>
+ </div>
+
+ <div class="px-3 pt-3 my-2 d-flex align-itmes-center"
+ style="background-color: #fff; border: 1px solid #d5d5d5; border-radius: 5px;">
+ <i class="fa fa-check-circle mt-1 mr-2 deep-1" style="color: #27ae60; font-size: 1.3rem;"></i>
+ <p style="color: #102e42; font-weight: 500; margin-top: 1px;">Aged partner balance</p>
+ </div>
+
+ <div class="px-3 pt-3 my-2 d-flex align-itmes-center"
+ style="background-color: #fff; border: 1px solid #d5d5d5; border-radius: 5px;">
+ <i class="fa fa-check-circle mt-1 mr-2 deep-1" style="color: #27ae60; font-size: 1.3rem;"></i>
+ <p style="color: #102e42; font-weight: 500; margin-top: 1px;">Tax reports</p>
+ </div>
+ </div>
+ </div>
+</section>
+<!-- END OF ALL FEATURES -->
+
+<!-- FEATURE BLOCKS -->
+<section class="container oe_container">
+ <!-- TWO COLUMNS -->
+ <div class="row">
+ <div class="col-lg-6 my-4">
+ <div class="deep-2"
+ style="background-color: #fff; background-image: url('./images/yellow-pattern.png'); background-position: bottom; background-size: cover; background-repeat: no-repeat ; padding: 2rem 2.5rem; border-radius: 15px;">
+ <h5 style="font-family: Montserrat, 'sans-serif';">Arabic RTL Support</h5>
+ <hr style="background-color: #0984e3; border: 2px solid #0984e3; width: 50px; margin-left: 0" ;>
+ <p class="lead" style="font-style: Roboto, 'sans-serif'; color: #636e72; font-size: 0.9125rem;">
+ Added Translations for Arabic.
+ </p>
+ <img src="./images/arabic.png" height="400px" width="auto" style="margin-left: -20px;">
+ </div>
+ </div>
+ <div class="col-lg-6 my-4">
+ <div class="deep-2"
+ style="background-color: #fff; background-image: url('./images/blue-pattern.png'); background-position: bottom; background-size: cover; background-repeat: no-repeat ; padding: 2rem 2.5rem; border-radius: 15px;">
+ <h5 style="font-family: Montserrat, 'sans-serif';">Multiple Language Support</h5>
+ <hr style="background-color: #0984e3; border: 2px solid #0984e3; width: 50px; margin-left: 0" ;>
+ <p class="lead" style="font-style: Roboto, 'sans-serif'; color: #636e72; font-size: 0.9125rem;">
+ Added Translations for German,Spanish,French,Ukrainian,Chinese.
+ </p>
+ <img src="./images/espanol.png" height="400px" width="auto" style="margin-left: -20px;">
+ </div>
+ </div>
+ </div>
+ <!-- END OF TWO BLOCKS -->
+ <!-- START OF SINGLE BLOCK -->
+ <div class="row">
+ <div class="col-lg-12 my-4">
+ <div class="deep-2" style="background-color: #fff; padding: 2rem 2.5rem; border-radius: 15px;">
+ <div class="row">
+ <div class="col-lg-7 d-flex flex-column justify-content-center">
+ <h5 style="font-family: Montserrat, 'sans-serif';">Detailed Dashboard</h5>
+ <hr style="background-color: #0984e3; border: 2px solid #0984e3; width: 50px; margin-left: 0" ;>
+ <p class="lead" style="font-style: Roboto, 'sans-serif'; color: #636e72; font-size: 0.9125rem;">
+ The Dashboard support report overview for Invoices,Income/Expense,Aged and for other
+ Reports
+ </p>
+ </div>
+ <div class="col-lg-5"
+ style="background-image: url('./images/green-right-pattern.png'); background-position: right center; background-size: cover; background-repeat: no-repeat ; ">
+ <img src="./images/dashboard.png" height="400px" width="auto" style="margin-left: -20px;">
+ </div>
+ </div>
+
+ </div>
+ </div>
+ </div>
+ <!-- END OF SINGLE BLOCK -->
+
+ <!-- THREE COLUMNS -->
+ <div class="row">
+ <div class="col-lg-4 my-4">
+ <div class="deep-2"
+ style="height: 450px; background-color: #fff; background-image: url('./images/yellow-pattern.png'); background-position: bottom; background-size: cover; background-repeat: no-repeat ; padding: 2rem 2.5rem; border-radius: 15px;">
+ <h5 style="font-family: Montserrat, 'sans-serif';">Accounting Dashboard</h5>
+ <hr style="background-color: #0984e3; border: 2px solid #0984e3; width: 50px; margin-left: 0" ;>
+ <p class="lead" style="font-style: Roboto, 'sans-serif'; color: #636e72; font-size: 0.9125rem;">
+ Accounting Dashboard that supports shows reports overview.
+ </p>
+ <img src="./images/accounting-dashboard.png" height="250px" width="auto" style="margin-left: -20px;">
+ </div>
+ </div>
+ <div class="col-lg-4 my-4">
+ <div class="deep-2"
+ style="height: 450px; background-color: #fff; background-image: url('./images/red-pattern.png'); background-position: bottom; background-size: cover; background-repeat: no-repeat ; padding: 2rem 2.5rem; border-radius: 15px;">
+ <h5 style="font-family: Montserrat, 'sans-serif';">Customer Follow-Ups</h5>
+ <hr style="background-color: #0984e3; border: 2px solid #0984e3; width: 50px; margin-left: 0" ;>
+ <p class="lead" style="font-style: Roboto, 'sans-serif'; color: #636e72; font-size: 0.9125rem;">
+ Set up customer follow-ups.
+ </p>
+ <img src="./images/register-customer.png" height="250px" width="auto" style="margin-left: -20px;">
+ </div>
+ </div>
+ <div class="col-lg-4 my-4">
+ <div class="deep-2"
+ style="height: 450px; background-color: #fff; background-image: url('./images/blue-pattern.png'); background-position: bottom; background-size: cover; background-repeat: no-repeat ; padding: 2rem 2.5rem; border-radius: 15px;">
+ <h5 style="font-family: Montserrat, 'sans-serif';">Recurring Templates</h5>
+ <hr style="background-color: #0984e3; border: 2px solid #0984e3; width: 50px; margin-left: 0" ;>
+ <p class="lead" style="font-style: Roboto, 'sans-serif'; color: #636e72; font-size: 0.9125rem;">
+ Used for recurring payments.
+ </p>
+ <img src="./images/recurring-templates.png" height="250px" width="auto" style="margin-left: -20px;">
+ </div>
+ </div>
+ </div>
+ <!-- END OF THREE BLOCKS -->
+
+</section>
+<!-- END OF FEATURE BLOCKS -->
+
+</div>
+
+
+<!-- REPORT SECTION -->
+<section class="container oe_container mt-4">
+ <div class="row" style="display: flex;">
+ <div class="col-lg-12 my-4">
+ <h5 class="text-center" style="font-family: Montserrat, 'sans-serif';">Comprehensive Reports</h5>
+ <hr style="background-color: #0984e3; border: 2px solid #0984e3; width: 50px;" ;>
+ </div>
+ <div class="col-lg-6 d-flex flex-column justify-content-center align-itmes-center">
+ <img class="img img-fluid" src="./images/report-1.png" height="300px" width="auto">
+ <h6 class="mt-4 text-center">Invoice</h6>
+ <hr style="border: 2px solid #27ae60; width: 50px; margin-top: 5px;">
+ <p class="text-center" style="color: #636e72; font-size: 0.9rem"></p>
+ </div>
+
+ <div class="col-lg-6 d-flex flex-column justify-content-center align-itmes-center">
+ <img class="img img-fluid" src="./images/report-2.png" height="300px" width="auto">
+ <h6 class="mt-4 text-center">Bank Book Report</h6>
+ <hr style="border: 2px solid #f39c12; width: 50px; margin-top: 5px;">
+ <p class="text-center" style="color: #636e72; font-size: 0.9rem"></p>
+ </div>
+
+ <div class="col-lg-6 d-flex flex-column justify-content-center align-itmes-center">
+ <img class="img img-fluid" src="./images/report-3.png" height="300px" width="auto">
+ <h6 class="mt-4 text-center">Cash Book Report</h6>
+ <hr style="border: 2px solid #c0392b; width: 50px; margin-top: 5px;">
+ <p class="text-center" style="color: #636e72; font-size: 0.9rem"></p>
+ </div>
+
+ <div class="col-lg-6 d-flex flex-column justify-content-center align-itmes-center">
+ <img class="img img-fluid" src="./images/report-4.png" height="300px" width="auto">
+ <h6 class="mt-4 text-center">Day Book Reporting</h6>
+ <hr style="border: 2px solid #8e44ad; width: 50px; margin-top: 5px;">
+ <p class="text-center" style="color: #636e72; font-size: 0.9rem"></p>
+ </div>
+
+ <div class="col-lg-6 d-flex flex-column justify-content-center align-itmes-center">
+ <img class="img img-fluid" src="./images/report-5.png" height="300px" width="auto">
+ <h6 class="mt-4 text-center">Cash Flow Statement</h6>
+ <hr style="border: 2px solid #0984e3; width: 50px; margin-top: 5px;">
+ <p class="text-center" style="color: #636e72; font-size: 0.9rem"></p>
+ </div>
+
+ <div class="col-lg-6 d-flex flex-column justify-content-center align-itmes-center">
+ <img class="img img-fluid" src="./images/report-6.png" height="300px" width="auto">
+ <h6 class="mt-4 text-center">General Ledger</h6>
+ <hr style="border: 2px solid #e84393; width: 50px; margin-top: 5px;">
+ <p class="text-center" style="color: #636e72; font-size: 0.9rem"></p>
+ </div>
+
+ <div class="col-lg-6 d-flex flex-column justify-content-center align-itmes-center">
+ <img class="img img-fluid" src="./images/report-7.png" height="300px" width="auto">
+ <h6 class="mt-4 text-center">Profit and Loss</h6>
+ <hr style="border: 2px solid #f39c12; width: 50px; margin-top: 5px;">
+ <p class="text-center" style="color: #636e72; font-size: 0.9rem"></p>
+ </div>
+
+ <div class="col-lg-6 d-flex flex-column justify-content-center align-itmes-center">
+ <img class="img img-fluid" src="./images/report-8.png" height="300px" width="auto">
+ <h6 class="mt-4 text-center">Balance Sheet</h6>
+ <hr style="border: 2px solid #27ae60; width: 50px; margin-top: 5px;">
+ <p class="text-center" style="color: #636e72; font-size: 0.9rem"></p>
+ </div>
+
+ <div class="col-lg-6 d-flex flex-column justify-content-center align-itmes-center">
+ <img class="img img-fluid" src="./images/report-9.png" height="300px" width="auto">
+ <h6 class="mt-4 text-center">Trial Balance</h6>
+ <hr style="border: 2px solid #c0392b; width: 50px; margin-top: 5px;">
+ <p class="text-center" style="color: #636e72; font-size: 0.9rem"></p>
+ </div>
+ <div class="col-lg-6 d-flex flex-column justify-content-center align-itmes-center">
+ <img class="img img-fluid" src="./images/report-10.png" height="300px" width="auto">
+ <h6 class="mt-4 text-center">Tax Invoice Journal</h6>
+ <hr style="background:#0984e3; border: 2px solid #6c5ce7; width: 50px; margin-top: 5px;">
+ <p class="text-center" style="color: #636e72; font-size: 0.9rem"></p>
+ </div>
+ </div>
+</section>
+<!-- END OF REPORT SECTION -->
+
+
+<!-- SCREENSHOTS BLOCK -->
+
+<section class="oe_container mt-4" style="padding:2rem 3rem 1rem">
+ <h5 class="text-center" style="font-family: Montserrat, 'sans-serif';">Screenshots</h5>
+ <hr style="background-color: #0984e3; border: 2px solid #0984e3; width: 50px;" ;>
+ <section class="oe_container">
+ <div id="demo" class="row carousel slide mb32" data-ride="carousel">
+ <div class="carousel-inner">
+ <div class="carousel-item active" style="min-height: 0px;">
+ <div class="col-xs-12 col-sm-12 col-md-12 mb16 mt16" style="float: left;">
+ <h3 class="alert"
+ style="font-weight:400;color: #091E42;background: #fff;text-align: left;border-radius: 0; font-size: 18px;">
+ <i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i> Dashboard with
+ Necessary Details.
+ </h3>
+
+ <div style=""><img class="img img-responsive center-block"
+ style="border-top-left-radius: 10px;border-top-right-radius: 10px;"
+ src="./images/screenshots/screenshot1.png"></div>
+ </div>
+ </div>
+
+ <div class="carousel-item" style="min-height: 0px;">
+ <div class="col-xs-12 col-sm-12 col-md-12 mb16 mt16" style="float: left;">
+ <h3 class="alert"
+ style="font-weight:400;color: #091E42;background: #fff;text-align: left;border-radius: 0; font-size: 18px;">
+ <i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i>Aged Receivable,
+ Payable and Top Customer Details in Dashboard.
+ </h3>
+
+ <div style=""><img class="img img-responsive center-block"
+ style="border-top-left-radius: 10px;border-top-right-radius: 10px;"
+ src="./images/screenshots/screenshot2.png"></div>
+ </div>
+ </div>
+
+ <div class="carousel-item" style="min-height: 0px;">
+ <div class="col-xs-12 col-sm-12 col-md-12 mb16 mt16" style="float: left;">
+ <h3 class="alert"
+ style="font-weight:400;color: #091E42;background: #fff;text-align: left;border-radius: 0; font-size: 18px;">
+ <i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i> Create Assets
+ from
+ Accounting > Accounting > Assets > Create.
+ </h3>
+
+ <div style=""><img class="img img-responsive center-block"
+ style="border-top-left-radius: 10px;border-top-right-radius: 10px;"
+ src="./images/screenshots/screenshot9.png"></div>
+ </div>
+ </div>
+
+ <div class="carousel-item" style="min-height: 0px;">
+ <div class="col-xs-12 col-sm-12 col-md-12 mb16 mt16" style="float: left;">
+ <h3 class="alert"
+ style="font-weight:400;color: #091E42;background: #fff;text-align: left;border-radius: 0; font-size: 18px;">
+ <i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i> Create Asset
+ categories from Accounting > Configuration > Asset
+ Types > Create
+ option
+ </h3>
+
+ <div style=""><img class="img img-responsive center-block"
+ style="border-top-left-radius: 10px;border-top-right-radius: 10px;"
+ src="./images/screenshots/base_accounting_kit-4.png"></div>
+ </div>
+ </div>
+
+ <div class="carousel-item" style="min-height: 0px;">
+ <div class="col-xs-12 col-sm-12 col-md-12 mb16 mt16" style="float: left;">
+ <h3 class="alert"
+ style="font-weight:400;color: #091E42;background: #fff;text-align: left;border-radius: 0; font-size: 18px;">
+ <i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i>Create Asset from
+ vendor bill.
+ </h3>
+
+ <div style=""><img class="img img-responsive center-block"
+ style="border-top-left-radius: 10px;border-top-right-radius: 10px;"
+ src="./images/screenshots/base_accounting_kit-5.png"></div>
+ </div>
+ </div>
+
+ <div class="carousel-item" style="min-height: 0px;">
+ <div class="col-xs-12 col-sm-12 col-md-12 mb16 mt16" style="float: left;">
+ <h3 class="alert"
+ style="font-weight:400;color: #091E42;background: #fff;text-align: left;border-radius: 0; font-size: 18px;">
+ <i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i>Manage post dated
+ checks.
+ </h3>
+
+ <div style=""><img class="img img-responsive center-block"
+ style="border-top-left-radius: 10px;border-top-right-radius: 10px;"
+ src="./images/screenshots/base_accounting_kit-21.png"></div>
+ </div>
+ </div>
+
+ <div class="carousel-item" style="min-height: 0px;">
+ <div class="col-xs-12 col-sm-12 col-md-12 mb16 mt16" style="float: left;">
+ <h3 class="alert"
+ style="font-weight:400;color: #091E42;background: #fff;text-align: left;border-radius: 0; font-size: 18px;">
+ <i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i>Create recurring
+ templates from Accounting > Configuration >
+ Recurring Templates.
+ </h3>
+
+ <div style=""><img class="img img-responsive center-block"
+ style="border-top-left-radius: 10px;border-top-right-radius: 10px;"
+ src="./images/screenshots/base_accounting_kit-25.png"></div>
+ </div>
+ </div>
+
+ <div class="carousel-item" style="min-height: 0px;">
+ <div class="col-xs-12 col-sm-12 col-md-12 mb16 mt16" style="float: left;">
+ <h3 class="alert"
+ style="font-weight:400;color: #091E42;background: #fff;text-align: left;border-radius: 0; font-size: 18px;">
+ <i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i>Create recurring
+ templates from Accounting > Configuration >
+ Create recurring entries.
+ </h3>
+
+ <div style=""><img class="img img-responsive center-block"
+ style="border-top-left-radius: 10px;border-top-right-radius: 10px;"
+ src="./images/screenshots/base_accounting_kit-24.png"></div>
+ </div>
+ </div>
+
+ <div class="carousel-item" style="min-height: 0px;">
+ <div class="col-xs-12 col-sm-12 col-md-12 mb16 mt16" style="float: left;">
+ <h3 class="alert"
+ style="font-weight:400;color: #091E42;background: #fff;text-align: left;border-radius: 0; font-size: 18px;">
+ <i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i>Create recurring
+ templates from Accounting > Configuration >
+ Manage Customer Follow-ups from Accounting > Customers >
+ Follow-up Reports
+ </h3>
+
+ <div style=""><img class="img img-responsive center-block"
+ style="border-top-left-radius: 10px;border-top-right-radius: 10px;"
+ src="./images/screenshots/base_accounting_kit-11.png"></div>
+ </div>
+ </div>
+
+ <div class="carousel-item" style="min-height: 0px;">
+ <div class="col-xs-12 col-sm-12 col-md-12 mb16 mt16" style="float: left;">
+ <h3 class="alert"
+ style="font-weight:400;color: #091E42;background: #fff;text-align: left;border-radius: 0; font-size: 18px;">
+ <i class="fa fa-check-circle-o" style="width:40px; color:#07B700"></i>Create recurring
+ templates from Accounting > Configuration >
+ Generate accounting PDF reports from Accounting > Reporting.
+ </h3>
+
+ <div style=""><img class="img img-responsive center-block"
+ style="border-top-left-radius: 10px;border-top-right-radius: 10px;"
+ src="./images/screenshots/base_accounting_kit-43.png"></div>
+ </div>
+ </div>
+
+ </div>
+ <a class="carousel-control-prev" href="#demo" data-slide="prev" style="left:-25px;width: 35px;color: #000;">
+ <span class="carousel-control-prev-icon"><i class="fa fa-chevron-left"
+ style="font-size:24px"></i></span> </a> <a class="carousel-control-next" href="#demo"
+ data-slide="next" style="right:-25px;width: 35px;color: #000;"> <span
+ class="carousel-control-next-icon"><i class="fa fa-chevron-right" style="font-size:24px"></i></span>
+ </a>
+ </div>
+ </section>
+</section>
+
+
+<!-- END OF SCREENSHOTS BLOCK -->
+
+
+<!-- SUGGESTED PRODUCTS -->
+
+<section class="oe_container mt-4" style="padding:2rem 3rem 1rem">
+ <h5 class="text-center" style="font-family: Montserrat, 'sans-serif';">Suggested Products</h5>
+ <hr style="background-color: #0984e3; border: 2px solid #0984e3; width: 50px;" ;>
+ <div id="demo1" class="row carousel slide" data-ride="carousel">
+ <!-- The slideshow -->
+ <div class="carousel-inner">
+ <div class="carousel-item" style="min-height: 186px;">
+ <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left"><a
+ href="https://apps.odoo.com/apps/modules/14.0/mobile_service_shop_pro/" target="_blank">
+ <div style="border-radius:10px">
+ <img class="img img-responsive center-block"
+ style="border-top-left-radius:10px; border-top-right-radius:10px"
+ src="./images/mobile_service_shop_pro_banner.png">
+ </div>
+ </a></div>
+ <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left"><a
+ href="https://apps.odoo.com/apps/modules/14.0/hr_payroll_account_community/" target="_blank">
+ <div style="border-radius:10px">
+ <img class="img img-responsive center-block"
+ style="border-top-left-radius:10px; border-top-right-radius:10px"
+ src="./images/hr_acc_cc_banner.png">
+ </div>
+ </a></div>
+ <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left"><a
+ href="https://apps.odoo.com/apps/modules/14.0/hr_payroll_community/" target="_blank">
+ <div style="border-radius:10px">
+ <img class="img img-responsive center-block"
+ style="border-top-left-radius:10px; border-top-right-radius:10px"
+ src="./images/payroll_banner.gif">
+ </div>
+ </a></div>
+ </div>
+ <div class="carousel-item active" style="min-height: 186px;">
+ <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left"><a
+ href="https://apps.odoo.com/apps/modules/14.0/automatic_payroll/" target="_blank">
+ <div style="border-radius:10px">
+ <img class="img img-responsive center-block"
+ style="border-top-left-radius:10px; border-top-right-radius:10px"
+ src="./images/auto_payroll_banner.png">
+ </div>
+ </a></div>
+ <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left"><a
+ href="https://apps.odoo.com/apps/modules/14.0/ohrms_core/" target="_blank">
+ <div style="border-radius:10px">
+ <img class="img img-responsive center-block"
+ style="border-top-left-radius:10px; border-top-right-radius:10px"
+ src="./images/o_hrms_banner.gif">
+ </div>
+ </a></div>
+ <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left"><a
+ href="https://apps.odoo.com/apps/modules/14.0/base_account_budget/" target="_blank">
+ <div style="border-radius:10px">
+ <img class="img img-responsive center-block"
+ style="border-top-left-radius:10px; border-top-right-radius:10px"
+ src="./images/bud_banner.png">
+ </div>
+ </a></div>
+ </div>
+ </div>
+ <!-- Left and right controls -->
+ <a class="carousel-control-prev" href="#demo1" data-slide="prev" style="width:35px; color:#000"> <span
+ class="carousel-control-prev-icon"><i class="fa fa-chevron-left" style="font-size:24px"></i></span>
+ </a> <a class="carousel-control-next" href="#demo1" data-slide="next" style="width:35px; color:#000">
+ <span class="carousel-control-next-icon"><i class="fa fa-chevron-right" style="font-size:24px"></i></span>
+ </a>
+ </div>
+</section>
+
+<!-- END OF SUGGESTED PRODUCTS -->
+
+<!-- OUR SERVICES -->
+<section class="container" style="margin-top: 6rem !important;">
+ <div class="row">
+ <div class="col-lg-12 d-flex flex-column justify-content-center align-items-center">
+ <h5 class="text-center" style="font-family: Montserrat, 'sans-serif';">Our Services</h5>
+ <hr style="background-color: #0984e3; border: 2px solid #0984e3; width: 50px;" ;>
+ </div>
+
+ <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
+ <div class="d-flex justify-content-center align-items-center mx-3 my-3"
+ style="background-color: #1dd1a1 !important; border-radius: 15px !important; height: 80px; width: 80px;">
+ <img src="assets/icons/cogs.png" class="img-responsive" height="48px" width="48px">
+ </div>
+ <h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
+ Odoo
+ Customization</h6>
+ </div>
+
+ <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
+ <div class="d-flex justify-content-center align-items-center mx-3 my-3"
+ style="background-color: #ff6b6b !important; border-radius: 15px !important; height: 80px; width: 80px;">
+ <img src="assets/icons/wrench.png" class="img-responsive" height="48px" width="48px">
+ </div>
+ <h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
+ Odoo
+ Implementation</h6>
+ </div>
+
+ <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
+ <div class="d-flex justify-content-center align-items-center mx-3 my-3"
+ style="background-color: #6462CD !important; border-radius: 15px !important; height: 80px; width: 80px;">
+ <img src="assets/icons/lifebuoy.png" class="img-responsive" height="48px" width="48px">
+ </div>
+ <h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
+ Odoo
+ Support</h6>
+ </div>
+
+
+ <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
+ <div class="d-flex justify-content-center align-items-center mx-3 my-3"
+ style="background-color: #ffa801 !important; border-radius: 15px !important; height: 80px; width: 80px;">
+ <img src="assets/icons/user.png" class="img-responsive" height="48px" width="48px">
+ </div>
+ <h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
+ Hire
+ Odoo
+ Developer</h6>
+ </div>
+
+ <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
+ <div class="d-flex justify-content-center align-items-center mx-3 my-3"
+ style="background-color: #54a0ff !important; border-radius: 15px !important; height: 80px; width: 80px;">
+ <img src="assets/icons/puzzle.png" class="img-responsive" height="48px" width="48px">
+ </div>
+ <h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
+ Odoo
+ Integration</h6>
+ </div>
+
+ <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
+ <div class="d-flex justify-content-center align-items-center mx-3 my-3"
+ style="background-color: #6d7680 !important; border-radius: 15px !important; height: 80px; width: 80px;">
+ <img src="assets/icons/update.png" class="img-responsive" height="48px" width="48px">
+ </div>
+ <h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
+ Odoo
+ Migration</h6>
+ </div>
+
+
+ <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
+ <div class="d-flex justify-content-center align-items-center mx-3 my-3"
+ style="background-color: #786fa6 !important; border-radius: 15px !important; height: 80px; width: 80px;">
+ <img src="assets/icons/consultation.png" class="img-responsive" height="48px" width="48px">
+ </div>
+ <h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
+ Odoo
+ Consultancy</h6>
+ </div>
+
+ <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
+ <div class="d-flex justify-content-center align-items-center mx-3 my-3"
+ style="background-color: #f8a5c2 !important; border-radius: 15px !important; height: 80px; width: 80px;">
+ <img src="assets/icons/training.png" class="img-responsive" height="48px" width="48px">
+ </div>
+ <h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
+ Odoo
+ Implementation</h6>
+ </div>
+
+ <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
+ <div class="d-flex justify-content-center align-items-center mx-3 my-3"
+ style="background-color: #e6be26 !important; border-radius: 15px !important; height: 80px; width: 80px;">
+ <img src="assets/icons/license.png" class="img-responsive" height="48px" width="48px">
+ </div>
+ <h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
+ Odoo
+ Licensing Consultancy</h6>
+ </div>
+ </div>
+</section>
+<!-- END OF END OF OUR SERVICES -->
+
+<!-- OUR INDUSTRIES -->
+<section class="container" style="margin-top: 6rem !important;">
+ <div class="row">
+ <div class="col-lg-12 d-flex flex-column justify-content-center align-items-center">
+ <h5 class="text-center" style="font-family: Montserrat, 'sans-serif';">Our Industries</h5>
+ <hr style="background-color: #0984e3; border: 2px solid #0984e3; width: 50px;" ;>
+ </div>
+
+ <div class="col-lg-3">
+ <div class="my-4 d-flex flex-column justify-content-center"
+ style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
+ <img src="./assets/icons/trading-black.png" class="img-responsive mb-3" height="48px" width="48px">
+ <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
+ Trading
+ </h5>
+ <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
+ Easily procure
+ and
+ sell your products</p>
+ </div>
+ </div>
+
+ <div class="col-lg-3">
+ <div class="my-4 d-flex flex-column justify-content-center"
+ style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
+ <img src="./assets/icons/pos-black.png" class="img-responsive mb-3" height="48px" width="48px">
+ <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
+ POS
+ </h5>
+ <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
+ Easy
+ configuration
+ and convivial experience</p>
+ </div>
+ </div>
+
+ <div class="col-lg-3">
+ <div class="my-4 d-flex flex-column justify-content-center"
+ style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
+ <img src="./assets/icons/education-black.png" class="img-responsive mb-3" height="48px" width="48px">
+ <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
+ Education
+ </h5>
+ <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
+ A platform for
+ educational management</p>
+ </div>
+ </div>
+
+ <div class="col-lg-3">
+ <div class="my-4 d-flex flex-column justify-content-center"
+ style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
+ <img src="./assets/icons/manufacturing-black.png" class="img-responsive mb-3" height="48px"
+ width="48px">
+ <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
+ Manufacturing
+ </h5>
+ <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
+ Plan, track and
+ schedule your operations</p>
+ </div>
+ </div>
+
+ <div class="col-lg-3">
+ <div class="my-4 d-flex flex-column justify-content-center"
+ style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
+ <img src="./assets/icons/ecom-black.png" class="img-responsive mb-3" height="48px" width="48px">
+ <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
+ E-commerce & Website
+ </h5>
+ <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
+ Mobile
+ friendly,
+ awe-inspiring product pages</p>
+ </div>
+ </div>
+
+ <div class="col-lg-3">
+ <div class="my-4 d-flex flex-column justify-content-center"
+ style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
+ <img src="./assets/icons/service-black.png" class="img-responsive mb-3" height="48px" width="48px">
+ <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
+ Service Management
+ </h5>
+ <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
+ Keep track of
+ services and invoice</p>
+ </div>
+ </div>
+
+ <div class="col-lg-3">
+ <div class="my-4 d-flex flex-column justify-content-center"
+ style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
+ <img src="./assets/icons/restaurant-black.png" class="img-responsive mb-3" height="48px" width="48px">
+ <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
+ Restaurant
+ </h5>
+ <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
+ Run your bar or
+ restaurant methodically</p>
+ </div>
+ </div>
+
+ <div class="col-lg-3">
+ <div class="my-4 d-flex flex-column justify-content-center"
+ style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
+ <img src="./assets/icons/hotel-black.png" class="img-responsive mb-3" height="48px" width="48px">
+ <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
+ Hotel Management
+ </h5>
+ <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
+ An
+ all-inclusive
+ hotel management application</p>
+ </div>
+ </div>
+
+ </div>
+</section>
+
+<!-- END OF END OF OUR INDUSTRIES -->
+
+<!-- FOOTER -->
+<!-- Footer Section -->
+<section class="container" style="margin: 5rem auto 2rem;">
+ <div class="row" style="max-width:1540px;">
+ <div class="col-lg-12 d-flex flex-column justify-content-center align-items-center">
+ <h5 class="text-center" style="font-family: Montserrat, 'sans-serif';">Need Help?</h5>
+ <hr style="background-color: #0984e3; border: 2px solid #0984e3; width: 50px;" ;>
+ </div>
+ </div>
+
+ <!-- Contact Cards -->
+ <div class="row d-flex justify-content-center align-items-center"
+ style="max-width:1540px; margin: 0 auto 2rem auto;">
+
+ <div class="col-lg-12" style="padding: 0rem 3rem 2rem; border-radius: 10px; margin-right: 3rem; ">
+
+ <div class="row mt-4">
+ <div class="col-lg-6">
+ <a href="mailto:odoo@cybrosys.com" target="_blank" class="btn btn-block mb-2 deep_hover"
+ style="text-decoration: none; background-color: #4d4d4d; color: #FFF; border-radius: 4px;"><i
+ class="fa fa-envelope mr-2"></i>odoo@cybrosys.com</a>
+ </div>
+ <div class="col-lg-6">
+ <a href="https://api.whatsapp.com/send?phone=918606827707" target="_blank"
+ class="btn btn-block mb-2 deep_hover"
+ style="text-decoration: none; background-color: #25D366; color: #FFF; border-radius: 4px;"><i
+ class="fa fa-whatsapp mr-2"></i>WhatsApp</a>
+ </div>
+ </div>
+ </div>
+
+ </div>
+ <!-- End of Contact Cards -->
+</section>
+<!-- Footer -->
+<section class="oe_container" style="padding: 2rem 3rem 1rem;">
+ <div class="row" style="max-width:1540px; margin: 0 auto; margin-right: 3rem; ">
+ <!-- Logo -->
+ <div class="col-lg-12 d-flex justify-content-center align-items-center" style="margin-top: 3rem;">
+ <img src="https://www.cybrosys.com/images/logo.png" width="200px" height="auto" />
+ </div>
+ <!-- End of Logo -->
+ <div class="col-lg-12">
+ <hr
+ style="margin-top: 3rem;background: linear-gradient(90deg, rgba(2,0,36,0) 0%, rgba(229,229,229,1) 33%, rgba(229,229,229,1) 58%, rgba(0,212,255,0) 100%); height: 2px; border-style: none;">
+ <!-- End of Footer Section -->
+ </div>
+ </div>
+</section>
+<!-- END OF FOOTER -->
\ No newline at end of file diff --git a/base_accounting_kit/static/lib/Chart.bundle.js b/base_accounting_kit/static/lib/Chart.bundle.js new file mode 100644 index 0000000..3207d07 --- /dev/null +++ b/base_accounting_kit/static/lib/Chart.bundle.js @@ -0,0 +1,19286 @@ +/*! + * Chart.js v2.8.0 + * https://www.chartjs.org + * (c) 2019 Chart.js Contributors + * Released under the MIT License + */ +(function (global, factory) { +typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : +typeof define === 'function' && define.amd ? define(factory) : +(global.Chart = factory()); +}(this, (function () { 'use strict'; + +/* MIT license */ + +var conversions = { + rgb2hsl: rgb2hsl, + rgb2hsv: rgb2hsv, + rgb2hwb: rgb2hwb, + rgb2cmyk: rgb2cmyk, + rgb2keyword: rgb2keyword, + rgb2xyz: rgb2xyz, + rgb2lab: rgb2lab, + rgb2lch: rgb2lch, + + hsl2rgb: hsl2rgb, + hsl2hsv: hsl2hsv, + hsl2hwb: hsl2hwb, + hsl2cmyk: hsl2cmyk, + hsl2keyword: hsl2keyword, + + hsv2rgb: hsv2rgb, + hsv2hsl: hsv2hsl, + hsv2hwb: hsv2hwb, + hsv2cmyk: hsv2cmyk, + hsv2keyword: hsv2keyword, + + hwb2rgb: hwb2rgb, + hwb2hsl: hwb2hsl, + hwb2hsv: hwb2hsv, + hwb2cmyk: hwb2cmyk, + hwb2keyword: hwb2keyword, + + cmyk2rgb: cmyk2rgb, + cmyk2hsl: cmyk2hsl, + cmyk2hsv: cmyk2hsv, + cmyk2hwb: cmyk2hwb, + cmyk2keyword: cmyk2keyword, + + keyword2rgb: keyword2rgb, + keyword2hsl: keyword2hsl, + keyword2hsv: keyword2hsv, + keyword2hwb: keyword2hwb, + keyword2cmyk: keyword2cmyk, + keyword2lab: keyword2lab, + keyword2xyz: keyword2xyz, + + xyz2rgb: xyz2rgb, + xyz2lab: xyz2lab, + xyz2lch: xyz2lch, + + lab2xyz: lab2xyz, + lab2rgb: lab2rgb, + lab2lch: lab2lch, + + lch2lab: lch2lab, + lch2xyz: lch2xyz, + lch2rgb: lch2rgb +}; + + +function rgb2hsl(rgb) { + var r = rgb[0]/255, + g = rgb[1]/255, + b = rgb[2]/255, + min = Math.min(r, g, b), + max = Math.max(r, g, b), + delta = max - min, + h, s, l; + + if (max == min) + h = 0; + else if (r == max) + h = (g - b) / delta; + else if (g == max) + h = 2 + (b - r) / delta; + else if (b == max) + h = 4 + (r - g)/ delta; + + h = Math.min(h * 60, 360); + + if (h < 0) + h += 360; + + l = (min + max) / 2; + + if (max == min) + s = 0; + else if (l <= 0.5) + s = delta / (max + min); + else + s = delta / (2 - max - min); + + return [h, s * 100, l * 100]; +} + +function rgb2hsv(rgb) { + var r = rgb[0], + g = rgb[1], + b = rgb[2], + min = Math.min(r, g, b), + max = Math.max(r, g, b), + delta = max - min, + h, s, v; + + if (max == 0) + s = 0; + else + s = (delta/max * 1000)/10; + + if (max == min) + h = 0; + else if (r == max) + h = (g - b) / delta; + else if (g == max) + h = 2 + (b - r) / delta; + else if (b == max) + h = 4 + (r - g) / delta; + + h = Math.min(h * 60, 360); + + if (h < 0) + h += 360; + + v = ((max / 255) * 1000) / 10; + + return [h, s, v]; +} + +function rgb2hwb(rgb) { + var r = rgb[0], + g = rgb[1], + b = rgb[2], + h = rgb2hsl(rgb)[0], + w = 1/255 * Math.min(r, Math.min(g, b)), + b = 1 - 1/255 * Math.max(r, Math.max(g, b)); + + return [h, w * 100, b * 100]; +} + +function rgb2cmyk(rgb) { + var r = rgb[0] / 255, + g = rgb[1] / 255, + b = rgb[2] / 255, + c, m, y, k; + + k = Math.min(1 - r, 1 - g, 1 - b); + c = (1 - r - k) / (1 - k) || 0; + m = (1 - g - k) / (1 - k) || 0; + y = (1 - b - k) / (1 - k) || 0; + return [c * 100, m * 100, y * 100, k * 100]; +} + +function rgb2keyword(rgb) { + return reverseKeywords[JSON.stringify(rgb)]; +} + +function rgb2xyz(rgb) { + var r = rgb[0] / 255, + g = rgb[1] / 255, + b = rgb[2] / 255; + + // assume sRGB + r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92); + g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92); + b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92); + + var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805); + var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722); + var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505); + + return [x * 100, y *100, z * 100]; +} + +function rgb2lab(rgb) { + var xyz = rgb2xyz(rgb), + x = xyz[0], + y = xyz[1], + z = xyz[2], + l, a, b; + + x /= 95.047; + y /= 100; + z /= 108.883; + + x = x > 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116); + y = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116); + z = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116); + + l = (116 * y) - 16; + a = 500 * (x - y); + b = 200 * (y - z); + + return [l, a, b]; +} + +function rgb2lch(args) { + return lab2lch(rgb2lab(args)); +} + +function hsl2rgb(hsl) { + var h = hsl[0] / 360, + s = hsl[1] / 100, + l = hsl[2] / 100, + t1, t2, t3, rgb, val; + + if (s == 0) { + val = l * 255; + return [val, val, val]; + } + + if (l < 0.5) + t2 = l * (1 + s); + else + t2 = l + s - l * s; + t1 = 2 * l - t2; + + rgb = [0, 0, 0]; + for (var i = 0; i < 3; i++) { + t3 = h + 1 / 3 * - (i - 1); + t3 < 0 && t3++; + t3 > 1 && t3--; + + if (6 * t3 < 1) + val = t1 + (t2 - t1) * 6 * t3; + else if (2 * t3 < 1) + val = t2; + else if (3 * t3 < 2) + val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; + else + val = t1; + + rgb[i] = val * 255; + } + + return rgb; +} + +function hsl2hsv(hsl) { + var h = hsl[0], + s = hsl[1] / 100, + l = hsl[2] / 100, + sv, v; + + if(l === 0) { + // no need to do calc on black + // also avoids divide by 0 error + return [0, 0, 0]; + } + + l *= 2; + s *= (l <= 1) ? l : 2 - l; + v = (l + s) / 2; + sv = (2 * s) / (l + s); + return [h, sv * 100, v * 100]; +} + +function hsl2hwb(args) { + return rgb2hwb(hsl2rgb(args)); +} + +function hsl2cmyk(args) { + return rgb2cmyk(hsl2rgb(args)); +} + +function hsl2keyword(args) { + return rgb2keyword(hsl2rgb(args)); +} + + +function hsv2rgb(hsv) { + var h = hsv[0] / 60, + s = hsv[1] / 100, + v = hsv[2] / 100, + hi = Math.floor(h) % 6; + + var f = h - Math.floor(h), + p = 255 * v * (1 - s), + q = 255 * v * (1 - (s * f)), + t = 255 * v * (1 - (s * (1 - f))), + v = 255 * v; + + switch(hi) { + case 0: + return [v, t, p]; + case 1: + return [q, v, p]; + case 2: + return [p, v, t]; + case 3: + return [p, q, v]; + case 4: + return [t, p, v]; + case 5: + return [v, p, q]; + } +} + +function hsv2hsl(hsv) { + var h = hsv[0], + s = hsv[1] / 100, + v = hsv[2] / 100, + sl, l; + + l = (2 - s) * v; + sl = s * v; + sl /= (l <= 1) ? l : 2 - l; + sl = sl || 0; + l /= 2; + return [h, sl * 100, l * 100]; +} + +function hsv2hwb(args) { + return rgb2hwb(hsv2rgb(args)) +} + +function hsv2cmyk(args) { + return rgb2cmyk(hsv2rgb(args)); +} + +function hsv2keyword(args) { + return rgb2keyword(hsv2rgb(args)); +} + +// http://dev.w3.org/csswg/css-color/#hwb-to-rgb +function hwb2rgb(hwb) { + var h = hwb[0] / 360, + wh = hwb[1] / 100, + bl = hwb[2] / 100, + ratio = wh + bl, + i, v, f, n; + + // wh + bl cant be > 1 + if (ratio > 1) { + wh /= ratio; + bl /= ratio; + } + + i = Math.floor(6 * h); + v = 1 - bl; + f = 6 * h - i; + if ((i & 0x01) != 0) { + f = 1 - f; + } + n = wh + f * (v - wh); // linear interpolation + + switch (i) { + default: + case 6: + case 0: r = v; g = n; b = wh; break; + case 1: r = n; g = v; b = wh; break; + case 2: r = wh; g = v; b = n; break; + case 3: r = wh; g = n; b = v; break; + case 4: r = n; g = wh; b = v; break; + case 5: r = v; g = wh; b = n; break; + } + + return [r * 255, g * 255, b * 255]; +} + +function hwb2hsl(args) { + return rgb2hsl(hwb2rgb(args)); +} + +function hwb2hsv(args) { + return rgb2hsv(hwb2rgb(args)); +} + +function hwb2cmyk(args) { + return rgb2cmyk(hwb2rgb(args)); +} + +function hwb2keyword(args) { + return rgb2keyword(hwb2rgb(args)); +} + +function cmyk2rgb(cmyk) { + var c = cmyk[0] / 100, + m = cmyk[1] / 100, + y = cmyk[2] / 100, + k = cmyk[3] / 100, + r, g, b; + + r = 1 - Math.min(1, c * (1 - k) + k); + g = 1 - Math.min(1, m * (1 - k) + k); + b = 1 - Math.min(1, y * (1 - k) + k); + return [r * 255, g * 255, b * 255]; +} + +function cmyk2hsl(args) { + return rgb2hsl(cmyk2rgb(args)); +} + +function cmyk2hsv(args) { + return rgb2hsv(cmyk2rgb(args)); +} + +function cmyk2hwb(args) { + return rgb2hwb(cmyk2rgb(args)); +} + +function cmyk2keyword(args) { + return rgb2keyword(cmyk2rgb(args)); +} + + +function xyz2rgb(xyz) { + var x = xyz[0] / 100, + y = xyz[1] / 100, + z = xyz[2] / 100, + r, g, b; + + r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986); + g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415); + b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570); + + // assume sRGB + r = r > 0.0031308 ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055) + : r = (r * 12.92); + + g = g > 0.0031308 ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055) + : g = (g * 12.92); + + b = b > 0.0031308 ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055) + : b = (b * 12.92); + + r = Math.min(Math.max(0, r), 1); + g = Math.min(Math.max(0, g), 1); + b = Math.min(Math.max(0, b), 1); + + return [r * 255, g * 255, b * 255]; +} + +function xyz2lab(xyz) { + var x = xyz[0], + y = xyz[1], + z = xyz[2], + l, a, b; + + x /= 95.047; + y /= 100; + z /= 108.883; + + x = x > 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116); + y = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116); + z = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116); + + l = (116 * y) - 16; + a = 500 * (x - y); + b = 200 * (y - z); + + return [l, a, b]; +} + +function xyz2lch(args) { + return lab2lch(xyz2lab(args)); +} + +function lab2xyz(lab) { + var l = lab[0], + a = lab[1], + b = lab[2], + x, y, z, y2; + + if (l <= 8) { + y = (l * 100) / 903.3; + y2 = (7.787 * (y / 100)) + (16 / 116); + } else { + y = 100 * Math.pow((l + 16) / 116, 3); + y2 = Math.pow(y / 100, 1/3); + } + + x = x / 95.047 <= 0.008856 ? x = (95.047 * ((a / 500) + y2 - (16 / 116))) / 7.787 : 95.047 * Math.pow((a / 500) + y2, 3); + + z = z / 108.883 <= 0.008859 ? z = (108.883 * (y2 - (b / 200) - (16 / 116))) / 7.787 : 108.883 * Math.pow(y2 - (b / 200), 3); + + return [x, y, z]; +} + +function lab2lch(lab) { + var l = lab[0], + a = lab[1], + b = lab[2], + hr, h, c; + + hr = Math.atan2(b, a); + h = hr * 360 / 2 / Math.PI; + if (h < 0) { + h += 360; + } + c = Math.sqrt(a * a + b * b); + return [l, c, h]; +} + +function lab2rgb(args) { + return xyz2rgb(lab2xyz(args)); +} + +function lch2lab(lch) { + var l = lch[0], + c = lch[1], + h = lch[2], + a, b, hr; + + hr = h / 360 * 2 * Math.PI; + a = c * Math.cos(hr); + b = c * Math.sin(hr); + return [l, a, b]; +} + +function lch2xyz(args) { + return lab2xyz(lch2lab(args)); +} + +function lch2rgb(args) { + return lab2rgb(lch2lab(args)); +} + +function keyword2rgb(keyword) { + return cssKeywords[keyword]; +} + +function keyword2hsl(args) { + return rgb2hsl(keyword2rgb(args)); +} + +function keyword2hsv(args) { + return rgb2hsv(keyword2rgb(args)); +} + +function keyword2hwb(args) { + return rgb2hwb(keyword2rgb(args)); +} + +function keyword2cmyk(args) { + return rgb2cmyk(keyword2rgb(args)); +} + +function keyword2lab(args) { + return rgb2lab(keyword2rgb(args)); +} + +function keyword2xyz(args) { + return rgb2xyz(keyword2rgb(args)); +} + +var cssKeywords = { + aliceblue: [240,248,255], + antiquewhite: [250,235,215], + aqua: [0,255,255], + aquamarine: [127,255,212], + azure: [240,255,255], + beige: [245,245,220], + bisque: [255,228,196], + black: [0,0,0], + blanchedalmond: [255,235,205], + blue: [0,0,255], + blueviolet: [138,43,226], + brown: [165,42,42], + burlywood: [222,184,135], + cadetblue: [95,158,160], + chartreuse: [127,255,0], + chocolate: [210,105,30], + coral: [255,127,80], + cornflowerblue: [100,149,237], + cornsilk: [255,248,220], + crimson: [220,20,60], + cyan: [0,255,255], + darkblue: [0,0,139], + darkcyan: [0,139,139], + darkgoldenrod: [184,134,11], + darkgray: [169,169,169], + darkgreen: [0,100,0], + darkgrey: [169,169,169], + darkkhaki: [189,183,107], + darkmagenta: [139,0,139], + darkolivegreen: [85,107,47], + darkorange: [255,140,0], + darkorchid: [153,50,204], + darkred: [139,0,0], + darksalmon: [233,150,122], + darkseagreen: [143,188,143], + darkslateblue: [72,61,139], + darkslategray: [47,79,79], + darkslategrey: [47,79,79], + darkturquoise: [0,206,209], + darkviolet: [148,0,211], + deeppink: [255,20,147], + deepskyblue: [0,191,255], + dimgray: [105,105,105], + dimgrey: [105,105,105], + dodgerblue: [30,144,255], + firebrick: [178,34,34], + floralwhite: [255,250,240], + forestgreen: [34,139,34], + fuchsia: [255,0,255], + gainsboro: [220,220,220], + ghostwhite: [248,248,255], + gold: [255,215,0], + goldenrod: [218,165,32], + gray: [128,128,128], + green: [0,128,0], + greenyellow: [173,255,47], + grey: [128,128,128], + honeydew: [240,255,240], + hotpink: [255,105,180], + indianred: [205,92,92], + indigo: [75,0,130], + ivory: [255,255,240], + khaki: [240,230,140], + lavender: [230,230,250], + lavenderblush: [255,240,245], + lawngreen: [124,252,0], + lemonchiffon: [255,250,205], + lightblue: [173,216,230], + lightcoral: [240,128,128], + lightcyan: [224,255,255], + lightgoldenrodyellow: [250,250,210], + lightgray: [211,211,211], + lightgreen: [144,238,144], + lightgrey: [211,211,211], + lightpink: [255,182,193], + lightsalmon: [255,160,122], + lightseagreen: [32,178,170], + lightskyblue: [135,206,250], + lightslategray: [119,136,153], + lightslategrey: [119,136,153], + lightsteelblue: [176,196,222], + lightyellow: [255,255,224], + lime: [0,255,0], + limegreen: [50,205,50], + linen: [250,240,230], + magenta: [255,0,255], + maroon: [128,0,0], + mediumaquamarine: [102,205,170], + mediumblue: [0,0,205], + mediumorchid: [186,85,211], + mediumpurple: [147,112,219], + mediumseagreen: [60,179,113], + mediumslateblue: [123,104,238], + mediumspringgreen: [0,250,154], + mediumturquoise: [72,209,204], + mediumvioletred: [199,21,133], + midnightblue: [25,25,112], + mintcream: [245,255,250], + mistyrose: [255,228,225], + moccasin: [255,228,181], + navajowhite: [255,222,173], + navy: [0,0,128], + oldlace: [253,245,230], + olive: [128,128,0], + olivedrab: [107,142,35], + orange: [255,165,0], + orangered: [255,69,0], + orchid: [218,112,214], + palegoldenrod: [238,232,170], + palegreen: [152,251,152], + paleturquoise: [175,238,238], + palevioletred: [219,112,147], + papayawhip: [255,239,213], + peachpuff: [255,218,185], + peru: [205,133,63], + pink: [255,192,203], + plum: [221,160,221], + powderblue: [176,224,230], + purple: [128,0,128], + rebeccapurple: [102, 51, 153], + red: [255,0,0], + rosybrown: [188,143,143], + royalblue: [65,105,225], + saddlebrown: [139,69,19], + salmon: [250,128,114], + sandybrown: [244,164,96], + seagreen: [46,139,87], + seashell: [255,245,238], + sienna: [160,82,45], + silver: [192,192,192], + skyblue: [135,206,235], + slateblue: [106,90,205], + slategray: [112,128,144], + slategrey: [112,128,144], + snow: [255,250,250], + springgreen: [0,255,127], + steelblue: [70,130,180], + tan: [210,180,140], + teal: [0,128,128], + thistle: [216,191,216], + tomato: [255,99,71], + turquoise: [64,224,208], + violet: [238,130,238], + wheat: [245,222,179], + white: [255,255,255], + whitesmoke: [245,245,245], + yellow: [255,255,0], + yellowgreen: [154,205,50] +}; + +var reverseKeywords = {}; +for (var key in cssKeywords) { + reverseKeywords[JSON.stringify(cssKeywords[key])] = key; +} + +var convert = function() { + return new Converter(); +}; + +for (var func in conversions) { + // export Raw versions + convert[func + "Raw"] = (function(func) { + // accept array or plain args + return function(arg) { + if (typeof arg == "number") + arg = Array.prototype.slice.call(arguments); + return conversions[func](arg); + } + })(func); + + var pair = /(\w+)2(\w+)/.exec(func), + from = pair[1], + to = pair[2]; + + // export rgb2hsl and ["rgb"]["hsl"] + convert[from] = convert[from] || {}; + + convert[from][to] = convert[func] = (function(func) { + return function(arg) { + if (typeof arg == "number") + arg = Array.prototype.slice.call(arguments); + + var val = conversions[func](arg); + if (typeof val == "string" || val === undefined) + return val; // keyword + + for (var i = 0; i < val.length; i++) + val[i] = Math.round(val[i]); + return val; + } + })(func); +} + + +/* Converter does lazy conversion and caching */ +var Converter = function() { + this.convs = {}; +}; + +/* Either get the values for a space or + set the values for a space, depending on args */ +Converter.prototype.routeSpace = function(space, args) { + var values = args[0]; + if (values === undefined) { + // color.rgb() + return this.getValues(space); + } + // color.rgb(10, 10, 10) + if (typeof values == "number") { + values = Array.prototype.slice.call(args); + } + + return this.setValues(space, values); +}; + +/* Set the values for a space, invalidating cache */ +Converter.prototype.setValues = function(space, values) { + this.space = space; + this.convs = {}; + this.convs[space] = values; + return this; +}; + +/* Get the values for a space. If there's already + a conversion for the space, fetch it, otherwise + compute it */ +Converter.prototype.getValues = function(space) { + var vals = this.convs[space]; + if (!vals) { + var fspace = this.space, + from = this.convs[fspace]; + vals = convert[fspace][space](from); + + this.convs[space] = vals; + } + return vals; +}; + +["rgb", "hsl", "hsv", "cmyk", "keyword"].forEach(function(space) { + Converter.prototype[space] = function(vals) { + return this.routeSpace(space, arguments); + }; +}); + +var colorConvert = convert; + +var colorName = { + "aliceblue": [240, 248, 255], + "antiquewhite": [250, 235, 215], + "aqua": [0, 255, 255], + "aquamarine": [127, 255, 212], + "azure": [240, 255, 255], + "beige": [245, 245, 220], + "bisque": [255, 228, 196], + "black": [0, 0, 0], + "blanchedalmond": [255, 235, 205], + "blue": [0, 0, 255], + "blueviolet": [138, 43, 226], + "brown": [165, 42, 42], + "burlywood": [222, 184, 135], + "cadetblue": [95, 158, 160], + "chartreuse": [127, 255, 0], + "chocolate": [210, 105, 30], + "coral": [255, 127, 80], + "cornflowerblue": [100, 149, 237], + "cornsilk": [255, 248, 220], + "crimson": [220, 20, 60], + "cyan": [0, 255, 255], + "darkblue": [0, 0, 139], + "darkcyan": [0, 139, 139], + "darkgoldenrod": [184, 134, 11], + "darkgray": [169, 169, 169], + "darkgreen": [0, 100, 0], + "darkgrey": [169, 169, 169], + "darkkhaki": [189, 183, 107], + "darkmagenta": [139, 0, 139], + "darkolivegreen": [85, 107, 47], + "darkorange": [255, 140, 0], + "darkorchid": [153, 50, 204], + "darkred": [139, 0, 0], + "darksalmon": [233, 150, 122], + "darkseagreen": [143, 188, 143], + "darkslateblue": [72, 61, 139], + "darkslategray": [47, 79, 79], + "darkslategrey": [47, 79, 79], + "darkturquoise": [0, 206, 209], + "darkviolet": [148, 0, 211], + "deeppink": [255, 20, 147], + "deepskyblue": [0, 191, 255], + "dimgray": [105, 105, 105], + "dimgrey": [105, 105, 105], + "dodgerblue": [30, 144, 255], + "firebrick": [178, 34, 34], + "floralwhite": [255, 250, 240], + "forestgreen": [34, 139, 34], + "fuchsia": [255, 0, 255], + "gainsboro": [220, 220, 220], + "ghostwhite": [248, 248, 255], + "gold": [255, 215, 0], + "goldenrod": [218, 165, 32], + "gray": [128, 128, 128], + "green": [0, 128, 0], + "greenyellow": [173, 255, 47], + "grey": [128, 128, 128], + "honeydew": [240, 255, 240], + "hotpink": [255, 105, 180], + "indianred": [205, 92, 92], + "indigo": [75, 0, 130], + "ivory": [255, 255, 240], + "khaki": [240, 230, 140], + "lavender": [230, 230, 250], + "lavenderblush": [255, 240, 245], + "lawngreen": [124, 252, 0], + "lemonchiffon": [255, 250, 205], + "lightblue": [173, 216, 230], + "lightcoral": [240, 128, 128], + "lightcyan": [224, 255, 255], + "lightgoldenrodyellow": [250, 250, 210], + "lightgray": [211, 211, 211], + "lightgreen": [144, 238, 144], + "lightgrey": [211, 211, 211], + "lightpink": [255, 182, 193], + "lightsalmon": [255, 160, 122], + "lightseagreen": [32, 178, 170], + "lightskyblue": [135, 206, 250], + "lightslategray": [119, 136, 153], + "lightslategrey": [119, 136, 153], + "lightsteelblue": [176, 196, 222], + "lightyellow": [255, 255, 224], + "lime": [0, 255, 0], + "limegreen": [50, 205, 50], + "linen": [250, 240, 230], + "magenta": [255, 0, 255], + "maroon": [128, 0, 0], + "mediumaquamarine": [102, 205, 170], + "mediumblue": [0, 0, 205], + "mediumorchid": [186, 85, 211], + "mediumpurple": [147, 112, 219], + "mediumseagreen": [60, 179, 113], + "mediumslateblue": [123, 104, 238], + "mediumspringgreen": [0, 250, 154], + "mediumturquoise": [72, 209, 204], + "mediumvioletred": [199, 21, 133], + "midnightblue": [25, 25, 112], + "mintcream": [245, 255, 250], + "mistyrose": [255, 228, 225], + "moccasin": [255, 228, 181], + "navajowhite": [255, 222, 173], + "navy": [0, 0, 128], + "oldlace": [253, 245, 230], + "olive": [128, 128, 0], + "olivedrab": [107, 142, 35], + "orange": [255, 165, 0], + "orangered": [255, 69, 0], + "orchid": [218, 112, 214], + "palegoldenrod": [238, 232, 170], + "palegreen": [152, 251, 152], + "paleturquoise": [175, 238, 238], + "palevioletred": [219, 112, 147], + "papayawhip": [255, 239, 213], + "peachpuff": [255, 218, 185], + "peru": [205, 133, 63], + "pink": [255, 192, 203], + "plum": [221, 160, 221], + "powderblue": [176, 224, 230], + "purple": [128, 0, 128], + "rebeccapurple": [102, 51, 153], + "red": [255, 0, 0], + "rosybrown": [188, 143, 143], + "royalblue": [65, 105, 225], + "saddlebrown": [139, 69, 19], + "salmon": [250, 128, 114], + "sandybrown": [244, 164, 96], + "seagreen": [46, 139, 87], + "seashell": [255, 245, 238], + "sienna": [160, 82, 45], + "silver": [192, 192, 192], + "skyblue": [135, 206, 235], + "slateblue": [106, 90, 205], + "slategray": [112, 128, 144], + "slategrey": [112, 128, 144], + "snow": [255, 250, 250], + "springgreen": [0, 255, 127], + "steelblue": [70, 130, 180], + "tan": [210, 180, 140], + "teal": [0, 128, 128], + "thistle": [216, 191, 216], + "tomato": [255, 99, 71], + "turquoise": [64, 224, 208], + "violet": [238, 130, 238], + "wheat": [245, 222, 179], + "white": [255, 255, 255], + "whitesmoke": [245, 245, 245], + "yellow": [255, 255, 0], + "yellowgreen": [154, 205, 50] +}; + +/* MIT license */ + + +var colorString = { + getRgba: getRgba, + getHsla: getHsla, + getRgb: getRgb, + getHsl: getHsl, + getHwb: getHwb, + getAlpha: getAlpha, + + hexString: hexString, + rgbString: rgbString, + rgbaString: rgbaString, + percentString: percentString, + percentaString: percentaString, + hslString: hslString, + hslaString: hslaString, + hwbString: hwbString, + keyword: keyword +}; + +function getRgba(string) { + if (!string) { + return; + } + var abbr = /^#([a-fA-F0-9]{3,4})$/i, + hex = /^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i, + rgba = /^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i, + per = /^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i, + keyword = /(\w+)/; + + var rgb = [0, 0, 0], + a = 1, + match = string.match(abbr), + hexAlpha = ""; + if (match) { + match = match[1]; + hexAlpha = match[3]; + for (var i = 0; i < rgb.length; i++) { + rgb[i] = parseInt(match[i] + match[i], 16); + } + if (hexAlpha) { + a = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100; + } + } + else if (match = string.match(hex)) { + hexAlpha = match[2]; + match = match[1]; + for (var i = 0; i < rgb.length; i++) { + rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16); + } + if (hexAlpha) { + a = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100; + } + } + else if (match = string.match(rgba)) { + for (var i = 0; i < rgb.length; i++) { + rgb[i] = parseInt(match[i + 1]); + } + a = parseFloat(match[4]); + } + else if (match = string.match(per)) { + for (var i = 0; i < rgb.length; i++) { + rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55); + } + a = parseFloat(match[4]); + } + else if (match = string.match(keyword)) { + if (match[1] == "transparent") { + return [0, 0, 0, 0]; + } + rgb = colorName[match[1]]; + if (!rgb) { + return; + } + } + + for (var i = 0; i < rgb.length; i++) { + rgb[i] = scale(rgb[i], 0, 255); + } + if (!a && a != 0) { + a = 1; + } + else { + a = scale(a, 0, 1); + } + rgb[3] = a; + return rgb; +} + +function getHsla(string) { + if (!string) { + return; + } + var hsl = /^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/; + var match = string.match(hsl); + if (match) { + var alpha = parseFloat(match[4]); + var h = scale(parseInt(match[1]), 0, 360), + s = scale(parseFloat(match[2]), 0, 100), + l = scale(parseFloat(match[3]), 0, 100), + a = scale(isNaN(alpha) ? 1 : alpha, 0, 1); + return [h, s, l, a]; + } +} + +function getHwb(string) { + if (!string) { + return; + } + var hwb = /^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/; + var match = string.match(hwb); + if (match) { + var alpha = parseFloat(match[4]); + var h = scale(parseInt(match[1]), 0, 360), + w = scale(parseFloat(match[2]), 0, 100), + b = scale(parseFloat(match[3]), 0, 100), + a = scale(isNaN(alpha) ? 1 : alpha, 0, 1); + return [h, w, b, a]; + } +} + +function getRgb(string) { + var rgba = getRgba(string); + return rgba && rgba.slice(0, 3); +} + +function getHsl(string) { + var hsla = getHsla(string); + return hsla && hsla.slice(0, 3); +} + +function getAlpha(string) { + var vals = getRgba(string); + if (vals) { + return vals[3]; + } + else if (vals = getHsla(string)) { + return vals[3]; + } + else if (vals = getHwb(string)) { + return vals[3]; + } +} + +// generators +function hexString(rgba, a) { + var a = (a !== undefined && rgba.length === 3) ? a : rgba[3]; + return "#" + hexDouble(rgba[0]) + + hexDouble(rgba[1]) + + hexDouble(rgba[2]) + + ( + (a >= 0 && a < 1) + ? hexDouble(Math.round(a * 255)) + : "" + ); +} + +function rgbString(rgba, alpha) { + if (alpha < 1 || (rgba[3] && rgba[3] < 1)) { + return rgbaString(rgba, alpha); + } + return "rgb(" + rgba[0] + ", " + rgba[1] + ", " + rgba[2] + ")"; +} + +function rgbaString(rgba, alpha) { + if (alpha === undefined) { + alpha = (rgba[3] !== undefined ? rgba[3] : 1); + } + return "rgba(" + rgba[0] + ", " + rgba[1] + ", " + rgba[2] + + ", " + alpha + ")"; +} + +function percentString(rgba, alpha) { + if (alpha < 1 || (rgba[3] && rgba[3] < 1)) { + return percentaString(rgba, alpha); + } + var r = Math.round(rgba[0]/255 * 100), + g = Math.round(rgba[1]/255 * 100), + b = Math.round(rgba[2]/255 * 100); + + return "rgb(" + r + "%, " + g + "%, " + b + "%)"; +} + +function percentaString(rgba, alpha) { + var r = Math.round(rgba[0]/255 * 100), + g = Math.round(rgba[1]/255 * 100), + b = Math.round(rgba[2]/255 * 100); + return "rgba(" + r + "%, " + g + "%, " + b + "%, " + (alpha || rgba[3] || 1) + ")"; +} + +function hslString(hsla, alpha) { + if (alpha < 1 || (hsla[3] && hsla[3] < 1)) { + return hslaString(hsla, alpha); + } + return "hsl(" + hsla[0] + ", " + hsla[1] + "%, " + hsla[2] + "%)"; +} + +function hslaString(hsla, alpha) { + if (alpha === undefined) { + alpha = (hsla[3] !== undefined ? hsla[3] : 1); + } + return "hsla(" + hsla[0] + ", " + hsla[1] + "%, " + hsla[2] + "%, " + + alpha + ")"; +} + +// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax +// (hwb have alpha optional & 1 is default value) +function hwbString(hwb, alpha) { + if (alpha === undefined) { + alpha = (hwb[3] !== undefined ? hwb[3] : 1); + } + return "hwb(" + hwb[0] + ", " + hwb[1] + "%, " + hwb[2] + "%" + + (alpha !== undefined && alpha !== 1 ? ", " + alpha : "") + ")"; +} + +function keyword(rgb) { + return reverseNames[rgb.slice(0, 3)]; +} + +// helpers +function scale(num, min, max) { + return Math.min(Math.max(min, num), max); +} + +function hexDouble(num) { + var str = num.toString(16).toUpperCase(); + return (str.length < 2) ? "0" + str : str; +} + + +//create a list of reverse color names +var reverseNames = {}; +for (var name in colorName) { + reverseNames[colorName[name]] = name; +} + +/* MIT license */ + + + +var Color = function (obj) { + if (obj instanceof Color) { + return obj; + } + if (!(this instanceof Color)) { + return new Color(obj); + } + + this.valid = false; + this.values = { + rgb: [0, 0, 0], + hsl: [0, 0, 0], + hsv: [0, 0, 0], + hwb: [0, 0, 0], + cmyk: [0, 0, 0, 0], + alpha: 1 + }; + + // parse Color() argument + var vals; + if (typeof obj === 'string') { + vals = colorString.getRgba(obj); + if (vals) { + this.setValues('rgb', vals); + } else if (vals = colorString.getHsla(obj)) { + this.setValues('hsl', vals); + } else if (vals = colorString.getHwb(obj)) { + this.setValues('hwb', vals); + } + } else if (typeof obj === 'object') { + vals = obj; + if (vals.r !== undefined || vals.red !== undefined) { + this.setValues('rgb', vals); + } else if (vals.l !== undefined || vals.lightness !== undefined) { + this.setValues('hsl', vals); + } else if (vals.v !== undefined || vals.value !== undefined) { + this.setValues('hsv', vals); + } else if (vals.w !== undefined || vals.whiteness !== undefined) { + this.setValues('hwb', vals); + } else if (vals.c !== undefined || vals.cyan !== undefined) { + this.setValues('cmyk', vals); + } + } +}; + +Color.prototype = { + isValid: function () { + return this.valid; + }, + rgb: function () { + return this.setSpace('rgb', arguments); + }, + hsl: function () { + return this.setSpace('hsl', arguments); + }, + hsv: function () { + return this.setSpace('hsv', arguments); + }, + hwb: function () { + return this.setSpace('hwb', arguments); + }, + cmyk: function () { + return this.setSpace('cmyk', arguments); + }, + + rgbArray: function () { + return this.values.rgb; + }, + hslArray: function () { + return this.values.hsl; + }, + hsvArray: function () { + return this.values.hsv; + }, + hwbArray: function () { + var values = this.values; + if (values.alpha !== 1) { + return values.hwb.concat([values.alpha]); + } + return values.hwb; + }, + cmykArray: function () { + return this.values.cmyk; + }, + rgbaArray: function () { + var values = this.values; + return values.rgb.concat([values.alpha]); + }, + hslaArray: function () { + var values = this.values; + return values.hsl.concat([values.alpha]); + }, + alpha: function (val) { + if (val === undefined) { + return this.values.alpha; + } + this.setValues('alpha', val); + return this; + }, + + red: function (val) { + return this.setChannel('rgb', 0, val); + }, + green: function (val) { + return this.setChannel('rgb', 1, val); + }, + blue: function (val) { + return this.setChannel('rgb', 2, val); + }, + hue: function (val) { + if (val) { + val %= 360; + val = val < 0 ? 360 + val : val; + } + return this.setChannel('hsl', 0, val); + }, + saturation: function (val) { + return this.setChannel('hsl', 1, val); + }, + lightness: function (val) { + return this.setChannel('hsl', 2, val); + }, + saturationv: function (val) { + return this.setChannel('hsv', 1, val); + }, + whiteness: function (val) { + return this.setChannel('hwb', 1, val); + }, + blackness: function (val) { + return this.setChannel('hwb', 2, val); + }, + value: function (val) { + return this.setChannel('hsv', 2, val); + }, + cyan: function (val) { + return this.setChannel('cmyk', 0, val); + }, + magenta: function (val) { + return this.setChannel('cmyk', 1, val); + }, + yellow: function (val) { + return this.setChannel('cmyk', 2, val); + }, + black: function (val) { + return this.setChannel('cmyk', 3, val); + }, + + hexString: function () { + return colorString.hexString(this.values.rgb); + }, + rgbString: function () { + return colorString.rgbString(this.values.rgb, this.values.alpha); + }, + rgbaString: function () { + return colorString.rgbaString(this.values.rgb, this.values.alpha); + }, + percentString: function () { + return colorString.percentString(this.values.rgb, this.values.alpha); + }, + hslString: function () { + return colorString.hslString(this.values.hsl, this.values.alpha); + }, + hslaString: function () { + return colorString.hslaString(this.values.hsl, this.values.alpha); + }, + hwbString: function () { + return colorString.hwbString(this.values.hwb, this.values.alpha); + }, + keyword: function () { + return colorString.keyword(this.values.rgb, this.values.alpha); + }, + + rgbNumber: function () { + var rgb = this.values.rgb; + return (rgb[0] << 16) | (rgb[1] << 8) | rgb[2]; + }, + + luminosity: function () { + // http://www.w3.org/TR/WCAG20/#relativeluminancedef + var rgb = this.values.rgb; + var lum = []; + for (var i = 0; i < rgb.length; i++) { + var chan = rgb[i] / 255; + lum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4); + } + return 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2]; + }, + + contrast: function (color2) { + // http://www.w3.org/TR/WCAG20/#contrast-ratiodef + var lum1 = this.luminosity(); + var lum2 = color2.luminosity(); + if (lum1 > lum2) { + return (lum1 + 0.05) / (lum2 + 0.05); + } + return (lum2 + 0.05) / (lum1 + 0.05); + }, + + level: function (color2) { + var contrastRatio = this.contrast(color2); + if (contrastRatio >= 7.1) { + return 'AAA'; + } + + return (contrastRatio >= 4.5) ? 'AA' : ''; + }, + + dark: function () { + // YIQ equation from http://24ways.org/2010/calculating-color-contrast + var rgb = this.values.rgb; + var yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000; + return yiq < 128; + }, + + light: function () { + return !this.dark(); + }, + + negate: function () { + var rgb = []; + for (var i = 0; i < 3; i++) { + rgb[i] = 255 - this.values.rgb[i]; + } + this.setValues('rgb', rgb); + return this; + }, + + lighten: function (ratio) { + var hsl = this.values.hsl; + hsl[2] += hsl[2] * ratio; + this.setValues('hsl', hsl); + return this; + }, + + darken: function (ratio) { + var hsl = this.values.hsl; + hsl[2] -= hsl[2] * ratio; + this.setValues('hsl', hsl); + return this; + }, + + saturate: function (ratio) { + var hsl = this.values.hsl; + hsl[1] += hsl[1] * ratio; + this.setValues('hsl', hsl); + return this; + }, + + desaturate: function (ratio) { + var hsl = this.values.hsl; + hsl[1] -= hsl[1] * ratio; + this.setValues('hsl', hsl); + return this; + }, + + whiten: function (ratio) { + var hwb = this.values.hwb; + hwb[1] += hwb[1] * ratio; + this.setValues('hwb', hwb); + return this; + }, + + blacken: function (ratio) { + var hwb = this.values.hwb; + hwb[2] += hwb[2] * ratio; + this.setValues('hwb', hwb); + return this; + }, + + greyscale: function () { + var rgb = this.values.rgb; + // http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale + var val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11; + this.setValues('rgb', [val, val, val]); + return this; + }, + + clearer: function (ratio) { + var alpha = this.values.alpha; + this.setValues('alpha', alpha - (alpha * ratio)); + return this; + }, + + opaquer: function (ratio) { + var alpha = this.values.alpha; + this.setValues('alpha', alpha + (alpha * ratio)); + return this; + }, + + rotate: function (degrees) { + var hsl = this.values.hsl; + var hue = (hsl[0] + degrees) % 360; + hsl[0] = hue < 0 ? 360 + hue : hue; + this.setValues('hsl', hsl); + return this; + }, + + /** + * Ported from sass implementation in C + * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209 + */ + mix: function (mixinColor, weight) { + var color1 = this; + var color2 = mixinColor; + var p = weight === undefined ? 0.5 : weight; + + var w = 2 * p - 1; + var a = color1.alpha() - color2.alpha(); + + var w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0; + var w2 = 1 - w1; + + return this + .rgb( + w1 * color1.red() + w2 * color2.red(), + w1 * color1.green() + w2 * color2.green(), + w1 * color1.blue() + w2 * color2.blue() + ) + .alpha(color1.alpha() * p + color2.alpha() * (1 - p)); + }, + + toJSON: function () { + return this.rgb(); + }, + + clone: function () { + // NOTE(SB): using node-clone creates a dependency to Buffer when using browserify, + // making the final build way to big to embed in Chart.js. So let's do it manually, + // assuming that values to clone are 1 dimension arrays containing only numbers, + // except 'alpha' which is a number. + var result = new Color(); + var source = this.values; + var target = result.values; + var value, type; + + for (var prop in source) { + if (source.hasOwnProperty(prop)) { + value = source[prop]; + type = ({}).toString.call(value); + if (type === '[object Array]') { + target[prop] = value.slice(0); + } else if (type === '[object Number]') { + target[prop] = value; + } else { + console.error('unexpected color value:', value); + } + } + } + + return result; + } +}; + +Color.prototype.spaces = { + rgb: ['red', 'green', 'blue'], + hsl: ['hue', 'saturation', 'lightness'], + hsv: ['hue', 'saturation', 'value'], + hwb: ['hue', 'whiteness', 'blackness'], + cmyk: ['cyan', 'magenta', 'yellow', 'black'] +}; + +Color.prototype.maxes = { + rgb: [255, 255, 255], + hsl: [360, 100, 100], + hsv: [360, 100, 100], + hwb: [360, 100, 100], + cmyk: [100, 100, 100, 100] +}; + +Color.prototype.getValues = function (space) { + var values = this.values; + var vals = {}; + + for (var i = 0; i < space.length; i++) { + vals[space.charAt(i)] = values[space][i]; + } + + if (values.alpha !== 1) { + vals.a = values.alpha; + } + + // {r: 255, g: 255, b: 255, a: 0.4} + return vals; +}; + +Color.prototype.setValues = function (space, vals) { + var values = this.values; + var spaces = this.spaces; + var maxes = this.maxes; + var alpha = 1; + var i; + + this.valid = true; + + if (space === 'alpha') { + alpha = vals; + } else if (vals.length) { + // [10, 10, 10] + values[space] = vals.slice(0, space.length); + alpha = vals[space.length]; + } else if (vals[space.charAt(0)] !== undefined) { + // {r: 10, g: 10, b: 10} + for (i = 0; i < space.length; i++) { + values[space][i] = vals[space.charAt(i)]; + } + + alpha = vals.a; + } else if (vals[spaces[space][0]] !== undefined) { + // {red: 10, green: 10, blue: 10} + var chans = spaces[space]; + + for (i = 0; i < space.length; i++) { + values[space][i] = vals[chans[i]]; + } + + alpha = vals.alpha; + } + + values.alpha = Math.max(0, Math.min(1, (alpha === undefined ? values.alpha : alpha))); + + if (space === 'alpha') { + return false; + } + + var capped; + + // cap values of the space prior converting all values + for (i = 0; i < space.length; i++) { + capped = Math.max(0, Math.min(maxes[space][i], values[space][i])); + values[space][i] = Math.round(capped); + } + + // convert to all the other color spaces + for (var sname in spaces) { + if (sname !== space) { + values[sname] = colorConvert[space][sname](values[space]); + } + } + + return true; +}; + +Color.prototype.setSpace = function (space, args) { + var vals = args[0]; + + if (vals === undefined) { + // color.rgb() + return this.getValues(space); + } + + // color.rgb(10, 10, 10) + if (typeof vals === 'number') { + vals = Array.prototype.slice.call(args); + } + + this.setValues(space, vals); + return this; +}; + +Color.prototype.setChannel = function (space, index, val) { + var svalues = this.values[space]; + if (val === undefined) { + // color.red() + return svalues[index]; + } else if (val === svalues[index]) { + // color.red(color.red()) + return this; + } + + // color.red(100) + svalues[index] = val; + this.setValues(space, svalues); + + return this; +}; + +if (typeof window !== 'undefined') { + window.Color = Color; +} + +var chartjsColor = Color; + +/** + * @namespace Chart.helpers + */ +var helpers = { + /** + * An empty function that can be used, for example, for optional callback. + */ + noop: function() {}, + + /** + * Returns a unique id, sequentially generated from a global variable. + * @returns {number} + * @function + */ + uid: (function() { + var id = 0; + return function() { + return id++; + }; + }()), + + /** + * Returns true if `value` is neither null nor undefined, else returns false. + * @param {*} value - The value to test. + * @returns {boolean} + * @since 2.7.0 + */ + isNullOrUndef: function(value) { + return value === null || typeof value === 'undefined'; + }, + + /** + * Returns true if `value` is an array (including typed arrays), else returns false. + * @param {*} value - The value to test. + * @returns {boolean} + * @function + */ + isArray: function(value) { + if (Array.isArray && Array.isArray(value)) { + return true; + } + var type = Object.prototype.toString.call(value); + if (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') { + return true; + } + return false; + }, + + /** + * Returns true if `value` is an object (excluding null), else returns false. + * @param {*} value - The value to test. + * @returns {boolean} + * @since 2.7.0 + */ + isObject: function(value) { + return value !== null && Object.prototype.toString.call(value) === '[object Object]'; + }, + + /** + * Returns true if `value` is a finite number, else returns false + * @param {*} value - The value to test. + * @returns {boolean} + */ + isFinite: function(value) { + return (typeof value === 'number' || value instanceof Number) && isFinite(value); + }, + + /** + * Returns `value` if defined, else returns `defaultValue`. + * @param {*} value - The value to return if defined. + * @param {*} defaultValue - The value to return if `value` is undefined. + * @returns {*} + */ + valueOrDefault: function(value, defaultValue) { + return typeof value === 'undefined' ? defaultValue : value; + }, + + /** + * Returns value at the given `index` in array if defined, else returns `defaultValue`. + * @param {Array} value - The array to lookup for value at `index`. + * @param {number} index - The index in `value` to lookup for value. + * @param {*} defaultValue - The value to return if `value[index]` is undefined. + * @returns {*} + */ + valueAtIndexOrDefault: function(value, index, defaultValue) { + return helpers.valueOrDefault(helpers.isArray(value) ? value[index] : value, defaultValue); + }, + + /** + * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the + * value returned by `fn`. If `fn` is not a function, this method returns undefined. + * @param {function} fn - The function to call. + * @param {Array|undefined|null} args - The arguments with which `fn` should be called. + * @param {object} [thisArg] - The value of `this` provided for the call to `fn`. + * @returns {*} + */ + callback: function(fn, args, thisArg) { + if (fn && typeof fn.call === 'function') { + return fn.apply(thisArg, args); + } + }, + + /** + * Note(SB) for performance sake, this method should only be used when loopable type + * is unknown or in none intensive code (not called often and small loopable). Else + * it's preferable to use a regular for() loop and save extra function calls. + * @param {object|Array} loopable - The object or array to be iterated. + * @param {function} fn - The function to call for each item. + * @param {object} [thisArg] - The value of `this` provided for the call to `fn`. + * @param {boolean} [reverse] - If true, iterates backward on the loopable. + */ + each: function(loopable, fn, thisArg, reverse) { + var i, len, keys; + if (helpers.isArray(loopable)) { + len = loopable.length; + if (reverse) { + for (i = len - 1; i >= 0; i--) { + fn.call(thisArg, loopable[i], i); + } + } else { + for (i = 0; i < len; i++) { + fn.call(thisArg, loopable[i], i); + } + } + } else if (helpers.isObject(loopable)) { + keys = Object.keys(loopable); + len = keys.length; + for (i = 0; i < len; i++) { + fn.call(thisArg, loopable[keys[i]], keys[i]); + } + } + }, + + /** + * Returns true if the `a0` and `a1` arrays have the same content, else returns false. + * @see https://stackoverflow.com/a/14853974 + * @param {Array} a0 - The array to compare + * @param {Array} a1 - The array to compare + * @returns {boolean} + */ + arrayEquals: function(a0, a1) { + var i, ilen, v0, v1; + + if (!a0 || !a1 || a0.length !== a1.length) { + return false; + } + + for (i = 0, ilen = a0.length; i < ilen; ++i) { + v0 = a0[i]; + v1 = a1[i]; + + if (v0 instanceof Array && v1 instanceof Array) { + if (!helpers.arrayEquals(v0, v1)) { + return false; + } + } else if (v0 !== v1) { + // NOTE: two different object instances will never be equal: {x:20} != {x:20} + return false; + } + } + + return true; + }, + + /** + * Returns a deep copy of `source` without keeping references on objects and arrays. + * @param {*} source - The value to clone. + * @returns {*} + */ + clone: function(source) { + if (helpers.isArray(source)) { + return source.map(helpers.clone); + } + + if (helpers.isObject(source)) { + var target = {}; + var keys = Object.keys(source); + var klen = keys.length; + var k = 0; + + for (; k < klen; ++k) { + target[keys[k]] = helpers.clone(source[keys[k]]); + } + + return target; + } + + return source; + }, + + /** + * The default merger when Chart.helpers.merge is called without merger option. + * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback. + * @private + */ + _merger: function(key, target, source, options) { + var tval = target[key]; + var sval = source[key]; + + if (helpers.isObject(tval) && helpers.isObject(sval)) { + helpers.merge(tval, sval, options); + } else { + target[key] = helpers.clone(sval); + } + }, + + /** + * Merges source[key] in target[key] only if target[key] is undefined. + * @private + */ + _mergerIf: function(key, target, source) { + var tval = target[key]; + var sval = source[key]; + + if (helpers.isObject(tval) && helpers.isObject(sval)) { + helpers.mergeIf(tval, sval); + } else if (!target.hasOwnProperty(key)) { + target[key] = helpers.clone(sval); + } + }, + + /** + * Recursively deep copies `source` properties into `target` with the given `options`. + * IMPORTANT: `target` is not cloned and will be updated with `source` properties. + * @param {object} target - The target object in which all sources are merged into. + * @param {object|object[]} source - Object(s) to merge into `target`. + * @param {object} [options] - Merging options: + * @param {function} [options.merger] - The merge method (key, target, source, options) + * @returns {object} The `target` object. + */ + merge: function(target, source, options) { + var sources = helpers.isArray(source) ? source : [source]; + var ilen = sources.length; + var merge, i, keys, klen, k; + + if (!helpers.isObject(target)) { + return target; + } + + options = options || {}; + merge = options.merger || helpers._merger; + + for (i = 0; i < ilen; ++i) { + source = sources[i]; + if (!helpers.isObject(source)) { + continue; + } + + keys = Object.keys(source); + for (k = 0, klen = keys.length; k < klen; ++k) { + merge(keys[k], target, source, options); + } + } + + return target; + }, + + /** + * Recursively deep copies `source` properties into `target` *only* if not defined in target. + * IMPORTANT: `target` is not cloned and will be updated with `source` properties. + * @param {object} target - The target object in which all sources are merged into. + * @param {object|object[]} source - Object(s) to merge into `target`. + * @returns {object} The `target` object. + */ + mergeIf: function(target, source) { + return helpers.merge(target, source, {merger: helpers._mergerIf}); + }, + + /** + * Applies the contents of two or more objects together into the first object. + * @param {object} target - The target object in which all objects are merged into. + * @param {object} arg1 - Object containing additional properties to merge in target. + * @param {object} argN - Additional objects containing properties to merge in target. + * @returns {object} The `target` object. + */ + extend: function(target) { + var setFn = function(value, key) { + target[key] = value; + }; + for (var i = 1, ilen = arguments.length; i < ilen; ++i) { + helpers.each(arguments[i], setFn); + } + return target; + }, + + /** + * Basic javascript inheritance based on the model created in Backbone.js + */ + inherits: function(extensions) { + var me = this; + var ChartElement = (extensions && extensions.hasOwnProperty('constructor')) ? extensions.constructor : function() { + return me.apply(this, arguments); + }; + + var Surrogate = function() { + this.constructor = ChartElement; + }; + + Surrogate.prototype = me.prototype; + ChartElement.prototype = new Surrogate(); + ChartElement.extend = helpers.inherits; + + if (extensions) { + helpers.extend(ChartElement.prototype, extensions); + } + + ChartElement.__super__ = me.prototype; + return ChartElement; + } +}; + +var helpers_core = helpers; + +// DEPRECATIONS + +/** + * Provided for backward compatibility, use Chart.helpers.callback instead. + * @function Chart.helpers.callCallback + * @deprecated since version 2.6.0 + * @todo remove at version 3 + * @private + */ +helpers.callCallback = helpers.callback; + +/** + * Provided for backward compatibility, use Array.prototype.indexOf instead. + * Array.prototype.indexOf compatibility: Chrome, Opera, Safari, FF1.5+, IE9+ + * @function Chart.helpers.indexOf + * @deprecated since version 2.7.0 + * @todo remove at version 3 + * @private + */ +helpers.indexOf = function(array, item, fromIndex) { + return Array.prototype.indexOf.call(array, item, fromIndex); +}; + +/** + * Provided for backward compatibility, use Chart.helpers.valueOrDefault instead. + * @function Chart.helpers.getValueOrDefault + * @deprecated since version 2.7.0 + * @todo remove at version 3 + * @private + */ +helpers.getValueOrDefault = helpers.valueOrDefault; + +/** + * Provided for backward compatibility, use Chart.helpers.valueAtIndexOrDefault instead. + * @function Chart.helpers.getValueAtIndexOrDefault + * @deprecated since version 2.7.0 + * @todo remove at version 3 + * @private + */ +helpers.getValueAtIndexOrDefault = helpers.valueAtIndexOrDefault; + +/** + * Easing functions adapted from Robert Penner's easing equations. + * @namespace Chart.helpers.easingEffects + * @see http://www.robertpenner.com/easing/ + */ +var effects = { + linear: function(t) { + return t; + }, + + easeInQuad: function(t) { + return t * t; + }, + + easeOutQuad: function(t) { + return -t * (t - 2); + }, + + easeInOutQuad: function(t) { + if ((t /= 0.5) < 1) { + return 0.5 * t * t; + } + return -0.5 * ((--t) * (t - 2) - 1); + }, + + easeInCubic: function(t) { + return t * t * t; + }, + + easeOutCubic: function(t) { + return (t = t - 1) * t * t + 1; + }, + + easeInOutCubic: function(t) { + if ((t /= 0.5) < 1) { + return 0.5 * t * t * t; + } + return 0.5 * ((t -= 2) * t * t + 2); + }, + + easeInQuart: function(t) { + return t * t * t * t; + }, + + easeOutQuart: function(t) { + return -((t = t - 1) * t * t * t - 1); + }, + + easeInOutQuart: function(t) { + if ((t /= 0.5) < 1) { + return 0.5 * t * t * t * t; + } + return -0.5 * ((t -= 2) * t * t * t - 2); + }, + + easeInQuint: function(t) { + return t * t * t * t * t; + }, + + easeOutQuint: function(t) { + return (t = t - 1) * t * t * t * t + 1; + }, + + easeInOutQuint: function(t) { + if ((t /= 0.5) < 1) { + return 0.5 * t * t * t * t * t; + } + return 0.5 * ((t -= 2) * t * t * t * t + 2); + }, + + easeInSine: function(t) { + return -Math.cos(t * (Math.PI / 2)) + 1; + }, + + easeOutSine: function(t) { + return Math.sin(t * (Math.PI / 2)); + }, + + easeInOutSine: function(t) { + return -0.5 * (Math.cos(Math.PI * t) - 1); + }, + + easeInExpo: function(t) { + return (t === 0) ? 0 : Math.pow(2, 10 * (t - 1)); + }, + + easeOutExpo: function(t) { + return (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1; + }, + + easeInOutExpo: function(t) { + if (t === 0) { + return 0; + } + if (t === 1) { + return 1; + } + if ((t /= 0.5) < 1) { + return 0.5 * Math.pow(2, 10 * (t - 1)); + } + return 0.5 * (-Math.pow(2, -10 * --t) + 2); + }, + + easeInCirc: function(t) { + if (t >= 1) { + return t; + } + return -(Math.sqrt(1 - t * t) - 1); + }, + + easeOutCirc: function(t) { + return Math.sqrt(1 - (t = t - 1) * t); + }, + + easeInOutCirc: function(t) { + if ((t /= 0.5) < 1) { + return -0.5 * (Math.sqrt(1 - t * t) - 1); + } + return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1); + }, + + easeInElastic: function(t) { + var s = 1.70158; + var p = 0; + var a = 1; + if (t === 0) { + return 0; + } + if (t === 1) { + return 1; + } + if (!p) { + p = 0.3; + } + if (a < 1) { + a = 1; + s = p / 4; + } else { + s = p / (2 * Math.PI) * Math.asin(1 / a); + } + return -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p)); + }, + + easeOutElastic: function(t) { + var s = 1.70158; + var p = 0; + var a = 1; + if (t === 0) { + return 0; + } + if (t === 1) { + return 1; + } + if (!p) { + p = 0.3; + } + if (a < 1) { + a = 1; + s = p / 4; + } else { + s = p / (2 * Math.PI) * Math.asin(1 / a); + } + return a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1; + }, + + easeInOutElastic: function(t) { + var s = 1.70158; + var p = 0; + var a = 1; + if (t === 0) { + return 0; + } + if ((t /= 0.5) === 2) { + return 1; + } + if (!p) { + p = 0.45; + } + if (a < 1) { + a = 1; + s = p / 4; + } else { + s = p / (2 * Math.PI) * Math.asin(1 / a); + } + if (t < 1) { + return -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p)); + } + return a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p) * 0.5 + 1; + }, + easeInBack: function(t) { + var s = 1.70158; + return t * t * ((s + 1) * t - s); + }, + + easeOutBack: function(t) { + var s = 1.70158; + return (t = t - 1) * t * ((s + 1) * t + s) + 1; + }, + + easeInOutBack: function(t) { + var s = 1.70158; + if ((t /= 0.5) < 1) { + return 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s)); + } + return 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2); + }, + + easeInBounce: function(t) { + return 1 - effects.easeOutBounce(1 - t); + }, + + easeOutBounce: function(t) { + if (t < (1 / 2.75)) { + return 7.5625 * t * t; + } + if (t < (2 / 2.75)) { + return 7.5625 * (t -= (1.5 / 2.75)) * t + 0.75; + } + if (t < (2.5 / 2.75)) { + return 7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375; + } + return 7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375; + }, + + easeInOutBounce: function(t) { + if (t < 0.5) { + return effects.easeInBounce(t * 2) * 0.5; + } + return effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5; + } +}; + +var helpers_easing = { + effects: effects +}; + +// DEPRECATIONS + +/** + * Provided for backward compatibility, use Chart.helpers.easing.effects instead. + * @function Chart.helpers.easingEffects + * @deprecated since version 2.7.0 + * @todo remove at version 3 + * @private + */ +helpers_core.easingEffects = effects; + +var PI = Math.PI; +var RAD_PER_DEG = PI / 180; +var DOUBLE_PI = PI * 2; +var HALF_PI = PI / 2; +var QUARTER_PI = PI / 4; +var TWO_THIRDS_PI = PI * 2 / 3; + +/** + * @namespace Chart.helpers.canvas + */ +var exports$1 = { + /** + * Clears the entire canvas associated to the given `chart`. + * @param {Chart} chart - The chart for which to clear the canvas. + */ + clear: function(chart) { + chart.ctx.clearRect(0, 0, chart.width, chart.height); + }, + + /** + * Creates a "path" for a rectangle with rounded corners at position (x, y) with a + * given size (width, height) and the same `radius` for all corners. + * @param {CanvasRenderingContext2D} ctx - The canvas 2D Context. + * @param {number} x - The x axis of the coordinate for the rectangle starting point. + * @param {number} y - The y axis of the coordinate for the rectangle starting point. + * @param {number} width - The rectangle's width. + * @param {number} height - The rectangle's height. + * @param {number} radius - The rounded amount (in pixels) for the four corners. + * @todo handle `radius` as top-left, top-right, bottom-right, bottom-left array/object? + */ + roundedRect: function(ctx, x, y, width, height, radius) { + if (radius) { + var r = Math.min(radius, height / 2, width / 2); + var left = x + r; + var top = y + r; + var right = x + width - r; + var bottom = y + height - r; + + ctx.moveTo(x, top); + if (left < right && top < bottom) { + ctx.arc(left, top, r, -PI, -HALF_PI); + ctx.arc(right, top, r, -HALF_PI, 0); + ctx.arc(right, bottom, r, 0, HALF_PI); + ctx.arc(left, bottom, r, HALF_PI, PI); + } else if (left < right) { + ctx.moveTo(left, y); + ctx.arc(right, top, r, -HALF_PI, HALF_PI); + ctx.arc(left, top, r, HALF_PI, PI + HALF_PI); + } else if (top < bottom) { + ctx.arc(left, top, r, -PI, 0); + ctx.arc(left, bottom, r, 0, PI); + } else { + ctx.arc(left, top, r, -PI, PI); + } + ctx.closePath(); + ctx.moveTo(x, y); + } else { + ctx.rect(x, y, width, height); + } + }, + + drawPoint: function(ctx, style, radius, x, y, rotation) { + var type, xOffset, yOffset, size, cornerRadius; + var rad = (rotation || 0) * RAD_PER_DEG; + + if (style && typeof style === 'object') { + type = style.toString(); + if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') { + ctx.drawImage(style, x - style.width / 2, y - style.height / 2, style.width, style.height); + return; + } + } + + if (isNaN(radius) || radius <= 0) { + return; + } + + ctx.beginPath(); + + switch (style) { + // Default includes circle + default: + ctx.arc(x, y, radius, 0, DOUBLE_PI); + ctx.closePath(); + break; + case 'triangle': + ctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius); + rad += TWO_THIRDS_PI; + ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius); + rad += TWO_THIRDS_PI; + ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius); + ctx.closePath(); + break; + case 'rectRounded': + // NOTE: the rounded rect implementation changed to use `arc` instead of + // `quadraticCurveTo` since it generates better results when rect is + // almost a circle. 0.516 (instead of 0.5) produces results with visually + // closer proportion to the previous impl and it is inscribed in the + // circle with `radius`. For more details, see the following PRs: + // https://github.com/chartjs/Chart.js/issues/5597 + // https://github.com/chartjs/Chart.js/issues/5858 + cornerRadius = radius * 0.516; + size = radius - cornerRadius; + xOffset = Math.cos(rad + QUARTER_PI) * size; + yOffset = Math.sin(rad + QUARTER_PI) * size; + ctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI); + ctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad); + ctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI); + ctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI); + ctx.closePath(); + break; + case 'rect': + if (!rotation) { + size = Math.SQRT1_2 * radius; + ctx.rect(x - size, y - size, 2 * size, 2 * size); + break; + } + rad += QUARTER_PI; + /* falls through */ + case 'rectRot': + xOffset = Math.cos(rad) * radius; + yOffset = Math.sin(rad) * radius; + ctx.moveTo(x - xOffset, y - yOffset); + ctx.lineTo(x + yOffset, y - xOffset); + ctx.lineTo(x + xOffset, y + yOffset); + ctx.lineTo(x - yOffset, y + xOffset); + ctx.closePath(); + break; + case 'crossRot': + rad += QUARTER_PI; + /* falls through */ + case 'cross': + xOffset = Math.cos(rad) * radius; + yOffset = Math.sin(rad) * radius; + ctx.moveTo(x - xOffset, y - yOffset); + ctx.lineTo(x + xOffset, y + yOffset); + ctx.moveTo(x + yOffset, y - xOffset); + ctx.lineTo(x - yOffset, y + xOffset); + break; + case 'star': + xOffset = Math.cos(rad) * radius; + yOffset = Math.sin(rad) * radius; + ctx.moveTo(x - xOffset, y - yOffset); + ctx.lineTo(x + xOffset, y + yOffset); + ctx.moveTo(x + yOffset, y - xOffset); + ctx.lineTo(x - yOffset, y + xOffset); + rad += QUARTER_PI; + xOffset = Math.cos(rad) * radius; + yOffset = Math.sin(rad) * radius; + ctx.moveTo(x - xOffset, y - yOffset); + ctx.lineTo(x + xOffset, y + yOffset); + ctx.moveTo(x + yOffset, y - xOffset); + ctx.lineTo(x - yOffset, y + xOffset); + break; + case 'line': + xOffset = Math.cos(rad) * radius; + yOffset = Math.sin(rad) * radius; + ctx.moveTo(x - xOffset, y - yOffset); + ctx.lineTo(x + xOffset, y + yOffset); + break; + case 'dash': + ctx.moveTo(x, y); + ctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius); + break; + } + + ctx.fill(); + ctx.stroke(); + }, + + /** + * Returns true if the point is inside the rectangle + * @param {object} point - The point to test + * @param {object} area - The rectangle + * @returns {boolean} + * @private + */ + _isPointInArea: function(point, area) { + var epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error. + + return point.x > area.left - epsilon && point.x < area.right + epsilon && + point.y > area.top - epsilon && point.y < area.bottom + epsilon; + }, + + clipArea: function(ctx, area) { + ctx.save(); + ctx.beginPath(); + ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top); + ctx.clip(); + }, + + unclipArea: function(ctx) { + ctx.restore(); + }, + + lineTo: function(ctx, previous, target, flip) { + var stepped = target.steppedLine; + if (stepped) { + if (stepped === 'middle') { + var midpoint = (previous.x + target.x) / 2.0; + ctx.lineTo(midpoint, flip ? target.y : previous.y); + ctx.lineTo(midpoint, flip ? previous.y : target.y); + } else if ((stepped === 'after' && !flip) || (stepped !== 'after' && flip)) { + ctx.lineTo(previous.x, target.y); + } else { + ctx.lineTo(target.x, previous.y); + } + ctx.lineTo(target.x, target.y); + return; + } + + if (!target.tension) { + ctx.lineTo(target.x, target.y); + return; + } + + ctx.bezierCurveTo( + flip ? previous.controlPointPreviousX : previous.controlPointNextX, + flip ? previous.controlPointPreviousY : previous.controlPointNextY, + flip ? target.controlPointNextX : target.controlPointPreviousX, + flip ? target.controlPointNextY : target.controlPointPreviousY, + target.x, + target.y); + } +}; + +var helpers_canvas = exports$1; + +// DEPRECATIONS + +/** + * Provided for backward compatibility, use Chart.helpers.canvas.clear instead. + * @namespace Chart.helpers.clear + * @deprecated since version 2.7.0 + * @todo remove at version 3 + * @private + */ +helpers_core.clear = exports$1.clear; + +/** + * Provided for backward compatibility, use Chart.helpers.canvas.roundedRect instead. + * @namespace Chart.helpers.drawRoundedRectangle + * @deprecated since version 2.7.0 + * @todo remove at version 3 + * @private + */ +helpers_core.drawRoundedRectangle = function(ctx) { + ctx.beginPath(); + exports$1.roundedRect.apply(exports$1, arguments); +}; + +var defaults = { + /** + * @private + */ + _set: function(scope, values) { + return helpers_core.merge(this[scope] || (this[scope] = {}), values); + } +}; + +defaults._set('global', { + defaultColor: 'rgba(0,0,0,0.1)', + defaultFontColor: '#666', + defaultFontFamily: "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif", + defaultFontSize: 12, + defaultFontStyle: 'normal', + defaultLineHeight: 1.2, + showLines: true +}); + +var core_defaults = defaults; + +var valueOrDefault = helpers_core.valueOrDefault; + +/** + * Converts the given font object into a CSS font string. + * @param {object} font - A font object. + * @return {string} The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font + * @private + */ +function toFontString(font) { + if (!font || helpers_core.isNullOrUndef(font.size) || helpers_core.isNullOrUndef(font.family)) { + return null; + } + + return (font.style ? font.style + ' ' : '') + + (font.weight ? font.weight + ' ' : '') + + font.size + 'px ' + + font.family; +} + +/** + * @alias Chart.helpers.options + * @namespace + */ +var helpers_options = { + /** + * Converts the given line height `value` in pixels for a specific font `size`. + * @param {number|string} value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em'). + * @param {number} size - The font size (in pixels) used to resolve relative `value`. + * @returns {number} The effective line height in pixels (size * 1.2 if value is invalid). + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height + * @since 2.7.0 + */ + toLineHeight: function(value, size) { + var matches = ('' + value).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/); + if (!matches || matches[1] === 'normal') { + return size * 1.2; + } + + value = +matches[2]; + + switch (matches[3]) { + case 'px': + return value; + case '%': + value /= 100; + break; + default: + break; + } + + return size * value; + }, + + /** + * Converts the given value into a padding object with pre-computed width/height. + * @param {number|object} value - If a number, set the value to all TRBL component, + * else, if and object, use defined properties and sets undefined ones to 0. + * @returns {object} The padding values (top, right, bottom, left, width, height) + * @since 2.7.0 + */ + toPadding: function(value) { + var t, r, b, l; + + if (helpers_core.isObject(value)) { + t = +value.top || 0; + r = +value.right || 0; + b = +value.bottom || 0; + l = +value.left || 0; + } else { + t = r = b = l = +value || 0; + } + + return { + top: t, + right: r, + bottom: b, + left: l, + height: t + b, + width: l + r + }; + }, + + /** + * Parses font options and returns the font object. + * @param {object} options - A object that contains font options to be parsed. + * @return {object} The font object. + * @todo Support font.* options and renamed to toFont(). + * @private + */ + _parseFont: function(options) { + var globalDefaults = core_defaults.global; + var size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize); + var font = { + family: valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily), + lineHeight: helpers_core.options.toLineHeight(valueOrDefault(options.lineHeight, globalDefaults.defaultLineHeight), size), + size: size, + style: valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle), + weight: null, + string: '' + }; + + font.string = toFontString(font); + return font; + }, + + /** + * Evaluates the given `inputs` sequentially and returns the first defined value. + * @param {Array} inputs - An array of values, falling back to the last value. + * @param {object} [context] - If defined and the current value is a function, the value + * is called with `context` as first argument and the result becomes the new input. + * @param {number} [index] - If defined and the current value is an array, the value + * at `index` become the new input. + * @since 2.7.0 + */ + resolve: function(inputs, context, index) { + var i, ilen, value; + + for (i = 0, ilen = inputs.length; i < ilen; ++i) { + value = inputs[i]; + if (value === undefined) { + continue; + } + if (context !== undefined && typeof value === 'function') { + value = value(context); + } + if (index !== undefined && helpers_core.isArray(value)) { + value = value[index]; + } + if (value !== undefined) { + return value; + } + } + } +}; + +var helpers$1 = helpers_core; +var easing = helpers_easing; +var canvas = helpers_canvas; +var options = helpers_options; +helpers$1.easing = easing; +helpers$1.canvas = canvas; +helpers$1.options = options; + +function interpolate(start, view, model, ease) { + var keys = Object.keys(model); + var i, ilen, key, actual, origin, target, type, c0, c1; + + for (i = 0, ilen = keys.length; i < ilen; ++i) { + key = keys[i]; + + target = model[key]; + + // if a value is added to the model after pivot() has been called, the view + // doesn't contain it, so let's initialize the view to the target value. + if (!view.hasOwnProperty(key)) { + view[key] = target; + } + + actual = view[key]; + + if (actual === target || key[0] === '_') { + continue; + } + + if (!start.hasOwnProperty(key)) { + start[key] = actual; + } + + origin = start[key]; + + type = typeof target; + + if (type === typeof origin) { + if (type === 'string') { + c0 = chartjsColor(origin); + if (c0.valid) { + c1 = chartjsColor(target); + if (c1.valid) { + view[key] = c1.mix(c0, ease).rgbString(); + continue; + } + } + } else if (helpers$1.isFinite(origin) && helpers$1.isFinite(target)) { + view[key] = origin + (target - origin) * ease; + continue; + } + } + + view[key] = target; + } +} + +var Element = function(configuration) { + helpers$1.extend(this, configuration); + this.initialize.apply(this, arguments); +}; + +helpers$1.extend(Element.prototype, { + + initialize: function() { + this.hidden = false; + }, + + pivot: function() { + var me = this; + if (!me._view) { + me._view = helpers$1.clone(me._model); + } + me._start = {}; + return me; + }, + + transition: function(ease) { + var me = this; + var model = me._model; + var start = me._start; + var view = me._view; + + // No animation -> No Transition + if (!model || ease === 1) { + me._view = model; + me._start = null; + return me; + } + + if (!view) { + view = me._view = {}; + } + + if (!start) { + start = me._start = {}; + } + + interpolate(start, view, model, ease); + + return me; + }, + + tooltipPosition: function() { + return { + x: this._model.x, + y: this._model.y + }; + }, + + hasValue: function() { + return helpers$1.isNumber(this._model.x) && helpers$1.isNumber(this._model.y); + } +}); + +Element.extend = helpers$1.inherits; + +var core_element = Element; + +var exports$2 = core_element.extend({ + chart: null, // the animation associated chart instance + currentStep: 0, // the current animation step + numSteps: 60, // default number of steps + easing: '', // the easing to use for this animation + render: null, // render function used by the animation service + + onAnimationProgress: null, // user specified callback to fire on each step of the animation + onAnimationComplete: null, // user specified callback to fire when the animation finishes +}); + +var core_animation = exports$2; + +// DEPRECATIONS + +/** + * Provided for backward compatibility, use Chart.Animation instead + * @prop Chart.Animation#animationObject + * @deprecated since version 2.6.0 + * @todo remove at version 3 + */ +Object.defineProperty(exports$2.prototype, 'animationObject', { + get: function() { + return this; + } +}); + +/** + * Provided for backward compatibility, use Chart.Animation#chart instead + * @prop Chart.Animation#chartInstance + * @deprecated since version 2.6.0 + * @todo remove at version 3 + */ +Object.defineProperty(exports$2.prototype, 'chartInstance', { + get: function() { + return this.chart; + }, + set: function(value) { + this.chart = value; + } +}); + +core_defaults._set('global', { + animation: { + duration: 1000, + easing: 'easeOutQuart', + onProgress: helpers$1.noop, + onComplete: helpers$1.noop + } +}); + +var core_animations = { + animations: [], + request: null, + + /** + * @param {Chart} chart - The chart to animate. + * @param {Chart.Animation} animation - The animation that we will animate. + * @param {number} duration - The animation duration in ms. + * @param {boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions + */ + addAnimation: function(chart, animation, duration, lazy) { + var animations = this.animations; + var i, ilen; + + animation.chart = chart; + animation.startTime = Date.now(); + animation.duration = duration; + + if (!lazy) { + chart.animating = true; + } + + for (i = 0, ilen = animations.length; i < ilen; ++i) { + if (animations[i].chart === chart) { + animations[i] = animation; + return; + } + } + + animations.push(animation); + + // If there are no animations queued, manually kickstart a digest, for lack of a better word + if (animations.length === 1) { + this.requestAnimationFrame(); + } + }, + + cancelAnimation: function(chart) { + var index = helpers$1.findIndex(this.animations, function(animation) { + return animation.chart === chart; + }); + + if (index !== -1) { + this.animations.splice(index, 1); + chart.animating = false; + } + }, + + requestAnimationFrame: function() { + var me = this; + if (me.request === null) { + // Skip animation frame requests until the active one is executed. + // This can happen when processing mouse events, e.g. 'mousemove' + // and 'mouseout' events will trigger multiple renders. + me.request = helpers$1.requestAnimFrame.call(window, function() { + me.request = null; + me.startDigest(); + }); + } + }, + + /** + * @private + */ + startDigest: function() { + var me = this; + + me.advance(); + + // Do we have more stuff to animate? + if (me.animations.length > 0) { + me.requestAnimationFrame(); + } + }, + + /** + * @private + */ + advance: function() { + var animations = this.animations; + var animation, chart, numSteps, nextStep; + var i = 0; + + // 1 animation per chart, so we are looping charts here + while (i < animations.length) { + animation = animations[i]; + chart = animation.chart; + numSteps = animation.numSteps; + + // Make sure that currentStep starts at 1 + // https://github.com/chartjs/Chart.js/issues/6104 + nextStep = Math.floor((Date.now() - animation.startTime) / animation.duration * numSteps) + 1; + animation.currentStep = Math.min(nextStep, numSteps); + + helpers$1.callback(animation.render, [chart, animation], chart); + helpers$1.callback(animation.onAnimationProgress, [animation], chart); + + if (animation.currentStep >= numSteps) { + helpers$1.callback(animation.onAnimationComplete, [animation], chart); + chart.animating = false; + animations.splice(i, 1); + } else { + ++i; + } + } + } +}; + +var resolve = helpers$1.options.resolve; + +var arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift']; + +/** + * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice', + * 'unshift') and notify the listener AFTER the array has been altered. Listeners are + * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments. + */ +function listenArrayEvents(array, listener) { + if (array._chartjs) { + array._chartjs.listeners.push(listener); + return; + } + + Object.defineProperty(array, '_chartjs', { + configurable: true, + enumerable: false, + value: { + listeners: [listener] + } + }); + + arrayEvents.forEach(function(key) { + var method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1); + var base = array[key]; + + Object.defineProperty(array, key, { + configurable: true, + enumerable: false, + value: function() { + var args = Array.prototype.slice.call(arguments); + var res = base.apply(this, args); + + helpers$1.each(array._chartjs.listeners, function(object) { + if (typeof object[method] === 'function') { + object[method].apply(object, args); + } + }); + + return res; + } + }); + }); +} + +/** + * Removes the given array event listener and cleanup extra attached properties (such as + * the _chartjs stub and overridden methods) if array doesn't have any more listeners. + */ +function unlistenArrayEvents(array, listener) { + var stub = array._chartjs; + if (!stub) { + return; + } + + var listeners = stub.listeners; + var index = listeners.indexOf(listener); + if (index !== -1) { + listeners.splice(index, 1); + } + + if (listeners.length > 0) { + return; + } + + arrayEvents.forEach(function(key) { + delete array[key]; + }); + + delete array._chartjs; +} + +// Base class for all dataset controllers (line, bar, etc) +var DatasetController = function(chart, datasetIndex) { + this.initialize(chart, datasetIndex); +}; + +helpers$1.extend(DatasetController.prototype, { + + /** + * Element type used to generate a meta dataset (e.g. Chart.element.Line). + * @type {Chart.core.element} + */ + datasetElementType: null, + + /** + * Element type used to generate a meta data (e.g. Chart.element.Point). + * @type {Chart.core.element} + */ + dataElementType: null, + + initialize: function(chart, datasetIndex) { + var me = this; + me.chart = chart; + me.index = datasetIndex; + me.linkScales(); + me.addElements(); + }, + + updateIndex: function(datasetIndex) { + this.index = datasetIndex; + }, + + linkScales: function() { + var me = this; + var meta = me.getMeta(); + var dataset = me.getDataset(); + + if (meta.xAxisID === null || !(meta.xAxisID in me.chart.scales)) { + meta.xAxisID = dataset.xAxisID || me.chart.options.scales.xAxes[0].id; + } + if (meta.yAxisID === null || !(meta.yAxisID in me.chart.scales)) { + meta.yAxisID = dataset.yAxisID || me.chart.options.scales.yAxes[0].id; + } + }, + + getDataset: function() { + return this.chart.data.datasets[this.index]; + }, + + getMeta: function() { + return this.chart.getDatasetMeta(this.index); + }, + + getScaleForId: function(scaleID) { + return this.chart.scales[scaleID]; + }, + + /** + * @private + */ + _getValueScaleId: function() { + return this.getMeta().yAxisID; + }, + + /** + * @private + */ + _getIndexScaleId: function() { + return this.getMeta().xAxisID; + }, + + /** + * @private + */ + _getValueScale: function() { + return this.getScaleForId(this._getValueScaleId()); + }, + + /** + * @private + */ + _getIndexScale: function() { + return this.getScaleForId(this._getIndexScaleId()); + }, + + reset: function() { + this.update(true); + }, + + /** + * @private + */ + destroy: function() { + if (this._data) { + unlistenArrayEvents(this._data, this); + } + }, + + createMetaDataset: function() { + var me = this; + var type = me.datasetElementType; + return type && new type({ + _chart: me.chart, + _datasetIndex: me.index + }); + }, + + createMetaData: function(index) { + var me = this; + var type = me.dataElementType; + return type && new type({ + _chart: me.chart, + _datasetIndex: me.index, + _index: index + }); + }, + + addElements: function() { + var me = this; + var meta = me.getMeta(); + var data = me.getDataset().data || []; + var metaData = meta.data; + var i, ilen; + + for (i = 0, ilen = data.length; i < ilen; ++i) { + metaData[i] = metaData[i] || me.createMetaData(i); + } + + meta.dataset = meta.dataset || me.createMetaDataset(); + }, + + addElementAndReset: function(index) { + var element = this.createMetaData(index); + this.getMeta().data.splice(index, 0, element); + this.updateElement(element, index, true); + }, + + buildOrUpdateElements: function() { + var me = this; + var dataset = me.getDataset(); + var data = dataset.data || (dataset.data = []); + + // In order to correctly handle data addition/deletion animation (an thus simulate + // real-time charts), we need to monitor these data modifications and synchronize + // the internal meta data accordingly. + if (me._data !== data) { + if (me._data) { + // This case happens when the user replaced the data array instance. + unlistenArrayEvents(me._data, me); + } + + if (data && Object.isExtensible(data)) { + listenArrayEvents(data, me); + } + me._data = data; + } + + // Re-sync meta data in case the user replaced the data array or if we missed + // any updates and so make sure that we handle number of datapoints changing. + me.resyncElements(); + }, + + update: helpers$1.noop, + + transition: function(easingValue) { + var meta = this.getMeta(); + var elements = meta.data || []; + var ilen = elements.length; + var i = 0; + + for (; i < ilen; ++i) { + elements[i].transition(easingValue); + } + + if (meta.dataset) { + meta.dataset.transition(easingValue); + } + }, + + draw: function() { + var meta = this.getMeta(); + var elements = meta.data || []; + var ilen = elements.length; + var i = 0; + + if (meta.dataset) { + meta.dataset.draw(); + } + + for (; i < ilen; ++i) { + elements[i].draw(); + } + }, + + removeHoverStyle: function(element) { + helpers$1.merge(element._model, element.$previousStyle || {}); + delete element.$previousStyle; + }, + + setHoverStyle: function(element) { + var dataset = this.chart.data.datasets[element._datasetIndex]; + var index = element._index; + var custom = element.custom || {}; + var model = element._model; + var getHoverColor = helpers$1.getHoverColor; + + element.$previousStyle = { + backgroundColor: model.backgroundColor, + borderColor: model.borderColor, + borderWidth: model.borderWidth + }; + + model.backgroundColor = resolve([custom.hoverBackgroundColor, dataset.hoverBackgroundColor, getHoverColor(model.backgroundColor)], undefined, index); + model.borderColor = resolve([custom.hoverBorderColor, dataset.hoverBorderColor, getHoverColor(model.borderColor)], undefined, index); + model.borderWidth = resolve([custom.hoverBorderWidth, dataset.hoverBorderWidth, model.borderWidth], undefined, index); + }, + + /** + * @private + */ + resyncElements: function() { + var me = this; + var meta = me.getMeta(); + var data = me.getDataset().data; + var numMeta = meta.data.length; + var numData = data.length; + + if (numData < numMeta) { + meta.data.splice(numData, numMeta - numData); + } else if (numData > numMeta) { + me.insertElements(numMeta, numData - numMeta); + } + }, + + /** + * @private + */ + insertElements: function(start, count) { + for (var i = 0; i < count; ++i) { + this.addElementAndReset(start + i); + } + }, + + /** + * @private + */ + onDataPush: function() { + var count = arguments.length; + this.insertElements(this.getDataset().data.length - count, count); + }, + + /** + * @private + */ + onDataPop: function() { + this.getMeta().data.pop(); + }, + + /** + * @private + */ + onDataShift: function() { + this.getMeta().data.shift(); + }, + + /** + * @private + */ + onDataSplice: function(start, count) { + this.getMeta().data.splice(start, count); + this.insertElements(start, arguments.length - 2); + }, + + /** + * @private + */ + onDataUnshift: function() { + this.insertElements(0, arguments.length); + } +}); + +DatasetController.extend = helpers$1.inherits; + +var core_datasetController = DatasetController; + +core_defaults._set('global', { + elements: { + arc: { + backgroundColor: core_defaults.global.defaultColor, + borderColor: '#fff', + borderWidth: 2, + borderAlign: 'center' + } + } +}); + +var element_arc = core_element.extend({ + inLabelRange: function(mouseX) { + var vm = this._view; + + if (vm) { + return (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hoverRadius, 2)); + } + return false; + }, + + inRange: function(chartX, chartY) { + var vm = this._view; + + if (vm) { + var pointRelativePosition = helpers$1.getAngleFromPoint(vm, {x: chartX, y: chartY}); + var angle = pointRelativePosition.angle; + var distance = pointRelativePosition.distance; + + // Sanitise angle range + var startAngle = vm.startAngle; + var endAngle = vm.endAngle; + while (endAngle < startAngle) { + endAngle += 2.0 * Math.PI; + } + while (angle > endAngle) { + angle -= 2.0 * Math.PI; + } + while (angle < startAngle) { + angle += 2.0 * Math.PI; + } + + // Check if within the range of the open/close angle + var betweenAngles = (angle >= startAngle && angle <= endAngle); + var withinRadius = (distance >= vm.innerRadius && distance <= vm.outerRadius); + + return (betweenAngles && withinRadius); + } + return false; + }, + + getCenterPoint: function() { + var vm = this._view; + var halfAngle = (vm.startAngle + vm.endAngle) / 2; + var halfRadius = (vm.innerRadius + vm.outerRadius) / 2; + return { + x: vm.x + Math.cos(halfAngle) * halfRadius, + y: vm.y + Math.sin(halfAngle) * halfRadius + }; + }, + + getArea: function() { + var vm = this._view; + return Math.PI * ((vm.endAngle - vm.startAngle) / (2 * Math.PI)) * (Math.pow(vm.outerRadius, 2) - Math.pow(vm.innerRadius, 2)); + }, + + tooltipPosition: function() { + var vm = this._view; + var centreAngle = vm.startAngle + ((vm.endAngle - vm.startAngle) / 2); + var rangeFromCentre = (vm.outerRadius - vm.innerRadius) / 2 + vm.innerRadius; + + return { + x: vm.x + (Math.cos(centreAngle) * rangeFromCentre), + y: vm.y + (Math.sin(centreAngle) * rangeFromCentre) + }; + }, + + draw: function() { + var ctx = this._chart.ctx; + var vm = this._view; + var sA = vm.startAngle; + var eA = vm.endAngle; + var pixelMargin = (vm.borderAlign === 'inner') ? 0.33 : 0; + var angleMargin; + + ctx.save(); + + ctx.beginPath(); + ctx.arc(vm.x, vm.y, Math.max(vm.outerRadius - pixelMargin, 0), sA, eA); + ctx.arc(vm.x, vm.y, vm.innerRadius, eA, sA, true); + ctx.closePath(); + + ctx.fillStyle = vm.backgroundColor; + ctx.fill(); + + if (vm.borderWidth) { + if (vm.borderAlign === 'inner') { + // Draw an inner border by cliping the arc and drawing a double-width border + // Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders + ctx.beginPath(); + angleMargin = pixelMargin / vm.outerRadius; + ctx.arc(vm.x, vm.y, vm.outerRadius, sA - angleMargin, eA + angleMargin); + if (vm.innerRadius > pixelMargin) { + angleMargin = pixelMargin / vm.innerRadius; + ctx.arc(vm.x, vm.y, vm.innerRadius - pixelMargin, eA + angleMargin, sA - angleMargin, true); + } else { + ctx.arc(vm.x, vm.y, pixelMargin, eA + Math.PI / 2, sA - Math.PI / 2); + } + ctx.closePath(); + ctx.clip(); + + ctx.beginPath(); + ctx.arc(vm.x, vm.y, vm.outerRadius, sA, eA); + ctx.arc(vm.x, vm.y, vm.innerRadius, eA, sA, true); + ctx.closePath(); + + ctx.lineWidth = vm.borderWidth * 2; + ctx.lineJoin = 'round'; + } else { + ctx.lineWidth = vm.borderWidth; + ctx.lineJoin = 'bevel'; + } + + ctx.strokeStyle = vm.borderColor; + ctx.stroke(); + } + + ctx.restore(); + } +}); + +var valueOrDefault$1 = helpers$1.valueOrDefault; + +var defaultColor = core_defaults.global.defaultColor; + +core_defaults._set('global', { + elements: { + line: { + tension: 0.4, + backgroundColor: defaultColor, + borderWidth: 3, + borderColor: defaultColor, + borderCapStyle: 'butt', + borderDash: [], + borderDashOffset: 0.0, + borderJoinStyle: 'miter', + capBezierPoints: true, + fill: true, // do we fill in the area between the line and its base axis + } + } +}); + +var element_line = core_element.extend({ + draw: function() { + var me = this; + var vm = me._view; + var ctx = me._chart.ctx; + var spanGaps = vm.spanGaps; + var points = me._children.slice(); // clone array + var globalDefaults = core_defaults.global; + var globalOptionLineElements = globalDefaults.elements.line; + var lastDrawnIndex = -1; + var index, current, previous, currentVM; + + // If we are looping, adding the first point again + if (me._loop && points.length) { + points.push(points[0]); + } + + ctx.save(); + + // Stroke Line Options + ctx.lineCap = vm.borderCapStyle || globalOptionLineElements.borderCapStyle; + + // IE 9 and 10 do not support line dash + if (ctx.setLineDash) { + ctx.setLineDash(vm.borderDash || globalOptionLineElements.borderDash); + } + + ctx.lineDashOffset = valueOrDefault$1(vm.borderDashOffset, globalOptionLineElements.borderDashOffset); + ctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle; + ctx.lineWidth = valueOrDefault$1(vm.borderWidth, globalOptionLineElements.borderWidth); + ctx.strokeStyle = vm.borderColor || globalDefaults.defaultColor; + + // Stroke Line + ctx.beginPath(); + lastDrawnIndex = -1; + + for (index = 0; index < points.length; ++index) { + current = points[index]; + previous = helpers$1.previousItem(points, index); + currentVM = current._view; + + // First point moves to it's starting position no matter what + if (index === 0) { + if (!currentVM.skip) { + ctx.moveTo(currentVM.x, currentVM.y); + lastDrawnIndex = index; + } + } else { + previous = lastDrawnIndex === -1 ? previous : points[lastDrawnIndex]; + + if (!currentVM.skip) { + if ((lastDrawnIndex !== (index - 1) && !spanGaps) || lastDrawnIndex === -1) { + // There was a gap and this is the first point after the gap + ctx.moveTo(currentVM.x, currentVM.y); + } else { + // Line to next point + helpers$1.canvas.lineTo(ctx, previous._view, current._view); + } + lastDrawnIndex = index; + } + } + } + + ctx.stroke(); + ctx.restore(); + } +}); + +var valueOrDefault$2 = helpers$1.valueOrDefault; + +var defaultColor$1 = core_defaults.global.defaultColor; + +core_defaults._set('global', { + elements: { + point: { + radius: 3, + pointStyle: 'circle', + backgroundColor: defaultColor$1, + borderColor: defaultColor$1, + borderWidth: 1, + // Hover + hitRadius: 1, + hoverRadius: 4, + hoverBorderWidth: 1 + } + } +}); + +function xRange(mouseX) { + var vm = this._view; + return vm ? (Math.abs(mouseX - vm.x) < vm.radius + vm.hitRadius) : false; +} + +function yRange(mouseY) { + var vm = this._view; + return vm ? (Math.abs(mouseY - vm.y) < vm.radius + vm.hitRadius) : false; +} + +var element_point = core_element.extend({ + inRange: function(mouseX, mouseY) { + var vm = this._view; + return vm ? ((Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2)) < Math.pow(vm.hitRadius + vm.radius, 2)) : false; + }, + + inLabelRange: xRange, + inXRange: xRange, + inYRange: yRange, + + getCenterPoint: function() { + var vm = this._view; + return { + x: vm.x, + y: vm.y + }; + }, + + getArea: function() { + return Math.PI * Math.pow(this._view.radius, 2); + }, + + tooltipPosition: function() { + var vm = this._view; + return { + x: vm.x, + y: vm.y, + padding: vm.radius + vm.borderWidth + }; + }, + + draw: function(chartArea) { + var vm = this._view; + var ctx = this._chart.ctx; + var pointStyle = vm.pointStyle; + var rotation = vm.rotation; + var radius = vm.radius; + var x = vm.x; + var y = vm.y; + var globalDefaults = core_defaults.global; + var defaultColor = globalDefaults.defaultColor; // eslint-disable-line no-shadow + + if (vm.skip) { + return; + } + + // Clipping for Points. + if (chartArea === undefined || helpers$1.canvas._isPointInArea(vm, chartArea)) { + ctx.strokeStyle = vm.borderColor || defaultColor; + ctx.lineWidth = valueOrDefault$2(vm.borderWidth, globalDefaults.elements.point.borderWidth); + ctx.fillStyle = vm.backgroundColor || defaultColor; + helpers$1.canvas.drawPoint(ctx, pointStyle, radius, x, y, rotation); + } + } +}); + +var defaultColor$2 = core_defaults.global.defaultColor; + +core_defaults._set('global', { + elements: { + rectangle: { + backgroundColor: defaultColor$2, + borderColor: defaultColor$2, + borderSkipped: 'bottom', + borderWidth: 0 + } + } +}); + +function isVertical(vm) { + return vm && vm.width !== undefined; +} + +/** + * Helper function to get the bounds of the bar regardless of the orientation + * @param bar {Chart.Element.Rectangle} the bar + * @return {Bounds} bounds of the bar + * @private + */ +function getBarBounds(vm) { + var x1, x2, y1, y2, half; + + if (isVertical(vm)) { + half = vm.width / 2; + x1 = vm.x - half; + x2 = vm.x + half; + y1 = Math.min(vm.y, vm.base); + y2 = Math.max(vm.y, vm.base); + } else { + half = vm.height / 2; + x1 = Math.min(vm.x, vm.base); + x2 = Math.max(vm.x, vm.base); + y1 = vm.y - half; + y2 = vm.y + half; + } + + return { + left: x1, + top: y1, + right: x2, + bottom: y2 + }; +} + +function swap(orig, v1, v2) { + return orig === v1 ? v2 : orig === v2 ? v1 : orig; +} + +function parseBorderSkipped(vm) { + var edge = vm.borderSkipped; + var res = {}; + + if (!edge) { + return res; + } + + if (vm.horizontal) { + if (vm.base > vm.x) { + edge = swap(edge, 'left', 'right'); + } + } else if (vm.base < vm.y) { + edge = swap(edge, 'bottom', 'top'); + } + + res[edge] = true; + return res; +} + +function parseBorderWidth(vm, maxW, maxH) { + var value = vm.borderWidth; + var skip = parseBorderSkipped(vm); + var t, r, b, l; + + if (helpers$1.isObject(value)) { + t = +value.top || 0; + r = +value.right || 0; + b = +value.bottom || 0; + l = +value.left || 0; + } else { + t = r = b = l = +value || 0; + } + + return { + t: skip.top || (t < 0) ? 0 : t > maxH ? maxH : t, + r: skip.right || (r < 0) ? 0 : r > maxW ? maxW : r, + b: skip.bottom || (b < 0) ? 0 : b > maxH ? maxH : b, + l: skip.left || (l < 0) ? 0 : l > maxW ? maxW : l + }; +} + +function boundingRects(vm) { + var bounds = getBarBounds(vm); + var width = bounds.right - bounds.left; + var height = bounds.bottom - bounds.top; + var border = parseBorderWidth(vm, width / 2, height / 2); + + return { + outer: { + x: bounds.left, + y: bounds.top, + w: width, + h: height + }, + inner: { + x: bounds.left + border.l, + y: bounds.top + border.t, + w: width - border.l - border.r, + h: height - border.t - border.b + } + }; +} + +function inRange(vm, x, y) { + var skipX = x === null; + var skipY = y === null; + var bounds = !vm || (skipX && skipY) ? false : getBarBounds(vm); + + return bounds + && (skipX || x >= bounds.left && x <= bounds.right) + && (skipY || y >= bounds.top && y <= bounds.bottom); +} + +var element_rectangle = core_element.extend({ + draw: function() { + var ctx = this._chart.ctx; + var vm = this._view; + var rects = boundingRects(vm); + var outer = rects.outer; + var inner = rects.inner; + + ctx.fillStyle = vm.backgroundColor; + ctx.fillRect(outer.x, outer.y, outer.w, outer.h); + + if (outer.w === inner.w && outer.h === inner.h) { + return; + } + + ctx.save(); + ctx.beginPath(); + ctx.rect(outer.x, outer.y, outer.w, outer.h); + ctx.clip(); + ctx.fillStyle = vm.borderColor; + ctx.rect(inner.x, inner.y, inner.w, inner.h); + ctx.fill('evenodd'); + ctx.restore(); + }, + + height: function() { + var vm = this._view; + return vm.base - vm.y; + }, + + inRange: function(mouseX, mouseY) { + return inRange(this._view, mouseX, mouseY); + }, + + inLabelRange: function(mouseX, mouseY) { + var vm = this._view; + return isVertical(vm) + ? inRange(vm, mouseX, null) + : inRange(vm, null, mouseY); + }, + + inXRange: function(mouseX) { + return inRange(this._view, mouseX, null); + }, + + inYRange: function(mouseY) { + return inRange(this._view, null, mouseY); + }, + + getCenterPoint: function() { + var vm = this._view; + var x, y; + if (isVertical(vm)) { + x = vm.x; + y = (vm.y + vm.base) / 2; + } else { + x = (vm.x + vm.base) / 2; + y = vm.y; + } + + return {x: x, y: y}; + }, + + getArea: function() { + var vm = this._view; + + return isVertical(vm) + ? vm.width * Math.abs(vm.y - vm.base) + : vm.height * Math.abs(vm.x - vm.base); + }, + + tooltipPosition: function() { + var vm = this._view; + return { + x: vm.x, + y: vm.y + }; + } +}); + +var elements = {}; +var Arc = element_arc; +var Line = element_line; +var Point = element_point; +var Rectangle = element_rectangle; +elements.Arc = Arc; +elements.Line = Line; +elements.Point = Point; +elements.Rectangle = Rectangle; + +var resolve$1 = helpers$1.options.resolve; + +core_defaults._set('bar', { + hover: { + mode: 'label' + }, + + scales: { + xAxes: [{ + type: 'category', + categoryPercentage: 0.8, + barPercentage: 0.9, + offset: true, + gridLines: { + offsetGridLines: true + } + }], + + yAxes: [{ + type: 'linear' + }] + } +}); + +/** + * Computes the "optimal" sample size to maintain bars equally sized while preventing overlap. + * @private + */ +function computeMinSampleSize(scale, pixels) { + var min = scale.isHorizontal() ? scale.width : scale.height; + var ticks = scale.getTicks(); + var prev, curr, i, ilen; + + for (i = 1, ilen = pixels.length; i < ilen; ++i) { + min = Math.min(min, Math.abs(pixels[i] - pixels[i - 1])); + } + + for (i = 0, ilen = ticks.length; i < ilen; ++i) { + curr = scale.getPixelForTick(i); + min = i > 0 ? Math.min(min, curr - prev) : min; + prev = curr; + } + + return min; +} + +/** + * Computes an "ideal" category based on the absolute bar thickness or, if undefined or null, + * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This + * mode currently always generates bars equally sized (until we introduce scriptable options?). + * @private + */ +function computeFitCategoryTraits(index, ruler, options) { + var thickness = options.barThickness; + var count = ruler.stackCount; + var curr = ruler.pixels[index]; + var size, ratio; + + if (helpers$1.isNullOrUndef(thickness)) { + size = ruler.min * options.categoryPercentage; + ratio = options.barPercentage; + } else { + // When bar thickness is enforced, category and bar percentages are ignored. + // Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%') + // and deprecate barPercentage since this value is ignored when thickness is absolute. + size = thickness * count; + ratio = 1; + } + + return { + chunk: size / count, + ratio: ratio, + start: curr - (size / 2) + }; +} + +/** + * Computes an "optimal" category that globally arranges bars side by side (no gap when + * percentage options are 1), based on the previous and following categories. This mode + * generates bars with different widths when data are not evenly spaced. + * @private + */ +function computeFlexCategoryTraits(index, ruler, options) { + var pixels = ruler.pixels; + var curr = pixels[index]; + var prev = index > 0 ? pixels[index - 1] : null; + var next = index < pixels.length - 1 ? pixels[index + 1] : null; + var percent = options.categoryPercentage; + var start, size; + + if (prev === null) { + // first data: its size is double based on the next point or, + // if it's also the last data, we use the scale size. + prev = curr - (next === null ? ruler.end - ruler.start : next - curr); + } + + if (next === null) { + // last data: its size is also double based on the previous point. + next = curr + curr - prev; + } + + start = curr - (curr - Math.min(prev, next)) / 2 * percent; + size = Math.abs(next - prev) / 2 * percent; + + return { + chunk: size / ruler.stackCount, + ratio: options.barPercentage, + start: start + }; +} + +var controller_bar = core_datasetController.extend({ + + dataElementType: elements.Rectangle, + + initialize: function() { + var me = this; + var meta; + + core_datasetController.prototype.initialize.apply(me, arguments); + + meta = me.getMeta(); + meta.stack = me.getDataset().stack; + meta.bar = true; + }, + + update: function(reset) { + var me = this; + var rects = me.getMeta().data; + var i, ilen; + + me._ruler = me.getRuler(); + + for (i = 0, ilen = rects.length; i < ilen; ++i) { + me.updateElement(rects[i], i, reset); + } + }, + + updateElement: function(rectangle, index, reset) { + var me = this; + var meta = me.getMeta(); + var dataset = me.getDataset(); + var options = me._resolveElementOptions(rectangle, index); + + rectangle._xScale = me.getScaleForId(meta.xAxisID); + rectangle._yScale = me.getScaleForId(meta.yAxisID); + rectangle._datasetIndex = me.index; + rectangle._index = index; + rectangle._model = { + backgroundColor: options.backgroundColor, + borderColor: options.borderColor, + borderSkipped: options.borderSkipped, + borderWidth: options.borderWidth, + datasetLabel: dataset.label, + label: me.chart.data.labels[index] + }; + + me._updateElementGeometry(rectangle, index, reset); + + rectangle.pivot(); + }, + + /** + * @private + */ + _updateElementGeometry: function(rectangle, index, reset) { + var me = this; + var model = rectangle._model; + var vscale = me._getValueScale(); + var base = vscale.getBasePixel(); + var horizontal = vscale.isHorizontal(); + var ruler = me._ruler || me.getRuler(); + var vpixels = me.calculateBarValuePixels(me.index, index); + var ipixels = me.calculateBarIndexPixels(me.index, index, ruler); + + model.horizontal = horizontal; + model.base = reset ? base : vpixels.base; + model.x = horizontal ? reset ? base : vpixels.head : ipixels.center; + model.y = horizontal ? ipixels.center : reset ? base : vpixels.head; + model.height = horizontal ? ipixels.size : undefined; + model.width = horizontal ? undefined : ipixels.size; + }, + + /** + * Returns the stacks based on groups and bar visibility. + * @param {number} [last] - The dataset index + * @returns {string[]} The list of stack IDs + * @private + */ + _getStacks: function(last) { + var me = this; + var chart = me.chart; + var scale = me._getIndexScale(); + var stacked = scale.options.stacked; + var ilen = last === undefined ? chart.data.datasets.length : last + 1; + var stacks = []; + var i, meta; + + for (i = 0; i < ilen; ++i) { + meta = chart.getDatasetMeta(i); + if (meta.bar && chart.isDatasetVisible(i) && + (stacked === false || + (stacked === true && stacks.indexOf(meta.stack) === -1) || + (stacked === undefined && (meta.stack === undefined || stacks.indexOf(meta.stack) === -1)))) { + stacks.push(meta.stack); + } + } + + return stacks; + }, + + /** + * Returns the effective number of stacks based on groups and bar visibility. + * @private + */ + getStackCount: function() { + return this._getStacks().length; + }, + + /** + * Returns the stack index for the given dataset based on groups and bar visibility. + * @param {number} [datasetIndex] - The dataset index + * @param {string} [name] - The stack name to find + * @returns {number} The stack index + * @private + */ + getStackIndex: function(datasetIndex, name) { + var stacks = this._getStacks(datasetIndex); + var index = (name !== undefined) + ? stacks.indexOf(name) + : -1; // indexOf returns -1 if element is not present + + return (index === -1) + ? stacks.length - 1 + : index; + }, + + /** + * @private + */ + getRuler: function() { + var me = this; + var scale = me._getIndexScale(); + var stackCount = me.getStackCount(); + var datasetIndex = me.index; + var isHorizontal = scale.isHorizontal(); + var start = isHorizontal ? scale.left : scale.top; + var end = start + (isHorizontal ? scale.width : scale.height); + var pixels = []; + var i, ilen, min; + + for (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) { + pixels.push(scale.getPixelForValue(null, i, datasetIndex)); + } + + min = helpers$1.isNullOrUndef(scale.options.barThickness) + ? computeMinSampleSize(scale, pixels) + : -1; + + return { + min: min, + pixels: pixels, + start: start, + end: end, + stackCount: stackCount, + scale: scale + }; + }, + + /** + * Note: pixel values are not clamped to the scale area. + * @private + */ + calculateBarValuePixels: function(datasetIndex, index) { + var me = this; + var chart = me.chart; + var meta = me.getMeta(); + var scale = me._getValueScale(); + var isHorizontal = scale.isHorizontal(); + var datasets = chart.data.datasets; + var value = +scale.getRightValue(datasets[datasetIndex].data[index]); + var minBarLength = scale.options.minBarLength; + var stacked = scale.options.stacked; + var stack = meta.stack; + var start = 0; + var i, imeta, ivalue, base, head, size; + + if (stacked || (stacked === undefined && stack !== undefined)) { + for (i = 0; i < datasetIndex; ++i) { + imeta = chart.getDatasetMeta(i); + + if (imeta.bar && + imeta.stack === stack && + imeta.controller._getValueScaleId() === scale.id && + chart.isDatasetVisible(i)) { + + ivalue = +scale.getRightValue(datasets[i].data[index]); + if ((value < 0 && ivalue < 0) || (value >= 0 && ivalue > 0)) { + start += ivalue; + } + } + } + } + + base = scale.getPixelForValue(start); + head = scale.getPixelForValue(start + value); + size = head - base; + + if (minBarLength !== undefined && Math.abs(size) < minBarLength) { + size = minBarLength; + if (value >= 0 && !isHorizontal || value < 0 && isHorizontal) { + head = base - minBarLength; + } else { + head = base + minBarLength; + } + } + + return { + size: size, + base: base, + head: head, + center: head + size / 2 + }; + }, + + /** + * @private + */ + calculateBarIndexPixels: function(datasetIndex, index, ruler) { + var me = this; + var options = ruler.scale.options; + var range = options.barThickness === 'flex' + ? computeFlexCategoryTraits(index, ruler, options) + : computeFitCategoryTraits(index, ruler, options); + + var stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack); + var center = range.start + (range.chunk * stackIndex) + (range.chunk / 2); + var size = Math.min( + helpers$1.valueOrDefault(options.maxBarThickness, Infinity), + range.chunk * range.ratio); + + return { + base: center - size / 2, + head: center + size / 2, + center: center, + size: size + }; + }, + + draw: function() { + var me = this; + var chart = me.chart; + var scale = me._getValueScale(); + var rects = me.getMeta().data; + var dataset = me.getDataset(); + var ilen = rects.length; + var i = 0; + + helpers$1.canvas.clipArea(chart.ctx, chart.chartArea); + + for (; i < ilen; ++i) { + if (!isNaN(scale.getRightValue(dataset.data[i]))) { + rects[i].draw(); + } + } + + helpers$1.canvas.unclipArea(chart.ctx); + }, + + /** + * @private + */ + _resolveElementOptions: function(rectangle, index) { + var me = this; + var chart = me.chart; + var datasets = chart.data.datasets; + var dataset = datasets[me.index]; + var custom = rectangle.custom || {}; + var options = chart.options.elements.rectangle; + var values = {}; + var i, ilen, key; + + // Scriptable options + var context = { + chart: chart, + dataIndex: index, + dataset: dataset, + datasetIndex: me.index + }; + + var keys = [ + 'backgroundColor', + 'borderColor', + 'borderSkipped', + 'borderWidth' + ]; + + for (i = 0, ilen = keys.length; i < ilen; ++i) { + key = keys[i]; + values[key] = resolve$1([ + custom[key], + dataset[key], + options[key] + ], context, index); + } + + return values; + } +}); + +var valueOrDefault$3 = helpers$1.valueOrDefault; +var resolve$2 = helpers$1.options.resolve; + +core_defaults._set('bubble', { + hover: { + mode: 'single' + }, + + scales: { + xAxes: [{ + type: 'linear', // bubble should probably use a linear scale by default + position: 'bottom', + id: 'x-axis-0' // need an ID so datasets can reference the scale + }], + yAxes: [{ + type: 'linear', + position: 'left', + id: 'y-axis-0' + }] + }, + + tooltips: { + callbacks: { + title: function() { + // Title doesn't make sense for scatter since we format the data as a point + return ''; + }, + label: function(item, data) { + var datasetLabel = data.datasets[item.datasetIndex].label || ''; + var dataPoint = data.datasets[item.datasetIndex].data[item.index]; + return datasetLabel + ': (' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.r + ')'; + } + } + } +}); + +var controller_bubble = core_datasetController.extend({ + /** + * @protected + */ + dataElementType: elements.Point, + + /** + * @protected + */ + update: function(reset) { + var me = this; + var meta = me.getMeta(); + var points = meta.data; + + // Update Points + helpers$1.each(points, function(point, index) { + me.updateElement(point, index, reset); + }); + }, + + /** + * @protected + */ + updateElement: function(point, index, reset) { + var me = this; + var meta = me.getMeta(); + var custom = point.custom || {}; + var xScale = me.getScaleForId(meta.xAxisID); + var yScale = me.getScaleForId(meta.yAxisID); + var options = me._resolveElementOptions(point, index); + var data = me.getDataset().data[index]; + var dsIndex = me.index; + + var x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex); + var y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex); + + point._xScale = xScale; + point._yScale = yScale; + point._options = options; + point._datasetIndex = dsIndex; + point._index = index; + point._model = { + backgroundColor: options.backgroundColor, + borderColor: options.borderColor, + borderWidth: options.borderWidth, + hitRadius: options.hitRadius, + pointStyle: options.pointStyle, + rotation: options.rotation, + radius: reset ? 0 : options.radius, + skip: custom.skip || isNaN(x) || isNaN(y), + x: x, + y: y, + }; + + point.pivot(); + }, + + /** + * @protected + */ + setHoverStyle: function(point) { + var model = point._model; + var options = point._options; + var getHoverColor = helpers$1.getHoverColor; + + point.$previousStyle = { + backgroundColor: model.backgroundColor, + borderColor: model.borderColor, + borderWidth: model.borderWidth, + radius: model.radius + }; + + model.backgroundColor = valueOrDefault$3(options.hoverBackgroundColor, getHoverColor(options.backgroundColor)); + model.borderColor = valueOrDefault$3(options.hoverBorderColor, getHoverColor(options.borderColor)); + model.borderWidth = valueOrDefault$3(options.hoverBorderWidth, options.borderWidth); + model.radius = options.radius + options.hoverRadius; + }, + + /** + * @private + */ + _resolveElementOptions: function(point, index) { + var me = this; + var chart = me.chart; + var datasets = chart.data.datasets; + var dataset = datasets[me.index]; + var custom = point.custom || {}; + var options = chart.options.elements.point; + var data = dataset.data[index]; + var values = {}; + var i, ilen, key; + + // Scriptable options + var context = { + chart: chart, + dataIndex: index, + dataset: dataset, + datasetIndex: me.index + }; + + var keys = [ + 'backgroundColor', + 'borderColor', + 'borderWidth', + 'hoverBackgroundColor', + 'hoverBorderColor', + 'hoverBorderWidth', + 'hoverRadius', + 'hitRadius', + 'pointStyle', + 'rotation' + ]; + + for (i = 0, ilen = keys.length; i < ilen; ++i) { + key = keys[i]; + values[key] = resolve$2([ + custom[key], + dataset[key], + options[key] + ], context, index); + } + + // Custom radius resolution + values.radius = resolve$2([ + custom.radius, + data ? data.r : undefined, + dataset.radius, + options.radius + ], context, index); + + return values; + } +}); + +var resolve$3 = helpers$1.options.resolve; +var valueOrDefault$4 = helpers$1.valueOrDefault; + +core_defaults._set('doughnut', { + animation: { + // Boolean - Whether we animate the rotation of the Doughnut + animateRotate: true, + // Boolean - Whether we animate scaling the Doughnut from the centre + animateScale: false + }, + hover: { + mode: 'single' + }, + legendCallback: function(chart) { + var text = []; + text.push('<ul class="' + chart.id + '-legend">'); + + var data = chart.data; + var datasets = data.datasets; + var labels = data.labels; + + if (datasets.length) { + for (var i = 0; i < datasets[0].data.length; ++i) { + text.push('<li><span style="background-color:' + datasets[0].backgroundColor[i] + '"></span>'); + if (labels[i]) { + text.push(labels[i]); + } + text.push('</li>'); + } + } + + text.push('</ul>'); + return text.join(''); + }, + legend: { + labels: { + generateLabels: function(chart) { + var data = chart.data; + if (data.labels.length && data.datasets.length) { + return data.labels.map(function(label, i) { + var meta = chart.getDatasetMeta(0); + var ds = data.datasets[0]; + var arc = meta.data[i]; + var custom = arc && arc.custom || {}; + var arcOpts = chart.options.elements.arc; + var fill = resolve$3([custom.backgroundColor, ds.backgroundColor, arcOpts.backgroundColor], undefined, i); + var stroke = resolve$3([custom.borderColor, ds.borderColor, arcOpts.borderColor], undefined, i); + var bw = resolve$3([custom.borderWidth, ds.borderWidth, arcOpts.borderWidth], undefined, i); + + return { + text: label, + fillStyle: fill, + strokeStyle: stroke, + lineWidth: bw, + hidden: isNaN(ds.data[i]) || meta.data[i].hidden, + + // Extra data used for toggling the correct item + index: i + }; + }); + } + return []; + } + }, + + onClick: function(e, legendItem) { + var index = legendItem.index; + var chart = this.chart; + var i, ilen, meta; + + for (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) { + meta = chart.getDatasetMeta(i); + // toggle visibility of index if exists + if (meta.data[index]) { + meta.data[index].hidden = !meta.data[index].hidden; + } + } + + chart.update(); + } + }, + + // The percentage of the chart that we cut out of the middle. + cutoutPercentage: 50, + + // The rotation of the chart, where the first data arc begins. + rotation: Math.PI * -0.5, + + // The total circumference of the chart. + circumference: Math.PI * 2.0, + + // Need to override these to give a nice default + tooltips: { + callbacks: { + title: function() { + return ''; + }, + label: function(tooltipItem, data) { + var dataLabel = data.labels[tooltipItem.index]; + var value = ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index]; + + if (helpers$1.isArray(dataLabel)) { + // show value on first line of multiline label + // need to clone because we are changing the value + dataLabel = dataLabel.slice(); + dataLabel[0] += value; + } else { + dataLabel += value; + } + + return dataLabel; + } + } + } +}); + +var controller_doughnut = core_datasetController.extend({ + + dataElementType: elements.Arc, + + linkScales: helpers$1.noop, + + // Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly + getRingIndex: function(datasetIndex) { + var ringIndex = 0; + + for (var j = 0; j < datasetIndex; ++j) { + if (this.chart.isDatasetVisible(j)) { + ++ringIndex; + } + } + + return ringIndex; + }, + + update: function(reset) { + var me = this; + var chart = me.chart; + var chartArea = chart.chartArea; + var opts = chart.options; + var availableWidth = chartArea.right - chartArea.left; + var availableHeight = chartArea.bottom - chartArea.top; + var minSize = Math.min(availableWidth, availableHeight); + var offset = {x: 0, y: 0}; + var meta = me.getMeta(); + var arcs = meta.data; + var cutoutPercentage = opts.cutoutPercentage; + var circumference = opts.circumference; + var chartWeight = me._getRingWeight(me.index); + var i, ilen; + + // If the chart's circumference isn't a full circle, calculate minSize as a ratio of the width/height of the arc + if (circumference < Math.PI * 2.0) { + var startAngle = opts.rotation % (Math.PI * 2.0); + startAngle += Math.PI * 2.0 * (startAngle >= Math.PI ? -1 : startAngle < -Math.PI ? 1 : 0); + var endAngle = startAngle + circumference; + var start = {x: Math.cos(startAngle), y: Math.sin(startAngle)}; + var end = {x: Math.cos(endAngle), y: Math.sin(endAngle)}; + var contains0 = (startAngle <= 0 && endAngle >= 0) || (startAngle <= Math.PI * 2.0 && Math.PI * 2.0 <= endAngle); + var contains90 = (startAngle <= Math.PI * 0.5 && Math.PI * 0.5 <= endAngle) || (startAngle <= Math.PI * 2.5 && Math.PI * 2.5 <= endAngle); + var contains180 = (startAngle <= -Math.PI && -Math.PI <= endAngle) || (startAngle <= Math.PI && Math.PI <= endAngle); + var contains270 = (startAngle <= -Math.PI * 0.5 && -Math.PI * 0.5 <= endAngle) || (startAngle <= Math.PI * 1.5 && Math.PI * 1.5 <= endAngle); + var cutout = cutoutPercentage / 100.0; + var min = {x: contains180 ? -1 : Math.min(start.x * (start.x < 0 ? 1 : cutout), end.x * (end.x < 0 ? 1 : cutout)), y: contains270 ? -1 : Math.min(start.y * (start.y < 0 ? 1 : cutout), end.y * (end.y < 0 ? 1 : cutout))}; + var max = {x: contains0 ? 1 : Math.max(start.x * (start.x > 0 ? 1 : cutout), end.x * (end.x > 0 ? 1 : cutout)), y: contains90 ? 1 : Math.max(start.y * (start.y > 0 ? 1 : cutout), end.y * (end.y > 0 ? 1 : cutout))}; + var size = {width: (max.x - min.x) * 0.5, height: (max.y - min.y) * 0.5}; + minSize = Math.min(availableWidth / size.width, availableHeight / size.height); + offset = {x: (max.x + min.x) * -0.5, y: (max.y + min.y) * -0.5}; + } + + for (i = 0, ilen = arcs.length; i < ilen; ++i) { + arcs[i]._options = me._resolveElementOptions(arcs[i], i); + } + + chart.borderWidth = me.getMaxBorderWidth(); + chart.outerRadius = Math.max((minSize - chart.borderWidth) / 2, 0); + chart.innerRadius = Math.max(cutoutPercentage ? (chart.outerRadius / 100) * (cutoutPercentage) : 0, 0); + chart.radiusLength = (chart.outerRadius - chart.innerRadius) / (me._getVisibleDatasetWeightTotal() || 1); + chart.offsetX = offset.x * chart.outerRadius; + chart.offsetY = offset.y * chart.outerRadius; + + meta.total = me.calculateTotal(); + + me.outerRadius = chart.outerRadius - chart.radiusLength * me._getRingWeightOffset(me.index); + me.innerRadius = Math.max(me.outerRadius - chart.radiusLength * chartWeight, 0); + + for (i = 0, ilen = arcs.length; i < ilen; ++i) { + me.updateElement(arcs[i], i, reset); + } + }, + + updateElement: function(arc, index, reset) { + var me = this; + var chart = me.chart; + var chartArea = chart.chartArea; + var opts = chart.options; + var animationOpts = opts.animation; + var centerX = (chartArea.left + chartArea.right) / 2; + var centerY = (chartArea.top + chartArea.bottom) / 2; + var startAngle = opts.rotation; // non reset case handled later + var endAngle = opts.rotation; // non reset case handled later + var dataset = me.getDataset(); + var circumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / (2.0 * Math.PI)); + var innerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius; + var outerRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius; + var options = arc._options || {}; + + helpers$1.extend(arc, { + // Utility + _datasetIndex: me.index, + _index: index, + + // Desired view properties + _model: { + backgroundColor: options.backgroundColor, + borderColor: options.borderColor, + borderWidth: options.borderWidth, + borderAlign: options.borderAlign, + x: centerX + chart.offsetX, + y: centerY + chart.offsetY, + startAngle: startAngle, + endAngle: endAngle, + circumference: circumference, + outerRadius: outerRadius, + innerRadius: innerRadius, + label: helpers$1.valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index]) + } + }); + + var model = arc._model; + + // Set correct angles if not resetting + if (!reset || !animationOpts.animateRotate) { + if (index === 0) { + model.startAngle = opts.rotation; + } else { + model.startAngle = me.getMeta().data[index - 1]._model.endAngle; + } + + model.endAngle = model.startAngle + model.circumference; + } + + arc.pivot(); + }, + + calculateTotal: function() { + var dataset = this.getDataset(); + var meta = this.getMeta(); + var total = 0; + var value; + + helpers$1.each(meta.data, function(element, index) { + value = dataset.data[index]; + if (!isNaN(value) && !element.hidden) { + total += Math.abs(value); + } + }); + + /* if (total === 0) { + total = NaN; + }*/ + + return total; + }, + + calculateCircumference: function(value) { + var total = this.getMeta().total; + if (total > 0 && !isNaN(value)) { + return (Math.PI * 2.0) * (Math.abs(value) / total); + } + return 0; + }, + + // gets the max border or hover width to properly scale pie charts + getMaxBorderWidth: function(arcs) { + var me = this; + var max = 0; + var chart = me.chart; + var i, ilen, meta, arc, controller, options, borderWidth, hoverWidth; + + if (!arcs) { + // Find the outmost visible dataset + for (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) { + if (chart.isDatasetVisible(i)) { + meta = chart.getDatasetMeta(i); + arcs = meta.data; + if (i !== me.index) { + controller = meta.controller; + } + break; + } + } + } + + if (!arcs) { + return 0; + } + + for (i = 0, ilen = arcs.length; i < ilen; ++i) { + arc = arcs[i]; + options = controller ? controller._resolveElementOptions(arc, i) : arc._options; + if (options.borderAlign !== 'inner') { + borderWidth = options.borderWidth; + hoverWidth = options.hoverBorderWidth; + + max = borderWidth > max ? borderWidth : max; + max = hoverWidth > max ? hoverWidth : max; + } + } + return max; + }, + + /** + * @protected + */ + setHoverStyle: function(arc) { + var model = arc._model; + var options = arc._options; + var getHoverColor = helpers$1.getHoverColor; + + arc.$previousStyle = { + backgroundColor: model.backgroundColor, + borderColor: model.borderColor, + borderWidth: model.borderWidth, + }; + + model.backgroundColor = valueOrDefault$4(options.hoverBackgroundColor, getHoverColor(options.backgroundColor)); + model.borderColor = valueOrDefault$4(options.hoverBorderColor, getHoverColor(options.borderColor)); + model.borderWidth = valueOrDefault$4(options.hoverBorderWidth, options.borderWidth); + }, + + /** + * @private + */ + _resolveElementOptions: function(arc, index) { + var me = this; + var chart = me.chart; + var dataset = me.getDataset(); + var custom = arc.custom || {}; + var options = chart.options.elements.arc; + var values = {}; + var i, ilen, key; + + // Scriptable options + var context = { + chart: chart, + dataIndex: index, + dataset: dataset, + datasetIndex: me.index + }; + + var keys = [ + 'backgroundColor', + 'borderColor', + 'borderWidth', + 'borderAlign', + 'hoverBackgroundColor', + 'hoverBorderColor', + 'hoverBorderWidth', + ]; + + for (i = 0, ilen = keys.length; i < ilen; ++i) { + key = keys[i]; + values[key] = resolve$3([ + custom[key], + dataset[key], + options[key] + ], context, index); + } + + return values; + }, + + /** + * Get radius length offset of the dataset in relation to the visible datasets weights. This allows determining the inner and outer radius correctly + * @private + */ + _getRingWeightOffset: function(datasetIndex) { + var ringWeightOffset = 0; + + for (var i = 0; i < datasetIndex; ++i) { + if (this.chart.isDatasetVisible(i)) { + ringWeightOffset += this._getRingWeight(i); + } + } + + return ringWeightOffset; + }, + + /** + * @private + */ + _getRingWeight: function(dataSetIndex) { + return Math.max(valueOrDefault$4(this.chart.data.datasets[dataSetIndex].weight, 1), 0); + }, + + /** + * Returns the sum of all visibile data set weights. This value can be 0. + * @private + */ + _getVisibleDatasetWeightTotal: function() { + return this._getRingWeightOffset(this.chart.data.datasets.length); + } +}); + +core_defaults._set('horizontalBar', { + hover: { + mode: 'index', + axis: 'y' + }, + + scales: { + xAxes: [{ + type: 'linear', + position: 'bottom' + }], + + yAxes: [{ + type: 'category', + position: 'left', + categoryPercentage: 0.8, + barPercentage: 0.9, + offset: true, + gridLines: { + offsetGridLines: true + } + }] + }, + + elements: { + rectangle: { + borderSkipped: 'left' + } + }, + + tooltips: { + mode: 'index', + axis: 'y' + } +}); + +var controller_horizontalBar = controller_bar.extend({ + /** + * @private + */ + _getValueScaleId: function() { + return this.getMeta().xAxisID; + }, + + /** + * @private + */ + _getIndexScaleId: function() { + return this.getMeta().yAxisID; + } +}); + +var valueOrDefault$5 = helpers$1.valueOrDefault; +var resolve$4 = helpers$1.options.resolve; +var isPointInArea = helpers$1.canvas._isPointInArea; + +core_defaults._set('line', { + showLines: true, + spanGaps: false, + + hover: { + mode: 'label' + }, + + scales: { + xAxes: [{ + type: 'category', + id: 'x-axis-0' + }], + yAxes: [{ + type: 'linear', + id: 'y-axis-0' + }] + } +}); + +function lineEnabled(dataset, options) { + return valueOrDefault$5(dataset.showLine, options.showLines); +} + +var controller_line = core_datasetController.extend({ + + datasetElementType: elements.Line, + + dataElementType: elements.Point, + + update: function(reset) { + var me = this; + var meta = me.getMeta(); + var line = meta.dataset; + var points = meta.data || []; + var scale = me.getScaleForId(meta.yAxisID); + var dataset = me.getDataset(); + var showLine = lineEnabled(dataset, me.chart.options); + var i, ilen; + + // Update Line + if (showLine) { + // Compatibility: If the properties are defined with only the old name, use those values + if ((dataset.tension !== undefined) && (dataset.lineTension === undefined)) { + dataset.lineTension = dataset.tension; + } + + // Utility + line._scale = scale; + line._datasetIndex = me.index; + // Data + line._children = points; + // Model + line._model = me._resolveLineOptions(line); + + line.pivot(); + } + + // Update Points + for (i = 0, ilen = points.length; i < ilen; ++i) { + me.updateElement(points[i], i, reset); + } + + if (showLine && line._model.tension !== 0) { + me.updateBezierControlPoints(); + } + + // Now pivot the point for animation + for (i = 0, ilen = points.length; i < ilen; ++i) { + points[i].pivot(); + } + }, + + updateElement: function(point, index, reset) { + var me = this; + var meta = me.getMeta(); + var custom = point.custom || {}; + var dataset = me.getDataset(); + var datasetIndex = me.index; + var value = dataset.data[index]; + var yScale = me.getScaleForId(meta.yAxisID); + var xScale = me.getScaleForId(meta.xAxisID); + var lineModel = meta.dataset._model; + var x, y; + + var options = me._resolvePointOptions(point, index); + + x = xScale.getPixelForValue(typeof value === 'object' ? value : NaN, index, datasetIndex); + y = reset ? yScale.getBasePixel() : me.calculatePointY(value, index, datasetIndex); + + // Utility + point._xScale = xScale; + point._yScale = yScale; + point._options = options; + point._datasetIndex = datasetIndex; + point._index = index; + + // Desired view properties + point._model = { + x: x, + y: y, + skip: custom.skip || isNaN(x) || isNaN(y), + // Appearance + radius: options.radius, + pointStyle: options.pointStyle, + rotation: options.rotation, + backgroundColor: options.backgroundColor, + borderColor: options.borderColor, + borderWidth: options.borderWidth, + tension: valueOrDefault$5(custom.tension, lineModel ? lineModel.tension : 0), + steppedLine: lineModel ? lineModel.steppedLine : false, + // Tooltip + hitRadius: options.hitRadius + }; + }, + + /** + * @private + */ + _resolvePointOptions: function(element, index) { + var me = this; + var chart = me.chart; + var dataset = chart.data.datasets[me.index]; + var custom = element.custom || {}; + var options = chart.options.elements.point; + var values = {}; + var i, ilen, key; + + // Scriptable options + var context = { + chart: chart, + dataIndex: index, + dataset: dataset, + datasetIndex: me.index + }; + + var ELEMENT_OPTIONS = { + backgroundColor: 'pointBackgroundColor', + borderColor: 'pointBorderColor', + borderWidth: 'pointBorderWidth', + hitRadius: 'pointHitRadius', + hoverBackgroundColor: 'pointHoverBackgroundColor', + hoverBorderColor: 'pointHoverBorderColor', + hoverBorderWidth: 'pointHoverBorderWidth', + hoverRadius: 'pointHoverRadius', + pointStyle: 'pointStyle', + radius: 'pointRadius', + rotation: 'pointRotation' + }; + var keys = Object.keys(ELEMENT_OPTIONS); + + for (i = 0, ilen = keys.length; i < ilen; ++i) { + key = keys[i]; + values[key] = resolve$4([ + custom[key], + dataset[ELEMENT_OPTIONS[key]], + dataset[key], + options[key] + ], context, index); + } + + return values; + }, + + /** + * @private + */ + _resolveLineOptions: function(element) { + var me = this; + var chart = me.chart; + var dataset = chart.data.datasets[me.index]; + var custom = element.custom || {}; + var options = chart.options; + var elementOptions = options.elements.line; + var values = {}; + var i, ilen, key; + + var keys = [ + 'backgroundColor', + 'borderWidth', + 'borderColor', + 'borderCapStyle', + 'borderDash', + 'borderDashOffset', + 'borderJoinStyle', + 'fill', + 'cubicInterpolationMode' + ]; + + for (i = 0, ilen = keys.length; i < ilen; ++i) { + key = keys[i]; + values[key] = resolve$4([ + custom[key], + dataset[key], + elementOptions[key] + ]); + } + + // The default behavior of lines is to break at null values, according + // to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158 + // This option gives lines the ability to span gaps + values.spanGaps = valueOrDefault$5(dataset.spanGaps, options.spanGaps); + values.tension = valueOrDefault$5(dataset.lineTension, elementOptions.tension); + values.steppedLine = resolve$4([custom.steppedLine, dataset.steppedLine, elementOptions.stepped]); + + return values; + }, + + calculatePointY: function(value, index, datasetIndex) { + var me = this; + var chart = me.chart; + var meta = me.getMeta(); + var yScale = me.getScaleForId(meta.yAxisID); + var sumPos = 0; + var sumNeg = 0; + var i, ds, dsMeta; + + if (yScale.options.stacked) { + for (i = 0; i < datasetIndex; i++) { + ds = chart.data.datasets[i]; + dsMeta = chart.getDatasetMeta(i); + if (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id && chart.isDatasetVisible(i)) { + var stackedRightValue = Number(yScale.getRightValue(ds.data[index])); + if (stackedRightValue < 0) { + sumNeg += stackedRightValue || 0; + } else { + sumPos += stackedRightValue || 0; + } + } + } + + var rightValue = Number(yScale.getRightValue(value)); + if (rightValue < 0) { + return yScale.getPixelForValue(sumNeg + rightValue); + } + return yScale.getPixelForValue(sumPos + rightValue); + } + + return yScale.getPixelForValue(value); + }, + + updateBezierControlPoints: function() { + var me = this; + var chart = me.chart; + var meta = me.getMeta(); + var lineModel = meta.dataset._model; + var area = chart.chartArea; + var points = meta.data || []; + var i, ilen, model, controlPoints; + + // Only consider points that are drawn in case the spanGaps option is used + if (lineModel.spanGaps) { + points = points.filter(function(pt) { + return !pt._model.skip; + }); + } + + function capControlPoint(pt, min, max) { + return Math.max(Math.min(pt, max), min); + } + + if (lineModel.cubicInterpolationMode === 'monotone') { + helpers$1.splineCurveMonotone(points); + } else { + for (i = 0, ilen = points.length; i < ilen; ++i) { + model = points[i]._model; + controlPoints = helpers$1.splineCurve( + helpers$1.previousItem(points, i)._model, + model, + helpers$1.nextItem(points, i)._model, + lineModel.tension + ); + model.controlPointPreviousX = controlPoints.previous.x; + model.controlPointPreviousY = controlPoints.previous.y; + model.controlPointNextX = controlPoints.next.x; + model.controlPointNextY = controlPoints.next.y; + } + } + + if (chart.options.elements.line.capBezierPoints) { + for (i = 0, ilen = points.length; i < ilen; ++i) { + model = points[i]._model; + if (isPointInArea(model, area)) { + if (i > 0 && isPointInArea(points[i - 1]._model, area)) { + model.controlPointPreviousX = capControlPoint(model.controlPointPreviousX, area.left, area.right); + model.controlPointPreviousY = capControlPoint(model.controlPointPreviousY, area.top, area.bottom); + } + if (i < points.length - 1 && isPointInArea(points[i + 1]._model, area)) { + model.controlPointNextX = capControlPoint(model.controlPointNextX, area.left, area.right); + model.controlPointNextY = capControlPoint(model.controlPointNextY, area.top, area.bottom); + } + } + } + } + }, + + draw: function() { + var me = this; + var chart = me.chart; + var meta = me.getMeta(); + var points = meta.data || []; + var area = chart.chartArea; + var ilen = points.length; + var halfBorderWidth; + var i = 0; + + if (lineEnabled(me.getDataset(), chart.options)) { + halfBorderWidth = (meta.dataset._model.borderWidth || 0) / 2; + + helpers$1.canvas.clipArea(chart.ctx, { + left: area.left, + right: area.right, + top: area.top - halfBorderWidth, + bottom: area.bottom + halfBorderWidth + }); + + meta.dataset.draw(); + + helpers$1.canvas.unclipArea(chart.ctx); + } + + // Draw the points + for (; i < ilen; ++i) { + points[i].draw(area); + } + }, + + /** + * @protected + */ + setHoverStyle: function(point) { + var model = point._model; + var options = point._options; + var getHoverColor = helpers$1.getHoverColor; + + point.$previousStyle = { + backgroundColor: model.backgroundColor, + borderColor: model.borderColor, + borderWidth: model.borderWidth, + radius: model.radius + }; + + model.backgroundColor = valueOrDefault$5(options.hoverBackgroundColor, getHoverColor(options.backgroundColor)); + model.borderColor = valueOrDefault$5(options.hoverBorderColor, getHoverColor(options.borderColor)); + model.borderWidth = valueOrDefault$5(options.hoverBorderWidth, options.borderWidth); + model.radius = valueOrDefault$5(options.hoverRadius, options.radius); + }, +}); + +var resolve$5 = helpers$1.options.resolve; + +core_defaults._set('polarArea', { + scale: { + type: 'radialLinear', + angleLines: { + display: false + }, + gridLines: { + circular: true + }, + pointLabels: { + display: false + }, + ticks: { + beginAtZero: true + } + }, + + // Boolean - Whether to animate the rotation of the chart + animation: { + animateRotate: true, + animateScale: true + }, + + startAngle: -0.5 * Math.PI, + legendCallback: function(chart) { + var text = []; + text.push('<ul class="' + chart.id + '-legend">'); + + var data = chart.data; + var datasets = data.datasets; + var labels = data.labels; + + if (datasets.length) { + for (var i = 0; i < datasets[0].data.length; ++i) { + text.push('<li><span style="background-color:' + datasets[0].backgroundColor[i] + '"></span>'); + if (labels[i]) { + text.push(labels[i]); + } + text.push('</li>'); + } + } + + text.push('</ul>'); + return text.join(''); + }, + legend: { + labels: { + generateLabels: function(chart) { + var data = chart.data; + if (data.labels.length && data.datasets.length) { + return data.labels.map(function(label, i) { + var meta = chart.getDatasetMeta(0); + var ds = data.datasets[0]; + var arc = meta.data[i]; + var custom = arc.custom || {}; + var arcOpts = chart.options.elements.arc; + var fill = resolve$5([custom.backgroundColor, ds.backgroundColor, arcOpts.backgroundColor], undefined, i); + var stroke = resolve$5([custom.borderColor, ds.borderColor, arcOpts.borderColor], undefined, i); + var bw = resolve$5([custom.borderWidth, ds.borderWidth, arcOpts.borderWidth], undefined, i); + + return { + text: label, + fillStyle: fill, + strokeStyle: stroke, + lineWidth: bw, + hidden: isNaN(ds.data[i]) || meta.data[i].hidden, + + // Extra data used for toggling the correct item + index: i + }; + }); + } + return []; + } + }, + + onClick: function(e, legendItem) { + var index = legendItem.index; + var chart = this.chart; + var i, ilen, meta; + + for (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) { + meta = chart.getDatasetMeta(i); + meta.data[index].hidden = !meta.data[index].hidden; + } + + chart.update(); + } + }, + + // Need to override these to give a nice default + tooltips: { + callbacks: { + title: function() { + return ''; + }, + label: function(item, data) { + return data.labels[item.index] + ': ' + item.yLabel; + } + } + } +}); + +var controller_polarArea = core_datasetController.extend({ + + dataElementType: elements.Arc, + + linkScales: helpers$1.noop, + + update: function(reset) { + var me = this; + var dataset = me.getDataset(); + var meta = me.getMeta(); + var start = me.chart.options.startAngle || 0; + var starts = me._starts = []; + var angles = me._angles = []; + var arcs = meta.data; + var i, ilen, angle; + + me._updateRadius(); + + meta.count = me.countVisibleElements(); + + for (i = 0, ilen = dataset.data.length; i < ilen; i++) { + starts[i] = start; + angle = me._computeAngle(i); + angles[i] = angle; + start += angle; + } + + for (i = 0, ilen = arcs.length; i < ilen; ++i) { + arcs[i]._options = me._resolveElementOptions(arcs[i], i); + me.updateElement(arcs[i], i, reset); + } + }, + + /** + * @private + */ + _updateRadius: function() { + var me = this; + var chart = me.chart; + var chartArea = chart.chartArea; + var opts = chart.options; + var minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top); + + chart.outerRadius = Math.max(minSize / 2, 0); + chart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0); + chart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount(); + + me.outerRadius = chart.outerRadius - (chart.radiusLength * me.index); + me.innerRadius = me.outerRadius - chart.radiusLength; + }, + + updateElement: function(arc, index, reset) { + var me = this; + var chart = me.chart; + var dataset = me.getDataset(); + var opts = chart.options; + var animationOpts = opts.animation; + var scale = chart.scale; + var labels = chart.data.labels; + + var centerX = scale.xCenter; + var centerY = scale.yCenter; + + // var negHalfPI = -0.5 * Math.PI; + var datasetStartAngle = opts.startAngle; + var distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]); + var startAngle = me._starts[index]; + var endAngle = startAngle + (arc.hidden ? 0 : me._angles[index]); + + var resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]); + var options = arc._options || {}; + + helpers$1.extend(arc, { + // Utility + _datasetIndex: me.index, + _index: index, + _scale: scale, + + // Desired view properties + _model: { + backgroundColor: options.backgroundColor, + borderColor: options.borderColor, + borderWidth: options.borderWidth, + borderAlign: options.borderAlign, + x: centerX, + y: centerY, + innerRadius: 0, + outerRadius: reset ? resetRadius : distance, + startAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle, + endAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle, + label: helpers$1.valueAtIndexOrDefault(labels, index, labels[index]) + } + }); + + arc.pivot(); + }, + + countVisibleElements: function() { + var dataset = this.getDataset(); + var meta = this.getMeta(); + var count = 0; + + helpers$1.each(meta.data, function(element, index) { + if (!isNaN(dataset.data[index]) && !element.hidden) { + count++; + } + }); + + return count; + }, + + /** + * @protected + */ + setHoverStyle: function(arc) { + var model = arc._model; + var options = arc._options; + var getHoverColor = helpers$1.getHoverColor; + var valueOrDefault = helpers$1.valueOrDefault; + + arc.$previousStyle = { + backgroundColor: model.backgroundColor, + borderColor: model.borderColor, + borderWidth: model.borderWidth, + }; + + model.backgroundColor = valueOrDefault(options.hoverBackgroundColor, getHoverColor(options.backgroundColor)); + model.borderColor = valueOrDefault(options.hoverBorderColor, getHoverColor(options.borderColor)); + model.borderWidth = valueOrDefault(options.hoverBorderWidth, options.borderWidth); + }, + + /** + * @private + */ + _resolveElementOptions: function(arc, index) { + var me = this; + var chart = me.chart; + var dataset = me.getDataset(); + var custom = arc.custom || {}; + var options = chart.options.elements.arc; + var values = {}; + var i, ilen, key; + + // Scriptable options + var context = { + chart: chart, + dataIndex: index, + dataset: dataset, + datasetIndex: me.index + }; + + var keys = [ + 'backgroundColor', + 'borderColor', + 'borderWidth', + 'borderAlign', + 'hoverBackgroundColor', + 'hoverBorderColor', + 'hoverBorderWidth', + ]; + + for (i = 0, ilen = keys.length; i < ilen; ++i) { + key = keys[i]; + values[key] = resolve$5([ + custom[key], + dataset[key], + options[key] + ], context, index); + } + + return values; + }, + + /** + * @private + */ + _computeAngle: function(index) { + var me = this; + var count = this.getMeta().count; + var dataset = me.getDataset(); + var meta = me.getMeta(); + + if (isNaN(dataset.data[index]) || meta.data[index].hidden) { + return 0; + } + + // Scriptable options + var context = { + chart: me.chart, + dataIndex: index, + dataset: dataset, + datasetIndex: me.index + }; + + return resolve$5([ + me.chart.options.elements.arc.angle, + (2 * Math.PI) / count + ], context, index); + } +}); + +core_defaults._set('pie', helpers$1.clone(core_defaults.doughnut)); +core_defaults._set('pie', { + cutoutPercentage: 0 +}); + +// Pie charts are Doughnut chart with different defaults +var controller_pie = controller_doughnut; + +var valueOrDefault$6 = helpers$1.valueOrDefault; +var resolve$6 = helpers$1.options.resolve; + +core_defaults._set('radar', { + scale: { + type: 'radialLinear' + }, + elements: { + line: { + tension: 0 // no bezier in radar + } + } +}); + +var controller_radar = core_datasetController.extend({ + + datasetElementType: elements.Line, + + dataElementType: elements.Point, + + linkScales: helpers$1.noop, + + update: function(reset) { + var me = this; + var meta = me.getMeta(); + var line = meta.dataset; + var points = meta.data || []; + var scale = me.chart.scale; + var dataset = me.getDataset(); + var i, ilen; + + // Compatibility: If the properties are defined with only the old name, use those values + if ((dataset.tension !== undefined) && (dataset.lineTension === undefined)) { + dataset.lineTension = dataset.tension; + } + + // Utility + line._scale = scale; + line._datasetIndex = me.index; + // Data + line._children = points; + line._loop = true; + // Model + line._model = me._resolveLineOptions(line); + + line.pivot(); + + // Update Points + for (i = 0, ilen = points.length; i < ilen; ++i) { + me.updateElement(points[i], i, reset); + } + + // Update bezier control points + me.updateBezierControlPoints(); + + // Now pivot the point for animation + for (i = 0, ilen = points.length; i < ilen; ++i) { + points[i].pivot(); + } + }, + + updateElement: function(point, index, reset) { + var me = this; + var custom = point.custom || {}; + var dataset = me.getDataset(); + var scale = me.chart.scale; + var pointPosition = scale.getPointPositionForValue(index, dataset.data[index]); + var options = me._resolvePointOptions(point, index); + var lineModel = me.getMeta().dataset._model; + var x = reset ? scale.xCenter : pointPosition.x; + var y = reset ? scale.yCenter : pointPosition.y; + + // Utility + point._scale = scale; + point._options = options; + point._datasetIndex = me.index; + point._index = index; + + // Desired view properties + point._model = { + x: x, // value not used in dataset scale, but we want a consistent API between scales + y: y, + skip: custom.skip || isNaN(x) || isNaN(y), + // Appearance + radius: options.radius, + pointStyle: options.pointStyle, + rotation: options.rotation, + backgroundColor: options.backgroundColor, + borderColor: options.borderColor, + borderWidth: options.borderWidth, + tension: valueOrDefault$6(custom.tension, lineModel ? lineModel.tension : 0), + + // Tooltip + hitRadius: options.hitRadius + }; + }, + + /** + * @private + */ + _resolvePointOptions: function(element, index) { + var me = this; + var chart = me.chart; + var dataset = chart.data.datasets[me.index]; + var custom = element.custom || {}; + var options = chart.options.elements.point; + var values = {}; + var i, ilen, key; + + // Scriptable options + var context = { + chart: chart, + dataIndex: index, + dataset: dataset, + datasetIndex: me.index + }; + + var ELEMENT_OPTIONS = { + backgroundColor: 'pointBackgroundColor', + borderColor: 'pointBorderColor', + borderWidth: 'pointBorderWidth', + hitRadius: 'pointHitRadius', + hoverBackgroundColor: 'pointHoverBackgroundColor', + hoverBorderColor: 'pointHoverBorderColor', + hoverBorderWidth: 'pointHoverBorderWidth', + hoverRadius: 'pointHoverRadius', + pointStyle: 'pointStyle', + radius: 'pointRadius', + rotation: 'pointRotation' + }; + var keys = Object.keys(ELEMENT_OPTIONS); + + for (i = 0, ilen = keys.length; i < ilen; ++i) { + key = keys[i]; + values[key] = resolve$6([ + custom[key], + dataset[ELEMENT_OPTIONS[key]], + dataset[key], + options[key] + ], context, index); + } + + return values; + }, + + /** + * @private + */ + _resolveLineOptions: function(element) { + var me = this; + var chart = me.chart; + var dataset = chart.data.datasets[me.index]; + var custom = element.custom || {}; + var options = chart.options.elements.line; + var values = {}; + var i, ilen, key; + + var keys = [ + 'backgroundColor', + 'borderWidth', + 'borderColor', + 'borderCapStyle', + 'borderDash', + 'borderDashOffset', + 'borderJoinStyle', + 'fill' + ]; + + for (i = 0, ilen = keys.length; i < ilen; ++i) { + key = keys[i]; + values[key] = resolve$6([ + custom[key], + dataset[key], + options[key] + ]); + } + + values.tension = valueOrDefault$6(dataset.lineTension, options.tension); + + return values; + }, + + updateBezierControlPoints: function() { + var me = this; + var meta = me.getMeta(); + var area = me.chart.chartArea; + var points = meta.data || []; + var i, ilen, model, controlPoints; + + function capControlPoint(pt, min, max) { + return Math.max(Math.min(pt, max), min); + } + + for (i = 0, ilen = points.length; i < ilen; ++i) { + model = points[i]._model; + controlPoints = helpers$1.splineCurve( + helpers$1.previousItem(points, i, true)._model, + model, + helpers$1.nextItem(points, i, true)._model, + model.tension + ); + + // Prevent the bezier going outside of the bounds of the graph + model.controlPointPreviousX = capControlPoint(controlPoints.previous.x, area.left, area.right); + model.controlPointPreviousY = capControlPoint(controlPoints.previous.y, area.top, area.bottom); + model.controlPointNextX = capControlPoint(controlPoints.next.x, area.left, area.right); + model.controlPointNextY = capControlPoint(controlPoints.next.y, area.top, area.bottom); + } + }, + + setHoverStyle: function(point) { + var model = point._model; + var options = point._options; + var getHoverColor = helpers$1.getHoverColor; + + point.$previousStyle = { + backgroundColor: model.backgroundColor, + borderColor: model.borderColor, + borderWidth: model.borderWidth, + radius: model.radius + }; + + model.backgroundColor = valueOrDefault$6(options.hoverBackgroundColor, getHoverColor(options.backgroundColor)); + model.borderColor = valueOrDefault$6(options.hoverBorderColor, getHoverColor(options.borderColor)); + model.borderWidth = valueOrDefault$6(options.hoverBorderWidth, options.borderWidth); + model.radius = valueOrDefault$6(options.hoverRadius, options.radius); + } +}); + +core_defaults._set('scatter', { + hover: { + mode: 'single' + }, + + scales: { + xAxes: [{ + id: 'x-axis-1', // need an ID so datasets can reference the scale + type: 'linear', // scatter should not use a category axis + position: 'bottom' + }], + yAxes: [{ + id: 'y-axis-1', + type: 'linear', + position: 'left' + }] + }, + + showLines: false, + + tooltips: { + callbacks: { + title: function() { + return ''; // doesn't make sense for scatter since data are formatted as a point + }, + label: function(item) { + return '(' + item.xLabel + ', ' + item.yLabel + ')'; + } + } + } +}); + +// Scatter charts use line controllers +var controller_scatter = controller_line; + +// NOTE export a map in which the key represents the controller type, not +// the class, and so must be CamelCase in order to be correctly retrieved +// by the controller in core.controller.js (`controllers[meta.type]`). + +var controllers = { + bar: controller_bar, + bubble: controller_bubble, + doughnut: controller_doughnut, + horizontalBar: controller_horizontalBar, + line: controller_line, + polarArea: controller_polarArea, + pie: controller_pie, + radar: controller_radar, + scatter: controller_scatter +}; + +/** + * Helper function to get relative position for an event + * @param {Event|IEvent} event - The event to get the position for + * @param {Chart} chart - The chart + * @returns {object} the event position + */ +function getRelativePosition(e, chart) { + if (e.native) { + return { + x: e.x, + y: e.y + }; + } + + return helpers$1.getRelativePosition(e, chart); +} + +/** + * Helper function to traverse all of the visible elements in the chart + * @param {Chart} chart - the chart + * @param {function} handler - the callback to execute for each visible item + */ +function parseVisibleItems(chart, handler) { + var datasets = chart.data.datasets; + var meta, i, j, ilen, jlen; + + for (i = 0, ilen = datasets.length; i < ilen; ++i) { + if (!chart.isDatasetVisible(i)) { + continue; + } + + meta = chart.getDatasetMeta(i); + for (j = 0, jlen = meta.data.length; j < jlen; ++j) { + var element = meta.data[j]; + if (!element._view.skip) { + handler(element); + } + } + } +} + +/** + * Helper function to get the items that intersect the event position + * @param {ChartElement[]} items - elements to filter + * @param {object} position - the point to be nearest to + * @return {ChartElement[]} the nearest items + */ +function getIntersectItems(chart, position) { + var elements = []; + + parseVisibleItems(chart, function(element) { + if (element.inRange(position.x, position.y)) { + elements.push(element); + } + }); + + return elements; +} + +/** + * Helper function to get the items nearest to the event position considering all visible items in teh chart + * @param {Chart} chart - the chart to look at elements from + * @param {object} position - the point to be nearest to + * @param {boolean} intersect - if true, only consider items that intersect the position + * @param {function} distanceMetric - function to provide the distance between points + * @return {ChartElement[]} the nearest items + */ +function getNearestItems(chart, position, intersect, distanceMetric) { + var minDistance = Number.POSITIVE_INFINITY; + var nearestItems = []; + + parseVisibleItems(chart, function(element) { + if (intersect && !element.inRange(position.x, position.y)) { + return; + } + + var center = element.getCenterPoint(); + var distance = distanceMetric(position, center); + if (distance < minDistance) { + nearestItems = [element]; + minDistance = distance; + } else if (distance === minDistance) { + // Can have multiple items at the same distance in which case we sort by size + nearestItems.push(element); + } + }); + + return nearestItems; +} + +/** + * Get a distance metric function for two points based on the + * axis mode setting + * @param {string} axis - the axis mode. x|y|xy + */ +function getDistanceMetricForAxis(axis) { + var useX = axis.indexOf('x') !== -1; + var useY = axis.indexOf('y') !== -1; + + return function(pt1, pt2) { + var deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0; + var deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0; + return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2)); + }; +} + +function indexMode(chart, e, options) { + var position = getRelativePosition(e, chart); + // Default axis for index mode is 'x' to match old behaviour + options.axis = options.axis || 'x'; + var distanceMetric = getDistanceMetricForAxis(options.axis); + var items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric); + var elements = []; + + if (!items.length) { + return []; + } + + chart.data.datasets.forEach(function(dataset, datasetIndex) { + if (chart.isDatasetVisible(datasetIndex)) { + var meta = chart.getDatasetMeta(datasetIndex); + var element = meta.data[items[0]._index]; + + // don't count items that are skipped (null data) + if (element && !element._view.skip) { + elements.push(element); + } + } + }); + + return elements; +} + +/** + * @interface IInteractionOptions + */ +/** + * If true, only consider items that intersect the point + * @name IInterfaceOptions#boolean + * @type Boolean + */ + +/** + * Contains interaction related functions + * @namespace Chart.Interaction + */ +var core_interaction = { + // Helper function for different modes + modes: { + single: function(chart, e) { + var position = getRelativePosition(e, chart); + var elements = []; + + parseVisibleItems(chart, function(element) { + if (element.inRange(position.x, position.y)) { + elements.push(element); + return elements; + } + }); + + return elements.slice(0, 1); + }, + + /** + * @function Chart.Interaction.modes.label + * @deprecated since version 2.4.0 + * @todo remove at version 3 + * @private + */ + label: indexMode, + + /** + * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something + * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item + * @function Chart.Interaction.modes.index + * @since v2.4.0 + * @param {Chart} chart - the chart we are returning items from + * @param {Event} e - the event we are find things at + * @param {IInteractionOptions} options - options to use during interaction + * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned + */ + index: indexMode, + + /** + * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something + * If the options.intersect is false, we find the nearest item and return the items in that dataset + * @function Chart.Interaction.modes.dataset + * @param {Chart} chart - the chart we are returning items from + * @param {Event} e - the event we are find things at + * @param {IInteractionOptions} options - options to use during interaction + * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned + */ + dataset: function(chart, e, options) { + var position = getRelativePosition(e, chart); + options.axis = options.axis || 'xy'; + var distanceMetric = getDistanceMetricForAxis(options.axis); + var items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric); + + if (items.length > 0) { + items = chart.getDatasetMeta(items[0]._datasetIndex).data; + } + + return items; + }, + + /** + * @function Chart.Interaction.modes.x-axis + * @deprecated since version 2.4.0. Use index mode and intersect == true + * @todo remove at version 3 + * @private + */ + 'x-axis': function(chart, e) { + return indexMode(chart, e, {intersect: false}); + }, + + /** + * Point mode returns all elements that hit test based on the event position + * of the event + * @function Chart.Interaction.modes.intersect + * @param {Chart} chart - the chart we are returning items from + * @param {Event} e - the event we are find things at + * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned + */ + point: function(chart, e) { + var position = getRelativePosition(e, chart); + return getIntersectItems(chart, position); + }, + + /** + * nearest mode returns the element closest to the point + * @function Chart.Interaction.modes.intersect + * @param {Chart} chart - the chart we are returning items from + * @param {Event} e - the event we are find things at + * @param {IInteractionOptions} options - options to use + * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned + */ + nearest: function(chart, e, options) { + var position = getRelativePosition(e, chart); + options.axis = options.axis || 'xy'; + var distanceMetric = getDistanceMetricForAxis(options.axis); + return getNearestItems(chart, position, options.intersect, distanceMetric); + }, + + /** + * x mode returns the elements that hit-test at the current x coordinate + * @function Chart.Interaction.modes.x + * @param {Chart} chart - the chart we are returning items from + * @param {Event} e - the event we are find things at + * @param {IInteractionOptions} options - options to use + * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned + */ + x: function(chart, e, options) { + var position = getRelativePosition(e, chart); + var items = []; + var intersectsItem = false; + + parseVisibleItems(chart, function(element) { + if (element.inXRange(position.x)) { + items.push(element); + } + + if (element.inRange(position.x, position.y)) { + intersectsItem = true; + } + }); + + // If we want to trigger on an intersect and we don't have any items + // that intersect the position, return nothing + if (options.intersect && !intersectsItem) { + items = []; + } + return items; + }, + + /** + * y mode returns the elements that hit-test at the current y coordinate + * @function Chart.Interaction.modes.y + * @param {Chart} chart - the chart we are returning items from + * @param {Event} e - the event we are find things at + * @param {IInteractionOptions} options - options to use + * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned + */ + y: function(chart, e, options) { + var position = getRelativePosition(e, chart); + var items = []; + var intersectsItem = false; + + parseVisibleItems(chart, function(element) { + if (element.inYRange(position.y)) { + items.push(element); + } + + if (element.inRange(position.x, position.y)) { + intersectsItem = true; + } + }); + + // If we want to trigger on an intersect and we don't have any items + // that intersect the position, return nothing + if (options.intersect && !intersectsItem) { + items = []; + } + return items; + } + } +}; + +function filterByPosition(array, position) { + return helpers$1.where(array, function(v) { + return v.position === position; + }); +} + +function sortByWeight(array, reverse) { + array.forEach(function(v, i) { + v._tmpIndex_ = i; + return v; + }); + array.sort(function(a, b) { + var v0 = reverse ? b : a; + var v1 = reverse ? a : b; + return v0.weight === v1.weight ? + v0._tmpIndex_ - v1._tmpIndex_ : + v0.weight - v1.weight; + }); + array.forEach(function(v) { + delete v._tmpIndex_; + }); +} + +function findMaxPadding(boxes) { + var top = 0; + var left = 0; + var bottom = 0; + var right = 0; + helpers$1.each(boxes, function(box) { + if (box.getPadding) { + var boxPadding = box.getPadding(); + top = Math.max(top, boxPadding.top); + left = Math.max(left, boxPadding.left); + bottom = Math.max(bottom, boxPadding.bottom); + right = Math.max(right, boxPadding.right); + } + }); + return { + top: top, + left: left, + bottom: bottom, + right: right + }; +} + +function addSizeByPosition(boxes, size) { + helpers$1.each(boxes, function(box) { + size[box.position] += box.isHorizontal() ? box.height : box.width; + }); +} + +core_defaults._set('global', { + layout: { + padding: { + top: 0, + right: 0, + bottom: 0, + left: 0 + } + } +}); + +/** + * @interface ILayoutItem + * @prop {string} position - The position of the item in the chart layout. Possible values are + * 'left', 'top', 'right', 'bottom', and 'chartArea' + * @prop {number} weight - The weight used to sort the item. Higher weights are further away from the chart area + * @prop {boolean} fullWidth - if true, and the item is horizontal, then push vertical boxes down + * @prop {function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom) + * @prop {function} update - Takes two parameters: width and height. Returns size of item + * @prop {function} getPadding - Returns an object with padding on the edges + * @prop {number} width - Width of item. Must be valid after update() + * @prop {number} height - Height of item. Must be valid after update() + * @prop {number} left - Left edge of the item. Set by layout system and cannot be used in update + * @prop {number} top - Top edge of the item. Set by layout system and cannot be used in update + * @prop {number} right - Right edge of the item. Set by layout system and cannot be used in update + * @prop {number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update + */ + +// The layout service is very self explanatory. It's responsible for the layout within a chart. +// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need +// It is this service's responsibility of carrying out that layout. +var core_layouts = { + defaults: {}, + + /** + * Register a box to a chart. + * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title. + * @param {Chart} chart - the chart to use + * @param {ILayoutItem} item - the item to add to be layed out + */ + addBox: function(chart, item) { + if (!chart.boxes) { + chart.boxes = []; + } + + // initialize item with default values + item.fullWidth = item.fullWidth || false; + item.position = item.position || 'top'; + item.weight = item.weight || 0; + + chart.boxes.push(item); + }, + + /** + * Remove a layoutItem from a chart + * @param {Chart} chart - the chart to remove the box from + * @param {ILayoutItem} layoutItem - the item to remove from the layout + */ + removeBox: function(chart, layoutItem) { + var index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1; + if (index !== -1) { + chart.boxes.splice(index, 1); + } + }, + + /** + * Sets (or updates) options on the given `item`. + * @param {Chart} chart - the chart in which the item lives (or will be added to) + * @param {ILayoutItem} item - the item to configure with the given options + * @param {object} options - the new item options. + */ + configure: function(chart, item, options) { + var props = ['fullWidth', 'position', 'weight']; + var ilen = props.length; + var i = 0; + var prop; + + for (; i < ilen; ++i) { + prop = props[i]; + if (options.hasOwnProperty(prop)) { + item[prop] = options[prop]; + } + } + }, + + /** + * Fits boxes of the given chart into the given size by having each box measure itself + * then running a fitting algorithm + * @param {Chart} chart - the chart + * @param {number} width - the width to fit into + * @param {number} height - the height to fit into + */ + update: function(chart, width, height) { + if (!chart) { + return; + } + + var layoutOptions = chart.options.layout || {}; + var padding = helpers$1.options.toPadding(layoutOptions.padding); + var leftPadding = padding.left; + var rightPadding = padding.right; + var topPadding = padding.top; + var bottomPadding = padding.bottom; + + var leftBoxes = filterByPosition(chart.boxes, 'left'); + var rightBoxes = filterByPosition(chart.boxes, 'right'); + var topBoxes = filterByPosition(chart.boxes, 'top'); + var bottomBoxes = filterByPosition(chart.boxes, 'bottom'); + var chartAreaBoxes = filterByPosition(chart.boxes, 'chartArea'); + + // Sort boxes by weight. A higher weight is further away from the chart area + sortByWeight(leftBoxes, true); + sortByWeight(rightBoxes, false); + sortByWeight(topBoxes, true); + sortByWeight(bottomBoxes, false); + + var verticalBoxes = leftBoxes.concat(rightBoxes); + var horizontalBoxes = topBoxes.concat(bottomBoxes); + var outerBoxes = verticalBoxes.concat(horizontalBoxes); + + // Essentially we now have any number of boxes on each of the 4 sides. + // Our canvas looks like the following. + // The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and + // B1 is the bottom axis + // There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays + // These locations are single-box locations only, when trying to register a chartArea location that is already taken, + // an error will be thrown. + // + // |----------------------------------------------------| + // | T1 (Full Width) | + // |----------------------------------------------------| + // | | | T2 | | + // | |----|-------------------------------------|----| + // | | | C1 | | C2 | | + // | | |----| |----| | + // | | | | | + // | L1 | L2 | ChartArea (C0) | R1 | + // | | | | | + // | | |----| |----| | + // | | | C3 | | C4 | | + // | |----|-------------------------------------|----| + // | | | B1 | | + // |----------------------------------------------------| + // | B2 (Full Width) | + // |----------------------------------------------------| + // + // What we do to find the best sizing, we do the following + // 1. Determine the minimum size of the chart area. + // 2. Split the remaining width equally between each vertical axis + // 3. Split the remaining height equally between each horizontal axis + // 4. Give each layout the maximum size it can be. The layout will return it's minimum size + // 5. Adjust the sizes of each axis based on it's minimum reported size. + // 6. Refit each axis + // 7. Position each axis in the final location + // 8. Tell the chart the final location of the chart area + // 9. Tell any axes that overlay the chart area the positions of the chart area + + // Step 1 + var chartWidth = width - leftPadding - rightPadding; + var chartHeight = height - topPadding - bottomPadding; + var chartAreaWidth = chartWidth / 2; // min 50% + + // Step 2 + var verticalBoxWidth = (width - chartAreaWidth) / verticalBoxes.length; + + // Step 3 + // TODO re-limit horizontal axis height (this limit has affected only padding calculation since PR 1837) + // var horizontalBoxHeight = (height - chartAreaHeight) / horizontalBoxes.length; + + // Step 4 + var maxChartAreaWidth = chartWidth; + var maxChartAreaHeight = chartHeight; + var outerBoxSizes = {top: topPadding, left: leftPadding, bottom: bottomPadding, right: rightPadding}; + var minBoxSizes = []; + var maxPadding; + + function getMinimumBoxSize(box) { + var minSize; + var isHorizontal = box.isHorizontal(); + + if (isHorizontal) { + minSize = box.update(box.fullWidth ? chartWidth : maxChartAreaWidth, chartHeight / 2); + maxChartAreaHeight -= minSize.height; + } else { + minSize = box.update(verticalBoxWidth, maxChartAreaHeight); + maxChartAreaWidth -= minSize.width; + } + + minBoxSizes.push({ + horizontal: isHorizontal, + width: minSize.width, + box: box, + }); + } + + helpers$1.each(outerBoxes, getMinimumBoxSize); + + // If a horizontal box has padding, we move the left boxes over to avoid ugly charts (see issue #2478) + maxPadding = findMaxPadding(outerBoxes); + + // At this point, maxChartAreaHeight and maxChartAreaWidth are the size the chart area could + // be if the axes are drawn at their minimum sizes. + // Steps 5 & 6 + + // Function to fit a box + function fitBox(box) { + var minBoxSize = helpers$1.findNextWhere(minBoxSizes, function(minBox) { + return minBox.box === box; + }); + + if (minBoxSize) { + if (minBoxSize.horizontal) { + var scaleMargin = { + left: Math.max(outerBoxSizes.left, maxPadding.left), + right: Math.max(outerBoxSizes.right, maxPadding.right), + top: 0, + bottom: 0 + }; + + // Don't use min size here because of label rotation. When the labels are rotated, their rotation highly depends + // on the margin. Sometimes they need to increase in size slightly + box.update(box.fullWidth ? chartWidth : maxChartAreaWidth, chartHeight / 2, scaleMargin); + } else { + box.update(minBoxSize.width, maxChartAreaHeight); + } + } + } + + // Update, and calculate the left and right margins for the horizontal boxes + helpers$1.each(verticalBoxes, fitBox); + addSizeByPosition(verticalBoxes, outerBoxSizes); + + // Set the Left and Right margins for the horizontal boxes + helpers$1.each(horizontalBoxes, fitBox); + addSizeByPosition(horizontalBoxes, outerBoxSizes); + + function finalFitVerticalBox(box) { + var minBoxSize = helpers$1.findNextWhere(minBoxSizes, function(minSize) { + return minSize.box === box; + }); + + var scaleMargin = { + left: 0, + right: 0, + top: outerBoxSizes.top, + bottom: outerBoxSizes.bottom + }; + + if (minBoxSize) { + box.update(minBoxSize.width, maxChartAreaHeight, scaleMargin); + } + } + + // Let the left layout know the final margin + helpers$1.each(verticalBoxes, finalFitVerticalBox); + + // Recalculate because the size of each layout might have changed slightly due to the margins (label rotation for instance) + outerBoxSizes = {top: topPadding, left: leftPadding, bottom: bottomPadding, right: rightPadding}; + addSizeByPosition(outerBoxes, outerBoxSizes); + + // We may be adding some padding to account for rotated x axis labels + var leftPaddingAddition = Math.max(maxPadding.left - outerBoxSizes.left, 0); + outerBoxSizes.left += leftPaddingAddition; + outerBoxSizes.right += Math.max(maxPadding.right - outerBoxSizes.right, 0); + + var topPaddingAddition = Math.max(maxPadding.top - outerBoxSizes.top, 0); + outerBoxSizes.top += topPaddingAddition; + outerBoxSizes.bottom += Math.max(maxPadding.bottom - outerBoxSizes.bottom, 0); + + // Figure out if our chart area changed. This would occur if the dataset layout label rotation + // changed due to the application of the margins in step 6. Since we can only get bigger, this is safe to do + // without calling `fit` again + var newMaxChartAreaHeight = height - outerBoxSizes.top - outerBoxSizes.bottom; + var newMaxChartAreaWidth = width - outerBoxSizes.left - outerBoxSizes.right; + + if (newMaxChartAreaWidth !== maxChartAreaWidth || newMaxChartAreaHeight !== maxChartAreaHeight) { + helpers$1.each(verticalBoxes, function(box) { + box.height = newMaxChartAreaHeight; + }); + + helpers$1.each(horizontalBoxes, function(box) { + if (!box.fullWidth) { + box.width = newMaxChartAreaWidth; + } + }); + + maxChartAreaHeight = newMaxChartAreaHeight; + maxChartAreaWidth = newMaxChartAreaWidth; + } + + // Step 7 - Position the boxes + var left = leftPadding + leftPaddingAddition; + var top = topPadding + topPaddingAddition; + + function placeBox(box) { + if (box.isHorizontal()) { + box.left = box.fullWidth ? leftPadding : outerBoxSizes.left; + box.right = box.fullWidth ? width - rightPadding : outerBoxSizes.left + maxChartAreaWidth; + box.top = top; + box.bottom = top + box.height; + + // Move to next point + top = box.bottom; + + } else { + + box.left = left; + box.right = left + box.width; + box.top = outerBoxSizes.top; + box.bottom = outerBoxSizes.top + maxChartAreaHeight; + + // Move to next point + left = box.right; + } + } + + helpers$1.each(leftBoxes.concat(topBoxes), placeBox); + + // Account for chart width and height + left += maxChartAreaWidth; + top += maxChartAreaHeight; + + helpers$1.each(rightBoxes, placeBox); + helpers$1.each(bottomBoxes, placeBox); + + // Step 8 + chart.chartArea = { + left: outerBoxSizes.left, + top: outerBoxSizes.top, + right: outerBoxSizes.left + maxChartAreaWidth, + bottom: outerBoxSizes.top + maxChartAreaHeight + }; + + // Step 9 + helpers$1.each(chartAreaBoxes, function(box) { + box.left = chart.chartArea.left; + box.top = chart.chartArea.top; + box.right = chart.chartArea.right; + box.bottom = chart.chartArea.bottom; + + box.update(maxChartAreaWidth, maxChartAreaHeight); + }); + } +}; + +/** + * Platform fallback implementation (minimal). + * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939 + */ + +var platform_basic = { + acquireContext: function(item) { + if (item && item.canvas) { + // Support for any object associated to a canvas (including a context2d) + item = item.canvas; + } + + return item && item.getContext('2d') || null; + } +}; + +var platform_dom = "/*\n * DOM element rendering detection\n * https://davidwalsh.name/detect-node-insertion\n */\n@keyframes chartjs-render-animation {\n\tfrom { opacity: 0.99; }\n\tto { opacity: 1; }\n}\n\n.chartjs-render-monitor {\n\tanimation: chartjs-render-animation 0.001s;\n}\n\n/*\n * DOM element resizing detection\n * https://github.com/marcj/css-element-queries\n */\n.chartjs-size-monitor,\n.chartjs-size-monitor-expand,\n.chartjs-size-monitor-shrink {\n\tposition: absolute;\n\tdirection: ltr;\n\tleft: 0;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\toverflow: hidden;\n\tpointer-events: none;\n\tvisibility: hidden;\n\tz-index: -1;\n}\n\n.chartjs-size-monitor-expand > div {\n\tposition: absolute;\n\twidth: 1000000px;\n\theight: 1000000px;\n\tleft: 0;\n\ttop: 0;\n}\n\n.chartjs-size-monitor-shrink > div {\n\tposition: absolute;\n\twidth: 200%;\n\theight: 200%;\n\tleft: 0;\n\ttop: 0;\n}\n"; + +var platform_dom$1 = /*#__PURE__*/Object.freeze({ +default: platform_dom +}); + +var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by rollup-plugin-commonjs'); +} + +function createCommonjsModule(fn, module) { + return module = { exports: {} }, fn(module, module.exports), module.exports; +} + +function getCjsExportFromNamespace (n) { + return n && n.default || n; +} + +var stylesheet = getCjsExportFromNamespace(platform_dom$1); + +var EXPANDO_KEY = '$chartjs'; +var CSS_PREFIX = 'chartjs-'; +var CSS_SIZE_MONITOR = CSS_PREFIX + 'size-monitor'; +var CSS_RENDER_MONITOR = CSS_PREFIX + 'render-monitor'; +var CSS_RENDER_ANIMATION = CSS_PREFIX + 'render-animation'; +var ANIMATION_START_EVENTS = ['animationstart', 'webkitAnimationStart']; + +/** + * DOM event types -> Chart.js event types. + * Note: only events with different types are mapped. + * @see https://developer.mozilla.org/en-US/docs/Web/Events + */ +var EVENT_TYPES = { + touchstart: 'mousedown', + touchmove: 'mousemove', + touchend: 'mouseup', + pointerenter: 'mouseenter', + pointerdown: 'mousedown', + pointermove: 'mousemove', + pointerup: 'mouseup', + pointerleave: 'mouseout', + pointerout: 'mouseout' +}; + +/** + * The "used" size is the final value of a dimension property after all calculations have + * been performed. This method uses the computed style of `element` but returns undefined + * if the computed style is not expressed in pixels. That can happen in some cases where + * `element` has a size relative to its parent and this last one is not yet displayed, + * for example because of `display: none` on a parent node. + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value + * @returns {number} Size in pixels or undefined if unknown. + */ +function readUsedSize(element, property) { + var value = helpers$1.getStyle(element, property); + var matches = value && value.match(/^(\d+)(\.\d+)?px$/); + return matches ? Number(matches[1]) : undefined; +} + +/** + * Initializes the canvas style and render size without modifying the canvas display size, + * since responsiveness is handled by the controller.resize() method. The config is used + * to determine the aspect ratio to apply in case no explicit height has been specified. + */ +function initCanvas(canvas, config) { + var style = canvas.style; + + // NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it + // returns null or '' if no explicit value has been set to the canvas attribute. + var renderHeight = canvas.getAttribute('height'); + var renderWidth = canvas.getAttribute('width'); + + // Chart.js modifies some canvas values that we want to restore on destroy + canvas[EXPANDO_KEY] = { + initial: { + height: renderHeight, + width: renderWidth, + style: { + display: style.display, + height: style.height, + width: style.width + } + } + }; + + // Force canvas to display as block to avoid extra space caused by inline + // elements, which would interfere with the responsive resize process. + // https://github.com/chartjs/Chart.js/issues/2538 + style.display = style.display || 'block'; + + if (renderWidth === null || renderWidth === '') { + var displayWidth = readUsedSize(canvas, 'width'); + if (displayWidth !== undefined) { + canvas.width = displayWidth; + } + } + + if (renderHeight === null || renderHeight === '') { + if (canvas.style.height === '') { + // If no explicit render height and style height, let's apply the aspect ratio, + // which one can be specified by the user but also by charts as default option + // (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2. + canvas.height = canvas.width / (config.options.aspectRatio || 2); + } else { + var displayHeight = readUsedSize(canvas, 'height'); + if (displayWidth !== undefined) { + canvas.height = displayHeight; + } + } + } + + return canvas; +} + +/** + * Detects support for options object argument in addEventListener. + * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support + * @private + */ +var supportsEventListenerOptions = (function() { + var supports = false; + try { + var options = Object.defineProperty({}, 'passive', { + // eslint-disable-next-line getter-return + get: function() { + supports = true; + } + }); + window.addEventListener('e', null, options); + } catch (e) { + // continue regardless of error + } + return supports; +}()); + +// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events. +// https://github.com/chartjs/Chart.js/issues/4287 +var eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false; + +function addListener(node, type, listener) { + node.addEventListener(type, listener, eventListenerOptions); +} + +function removeListener(node, type, listener) { + node.removeEventListener(type, listener, eventListenerOptions); +} + +function createEvent(type, chart, x, y, nativeEvent) { + return { + type: type, + chart: chart, + native: nativeEvent || null, + x: x !== undefined ? x : null, + y: y !== undefined ? y : null, + }; +} + +function fromNativeEvent(event, chart) { + var type = EVENT_TYPES[event.type] || event.type; + var pos = helpers$1.getRelativePosition(event, chart); + return createEvent(type, chart, pos.x, pos.y, event); +} + +function throttled(fn, thisArg) { + var ticking = false; + var args = []; + + return function() { + args = Array.prototype.slice.call(arguments); + thisArg = thisArg || this; + + if (!ticking) { + ticking = true; + helpers$1.requestAnimFrame.call(window, function() { + ticking = false; + fn.apply(thisArg, args); + }); + } + }; +} + +function createDiv(cls) { + var el = document.createElement('div'); + el.className = cls || ''; + return el; +} + +// Implementation based on https://github.com/marcj/css-element-queries +function createResizer(handler) { + var maxSize = 1000000; + + // NOTE(SB) Don't use innerHTML because it could be considered unsafe. + // https://github.com/chartjs/Chart.js/issues/5902 + var resizer = createDiv(CSS_SIZE_MONITOR); + var expand = createDiv(CSS_SIZE_MONITOR + '-expand'); + var shrink = createDiv(CSS_SIZE_MONITOR + '-shrink'); + + expand.appendChild(createDiv()); + shrink.appendChild(createDiv()); + + resizer.appendChild(expand); + resizer.appendChild(shrink); + resizer._reset = function() { + expand.scrollLeft = maxSize; + expand.scrollTop = maxSize; + shrink.scrollLeft = maxSize; + shrink.scrollTop = maxSize; + }; + + var onScroll = function() { + resizer._reset(); + handler(); + }; + + addListener(expand, 'scroll', onScroll.bind(expand, 'expand')); + addListener(shrink, 'scroll', onScroll.bind(shrink, 'shrink')); + + return resizer; +} + +// https://davidwalsh.name/detect-node-insertion +function watchForRender(node, handler) { + var expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {}); + var proxy = expando.renderProxy = function(e) { + if (e.animationName === CSS_RENDER_ANIMATION) { + handler(); + } + }; + + helpers$1.each(ANIMATION_START_EVENTS, function(type) { + addListener(node, type, proxy); + }); + + // #4737: Chrome might skip the CSS animation when the CSS_RENDER_MONITOR class + // is removed then added back immediately (same animation frame?). Accessing the + // `offsetParent` property will force a reflow and re-evaluate the CSS animation. + // https://gist.github.com/paulirish/5d52fb081b3570c81e3a#box-metrics + // https://github.com/chartjs/Chart.js/issues/4737 + expando.reflow = !!node.offsetParent; + + node.classList.add(CSS_RENDER_MONITOR); +} + +function unwatchForRender(node) { + var expando = node[EXPANDO_KEY] || {}; + var proxy = expando.renderProxy; + + if (proxy) { + helpers$1.each(ANIMATION_START_EVENTS, function(type) { + removeListener(node, type, proxy); + }); + + delete expando.renderProxy; + } + + node.classList.remove(CSS_RENDER_MONITOR); +} + +function addResizeListener(node, listener, chart) { + var expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {}); + + // Let's keep track of this added resizer and thus avoid DOM query when removing it. + var resizer = expando.resizer = createResizer(throttled(function() { + if (expando.resizer) { + var container = chart.options.maintainAspectRatio && node.parentNode; + var w = container ? container.clientWidth : 0; + listener(createEvent('resize', chart)); + if (container && container.clientWidth < w && chart.canvas) { + // If the container size shrank during chart resize, let's assume + // scrollbar appeared. So we resize again with the scrollbar visible - + // effectively making chart smaller and the scrollbar hidden again. + // Because we are inside `throttled`, and currently `ticking`, scroll + // events are ignored during this whole 2 resize process. + // If we assumed wrong and something else happened, we are resizing + // twice in a frame (potential performance issue) + listener(createEvent('resize', chart)); + } + } + })); + + // The resizer needs to be attached to the node parent, so we first need to be + // sure that `node` is attached to the DOM before injecting the resizer element. + watchForRender(node, function() { + if (expando.resizer) { + var container = node.parentNode; + if (container && container !== resizer.parentNode) { + container.insertBefore(resizer, container.firstChild); + } + + // The container size might have changed, let's reset the resizer state. + resizer._reset(); + } + }); +} + +function removeResizeListener(node) { + var expando = node[EXPANDO_KEY] || {}; + var resizer = expando.resizer; + + delete expando.resizer; + unwatchForRender(node); + + if (resizer && resizer.parentNode) { + resizer.parentNode.removeChild(resizer); + } +} + +function injectCSS(platform, css) { + // https://stackoverflow.com/q/3922139 + var style = platform._style || document.createElement('style'); + if (!platform._style) { + platform._style = style; + css = '/* Chart.js */\n' + css; + style.setAttribute('type', 'text/css'); + document.getElementsByTagName('head')[0].appendChild(style); + } + + style.appendChild(document.createTextNode(css)); +} + +var platform_dom$2 = { + /** + * When `true`, prevents the automatic injection of the stylesheet required to + * correctly detect when the chart is added to the DOM and then resized. This + * switch has been added to allow external stylesheet (`dist/Chart(.min)?.js`) + * to be manually imported to make this library compatible with any CSP. + * See https://github.com/chartjs/Chart.js/issues/5208 + */ + disableCSSInjection: false, + + /** + * This property holds whether this platform is enabled for the current environment. + * Currently used by platform.js to select the proper implementation. + * @private + */ + _enabled: typeof window !== 'undefined' && typeof document !== 'undefined', + + /** + * @private + */ + _ensureLoaded: function() { + if (this._loaded) { + return; + } + + this._loaded = true; + + // https://github.com/chartjs/Chart.js/issues/5208 + if (!this.disableCSSInjection) { + injectCSS(this, stylesheet); + } + }, + + acquireContext: function(item, config) { + if (typeof item === 'string') { + item = document.getElementById(item); + } else if (item.length) { + // Support for array based queries (such as jQuery) + item = item[0]; + } + + if (item && item.canvas) { + // Support for any object associated to a canvas (including a context2d) + item = item.canvas; + } + + // To prevent canvas fingerprinting, some add-ons undefine the getContext + // method, for example: https://github.com/kkapsner/CanvasBlocker + // https://github.com/chartjs/Chart.js/issues/2807 + var context = item && item.getContext && item.getContext('2d'); + + // Load platform resources on first chart creation, to make possible to change + // platform options after importing the library (e.g. `disableCSSInjection`). + this._ensureLoaded(); + + // `instanceof HTMLCanvasElement/CanvasRenderingContext2D` fails when the item is + // inside an iframe or when running in a protected environment. We could guess the + // types from their toString() value but let's keep things flexible and assume it's + // a sufficient condition if the item has a context2D which has item as `canvas`. + // https://github.com/chartjs/Chart.js/issues/3887 + // https://github.com/chartjs/Chart.js/issues/4102 + // https://github.com/chartjs/Chart.js/issues/4152 + if (context && context.canvas === item) { + initCanvas(item, config); + return context; + } + + return null; + }, + + releaseContext: function(context) { + var canvas = context.canvas; + if (!canvas[EXPANDO_KEY]) { + return; + } + + var initial = canvas[EXPANDO_KEY].initial; + ['height', 'width'].forEach(function(prop) { + var value = initial[prop]; + if (helpers$1.isNullOrUndef(value)) { + canvas.removeAttribute(prop); + } else { + canvas.setAttribute(prop, value); + } + }); + + helpers$1.each(initial.style || {}, function(value, key) { + canvas.style[key] = value; + }); + + // The canvas render size might have been changed (and thus the state stack discarded), + // we can't use save() and restore() to restore the initial state. So make sure that at + // least the canvas context is reset to the default state by setting the canvas width. + // https://www.w3.org/TR/2011/WD-html5-20110525/the-canvas-element.html + // eslint-disable-next-line no-self-assign + canvas.width = canvas.width; + + delete canvas[EXPANDO_KEY]; + }, + + addEventListener: function(chart, type, listener) { + var canvas = chart.canvas; + if (type === 'resize') { + // Note: the resize event is not supported on all browsers. + addResizeListener(canvas, listener, chart); + return; + } + + var expando = listener[EXPANDO_KEY] || (listener[EXPANDO_KEY] = {}); + var proxies = expando.proxies || (expando.proxies = {}); + var proxy = proxies[chart.id + '_' + type] = function(event) { + listener(fromNativeEvent(event, chart)); + }; + + addListener(canvas, type, proxy); + }, + + removeEventListener: function(chart, type, listener) { + var canvas = chart.canvas; + if (type === 'resize') { + // Note: the resize event is not supported on all browsers. + removeResizeListener(canvas); + return; + } + + var expando = listener[EXPANDO_KEY] || {}; + var proxies = expando.proxies || {}; + var proxy = proxies[chart.id + '_' + type]; + if (!proxy) { + return; + } + + removeListener(canvas, type, proxy); + } +}; + +// DEPRECATIONS + +/** + * Provided for backward compatibility, use EventTarget.addEventListener instead. + * EventTarget.addEventListener compatibility: Chrome, Opera 7, Safari, FF1.5+, IE9+ + * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener + * @function Chart.helpers.addEvent + * @deprecated since version 2.7.0 + * @todo remove at version 3 + * @private + */ +helpers$1.addEvent = addListener; + +/** + * Provided for backward compatibility, use EventTarget.removeEventListener instead. + * EventTarget.removeEventListener compatibility: Chrome, Opera 7, Safari, FF1.5+, IE9+ + * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener + * @function Chart.helpers.removeEvent + * @deprecated since version 2.7.0 + * @todo remove at version 3 + * @private + */ +helpers$1.removeEvent = removeListener; + +// @TODO Make possible to select another platform at build time. +var implementation = platform_dom$2._enabled ? platform_dom$2 : platform_basic; + +/** + * @namespace Chart.platform + * @see https://chartjs.gitbooks.io/proposals/content/Platform.html + * @since 2.4.0 + */ +var platform = helpers$1.extend({ + /** + * @since 2.7.0 + */ + initialize: function() {}, + + /** + * Called at chart construction time, returns a context2d instance implementing + * the [W3C Canvas 2D Context API standard]{@link https://www.w3.org/TR/2dcontext/}. + * @param {*} item - The native item from which to acquire context (platform specific) + * @param {object} options - The chart options + * @returns {CanvasRenderingContext2D} context2d instance + */ + acquireContext: function() {}, + + /** + * Called at chart destruction time, releases any resources associated to the context + * previously returned by the acquireContext() method. + * @param {CanvasRenderingContext2D} context - The context2d instance + * @returns {boolean} true if the method succeeded, else false + */ + releaseContext: function() {}, + + /** + * Registers the specified listener on the given chart. + * @param {Chart} chart - Chart from which to listen for event + * @param {string} type - The ({@link IEvent}) type to listen for + * @param {function} listener - Receives a notification (an object that implements + * the {@link IEvent} interface) when an event of the specified type occurs. + */ + addEventListener: function() {}, + + /** + * Removes the specified listener previously registered with addEventListener. + * @param {Chart} chart - Chart from which to remove the listener + * @param {string} type - The ({@link IEvent}) type to remove + * @param {function} listener - The listener function to remove from the event target. + */ + removeEventListener: function() {} + +}, implementation); + +core_defaults._set('global', { + plugins: {} +}); + +/** + * The plugin service singleton + * @namespace Chart.plugins + * @since 2.1.0 + */ +var core_plugins = { + /** + * Globally registered plugins. + * @private + */ + _plugins: [], + + /** + * This identifier is used to invalidate the descriptors cache attached to each chart + * when a global plugin is registered or unregistered. In this case, the cache ID is + * incremented and descriptors are regenerated during following API calls. + * @private + */ + _cacheId: 0, + + /** + * Registers the given plugin(s) if not already registered. + * @param {IPlugin[]|IPlugin} plugins plugin instance(s). + */ + register: function(plugins) { + var p = this._plugins; + ([]).concat(plugins).forEach(function(plugin) { + if (p.indexOf(plugin) === -1) { + p.push(plugin); + } + }); + + this._cacheId++; + }, + + /** + * Unregisters the given plugin(s) only if registered. + * @param {IPlugin[]|IPlugin} plugins plugin instance(s). + */ + unregister: function(plugins) { + var p = this._plugins; + ([]).concat(plugins).forEach(function(plugin) { + var idx = p.indexOf(plugin); + if (idx !== -1) { + p.splice(idx, 1); + } + }); + + this._cacheId++; + }, + + /** + * Remove all registered plugins. + * @since 2.1.5 + */ + clear: function() { + this._plugins = []; + this._cacheId++; + }, + + /** + * Returns the number of registered plugins? + * @returns {number} + * @since 2.1.5 + */ + count: function() { + return this._plugins.length; + }, + + /** + * Returns all registered plugin instances. + * @returns {IPlugin[]} array of plugin objects. + * @since 2.1.5 + */ + getAll: function() { + return this._plugins; + }, + + /** + * Calls enabled plugins for `chart` on the specified hook and with the given args. + * This method immediately returns as soon as a plugin explicitly returns false. The + * returned value can be used, for instance, to interrupt the current action. + * @param {Chart} chart - The chart instance for which plugins should be called. + * @param {string} hook - The name of the plugin method to call (e.g. 'beforeUpdate'). + * @param {Array} [args] - Extra arguments to apply to the hook call. + * @returns {boolean} false if any of the plugins return false, else returns true. + */ + notify: function(chart, hook, args) { + var descriptors = this.descriptors(chart); + var ilen = descriptors.length; + var i, descriptor, plugin, params, method; + + for (i = 0; i < ilen; ++i) { + descriptor = descriptors[i]; + plugin = descriptor.plugin; + method = plugin[hook]; + if (typeof method === 'function') { + params = [chart].concat(args || []); + params.push(descriptor.options); + if (method.apply(plugin, params) === false) { + return false; + } + } + } + + return true; + }, + + /** + * Returns descriptors of enabled plugins for the given chart. + * @returns {object[]} [{ plugin, options }] + * @private + */ + descriptors: function(chart) { + var cache = chart.$plugins || (chart.$plugins = {}); + if (cache.id === this._cacheId) { + return cache.descriptors; + } + + var plugins = []; + var descriptors = []; + var config = (chart && chart.config) || {}; + var options = (config.options && config.options.plugins) || {}; + + this._plugins.concat(config.plugins || []).forEach(function(plugin) { + var idx = plugins.indexOf(plugin); + if (idx !== -1) { + return; + } + + var id = plugin.id; + var opts = options[id]; + if (opts === false) { + return; + } + + if (opts === true) { + opts = helpers$1.clone(core_defaults.global.plugins[id]); + } + + plugins.push(plugin); + descriptors.push({ + plugin: plugin, + options: opts || {} + }); + }); + + cache.descriptors = descriptors; + cache.id = this._cacheId; + return descriptors; + }, + + /** + * Invalidates cache for the given chart: descriptors hold a reference on plugin option, + * but in some cases, this reference can be changed by the user when updating options. + * https://github.com/chartjs/Chart.js/issues/5111#issuecomment-355934167 + * @private + */ + _invalidate: function(chart) { + delete chart.$plugins; + } +}; + +var core_scaleService = { + // Scale registration object. Extensions can register new scale types (such as log or DB scales) and then + // use the new chart options to grab the correct scale + constructors: {}, + // Use a registration function so that we can move to an ES6 map when we no longer need to support + // old browsers + + // Scale config defaults + defaults: {}, + registerScaleType: function(type, scaleConstructor, scaleDefaults) { + this.constructors[type] = scaleConstructor; + this.defaults[type] = helpers$1.clone(scaleDefaults); + }, + getScaleConstructor: function(type) { + return this.constructors.hasOwnProperty(type) ? this.constructors[type] : undefined; + }, + getScaleDefaults: function(type) { + // Return the scale defaults merged with the global settings so that we always use the latest ones + return this.defaults.hasOwnProperty(type) ? helpers$1.merge({}, [core_defaults.scale, this.defaults[type]]) : {}; + }, + updateScaleDefaults: function(type, additions) { + var me = this; + if (me.defaults.hasOwnProperty(type)) { + me.defaults[type] = helpers$1.extend(me.defaults[type], additions); + } + }, + addScalesToLayout: function(chart) { + // Adds each scale to the chart.boxes array to be sized accordingly + helpers$1.each(chart.scales, function(scale) { + // Set ILayoutItem parameters for backwards compatibility + scale.fullWidth = scale.options.fullWidth; + scale.position = scale.options.position; + scale.weight = scale.options.weight; + core_layouts.addBox(chart, scale); + }); + } +}; + +var valueOrDefault$7 = helpers$1.valueOrDefault; + +core_defaults._set('global', { + tooltips: { + enabled: true, + custom: null, + mode: 'nearest', + position: 'average', + intersect: true, + backgroundColor: 'rgba(0,0,0,0.8)', + titleFontStyle: 'bold', + titleSpacing: 2, + titleMarginBottom: 6, + titleFontColor: '#fff', + titleAlign: 'left', + bodySpacing: 2, + bodyFontColor: '#fff', + bodyAlign: 'left', + footerFontStyle: 'bold', + footerSpacing: 2, + footerMarginTop: 6, + footerFontColor: '#fff', + footerAlign: 'left', + yPadding: 6, + xPadding: 6, + caretPadding: 2, + caretSize: 5, + cornerRadius: 6, + multiKeyBackground: '#fff', + displayColors: true, + borderColor: 'rgba(0,0,0,0)', + borderWidth: 0, + callbacks: { + // Args are: (tooltipItems, data) + beforeTitle: helpers$1.noop, + title: function(tooltipItems, data) { + var title = ''; + var labels = data.labels; + var labelCount = labels ? labels.length : 0; + + if (tooltipItems.length > 0) { + var item = tooltipItems[0]; + if (item.label) { + title = item.label; + } else if (item.xLabel) { + title = item.xLabel; + } else if (labelCount > 0 && item.index < labelCount) { + title = labels[item.index]; + } + } + + return title; + }, + afterTitle: helpers$1.noop, + + // Args are: (tooltipItems, data) + beforeBody: helpers$1.noop, + + // Args are: (tooltipItem, data) + beforeLabel: helpers$1.noop, + label: function(tooltipItem, data) { + var label = data.datasets[tooltipItem.datasetIndex].label || ''; + + if (label) { + label += ': '; + } + if (!helpers$1.isNullOrUndef(tooltipItem.value)) { + label += tooltipItem.value; + } else { + label += tooltipItem.yLabel; + } + return label; + }, + labelColor: function(tooltipItem, chart) { + var meta = chart.getDatasetMeta(tooltipItem.datasetIndex); + var activeElement = meta.data[tooltipItem.index]; + var view = activeElement._view; + return { + borderColor: view.borderColor, + backgroundColor: view.backgroundColor + }; + }, + labelTextColor: function() { + return this._options.bodyFontColor; + }, + afterLabel: helpers$1.noop, + + // Args are: (tooltipItems, data) + afterBody: helpers$1.noop, + + // Args are: (tooltipItems, data) + beforeFooter: helpers$1.noop, + footer: helpers$1.noop, + afterFooter: helpers$1.noop + } + } +}); + +var positioners = { + /** + * Average mode places the tooltip at the average position of the elements shown + * @function Chart.Tooltip.positioners.average + * @param elements {ChartElement[]} the elements being displayed in the tooltip + * @returns {object} tooltip position + */ + average: function(elements) { + if (!elements.length) { + return false; + } + + var i, len; + var x = 0; + var y = 0; + var count = 0; + + for (i = 0, len = elements.length; i < len; ++i) { + var el = elements[i]; + if (el && el.hasValue()) { + var pos = el.tooltipPosition(); + x += pos.x; + y += pos.y; + ++count; + } + } + + return { + x: x / count, + y: y / count + }; + }, + + /** + * Gets the tooltip position nearest of the item nearest to the event position + * @function Chart.Tooltip.positioners.nearest + * @param elements {Chart.Element[]} the tooltip elements + * @param eventPosition {object} the position of the event in canvas coordinates + * @returns {object} the tooltip position + */ + nearest: function(elements, eventPosition) { + var x = eventPosition.x; + var y = eventPosition.y; + var minDistance = Number.POSITIVE_INFINITY; + var i, len, nearestElement; + + for (i = 0, len = elements.length; i < len; ++i) { + var el = elements[i]; + if (el && el.hasValue()) { + var center = el.getCenterPoint(); + var d = helpers$1.distanceBetweenPoints(eventPosition, center); + + if (d < minDistance) { + minDistance = d; + nearestElement = el; + } + } + } + + if (nearestElement) { + var tp = nearestElement.tooltipPosition(); + x = tp.x; + y = tp.y; + } + + return { + x: x, + y: y + }; + } +}; + +// Helper to push or concat based on if the 2nd parameter is an array or not +function pushOrConcat(base, toPush) { + if (toPush) { + if (helpers$1.isArray(toPush)) { + // base = base.concat(toPush); + Array.prototype.push.apply(base, toPush); + } else { + base.push(toPush); + } + } + + return base; +} + +/** + * Returns array of strings split by newline + * @param {string} value - The value to split by newline. + * @returns {string[]} value if newline present - Returned from String split() method + * @function + */ +function splitNewlines(str) { + if ((typeof str === 'string' || str instanceof String) && str.indexOf('\n') > -1) { + return str.split('\n'); + } + return str; +} + + +/** + * Private helper to create a tooltip item model + * @param element - the chart element (point, arc, bar) to create the tooltip item for + * @return new tooltip item + */ +function createTooltipItem(element) { + var xScale = element._xScale; + var yScale = element._yScale || element._scale; // handle radar || polarArea charts + var index = element._index; + var datasetIndex = element._datasetIndex; + var controller = element._chart.getDatasetMeta(datasetIndex).controller; + var indexScale = controller._getIndexScale(); + var valueScale = controller._getValueScale(); + + return { + xLabel: xScale ? xScale.getLabelForIndex(index, datasetIndex) : '', + yLabel: yScale ? yScale.getLabelForIndex(index, datasetIndex) : '', + label: indexScale ? '' + indexScale.getLabelForIndex(index, datasetIndex) : '', + value: valueScale ? '' + valueScale.getLabelForIndex(index, datasetIndex) : '', + index: index, + datasetIndex: datasetIndex, + x: element._model.x, + y: element._model.y + }; +} + +/** + * Helper to get the reset model for the tooltip + * @param tooltipOpts {object} the tooltip options + */ +function getBaseModel(tooltipOpts) { + var globalDefaults = core_defaults.global; + + return { + // Positioning + xPadding: tooltipOpts.xPadding, + yPadding: tooltipOpts.yPadding, + xAlign: tooltipOpts.xAlign, + yAlign: tooltipOpts.yAlign, + + // Body + bodyFontColor: tooltipOpts.bodyFontColor, + _bodyFontFamily: valueOrDefault$7(tooltipOpts.bodyFontFamily, globalDefaults.defaultFontFamily), + _bodyFontStyle: valueOrDefault$7(tooltipOpts.bodyFontStyle, globalDefaults.defaultFontStyle), + _bodyAlign: tooltipOpts.bodyAlign, + bodyFontSize: valueOrDefault$7(tooltipOpts.bodyFontSize, globalDefaults.defaultFontSize), + bodySpacing: tooltipOpts.bodySpacing, + + // Title + titleFontColor: tooltipOpts.titleFontColor, + _titleFontFamily: valueOrDefault$7(tooltipOpts.titleFontFamily, globalDefaults.defaultFontFamily), + _titleFontStyle: valueOrDefault$7(tooltipOpts.titleFontStyle, globalDefaults.defaultFontStyle), + titleFontSize: valueOrDefault$7(tooltipOpts.titleFontSize, globalDefaults.defaultFontSize), + _titleAlign: tooltipOpts.titleAlign, + titleSpacing: tooltipOpts.titleSpacing, + titleMarginBottom: tooltipOpts.titleMarginBottom, + + // Footer + footerFontColor: tooltipOpts.footerFontColor, + _footerFontFamily: valueOrDefault$7(tooltipOpts.footerFontFamily, globalDefaults.defaultFontFamily), + _footerFontStyle: valueOrDefault$7(tooltipOpts.footerFontStyle, globalDefaults.defaultFontStyle), + footerFontSize: valueOrDefault$7(tooltipOpts.footerFontSize, globalDefaults.defaultFontSize), + _footerAlign: tooltipOpts.footerAlign, + footerSpacing: tooltipOpts.footerSpacing, + footerMarginTop: tooltipOpts.footerMarginTop, + + // Appearance + caretSize: tooltipOpts.caretSize, + cornerRadius: tooltipOpts.cornerRadius, + backgroundColor: tooltipOpts.backgroundColor, + opacity: 0, + legendColorBackground: tooltipOpts.multiKeyBackground, + displayColors: tooltipOpts.displayColors, + borderColor: tooltipOpts.borderColor, + borderWidth: tooltipOpts.borderWidth + }; +} + +/** + * Get the size of the tooltip + */ +function getTooltipSize(tooltip, model) { + var ctx = tooltip._chart.ctx; + + var height = model.yPadding * 2; // Tooltip Padding + var width = 0; + + // Count of all lines in the body + var body = model.body; + var combinedBodyLength = body.reduce(function(count, bodyItem) { + return count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length; + }, 0); + combinedBodyLength += model.beforeBody.length + model.afterBody.length; + + var titleLineCount = model.title.length; + var footerLineCount = model.footer.length; + var titleFontSize = model.titleFontSize; + var bodyFontSize = model.bodyFontSize; + var footerFontSize = model.footerFontSize; + + height += titleLineCount * titleFontSize; // Title Lines + height += titleLineCount ? (titleLineCount - 1) * model.titleSpacing : 0; // Title Line Spacing + height += titleLineCount ? model.titleMarginBottom : 0; // Title's bottom Margin + height += combinedBodyLength * bodyFontSize; // Body Lines + height += combinedBodyLength ? (combinedBodyLength - 1) * model.bodySpacing : 0; // Body Line Spacing + height += footerLineCount ? model.footerMarginTop : 0; // Footer Margin + height += footerLineCount * (footerFontSize); // Footer Lines + height += footerLineCount ? (footerLineCount - 1) * model.footerSpacing : 0; // Footer Line Spacing + + // Title width + var widthPadding = 0; + var maxLineWidth = function(line) { + width = Math.max(width, ctx.measureText(line).width + widthPadding); + }; + + ctx.font = helpers$1.fontString(titleFontSize, model._titleFontStyle, model._titleFontFamily); + helpers$1.each(model.title, maxLineWidth); + + // Body width + ctx.font = helpers$1.fontString(bodyFontSize, model._bodyFontStyle, model._bodyFontFamily); + helpers$1.each(model.beforeBody.concat(model.afterBody), maxLineWidth); + + // Body lines may include some extra width due to the color box + widthPadding = model.displayColors ? (bodyFontSize + 2) : 0; + helpers$1.each(body, function(bodyItem) { + helpers$1.each(bodyItem.before, maxLineWidth); + helpers$1.each(bodyItem.lines, maxLineWidth); + helpers$1.each(bodyItem.after, maxLineWidth); + }); + + // Reset back to 0 + widthPadding = 0; + + // Footer width + ctx.font = helpers$1.fontString(footerFontSize, model._footerFontStyle, model._footerFontFamily); + helpers$1.each(model.footer, maxLineWidth); + + // Add padding + width += 2 * model.xPadding; + + return { + width: width, + height: height + }; +} + +/** + * Helper to get the alignment of a tooltip given the size + */ +function determineAlignment(tooltip, size) { + var model = tooltip._model; + var chart = tooltip._chart; + var chartArea = tooltip._chart.chartArea; + var xAlign = 'center'; + var yAlign = 'center'; + + if (model.y < size.height) { + yAlign = 'top'; + } else if (model.y > (chart.height - size.height)) { + yAlign = 'bottom'; + } + + var lf, rf; // functions to determine left, right alignment + var olf, orf; // functions to determine if left/right alignment causes tooltip to go outside chart + var yf; // function to get the y alignment if the tooltip goes outside of the left or right edges + var midX = (chartArea.left + chartArea.right) / 2; + var midY = (chartArea.top + chartArea.bottom) / 2; + + if (yAlign === 'center') { + lf = function(x) { + return x <= midX; + }; + rf = function(x) { + return x > midX; + }; + } else { + lf = function(x) { + return x <= (size.width / 2); + }; + rf = function(x) { + return x >= (chart.width - (size.width / 2)); + }; + } + + olf = function(x) { + return x + size.width + model.caretSize + model.caretPadding > chart.width; + }; + orf = function(x) { + return x - size.width - model.caretSize - model.caretPadding < 0; + }; + yf = function(y) { + return y <= midY ? 'top' : 'bottom'; + }; + + if (lf(model.x)) { + xAlign = 'left'; + + // Is tooltip too wide and goes over the right side of the chart.? + if (olf(model.x)) { + xAlign = 'center'; + yAlign = yf(model.y); + } + } else if (rf(model.x)) { + xAlign = 'right'; + + // Is tooltip too wide and goes outside left edge of canvas? + if (orf(model.x)) { + xAlign = 'center'; + yAlign = yf(model.y); + } + } + + var opts = tooltip._options; + return { + xAlign: opts.xAlign ? opts.xAlign : xAlign, + yAlign: opts.yAlign ? opts.yAlign : yAlign + }; +} + +/** + * Helper to get the location a tooltip needs to be placed at given the initial position (via the vm) and the size and alignment + */ +function getBackgroundPoint(vm, size, alignment, chart) { + // Background Position + var x = vm.x; + var y = vm.y; + + var caretSize = vm.caretSize; + var caretPadding = vm.caretPadding; + var cornerRadius = vm.cornerRadius; + var xAlign = alignment.xAlign; + var yAlign = alignment.yAlign; + var paddingAndSize = caretSize + caretPadding; + var radiusAndPadding = cornerRadius + caretPadding; + + if (xAlign === 'right') { + x -= size.width; + } else if (xAlign === 'center') { + x -= (size.width / 2); + if (x + size.width > chart.width) { + x = chart.width - size.width; + } + if (x < 0) { + x = 0; + } + } + + if (yAlign === 'top') { + y += paddingAndSize; + } else if (yAlign === 'bottom') { + y -= size.height + paddingAndSize; + } else { + y -= (size.height / 2); + } + + if (yAlign === 'center') { + if (xAlign === 'left') { + x += paddingAndSize; + } else if (xAlign === 'right') { + x -= paddingAndSize; + } + } else if (xAlign === 'left') { + x -= radiusAndPadding; + } else if (xAlign === 'right') { + x += radiusAndPadding; + } + + return { + x: x, + y: y + }; +} + +function getAlignedX(vm, align) { + return align === 'center' + ? vm.x + vm.width / 2 + : align === 'right' + ? vm.x + vm.width - vm.xPadding + : vm.x + vm.xPadding; +} + +/** + * Helper to build before and after body lines + */ +function getBeforeAfterBodyLines(callback) { + return pushOrConcat([], splitNewlines(callback)); +} + +var exports$3 = core_element.extend({ + initialize: function() { + this._model = getBaseModel(this._options); + this._lastActive = []; + }, + + // Get the title + // Args are: (tooltipItem, data) + getTitle: function() { + var me = this; + var opts = me._options; + var callbacks = opts.callbacks; + + var beforeTitle = callbacks.beforeTitle.apply(me, arguments); + var title = callbacks.title.apply(me, arguments); + var afterTitle = callbacks.afterTitle.apply(me, arguments); + + var lines = []; + lines = pushOrConcat(lines, splitNewlines(beforeTitle)); + lines = pushOrConcat(lines, splitNewlines(title)); + lines = pushOrConcat(lines, splitNewlines(afterTitle)); + + return lines; + }, + + // Args are: (tooltipItem, data) + getBeforeBody: function() { + return getBeforeAfterBodyLines(this._options.callbacks.beforeBody.apply(this, arguments)); + }, + + // Args are: (tooltipItem, data) + getBody: function(tooltipItems, data) { + var me = this; + var callbacks = me._options.callbacks; + var bodyItems = []; + + helpers$1.each(tooltipItems, function(tooltipItem) { + var bodyItem = { + before: [], + lines: [], + after: [] + }; + pushOrConcat(bodyItem.before, splitNewlines(callbacks.beforeLabel.call(me, tooltipItem, data))); + pushOrConcat(bodyItem.lines, callbacks.label.call(me, tooltipItem, data)); + pushOrConcat(bodyItem.after, splitNewlines(callbacks.afterLabel.call(me, tooltipItem, data))); + + bodyItems.push(bodyItem); + }); + + return bodyItems; + }, + + // Args are: (tooltipItem, data) + getAfterBody: function() { + return getBeforeAfterBodyLines(this._options.callbacks.afterBody.apply(this, arguments)); + }, + + // Get the footer and beforeFooter and afterFooter lines + // Args are: (tooltipItem, data) + getFooter: function() { + var me = this; + var callbacks = me._options.callbacks; + + var beforeFooter = callbacks.beforeFooter.apply(me, arguments); + var footer = callbacks.footer.apply(me, arguments); + var afterFooter = callbacks.afterFooter.apply(me, arguments); + + var lines = []; + lines = pushOrConcat(lines, splitNewlines(beforeFooter)); + lines = pushOrConcat(lines, splitNewlines(footer)); + lines = pushOrConcat(lines, splitNewlines(afterFooter)); + + return lines; + }, + + update: function(changed) { + var me = this; + var opts = me._options; + + // Need to regenerate the model because its faster than using extend and it is necessary due to the optimization in Chart.Element.transition + // that does _view = _model if ease === 1. This causes the 2nd tooltip update to set properties in both the view and model at the same time + // which breaks any animations. + var existingModel = me._model; + var model = me._model = getBaseModel(opts); + var active = me._active; + + var data = me._data; + + // In the case where active.length === 0 we need to keep these at existing values for good animations + var alignment = { + xAlign: existingModel.xAlign, + yAlign: existingModel.yAlign + }; + var backgroundPoint = { + x: existingModel.x, + y: existingModel.y + }; + var tooltipSize = { + width: existingModel.width, + height: existingModel.height + }; + var tooltipPosition = { + x: existingModel.caretX, + y: existingModel.caretY + }; + + var i, len; + + if (active.length) { + model.opacity = 1; + + var labelColors = []; + var labelTextColors = []; + tooltipPosition = positioners[opts.position].call(me, active, me._eventPosition); + + var tooltipItems = []; + for (i = 0, len = active.length; i < len; ++i) { + tooltipItems.push(createTooltipItem(active[i])); + } + + // If the user provided a filter function, use it to modify the tooltip items + if (opts.filter) { + tooltipItems = tooltipItems.filter(function(a) { + return opts.filter(a, data); + }); + } + + // If the user provided a sorting function, use it to modify the tooltip items + if (opts.itemSort) { + tooltipItems = tooltipItems.sort(function(a, b) { + return opts.itemSort(a, b, data); + }); + } + + // Determine colors for boxes + helpers$1.each(tooltipItems, function(tooltipItem) { + labelColors.push(opts.callbacks.labelColor.call(me, tooltipItem, me._chart)); + labelTextColors.push(opts.callbacks.labelTextColor.call(me, tooltipItem, me._chart)); + }); + + + // Build the Text Lines + model.title = me.getTitle(tooltipItems, data); + model.beforeBody = me.getBeforeBody(tooltipItems, data); + model.body = me.getBody(tooltipItems, data); + model.afterBody = me.getAfterBody(tooltipItems, data); + model.footer = me.getFooter(tooltipItems, data); + + // Initial positioning and colors + model.x = tooltipPosition.x; + model.y = tooltipPosition.y; + model.caretPadding = opts.caretPadding; + model.labelColors = labelColors; + model.labelTextColors = labelTextColors; + + // data points + model.dataPoints = tooltipItems; + + // We need to determine alignment of the tooltip + tooltipSize = getTooltipSize(this, model); + alignment = determineAlignment(this, tooltipSize); + // Final Size and Position + backgroundPoint = getBackgroundPoint(model, tooltipSize, alignment, me._chart); + } else { + model.opacity = 0; + } + + model.xAlign = alignment.xAlign; + model.yAlign = alignment.yAlign; + model.x = backgroundPoint.x; + model.y = backgroundPoint.y; + model.width = tooltipSize.width; + model.height = tooltipSize.height; + + // Point where the caret on the tooltip points to + model.caretX = tooltipPosition.x; + model.caretY = tooltipPosition.y; + + me._model = model; + + if (changed && opts.custom) { + opts.custom.call(me, model); + } + + return me; + }, + + drawCaret: function(tooltipPoint, size) { + var ctx = this._chart.ctx; + var vm = this._view; + var caretPosition = this.getCaretPosition(tooltipPoint, size, vm); + + ctx.lineTo(caretPosition.x1, caretPosition.y1); + ctx.lineTo(caretPosition.x2, caretPosition.y2); + ctx.lineTo(caretPosition.x3, caretPosition.y3); + }, + getCaretPosition: function(tooltipPoint, size, vm) { + var x1, x2, x3, y1, y2, y3; + var caretSize = vm.caretSize; + var cornerRadius = vm.cornerRadius; + var xAlign = vm.xAlign; + var yAlign = vm.yAlign; + var ptX = tooltipPoint.x; + var ptY = tooltipPoint.y; + var width = size.width; + var height = size.height; + + if (yAlign === 'center') { + y2 = ptY + (height / 2); + + if (xAlign === 'left') { + x1 = ptX; + x2 = x1 - caretSize; + x3 = x1; + + y1 = y2 + caretSize; + y3 = y2 - caretSize; + } else { + x1 = ptX + width; + x2 = x1 + caretSize; + x3 = x1; + + y1 = y2 - caretSize; + y3 = y2 + caretSize; + } + } else { + if (xAlign === 'left') { + x2 = ptX + cornerRadius + (caretSize); + x1 = x2 - caretSize; + x3 = x2 + caretSize; + } else if (xAlign === 'right') { + x2 = ptX + width - cornerRadius - caretSize; + x1 = x2 - caretSize; + x3 = x2 + caretSize; + } else { + x2 = vm.caretX; + x1 = x2 - caretSize; + x3 = x2 + caretSize; + } + if (yAlign === 'top') { + y1 = ptY; + y2 = y1 - caretSize; + y3 = y1; + } else { + y1 = ptY + height; + y2 = y1 + caretSize; + y3 = y1; + // invert drawing order + var tmp = x3; + x3 = x1; + x1 = tmp; + } + } + return {x1: x1, x2: x2, x3: x3, y1: y1, y2: y2, y3: y3}; + }, + + drawTitle: function(pt, vm, ctx) { + var title = vm.title; + + if (title.length) { + pt.x = getAlignedX(vm, vm._titleAlign); + + ctx.textAlign = vm._titleAlign; + ctx.textBaseline = 'top'; + + var titleFontSize = vm.titleFontSize; + var titleSpacing = vm.titleSpacing; + + ctx.fillStyle = vm.titleFontColor; + ctx.font = helpers$1.fontString(titleFontSize, vm._titleFontStyle, vm._titleFontFamily); + + var i, len; + for (i = 0, len = title.length; i < len; ++i) { + ctx.fillText(title[i], pt.x, pt.y); + pt.y += titleFontSize + titleSpacing; // Line Height and spacing + + if (i + 1 === title.length) { + pt.y += vm.titleMarginBottom - titleSpacing; // If Last, add margin, remove spacing + } + } + } + }, + + drawBody: function(pt, vm, ctx) { + var bodyFontSize = vm.bodyFontSize; + var bodySpacing = vm.bodySpacing; + var bodyAlign = vm._bodyAlign; + var body = vm.body; + var drawColorBoxes = vm.displayColors; + var labelColors = vm.labelColors; + var xLinePadding = 0; + var colorX = drawColorBoxes ? getAlignedX(vm, 'left') : 0; + var textColor; + + ctx.textAlign = bodyAlign; + ctx.textBaseline = 'top'; + ctx.font = helpers$1.fontString(bodyFontSize, vm._bodyFontStyle, vm._bodyFontFamily); + + pt.x = getAlignedX(vm, bodyAlign); + + // Before Body + var fillLineOfText = function(line) { + ctx.fillText(line, pt.x + xLinePadding, pt.y); + pt.y += bodyFontSize + bodySpacing; + }; + + // Before body lines + ctx.fillStyle = vm.bodyFontColor; + helpers$1.each(vm.beforeBody, fillLineOfText); + + xLinePadding = drawColorBoxes && bodyAlign !== 'right' + ? bodyAlign === 'center' ? (bodyFontSize / 2 + 1) : (bodyFontSize + 2) + : 0; + + // Draw body lines now + helpers$1.each(body, function(bodyItem, i) { + textColor = vm.labelTextColors[i]; + ctx.fillStyle = textColor; + helpers$1.each(bodyItem.before, fillLineOfText); + + helpers$1.each(bodyItem.lines, function(line) { + // Draw Legend-like boxes if needed + if (drawColorBoxes) { + // Fill a white rect so that colours merge nicely if the opacity is < 1 + ctx.fillStyle = vm.legendColorBackground; + ctx.fillRect(colorX, pt.y, bodyFontSize, bodyFontSize); + + // Border + ctx.lineWidth = 1; + ctx.strokeStyle = labelColors[i].borderColor; + ctx.strokeRect(colorX, pt.y, bodyFontSize, bodyFontSize); + + // Inner square + ctx.fillStyle = labelColors[i].backgroundColor; + ctx.fillRect(colorX + 1, pt.y + 1, bodyFontSize - 2, bodyFontSize - 2); + ctx.fillStyle = textColor; + } + + fillLineOfText(line); + }); + + helpers$1.each(bodyItem.after, fillLineOfText); + }); + + // Reset back to 0 for after body + xLinePadding = 0; + + // After body lines + helpers$1.each(vm.afterBody, fillLineOfText); + pt.y -= bodySpacing; // Remove last body spacing + }, + + drawFooter: function(pt, vm, ctx) { + var footer = vm.footer; + + if (footer.length) { + pt.x = getAlignedX(vm, vm._footerAlign); + pt.y += vm.footerMarginTop; + + ctx.textAlign = vm._footerAlign; + ctx.textBaseline = 'top'; + + ctx.fillStyle = vm.footerFontColor; + ctx.font = helpers$1.fontString(vm.footerFontSize, vm._footerFontStyle, vm._footerFontFamily); + + helpers$1.each(footer, function(line) { + ctx.fillText(line, pt.x, pt.y); + pt.y += vm.footerFontSize + vm.footerSpacing; + }); + } + }, + + drawBackground: function(pt, vm, ctx, tooltipSize) { + ctx.fillStyle = vm.backgroundColor; + ctx.strokeStyle = vm.borderColor; + ctx.lineWidth = vm.borderWidth; + var xAlign = vm.xAlign; + var yAlign = vm.yAlign; + var x = pt.x; + var y = pt.y; + var width = tooltipSize.width; + var height = tooltipSize.height; + var radius = vm.cornerRadius; + + ctx.beginPath(); + ctx.moveTo(x + radius, y); + if (yAlign === 'top') { + this.drawCaret(pt, tooltipSize); + } + ctx.lineTo(x + width - radius, y); + ctx.quadraticCurveTo(x + width, y, x + width, y + radius); + if (yAlign === 'center' && xAlign === 'right') { + this.drawCaret(pt, tooltipSize); + } + ctx.lineTo(x + width, y + height - radius); + ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height); + if (yAlign === 'bottom') { + this.drawCaret(pt, tooltipSize); + } + ctx.lineTo(x + radius, y + height); + ctx.quadraticCurveTo(x, y + height, x, y + height - radius); + if (yAlign === 'center' && xAlign === 'left') { + this.drawCaret(pt, tooltipSize); + } + ctx.lineTo(x, y + radius); + ctx.quadraticCurveTo(x, y, x + radius, y); + ctx.closePath(); + + ctx.fill(); + + if (vm.borderWidth > 0) { + ctx.stroke(); + } + }, + + draw: function() { + var ctx = this._chart.ctx; + var vm = this._view; + + if (vm.opacity === 0) { + return; + } + + var tooltipSize = { + width: vm.width, + height: vm.height + }; + var pt = { + x: vm.x, + y: vm.y + }; + + // IE11/Edge does not like very small opacities, so snap to 0 + var opacity = Math.abs(vm.opacity < 1e-3) ? 0 : vm.opacity; + + // Truthy/falsey value for empty tooltip + var hasTooltipContent = vm.title.length || vm.beforeBody.length || vm.body.length || vm.afterBody.length || vm.footer.length; + + if (this._options.enabled && hasTooltipContent) { + ctx.save(); + ctx.globalAlpha = opacity; + + // Draw Background + this.drawBackground(pt, vm, ctx, tooltipSize); + + // Draw Title, Body, and Footer + pt.y += vm.yPadding; + + // Titles + this.drawTitle(pt, vm, ctx); + + // Body + this.drawBody(pt, vm, ctx); + + // Footer + this.drawFooter(pt, vm, ctx); + + ctx.restore(); + } + }, + + /** + * Handle an event + * @private + * @param {IEvent} event - The event to handle + * @returns {boolean} true if the tooltip changed + */ + handleEvent: function(e) { + var me = this; + var options = me._options; + var changed = false; + + me._lastActive = me._lastActive || []; + + // Find Active Elements for tooltips + if (e.type === 'mouseout') { + me._active = []; + } else { + me._active = me._chart.getElementsAtEventForMode(e, options.mode, options); + } + + // Remember Last Actives + changed = !helpers$1.arrayEquals(me._active, me._lastActive); + + // Only handle target event on tooltip change + if (changed) { + me._lastActive = me._active; + + if (options.enabled || options.custom) { + me._eventPosition = { + x: e.x, + y: e.y + }; + + me.update(true); + me.pivot(); + } + } + + return changed; + } +}); + +/** + * @namespace Chart.Tooltip.positioners + */ +var positioners_1 = positioners; + +var core_tooltip = exports$3; +core_tooltip.positioners = positioners_1; + +var valueOrDefault$8 = helpers$1.valueOrDefault; + +core_defaults._set('global', { + elements: {}, + events: [ + 'mousemove', + 'mouseout', + 'click', + 'touchstart', + 'touchmove' + ], + hover: { + onHover: null, + mode: 'nearest', + intersect: true, + animationDuration: 400 + }, + onClick: null, + maintainAspectRatio: true, + responsive: true, + responsiveAnimationDuration: 0 +}); + +/** + * Recursively merge the given config objects representing the `scales` option + * by incorporating scale defaults in `xAxes` and `yAxes` array items, then + * returns a deep copy of the result, thus doesn't alter inputs. + */ +function mergeScaleConfig(/* config objects ... */) { + return helpers$1.merge({}, [].slice.call(arguments), { + merger: function(key, target, source, options) { + if (key === 'xAxes' || key === 'yAxes') { + var slen = source[key].length; + var i, type, scale; + + if (!target[key]) { + target[key] = []; + } + + for (i = 0; i < slen; ++i) { + scale = source[key][i]; + type = valueOrDefault$8(scale.type, key === 'xAxes' ? 'category' : 'linear'); + + if (i >= target[key].length) { + target[key].push({}); + } + + if (!target[key][i].type || (scale.type && scale.type !== target[key][i].type)) { + // new/untyped scale or type changed: let's apply the new defaults + // then merge source scale to correctly overwrite the defaults. + helpers$1.merge(target[key][i], [core_scaleService.getScaleDefaults(type), scale]); + } else { + // scales type are the same + helpers$1.merge(target[key][i], scale); + } + } + } else { + helpers$1._merger(key, target, source, options); + } + } + }); +} + +/** + * Recursively merge the given config objects as the root options by handling + * default scale options for the `scales` and `scale` properties, then returns + * a deep copy of the result, thus doesn't alter inputs. + */ +function mergeConfig(/* config objects ... */) { + return helpers$1.merge({}, [].slice.call(arguments), { + merger: function(key, target, source, options) { + var tval = target[key] || {}; + var sval = source[key]; + + if (key === 'scales') { + // scale config merging is complex. Add our own function here for that + target[key] = mergeScaleConfig(tval, sval); + } else if (key === 'scale') { + // used in polar area & radar charts since there is only one scale + target[key] = helpers$1.merge(tval, [core_scaleService.getScaleDefaults(sval.type), sval]); + } else { + helpers$1._merger(key, target, source, options); + } + } + }); +} + +function initConfig(config) { + config = config || {}; + + // Do NOT use mergeConfig for the data object because this method merges arrays + // and so would change references to labels and datasets, preventing data updates. + var data = config.data = config.data || {}; + data.datasets = data.datasets || []; + data.labels = data.labels || []; + + config.options = mergeConfig( + core_defaults.global, + core_defaults[config.type], + config.options || {}); + + return config; +} + +function updateConfig(chart) { + var newOptions = chart.options; + + helpers$1.each(chart.scales, function(scale) { + core_layouts.removeBox(chart, scale); + }); + + newOptions = mergeConfig( + core_defaults.global, + core_defaults[chart.config.type], + newOptions); + + chart.options = chart.config.options = newOptions; + chart.ensureScalesHaveIDs(); + chart.buildOrUpdateScales(); + + // Tooltip + chart.tooltip._options = newOptions.tooltips; + chart.tooltip.initialize(); +} + +function positionIsHorizontal(position) { + return position === 'top' || position === 'bottom'; +} + +var Chart = function(item, config) { + this.construct(item, config); + return this; +}; + +helpers$1.extend(Chart.prototype, /** @lends Chart */ { + /** + * @private + */ + construct: function(item, config) { + var me = this; + + config = initConfig(config); + + var context = platform.acquireContext(item, config); + var canvas = context && context.canvas; + var height = canvas && canvas.height; + var width = canvas && canvas.width; + + me.id = helpers$1.uid(); + me.ctx = context; + me.canvas = canvas; + me.config = config; + me.width = width; + me.height = height; + me.aspectRatio = height ? width / height : null; + me.options = config.options; + me._bufferedRender = false; + + /** + * Provided for backward compatibility, Chart and Chart.Controller have been merged, + * the "instance" still need to be defined since it might be called from plugins. + * @prop Chart#chart + * @deprecated since version 2.6.0 + * @todo remove at version 3 + * @private + */ + me.chart = me; + me.controller = me; // chart.chart.controller #inception + + // Add the chart instance to the global namespace + Chart.instances[me.id] = me; + + // Define alias to the config data: `chart.data === chart.config.data` + Object.defineProperty(me, 'data', { + get: function() { + return me.config.data; + }, + set: function(value) { + me.config.data = value; + } + }); + + if (!context || !canvas) { + // The given item is not a compatible context2d element, let's return before finalizing + // the chart initialization but after setting basic chart / controller properties that + // can help to figure out that the chart is not valid (e.g chart.canvas !== null); + // https://github.com/chartjs/Chart.js/issues/2807 + console.error("Failed to create chart: can't acquire context from the given item"); + return; + } + + me.initialize(); + me.update(); + }, + + /** + * @private + */ + initialize: function() { + var me = this; + + // Before init plugin notification + core_plugins.notify(me, 'beforeInit'); + + helpers$1.retinaScale(me, me.options.devicePixelRatio); + + me.bindEvents(); + + if (me.options.responsive) { + // Initial resize before chart draws (must be silent to preserve initial animations). + me.resize(true); + } + + // Make sure scales have IDs and are built before we build any controllers. + me.ensureScalesHaveIDs(); + me.buildOrUpdateScales(); + me.initToolTip(); + + // After init plugin notification + core_plugins.notify(me, 'afterInit'); + + return me; + }, + + clear: function() { + helpers$1.canvas.clear(this); + return this; + }, + + stop: function() { + // Stops any current animation loop occurring + core_animations.cancelAnimation(this); + return this; + }, + + resize: function(silent) { + var me = this; + var options = me.options; + var canvas = me.canvas; + var aspectRatio = (options.maintainAspectRatio && me.aspectRatio) || null; + + // the canvas render width and height will be casted to integers so make sure that + // the canvas display style uses the same integer values to avoid blurring effect. + + // Set to 0 instead of canvas.size because the size defaults to 300x150 if the element is collapsed + var newWidth = Math.max(0, Math.floor(helpers$1.getMaximumWidth(canvas))); + var newHeight = Math.max(0, Math.floor(aspectRatio ? newWidth / aspectRatio : helpers$1.getMaximumHeight(canvas))); + + if (me.width === newWidth && me.height === newHeight) { + return; + } + + canvas.width = me.width = newWidth; + canvas.height = me.height = newHeight; + canvas.style.width = newWidth + 'px'; + canvas.style.height = newHeight + 'px'; + + helpers$1.retinaScale(me, options.devicePixelRatio); + + if (!silent) { + // Notify any plugins about the resize + var newSize = {width: newWidth, height: newHeight}; + core_plugins.notify(me, 'resize', [newSize]); + + // Notify of resize + if (options.onResize) { + options.onResize(me, newSize); + } + + me.stop(); + me.update({ + duration: options.responsiveAnimationDuration + }); + } + }, + + ensureScalesHaveIDs: function() { + var options = this.options; + var scalesOptions = options.scales || {}; + var scaleOptions = options.scale; + + helpers$1.each(scalesOptions.xAxes, function(xAxisOptions, index) { + xAxisOptions.id = xAxisOptions.id || ('x-axis-' + index); + }); + + helpers$1.each(scalesOptions.yAxes, function(yAxisOptions, index) { + yAxisOptions.id = yAxisOptions.id || ('y-axis-' + index); + }); + + if (scaleOptions) { + scaleOptions.id = scaleOptions.id || 'scale'; + } + }, + + /** + * Builds a map of scale ID to scale object for future lookup. + */ + buildOrUpdateScales: function() { + var me = this; + var options = me.options; + var scales = me.scales || {}; + var items = []; + var updated = Object.keys(scales).reduce(function(obj, id) { + obj[id] = false; + return obj; + }, {}); + + if (options.scales) { + items = items.concat( + (options.scales.xAxes || []).map(function(xAxisOptions) { + return {options: xAxisOptions, dtype: 'category', dposition: 'bottom'}; + }), + (options.scales.yAxes || []).map(function(yAxisOptions) { + return {options: yAxisOptions, dtype: 'linear', dposition: 'left'}; + }) + ); + } + + if (options.scale) { + items.push({ + options: options.scale, + dtype: 'radialLinear', + isDefault: true, + dposition: 'chartArea' + }); + } + + helpers$1.each(items, function(item) { + var scaleOptions = item.options; + var id = scaleOptions.id; + var scaleType = valueOrDefault$8(scaleOptions.type, item.dtype); + + if (positionIsHorizontal(scaleOptions.position) !== positionIsHorizontal(item.dposition)) { + scaleOptions.position = item.dposition; + } + + updated[id] = true; + var scale = null; + if (id in scales && scales[id].type === scaleType) { + scale = scales[id]; + scale.options = scaleOptions; + scale.ctx = me.ctx; + scale.chart = me; + } else { + var scaleClass = core_scaleService.getScaleConstructor(scaleType); + if (!scaleClass) { + return; + } + scale = new scaleClass({ + id: id, + type: scaleType, + options: scaleOptions, + ctx: me.ctx, + chart: me + }); + scales[scale.id] = scale; + } + + scale.mergeTicksOptions(); + + // TODO(SB): I think we should be able to remove this custom case (options.scale) + // and consider it as a regular scale part of the "scales"" map only! This would + // make the logic easier and remove some useless? custom code. + if (item.isDefault) { + me.scale = scale; + } + }); + // clear up discarded scales + helpers$1.each(updated, function(hasUpdated, id) { + if (!hasUpdated) { + delete scales[id]; + } + }); + + me.scales = scales; + + core_scaleService.addScalesToLayout(this); + }, + + buildOrUpdateControllers: function() { + var me = this; + var newControllers = []; + + helpers$1.each(me.data.datasets, function(dataset, datasetIndex) { + var meta = me.getDatasetMeta(datasetIndex); + var type = dataset.type || me.config.type; + + if (meta.type && meta.type !== type) { + me.destroyDatasetMeta(datasetIndex); + meta = me.getDatasetMeta(datasetIndex); + } + meta.type = type; + + if (meta.controller) { + meta.controller.updateIndex(datasetIndex); + meta.controller.linkScales(); + } else { + var ControllerClass = controllers[meta.type]; + if (ControllerClass === undefined) { + throw new Error('"' + meta.type + '" is not a chart type.'); + } + + meta.controller = new ControllerClass(me, datasetIndex); + newControllers.push(meta.controller); + } + }, me); + + return newControllers; + }, + + /** + * Reset the elements of all datasets + * @private + */ + resetElements: function() { + var me = this; + helpers$1.each(me.data.datasets, function(dataset, datasetIndex) { + me.getDatasetMeta(datasetIndex).controller.reset(); + }, me); + }, + + /** + * Resets the chart back to it's state before the initial animation + */ + reset: function() { + this.resetElements(); + this.tooltip.initialize(); + }, + + update: function(config) { + var me = this; + + if (!config || typeof config !== 'object') { + // backwards compatibility + config = { + duration: config, + lazy: arguments[1] + }; + } + + updateConfig(me); + + // plugins options references might have change, let's invalidate the cache + // https://github.com/chartjs/Chart.js/issues/5111#issuecomment-355934167 + core_plugins._invalidate(me); + + if (core_plugins.notify(me, 'beforeUpdate') === false) { + return; + } + + // In case the entire data object changed + me.tooltip._data = me.data; + + // Make sure dataset controllers are updated and new controllers are reset + var newControllers = me.buildOrUpdateControllers(); + + // Make sure all dataset controllers have correct meta data counts + helpers$1.each(me.data.datasets, function(dataset, datasetIndex) { + me.getDatasetMeta(datasetIndex).controller.buildOrUpdateElements(); + }, me); + + me.updateLayout(); + + // Can only reset the new controllers after the scales have been updated + if (me.options.animation && me.options.animation.duration) { + helpers$1.each(newControllers, function(controller) { + controller.reset(); + }); + } + + me.updateDatasets(); + + // Need to reset tooltip in case it is displayed with elements that are removed + // after update. + me.tooltip.initialize(); + + // Last active contains items that were previously in the tooltip. + // When we reset the tooltip, we need to clear it + me.lastActive = []; + + // Do this before render so that any plugins that need final scale updates can use it + core_plugins.notify(me, 'afterUpdate'); + + if (me._bufferedRender) { + me._bufferedRequest = { + duration: config.duration, + easing: config.easing, + lazy: config.lazy + }; + } else { + me.render(config); + } + }, + + /** + * Updates the chart layout unless a plugin returns `false` to the `beforeLayout` + * hook, in which case, plugins will not be called on `afterLayout`. + * @private + */ + updateLayout: function() { + var me = this; + + if (core_plugins.notify(me, 'beforeLayout') === false) { + return; + } + + core_layouts.update(this, this.width, this.height); + + /** + * Provided for backward compatibility, use `afterLayout` instead. + * @method IPlugin#afterScaleUpdate + * @deprecated since version 2.5.0 + * @todo remove at version 3 + * @private + */ + core_plugins.notify(me, 'afterScaleUpdate'); + core_plugins.notify(me, 'afterLayout'); + }, + + /** + * Updates all datasets unless a plugin returns `false` to the `beforeDatasetsUpdate` + * hook, in which case, plugins will not be called on `afterDatasetsUpdate`. + * @private + */ + updateDatasets: function() { + var me = this; + + if (core_plugins.notify(me, 'beforeDatasetsUpdate') === false) { + return; + } + + for (var i = 0, ilen = me.data.datasets.length; i < ilen; ++i) { + me.updateDataset(i); + } + + core_plugins.notify(me, 'afterDatasetsUpdate'); + }, + + /** + * Updates dataset at index unless a plugin returns `false` to the `beforeDatasetUpdate` + * hook, in which case, plugins will not be called on `afterDatasetUpdate`. + * @private + */ + updateDataset: function(index) { + var me = this; + var meta = me.getDatasetMeta(index); + var args = { + meta: meta, + index: index + }; + + if (core_plugins.notify(me, 'beforeDatasetUpdate', [args]) === false) { + return; + } + + meta.controller.update(); + + core_plugins.notify(me, 'afterDatasetUpdate', [args]); + }, + + render: function(config) { + var me = this; + + if (!config || typeof config !== 'object') { + // backwards compatibility + config = { + duration: config, + lazy: arguments[1] + }; + } + + var animationOptions = me.options.animation; + var duration = valueOrDefault$8(config.duration, animationOptions && animationOptions.duration); + var lazy = config.lazy; + + if (core_plugins.notify(me, 'beforeRender') === false) { + return; + } + + var onComplete = function(animation) { + core_plugins.notify(me, 'afterRender'); + helpers$1.callback(animationOptions && animationOptions.onComplete, [animation], me); + }; + + if (animationOptions && duration) { + var animation = new core_animation({ + numSteps: duration / 16.66, // 60 fps + easing: config.easing || animationOptions.easing, + + render: function(chart, animationObject) { + var easingFunction = helpers$1.easing.effects[animationObject.easing]; + var currentStep = animationObject.currentStep; + var stepDecimal = currentStep / animationObject.numSteps; + + chart.draw(easingFunction(stepDecimal), stepDecimal, currentStep); + }, + + onAnimationProgress: animationOptions.onProgress, + onAnimationComplete: onComplete + }); + + core_animations.addAnimation(me, animation, duration, lazy); + } else { + me.draw(); + + // See https://github.com/chartjs/Chart.js/issues/3781 + onComplete(new core_animation({numSteps: 0, chart: me})); + } + + return me; + }, + + draw: function(easingValue) { + var me = this; + + me.clear(); + + if (helpers$1.isNullOrUndef(easingValue)) { + easingValue = 1; + } + + me.transition(easingValue); + + if (me.width <= 0 || me.height <= 0) { + return; + } + + if (core_plugins.notify(me, 'beforeDraw', [easingValue]) === false) { + return; + } + + // Draw all the scales + helpers$1.each(me.boxes, function(box) { + box.draw(me.chartArea); + }, me); + + me.drawDatasets(easingValue); + me._drawTooltip(easingValue); + + core_plugins.notify(me, 'afterDraw', [easingValue]); + }, + + /** + * @private + */ + transition: function(easingValue) { + var me = this; + + for (var i = 0, ilen = (me.data.datasets || []).length; i < ilen; ++i) { + if (me.isDatasetVisible(i)) { + me.getDatasetMeta(i).controller.transition(easingValue); + } + } + + me.tooltip.transition(easingValue); + }, + + /** + * Draws all datasets unless a plugin returns `false` to the `beforeDatasetsDraw` + * hook, in which case, plugins will not be called on `afterDatasetsDraw`. + * @private + */ + drawDatasets: function(easingValue) { + var me = this; + + if (core_plugins.notify(me, 'beforeDatasetsDraw', [easingValue]) === false) { + return; + } + + // Draw datasets reversed to support proper line stacking + for (var i = (me.data.datasets || []).length - 1; i >= 0; --i) { + if (me.isDatasetVisible(i)) { + me.drawDataset(i, easingValue); + } + } + + core_plugins.notify(me, 'afterDatasetsDraw', [easingValue]); + }, + + /** + * Draws dataset at index unless a plugin returns `false` to the `beforeDatasetDraw` + * hook, in which case, plugins will not be called on `afterDatasetDraw`. + * @private + */ + drawDataset: function(index, easingValue) { + var me = this; + var meta = me.getDatasetMeta(index); + var args = { + meta: meta, + index: index, + easingValue: easingValue + }; + + if (core_plugins.notify(me, 'beforeDatasetDraw', [args]) === false) { + return; + } + + meta.controller.draw(easingValue); + + core_plugins.notify(me, 'afterDatasetDraw', [args]); + }, + + /** + * Draws tooltip unless a plugin returns `false` to the `beforeTooltipDraw` + * hook, in which case, plugins will not be called on `afterTooltipDraw`. + * @private + */ + _drawTooltip: function(easingValue) { + var me = this; + var tooltip = me.tooltip; + var args = { + tooltip: tooltip, + easingValue: easingValue + }; + + if (core_plugins.notify(me, 'beforeTooltipDraw', [args]) === false) { + return; + } + + tooltip.draw(); + + core_plugins.notify(me, 'afterTooltipDraw', [args]); + }, + + /** + * Get the single element that was clicked on + * @return An object containing the dataset index and element index of the matching element. Also contains the rectangle that was draw + */ + getElementAtEvent: function(e) { + return core_interaction.modes.single(this, e); + }, + + getElementsAtEvent: function(e) { + return core_interaction.modes.label(this, e, {intersect: true}); + }, + + getElementsAtXAxis: function(e) { + return core_interaction.modes['x-axis'](this, e, {intersect: true}); + }, + + getElementsAtEventForMode: function(e, mode, options) { + var method = core_interaction.modes[mode]; + if (typeof method === 'function') { + return method(this, e, options); + } + + return []; + }, + + getDatasetAtEvent: function(e) { + return core_interaction.modes.dataset(this, e, {intersect: true}); + }, + + getDatasetMeta: function(datasetIndex) { + var me = this; + var dataset = me.data.datasets[datasetIndex]; + if (!dataset._meta) { + dataset._meta = {}; + } + + var meta = dataset._meta[me.id]; + if (!meta) { + meta = dataset._meta[me.id] = { + type: null, + data: [], + dataset: null, + controller: null, + hidden: null, // See isDatasetVisible() comment + xAxisID: null, + yAxisID: null + }; + } + + return meta; + }, + + getVisibleDatasetCount: function() { + var count = 0; + for (var i = 0, ilen = this.data.datasets.length; i < ilen; ++i) { + if (this.isDatasetVisible(i)) { + count++; + } + } + return count; + }, + + isDatasetVisible: function(datasetIndex) { + var meta = this.getDatasetMeta(datasetIndex); + + // meta.hidden is a per chart dataset hidden flag override with 3 states: if true or false, + // the dataset.hidden value is ignored, else if null, the dataset hidden state is returned. + return typeof meta.hidden === 'boolean' ? !meta.hidden : !this.data.datasets[datasetIndex].hidden; + }, + + generateLegend: function() { + return this.options.legendCallback(this); + }, + + /** + * @private + */ + destroyDatasetMeta: function(datasetIndex) { + var id = this.id; + var dataset = this.data.datasets[datasetIndex]; + var meta = dataset._meta && dataset._meta[id]; + + if (meta) { + meta.controller.destroy(); + delete dataset._meta[id]; + } + }, + + destroy: function() { + var me = this; + var canvas = me.canvas; + var i, ilen; + + me.stop(); + + // dataset controllers need to cleanup associated data + for (i = 0, ilen = me.data.datasets.length; i < ilen; ++i) { + me.destroyDatasetMeta(i); + } + + if (canvas) { + me.unbindEvents(); + helpers$1.canvas.clear(me); + platform.releaseContext(me.ctx); + me.canvas = null; + me.ctx = null; + } + + core_plugins.notify(me, 'destroy'); + + delete Chart.instances[me.id]; + }, + + toBase64Image: function() { + return this.canvas.toDataURL.apply(this.canvas, arguments); + }, + + initToolTip: function() { + var me = this; + me.tooltip = new core_tooltip({ + _chart: me, + _chartInstance: me, // deprecated, backward compatibility + _data: me.data, + _options: me.options.tooltips + }, me); + }, + + /** + * @private + */ + bindEvents: function() { + var me = this; + var listeners = me._listeners = {}; + var listener = function() { + me.eventHandler.apply(me, arguments); + }; + + helpers$1.each(me.options.events, function(type) { + platform.addEventListener(me, type, listener); + listeners[type] = listener; + }); + + // Elements used to detect size change should not be injected for non responsive charts. + // See https://github.com/chartjs/Chart.js/issues/2210 + if (me.options.responsive) { + listener = function() { + me.resize(); + }; + + platform.addEventListener(me, 'resize', listener); + listeners.resize = listener; + } + }, + + /** + * @private + */ + unbindEvents: function() { + var me = this; + var listeners = me._listeners; + if (!listeners) { + return; + } + + delete me._listeners; + helpers$1.each(listeners, function(listener, type) { + platform.removeEventListener(me, type, listener); + }); + }, + + updateHoverStyle: function(elements, mode, enabled) { + var method = enabled ? 'setHoverStyle' : 'removeHoverStyle'; + var element, i, ilen; + + for (i = 0, ilen = elements.length; i < ilen; ++i) { + element = elements[i]; + if (element) { + this.getDatasetMeta(element._datasetIndex).controller[method](element); + } + } + }, + + /** + * @private + */ + eventHandler: function(e) { + var me = this; + var tooltip = me.tooltip; + + if (core_plugins.notify(me, 'beforeEvent', [e]) === false) { + return; + } + + // Buffer any update calls so that renders do not occur + me._bufferedRender = true; + me._bufferedRequest = null; + + var changed = me.handleEvent(e); + // for smooth tooltip animations issue #4989 + // the tooltip should be the source of change + // Animation check workaround: + // tooltip._start will be null when tooltip isn't animating + if (tooltip) { + changed = tooltip._start + ? tooltip.handleEvent(e) + : changed | tooltip.handleEvent(e); + } + + core_plugins.notify(me, 'afterEvent', [e]); + + var bufferedRequest = me._bufferedRequest; + if (bufferedRequest) { + // If we have an update that was triggered, we need to do a normal render + me.render(bufferedRequest); + } else if (changed && !me.animating) { + // If entering, leaving, or changing elements, animate the change via pivot + me.stop(); + + // We only need to render at this point. Updating will cause scales to be + // recomputed generating flicker & using more memory than necessary. + me.render({ + duration: me.options.hover.animationDuration, + lazy: true + }); + } + + me._bufferedRender = false; + me._bufferedRequest = null; + + return me; + }, + + /** + * Handle an event + * @private + * @param {IEvent} event the event to handle + * @return {boolean} true if the chart needs to re-render + */ + handleEvent: function(e) { + var me = this; + var options = me.options || {}; + var hoverOptions = options.hover; + var changed = false; + + me.lastActive = me.lastActive || []; + + // Find Active Elements for hover and tooltips + if (e.type === 'mouseout') { + me.active = []; + } else { + me.active = me.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions); + } + + // Invoke onHover hook + // Need to call with native event here to not break backwards compatibility + helpers$1.callback(options.onHover || options.hover.onHover, [e.native, me.active], me); + + if (e.type === 'mouseup' || e.type === 'click') { + if (options.onClick) { + // Use e.native here for backwards compatibility + options.onClick.call(me, e.native, me.active); + } + } + + // Remove styling for last active (even if it may still be active) + if (me.lastActive.length) { + me.updateHoverStyle(me.lastActive, hoverOptions.mode, false); + } + + // Built in hover styling + if (me.active.length && hoverOptions.mode) { + me.updateHoverStyle(me.active, hoverOptions.mode, true); + } + + changed = !helpers$1.arrayEquals(me.active, me.lastActive); + + // Remember Last Actives + me.lastActive = me.active; + + return changed; + } +}); + +/** + * NOTE(SB) We actually don't use this container anymore but we need to keep it + * for backward compatibility. Though, it can still be useful for plugins that + * would need to work on multiple charts?! + */ +Chart.instances = {}; + +var core_controller = Chart; + +// DEPRECATIONS + +/** + * Provided for backward compatibility, use Chart instead. + * @class Chart.Controller + * @deprecated since version 2.6 + * @todo remove at version 3 + * @private + */ +Chart.Controller = Chart; + +/** + * Provided for backward compatibility, not available anymore. + * @namespace Chart + * @deprecated since version 2.8 + * @todo remove at version 3 + * @private + */ +Chart.types = {}; + +/** + * Provided for backward compatibility, not available anymore. + * @namespace Chart.helpers.configMerge + * @deprecated since version 2.8.0 + * @todo remove at version 3 + * @private + */ +helpers$1.configMerge = mergeConfig; + +/** + * Provided for backward compatibility, not available anymore. + * @namespace Chart.helpers.scaleMerge + * @deprecated since version 2.8.0 + * @todo remove at version 3 + * @private + */ +helpers$1.scaleMerge = mergeScaleConfig; + +var core_helpers = function() { + + // -- Basic js utility methods + + helpers$1.where = function(collection, filterCallback) { + if (helpers$1.isArray(collection) && Array.prototype.filter) { + return collection.filter(filterCallback); + } + var filtered = []; + + helpers$1.each(collection, function(item) { + if (filterCallback(item)) { + filtered.push(item); + } + }); + + return filtered; + }; + helpers$1.findIndex = Array.prototype.findIndex ? + function(array, callback, scope) { + return array.findIndex(callback, scope); + } : + function(array, callback, scope) { + scope = scope === undefined ? array : scope; + for (var i = 0, ilen = array.length; i < ilen; ++i) { + if (callback.call(scope, array[i], i, array)) { + return i; + } + } + return -1; + }; + helpers$1.findNextWhere = function(arrayToSearch, filterCallback, startIndex) { + // Default to start of the array + if (helpers$1.isNullOrUndef(startIndex)) { + startIndex = -1; + } + for (var i = startIndex + 1; i < arrayToSearch.length; i++) { + var currentItem = arrayToSearch[i]; + if (filterCallback(currentItem)) { + return currentItem; + } + } + }; + helpers$1.findPreviousWhere = function(arrayToSearch, filterCallback, startIndex) { + // Default to end of the array + if (helpers$1.isNullOrUndef(startIndex)) { + startIndex = arrayToSearch.length; + } + for (var i = startIndex - 1; i >= 0; i--) { + var currentItem = arrayToSearch[i]; + if (filterCallback(currentItem)) { + return currentItem; + } + } + }; + + // -- Math methods + helpers$1.isNumber = function(n) { + return !isNaN(parseFloat(n)) && isFinite(n); + }; + helpers$1.almostEquals = function(x, y, epsilon) { + return Math.abs(x - y) < epsilon; + }; + helpers$1.almostWhole = function(x, epsilon) { + var rounded = Math.round(x); + return (((rounded - epsilon) < x) && ((rounded + epsilon) > x)); + }; + helpers$1.max = function(array) { + return array.reduce(function(max, value) { + if (!isNaN(value)) { + return Math.max(max, value); + } + return max; + }, Number.NEGATIVE_INFINITY); + }; + helpers$1.min = function(array) { + return array.reduce(function(min, value) { + if (!isNaN(value)) { + return Math.min(min, value); + } + return min; + }, Number.POSITIVE_INFINITY); + }; + helpers$1.sign = Math.sign ? + function(x) { + return Math.sign(x); + } : + function(x) { + x = +x; // convert to a number + if (x === 0 || isNaN(x)) { + return x; + } + return x > 0 ? 1 : -1; + }; + helpers$1.log10 = Math.log10 ? + function(x) { + return Math.log10(x); + } : + function(x) { + var exponent = Math.log(x) * Math.LOG10E; // Math.LOG10E = 1 / Math.LN10. + // Check for whole powers of 10, + // which due to floating point rounding error should be corrected. + var powerOf10 = Math.round(exponent); + var isPowerOf10 = x === Math.pow(10, powerOf10); + + return isPowerOf10 ? powerOf10 : exponent; + }; + helpers$1.toRadians = function(degrees) { + return degrees * (Math.PI / 180); + }; + helpers$1.toDegrees = function(radians) { + return radians * (180 / Math.PI); + }; + + /** + * Returns the number of decimal places + * i.e. the number of digits after the decimal point, of the value of this Number. + * @param {number} x - A number. + * @returns {number} The number of decimal places. + * @private + */ + helpers$1._decimalPlaces = function(x) { + if (!helpers$1.isFinite(x)) { + return; + } + var e = 1; + var p = 0; + while (Math.round(x * e) / e !== x) { + e *= 10; + p++; + } + return p; + }; + + // Gets the angle from vertical upright to the point about a centre. + helpers$1.getAngleFromPoint = function(centrePoint, anglePoint) { + var distanceFromXCenter = anglePoint.x - centrePoint.x; + var distanceFromYCenter = anglePoint.y - centrePoint.y; + var radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter); + + var angle = Math.atan2(distanceFromYCenter, distanceFromXCenter); + + if (angle < (-0.5 * Math.PI)) { + angle += 2.0 * Math.PI; // make sure the returned angle is in the range of (-PI/2, 3PI/2] + } + + return { + angle: angle, + distance: radialDistanceFromCenter + }; + }; + helpers$1.distanceBetweenPoints = function(pt1, pt2) { + return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2)); + }; + + /** + * Provided for backward compatibility, not available anymore + * @function Chart.helpers.aliasPixel + * @deprecated since version 2.8.0 + * @todo remove at version 3 + */ + helpers$1.aliasPixel = function(pixelWidth) { + return (pixelWidth % 2 === 0) ? 0 : 0.5; + }; + + /** + * Returns the aligned pixel value to avoid anti-aliasing blur + * @param {Chart} chart - The chart instance. + * @param {number} pixel - A pixel value. + * @param {number} width - The width of the element. + * @returns {number} The aligned pixel value. + * @private + */ + helpers$1._alignPixel = function(chart, pixel, width) { + var devicePixelRatio = chart.currentDevicePixelRatio; + var halfWidth = width / 2; + return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth; + }; + + helpers$1.splineCurve = function(firstPoint, middlePoint, afterPoint, t) { + // Props to Rob Spencer at scaled innovation for his post on splining between points + // http://scaledinnovation.com/analytics/splines/aboutSplines.html + + // This function must also respect "skipped" points + + var previous = firstPoint.skip ? middlePoint : firstPoint; + var current = middlePoint; + var next = afterPoint.skip ? middlePoint : afterPoint; + + var d01 = Math.sqrt(Math.pow(current.x - previous.x, 2) + Math.pow(current.y - previous.y, 2)); + var d12 = Math.sqrt(Math.pow(next.x - current.x, 2) + Math.pow(next.y - current.y, 2)); + + var s01 = d01 / (d01 + d12); + var s12 = d12 / (d01 + d12); + + // If all points are the same, s01 & s02 will be inf + s01 = isNaN(s01) ? 0 : s01; + s12 = isNaN(s12) ? 0 : s12; + + var fa = t * s01; // scaling factor for triangle Ta + var fb = t * s12; + + return { + previous: { + x: current.x - fa * (next.x - previous.x), + y: current.y - fa * (next.y - previous.y) + }, + next: { + x: current.x + fb * (next.x - previous.x), + y: current.y + fb * (next.y - previous.y) + } + }; + }; + helpers$1.EPSILON = Number.EPSILON || 1e-14; + helpers$1.splineCurveMonotone = function(points) { + // This function calculates Bézier control points in a similar way than |splineCurve|, + // but preserves monotonicity of the provided data and ensures no local extremums are added + // between the dataset discrete points due to the interpolation. + // See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation + + var pointsWithTangents = (points || []).map(function(point) { + return { + model: point._model, + deltaK: 0, + mK: 0 + }; + }); + + // Calculate slopes (deltaK) and initialize tangents (mK) + var pointsLen = pointsWithTangents.length; + var i, pointBefore, pointCurrent, pointAfter; + for (i = 0; i < pointsLen; ++i) { + pointCurrent = pointsWithTangents[i]; + if (pointCurrent.model.skip) { + continue; + } + + pointBefore = i > 0 ? pointsWithTangents[i - 1] : null; + pointAfter = i < pointsLen - 1 ? pointsWithTangents[i + 1] : null; + if (pointAfter && !pointAfter.model.skip) { + var slopeDeltaX = (pointAfter.model.x - pointCurrent.model.x); + + // In the case of two points that appear at the same x pixel, slopeDeltaX is 0 + pointCurrent.deltaK = slopeDeltaX !== 0 ? (pointAfter.model.y - pointCurrent.model.y) / slopeDeltaX : 0; + } + + if (!pointBefore || pointBefore.model.skip) { + pointCurrent.mK = pointCurrent.deltaK; + } else if (!pointAfter || pointAfter.model.skip) { + pointCurrent.mK = pointBefore.deltaK; + } else if (this.sign(pointBefore.deltaK) !== this.sign(pointCurrent.deltaK)) { + pointCurrent.mK = 0; + } else { + pointCurrent.mK = (pointBefore.deltaK + pointCurrent.deltaK) / 2; + } + } + + // Adjust tangents to ensure monotonic properties + var alphaK, betaK, tauK, squaredMagnitude; + for (i = 0; i < pointsLen - 1; ++i) { + pointCurrent = pointsWithTangents[i]; + pointAfter = pointsWithTangents[i + 1]; + if (pointCurrent.model.skip || pointAfter.model.skip) { + continue; + } + + if (helpers$1.almostEquals(pointCurrent.deltaK, 0, this.EPSILON)) { + pointCurrent.mK = pointAfter.mK = 0; + continue; + } + + alphaK = pointCurrent.mK / pointCurrent.deltaK; + betaK = pointAfter.mK / pointCurrent.deltaK; + squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2); + if (squaredMagnitude <= 9) { + continue; + } + + tauK = 3 / Math.sqrt(squaredMagnitude); + pointCurrent.mK = alphaK * tauK * pointCurrent.deltaK; + pointAfter.mK = betaK * tauK * pointCurrent.deltaK; + } + + // Compute control points + var deltaX; + for (i = 0; i < pointsLen; ++i) { + pointCurrent = pointsWithTangents[i]; + if (pointCurrent.model.skip) { + continue; + } + + pointBefore = i > 0 ? pointsWithTangents[i - 1] : null; + pointAfter = i < pointsLen - 1 ? pointsWithTangents[i + 1] : null; + if (pointBefore && !pointBefore.model.skip) { + deltaX = (pointCurrent.model.x - pointBefore.model.x) / 3; + pointCurrent.model.controlPointPreviousX = pointCurrent.model.x - deltaX; + pointCurrent.model.controlPointPreviousY = pointCurrent.model.y - deltaX * pointCurrent.mK; + } + if (pointAfter && !pointAfter.model.skip) { + deltaX = (pointAfter.model.x - pointCurrent.model.x) / 3; + pointCurrent.model.controlPointNextX = pointCurrent.model.x + deltaX; + pointCurrent.model.controlPointNextY = pointCurrent.model.y + deltaX * pointCurrent.mK; + } + } + }; + helpers$1.nextItem = function(collection, index, loop) { + if (loop) { + return index >= collection.length - 1 ? collection[0] : collection[index + 1]; + } + return index >= collection.length - 1 ? collection[collection.length - 1] : collection[index + 1]; + }; + helpers$1.previousItem = function(collection, index, loop) { + if (loop) { + return index <= 0 ? collection[collection.length - 1] : collection[index - 1]; + } + return index <= 0 ? collection[0] : collection[index - 1]; + }; + // Implementation of the nice number algorithm used in determining where axis labels will go + helpers$1.niceNum = function(range, round) { + var exponent = Math.floor(helpers$1.log10(range)); + var fraction = range / Math.pow(10, exponent); + var niceFraction; + + if (round) { + if (fraction < 1.5) { + niceFraction = 1; + } else if (fraction < 3) { + niceFraction = 2; + } else if (fraction < 7) { + niceFraction = 5; + } else { + niceFraction = 10; + } + } else if (fraction <= 1.0) { + niceFraction = 1; + } else if (fraction <= 2) { + niceFraction = 2; + } else if (fraction <= 5) { + niceFraction = 5; + } else { + niceFraction = 10; + } + + return niceFraction * Math.pow(10, exponent); + }; + // Request animation polyfill - https://www.paulirish.com/2011/requestanimationframe-for-smart-animating/ + helpers$1.requestAnimFrame = (function() { + if (typeof window === 'undefined') { + return function(callback) { + callback(); + }; + } + return window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + window.oRequestAnimationFrame || + window.msRequestAnimationFrame || + function(callback) { + return window.setTimeout(callback, 1000 / 60); + }; + }()); + // -- DOM methods + helpers$1.getRelativePosition = function(evt, chart) { + var mouseX, mouseY; + var e = evt.originalEvent || evt; + var canvas = evt.target || evt.srcElement; + var boundingRect = canvas.getBoundingClientRect(); + + var touches = e.touches; + if (touches && touches.length > 0) { + mouseX = touches[0].clientX; + mouseY = touches[0].clientY; + + } else { + mouseX = e.clientX; + mouseY = e.clientY; + } + + // Scale mouse coordinates into canvas coordinates + // by following the pattern laid out by 'jerryj' in the comments of + // https://www.html5canvastutorials.com/advanced/html5-canvas-mouse-coordinates/ + var paddingLeft = parseFloat(helpers$1.getStyle(canvas, 'padding-left')); + var paddingTop = parseFloat(helpers$1.getStyle(canvas, 'padding-top')); + var paddingRight = parseFloat(helpers$1.getStyle(canvas, 'padding-right')); + var paddingBottom = parseFloat(helpers$1.getStyle(canvas, 'padding-bottom')); + var width = boundingRect.right - boundingRect.left - paddingLeft - paddingRight; + var height = boundingRect.bottom - boundingRect.top - paddingTop - paddingBottom; + + // We divide by the current device pixel ratio, because the canvas is scaled up by that amount in each direction. However + // the backend model is in unscaled coordinates. Since we are going to deal with our model coordinates, we go back here + mouseX = Math.round((mouseX - boundingRect.left - paddingLeft) / (width) * canvas.width / chart.currentDevicePixelRatio); + mouseY = Math.round((mouseY - boundingRect.top - paddingTop) / (height) * canvas.height / chart.currentDevicePixelRatio); + + return { + x: mouseX, + y: mouseY + }; + + }; + + // Private helper function to convert max-width/max-height values that may be percentages into a number + function parseMaxStyle(styleValue, node, parentProperty) { + var valueInPixels; + if (typeof styleValue === 'string') { + valueInPixels = parseInt(styleValue, 10); + + if (styleValue.indexOf('%') !== -1) { + // percentage * size in dimension + valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty]; + } + } else { + valueInPixels = styleValue; + } + + return valueInPixels; + } + + /** + * Returns if the given value contains an effective constraint. + * @private + */ + function isConstrainedValue(value) { + return value !== undefined && value !== null && value !== 'none'; + } + + /** + * Returns the max width or height of the given DOM node in a cross-browser compatible fashion + * @param {HTMLElement} domNode - the node to check the constraint on + * @param {string} maxStyle - the style that defines the maximum for the direction we are using ('max-width' / 'max-height') + * @param {string} percentageProperty - property of parent to use when calculating width as a percentage + * @see {@link https://www.nathanaeljones.com/blog/2013/reading-max-width-cross-browser} + */ + function getConstraintDimension(domNode, maxStyle, percentageProperty) { + var view = document.defaultView; + var parentNode = helpers$1._getParentNode(domNode); + var constrainedNode = view.getComputedStyle(domNode)[maxStyle]; + var constrainedContainer = view.getComputedStyle(parentNode)[maxStyle]; + var hasCNode = isConstrainedValue(constrainedNode); + var hasCContainer = isConstrainedValue(constrainedContainer); + var infinity = Number.POSITIVE_INFINITY; + + if (hasCNode || hasCContainer) { + return Math.min( + hasCNode ? parseMaxStyle(constrainedNode, domNode, percentageProperty) : infinity, + hasCContainer ? parseMaxStyle(constrainedContainer, parentNode, percentageProperty) : infinity); + } + + return 'none'; + } + // returns Number or undefined if no constraint + helpers$1.getConstraintWidth = function(domNode) { + return getConstraintDimension(domNode, 'max-width', 'clientWidth'); + }; + // returns Number or undefined if no constraint + helpers$1.getConstraintHeight = function(domNode) { + return getConstraintDimension(domNode, 'max-height', 'clientHeight'); + }; + /** + * @private + */ + helpers$1._calculatePadding = function(container, padding, parentDimension) { + padding = helpers$1.getStyle(container, padding); + + return padding.indexOf('%') > -1 ? parentDimension * parseInt(padding, 10) / 100 : parseInt(padding, 10); + }; + /** + * @private + */ + helpers$1._getParentNode = function(domNode) { + var parent = domNode.parentNode; + if (parent && parent.toString() === '[object ShadowRoot]') { + parent = parent.host; + } + return parent; + }; + helpers$1.getMaximumWidth = function(domNode) { + var container = helpers$1._getParentNode(domNode); + if (!container) { + return domNode.clientWidth; + } + + var clientWidth = container.clientWidth; + var paddingLeft = helpers$1._calculatePadding(container, 'padding-left', clientWidth); + var paddingRight = helpers$1._calculatePadding(container, 'padding-right', clientWidth); + + var w = clientWidth - paddingLeft - paddingRight; + var cw = helpers$1.getConstraintWidth(domNode); + return isNaN(cw) ? w : Math.min(w, cw); + }; + helpers$1.getMaximumHeight = function(domNode) { + var container = helpers$1._getParentNode(domNode); + if (!container) { + return domNode.clientHeight; + } + + var clientHeight = container.clientHeight; + var paddingTop = helpers$1._calculatePadding(container, 'padding-top', clientHeight); + var paddingBottom = helpers$1._calculatePadding(container, 'padding-bottom', clientHeight); + + var h = clientHeight - paddingTop - paddingBottom; + var ch = helpers$1.getConstraintHeight(domNode); + return isNaN(ch) ? h : Math.min(h, ch); + }; + helpers$1.getStyle = function(el, property) { + return el.currentStyle ? + el.currentStyle[property] : + document.defaultView.getComputedStyle(el, null).getPropertyValue(property); + }; + helpers$1.retinaScale = function(chart, forceRatio) { + var pixelRatio = chart.currentDevicePixelRatio = forceRatio || (typeof window !== 'undefined' && window.devicePixelRatio) || 1; + if (pixelRatio === 1) { + return; + } + + var canvas = chart.canvas; + var height = chart.height; + var width = chart.width; + + canvas.height = height * pixelRatio; + canvas.width = width * pixelRatio; + chart.ctx.scale(pixelRatio, pixelRatio); + + // If no style has been set on the canvas, the render size is used as display size, + // making the chart visually bigger, so let's enforce it to the "correct" values. + // See https://github.com/chartjs/Chart.js/issues/3575 + if (!canvas.style.height && !canvas.style.width) { + canvas.style.height = height + 'px'; + canvas.style.width = width + 'px'; + } + }; + // -- Canvas methods + helpers$1.fontString = function(pixelSize, fontStyle, fontFamily) { + return fontStyle + ' ' + pixelSize + 'px ' + fontFamily; + }; + helpers$1.longestText = function(ctx, font, arrayOfThings, cache) { + cache = cache || {}; + var data = cache.data = cache.data || {}; + var gc = cache.garbageCollect = cache.garbageCollect || []; + + if (cache.font !== font) { + data = cache.data = {}; + gc = cache.garbageCollect = []; + cache.font = font; + } + + ctx.font = font; + var longest = 0; + helpers$1.each(arrayOfThings, function(thing) { + // Undefined strings and arrays should not be measured + if (thing !== undefined && thing !== null && helpers$1.isArray(thing) !== true) { + longest = helpers$1.measureText(ctx, data, gc, longest, thing); + } else if (helpers$1.isArray(thing)) { + // if it is an array lets measure each element + // to do maybe simplify this function a bit so we can do this more recursively? + helpers$1.each(thing, function(nestedThing) { + // Undefined strings and arrays should not be measured + if (nestedThing !== undefined && nestedThing !== null && !helpers$1.isArray(nestedThing)) { + longest = helpers$1.measureText(ctx, data, gc, longest, nestedThing); + } + }); + } + }); + + var gcLen = gc.length / 2; + if (gcLen > arrayOfThings.length) { + for (var i = 0; i < gcLen; i++) { + delete data[gc[i]]; + } + gc.splice(0, gcLen); + } + return longest; + }; + helpers$1.measureText = function(ctx, data, gc, longest, string) { + var textWidth = data[string]; + if (!textWidth) { + textWidth = data[string] = ctx.measureText(string).width; + gc.push(string); + } + if (textWidth > longest) { + longest = textWidth; + } + return longest; + }; + helpers$1.numberOfLabelLines = function(arrayOfThings) { + var numberOfLines = 1; + helpers$1.each(arrayOfThings, function(thing) { + if (helpers$1.isArray(thing)) { + if (thing.length > numberOfLines) { + numberOfLines = thing.length; + } + } + }); + return numberOfLines; + }; + + helpers$1.color = !chartjsColor ? + function(value) { + console.error('Color.js not found!'); + return value; + } : + function(value) { + /* global CanvasGradient */ + if (value instanceof CanvasGradient) { + value = core_defaults.global.defaultColor; + } + + return chartjsColor(value); + }; + + helpers$1.getHoverColor = function(colorValue) { + /* global CanvasPattern */ + return (colorValue instanceof CanvasPattern || colorValue instanceof CanvasGradient) ? + colorValue : + helpers$1.color(colorValue).saturate(0.5).darken(0.1).rgbString(); + }; +}; + +function abstract() { + throw new Error( + 'This method is not implemented: either no adapter can ' + + 'be found or an incomplete integration was provided.' + ); +} + +/** + * Date adapter (current used by the time scale) + * @namespace Chart._adapters._date + * @memberof Chart._adapters + * @private + */ + +/** + * Currently supported unit string values. + * @typedef {('millisecond'|'second'|'minute'|'hour'|'day'|'week'|'month'|'quarter'|'year')} + * @memberof Chart._adapters._date + * @name Unit + */ + +/** + * @class + */ +function DateAdapter(options) { + this.options = options || {}; +} + +helpers$1.extend(DateAdapter.prototype, /** @lends DateAdapter */ { + /** + * Returns a map of time formats for the supported formatting units defined + * in Unit as well as 'datetime' representing a detailed date/time string. + * @returns {{string: string}} + */ + formats: abstract, + + /** + * Parses the given `value` and return the associated timestamp. + * @param {any} value - the value to parse (usually comes from the data) + * @param {string} [format] - the expected data format + * @returns {(number|null)} + * @function + */ + parse: abstract, + + /** + * Returns the formatted date in the specified `format` for a given `timestamp`. + * @param {number} timestamp - the timestamp to format + * @param {string} format - the date/time token + * @return {string} + * @function + */ + format: abstract, + + /** + * Adds the specified `amount` of `unit` to the given `timestamp`. + * @param {number} timestamp - the input timestamp + * @param {number} amount - the amount to add + * @param {Unit} unit - the unit as string + * @return {number} + * @function + */ + add: abstract, + + /** + * Returns the number of `unit` between the given timestamps. + * @param {number} max - the input timestamp (reference) + * @param {number} min - the timestamp to substract + * @param {Unit} unit - the unit as string + * @return {number} + * @function + */ + diff: abstract, + + /** + * Returns start of `unit` for the given `timestamp`. + * @param {number} timestamp - the input timestamp + * @param {Unit} unit - the unit as string + * @param {number} [weekday] - the ISO day of the week with 1 being Monday + * and 7 being Sunday (only needed if param *unit* is `isoWeek`). + * @function + */ + startOf: abstract, + + /** + * Returns end of `unit` for the given `timestamp`. + * @param {number} timestamp - the input timestamp + * @param {Unit} unit - the unit as string + * @function + */ + endOf: abstract, + + // DEPRECATIONS + + /** + * Provided for backward compatibility for scale.getValueForPixel(), + * this method should be overridden only by the moment adapter. + * @deprecated since version 2.8.0 + * @todo remove at version 3 + * @private + */ + _create: function(value) { + return value; + } +}); + +DateAdapter.override = function(members) { + helpers$1.extend(DateAdapter.prototype, members); +}; + +var _date = DateAdapter; + +var core_adapters = { + _date: _date +}; + +/** + * Namespace to hold static tick generation functions + * @namespace Chart.Ticks + */ +var core_ticks = { + /** + * Namespace to hold formatters for different types of ticks + * @namespace Chart.Ticks.formatters + */ + formatters: { + /** + * Formatter for value labels + * @method Chart.Ticks.formatters.values + * @param value the value to display + * @return {string|string[]} the label to display + */ + values: function(value) { + return helpers$1.isArray(value) ? value : '' + value; + }, + + /** + * Formatter for linear numeric ticks + * @method Chart.Ticks.formatters.linear + * @param tickValue {number} the value to be formatted + * @param index {number} the position of the tickValue parameter in the ticks array + * @param ticks {number[]} the list of ticks being converted + * @return {string} string representation of the tickValue parameter + */ + linear: function(tickValue, index, ticks) { + // If we have lots of ticks, don't use the ones + var delta = ticks.length > 3 ? ticks[2] - ticks[1] : ticks[1] - ticks[0]; + + // If we have a number like 2.5 as the delta, figure out how many decimal places we need + if (Math.abs(delta) > 1) { + if (tickValue !== Math.floor(tickValue)) { + // not an integer + delta = tickValue - Math.floor(tickValue); + } + } + + var logDelta = helpers$1.log10(Math.abs(delta)); + var tickString = ''; + + if (tickValue !== 0) { + var maxTick = Math.max(Math.abs(ticks[0]), Math.abs(ticks[ticks.length - 1])); + if (maxTick < 1e-4) { // all ticks are small numbers; use scientific notation + var logTick = helpers$1.log10(Math.abs(tickValue)); + tickString = tickValue.toExponential(Math.floor(logTick) - Math.floor(logDelta)); + } else { + var numDecimal = -1 * Math.floor(logDelta); + numDecimal = Math.max(Math.min(numDecimal, 20), 0); // toFixed has a max of 20 decimal places + tickString = tickValue.toFixed(numDecimal); + } + } else { + tickString = '0'; // never show decimal places for 0 + } + + return tickString; + }, + + logarithmic: function(tickValue, index, ticks) { + var remain = tickValue / (Math.pow(10, Math.floor(helpers$1.log10(tickValue)))); + + if (tickValue === 0) { + return '0'; + } else if (remain === 1 || remain === 2 || remain === 5 || index === 0 || index === ticks.length - 1) { + return tickValue.toExponential(); + } + return ''; + } + } +}; + +var valueOrDefault$9 = helpers$1.valueOrDefault; +var valueAtIndexOrDefault = helpers$1.valueAtIndexOrDefault; + +core_defaults._set('scale', { + display: true, + position: 'left', + offset: false, + + // grid line settings + gridLines: { + display: true, + color: 'rgba(0, 0, 0, 0.1)', + lineWidth: 1, + drawBorder: true, + drawOnChartArea: true, + drawTicks: true, + tickMarkLength: 10, + zeroLineWidth: 1, + zeroLineColor: 'rgba(0,0,0,0.25)', + zeroLineBorderDash: [], + zeroLineBorderDashOffset: 0.0, + offsetGridLines: false, + borderDash: [], + borderDashOffset: 0.0 + }, + + // scale label + scaleLabel: { + // display property + display: false, + + // actual label + labelString: '', + + // top/bottom padding + padding: { + top: 4, + bottom: 4 + } + }, + + // label settings + ticks: { + beginAtZero: false, + minRotation: 0, + maxRotation: 50, + mirror: false, + padding: 0, + reverse: false, + display: true, + autoSkip: true, + autoSkipPadding: 0, + labelOffset: 0, + // We pass through arrays to be rendered as multiline labels, we convert Others to strings here. + callback: core_ticks.formatters.values, + minor: {}, + major: {} + } +}); + +function labelsFromTicks(ticks) { + var labels = []; + var i, ilen; + + for (i = 0, ilen = ticks.length; i < ilen; ++i) { + labels.push(ticks[i].label); + } + + return labels; +} + +function getPixelForGridLine(scale, index, offsetGridLines) { + var lineValue = scale.getPixelForTick(index); + + if (offsetGridLines) { + if (scale.getTicks().length === 1) { + lineValue -= scale.isHorizontal() ? + Math.max(lineValue - scale.left, scale.right - lineValue) : + Math.max(lineValue - scale.top, scale.bottom - lineValue); + } else if (index === 0) { + lineValue -= (scale.getPixelForTick(1) - lineValue) / 2; + } else { + lineValue -= (lineValue - scale.getPixelForTick(index - 1)) / 2; + } + } + return lineValue; +} + +function computeTextSize(context, tick, font) { + return helpers$1.isArray(tick) ? + helpers$1.longestText(context, font, tick) : + context.measureText(tick).width; +} + +var core_scale = core_element.extend({ + /** + * Get the padding needed for the scale + * @method getPadding + * @private + * @returns {Padding} the necessary padding + */ + getPadding: function() { + var me = this; + return { + left: me.paddingLeft || 0, + top: me.paddingTop || 0, + right: me.paddingRight || 0, + bottom: me.paddingBottom || 0 + }; + }, + + /** + * Returns the scale tick objects ({label, major}) + * @since 2.7 + */ + getTicks: function() { + return this._ticks; + }, + + // These methods are ordered by lifecyle. Utilities then follow. + // Any function defined here is inherited by all scale types. + // Any function can be extended by the scale type + + mergeTicksOptions: function() { + var ticks = this.options.ticks; + if (ticks.minor === false) { + ticks.minor = { + display: false + }; + } + if (ticks.major === false) { + ticks.major = { + display: false + }; + } + for (var key in ticks) { + if (key !== 'major' && key !== 'minor') { + if (typeof ticks.minor[key] === 'undefined') { + ticks.minor[key] = ticks[key]; + } + if (typeof ticks.major[key] === 'undefined') { + ticks.major[key] = ticks[key]; + } + } + } + }, + beforeUpdate: function() { + helpers$1.callback(this.options.beforeUpdate, [this]); + }, + + update: function(maxWidth, maxHeight, margins) { + var me = this; + var i, ilen, labels, label, ticks, tick; + + // Update Lifecycle - Probably don't want to ever extend or overwrite this function ;) + me.beforeUpdate(); + + // Absorb the master measurements + me.maxWidth = maxWidth; + me.maxHeight = maxHeight; + me.margins = helpers$1.extend({ + left: 0, + right: 0, + top: 0, + bottom: 0 + }, margins); + + me._maxLabelLines = 0; + me.longestLabelWidth = 0; + me.longestTextCache = me.longestTextCache || {}; + + // Dimensions + me.beforeSetDimensions(); + me.setDimensions(); + me.afterSetDimensions(); + + // Data min/max + me.beforeDataLimits(); + me.determineDataLimits(); + me.afterDataLimits(); + + // Ticks - `this.ticks` is now DEPRECATED! + // Internal ticks are now stored as objects in the PRIVATE `this._ticks` member + // and must not be accessed directly from outside this class. `this.ticks` being + // around for long time and not marked as private, we can't change its structure + // without unexpected breaking changes. If you need to access the scale ticks, + // use scale.getTicks() instead. + + me.beforeBuildTicks(); + + // New implementations should return an array of objects but for BACKWARD COMPAT, + // we still support no return (`this.ticks` internally set by calling this method). + ticks = me.buildTicks() || []; + + // Allow modification of ticks in callback. + ticks = me.afterBuildTicks(ticks) || ticks; + + me.beforeTickToLabelConversion(); + + // New implementations should return the formatted tick labels but for BACKWARD + // COMPAT, we still support no return (`this.ticks` internally changed by calling + // this method and supposed to contain only string values). + labels = me.convertTicksToLabels(ticks) || me.ticks; + + me.afterTickToLabelConversion(); + + me.ticks = labels; // BACKWARD COMPATIBILITY + + // IMPORTANT: from this point, we consider that `this.ticks` will NEVER change! + + // BACKWARD COMPAT: synchronize `_ticks` with labels (so potentially `this.ticks`) + for (i = 0, ilen = labels.length; i < ilen; ++i) { + label = labels[i]; + tick = ticks[i]; + if (!tick) { + ticks.push(tick = { + label: label, + major: false + }); + } else { + tick.label = label; + } + } + + me._ticks = ticks; + + // Tick Rotation + me.beforeCalculateTickRotation(); + me.calculateTickRotation(); + me.afterCalculateTickRotation(); + // Fit + me.beforeFit(); + me.fit(); + me.afterFit(); + // + me.afterUpdate(); + + return me.minSize; + + }, + afterUpdate: function() { + helpers$1.callback(this.options.afterUpdate, [this]); + }, + + // + + beforeSetDimensions: function() { + helpers$1.callback(this.options.beforeSetDimensions, [this]); + }, + setDimensions: function() { + var me = this; + // Set the unconstrained dimension before label rotation + if (me.isHorizontal()) { + // Reset position before calculating rotation + me.width = me.maxWidth; + me.left = 0; + me.right = me.width; + } else { + me.height = me.maxHeight; + + // Reset position before calculating rotation + me.top = 0; + me.bottom = me.height; + } + + // Reset padding + me.paddingLeft = 0; + me.paddingTop = 0; + me.paddingRight = 0; + me.paddingBottom = 0; + }, + afterSetDimensions: function() { + helpers$1.callback(this.options.afterSetDimensions, [this]); + }, + + // Data limits + beforeDataLimits: function() { + helpers$1.callback(this.options.beforeDataLimits, [this]); + }, + determineDataLimits: helpers$1.noop, + afterDataLimits: function() { + helpers$1.callback(this.options.afterDataLimits, [this]); + }, + + // + beforeBuildTicks: function() { + helpers$1.callback(this.options.beforeBuildTicks, [this]); + }, + buildTicks: helpers$1.noop, + afterBuildTicks: function(ticks) { + var me = this; + // ticks is empty for old axis implementations here + if (helpers$1.isArray(ticks) && ticks.length) { + return helpers$1.callback(me.options.afterBuildTicks, [me, ticks]); + } + // Support old implementations (that modified `this.ticks` directly in buildTicks) + me.ticks = helpers$1.callback(me.options.afterBuildTicks, [me, me.ticks]) || me.ticks; + return ticks; + }, + + beforeTickToLabelConversion: function() { + helpers$1.callback(this.options.beforeTickToLabelConversion, [this]); + }, + convertTicksToLabels: function() { + var me = this; + // Convert ticks to strings + var tickOpts = me.options.ticks; + me.ticks = me.ticks.map(tickOpts.userCallback || tickOpts.callback, this); + }, + afterTickToLabelConversion: function() { + helpers$1.callback(this.options.afterTickToLabelConversion, [this]); + }, + + // + + beforeCalculateTickRotation: function() { + helpers$1.callback(this.options.beforeCalculateTickRotation, [this]); + }, + calculateTickRotation: function() { + var me = this; + var context = me.ctx; + var tickOpts = me.options.ticks; + var labels = labelsFromTicks(me._ticks); + + // Get the width of each grid by calculating the difference + // between x offsets between 0 and 1. + var tickFont = helpers$1.options._parseFont(tickOpts); + context.font = tickFont.string; + + var labelRotation = tickOpts.minRotation || 0; + + if (labels.length && me.options.display && me.isHorizontal()) { + var originalLabelWidth = helpers$1.longestText(context, tickFont.string, labels, me.longestTextCache); + var labelWidth = originalLabelWidth; + var cosRotation, sinRotation; + + // Allow 3 pixels x2 padding either side for label readability + var tickWidth = me.getPixelForTick(1) - me.getPixelForTick(0) - 6; + + // Max label rotation can be set or default to 90 - also act as a loop counter + while (labelWidth > tickWidth && labelRotation < tickOpts.maxRotation) { + var angleRadians = helpers$1.toRadians(labelRotation); + cosRotation = Math.cos(angleRadians); + sinRotation = Math.sin(angleRadians); + + if (sinRotation * originalLabelWidth > me.maxHeight) { + // go back one step + labelRotation--; + break; + } + + labelRotation++; + labelWidth = cosRotation * originalLabelWidth; + } + } + + me.labelRotation = labelRotation; + }, + afterCalculateTickRotation: function() { + helpers$1.callback(this.options.afterCalculateTickRotation, [this]); + }, + + // + + beforeFit: function() { + helpers$1.callback(this.options.beforeFit, [this]); + }, + fit: function() { + var me = this; + // Reset + var minSize = me.minSize = { + width: 0, + height: 0 + }; + + var labels = labelsFromTicks(me._ticks); + + var opts = me.options; + var tickOpts = opts.ticks; + var scaleLabelOpts = opts.scaleLabel; + var gridLineOpts = opts.gridLines; + var display = me._isVisible(); + var position = opts.position; + var isHorizontal = me.isHorizontal(); + + var parseFont = helpers$1.options._parseFont; + var tickFont = parseFont(tickOpts); + var tickMarkLength = opts.gridLines.tickMarkLength; + + // Width + if (isHorizontal) { + // subtract the margins to line up with the chartArea if we are a full width scale + minSize.width = me.isFullWidth() ? me.maxWidth - me.margins.left - me.margins.right : me.maxWidth; + } else { + minSize.width = display && gridLineOpts.drawTicks ? tickMarkLength : 0; + } + + // height + if (isHorizontal) { + minSize.height = display && gridLineOpts.drawTicks ? tickMarkLength : 0; + } else { + minSize.height = me.maxHeight; // fill all the height + } + + // Are we showing a title for the scale? + if (scaleLabelOpts.display && display) { + var scaleLabelFont = parseFont(scaleLabelOpts); + var scaleLabelPadding = helpers$1.options.toPadding(scaleLabelOpts.padding); + var deltaHeight = scaleLabelFont.lineHeight + scaleLabelPadding.height; + + if (isHorizontal) { + minSize.height += deltaHeight; + } else { + minSize.width += deltaHeight; + } + } + + // Don't bother fitting the ticks if we are not showing the labels + if (tickOpts.display && display) { + var largestTextWidth = helpers$1.longestText(me.ctx, tickFont.string, labels, me.longestTextCache); + var tallestLabelHeightInLines = helpers$1.numberOfLabelLines(labels); + var lineSpace = tickFont.size * 0.5; + var tickPadding = me.options.ticks.padding; + + // Store max number of lines and widest label for _autoSkip + me._maxLabelLines = tallestLabelHeightInLines; + me.longestLabelWidth = largestTextWidth; + + if (isHorizontal) { + var angleRadians = helpers$1.toRadians(me.labelRotation); + var cosRotation = Math.cos(angleRadians); + var sinRotation = Math.sin(angleRadians); + + // TODO - improve this calculation + var labelHeight = (sinRotation * largestTextWidth) + + (tickFont.lineHeight * tallestLabelHeightInLines) + + lineSpace; // padding + + minSize.height = Math.min(me.maxHeight, minSize.height + labelHeight + tickPadding); + + me.ctx.font = tickFont.string; + var firstLabelWidth = computeTextSize(me.ctx, labels[0], tickFont.string); + var lastLabelWidth = computeTextSize(me.ctx, labels[labels.length - 1], tickFont.string); + var offsetLeft = me.getPixelForTick(0) - me.left; + var offsetRight = me.right - me.getPixelForTick(labels.length - 1); + var paddingLeft, paddingRight; + + // Ensure that our ticks are always inside the canvas. When rotated, ticks are right aligned + // which means that the right padding is dominated by the font height + if (me.labelRotation !== 0) { + paddingLeft = position === 'bottom' ? (cosRotation * firstLabelWidth) : (cosRotation * lineSpace); + paddingRight = position === 'bottom' ? (cosRotation * lineSpace) : (cosRotation * lastLabelWidth); + } else { + paddingLeft = firstLabelWidth / 2; + paddingRight = lastLabelWidth / 2; + } + me.paddingLeft = Math.max(paddingLeft - offsetLeft, 0) + 3; // add 3 px to move away from canvas edges + me.paddingRight = Math.max(paddingRight - offsetRight, 0) + 3; + } else { + // A vertical axis is more constrained by the width. Labels are the + // dominant factor here, so get that length first and account for padding + if (tickOpts.mirror) { + largestTextWidth = 0; + } else { + // use lineSpace for consistency with horizontal axis + // tickPadding is not implemented for horizontal + largestTextWidth += tickPadding + lineSpace; + } + + minSize.width = Math.min(me.maxWidth, minSize.width + largestTextWidth); + + me.paddingTop = tickFont.size / 2; + me.paddingBottom = tickFont.size / 2; + } + } + + me.handleMargins(); + + me.width = minSize.width; + me.height = minSize.height; + }, + + /** + * Handle margins and padding interactions + * @private + */ + handleMargins: function() { + var me = this; + if (me.margins) { + me.paddingLeft = Math.max(me.paddingLeft - me.margins.left, 0); + me.paddingTop = Math.max(me.paddingTop - me.margins.top, 0); + me.paddingRight = Math.max(me.paddingRight - me.margins.right, 0); + me.paddingBottom = Math.max(me.paddingBottom - me.margins.bottom, 0); + } + }, + + afterFit: function() { + helpers$1.callback(this.options.afterFit, [this]); + }, + + // Shared Methods + isHorizontal: function() { + return this.options.position === 'top' || this.options.position === 'bottom'; + }, + isFullWidth: function() { + return (this.options.fullWidth); + }, + + // Get the correct value. NaN bad inputs, If the value type is object get the x or y based on whether we are horizontal or not + getRightValue: function(rawValue) { + // Null and undefined values first + if (helpers$1.isNullOrUndef(rawValue)) { + return NaN; + } + // isNaN(object) returns true, so make sure NaN is checking for a number; Discard Infinite values + if ((typeof rawValue === 'number' || rawValue instanceof Number) && !isFinite(rawValue)) { + return NaN; + } + // If it is in fact an object, dive in one more level + if (rawValue) { + if (this.isHorizontal()) { + if (rawValue.x !== undefined) { + return this.getRightValue(rawValue.x); + } + } else if (rawValue.y !== undefined) { + return this.getRightValue(rawValue.y); + } + } + + // Value is good, return it + return rawValue; + }, + + /** + * Used to get the value to display in the tooltip for the data at the given index + * @param index + * @param datasetIndex + */ + getLabelForIndex: helpers$1.noop, + + /** + * Returns the location of the given data point. Value can either be an index or a numerical value + * The coordinate (0, 0) is at the upper-left corner of the canvas + * @param value + * @param index + * @param datasetIndex + */ + getPixelForValue: helpers$1.noop, + + /** + * Used to get the data value from a given pixel. This is the inverse of getPixelForValue + * The coordinate (0, 0) is at the upper-left corner of the canvas + * @param pixel + */ + getValueForPixel: helpers$1.noop, + + /** + * Returns the location of the tick at the given index + * The coordinate (0, 0) is at the upper-left corner of the canvas + */ + getPixelForTick: function(index) { + var me = this; + var offset = me.options.offset; + if (me.isHorizontal()) { + var innerWidth = me.width - (me.paddingLeft + me.paddingRight); + var tickWidth = innerWidth / Math.max((me._ticks.length - (offset ? 0 : 1)), 1); + var pixel = (tickWidth * index) + me.paddingLeft; + + if (offset) { + pixel += tickWidth / 2; + } + + var finalVal = me.left + pixel; + finalVal += me.isFullWidth() ? me.margins.left : 0; + return finalVal; + } + var innerHeight = me.height - (me.paddingTop + me.paddingBottom); + return me.top + (index * (innerHeight / (me._ticks.length - 1))); + }, + + /** + * Utility for getting the pixel location of a percentage of scale + * The coordinate (0, 0) is at the upper-left corner of the canvas + */ + getPixelForDecimal: function(decimal) { + var me = this; + if (me.isHorizontal()) { + var innerWidth = me.width - (me.paddingLeft + me.paddingRight); + var valueOffset = (innerWidth * decimal) + me.paddingLeft; + + var finalVal = me.left + valueOffset; + finalVal += me.isFullWidth() ? me.margins.left : 0; + return finalVal; + } + return me.top + (decimal * me.height); + }, + + /** + * Returns the pixel for the minimum chart value + * The coordinate (0, 0) is at the upper-left corner of the canvas + */ + getBasePixel: function() { + return this.getPixelForValue(this.getBaseValue()); + }, + + getBaseValue: function() { + var me = this; + var min = me.min; + var max = me.max; + + return me.beginAtZero ? 0 : + min < 0 && max < 0 ? max : + min > 0 && max > 0 ? min : + 0; + }, + + /** + * Returns a subset of ticks to be plotted to avoid overlapping labels. + * @private + */ + _autoSkip: function(ticks) { + var me = this; + var isHorizontal = me.isHorizontal(); + var optionTicks = me.options.ticks.minor; + var tickCount = ticks.length; + var skipRatio = false; + var maxTicks = optionTicks.maxTicksLimit; + + // Total space needed to display all ticks. First and last ticks are + // drawn as their center at end of axis, so tickCount-1 + var ticksLength = me._tickSize() * (tickCount - 1); + + // Axis length + var axisLength = isHorizontal + ? me.width - (me.paddingLeft + me.paddingRight) + : me.height - (me.paddingTop + me.PaddingBottom); + + var result = []; + var i, tick; + + if (ticksLength > axisLength) { + skipRatio = 1 + Math.floor(ticksLength / axisLength); + } + + // if they defined a max number of optionTicks, + // increase skipRatio until that number is met + if (tickCount > maxTicks) { + skipRatio = Math.max(skipRatio, 1 + Math.floor(tickCount / maxTicks)); + } + + for (i = 0; i < tickCount; i++) { + tick = ticks[i]; + + if (skipRatio > 1 && i % skipRatio > 0) { + // leave tick in place but make sure it's not displayed (#4635) + delete tick.label; + } + result.push(tick); + } + return result; + }, + + /** + * @private + */ + _tickSize: function() { + var me = this; + var isHorizontal = me.isHorizontal(); + var optionTicks = me.options.ticks.minor; + + // Calculate space needed by label in axis direction. + var rot = helpers$1.toRadians(me.labelRotation); + var cos = Math.abs(Math.cos(rot)); + var sin = Math.abs(Math.sin(rot)); + + var padding = optionTicks.autoSkipPadding || 0; + var w = (me.longestLabelWidth + padding) || 0; + + var tickFont = helpers$1.options._parseFont(optionTicks); + var h = (me._maxLabelLines * tickFont.lineHeight + padding) || 0; + + // Calculate space needed for 1 tick in axis direction. + return isHorizontal + ? h * cos > w * sin ? w / cos : h / sin + : h * sin < w * cos ? h / cos : w / sin; + }, + + /** + * @private + */ + _isVisible: function() { + var me = this; + var chart = me.chart; + var display = me.options.display; + var i, ilen, meta; + + if (display !== 'auto') { + return !!display; + } + + // When 'auto', the scale is visible if at least one associated dataset is visible. + for (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) { + if (chart.isDatasetVisible(i)) { + meta = chart.getDatasetMeta(i); + if (meta.xAxisID === me.id || meta.yAxisID === me.id) { + return true; + } + } + } + + return false; + }, + + /** + * Actually draw the scale on the canvas + * @param {object} chartArea - the area of the chart to draw full grid lines on + */ + draw: function(chartArea) { + var me = this; + var options = me.options; + + if (!me._isVisible()) { + return; + } + + var chart = me.chart; + var context = me.ctx; + var globalDefaults = core_defaults.global; + var defaultFontColor = globalDefaults.defaultFontColor; + var optionTicks = options.ticks.minor; + var optionMajorTicks = options.ticks.major || optionTicks; + var gridLines = options.gridLines; + var scaleLabel = options.scaleLabel; + var position = options.position; + + var isRotated = me.labelRotation !== 0; + var isMirrored = optionTicks.mirror; + var isHorizontal = me.isHorizontal(); + + var parseFont = helpers$1.options._parseFont; + var ticks = optionTicks.display && optionTicks.autoSkip ? me._autoSkip(me.getTicks()) : me.getTicks(); + var tickFontColor = valueOrDefault$9(optionTicks.fontColor, defaultFontColor); + var tickFont = parseFont(optionTicks); + var lineHeight = tickFont.lineHeight; + var majorTickFontColor = valueOrDefault$9(optionMajorTicks.fontColor, defaultFontColor); + var majorTickFont = parseFont(optionMajorTicks); + var tickPadding = optionTicks.padding; + var labelOffset = optionTicks.labelOffset; + + var tl = gridLines.drawTicks ? gridLines.tickMarkLength : 0; + + var scaleLabelFontColor = valueOrDefault$9(scaleLabel.fontColor, defaultFontColor); + var scaleLabelFont = parseFont(scaleLabel); + var scaleLabelPadding = helpers$1.options.toPadding(scaleLabel.padding); + var labelRotationRadians = helpers$1.toRadians(me.labelRotation); + + var itemsToDraw = []; + + var axisWidth = gridLines.drawBorder ? valueAtIndexOrDefault(gridLines.lineWidth, 0, 0) : 0; + var alignPixel = helpers$1._alignPixel; + var borderValue, tickStart, tickEnd; + + if (position === 'top') { + borderValue = alignPixel(chart, me.bottom, axisWidth); + tickStart = me.bottom - tl; + tickEnd = borderValue - axisWidth / 2; + } else if (position === 'bottom') { + borderValue = alignPixel(chart, me.top, axisWidth); + tickStart = borderValue + axisWidth / 2; + tickEnd = me.top + tl; + } else if (position === 'left') { + borderValue = alignPixel(chart, me.right, axisWidth); + tickStart = me.right - tl; + tickEnd = borderValue - axisWidth / 2; + } else { + borderValue = alignPixel(chart, me.left, axisWidth); + tickStart = borderValue + axisWidth / 2; + tickEnd = me.left + tl; + } + + var epsilon = 0.0000001; // 0.0000001 is margin in pixels for Accumulated error. + + helpers$1.each(ticks, function(tick, index) { + // autoskipper skipped this tick (#4635) + if (helpers$1.isNullOrUndef(tick.label)) { + return; + } + + var label = tick.label; + var lineWidth, lineColor, borderDash, borderDashOffset; + if (index === me.zeroLineIndex && options.offset === gridLines.offsetGridLines) { + // Draw the first index specially + lineWidth = gridLines.zeroLineWidth; + lineColor = gridLines.zeroLineColor; + borderDash = gridLines.zeroLineBorderDash || []; + borderDashOffset = gridLines.zeroLineBorderDashOffset || 0.0; + } else { + lineWidth = valueAtIndexOrDefault(gridLines.lineWidth, index); + lineColor = valueAtIndexOrDefault(gridLines.color, index); + borderDash = gridLines.borderDash || []; + borderDashOffset = gridLines.borderDashOffset || 0.0; + } + + // Common properties + var tx1, ty1, tx2, ty2, x1, y1, x2, y2, labelX, labelY, textOffset, textAlign; + var labelCount = helpers$1.isArray(label) ? label.length : 1; + var lineValue = getPixelForGridLine(me, index, gridLines.offsetGridLines); + + if (isHorizontal) { + var labelYOffset = tl + tickPadding; + + if (lineValue < me.left - epsilon) { + lineColor = 'rgba(0,0,0,0)'; + } + + tx1 = tx2 = x1 = x2 = alignPixel(chart, lineValue, lineWidth); + ty1 = tickStart; + ty2 = tickEnd; + labelX = me.getPixelForTick(index) + labelOffset; // x values for optionTicks (need to consider offsetLabel option) + + if (position === 'top') { + y1 = alignPixel(chart, chartArea.top, axisWidth) + axisWidth / 2; + y2 = chartArea.bottom; + textOffset = ((!isRotated ? 0.5 : 1) - labelCount) * lineHeight; + textAlign = !isRotated ? 'center' : 'left'; + labelY = me.bottom - labelYOffset; + } else { + y1 = chartArea.top; + y2 = alignPixel(chart, chartArea.bottom, axisWidth) - axisWidth / 2; + textOffset = (!isRotated ? 0.5 : 0) * lineHeight; + textAlign = !isRotated ? 'center' : 'right'; + labelY = me.top + labelYOffset; + } + } else { + var labelXOffset = (isMirrored ? 0 : tl) + tickPadding; + + if (lineValue < me.top - epsilon) { + lineColor = 'rgba(0,0,0,0)'; + } + + tx1 = tickStart; + tx2 = tickEnd; + ty1 = ty2 = y1 = y2 = alignPixel(chart, lineValue, lineWidth); + labelY = me.getPixelForTick(index) + labelOffset; + textOffset = (1 - labelCount) * lineHeight / 2; + + if (position === 'left') { + x1 = alignPixel(chart, chartArea.left, axisWidth) + axisWidth / 2; + x2 = chartArea.right; + textAlign = isMirrored ? 'left' : 'right'; + labelX = me.right - labelXOffset; + } else { + x1 = chartArea.left; + x2 = alignPixel(chart, chartArea.right, axisWidth) - axisWidth / 2; + textAlign = isMirrored ? 'right' : 'left'; + labelX = me.left + labelXOffset; + } + } + + itemsToDraw.push({ + tx1: tx1, + ty1: ty1, + tx2: tx2, + ty2: ty2, + x1: x1, + y1: y1, + x2: x2, + y2: y2, + labelX: labelX, + labelY: labelY, + glWidth: lineWidth, + glColor: lineColor, + glBorderDash: borderDash, + glBorderDashOffset: borderDashOffset, + rotation: -1 * labelRotationRadians, + label: label, + major: tick.major, + textOffset: textOffset, + textAlign: textAlign + }); + }); + + // Draw all of the tick labels, tick marks, and grid lines at the correct places + helpers$1.each(itemsToDraw, function(itemToDraw) { + var glWidth = itemToDraw.glWidth; + var glColor = itemToDraw.glColor; + + if (gridLines.display && glWidth && glColor) { + context.save(); + context.lineWidth = glWidth; + context.strokeStyle = glColor; + if (context.setLineDash) { + context.setLineDash(itemToDraw.glBorderDash); + context.lineDashOffset = itemToDraw.glBorderDashOffset; + } + + context.beginPath(); + + if (gridLines.drawTicks) { + context.moveTo(itemToDraw.tx1, itemToDraw.ty1); + context.lineTo(itemToDraw.tx2, itemToDraw.ty2); + } + + if (gridLines.drawOnChartArea) { + context.moveTo(itemToDraw.x1, itemToDraw.y1); + context.lineTo(itemToDraw.x2, itemToDraw.y2); + } + + context.stroke(); + context.restore(); + } + + if (optionTicks.display) { + // Make sure we draw text in the correct color and font + context.save(); + context.translate(itemToDraw.labelX, itemToDraw.labelY); + context.rotate(itemToDraw.rotation); + context.font = itemToDraw.major ? majorTickFont.string : tickFont.string; + context.fillStyle = itemToDraw.major ? majorTickFontColor : tickFontColor; + context.textBaseline = 'middle'; + context.textAlign = itemToDraw.textAlign; + + var label = itemToDraw.label; + var y = itemToDraw.textOffset; + if (helpers$1.isArray(label)) { + for (var i = 0; i < label.length; ++i) { + // We just make sure the multiline element is a string here.. + context.fillText('' + label[i], 0, y); + y += lineHeight; + } + } else { + context.fillText(label, 0, y); + } + context.restore(); + } + }); + + if (scaleLabel.display) { + // Draw the scale label + var scaleLabelX; + var scaleLabelY; + var rotation = 0; + var halfLineHeight = scaleLabelFont.lineHeight / 2; + + if (isHorizontal) { + scaleLabelX = me.left + ((me.right - me.left) / 2); // midpoint of the width + scaleLabelY = position === 'bottom' + ? me.bottom - halfLineHeight - scaleLabelPadding.bottom + : me.top + halfLineHeight + scaleLabelPadding.top; + } else { + var isLeft = position === 'left'; + scaleLabelX = isLeft + ? me.left + halfLineHeight + scaleLabelPadding.top + : me.right - halfLineHeight - scaleLabelPadding.top; + scaleLabelY = me.top + ((me.bottom - me.top) / 2); + rotation = isLeft ? -0.5 * Math.PI : 0.5 * Math.PI; + } + + context.save(); + context.translate(scaleLabelX, scaleLabelY); + context.rotate(rotation); + context.textAlign = 'center'; + context.textBaseline = 'middle'; + context.fillStyle = scaleLabelFontColor; // render in correct colour + context.font = scaleLabelFont.string; + context.fillText(scaleLabel.labelString, 0, 0); + context.restore(); + } + + if (axisWidth) { + // Draw the line at the edge of the axis + var firstLineWidth = axisWidth; + var lastLineWidth = valueAtIndexOrDefault(gridLines.lineWidth, ticks.length - 1, 0); + var x1, x2, y1, y2; + + if (isHorizontal) { + x1 = alignPixel(chart, me.left, firstLineWidth) - firstLineWidth / 2; + x2 = alignPixel(chart, me.right, lastLineWidth) + lastLineWidth / 2; + y1 = y2 = borderValue; + } else { + y1 = alignPixel(chart, me.top, firstLineWidth) - firstLineWidth / 2; + y2 = alignPixel(chart, me.bottom, lastLineWidth) + lastLineWidth / 2; + x1 = x2 = borderValue; + } + + context.lineWidth = axisWidth; + context.strokeStyle = valueAtIndexOrDefault(gridLines.color, 0); + context.beginPath(); + context.moveTo(x1, y1); + context.lineTo(x2, y2); + context.stroke(); + } + } +}); + +var defaultConfig = { + position: 'bottom' +}; + +var scale_category = core_scale.extend({ + /** + * Internal function to get the correct labels. If data.xLabels or data.yLabels are defined, use those + * else fall back to data.labels + * @private + */ + getLabels: function() { + var data = this.chart.data; + return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels; + }, + + determineDataLimits: function() { + var me = this; + var labels = me.getLabels(); + me.minIndex = 0; + me.maxIndex = labels.length - 1; + var findIndex; + + if (me.options.ticks.min !== undefined) { + // user specified min value + findIndex = labels.indexOf(me.options.ticks.min); + me.minIndex = findIndex !== -1 ? findIndex : me.minIndex; + } + + if (me.options.ticks.max !== undefined) { + // user specified max value + findIndex = labels.indexOf(me.options.ticks.max); + me.maxIndex = findIndex !== -1 ? findIndex : me.maxIndex; + } + + me.min = labels[me.minIndex]; + me.max = labels[me.maxIndex]; + }, + + buildTicks: function() { + var me = this; + var labels = me.getLabels(); + // If we are viewing some subset of labels, slice the original array + me.ticks = (me.minIndex === 0 && me.maxIndex === labels.length - 1) ? labels : labels.slice(me.minIndex, me.maxIndex + 1); + }, + + getLabelForIndex: function(index, datasetIndex) { + var me = this; + var chart = me.chart; + + if (chart.getDatasetMeta(datasetIndex).controller._getValueScaleId() === me.id) { + return me.getRightValue(chart.data.datasets[datasetIndex].data[index]); + } + + return me.ticks[index - me.minIndex]; + }, + + // Used to get data value locations. Value can either be an index or a numerical value + getPixelForValue: function(value, index) { + var me = this; + var offset = me.options.offset; + // 1 is added because we need the length but we have the indexes + var offsetAmt = Math.max((me.maxIndex + 1 - me.minIndex - (offset ? 0 : 1)), 1); + + // If value is a data object, then index is the index in the data array, + // not the index of the scale. We need to change that. + var valueCategory; + if (value !== undefined && value !== null) { + valueCategory = me.isHorizontal() ? value.x : value.y; + } + if (valueCategory !== undefined || (value !== undefined && isNaN(index))) { + var labels = me.getLabels(); + value = valueCategory || value; + var idx = labels.indexOf(value); + index = idx !== -1 ? idx : index; + } + + if (me.isHorizontal()) { + var valueWidth = me.width / offsetAmt; + var widthOffset = (valueWidth * (index - me.minIndex)); + + if (offset) { + widthOffset += (valueWidth / 2); + } + + return me.left + widthOffset; + } + var valueHeight = me.height / offsetAmt; + var heightOffset = (valueHeight * (index - me.minIndex)); + + if (offset) { + heightOffset += (valueHeight / 2); + } + + return me.top + heightOffset; + }, + + getPixelForTick: function(index) { + return this.getPixelForValue(this.ticks[index], index + this.minIndex, null); + }, + + getValueForPixel: function(pixel) { + var me = this; + var offset = me.options.offset; + var value; + var offsetAmt = Math.max((me._ticks.length - (offset ? 0 : 1)), 1); + var horz = me.isHorizontal(); + var valueDimension = (horz ? me.width : me.height) / offsetAmt; + + pixel -= horz ? me.left : me.top; + + if (offset) { + pixel -= (valueDimension / 2); + } + + if (pixel <= 0) { + value = 0; + } else { + value = Math.round(pixel / valueDimension); + } + + return value + me.minIndex; + }, + + getBasePixel: function() { + return this.bottom; + } +}); + +// INTERNAL: static default options, registered in src/index.js +var _defaults = defaultConfig; +scale_category._defaults = _defaults; + +var noop = helpers$1.noop; +var isNullOrUndef = helpers$1.isNullOrUndef; + +/** + * Generate a set of linear ticks + * @param generationOptions the options used to generate the ticks + * @param dataRange the range of the data + * @returns {number[]} array of tick values + */ +function generateTicks(generationOptions, dataRange) { + var ticks = []; + // To get a "nice" value for the tick spacing, we will use the appropriately named + // "nice number" algorithm. See https://stackoverflow.com/questions/8506881/nice-label-algorithm-for-charts-with-minimum-ticks + // for details. + + var MIN_SPACING = 1e-14; + var stepSize = generationOptions.stepSize; + var unit = stepSize || 1; + var maxNumSpaces = generationOptions.maxTicks - 1; + var min = generationOptions.min; + var max = generationOptions.max; + var precision = generationOptions.precision; + var rmin = dataRange.min; + var rmax = dataRange.max; + var spacing = helpers$1.niceNum((rmax - rmin) / maxNumSpaces / unit) * unit; + var factor, niceMin, niceMax, numSpaces; + + // Beyond MIN_SPACING floating point numbers being to lose precision + // such that we can't do the math necessary to generate ticks + if (spacing < MIN_SPACING && isNullOrUndef(min) && isNullOrUndef(max)) { + return [rmin, rmax]; + } + + numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing); + if (numSpaces > maxNumSpaces) { + // If the calculated num of spaces exceeds maxNumSpaces, recalculate it + spacing = helpers$1.niceNum(numSpaces * spacing / maxNumSpaces / unit) * unit; + } + + if (stepSize || isNullOrUndef(precision)) { + // If a precision is not specified, calculate factor based on spacing + factor = Math.pow(10, helpers$1._decimalPlaces(spacing)); + } else { + // If the user specified a precision, round to that number of decimal places + factor = Math.pow(10, precision); + spacing = Math.ceil(spacing * factor) / factor; + } + + niceMin = Math.floor(rmin / spacing) * spacing; + niceMax = Math.ceil(rmax / spacing) * spacing; + + // If min, max and stepSize is set and they make an evenly spaced scale use it. + if (stepSize) { + // If very close to our whole number, use it. + if (!isNullOrUndef(min) && helpers$1.almostWhole(min / spacing, spacing / 1000)) { + niceMin = min; + } + if (!isNullOrUndef(max) && helpers$1.almostWhole(max / spacing, spacing / 1000)) { + niceMax = max; + } + } + + numSpaces = (niceMax - niceMin) / spacing; + // If very close to our rounded value, use it. + if (helpers$1.almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) { + numSpaces = Math.round(numSpaces); + } else { + numSpaces = Math.ceil(numSpaces); + } + + niceMin = Math.round(niceMin * factor) / factor; + niceMax = Math.round(niceMax * factor) / factor; + ticks.push(isNullOrUndef(min) ? niceMin : min); + for (var j = 1; j < numSpaces; ++j) { + ticks.push(Math.round((niceMin + j * spacing) * factor) / factor); + } + ticks.push(isNullOrUndef(max) ? niceMax : max); + + return ticks; +} + +var scale_linearbase = core_scale.extend({ + getRightValue: function(value) { + if (typeof value === 'string') { + return +value; + } + return core_scale.prototype.getRightValue.call(this, value); + }, + + handleTickRangeOptions: function() { + var me = this; + var opts = me.options; + var tickOpts = opts.ticks; + + // If we are forcing it to begin at 0, but 0 will already be rendered on the chart, + // do nothing since that would make the chart weird. If the user really wants a weird chart + // axis, they can manually override it + if (tickOpts.beginAtZero) { + var minSign = helpers$1.sign(me.min); + var maxSign = helpers$1.sign(me.max); + + if (minSign < 0 && maxSign < 0) { + // move the top up to 0 + me.max = 0; + } else if (minSign > 0 && maxSign > 0) { + // move the bottom down to 0 + me.min = 0; + } + } + + var setMin = tickOpts.min !== undefined || tickOpts.suggestedMin !== undefined; + var setMax = tickOpts.max !== undefined || tickOpts.suggestedMax !== undefined; + + if (tickOpts.min !== undefined) { + me.min = tickOpts.min; + } else if (tickOpts.suggestedMin !== undefined) { + if (me.min === null) { + me.min = tickOpts.suggestedMin; + } else { + me.min = Math.min(me.min, tickOpts.suggestedMin); + } + } + + if (tickOpts.max !== undefined) { + me.max = tickOpts.max; + } else if (tickOpts.suggestedMax !== undefined) { + if (me.max === null) { + me.max = tickOpts.suggestedMax; + } else { + me.max = Math.max(me.max, tickOpts.suggestedMax); + } + } + + if (setMin !== setMax) { + // We set the min or the max but not both. + // So ensure that our range is good + // Inverted or 0 length range can happen when + // ticks.min is set, and no datasets are visible + if (me.min >= me.max) { + if (setMin) { + me.max = me.min + 1; + } else { + me.min = me.max - 1; + } + } + } + + if (me.min === me.max) { + me.max++; + + if (!tickOpts.beginAtZero) { + me.min--; + } + } + }, + + getTickLimit: function() { + var me = this; + var tickOpts = me.options.ticks; + var stepSize = tickOpts.stepSize; + var maxTicksLimit = tickOpts.maxTicksLimit; + var maxTicks; + + if (stepSize) { + maxTicks = Math.ceil(me.max / stepSize) - Math.floor(me.min / stepSize) + 1; + } else { + maxTicks = me._computeTickLimit(); + maxTicksLimit = maxTicksLimit || 11; + } + + if (maxTicksLimit) { + maxTicks = Math.min(maxTicksLimit, maxTicks); + } + + return maxTicks; + }, + + _computeTickLimit: function() { + return Number.POSITIVE_INFINITY; + }, + + handleDirectionalChanges: noop, + + buildTicks: function() { + var me = this; + var opts = me.options; + var tickOpts = opts.ticks; + + // Figure out what the max number of ticks we can support it is based on the size of + // the axis area. For now, we say that the minimum tick spacing in pixels must be 40 + // We also limit the maximum number of ticks to 11 which gives a nice 10 squares on + // the graph. Make sure we always have at least 2 ticks + var maxTicks = me.getTickLimit(); + maxTicks = Math.max(2, maxTicks); + + var numericGeneratorOptions = { + maxTicks: maxTicks, + min: tickOpts.min, + max: tickOpts.max, + precision: tickOpts.precision, + stepSize: helpers$1.valueOrDefault(tickOpts.fixedStepSize, tickOpts.stepSize) + }; + var ticks = me.ticks = generateTicks(numericGeneratorOptions, me); + + me.handleDirectionalChanges(); + + // At this point, we need to update our max and min given the tick values since we have expanded the + // range of the scale + me.max = helpers$1.max(ticks); + me.min = helpers$1.min(ticks); + + if (tickOpts.reverse) { + ticks.reverse(); + + me.start = me.max; + me.end = me.min; + } else { + me.start = me.min; + me.end = me.max; + } + }, + + convertTicksToLabels: function() { + var me = this; + me.ticksAsNumbers = me.ticks.slice(); + me.zeroLineIndex = me.ticks.indexOf(0); + + core_scale.prototype.convertTicksToLabels.call(me); + } +}); + +var defaultConfig$1 = { + position: 'left', + ticks: { + callback: core_ticks.formatters.linear + } +}; + +var scale_linear = scale_linearbase.extend({ + determineDataLimits: function() { + var me = this; + var opts = me.options; + var chart = me.chart; + var data = chart.data; + var datasets = data.datasets; + var isHorizontal = me.isHorizontal(); + var DEFAULT_MIN = 0; + var DEFAULT_MAX = 1; + + function IDMatches(meta) { + return isHorizontal ? meta.xAxisID === me.id : meta.yAxisID === me.id; + } + + // First Calculate the range + me.min = null; + me.max = null; + + var hasStacks = opts.stacked; + if (hasStacks === undefined) { + helpers$1.each(datasets, function(dataset, datasetIndex) { + if (hasStacks) { + return; + } + + var meta = chart.getDatasetMeta(datasetIndex); + if (chart.isDatasetVisible(datasetIndex) && IDMatches(meta) && + meta.stack !== undefined) { + hasStacks = true; + } + }); + } + + if (opts.stacked || hasStacks) { + var valuesPerStack = {}; + + helpers$1.each(datasets, function(dataset, datasetIndex) { + var meta = chart.getDatasetMeta(datasetIndex); + var key = [ + meta.type, + // we have a separate stack for stack=undefined datasets when the opts.stacked is undefined + ((opts.stacked === undefined && meta.stack === undefined) ? datasetIndex : ''), + meta.stack + ].join('.'); + + if (valuesPerStack[key] === undefined) { + valuesPerStack[key] = { + positiveValues: [], + negativeValues: [] + }; + } + + // Store these per type + var positiveValues = valuesPerStack[key].positiveValues; + var negativeValues = valuesPerStack[key].negativeValues; + + if (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) { + helpers$1.each(dataset.data, function(rawValue, index) { + var value = +me.getRightValue(rawValue); + if (isNaN(value) || meta.data[index].hidden) { + return; + } + + positiveValues[index] = positiveValues[index] || 0; + negativeValues[index] = negativeValues[index] || 0; + + if (opts.relativePoints) { + positiveValues[index] = 100; + } else if (value < 0) { + negativeValues[index] += value; + } else { + positiveValues[index] += value; + } + }); + } + }); + + helpers$1.each(valuesPerStack, function(valuesForType) { + var values = valuesForType.positiveValues.concat(valuesForType.negativeValues); + var minVal = helpers$1.min(values); + var maxVal = helpers$1.max(values); + me.min = me.min === null ? minVal : Math.min(me.min, minVal); + me.max = me.max === null ? maxVal : Math.max(me.max, maxVal); + }); + + } else { + helpers$1.each(datasets, function(dataset, datasetIndex) { + var meta = chart.getDatasetMeta(datasetIndex); + if (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) { + helpers$1.each(dataset.data, function(rawValue, index) { + var value = +me.getRightValue(rawValue); + if (isNaN(value) || meta.data[index].hidden) { + return; + } + + if (me.min === null) { + me.min = value; + } else if (value < me.min) { + me.min = value; + } + + if (me.max === null) { + me.max = value; + } else if (value > me.max) { + me.max = value; + } + }); + } + }); + } + + me.min = isFinite(me.min) && !isNaN(me.min) ? me.min : DEFAULT_MIN; + me.max = isFinite(me.max) && !isNaN(me.max) ? me.max : DEFAULT_MAX; + + // Common base implementation to handle ticks.min, ticks.max, ticks.beginAtZero + this.handleTickRangeOptions(); + }, + + // Returns the maximum number of ticks based on the scale dimension + _computeTickLimit: function() { + var me = this; + var tickFont; + + if (me.isHorizontal()) { + return Math.ceil(me.width / 40); + } + tickFont = helpers$1.options._parseFont(me.options.ticks); + return Math.ceil(me.height / tickFont.lineHeight); + }, + + // Called after the ticks are built. We need + handleDirectionalChanges: function() { + if (!this.isHorizontal()) { + // We are in a vertical orientation. The top value is the highest. So reverse the array + this.ticks.reverse(); + } + }, + + getLabelForIndex: function(index, datasetIndex) { + return +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]); + }, + + // Utils + getPixelForValue: function(value) { + // This must be called after fit has been run so that + // this.left, this.top, this.right, and this.bottom have been defined + var me = this; + var start = me.start; + + var rightValue = +me.getRightValue(value); + var pixel; + var range = me.end - start; + + if (me.isHorizontal()) { + pixel = me.left + (me.width / range * (rightValue - start)); + } else { + pixel = me.bottom - (me.height / range * (rightValue - start)); + } + return pixel; + }, + + getValueForPixel: function(pixel) { + var me = this; + var isHorizontal = me.isHorizontal(); + var innerDimension = isHorizontal ? me.width : me.height; + var offset = (isHorizontal ? pixel - me.left : me.bottom - pixel) / innerDimension; + return me.start + ((me.end - me.start) * offset); + }, + + getPixelForTick: function(index) { + return this.getPixelForValue(this.ticksAsNumbers[index]); + } +}); + +// INTERNAL: static default options, registered in src/index.js +var _defaults$1 = defaultConfig$1; +scale_linear._defaults = _defaults$1; + +var valueOrDefault$a = helpers$1.valueOrDefault; + +/** + * Generate a set of logarithmic ticks + * @param generationOptions the options used to generate the ticks + * @param dataRange the range of the data + * @returns {number[]} array of tick values + */ +function generateTicks$1(generationOptions, dataRange) { + var ticks = []; + + var tickVal = valueOrDefault$a(generationOptions.min, Math.pow(10, Math.floor(helpers$1.log10(dataRange.min)))); + + var endExp = Math.floor(helpers$1.log10(dataRange.max)); + var endSignificand = Math.ceil(dataRange.max / Math.pow(10, endExp)); + var exp, significand; + + if (tickVal === 0) { + exp = Math.floor(helpers$1.log10(dataRange.minNotZero)); + significand = Math.floor(dataRange.minNotZero / Math.pow(10, exp)); + + ticks.push(tickVal); + tickVal = significand * Math.pow(10, exp); + } else { + exp = Math.floor(helpers$1.log10(tickVal)); + significand = Math.floor(tickVal / Math.pow(10, exp)); + } + var precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1; + + do { + ticks.push(tickVal); + + ++significand; + if (significand === 10) { + significand = 1; + ++exp; + precision = exp >= 0 ? 1 : precision; + } + + tickVal = Math.round(significand * Math.pow(10, exp) * precision) / precision; + } while (exp < endExp || (exp === endExp && significand < endSignificand)); + + var lastTick = valueOrDefault$a(generationOptions.max, tickVal); + ticks.push(lastTick); + + return ticks; +} + +var defaultConfig$2 = { + position: 'left', + + // label settings + ticks: { + callback: core_ticks.formatters.logarithmic + } +}; + +// TODO(v3): change this to positiveOrDefault +function nonNegativeOrDefault(value, defaultValue) { + return helpers$1.isFinite(value) && value >= 0 ? value : defaultValue; +} + +var scale_logarithmic = core_scale.extend({ + determineDataLimits: function() { + var me = this; + var opts = me.options; + var chart = me.chart; + var data = chart.data; + var datasets = data.datasets; + var isHorizontal = me.isHorizontal(); + function IDMatches(meta) { + return isHorizontal ? meta.xAxisID === me.id : meta.yAxisID === me.id; + } + + // Calculate Range + me.min = null; + me.max = null; + me.minNotZero = null; + + var hasStacks = opts.stacked; + if (hasStacks === undefined) { + helpers$1.each(datasets, function(dataset, datasetIndex) { + if (hasStacks) { + return; + } + + var meta = chart.getDatasetMeta(datasetIndex); + if (chart.isDatasetVisible(datasetIndex) && IDMatches(meta) && + meta.stack !== undefined) { + hasStacks = true; + } + }); + } + + if (opts.stacked || hasStacks) { + var valuesPerStack = {}; + + helpers$1.each(datasets, function(dataset, datasetIndex) { + var meta = chart.getDatasetMeta(datasetIndex); + var key = [ + meta.type, + // we have a separate stack for stack=undefined datasets when the opts.stacked is undefined + ((opts.stacked === undefined && meta.stack === undefined) ? datasetIndex : ''), + meta.stack + ].join('.'); + + if (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) { + if (valuesPerStack[key] === undefined) { + valuesPerStack[key] = []; + } + + helpers$1.each(dataset.data, function(rawValue, index) { + var values = valuesPerStack[key]; + var value = +me.getRightValue(rawValue); + // invalid, hidden and negative values are ignored + if (isNaN(value) || meta.data[index].hidden || value < 0) { + return; + } + values[index] = values[index] || 0; + values[index] += value; + }); + } + }); + + helpers$1.each(valuesPerStack, function(valuesForType) { + if (valuesForType.length > 0) { + var minVal = helpers$1.min(valuesForType); + var maxVal = helpers$1.max(valuesForType); + me.min = me.min === null ? minVal : Math.min(me.min, minVal); + me.max = me.max === null ? maxVal : Math.max(me.max, maxVal); + } + }); + + } else { + helpers$1.each(datasets, function(dataset, datasetIndex) { + var meta = chart.getDatasetMeta(datasetIndex); + if (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) { + helpers$1.each(dataset.data, function(rawValue, index) { + var value = +me.getRightValue(rawValue); + // invalid, hidden and negative values are ignored + if (isNaN(value) || meta.data[index].hidden || value < 0) { + return; + } + + if (me.min === null) { + me.min = value; + } else if (value < me.min) { + me.min = value; + } + + if (me.max === null) { + me.max = value; + } else if (value > me.max) { + me.max = value; + } + + if (value !== 0 && (me.minNotZero === null || value < me.minNotZero)) { + me.minNotZero = value; + } + }); + } + }); + } + + // Common base implementation to handle ticks.min, ticks.max + this.handleTickRangeOptions(); + }, + + handleTickRangeOptions: function() { + var me = this; + var tickOpts = me.options.ticks; + var DEFAULT_MIN = 1; + var DEFAULT_MAX = 10; + + me.min = nonNegativeOrDefault(tickOpts.min, me.min); + me.max = nonNegativeOrDefault(tickOpts.max, me.max); + + if (me.min === me.max) { + if (me.min !== 0 && me.min !== null) { + me.min = Math.pow(10, Math.floor(helpers$1.log10(me.min)) - 1); + me.max = Math.pow(10, Math.floor(helpers$1.log10(me.max)) + 1); + } else { + me.min = DEFAULT_MIN; + me.max = DEFAULT_MAX; + } + } + if (me.min === null) { + me.min = Math.pow(10, Math.floor(helpers$1.log10(me.max)) - 1); + } + if (me.max === null) { + me.max = me.min !== 0 + ? Math.pow(10, Math.floor(helpers$1.log10(me.min)) + 1) + : DEFAULT_MAX; + } + if (me.minNotZero === null) { + if (me.min > 0) { + me.minNotZero = me.min; + } else if (me.max < 1) { + me.minNotZero = Math.pow(10, Math.floor(helpers$1.log10(me.max))); + } else { + me.minNotZero = DEFAULT_MIN; + } + } + }, + + buildTicks: function() { + var me = this; + var tickOpts = me.options.ticks; + var reverse = !me.isHorizontal(); + + var generationOptions = { + min: nonNegativeOrDefault(tickOpts.min), + max: nonNegativeOrDefault(tickOpts.max) + }; + var ticks = me.ticks = generateTicks$1(generationOptions, me); + + // At this point, we need to update our max and min given the tick values since we have expanded the + // range of the scale + me.max = helpers$1.max(ticks); + me.min = helpers$1.min(ticks); + + if (tickOpts.reverse) { + reverse = !reverse; + me.start = me.max; + me.end = me.min; + } else { + me.start = me.min; + me.end = me.max; + } + if (reverse) { + ticks.reverse(); + } + }, + + convertTicksToLabels: function() { + this.tickValues = this.ticks.slice(); + + core_scale.prototype.convertTicksToLabels.call(this); + }, + + // Get the correct tooltip label + getLabelForIndex: function(index, datasetIndex) { + return +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]); + }, + + getPixelForTick: function(index) { + return this.getPixelForValue(this.tickValues[index]); + }, + + /** + * Returns the value of the first tick. + * @param {number} value - The minimum not zero value. + * @return {number} The first tick value. + * @private + */ + _getFirstTickValue: function(value) { + var exp = Math.floor(helpers$1.log10(value)); + var significand = Math.floor(value / Math.pow(10, exp)); + + return significand * Math.pow(10, exp); + }, + + getPixelForValue: function(value) { + var me = this; + var tickOpts = me.options.ticks; + var reverse = tickOpts.reverse; + var log10 = helpers$1.log10; + var firstTickValue = me._getFirstTickValue(me.minNotZero); + var offset = 0; + var innerDimension, pixel, start, end, sign; + + value = +me.getRightValue(value); + if (reverse) { + start = me.end; + end = me.start; + sign = -1; + } else { + start = me.start; + end = me.end; + sign = 1; + } + if (me.isHorizontal()) { + innerDimension = me.width; + pixel = reverse ? me.right : me.left; + } else { + innerDimension = me.height; + sign *= -1; // invert, since the upper-left corner of the canvas is at pixel (0, 0) + pixel = reverse ? me.top : me.bottom; + } + if (value !== start) { + if (start === 0) { // include zero tick + offset = valueOrDefault$a(tickOpts.fontSize, core_defaults.global.defaultFontSize); + innerDimension -= offset; + start = firstTickValue; + } + if (value !== 0) { + offset += innerDimension / (log10(end) - log10(start)) * (log10(value) - log10(start)); + } + pixel += sign * offset; + } + return pixel; + }, + + getValueForPixel: function(pixel) { + var me = this; + var tickOpts = me.options.ticks; + var reverse = tickOpts.reverse; + var log10 = helpers$1.log10; + var firstTickValue = me._getFirstTickValue(me.minNotZero); + var innerDimension, start, end, value; + + if (reverse) { + start = me.end; + end = me.start; + } else { + start = me.start; + end = me.end; + } + if (me.isHorizontal()) { + innerDimension = me.width; + value = reverse ? me.right - pixel : pixel - me.left; + } else { + innerDimension = me.height; + value = reverse ? pixel - me.top : me.bottom - pixel; + } + if (value !== start) { + if (start === 0) { // include zero tick + var offset = valueOrDefault$a(tickOpts.fontSize, core_defaults.global.defaultFontSize); + value -= offset; + innerDimension -= offset; + start = firstTickValue; + } + value *= log10(end) - log10(start); + value /= innerDimension; + value = Math.pow(10, log10(start) + value); + } + return value; + } +}); + +// INTERNAL: static default options, registered in src/index.js +var _defaults$2 = defaultConfig$2; +scale_logarithmic._defaults = _defaults$2; + +var valueOrDefault$b = helpers$1.valueOrDefault; +var valueAtIndexOrDefault$1 = helpers$1.valueAtIndexOrDefault; +var resolve$7 = helpers$1.options.resolve; + +var defaultConfig$3 = { + display: true, + + // Boolean - Whether to animate scaling the chart from the centre + animate: true, + position: 'chartArea', + + angleLines: { + display: true, + color: 'rgba(0, 0, 0, 0.1)', + lineWidth: 1, + borderDash: [], + borderDashOffset: 0.0 + }, + + gridLines: { + circular: false + }, + + // label settings + ticks: { + // Boolean - Show a backdrop to the scale label + showLabelBackdrop: true, + + // String - The colour of the label backdrop + backdropColor: 'rgba(255,255,255,0.75)', + + // Number - The backdrop padding above & below the label in pixels + backdropPaddingY: 2, + + // Number - The backdrop padding to the side of the label in pixels + backdropPaddingX: 2, + + callback: core_ticks.formatters.linear + }, + + pointLabels: { + // Boolean - if true, show point labels + display: true, + + // Number - Point label font size in pixels + fontSize: 10, + + // Function - Used to convert point labels + callback: function(label) { + return label; + } + } +}; + +function getValueCount(scale) { + var opts = scale.options; + return opts.angleLines.display || opts.pointLabels.display ? scale.chart.data.labels.length : 0; +} + +function getTickBackdropHeight(opts) { + var tickOpts = opts.ticks; + + if (tickOpts.display && opts.display) { + return valueOrDefault$b(tickOpts.fontSize, core_defaults.global.defaultFontSize) + tickOpts.backdropPaddingY * 2; + } + return 0; +} + +function measureLabelSize(ctx, lineHeight, label) { + if (helpers$1.isArray(label)) { + return { + w: helpers$1.longestText(ctx, ctx.font, label), + h: label.length * lineHeight + }; + } + + return { + w: ctx.measureText(label).width, + h: lineHeight + }; +} + +function determineLimits(angle, pos, size, min, max) { + if (angle === min || angle === max) { + return { + start: pos - (size / 2), + end: pos + (size / 2) + }; + } else if (angle < min || angle > max) { + return { + start: pos - size, + end: pos + }; + } + + return { + start: pos, + end: pos + size + }; +} + +/** + * Helper function to fit a radial linear scale with point labels + */ +function fitWithPointLabels(scale) { + + // Right, this is really confusing and there is a lot of maths going on here + // The gist of the problem is here: https://gist.github.com/nnnick/696cc9c55f4b0beb8fe9 + // + // Reaction: https://dl.dropboxusercontent.com/u/34601363/toomuchscience.gif + // + // Solution: + // + // We assume the radius of the polygon is half the size of the canvas at first + // at each index we check if the text overlaps. + // + // Where it does, we store that angle and that index. + // + // After finding the largest index and angle we calculate how much we need to remove + // from the shape radius to move the point inwards by that x. + // + // We average the left and right distances to get the maximum shape radius that can fit in the box + // along with labels. + // + // Once we have that, we can find the centre point for the chart, by taking the x text protrusion + // on each side, removing that from the size, halving it and adding the left x protrusion width. + // + // This will mean we have a shape fitted to the canvas, as large as it can be with the labels + // and position it in the most space efficient manner + // + // https://dl.dropboxusercontent.com/u/34601363/yeahscience.gif + + var plFont = helpers$1.options._parseFont(scale.options.pointLabels); + + // Get maximum radius of the polygon. Either half the height (minus the text width) or half the width. + // Use this to calculate the offset + change. - Make sure L/R protrusion is at least 0 to stop issues with centre points + var furthestLimits = { + l: 0, + r: scale.width, + t: 0, + b: scale.height - scale.paddingTop + }; + var furthestAngles = {}; + var i, textSize, pointPosition; + + scale.ctx.font = plFont.string; + scale._pointLabelSizes = []; + + var valueCount = getValueCount(scale); + for (i = 0; i < valueCount; i++) { + pointPosition = scale.getPointPosition(i, scale.drawingArea + 5); + textSize = measureLabelSize(scale.ctx, plFont.lineHeight, scale.pointLabels[i] || ''); + scale._pointLabelSizes[i] = textSize; + + // Add quarter circle to make degree 0 mean top of circle + var angleRadians = scale.getIndexAngle(i); + var angle = helpers$1.toDegrees(angleRadians) % 360; + var hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180); + var vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270); + + if (hLimits.start < furthestLimits.l) { + furthestLimits.l = hLimits.start; + furthestAngles.l = angleRadians; + } + + if (hLimits.end > furthestLimits.r) { + furthestLimits.r = hLimits.end; + furthestAngles.r = angleRadians; + } + + if (vLimits.start < furthestLimits.t) { + furthestLimits.t = vLimits.start; + furthestAngles.t = angleRadians; + } + + if (vLimits.end > furthestLimits.b) { + furthestLimits.b = vLimits.end; + furthestAngles.b = angleRadians; + } + } + + scale.setReductions(scale.drawingArea, furthestLimits, furthestAngles); +} + +function getTextAlignForAngle(angle) { + if (angle === 0 || angle === 180) { + return 'center'; + } else if (angle < 180) { + return 'left'; + } + + return 'right'; +} + +function fillText(ctx, text, position, lineHeight) { + var y = position.y + lineHeight / 2; + var i, ilen; + + if (helpers$1.isArray(text)) { + for (i = 0, ilen = text.length; i < ilen; ++i) { + ctx.fillText(text[i], position.x, y); + y += lineHeight; + } + } else { + ctx.fillText(text, position.x, y); + } +} + +function adjustPointPositionForLabelHeight(angle, textSize, position) { + if (angle === 90 || angle === 270) { + position.y -= (textSize.h / 2); + } else if (angle > 270 || angle < 90) { + position.y -= textSize.h; + } +} + +function drawPointLabels(scale) { + var ctx = scale.ctx; + var opts = scale.options; + var angleLineOpts = opts.angleLines; + var gridLineOpts = opts.gridLines; + var pointLabelOpts = opts.pointLabels; + var lineWidth = valueOrDefault$b(angleLineOpts.lineWidth, gridLineOpts.lineWidth); + var lineColor = valueOrDefault$b(angleLineOpts.color, gridLineOpts.color); + var tickBackdropHeight = getTickBackdropHeight(opts); + + ctx.save(); + ctx.lineWidth = lineWidth; + ctx.strokeStyle = lineColor; + if (ctx.setLineDash) { + ctx.setLineDash(resolve$7([angleLineOpts.borderDash, gridLineOpts.borderDash, []])); + ctx.lineDashOffset = resolve$7([angleLineOpts.borderDashOffset, gridLineOpts.borderDashOffset, 0.0]); + } + + var outerDistance = scale.getDistanceFromCenterForValue(opts.ticks.reverse ? scale.min : scale.max); + + // Point Label Font + var plFont = helpers$1.options._parseFont(pointLabelOpts); + + ctx.font = plFont.string; + ctx.textBaseline = 'middle'; + + for (var i = getValueCount(scale) - 1; i >= 0; i--) { + if (angleLineOpts.display && lineWidth && lineColor) { + var outerPosition = scale.getPointPosition(i, outerDistance); + ctx.beginPath(); + ctx.moveTo(scale.xCenter, scale.yCenter); + ctx.lineTo(outerPosition.x, outerPosition.y); + ctx.stroke(); + } + + if (pointLabelOpts.display) { + // Extra pixels out for some label spacing + var extra = (i === 0 ? tickBackdropHeight / 2 : 0); + var pointLabelPosition = scale.getPointPosition(i, outerDistance + extra + 5); + + // Keep this in loop since we may support array properties here + var pointLabelFontColor = valueAtIndexOrDefault$1(pointLabelOpts.fontColor, i, core_defaults.global.defaultFontColor); + ctx.fillStyle = pointLabelFontColor; + + var angleRadians = scale.getIndexAngle(i); + var angle = helpers$1.toDegrees(angleRadians); + ctx.textAlign = getTextAlignForAngle(angle); + adjustPointPositionForLabelHeight(angle, scale._pointLabelSizes[i], pointLabelPosition); + fillText(ctx, scale.pointLabels[i] || '', pointLabelPosition, plFont.lineHeight); + } + } + ctx.restore(); +} + +function drawRadiusLine(scale, gridLineOpts, radius, index) { + var ctx = scale.ctx; + var circular = gridLineOpts.circular; + var valueCount = getValueCount(scale); + var lineColor = valueAtIndexOrDefault$1(gridLineOpts.color, index - 1); + var lineWidth = valueAtIndexOrDefault$1(gridLineOpts.lineWidth, index - 1); + var pointPosition; + + if ((!circular && !valueCount) || !lineColor || !lineWidth) { + return; + } + + ctx.save(); + ctx.strokeStyle = lineColor; + ctx.lineWidth = lineWidth; + if (ctx.setLineDash) { + ctx.setLineDash(gridLineOpts.borderDash || []); + ctx.lineDashOffset = gridLineOpts.borderDashOffset || 0.0; + } + + ctx.beginPath(); + if (circular) { + // Draw circular arcs between the points + ctx.arc(scale.xCenter, scale.yCenter, radius, 0, Math.PI * 2); + } else { + // Draw straight lines connecting each index + pointPosition = scale.getPointPosition(0, radius); + ctx.moveTo(pointPosition.x, pointPosition.y); + + for (var i = 1; i < valueCount; i++) { + pointPosition = scale.getPointPosition(i, radius); + ctx.lineTo(pointPosition.x, pointPosition.y); + } + } + ctx.closePath(); + ctx.stroke(); + ctx.restore(); +} + +function numberOrZero(param) { + return helpers$1.isNumber(param) ? param : 0; +} + +var scale_radialLinear = scale_linearbase.extend({ + setDimensions: function() { + var me = this; + + // Set the unconstrained dimension before label rotation + me.width = me.maxWidth; + me.height = me.maxHeight; + me.paddingTop = getTickBackdropHeight(me.options) / 2; + me.xCenter = Math.floor(me.width / 2); + me.yCenter = Math.floor((me.height - me.paddingTop) / 2); + me.drawingArea = Math.min(me.height - me.paddingTop, me.width) / 2; + }, + + determineDataLimits: function() { + var me = this; + var chart = me.chart; + var min = Number.POSITIVE_INFINITY; + var max = Number.NEGATIVE_INFINITY; + + helpers$1.each(chart.data.datasets, function(dataset, datasetIndex) { + if (chart.isDatasetVisible(datasetIndex)) { + var meta = chart.getDatasetMeta(datasetIndex); + + helpers$1.each(dataset.data, function(rawValue, index) { + var value = +me.getRightValue(rawValue); + if (isNaN(value) || meta.data[index].hidden) { + return; + } + + min = Math.min(value, min); + max = Math.max(value, max); + }); + } + }); + + me.min = (min === Number.POSITIVE_INFINITY ? 0 : min); + me.max = (max === Number.NEGATIVE_INFINITY ? 0 : max); + + // Common base implementation to handle ticks.min, ticks.max, ticks.beginAtZero + me.handleTickRangeOptions(); + }, + + // Returns the maximum number of ticks based on the scale dimension + _computeTickLimit: function() { + return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options)); + }, + + convertTicksToLabels: function() { + var me = this; + + scale_linearbase.prototype.convertTicksToLabels.call(me); + + // Point labels + me.pointLabels = me.chart.data.labels.map(me.options.pointLabels.callback, me); + }, + + getLabelForIndex: function(index, datasetIndex) { + return +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]); + }, + + fit: function() { + var me = this; + var opts = me.options; + + if (opts.display && opts.pointLabels.display) { + fitWithPointLabels(me); + } else { + me.setCenterPoint(0, 0, 0, 0); + } + }, + + /** + * Set radius reductions and determine new radius and center point + * @private + */ + setReductions: function(largestPossibleRadius, furthestLimits, furthestAngles) { + var me = this; + var radiusReductionLeft = furthestLimits.l / Math.sin(furthestAngles.l); + var radiusReductionRight = Math.max(furthestLimits.r - me.width, 0) / Math.sin(furthestAngles.r); + var radiusReductionTop = -furthestLimits.t / Math.cos(furthestAngles.t); + var radiusReductionBottom = -Math.max(furthestLimits.b - (me.height - me.paddingTop), 0) / Math.cos(furthestAngles.b); + + radiusReductionLeft = numberOrZero(radiusReductionLeft); + radiusReductionRight = numberOrZero(radiusReductionRight); + radiusReductionTop = numberOrZero(radiusReductionTop); + radiusReductionBottom = numberOrZero(radiusReductionBottom); + + me.drawingArea = Math.min( + Math.floor(largestPossibleRadius - (radiusReductionLeft + radiusReductionRight) / 2), + Math.floor(largestPossibleRadius - (radiusReductionTop + radiusReductionBottom) / 2)); + me.setCenterPoint(radiusReductionLeft, radiusReductionRight, radiusReductionTop, radiusReductionBottom); + }, + + setCenterPoint: function(leftMovement, rightMovement, topMovement, bottomMovement) { + var me = this; + var maxRight = me.width - rightMovement - me.drawingArea; + var maxLeft = leftMovement + me.drawingArea; + var maxTop = topMovement + me.drawingArea; + var maxBottom = (me.height - me.paddingTop) - bottomMovement - me.drawingArea; + + me.xCenter = Math.floor(((maxLeft + maxRight) / 2) + me.left); + me.yCenter = Math.floor(((maxTop + maxBottom) / 2) + me.top + me.paddingTop); + }, + + getIndexAngle: function(index) { + var angleMultiplier = (Math.PI * 2) / getValueCount(this); + var startAngle = this.chart.options && this.chart.options.startAngle ? + this.chart.options.startAngle : + 0; + + var startAngleRadians = startAngle * Math.PI * 2 / 360; + + // Start from the top instead of right, so remove a quarter of the circle + return index * angleMultiplier + startAngleRadians; + }, + + getDistanceFromCenterForValue: function(value) { + var me = this; + + if (value === null) { + return 0; // null always in center + } + + // Take into account half font size + the yPadding of the top value + var scalingFactor = me.drawingArea / (me.max - me.min); + if (me.options.ticks.reverse) { + return (me.max - value) * scalingFactor; + } + return (value - me.min) * scalingFactor; + }, + + getPointPosition: function(index, distanceFromCenter) { + var me = this; + var thisAngle = me.getIndexAngle(index) - (Math.PI / 2); + return { + x: Math.cos(thisAngle) * distanceFromCenter + me.xCenter, + y: Math.sin(thisAngle) * distanceFromCenter + me.yCenter + }; + }, + + getPointPositionForValue: function(index, value) { + return this.getPointPosition(index, this.getDistanceFromCenterForValue(value)); + }, + + getBasePosition: function() { + var me = this; + var min = me.min; + var max = me.max; + + return me.getPointPositionForValue(0, + me.beginAtZero ? 0 : + min < 0 && max < 0 ? max : + min > 0 && max > 0 ? min : + 0); + }, + + draw: function() { + var me = this; + var opts = me.options; + var gridLineOpts = opts.gridLines; + var tickOpts = opts.ticks; + + if (opts.display) { + var ctx = me.ctx; + var startAngle = this.getIndexAngle(0); + var tickFont = helpers$1.options._parseFont(tickOpts); + + if (opts.angleLines.display || opts.pointLabels.display) { + drawPointLabels(me); + } + + helpers$1.each(me.ticks, function(label, index) { + // Don't draw a centre value (if it is minimum) + if (index > 0 || tickOpts.reverse) { + var yCenterOffset = me.getDistanceFromCenterForValue(me.ticksAsNumbers[index]); + + // Draw circular lines around the scale + if (gridLineOpts.display && index !== 0) { + drawRadiusLine(me, gridLineOpts, yCenterOffset, index); + } + + if (tickOpts.display) { + var tickFontColor = valueOrDefault$b(tickOpts.fontColor, core_defaults.global.defaultFontColor); + ctx.font = tickFont.string; + + ctx.save(); + ctx.translate(me.xCenter, me.yCenter); + ctx.rotate(startAngle); + + if (tickOpts.showLabelBackdrop) { + var labelWidth = ctx.measureText(label).width; + ctx.fillStyle = tickOpts.backdropColor; + ctx.fillRect( + -labelWidth / 2 - tickOpts.backdropPaddingX, + -yCenterOffset - tickFont.size / 2 - tickOpts.backdropPaddingY, + labelWidth + tickOpts.backdropPaddingX * 2, + tickFont.size + tickOpts.backdropPaddingY * 2 + ); + } + + ctx.textAlign = 'center'; + ctx.textBaseline = 'middle'; + ctx.fillStyle = tickFontColor; + ctx.fillText(label, 0, -yCenterOffset); + ctx.restore(); + } + } + }); + } + } +}); + +// INTERNAL: static default options, registered in src/index.js +var _defaults$3 = defaultConfig$3; +scale_radialLinear._defaults = _defaults$3; + +var valueOrDefault$c = helpers$1.valueOrDefault; + +// Integer constants are from the ES6 spec. +var MIN_INTEGER = Number.MIN_SAFE_INTEGER || -9007199254740991; +var MAX_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991; + +var INTERVALS = { + millisecond: { + common: true, + size: 1, + steps: [1, 2, 5, 10, 20, 50, 100, 250, 500] + }, + second: { + common: true, + size: 1000, + steps: [1, 2, 5, 10, 15, 30] + }, + minute: { + common: true, + size: 60000, + steps: [1, 2, 5, 10, 15, 30] + }, + hour: { + common: true, + size: 3600000, + steps: [1, 2, 3, 6, 12] + }, + day: { + common: true, + size: 86400000, + steps: [1, 2, 5] + }, + week: { + common: false, + size: 604800000, + steps: [1, 2, 3, 4] + }, + month: { + common: true, + size: 2.628e9, + steps: [1, 2, 3] + }, + quarter: { + common: false, + size: 7.884e9, + steps: [1, 2, 3, 4] + }, + year: { + common: true, + size: 3.154e10 + } +}; + +var UNITS = Object.keys(INTERVALS); + +function sorter(a, b) { + return a - b; +} + +function arrayUnique(items) { + var hash = {}; + var out = []; + var i, ilen, item; + + for (i = 0, ilen = items.length; i < ilen; ++i) { + item = items[i]; + if (!hash[item]) { + hash[item] = true; + out.push(item); + } + } + + return out; +} + +/** + * Returns an array of {time, pos} objects used to interpolate a specific `time` or position + * (`pos`) on the scale, by searching entries before and after the requested value. `pos` is + * a decimal between 0 and 1: 0 being the start of the scale (left or top) and 1 the other + * extremity (left + width or top + height). Note that it would be more optimized to directly + * store pre-computed pixels, but the scale dimensions are not guaranteed at the time we need + * to create the lookup table. The table ALWAYS contains at least two items: min and max. + * + * @param {number[]} timestamps - timestamps sorted from lowest to highest. + * @param {string} distribution - If 'linear', timestamps will be spread linearly along the min + * and max range, so basically, the table will contains only two items: {min, 0} and {max, 1}. + * If 'series', timestamps will be positioned at the same distance from each other. In this + * case, only timestamps that break the time linearity are registered, meaning that in the + * best case, all timestamps are linear, the table contains only min and max. + */ +function buildLookupTable(timestamps, min, max, distribution) { + if (distribution === 'linear' || !timestamps.length) { + return [ + {time: min, pos: 0}, + {time: max, pos: 1} + ]; + } + + var table = []; + var items = [min]; + var i, ilen, prev, curr, next; + + for (i = 0, ilen = timestamps.length; i < ilen; ++i) { + curr = timestamps[i]; + if (curr > min && curr < max) { + items.push(curr); + } + } + + items.push(max); + + for (i = 0, ilen = items.length; i < ilen; ++i) { + next = items[i + 1]; + prev = items[i - 1]; + curr = items[i]; + + // only add points that breaks the scale linearity + if (prev === undefined || next === undefined || Math.round((next + prev) / 2) !== curr) { + table.push({time: curr, pos: i / (ilen - 1)}); + } + } + + return table; +} + +// @see adapted from https://www.anujgakhar.com/2014/03/01/binary-search-in-javascript/ +function lookup(table, key, value) { + var lo = 0; + var hi = table.length - 1; + var mid, i0, i1; + + while (lo >= 0 && lo <= hi) { + mid = (lo + hi) >> 1; + i0 = table[mid - 1] || null; + i1 = table[mid]; + + if (!i0) { + // given value is outside table (before first item) + return {lo: null, hi: i1}; + } else if (i1[key] < value) { + lo = mid + 1; + } else if (i0[key] > value) { + hi = mid - 1; + } else { + return {lo: i0, hi: i1}; + } + } + + // given value is outside table (after last item) + return {lo: i1, hi: null}; +} + +/** + * Linearly interpolates the given source `value` using the table items `skey` values and + * returns the associated `tkey` value. For example, interpolate(table, 'time', 42, 'pos') + * returns the position for a timestamp equal to 42. If value is out of bounds, values at + * index [0, 1] or [n - 1, n] are used for the interpolation. + */ +function interpolate$1(table, skey, sval, tkey) { + var range = lookup(table, skey, sval); + + // Note: the lookup table ALWAYS contains at least 2 items (min and max) + var prev = !range.lo ? table[0] : !range.hi ? table[table.length - 2] : range.lo; + var next = !range.lo ? table[1] : !range.hi ? table[table.length - 1] : range.hi; + + var span = next[skey] - prev[skey]; + var ratio = span ? (sval - prev[skey]) / span : 0; + var offset = (next[tkey] - prev[tkey]) * ratio; + + return prev[tkey] + offset; +} + +function toTimestamp(scale, input) { + var adapter = scale._adapter; + var options = scale.options.time; + var parser = options.parser; + var format = parser || options.format; + var value = input; + + if (typeof parser === 'function') { + value = parser(value); + } + + // Only parse if its not a timestamp already + if (!helpers$1.isFinite(value)) { + value = typeof format === 'string' + ? adapter.parse(value, format) + : adapter.parse(value); + } + + if (value !== null) { + return +value; + } + + // Labels are in an incompatible format and no `parser` has been provided. + // The user might still use the deprecated `format` option for parsing. + if (!parser && typeof format === 'function') { + value = format(input); + + // `format` could return something else than a timestamp, if so, parse it + if (!helpers$1.isFinite(value)) { + value = adapter.parse(value); + } + } + + return value; +} + +function parse(scale, input) { + if (helpers$1.isNullOrUndef(input)) { + return null; + } + + var options = scale.options.time; + var value = toTimestamp(scale, scale.getRightValue(input)); + if (value === null) { + return value; + } + + if (options.round) { + value = +scale._adapter.startOf(value, options.round); + } + + return value; +} + +/** + * Returns the number of unit to skip to be able to display up to `capacity` number of ticks + * in `unit` for the given `min` / `max` range and respecting the interval steps constraints. + */ +function determineStepSize(min, max, unit, capacity) { + var range = max - min; + var interval = INTERVALS[unit]; + var milliseconds = interval.size; + var steps = interval.steps; + var i, ilen, factor; + + if (!steps) { + return Math.ceil(range / (capacity * milliseconds)); + } + + for (i = 0, ilen = steps.length; i < ilen; ++i) { + factor = steps[i]; + if (Math.ceil(range / (milliseconds * factor)) <= capacity) { + break; + } + } + + return factor; +} + +/** + * Figures out what unit results in an appropriate number of auto-generated ticks + */ +function determineUnitForAutoTicks(minUnit, min, max, capacity) { + var ilen = UNITS.length; + var i, interval, factor; + + for (i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) { + interval = INTERVALS[UNITS[i]]; + factor = interval.steps ? interval.steps[interval.steps.length - 1] : MAX_INTEGER; + + if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) { + return UNITS[i]; + } + } + + return UNITS[ilen - 1]; +} + +/** + * Figures out what unit to format a set of ticks with + */ +function determineUnitForFormatting(scale, ticks, minUnit, min, max) { + var ilen = UNITS.length; + var i, unit; + + for (i = ilen - 1; i >= UNITS.indexOf(minUnit); i--) { + unit = UNITS[i]; + if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= ticks.length) { + return unit; + } + } + + return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0]; +} + +function determineMajorUnit(unit) { + for (var i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) { + if (INTERVALS[UNITS[i]].common) { + return UNITS[i]; + } + } +} + +/** + * Generates a maximum of `capacity` timestamps between min and max, rounded to the + * `minor` unit, aligned on the `major` unit and using the given scale time `options`. + * Important: this method can return ticks outside the min and max range, it's the + * responsibility of the calling code to clamp values if needed. + */ +function generate(scale, min, max, capacity) { + var adapter = scale._adapter; + var options = scale.options; + var timeOpts = options.time; + var minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, capacity); + var major = determineMajorUnit(minor); + var stepSize = valueOrDefault$c(timeOpts.stepSize, timeOpts.unitStepSize); + var weekday = minor === 'week' ? timeOpts.isoWeekday : false; + var majorTicksEnabled = options.ticks.major.enabled; + var interval = INTERVALS[minor]; + var first = min; + var last = max; + var ticks = []; + var time; + + if (!stepSize) { + stepSize = determineStepSize(min, max, minor, capacity); + } + + // For 'week' unit, handle the first day of week option + if (weekday) { + first = +adapter.startOf(first, 'isoWeek', weekday); + last = +adapter.startOf(last, 'isoWeek', weekday); + } + + // Align first/last ticks on unit + first = +adapter.startOf(first, weekday ? 'day' : minor); + last = +adapter.startOf(last, weekday ? 'day' : minor); + + // Make sure that the last tick include max + if (last < max) { + last = +adapter.add(last, 1, minor); + } + + time = first; + + if (majorTicksEnabled && major && !weekday && !timeOpts.round) { + // Align the first tick on the previous `minor` unit aligned on the `major` unit: + // we first aligned time on the previous `major` unit then add the number of full + // stepSize there is between first and the previous major time. + time = +adapter.startOf(time, major); + time = +adapter.add(time, ~~((first - time) / (interval.size * stepSize)) * stepSize, minor); + } + + for (; time < last; time = +adapter.add(time, stepSize, minor)) { + ticks.push(+time); + } + + ticks.push(+time); + + return ticks; +} + +/** + * Returns the start and end offsets from edges in the form of {start, end} + * where each value is a relative width to the scale and ranges between 0 and 1. + * They add extra margins on the both sides by scaling down the original scale. + * Offsets are added when the `offset` option is true. + */ +function computeOffsets(table, ticks, min, max, options) { + var start = 0; + var end = 0; + var first, last; + + if (options.offset && ticks.length) { + if (!options.time.min) { + first = interpolate$1(table, 'time', ticks[0], 'pos'); + if (ticks.length === 1) { + start = 1 - first; + } else { + start = (interpolate$1(table, 'time', ticks[1], 'pos') - first) / 2; + } + } + if (!options.time.max) { + last = interpolate$1(table, 'time', ticks[ticks.length - 1], 'pos'); + if (ticks.length === 1) { + end = last; + } else { + end = (last - interpolate$1(table, 'time', ticks[ticks.length - 2], 'pos')) / 2; + } + } + } + + return {start: start, end: end}; +} + +function ticksFromTimestamps(scale, values, majorUnit) { + var ticks = []; + var i, ilen, value, major; + + for (i = 0, ilen = values.length; i < ilen; ++i) { + value = values[i]; + major = majorUnit ? value === +scale._adapter.startOf(value, majorUnit) : false; + + ticks.push({ + value: value, + major: major + }); + } + + return ticks; +} + +var defaultConfig$4 = { + position: 'bottom', + + /** + * Data distribution along the scale: + * - 'linear': data are spread according to their time (distances can vary), + * - 'series': data are spread at the same distance from each other. + * @see https://github.com/chartjs/Chart.js/pull/4507 + * @since 2.7.0 + */ + distribution: 'linear', + + /** + * Scale boundary strategy (bypassed by min/max time options) + * - `data`: make sure data are fully visible, ticks outside are removed + * - `ticks`: make sure ticks are fully visible, data outside are truncated + * @see https://github.com/chartjs/Chart.js/pull/4556 + * @since 2.7.0 + */ + bounds: 'data', + + adapters: {}, + time: { + parser: false, // false == a pattern string from https://momentjs.com/docs/#/parsing/string-format/ or a custom callback that converts its argument to a moment + format: false, // DEPRECATED false == date objects, moment object, callback or a pattern string from https://momentjs.com/docs/#/parsing/string-format/ + unit: false, // false == automatic or override with week, month, year, etc. + round: false, // none, or override with week, month, year, etc. + displayFormat: false, // DEPRECATED + isoWeekday: false, // override week start day - see https://momentjs.com/docs/#/get-set/iso-weekday/ + minUnit: 'millisecond', + displayFormats: {} + }, + ticks: { + autoSkip: false, + + /** + * Ticks generation input values: + * - 'auto': generates "optimal" ticks based on scale size and time options. + * - 'data': generates ticks from data (including labels from data {t|x|y} objects). + * - 'labels': generates ticks from user given `data.labels` values ONLY. + * @see https://github.com/chartjs/Chart.js/pull/4507 + * @since 2.7.0 + */ + source: 'auto', + + major: { + enabled: false + } + } +}; + +var scale_time = core_scale.extend({ + initialize: function() { + this.mergeTicksOptions(); + core_scale.prototype.initialize.call(this); + }, + + update: function() { + var me = this; + var options = me.options; + var time = options.time || (options.time = {}); + var adapter = me._adapter = new core_adapters._date(options.adapters.date); + + // DEPRECATIONS: output a message only one time per update + if (time.format) { + console.warn('options.time.format is deprecated and replaced by options.time.parser.'); + } + + // Backward compatibility: before introducing adapter, `displayFormats` was + // supposed to contain *all* unit/string pairs but this can't be resolved + // when loading the scale (adapters are loaded afterward), so let's populate + // missing formats on update + helpers$1.mergeIf(time.displayFormats, adapter.formats()); + + return core_scale.prototype.update.apply(me, arguments); + }, + + /** + * Allows data to be referenced via 't' attribute + */ + getRightValue: function(rawValue) { + if (rawValue && rawValue.t !== undefined) { + rawValue = rawValue.t; + } + return core_scale.prototype.getRightValue.call(this, rawValue); + }, + + determineDataLimits: function() { + var me = this; + var chart = me.chart; + var adapter = me._adapter; + var timeOpts = me.options.time; + var unit = timeOpts.unit || 'day'; + var min = MAX_INTEGER; + var max = MIN_INTEGER; + var timestamps = []; + var datasets = []; + var labels = []; + var i, j, ilen, jlen, data, timestamp; + var dataLabels = chart.data.labels || []; + + // Convert labels to timestamps + for (i = 0, ilen = dataLabels.length; i < ilen; ++i) { + labels.push(parse(me, dataLabels[i])); + } + + // Convert data to timestamps + for (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) { + if (chart.isDatasetVisible(i)) { + data = chart.data.datasets[i].data; + + // Let's consider that all data have the same format. + if (helpers$1.isObject(data[0])) { + datasets[i] = []; + + for (j = 0, jlen = data.length; j < jlen; ++j) { + timestamp = parse(me, data[j]); + timestamps.push(timestamp); + datasets[i][j] = timestamp; + } + } else { + for (j = 0, jlen = labels.length; j < jlen; ++j) { + timestamps.push(labels[j]); + } + datasets[i] = labels.slice(0); + } + } else { + datasets[i] = []; + } + } + + if (labels.length) { + // Sort labels **after** data have been converted + labels = arrayUnique(labels).sort(sorter); + min = Math.min(min, labels[0]); + max = Math.max(max, labels[labels.length - 1]); + } + + if (timestamps.length) { + timestamps = arrayUnique(timestamps).sort(sorter); + min = Math.min(min, timestamps[0]); + max = Math.max(max, timestamps[timestamps.length - 1]); + } + + min = parse(me, timeOpts.min) || min; + max = parse(me, timeOpts.max) || max; + + // In case there is no valid min/max, set limits based on unit time option + min = min === MAX_INTEGER ? +adapter.startOf(Date.now(), unit) : min; + max = max === MIN_INTEGER ? +adapter.endOf(Date.now(), unit) + 1 : max; + + // Make sure that max is strictly higher than min (required by the lookup table) + me.min = Math.min(min, max); + me.max = Math.max(min + 1, max); + + // PRIVATE + me._horizontal = me.isHorizontal(); + me._table = []; + me._timestamps = { + data: timestamps, + datasets: datasets, + labels: labels + }; + }, + + buildTicks: function() { + var me = this; + var min = me.min; + var max = me.max; + var options = me.options; + var timeOpts = options.time; + var timestamps = []; + var ticks = []; + var i, ilen, timestamp; + + switch (options.ticks.source) { + case 'data': + timestamps = me._timestamps.data; + break; + case 'labels': + timestamps = me._timestamps.labels; + break; + case 'auto': + default: + timestamps = generate(me, min, max, me.getLabelCapacity(min), options); + } + + if (options.bounds === 'ticks' && timestamps.length) { + min = timestamps[0]; + max = timestamps[timestamps.length - 1]; + } + + // Enforce limits with user min/max options + min = parse(me, timeOpts.min) || min; + max = parse(me, timeOpts.max) || max; + + // Remove ticks outside the min/max range + for (i = 0, ilen = timestamps.length; i < ilen; ++i) { + timestamp = timestamps[i]; + if (timestamp >= min && timestamp <= max) { + ticks.push(timestamp); + } + } + + me.min = min; + me.max = max; + + // PRIVATE + me._unit = timeOpts.unit || determineUnitForFormatting(me, ticks, timeOpts.minUnit, me.min, me.max); + me._majorUnit = determineMajorUnit(me._unit); + me._table = buildLookupTable(me._timestamps.data, min, max, options.distribution); + me._offsets = computeOffsets(me._table, ticks, min, max, options); + + if (options.ticks.reverse) { + ticks.reverse(); + } + + return ticksFromTimestamps(me, ticks, me._majorUnit); + }, + + getLabelForIndex: function(index, datasetIndex) { + var me = this; + var adapter = me._adapter; + var data = me.chart.data; + var timeOpts = me.options.time; + var label = data.labels && index < data.labels.length ? data.labels[index] : ''; + var value = data.datasets[datasetIndex].data[index]; + + if (helpers$1.isObject(value)) { + label = me.getRightValue(value); + } + if (timeOpts.tooltipFormat) { + return adapter.format(toTimestamp(me, label), timeOpts.tooltipFormat); + } + if (typeof label === 'string') { + return label; + } + return adapter.format(toTimestamp(me, label), timeOpts.displayFormats.datetime); + }, + + /** + * Function to format an individual tick mark + * @private + */ + tickFormatFunction: function(time, index, ticks, format) { + var me = this; + var adapter = me._adapter; + var options = me.options; + var formats = options.time.displayFormats; + var minorFormat = formats[me._unit]; + var majorUnit = me._majorUnit; + var majorFormat = formats[majorUnit]; + var majorTime = +adapter.startOf(time, majorUnit); + var majorTickOpts = options.ticks.major; + var major = majorTickOpts.enabled && majorUnit && majorFormat && time === majorTime; + var label = adapter.format(time, format ? format : major ? majorFormat : minorFormat); + var tickOpts = major ? majorTickOpts : options.ticks.minor; + var formatter = valueOrDefault$c(tickOpts.callback, tickOpts.userCallback); + + return formatter ? formatter(label, index, ticks) : label; + }, + + convertTicksToLabels: function(ticks) { + var labels = []; + var i, ilen; + + for (i = 0, ilen = ticks.length; i < ilen; ++i) { + labels.push(this.tickFormatFunction(ticks[i].value, i, ticks)); + } + + return labels; + }, + + /** + * @private + */ + getPixelForOffset: function(time) { + var me = this; + var isReverse = me.options.ticks.reverse; + var size = me._horizontal ? me.width : me.height; + var start = me._horizontal ? isReverse ? me.right : me.left : isReverse ? me.bottom : me.top; + var pos = interpolate$1(me._table, 'time', time, 'pos'); + var offset = size * (me._offsets.start + pos) / (me._offsets.start + 1 + me._offsets.end); + + return isReverse ? start - offset : start + offset; + }, + + getPixelForValue: function(value, index, datasetIndex) { + var me = this; + var time = null; + + if (index !== undefined && datasetIndex !== undefined) { + time = me._timestamps.datasets[datasetIndex][index]; + } + + if (time === null) { + time = parse(me, value); + } + + if (time !== null) { + return me.getPixelForOffset(time); + } + }, + + getPixelForTick: function(index) { + var ticks = this.getTicks(); + return index >= 0 && index < ticks.length ? + this.getPixelForOffset(ticks[index].value) : + null; + }, + + getValueForPixel: function(pixel) { + var me = this; + var size = me._horizontal ? me.width : me.height; + var start = me._horizontal ? me.left : me.top; + var pos = (size ? (pixel - start) / size : 0) * (me._offsets.start + 1 + me._offsets.start) - me._offsets.end; + var time = interpolate$1(me._table, 'pos', pos, 'time'); + + // DEPRECATION, we should return time directly + return me._adapter._create(time); + }, + + /** + * Crude approximation of what the label width might be + * @private + */ + getLabelWidth: function(label) { + var me = this; + var ticksOpts = me.options.ticks; + var tickLabelWidth = me.ctx.measureText(label).width; + var angle = helpers$1.toRadians(ticksOpts.maxRotation); + var cosRotation = Math.cos(angle); + var sinRotation = Math.sin(angle); + var tickFontSize = valueOrDefault$c(ticksOpts.fontSize, core_defaults.global.defaultFontSize); + + return (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation); + }, + + /** + * @private + */ + getLabelCapacity: function(exampleTime) { + var me = this; + + // pick the longest format (milliseconds) for guestimation + var format = me.options.time.displayFormats.millisecond; + var exampleLabel = me.tickFormatFunction(exampleTime, 0, [], format); + var tickLabelWidth = me.getLabelWidth(exampleLabel); + var innerWidth = me.isHorizontal() ? me.width : me.height; + var capacity = Math.floor(innerWidth / tickLabelWidth); + + return capacity > 0 ? capacity : 1; + } +}); + +// INTERNAL: static default options, registered in src/index.js +var _defaults$4 = defaultConfig$4; +scale_time._defaults = _defaults$4; + +var scales = { + category: scale_category, + linear: scale_linear, + logarithmic: scale_logarithmic, + radialLinear: scale_radialLinear, + time: scale_time +}; + +var moment = createCommonjsModule(function (module, exports) { +(function (global, factory) { + module.exports = factory(); +}(commonjsGlobal, (function () { + var hookCallback; + + function hooks () { + return hookCallback.apply(null, arguments); + } + + // This is done to register the method called with moment() + // without creating circular dependencies. + function setHookCallback (callback) { + hookCallback = callback; + } + + function isArray(input) { + return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]'; + } + + function isObject(input) { + // IE8 will treat undefined and null as object if it wasn't for + // input != null + return input != null && Object.prototype.toString.call(input) === '[object Object]'; + } + + function isObjectEmpty(obj) { + if (Object.getOwnPropertyNames) { + return (Object.getOwnPropertyNames(obj).length === 0); + } else { + var k; + for (k in obj) { + if (obj.hasOwnProperty(k)) { + return false; + } + } + return true; + } + } + + function isUndefined(input) { + return input === void 0; + } + + function isNumber(input) { + return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]'; + } + + function isDate(input) { + return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; + } + + function map(arr, fn) { + var res = [], i; + for (i = 0; i < arr.length; ++i) { + res.push(fn(arr[i], i)); + } + return res; + } + + function hasOwnProp(a, b) { + return Object.prototype.hasOwnProperty.call(a, b); + } + + function extend(a, b) { + for (var i in b) { + if (hasOwnProp(b, i)) { + a[i] = b[i]; + } + } + + if (hasOwnProp(b, 'toString')) { + a.toString = b.toString; + } + + if (hasOwnProp(b, 'valueOf')) { + a.valueOf = b.valueOf; + } + + return a; + } + + function createUTC (input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, true).utc(); + } + + function defaultParsingFlags() { + // We need to deep clone this object. + return { + empty : false, + unusedTokens : [], + unusedInput : [], + overflow : -2, + charsLeftOver : 0, + nullInput : false, + invalidMonth : null, + invalidFormat : false, + userInvalidated : false, + iso : false, + parsedDateParts : [], + meridiem : null, + rfc2822 : false, + weekdayMismatch : false + }; + } + + function getParsingFlags(m) { + if (m._pf == null) { + m._pf = defaultParsingFlags(); + } + return m._pf; + } + + var some; + if (Array.prototype.some) { + some = Array.prototype.some; + } else { + some = function (fun) { + var t = Object(this); + var len = t.length >>> 0; + + for (var i = 0; i < len; i++) { + if (i in t && fun.call(this, t[i], i, t)) { + return true; + } + } + + return false; + }; + } + + function isValid(m) { + if (m._isValid == null) { + var flags = getParsingFlags(m); + var parsedParts = some.call(flags.parsedDateParts, function (i) { + return i != null; + }); + var isNowValid = !isNaN(m._d.getTime()) && + flags.overflow < 0 && + !flags.empty && + !flags.invalidMonth && + !flags.invalidWeekday && + !flags.weekdayMismatch && + !flags.nullInput && + !flags.invalidFormat && + !flags.userInvalidated && + (!flags.meridiem || (flags.meridiem && parsedParts)); + + if (m._strict) { + isNowValid = isNowValid && + flags.charsLeftOver === 0 && + flags.unusedTokens.length === 0 && + flags.bigHour === undefined; + } + + if (Object.isFrozen == null || !Object.isFrozen(m)) { + m._isValid = isNowValid; + } + else { + return isNowValid; + } + } + return m._isValid; + } + + function createInvalid (flags) { + var m = createUTC(NaN); + if (flags != null) { + extend(getParsingFlags(m), flags); + } + else { + getParsingFlags(m).userInvalidated = true; + } + + return m; + } + + // Plugins that add properties should also add the key here (null value), + // so we can properly clone ourselves. + var momentProperties = hooks.momentProperties = []; + + function copyConfig(to, from) { + var i, prop, val; + + if (!isUndefined(from._isAMomentObject)) { + to._isAMomentObject = from._isAMomentObject; + } + if (!isUndefined(from._i)) { + to._i = from._i; + } + if (!isUndefined(from._f)) { + to._f = from._f; + } + if (!isUndefined(from._l)) { + to._l = from._l; + } + if (!isUndefined(from._strict)) { + to._strict = from._strict; + } + if (!isUndefined(from._tzm)) { + to._tzm = from._tzm; + } + if (!isUndefined(from._isUTC)) { + to._isUTC = from._isUTC; + } + if (!isUndefined(from._offset)) { + to._offset = from._offset; + } + if (!isUndefined(from._pf)) { + to._pf = getParsingFlags(from); + } + if (!isUndefined(from._locale)) { + to._locale = from._locale; + } + + if (momentProperties.length > 0) { + for (i = 0; i < momentProperties.length; i++) { + prop = momentProperties[i]; + val = from[prop]; + if (!isUndefined(val)) { + to[prop] = val; + } + } + } + + return to; + } + + var updateInProgress = false; + + // Moment prototype object + function Moment(config) { + copyConfig(this, config); + this._d = new Date(config._d != null ? config._d.getTime() : NaN); + if (!this.isValid()) { + this._d = new Date(NaN); + } + // Prevent infinite loop in case updateOffset creates new moment + // objects. + if (updateInProgress === false) { + updateInProgress = true; + hooks.updateOffset(this); + updateInProgress = false; + } + } + + function isMoment (obj) { + return obj instanceof Moment || (obj != null && obj._isAMomentObject != null); + } + + function absFloor (number) { + if (number < 0) { + // -0 -> 0 + return Math.ceil(number) || 0; + } else { + return Math.floor(number); + } + } + + function toInt(argumentForCoercion) { + var coercedNumber = +argumentForCoercion, + value = 0; + + if (coercedNumber !== 0 && isFinite(coercedNumber)) { + value = absFloor(coercedNumber); + } + + return value; + } + + // compare two arrays, return the number of differences + function compareArrays(array1, array2, dontConvert) { + var len = Math.min(array1.length, array2.length), + lengthDiff = Math.abs(array1.length - array2.length), + diffs = 0, + i; + for (i = 0; i < len; i++) { + if ((dontConvert && array1[i] !== array2[i]) || + (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { + diffs++; + } + } + return diffs + lengthDiff; + } + + function warn(msg) { + if (hooks.suppressDeprecationWarnings === false && + (typeof console !== 'undefined') && console.warn) { + console.warn('Deprecation warning: ' + msg); + } + } + + function deprecate(msg, fn) { + var firstTime = true; + + return extend(function () { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(null, msg); + } + if (firstTime) { + var args = []; + var arg; + for (var i = 0; i < arguments.length; i++) { + arg = ''; + if (typeof arguments[i] === 'object') { + arg += '\n[' + i + '] '; + for (var key in arguments[0]) { + arg += key + ': ' + arguments[0][key] + ', '; + } + arg = arg.slice(0, -2); // Remove trailing comma and space + } else { + arg = arguments[i]; + } + args.push(arg); + } + warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + (new Error()).stack); + firstTime = false; + } + return fn.apply(this, arguments); + }, fn); + } + + var deprecations = {}; + + function deprecateSimple(name, msg) { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(name, msg); + } + if (!deprecations[name]) { + warn(msg); + deprecations[name] = true; + } + } + + hooks.suppressDeprecationWarnings = false; + hooks.deprecationHandler = null; + + function isFunction(input) { + return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; + } + + function set (config) { + var prop, i; + for (i in config) { + prop = config[i]; + if (isFunction(prop)) { + this[i] = prop; + } else { + this['_' + i] = prop; + } + } + this._config = config; + // Lenient ordinal parsing accepts just a number in addition to + // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. + // TODO: Remove "ordinalParse" fallback in next major release. + this._dayOfMonthOrdinalParseLenient = new RegExp( + (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + + '|' + (/\d{1,2}/).source); + } + + function mergeConfigs(parentConfig, childConfig) { + var res = extend({}, parentConfig), prop; + for (prop in childConfig) { + if (hasOwnProp(childConfig, prop)) { + if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { + res[prop] = {}; + extend(res[prop], parentConfig[prop]); + extend(res[prop], childConfig[prop]); + } else if (childConfig[prop] != null) { + res[prop] = childConfig[prop]; + } else { + delete res[prop]; + } + } + } + for (prop in parentConfig) { + if (hasOwnProp(parentConfig, prop) && + !hasOwnProp(childConfig, prop) && + isObject(parentConfig[prop])) { + // make sure changes to properties don't modify parent config + res[prop] = extend({}, res[prop]); + } + } + return res; + } + + function Locale(config) { + if (config != null) { + this.set(config); + } + } + + var keys; + + if (Object.keys) { + keys = Object.keys; + } else { + keys = function (obj) { + var i, res = []; + for (i in obj) { + if (hasOwnProp(obj, i)) { + res.push(i); + } + } + return res; + }; + } + + var defaultCalendar = { + sameDay : '[Today at] LT', + nextDay : '[Tomorrow at] LT', + nextWeek : 'dddd [at] LT', + lastDay : '[Yesterday at] LT', + lastWeek : '[Last] dddd [at] LT', + sameElse : 'L' + }; + + function calendar (key, mom, now) { + var output = this._calendar[key] || this._calendar['sameElse']; + return isFunction(output) ? output.call(mom, now) : output; + } + + var defaultLongDateFormat = { + LTS : 'h:mm:ss A', + LT : 'h:mm A', + L : 'MM/DD/YYYY', + LL : 'MMMM D, YYYY', + LLL : 'MMMM D, YYYY h:mm A', + LLLL : 'dddd, MMMM D, YYYY h:mm A' + }; + + function longDateFormat (key) { + var format = this._longDateFormat[key], + formatUpper = this._longDateFormat[key.toUpperCase()]; + + if (format || !formatUpper) { + return format; + } + + this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) { + return val.slice(1); + }); + + return this._longDateFormat[key]; + } + + var defaultInvalidDate = 'Invalid date'; + + function invalidDate () { + return this._invalidDate; + } + + var defaultOrdinal = '%d'; + var defaultDayOfMonthOrdinalParse = /\d{1,2}/; + + function ordinal (number) { + return this._ordinal.replace('%d', number); + } + + var defaultRelativeTime = { + future : 'in %s', + past : '%s ago', + s : 'a few seconds', + ss : '%d seconds', + m : 'a minute', + mm : '%d minutes', + h : 'an hour', + hh : '%d hours', + d : 'a day', + dd : '%d days', + M : 'a month', + MM : '%d months', + y : 'a year', + yy : '%d years' + }; + + function relativeTime (number, withoutSuffix, string, isFuture) { + var output = this._relativeTime[string]; + return (isFunction(output)) ? + output(number, withoutSuffix, string, isFuture) : + output.replace(/%d/i, number); + } + + function pastFuture (diff, output) { + var format = this._relativeTime[diff > 0 ? 'future' : 'past']; + return isFunction(format) ? format(output) : format.replace(/%s/i, output); + } + + var aliases = {}; + + function addUnitAlias (unit, shorthand) { + var lowerCase = unit.toLowerCase(); + aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; + } + + function normalizeUnits(units) { + return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined; + } + + function normalizeObjectUnits(inputObject) { + var normalizedInput = {}, + normalizedProp, + prop; + + for (prop in inputObject) { + if (hasOwnProp(inputObject, prop)) { + normalizedProp = normalizeUnits(prop); + if (normalizedProp) { + normalizedInput[normalizedProp] = inputObject[prop]; + } + } + } + + return normalizedInput; + } + + var priorities = {}; + + function addUnitPriority(unit, priority) { + priorities[unit] = priority; + } + + function getPrioritizedUnits(unitsObj) { + var units = []; + for (var u in unitsObj) { + units.push({unit: u, priority: priorities[u]}); + } + units.sort(function (a, b) { + return a.priority - b.priority; + }); + return units; + } + + function zeroFill(number, targetLength, forceSign) { + var absNumber = '' + Math.abs(number), + zerosToFill = targetLength - absNumber.length, + sign = number >= 0; + return (sign ? (forceSign ? '+' : '') : '-') + + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; + } + + var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g; + + var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g; + + var formatFunctions = {}; + + var formatTokenFunctions = {}; + + // token: 'M' + // padded: ['MM', 2] + // ordinal: 'Mo' + // callback: function () { this.month() + 1 } + function addFormatToken (token, padded, ordinal, callback) { + var func = callback; + if (typeof callback === 'string') { + func = function () { + return this[callback](); + }; + } + if (token) { + formatTokenFunctions[token] = func; + } + if (padded) { + formatTokenFunctions[padded[0]] = function () { + return zeroFill(func.apply(this, arguments), padded[1], padded[2]); + }; + } + if (ordinal) { + formatTokenFunctions[ordinal] = function () { + return this.localeData().ordinal(func.apply(this, arguments), token); + }; + } + } + + function removeFormattingTokens(input) { + if (input.match(/\[[\s\S]/)) { + return input.replace(/^\[|\]$/g, ''); + } + return input.replace(/\\/g, ''); + } + + function makeFormatFunction(format) { + var array = format.match(formattingTokens), i, length; + + for (i = 0, length = array.length; i < length; i++) { + if (formatTokenFunctions[array[i]]) { + array[i] = formatTokenFunctions[array[i]]; + } else { + array[i] = removeFormattingTokens(array[i]); + } + } + + return function (mom) { + var output = '', i; + for (i = 0; i < length; i++) { + output += isFunction(array[i]) ? array[i].call(mom, format) : array[i]; + } + return output; + }; + } + + // format date using native date object + function formatMoment(m, format) { + if (!m.isValid()) { + return m.localeData().invalidDate(); + } + + format = expandFormat(format, m.localeData()); + formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format); + + return formatFunctions[format](m); + } + + function expandFormat(format, locale) { + var i = 5; + + function replaceLongDateFormatTokens(input) { + return locale.longDateFormat(input) || input; + } + + localFormattingTokens.lastIndex = 0; + while (i >= 0 && localFormattingTokens.test(format)) { + format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); + localFormattingTokens.lastIndex = 0; + i -= 1; + } + + return format; + } + + var match1 = /\d/; // 0 - 9 + var match2 = /\d\d/; // 00 - 99 + var match3 = /\d{3}/; // 000 - 999 + var match4 = /\d{4}/; // 0000 - 9999 + var match6 = /[+-]?\d{6}/; // -999999 - 999999 + var match1to2 = /\d\d?/; // 0 - 99 + var match3to4 = /\d\d\d\d?/; // 999 - 9999 + var match5to6 = /\d\d\d\d\d\d?/; // 99999 - 999999 + var match1to3 = /\d{1,3}/; // 0 - 999 + var match1to4 = /\d{1,4}/; // 0 - 9999 + var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999 + + var matchUnsigned = /\d+/; // 0 - inf + var matchSigned = /[+-]?\d+/; // -inf - inf + + var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z + var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z + + var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123 + + // any word (or two) characters or numbers including two/three word month in arabic. + // includes scottish gaelic two word and hyphenated months + var matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i; + + var regexes = {}; + + function addRegexToken (token, regex, strictRegex) { + regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) { + return (isStrict && strictRegex) ? strictRegex : regex; + }; + } + + function getParseRegexForToken (token, config) { + if (!hasOwnProp(regexes, token)) { + return new RegExp(unescapeFormat(token)); + } + + return regexes[token](config._strict, config._locale); + } + + // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript + function unescapeFormat(s) { + return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { + return p1 || p2 || p3 || p4; + })); + } + + function regexEscape(s) { + return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); + } + + var tokens = {}; + + function addParseToken (token, callback) { + var i, func = callback; + if (typeof token === 'string') { + token = [token]; + } + if (isNumber(callback)) { + func = function (input, array) { + array[callback] = toInt(input); + }; + } + for (i = 0; i < token.length; i++) { + tokens[token[i]] = func; + } + } + + function addWeekParseToken (token, callback) { + addParseToken(token, function (input, array, config, token) { + config._w = config._w || {}; + callback(input, config._w, config, token); + }); + } + + function addTimeToArrayFromToken(token, input, config) { + if (input != null && hasOwnProp(tokens, token)) { + tokens[token](input, config._a, config, token); + } + } + + var YEAR = 0; + var MONTH = 1; + var DATE = 2; + var HOUR = 3; + var MINUTE = 4; + var SECOND = 5; + var MILLISECOND = 6; + var WEEK = 7; + var WEEKDAY = 8; + + // FORMATTING + + addFormatToken('Y', 0, 0, function () { + var y = this.year(); + return y <= 9999 ? '' + y : '+' + y; + }); + + addFormatToken(0, ['YY', 2], 0, function () { + return this.year() % 100; + }); + + addFormatToken(0, ['YYYY', 4], 0, 'year'); + addFormatToken(0, ['YYYYY', 5], 0, 'year'); + addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); + + // ALIASES + + addUnitAlias('year', 'y'); + + // PRIORITIES + + addUnitPriority('year', 1); + + // PARSING + + addRegexToken('Y', matchSigned); + addRegexToken('YY', match1to2, match2); + addRegexToken('YYYY', match1to4, match4); + addRegexToken('YYYYY', match1to6, match6); + addRegexToken('YYYYYY', match1to6, match6); + + addParseToken(['YYYYY', 'YYYYYY'], YEAR); + addParseToken('YYYY', function (input, array) { + array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); + }); + addParseToken('YY', function (input, array) { + array[YEAR] = hooks.parseTwoDigitYear(input); + }); + addParseToken('Y', function (input, array) { + array[YEAR] = parseInt(input, 10); + }); + + // HELPERS + + function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; + } + + function isLeapYear(year) { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; + } + + // HOOKS + + hooks.parseTwoDigitYear = function (input) { + return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); + }; + + // MOMENTS + + var getSetYear = makeGetSet('FullYear', true); + + function getIsLeapYear () { + return isLeapYear(this.year()); + } + + function makeGetSet (unit, keepTime) { + return function (value) { + if (value != null) { + set$1(this, unit, value); + hooks.updateOffset(this, keepTime); + return this; + } else { + return get(this, unit); + } + }; + } + + function get (mom, unit) { + return mom.isValid() ? + mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN; + } + + function set$1 (mom, unit, value) { + if (mom.isValid() && !isNaN(value)) { + if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) { + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month())); + } + else { + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); + } + } + } + + // MOMENTS + + function stringGet (units) { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](); + } + return this; + } + + + function stringSet (units, value) { + if (typeof units === 'object') { + units = normalizeObjectUnits(units); + var prioritized = getPrioritizedUnits(units); + for (var i = 0; i < prioritized.length; i++) { + this[prioritized[i].unit](units[prioritized[i].unit]); + } + } else { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](value); + } + } + return this; + } + + function mod(n, x) { + return ((n % x) + x) % x; + } + + var indexOf; + + if (Array.prototype.indexOf) { + indexOf = Array.prototype.indexOf; + } else { + indexOf = function (o) { + // I know + var i; + for (i = 0; i < this.length; ++i) { + if (this[i] === o) { + return i; + } + } + return -1; + }; + } + + function daysInMonth(year, month) { + if (isNaN(year) || isNaN(month)) { + return NaN; + } + var modMonth = mod(month, 12); + year += (month - modMonth) / 12; + return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2); + } + + // FORMATTING + + addFormatToken('M', ['MM', 2], 'Mo', function () { + return this.month() + 1; + }); + + addFormatToken('MMM', 0, 0, function (format) { + return this.localeData().monthsShort(this, format); + }); + + addFormatToken('MMMM', 0, 0, function (format) { + return this.localeData().months(this, format); + }); + + // ALIASES + + addUnitAlias('month', 'M'); + + // PRIORITY + + addUnitPriority('month', 8); + + // PARSING + + addRegexToken('M', match1to2); + addRegexToken('MM', match1to2, match2); + addRegexToken('MMM', function (isStrict, locale) { + return locale.monthsShortRegex(isStrict); + }); + addRegexToken('MMMM', function (isStrict, locale) { + return locale.monthsRegex(isStrict); + }); + + addParseToken(['M', 'MM'], function (input, array) { + array[MONTH] = toInt(input) - 1; + }); + + addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { + var month = config._locale.monthsParse(input, token, config._strict); + // if we didn't find a month name, mark the date as invalid. + if (month != null) { + array[MONTH] = month; + } else { + getParsingFlags(config).invalidMonth = input; + } + }); + + // LOCALES + + var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/; + var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'); + function localeMonths (m, format) { + if (!m) { + return isArray(this._months) ? this._months : + this._months['standalone']; + } + return isArray(this._months) ? this._months[m.month()] : + this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()]; + } + + var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'); + function localeMonthsShort (m, format) { + if (!m) { + return isArray(this._monthsShort) ? this._monthsShort : + this._monthsShort['standalone']; + } + return isArray(this._monthsShort) ? this._monthsShort[m.month()] : + this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; + } + + function handleStrictParse(monthName, format, strict) { + var i, ii, mom, llc = monthName.toLocaleLowerCase(); + if (!this._monthsParse) { + // this is not used + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + for (i = 0; i < 12; ++i) { + mom = createUTC([2000, i]); + this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase(); + this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } + } + + function localeMonthsParse (monthName, format, strict) { + var i, mom, regex; + + if (this._monthsParseExact) { + return handleStrictParse.call(this, monthName, format, strict); + } + + if (!this._monthsParse) { + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + } + + // TODO: add sorting + // Sorting makes sure if one month (or abbr) is a prefix of another + // see sorting in computeMonthsParse + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, i]); + if (strict && !this._longMonthsParse[i]) { + this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i'); + this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i'); + } + if (!strict && !this._monthsParse[i]) { + regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); + this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) { + return i; + } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) { + return i; + } else if (!strict && this._monthsParse[i].test(monthName)) { + return i; + } + } + } + + // MOMENTS + + function setMonth (mom, value) { + var dayOfMonth; + + if (!mom.isValid()) { + // No op + return mom; + } + + if (typeof value === 'string') { + if (/^\d+$/.test(value)) { + value = toInt(value); + } else { + value = mom.localeData().monthsParse(value); + // TODO: Another silent failure? + if (!isNumber(value)) { + return mom; + } + } + } + + dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); + return mom; + } + + function getSetMonth (value) { + if (value != null) { + setMonth(this, value); + hooks.updateOffset(this, true); + return this; + } else { + return get(this, 'Month'); + } + } + + function getDaysInMonth () { + return daysInMonth(this.year(), this.month()); + } + + var defaultMonthsShortRegex = matchWord; + function monthsShortRegex (isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsShortStrictRegex; + } else { + return this._monthsShortRegex; + } + } else { + if (!hasOwnProp(this, '_monthsShortRegex')) { + this._monthsShortRegex = defaultMonthsShortRegex; + } + return this._monthsShortStrictRegex && isStrict ? + this._monthsShortStrictRegex : this._monthsShortRegex; + } + } + + var defaultMonthsRegex = matchWord; + function monthsRegex (isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsStrictRegex; + } else { + return this._monthsRegex; + } + } else { + if (!hasOwnProp(this, '_monthsRegex')) { + this._monthsRegex = defaultMonthsRegex; + } + return this._monthsStrictRegex && isStrict ? + this._monthsStrictRegex : this._monthsRegex; + } + } + + function computeMonthsParse () { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var shortPieces = [], longPieces = [], mixedPieces = [], + i, mom; + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, i]); + shortPieces.push(this.monthsShort(mom, '')); + longPieces.push(this.months(mom, '')); + mixedPieces.push(this.months(mom, '')); + mixedPieces.push(this.monthsShort(mom, '')); + } + // Sorting makes sure if one month (or abbr) is a prefix of another it + // will match the longer piece. + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + for (i = 0; i < 12; i++) { + shortPieces[i] = regexEscape(shortPieces[i]); + longPieces[i] = regexEscape(longPieces[i]); + } + for (i = 0; i < 24; i++) { + mixedPieces[i] = regexEscape(mixedPieces[i]); + } + + this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._monthsShortRegex = this._monthsRegex; + this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); + this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); + } + + function createDate (y, m, d, h, M, s, ms) { + // can't just apply() to create a date: + // https://stackoverflow.com/q/181348 + var date; + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + date = new Date(y + 400, m, d, h, M, s, ms); + if (isFinite(date.getFullYear())) { + date.setFullYear(y); + } + } else { + date = new Date(y, m, d, h, M, s, ms); + } + + return date; + } + + function createUTCDate (y) { + var date; + // the Date.UTC function remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + var args = Array.prototype.slice.call(arguments); + // preserve leap years using a full 400 year cycle, then reset + args[0] = y + 400; + date = new Date(Date.UTC.apply(null, args)); + if (isFinite(date.getUTCFullYear())) { + date.setUTCFullYear(y); + } + } else { + date = new Date(Date.UTC.apply(null, arguments)); + } + + return date; + } + + // start-of-first-week - start-of-year + function firstWeekOffset(year, dow, doy) { + var // first-week day -- which january is always in the first week (4 for iso, 1 for other) + fwd = 7 + dow - doy, + // first-week day local weekday -- which local weekday is fwd + fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; + + return -fwdlw + fwd - 1; + } + + // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday + function dayOfYearFromWeeks(year, week, weekday, dow, doy) { + var localWeekday = (7 + weekday - dow) % 7, + weekOffset = firstWeekOffset(year, dow, doy), + dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, + resYear, resDayOfYear; + + if (dayOfYear <= 0) { + resYear = year - 1; + resDayOfYear = daysInYear(resYear) + dayOfYear; + } else if (dayOfYear > daysInYear(year)) { + resYear = year + 1; + resDayOfYear = dayOfYear - daysInYear(year); + } else { + resYear = year; + resDayOfYear = dayOfYear; + } + + return { + year: resYear, + dayOfYear: resDayOfYear + }; + } + + function weekOfYear(mom, dow, doy) { + var weekOffset = firstWeekOffset(mom.year(), dow, doy), + week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, + resWeek, resYear; + + if (week < 1) { + resYear = mom.year() - 1; + resWeek = week + weeksInYear(resYear, dow, doy); + } else if (week > weeksInYear(mom.year(), dow, doy)) { + resWeek = week - weeksInYear(mom.year(), dow, doy); + resYear = mom.year() + 1; + } else { + resYear = mom.year(); + resWeek = week; + } + + return { + week: resWeek, + year: resYear + }; + } + + function weeksInYear(year, dow, doy) { + var weekOffset = firstWeekOffset(year, dow, doy), + weekOffsetNext = firstWeekOffset(year + 1, dow, doy); + return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; + } + + // FORMATTING + + addFormatToken('w', ['ww', 2], 'wo', 'week'); + addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); + + // ALIASES + + addUnitAlias('week', 'w'); + addUnitAlias('isoWeek', 'W'); + + // PRIORITIES + + addUnitPriority('week', 5); + addUnitPriority('isoWeek', 5); + + // PARSING + + addRegexToken('w', match1to2); + addRegexToken('ww', match1to2, match2); + addRegexToken('W', match1to2); + addRegexToken('WW', match1to2, match2); + + addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { + week[token.substr(0, 1)] = toInt(input); + }); + + // HELPERS + + // LOCALES + + function localeWeek (mom) { + return weekOfYear(mom, this._week.dow, this._week.doy).week; + } + + var defaultLocaleWeek = { + dow : 0, // Sunday is the first day of the week. + doy : 6 // The week that contains Jan 6th is the first week of the year. + }; + + function localeFirstDayOfWeek () { + return this._week.dow; + } + + function localeFirstDayOfYear () { + return this._week.doy; + } + + // MOMENTS + + function getSetWeek (input) { + var week = this.localeData().week(this); + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + function getSetISOWeek (input) { + var week = weekOfYear(this, 1, 4).week; + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + // FORMATTING + + addFormatToken('d', 0, 'do', 'day'); + + addFormatToken('dd', 0, 0, function (format) { + return this.localeData().weekdaysMin(this, format); + }); + + addFormatToken('ddd', 0, 0, function (format) { + return this.localeData().weekdaysShort(this, format); + }); + + addFormatToken('dddd', 0, 0, function (format) { + return this.localeData().weekdays(this, format); + }); + + addFormatToken('e', 0, 0, 'weekday'); + addFormatToken('E', 0, 0, 'isoWeekday'); + + // ALIASES + + addUnitAlias('day', 'd'); + addUnitAlias('weekday', 'e'); + addUnitAlias('isoWeekday', 'E'); + + // PRIORITY + addUnitPriority('day', 11); + addUnitPriority('weekday', 11); + addUnitPriority('isoWeekday', 11); + + // PARSING + + addRegexToken('d', match1to2); + addRegexToken('e', match1to2); + addRegexToken('E', match1to2); + addRegexToken('dd', function (isStrict, locale) { + return locale.weekdaysMinRegex(isStrict); + }); + addRegexToken('ddd', function (isStrict, locale) { + return locale.weekdaysShortRegex(isStrict); + }); + addRegexToken('dddd', function (isStrict, locale) { + return locale.weekdaysRegex(isStrict); + }); + + addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { + var weekday = config._locale.weekdaysParse(input, token, config._strict); + // if we didn't get a weekday name, mark the date as invalid + if (weekday != null) { + week.d = weekday; + } else { + getParsingFlags(config).invalidWeekday = input; + } + }); + + addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { + week[token] = toInt(input); + }); + + // HELPERS + + function parseWeekday(input, locale) { + if (typeof input !== 'string') { + return input; + } + + if (!isNaN(input)) { + return parseInt(input, 10); + } + + input = locale.weekdaysParse(input); + if (typeof input === 'number') { + return input; + } + + return null; + } + + function parseIsoWeekday(input, locale) { + if (typeof input === 'string') { + return locale.weekdaysParse(input) % 7 || 7; + } + return isNaN(input) ? null : input; + } + + // LOCALES + function shiftWeekdays (ws, n) { + return ws.slice(n, 7).concat(ws.slice(0, n)); + } + + var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'); + function localeWeekdays (m, format) { + var weekdays = isArray(this._weekdays) ? this._weekdays : + this._weekdays[(m && m !== true && this._weekdays.isFormat.test(format)) ? 'format' : 'standalone']; + return (m === true) ? shiftWeekdays(weekdays, this._week.dow) + : (m) ? weekdays[m.day()] : weekdays; + } + + var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'); + function localeWeekdaysShort (m) { + return (m === true) ? shiftWeekdays(this._weekdaysShort, this._week.dow) + : (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort; + } + + var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'); + function localeWeekdaysMin (m) { + return (m === true) ? shiftWeekdays(this._weekdaysMin, this._week.dow) + : (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin; + } + + function handleStrictParse$1(weekdayName, format, strict) { + var i, ii, mom, llc = weekdayName.toLocaleLowerCase(); + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._shortWeekdaysParse = []; + this._minWeekdaysParse = []; + + for (i = 0; i < 7; ++i) { + mom = createUTC([2000, 1]).day(i); + this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase(); + this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase(); + this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } + } + + function localeWeekdaysParse (weekdayName, format, strict) { + var i, mom, regex; + + if (this._weekdaysParseExact) { + return handleStrictParse$1.call(this, weekdayName, format, strict); + } + + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._minWeekdaysParse = []; + this._shortWeekdaysParse = []; + this._fullWeekdaysParse = []; + } + + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + + mom = createUTC([2000, 1]).day(i); + if (strict && !this._fullWeekdaysParse[i]) { + this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', 'i'); + this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', 'i'); + this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', 'i'); + } + if (!this._weekdaysParse[i]) { + regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); + this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { + return i; + } + } + } + + // MOMENTS + + function getSetDayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); + if (input != null) { + input = parseWeekday(input, this.localeData()); + return this.add(input - day, 'd'); + } else { + return day; + } + } + + function getSetLocaleDayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; + return input == null ? weekday : this.add(input - weekday, 'd'); + } + + function getSetISODayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + + // behaves the same as moment#day except + // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) + // as a setter, sunday should belong to the previous week. + + if (input != null) { + var weekday = parseIsoWeekday(input, this.localeData()); + return this.day(this.day() % 7 ? weekday : weekday - 7); + } else { + return this.day() || 7; + } + } + + var defaultWeekdaysRegex = matchWord; + function weekdaysRegex (isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysStrictRegex; + } else { + return this._weekdaysRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysRegex')) { + this._weekdaysRegex = defaultWeekdaysRegex; + } + return this._weekdaysStrictRegex && isStrict ? + this._weekdaysStrictRegex : this._weekdaysRegex; + } + } + + var defaultWeekdaysShortRegex = matchWord; + function weekdaysShortRegex (isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysShortStrictRegex; + } else { + return this._weekdaysShortRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysShortRegex')) { + this._weekdaysShortRegex = defaultWeekdaysShortRegex; + } + return this._weekdaysShortStrictRegex && isStrict ? + this._weekdaysShortStrictRegex : this._weekdaysShortRegex; + } + } + + var defaultWeekdaysMinRegex = matchWord; + function weekdaysMinRegex (isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysMinStrictRegex; + } else { + return this._weekdaysMinRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysMinRegex')) { + this._weekdaysMinRegex = defaultWeekdaysMinRegex; + } + return this._weekdaysMinStrictRegex && isStrict ? + this._weekdaysMinStrictRegex : this._weekdaysMinRegex; + } + } + + + function computeWeekdaysParse () { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [], + i, mom, minp, shortp, longp; + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, 1]).day(i); + minp = this.weekdaysMin(mom, ''); + shortp = this.weekdaysShort(mom, ''); + longp = this.weekdays(mom, ''); + minPieces.push(minp); + shortPieces.push(shortp); + longPieces.push(longp); + mixedPieces.push(minp); + mixedPieces.push(shortp); + mixedPieces.push(longp); + } + // Sorting makes sure if one weekday (or abbr) is a prefix of another it + // will match the longer piece. + minPieces.sort(cmpLenRev); + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + for (i = 0; i < 7; i++) { + shortPieces[i] = regexEscape(shortPieces[i]); + longPieces[i] = regexEscape(longPieces[i]); + mixedPieces[i] = regexEscape(mixedPieces[i]); + } + + this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._weekdaysShortRegex = this._weekdaysRegex; + this._weekdaysMinRegex = this._weekdaysRegex; + + this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); + this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); + this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i'); + } + + // FORMATTING + + function hFormat() { + return this.hours() % 12 || 12; + } + + function kFormat() { + return this.hours() || 24; + } + + addFormatToken('H', ['HH', 2], 0, 'hour'); + addFormatToken('h', ['hh', 2], 0, hFormat); + addFormatToken('k', ['kk', 2], 0, kFormat); + + addFormatToken('hmm', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); + }); + + addFormatToken('hmmss', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2); + }); + + addFormatToken('Hmm', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2); + }); + + addFormatToken('Hmmss', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2); + }); + + function meridiem (token, lowercase) { + addFormatToken(token, 0, 0, function () { + return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); + }); + } + + meridiem('a', true); + meridiem('A', false); + + // ALIASES + + addUnitAlias('hour', 'h'); + + // PRIORITY + addUnitPriority('hour', 13); + + // PARSING + + function matchMeridiem (isStrict, locale) { + return locale._meridiemParse; + } + + addRegexToken('a', matchMeridiem); + addRegexToken('A', matchMeridiem); + addRegexToken('H', match1to2); + addRegexToken('h', match1to2); + addRegexToken('k', match1to2); + addRegexToken('HH', match1to2, match2); + addRegexToken('hh', match1to2, match2); + addRegexToken('kk', match1to2, match2); + + addRegexToken('hmm', match3to4); + addRegexToken('hmmss', match5to6); + addRegexToken('Hmm', match3to4); + addRegexToken('Hmmss', match5to6); + + addParseToken(['H', 'HH'], HOUR); + addParseToken(['k', 'kk'], function (input, array, config) { + var kInput = toInt(input); + array[HOUR] = kInput === 24 ? 0 : kInput; + }); + addParseToken(['a', 'A'], function (input, array, config) { + config._isPm = config._locale.isPM(input); + config._meridiem = input; + }); + addParseToken(['h', 'hh'], function (input, array, config) { + array[HOUR] = toInt(input); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmmss', function (input, array, config) { + var pos1 = input.length - 4; + var pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('Hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + }); + addParseToken('Hmmss', function (input, array, config) { + var pos1 = input.length - 4; + var pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + }); + + // LOCALES + + function localeIsPM (input) { + // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays + // Using charAt should be more compatible. + return ((input + '').toLowerCase().charAt(0) === 'p'); + } + + var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i; + function localeMeridiem (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'pm' : 'PM'; + } else { + return isLower ? 'am' : 'AM'; + } + } + + + // MOMENTS + + // Setting the hour should keep the time, because the user explicitly + // specified which hour they want. So trying to maintain the same hour (in + // a new timezone) makes sense. Adding/subtracting hours does not follow + // this rule. + var getSetHour = makeGetSet('Hours', true); + + var baseConfig = { + calendar: defaultCalendar, + longDateFormat: defaultLongDateFormat, + invalidDate: defaultInvalidDate, + ordinal: defaultOrdinal, + dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, + relativeTime: defaultRelativeTime, + + months: defaultLocaleMonths, + monthsShort: defaultLocaleMonthsShort, + + week: defaultLocaleWeek, + + weekdays: defaultLocaleWeekdays, + weekdaysMin: defaultLocaleWeekdaysMin, + weekdaysShort: defaultLocaleWeekdaysShort, + + meridiemParse: defaultLocaleMeridiemParse + }; + + // internal storage for locale config files + var locales = {}; + var localeFamilies = {}; + var globalLocale; + + function normalizeLocale(key) { + return key ? key.toLowerCase().replace('_', '-') : key; + } + + // pick the locale from the array + // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each + // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root + function chooseLocale(names) { + var i = 0, j, next, locale, split; + + while (i < names.length) { + split = normalizeLocale(names[i]).split('-'); + j = split.length; + next = normalizeLocale(names[i + 1]); + next = next ? next.split('-') : null; + while (j > 0) { + locale = loadLocale(split.slice(0, j).join('-')); + if (locale) { + return locale; + } + if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { + //the next array item is better than a shallower substring of this one + break; + } + j--; + } + i++; + } + return globalLocale; + } + + function loadLocale(name) { + var oldLocale = null; + // TODO: Find a better way to register and load all the locales in Node + if (!locales[name] && ('object' !== 'undefined') && + module && module.exports) { + try { + oldLocale = globalLocale._abbr; + var aliasedRequire = commonjsRequire; + aliasedRequire('./locale/' + name); + getSetGlobalLocale(oldLocale); + } catch (e) {} + } + return locales[name]; + } + + // This function will load locale and then set the global locale. If + // no arguments are passed in, it will simply return the current global + // locale key. + function getSetGlobalLocale (key, values) { + var data; + if (key) { + if (isUndefined(values)) { + data = getLocale(key); + } + else { + data = defineLocale(key, values); + } + + if (data) { + // moment.duration._locale = moment._locale = data; + globalLocale = data; + } + else { + if ((typeof console !== 'undefined') && console.warn) { + //warn user if arguments are passed but the locale could not be set + console.warn('Locale ' + key + ' not found. Did you forget to load it?'); + } + } + } + + return globalLocale._abbr; + } + + function defineLocale (name, config) { + if (config !== null) { + var locale, parentConfig = baseConfig; + config.abbr = name; + if (locales[name] != null) { + deprecateSimple('defineLocaleOverride', + 'use moment.updateLocale(localeName, config) to change ' + + 'an existing locale. moment.defineLocale(localeName, ' + + 'config) should only be used for creating a new locale ' + + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'); + parentConfig = locales[name]._config; + } else if (config.parentLocale != null) { + if (locales[config.parentLocale] != null) { + parentConfig = locales[config.parentLocale]._config; + } else { + locale = loadLocale(config.parentLocale); + if (locale != null) { + parentConfig = locale._config; + } else { + if (!localeFamilies[config.parentLocale]) { + localeFamilies[config.parentLocale] = []; + } + localeFamilies[config.parentLocale].push({ + name: name, + config: config + }); + return null; + } + } + } + locales[name] = new Locale(mergeConfigs(parentConfig, config)); + + if (localeFamilies[name]) { + localeFamilies[name].forEach(function (x) { + defineLocale(x.name, x.config); + }); + } + + // backwards compat for now: also set the locale + // make sure we set the locale AFTER all child locales have been + // created, so we won't end up with the child locale set. + getSetGlobalLocale(name); + + + return locales[name]; + } else { + // useful for testing + delete locales[name]; + return null; + } + } + + function updateLocale(name, config) { + if (config != null) { + var locale, tmpLocale, parentConfig = baseConfig; + // MERGE + tmpLocale = loadLocale(name); + if (tmpLocale != null) { + parentConfig = tmpLocale._config; + } + config = mergeConfigs(parentConfig, config); + locale = new Locale(config); + locale.parentLocale = locales[name]; + locales[name] = locale; + + // backwards compat for now: also set the locale + getSetGlobalLocale(name); + } else { + // pass null for config to unupdate, useful for tests + if (locales[name] != null) { + if (locales[name].parentLocale != null) { + locales[name] = locales[name].parentLocale; + } else if (locales[name] != null) { + delete locales[name]; + } + } + } + return locales[name]; + } + + // returns locale data + function getLocale (key) { + var locale; + + if (key && key._locale && key._locale._abbr) { + key = key._locale._abbr; + } + + if (!key) { + return globalLocale; + } + + if (!isArray(key)) { + //short-circuit everything else + locale = loadLocale(key); + if (locale) { + return locale; + } + key = [key]; + } + + return chooseLocale(key); + } + + function listLocales() { + return keys(locales); + } + + function checkOverflow (m) { + var overflow; + var a = m._a; + + if (a && getParsingFlags(m).overflow === -2) { + overflow = + a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : + a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : + a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR : + a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : + a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : + a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : + -1; + + if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { + overflow = DATE; + } + if (getParsingFlags(m)._overflowWeeks && overflow === -1) { + overflow = WEEK; + } + if (getParsingFlags(m)._overflowWeekday && overflow === -1) { + overflow = WEEKDAY; + } + + getParsingFlags(m).overflow = overflow; + } + + return m; + } + + // Pick the first defined of two or three arguments. + function defaults(a, b, c) { + if (a != null) { + return a; + } + if (b != null) { + return b; + } + return c; + } + + function currentDateArray(config) { + // hooks is actually the exported moment object + var nowValue = new Date(hooks.now()); + if (config._useUTC) { + return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()]; + } + return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; + } + + // convert an array to a date. + // the array should mirror the parameters below + // note: all values past the year are optional and will default to the lowest possible value. + // [year, month, day , hour, minute, second, millisecond] + function configFromArray (config) { + var i, date, input = [], currentDate, expectedWeekday, yearToUse; + + if (config._d) { + return; + } + + currentDate = currentDateArray(config); + + //compute day of the year from weeks and weekdays + if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { + dayOfYearFromWeekInfo(config); + } + + //if the day of the year is set, figure out what it is + if (config._dayOfYear != null) { + yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); + + if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) { + getParsingFlags(config)._overflowDayOfYear = true; + } + + date = createUTCDate(yearToUse, 0, config._dayOfYear); + config._a[MONTH] = date.getUTCMonth(); + config._a[DATE] = date.getUTCDate(); + } + + // Default to current date. + // * if no year, month, day of month are given, default to today + // * if day of month is given, default month and year + // * if month is given, default only year + // * if year is given, don't default anything + for (i = 0; i < 3 && config._a[i] == null; ++i) { + config._a[i] = input[i] = currentDate[i]; + } + + // Zero out whatever was not defaulted, including time + for (; i < 7; i++) { + config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i]; + } + + // Check for 24:00:00.000 + if (config._a[HOUR] === 24 && + config._a[MINUTE] === 0 && + config._a[SECOND] === 0 && + config._a[MILLISECOND] === 0) { + config._nextDay = true; + config._a[HOUR] = 0; + } + + config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input); + expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay(); + + // Apply timezone offset from input. The actual utcOffset can be changed + // with parseZone. + if (config._tzm != null) { + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + } + + if (config._nextDay) { + config._a[HOUR] = 24; + } + + // check for mismatching day of week + if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) { + getParsingFlags(config).weekdayMismatch = true; + } + } + + function dayOfYearFromWeekInfo(config) { + var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow; + + w = config._w; + if (w.GG != null || w.W != null || w.E != null) { + dow = 1; + doy = 4; + + // TODO: We need to take the current isoWeekYear, but that depends on + // how we interpret now (local, utc, fixed offset). So create + // a now version of current config (take local/utc/offset flags, and + // create now). + weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year); + week = defaults(w.W, 1); + weekday = defaults(w.E, 1); + if (weekday < 1 || weekday > 7) { + weekdayOverflow = true; + } + } else { + dow = config._locale._week.dow; + doy = config._locale._week.doy; + + var curWeek = weekOfYear(createLocal(), dow, doy); + + weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); + + // Default to current week. + week = defaults(w.w, curWeek.week); + + if (w.d != null) { + // weekday -- low day numbers are considered next week + weekday = w.d; + if (weekday < 0 || weekday > 6) { + weekdayOverflow = true; + } + } else if (w.e != null) { + // local weekday -- counting starts from beginning of week + weekday = w.e + dow; + if (w.e < 0 || w.e > 6) { + weekdayOverflow = true; + } + } else { + // default to beginning of week + weekday = dow; + } + } + if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { + getParsingFlags(config)._overflowWeeks = true; + } else if (weekdayOverflow != null) { + getParsingFlags(config)._overflowWeekday = true; + } else { + temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); + config._a[YEAR] = temp.year; + config._dayOfYear = temp.dayOfYear; + } + } + + // iso 8601 regex + // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) + var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; + var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; + + var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/; + + var isoDates = [ + ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], + ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], + ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], + ['GGGG-[W]WW', /\d{4}-W\d\d/, false], + ['YYYY-DDD', /\d{4}-\d{3}/], + ['YYYY-MM', /\d{4}-\d\d/, false], + ['YYYYYYMMDD', /[+-]\d{10}/], + ['YYYYMMDD', /\d{8}/], + // YYYYMM is NOT allowed by the standard + ['GGGG[W]WWE', /\d{4}W\d{3}/], + ['GGGG[W]WW', /\d{4}W\d{2}/, false], + ['YYYYDDD', /\d{7}/] + ]; + + // iso time formats and regexes + var isoTimes = [ + ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], + ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], + ['HH:mm:ss', /\d\d:\d\d:\d\d/], + ['HH:mm', /\d\d:\d\d/], + ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], + ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], + ['HHmmss', /\d\d\d\d\d\d/], + ['HHmm', /\d\d\d\d/], + ['HH', /\d\d/] + ]; + + var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i; + + // date from iso format + function configFromISO(config) { + var i, l, + string = config._i, + match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), + allowTime, dateFormat, timeFormat, tzFormat; + + if (match) { + getParsingFlags(config).iso = true; + + for (i = 0, l = isoDates.length; i < l; i++) { + if (isoDates[i][1].exec(match[1])) { + dateFormat = isoDates[i][0]; + allowTime = isoDates[i][2] !== false; + break; + } + } + if (dateFormat == null) { + config._isValid = false; + return; + } + if (match[3]) { + for (i = 0, l = isoTimes.length; i < l; i++) { + if (isoTimes[i][1].exec(match[3])) { + // match[2] should be 'T' or space + timeFormat = (match[2] || ' ') + isoTimes[i][0]; + break; + } + } + if (timeFormat == null) { + config._isValid = false; + return; + } + } + if (!allowTime && timeFormat != null) { + config._isValid = false; + return; + } + if (match[4]) { + if (tzRegex.exec(match[4])) { + tzFormat = 'Z'; + } else { + config._isValid = false; + return; + } + } + config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); + configFromStringAndFormat(config); + } else { + config._isValid = false; + } + } + + // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 + var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/; + + function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) { + var result = [ + untruncateYear(yearStr), + defaultLocaleMonthsShort.indexOf(monthStr), + parseInt(dayStr, 10), + parseInt(hourStr, 10), + parseInt(minuteStr, 10) + ]; + + if (secondStr) { + result.push(parseInt(secondStr, 10)); + } + + return result; + } + + function untruncateYear(yearStr) { + var year = parseInt(yearStr, 10); + if (year <= 49) { + return 2000 + year; + } else if (year <= 999) { + return 1900 + year; + } + return year; + } + + function preprocessRFC2822(s) { + // Remove comments and folding whitespace and replace multiple-spaces with a single space + return s.replace(/\([^)]*\)|[\n\t]/g, ' ').replace(/(\s\s+)/g, ' ').replace(/^\s\s*/, '').replace(/\s\s*$/, ''); + } + + function checkWeekday(weekdayStr, parsedInput, config) { + if (weekdayStr) { + // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check. + var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), + weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay(); + if (weekdayProvided !== weekdayActual) { + getParsingFlags(config).weekdayMismatch = true; + config._isValid = false; + return false; + } + } + return true; + } + + var obsOffsets = { + UT: 0, + GMT: 0, + EDT: -4 * 60, + EST: -5 * 60, + CDT: -5 * 60, + CST: -6 * 60, + MDT: -6 * 60, + MST: -7 * 60, + PDT: -7 * 60, + PST: -8 * 60 + }; + + function calculateOffset(obsOffset, militaryOffset, numOffset) { + if (obsOffset) { + return obsOffsets[obsOffset]; + } else if (militaryOffset) { + // the only allowed military tz is Z + return 0; + } else { + var hm = parseInt(numOffset, 10); + var m = hm % 100, h = (hm - m) / 100; + return h * 60 + m; + } + } + + // date and time from ref 2822 format + function configFromRFC2822(config) { + var match = rfc2822.exec(preprocessRFC2822(config._i)); + if (match) { + var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]); + if (!checkWeekday(match[1], parsedArray, config)) { + return; + } + + config._a = parsedArray; + config._tzm = calculateOffset(match[8], match[9], match[10]); + + config._d = createUTCDate.apply(null, config._a); + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + + getParsingFlags(config).rfc2822 = true; + } else { + config._isValid = false; + } + } + + // date from iso format or fallback + function configFromString(config) { + var matched = aspNetJsonRegex.exec(config._i); + + if (matched !== null) { + config._d = new Date(+matched[1]); + return; + } + + configFromISO(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } + + configFromRFC2822(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } + + // Final attempt, use Input Fallback + hooks.createFromInputFallback(config); + } + + hooks.createFromInputFallback = deprecate( + 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + + 'discouraged and will be removed in an upcoming major release. Please refer to ' + + 'http://momentjs.com/guides/#/warnings/js-date/ for more info.', + function (config) { + config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); + } + ); + + // constant that refers to the ISO standard + hooks.ISO_8601 = function () {}; + + // constant that refers to the RFC 2822 form + hooks.RFC_2822 = function () {}; + + // date from string and format string + function configFromStringAndFormat(config) { + // TODO: Move this to another part of the creation flow to prevent circular deps + if (config._f === hooks.ISO_8601) { + configFromISO(config); + return; + } + if (config._f === hooks.RFC_2822) { + configFromRFC2822(config); + return; + } + config._a = []; + getParsingFlags(config).empty = true; + + // This array is used to make a Date, either with `new Date` or `Date.UTC` + var string = '' + config._i, + i, parsedInput, tokens, token, skipped, + stringLength = string.length, + totalParsedInputLength = 0; + + tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; + + for (i = 0; i < tokens.length; i++) { + token = tokens[i]; + parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; + if (parsedInput) { + skipped = string.substr(0, string.indexOf(parsedInput)); + if (skipped.length > 0) { + getParsingFlags(config).unusedInput.push(skipped); + } + string = string.slice(string.indexOf(parsedInput) + parsedInput.length); + totalParsedInputLength += parsedInput.length; + } + // don't parse if it's not a known token + if (formatTokenFunctions[token]) { + if (parsedInput) { + getParsingFlags(config).empty = false; + } + else { + getParsingFlags(config).unusedTokens.push(token); + } + addTimeToArrayFromToken(token, parsedInput, config); + } + else if (config._strict && !parsedInput) { + getParsingFlags(config).unusedTokens.push(token); + } + } + + // add remaining unparsed input length to the string + getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; + if (string.length > 0) { + getParsingFlags(config).unusedInput.push(string); + } + + // clear _12h flag if hour is <= 12 + if (config._a[HOUR] <= 12 && + getParsingFlags(config).bigHour === true && + config._a[HOUR] > 0) { + getParsingFlags(config).bigHour = undefined; + } + + getParsingFlags(config).parsedDateParts = config._a.slice(0); + getParsingFlags(config).meridiem = config._meridiem; + // handle meridiem + config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); + + configFromArray(config); + checkOverflow(config); + } + + + function meridiemFixWrap (locale, hour, meridiem) { + var isPm; + + if (meridiem == null) { + // nothing to do + return hour; + } + if (locale.meridiemHour != null) { + return locale.meridiemHour(hour, meridiem); + } else if (locale.isPM != null) { + // Fallback + isPm = locale.isPM(meridiem); + if (isPm && hour < 12) { + hour += 12; + } + if (!isPm && hour === 12) { + hour = 0; + } + return hour; + } else { + // this is not supposed to happen + return hour; + } + } + + // date from string and array of format strings + function configFromStringAndArray(config) { + var tempConfig, + bestMoment, + + scoreToBeat, + i, + currentScore; + + if (config._f.length === 0) { + getParsingFlags(config).invalidFormat = true; + config._d = new Date(NaN); + return; + } + + for (i = 0; i < config._f.length; i++) { + currentScore = 0; + tempConfig = copyConfig({}, config); + if (config._useUTC != null) { + tempConfig._useUTC = config._useUTC; + } + tempConfig._f = config._f[i]; + configFromStringAndFormat(tempConfig); + + if (!isValid(tempConfig)) { + continue; + } + + // if there is any input that was not parsed add a penalty for that format + currentScore += getParsingFlags(tempConfig).charsLeftOver; + + //or tokens + currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; + + getParsingFlags(tempConfig).score = currentScore; + + if (scoreToBeat == null || currentScore < scoreToBeat) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + } + } + + extend(config, bestMoment || tempConfig); + } + + function configFromObject(config) { + if (config._d) { + return; + } + + var i = normalizeObjectUnits(config._i); + config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) { + return obj && parseInt(obj, 10); + }); + + configFromArray(config); + } + + function createFromConfig (config) { + var res = new Moment(checkOverflow(prepareConfig(config))); + if (res._nextDay) { + // Adding is smart enough around DST + res.add(1, 'd'); + res._nextDay = undefined; + } + + return res; + } + + function prepareConfig (config) { + var input = config._i, + format = config._f; + + config._locale = config._locale || getLocale(config._l); + + if (input === null || (format === undefined && input === '')) { + return createInvalid({nullInput: true}); + } + + if (typeof input === 'string') { + config._i = input = config._locale.preparse(input); + } + + if (isMoment(input)) { + return new Moment(checkOverflow(input)); + } else if (isDate(input)) { + config._d = input; + } else if (isArray(format)) { + configFromStringAndArray(config); + } else if (format) { + configFromStringAndFormat(config); + } else { + configFromInput(config); + } + + if (!isValid(config)) { + config._d = null; + } + + return config; + } + + function configFromInput(config) { + var input = config._i; + if (isUndefined(input)) { + config._d = new Date(hooks.now()); + } else if (isDate(input)) { + config._d = new Date(input.valueOf()); + } else if (typeof input === 'string') { + configFromString(config); + } else if (isArray(input)) { + config._a = map(input.slice(0), function (obj) { + return parseInt(obj, 10); + }); + configFromArray(config); + } else if (isObject(input)) { + configFromObject(config); + } else if (isNumber(input)) { + // from milliseconds + config._d = new Date(input); + } else { + hooks.createFromInputFallback(config); + } + } + + function createLocalOrUTC (input, format, locale, strict, isUTC) { + var c = {}; + + if (locale === true || locale === false) { + strict = locale; + locale = undefined; + } + + if ((isObject(input) && isObjectEmpty(input)) || + (isArray(input) && input.length === 0)) { + input = undefined; + } + // object construction must be done this way. + // https://github.com/moment/moment/issues/1423 + c._isAMomentObject = true; + c._useUTC = c._isUTC = isUTC; + c._l = locale; + c._i = input; + c._f = format; + c._strict = strict; + + return createFromConfig(c); + } + + function createLocal (input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, false); + } + + var prototypeMin = deprecate( + 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other < this ? this : other; + } else { + return createInvalid(); + } + } + ); + + var prototypeMax = deprecate( + 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other > this ? this : other; + } else { + return createInvalid(); + } + } + ); + + // Pick a moment m from moments so that m[fn](other) is true for all + // other. This relies on the function fn to be transitive. + // + // moments should either be an array of moment objects or an array, whose + // first element is an array of moment objects. + function pickBy(fn, moments) { + var res, i; + if (moments.length === 1 && isArray(moments[0])) { + moments = moments[0]; + } + if (!moments.length) { + return createLocal(); + } + res = moments[0]; + for (i = 1; i < moments.length; ++i) { + if (!moments[i].isValid() || moments[i][fn](res)) { + res = moments[i]; + } + } + return res; + } + + // TODO: Use [].sort instead? + function min () { + var args = [].slice.call(arguments, 0); + + return pickBy('isBefore', args); + } + + function max () { + var args = [].slice.call(arguments, 0); + + return pickBy('isAfter', args); + } + + var now = function () { + return Date.now ? Date.now() : +(new Date()); + }; + + var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond']; + + function isDurationValid(m) { + for (var key in m) { + if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) { + return false; + } + } + + var unitHasDecimal = false; + for (var i = 0; i < ordering.length; ++i) { + if (m[ordering[i]]) { + if (unitHasDecimal) { + return false; // only allow non-integers for smallest unit + } + if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { + unitHasDecimal = true; + } + } + } + + return true; + } + + function isValid$1() { + return this._isValid; + } + + function createInvalid$1() { + return createDuration(NaN); + } + + function Duration (duration) { + var normalizedInput = normalizeObjectUnits(duration), + years = normalizedInput.year || 0, + quarters = normalizedInput.quarter || 0, + months = normalizedInput.month || 0, + weeks = normalizedInput.week || normalizedInput.isoWeek || 0, + days = normalizedInput.day || 0, + hours = normalizedInput.hour || 0, + minutes = normalizedInput.minute || 0, + seconds = normalizedInput.second || 0, + milliseconds = normalizedInput.millisecond || 0; + + this._isValid = isDurationValid(normalizedInput); + + // representation for dateAddRemove + this._milliseconds = +milliseconds + + seconds * 1e3 + // 1000 + minutes * 6e4 + // 1000 * 60 + hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 + // Because of dateAddRemove treats 24 hours as different from a + // day when working around DST, we need to store them separately + this._days = +days + + weeks * 7; + // It is impossible to translate months into days without knowing + // which months you are are talking about, so we have to store + // it separately. + this._months = +months + + quarters * 3 + + years * 12; + + this._data = {}; + + this._locale = getLocale(); + + this._bubble(); + } + + function isDuration (obj) { + return obj instanceof Duration; + } + + function absRound (number) { + if (number < 0) { + return Math.round(-1 * number) * -1; + } else { + return Math.round(number); + } + } + + // FORMATTING + + function offset (token, separator) { + addFormatToken(token, 0, 0, function () { + var offset = this.utcOffset(); + var sign = '+'; + if (offset < 0) { + offset = -offset; + sign = '-'; + } + return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2); + }); + } + + offset('Z', ':'); + offset('ZZ', ''); + + // PARSING + + addRegexToken('Z', matchShortOffset); + addRegexToken('ZZ', matchShortOffset); + addParseToken(['Z', 'ZZ'], function (input, array, config) { + config._useUTC = true; + config._tzm = offsetFromString(matchShortOffset, input); + }); + + // HELPERS + + // timezone chunker + // '+10:00' > ['10', '00'] + // '-1530' > ['-15', '30'] + var chunkOffset = /([\+\-]|\d\d)/gi; + + function offsetFromString(matcher, string) { + var matches = (string || '').match(matcher); + + if (matches === null) { + return null; + } + + var chunk = matches[matches.length - 1] || []; + var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; + var minutes = +(parts[1] * 60) + toInt(parts[2]); + + return minutes === 0 ? + 0 : + parts[0] === '+' ? minutes : -minutes; + } + + // Return a moment from input, that is local/utc/zone equivalent to model. + function cloneWithOffset(input, model) { + var res, diff; + if (model._isUTC) { + res = model.clone(); + diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); + // Use low-level api, because this fn is low-level api. + res._d.setTime(res._d.valueOf() + diff); + hooks.updateOffset(res, false); + return res; + } else { + return createLocal(input).local(); + } + } + + function getDateOffset (m) { + // On Firefox.24 Date#getTimezoneOffset returns a floating point. + // https://github.com/moment/moment/pull/1871 + return -Math.round(m._d.getTimezoneOffset() / 15) * 15; + } + + // HOOKS + + // This function will be called whenever a moment is mutated. + // It is intended to keep the offset in sync with the timezone. + hooks.updateOffset = function () {}; + + // MOMENTS + + // keepLocalTime = true means only change the timezone, without + // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> + // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset + // +0200, so we adjust the time as needed, to be valid. + // + // Keeping the time actually adds/subtracts (one hour) + // from the actual represented time. That is why we call updateOffset + // a second time. In case it wants us to change the offset again + // _changeInProgress == true case, then we have to adjust, because + // there is no such time in the given timezone. + function getSetOffset (input, keepLocalTime, keepMinutes) { + var offset = this._offset || 0, + localAdjust; + if (!this.isValid()) { + return input != null ? this : NaN; + } + if (input != null) { + if (typeof input === 'string') { + input = offsetFromString(matchShortOffset, input); + if (input === null) { + return this; + } + } else if (Math.abs(input) < 16 && !keepMinutes) { + input = input * 60; + } + if (!this._isUTC && keepLocalTime) { + localAdjust = getDateOffset(this); + } + this._offset = input; + this._isUTC = true; + if (localAdjust != null) { + this.add(localAdjust, 'm'); + } + if (offset !== input) { + if (!keepLocalTime || this._changeInProgress) { + addSubtract(this, createDuration(input - offset, 'm'), 1, false); + } else if (!this._changeInProgress) { + this._changeInProgress = true; + hooks.updateOffset(this, true); + this._changeInProgress = null; + } + } + return this; + } else { + return this._isUTC ? offset : getDateOffset(this); + } + } + + function getSetZone (input, keepLocalTime) { + if (input != null) { + if (typeof input !== 'string') { + input = -input; + } + + this.utcOffset(input, keepLocalTime); + + return this; + } else { + return -this.utcOffset(); + } + } + + function setOffsetToUTC (keepLocalTime) { + return this.utcOffset(0, keepLocalTime); + } + + function setOffsetToLocal (keepLocalTime) { + if (this._isUTC) { + this.utcOffset(0, keepLocalTime); + this._isUTC = false; + + if (keepLocalTime) { + this.subtract(getDateOffset(this), 'm'); + } + } + return this; + } + + function setOffsetToParsedOffset () { + if (this._tzm != null) { + this.utcOffset(this._tzm, false, true); + } else if (typeof this._i === 'string') { + var tZone = offsetFromString(matchOffset, this._i); + if (tZone != null) { + this.utcOffset(tZone); + } + else { + this.utcOffset(0, true); + } + } + return this; + } + + function hasAlignedHourOffset (input) { + if (!this.isValid()) { + return false; + } + input = input ? createLocal(input).utcOffset() : 0; + + return (this.utcOffset() - input) % 60 === 0; + } + + function isDaylightSavingTime () { + return ( + this.utcOffset() > this.clone().month(0).utcOffset() || + this.utcOffset() > this.clone().month(5).utcOffset() + ); + } + + function isDaylightSavingTimeShifted () { + if (!isUndefined(this._isDSTShifted)) { + return this._isDSTShifted; + } + + var c = {}; + + copyConfig(c, this); + c = prepareConfig(c); + + if (c._a) { + var other = c._isUTC ? createUTC(c._a) : createLocal(c._a); + this._isDSTShifted = this.isValid() && + compareArrays(c._a, other.toArray()) > 0; + } else { + this._isDSTShifted = false; + } + + return this._isDSTShifted; + } + + function isLocal () { + return this.isValid() ? !this._isUTC : false; + } + + function isUtcOffset () { + return this.isValid() ? this._isUTC : false; + } + + function isUtc () { + return this.isValid() ? this._isUTC && this._offset === 0 : false; + } + + // ASP.NET json date format regex + var aspNetRegex = /^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/; + + // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html + // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere + // and further modified to allow for strings containing both week and day + var isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; + + function createDuration (input, key) { + var duration = input, + // matching against regexp is expensive, do it on demand + match = null, + sign, + ret, + diffRes; + + if (isDuration(input)) { + duration = { + ms : input._milliseconds, + d : input._days, + M : input._months + }; + } else if (isNumber(input)) { + duration = {}; + if (key) { + duration[key] = input; + } else { + duration.milliseconds = input; + } + } else if (!!(match = aspNetRegex.exec(input))) { + sign = (match[1] === '-') ? -1 : 1; + duration = { + y : 0, + d : toInt(match[DATE]) * sign, + h : toInt(match[HOUR]) * sign, + m : toInt(match[MINUTE]) * sign, + s : toInt(match[SECOND]) * sign, + ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match + }; + } else if (!!(match = isoRegex.exec(input))) { + sign = (match[1] === '-') ? -1 : 1; + duration = { + y : parseIso(match[2], sign), + M : parseIso(match[3], sign), + w : parseIso(match[4], sign), + d : parseIso(match[5], sign), + h : parseIso(match[6], sign), + m : parseIso(match[7], sign), + s : parseIso(match[8], sign) + }; + } else if (duration == null) {// checks for null or undefined + duration = {}; + } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) { + diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to)); + + duration = {}; + duration.ms = diffRes.milliseconds; + duration.M = diffRes.months; + } + + ret = new Duration(duration); + + if (isDuration(input) && hasOwnProp(input, '_locale')) { + ret._locale = input._locale; + } + + return ret; + } + + createDuration.fn = Duration.prototype; + createDuration.invalid = createInvalid$1; + + function parseIso (inp, sign) { + // We'd normally use ~~inp for this, but unfortunately it also + // converts floats to ints. + // inp may be undefined, so careful calling replace on it. + var res = inp && parseFloat(inp.replace(',', '.')); + // apply sign while we're at it + return (isNaN(res) ? 0 : res) * sign; + } + + function positiveMomentsDifference(base, other) { + var res = {}; + + res.months = other.month() - base.month() + + (other.year() - base.year()) * 12; + if (base.clone().add(res.months, 'M').isAfter(other)) { + --res.months; + } + + res.milliseconds = +other - +(base.clone().add(res.months, 'M')); + + return res; + } + + function momentsDifference(base, other) { + var res; + if (!(base.isValid() && other.isValid())) { + return {milliseconds: 0, months: 0}; + } + + other = cloneWithOffset(other, base); + if (base.isBefore(other)) { + res = positiveMomentsDifference(base, other); + } else { + res = positiveMomentsDifference(other, base); + res.milliseconds = -res.milliseconds; + res.months = -res.months; + } + + return res; + } + + // TODO: remove 'name' arg after deprecation is removed + function createAdder(direction, name) { + return function (val, period) { + var dur, tmp; + //invert the arguments, but complain about it + if (period !== null && !isNaN(+period)) { + deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'); + tmp = val; val = period; period = tmp; + } + + val = typeof val === 'string' ? +val : val; + dur = createDuration(val, period); + addSubtract(this, dur, direction); + return this; + }; + } + + function addSubtract (mom, duration, isAdding, updateOffset) { + var milliseconds = duration._milliseconds, + days = absRound(duration._days), + months = absRound(duration._months); + + if (!mom.isValid()) { + // No op + return; + } + + updateOffset = updateOffset == null ? true : updateOffset; + + if (months) { + setMonth(mom, get(mom, 'Month') + months * isAdding); + } + if (days) { + set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); + } + if (milliseconds) { + mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); + } + if (updateOffset) { + hooks.updateOffset(mom, days || months); + } + } + + var add = createAdder(1, 'add'); + var subtract = createAdder(-1, 'subtract'); + + function getCalendarFormat(myMoment, now) { + var diff = myMoment.diff(now, 'days', true); + return diff < -6 ? 'sameElse' : + diff < -1 ? 'lastWeek' : + diff < 0 ? 'lastDay' : + diff < 1 ? 'sameDay' : + diff < 2 ? 'nextDay' : + diff < 7 ? 'nextWeek' : 'sameElse'; + } + + function calendar$1 (time, formats) { + // We want to compare the start of today, vs this. + // Getting start-of-today depends on whether we're local/utc/offset or not. + var now = time || createLocal(), + sod = cloneWithOffset(now, this).startOf('day'), + format = hooks.calendarFormat(this, sod) || 'sameElse'; + + var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]); + + return this.format(output || this.localeData().calendar(format, this, createLocal(now))); + } + + function clone () { + return new Moment(this); + } + + function isAfter (input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() > localInput.valueOf(); + } else { + return localInput.valueOf() < this.clone().startOf(units).valueOf(); + } + } + + function isBefore (input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() < localInput.valueOf(); + } else { + return this.clone().endOf(units).valueOf() < localInput.valueOf(); + } + } + + function isBetween (from, to, units, inclusivity) { + var localFrom = isMoment(from) ? from : createLocal(from), + localTo = isMoment(to) ? to : createLocal(to); + if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) { + return false; + } + inclusivity = inclusivity || '()'; + return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) && + (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units)); + } + + function isSame (input, units) { + var localInput = isMoment(input) ? input : createLocal(input), + inputMs; + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() === localInput.valueOf(); + } else { + inputMs = localInput.valueOf(); + return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf(); + } + } + + function isSameOrAfter (input, units) { + return this.isSame(input, units) || this.isAfter(input, units); + } + + function isSameOrBefore (input, units) { + return this.isSame(input, units) || this.isBefore(input, units); + } + + function diff (input, units, asFloat) { + var that, + zoneDelta, + output; + + if (!this.isValid()) { + return NaN; + } + + that = cloneWithOffset(input, this); + + if (!that.isValid()) { + return NaN; + } + + zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; + + units = normalizeUnits(units); + + switch (units) { + case 'year': output = monthDiff(this, that) / 12; break; + case 'month': output = monthDiff(this, that); break; + case 'quarter': output = monthDiff(this, that) / 3; break; + case 'second': output = (this - that) / 1e3; break; // 1000 + case 'minute': output = (this - that) / 6e4; break; // 1000 * 60 + case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60 + case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst + case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst + default: output = this - that; + } + + return asFloat ? output : absFloor(output); + } + + function monthDiff (a, b) { + // difference in months + var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()), + // b is in (anchor - 1 month, anchor + 1 month) + anchor = a.clone().add(wholeMonthDiff, 'months'), + anchor2, adjust; + + if (b - anchor < 0) { + anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor - anchor2); + } else { + anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor2 - anchor); + } + + //check for negative zero, return zero if negative zero + return -(wholeMonthDiff + adjust) || 0; + } + + hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; + hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; + + function toString () { + return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); + } + + function toISOString(keepOffset) { + if (!this.isValid()) { + return null; + } + var utc = keepOffset !== true; + var m = utc ? this.clone().utc() : this; + if (m.year() < 0 || m.year() > 9999) { + return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'); + } + if (isFunction(Date.prototype.toISOString)) { + // native implementation is ~50x faster, use it when we can + if (utc) { + return this.toDate().toISOString(); + } else { + return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z')); + } + } + return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'); + } + + /** + * Return a human readable representation of a moment that can + * also be evaluated to get a new moment which is the same + * + * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects + */ + function inspect () { + if (!this.isValid()) { + return 'moment.invalid(/* ' + this._i + ' */)'; + } + var func = 'moment'; + var zone = ''; + if (!this.isLocal()) { + func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; + zone = 'Z'; + } + var prefix = '[' + func + '("]'; + var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY'; + var datetime = '-MM-DD[T]HH:mm:ss.SSS'; + var suffix = zone + '[")]'; + + return this.format(prefix + year + datetime + suffix); + } + + function format (inputString) { + if (!inputString) { + inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat; + } + var output = formatMoment(this, inputString); + return this.localeData().postformat(output); + } + + function from (time, withoutSuffix) { + if (this.isValid() && + ((isMoment(time) && time.isValid()) || + createLocal(time).isValid())) { + return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function fromNow (withoutSuffix) { + return this.from(createLocal(), withoutSuffix); + } + + function to (time, withoutSuffix) { + if (this.isValid() && + ((isMoment(time) && time.isValid()) || + createLocal(time).isValid())) { + return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function toNow (withoutSuffix) { + return this.to(createLocal(), withoutSuffix); + } + + // If passed a locale key, it will set the locale for this + // instance. Otherwise, it will return the locale configuration + // variables for this instance. + function locale (key) { + var newLocaleData; + + if (key === undefined) { + return this._locale._abbr; + } else { + newLocaleData = getLocale(key); + if (newLocaleData != null) { + this._locale = newLocaleData; + } + return this; + } + } + + var lang = deprecate( + 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', + function (key) { + if (key === undefined) { + return this.localeData(); + } else { + return this.locale(key); + } + } + ); + + function localeData () { + return this._locale; + } + + var MS_PER_SECOND = 1000; + var MS_PER_MINUTE = 60 * MS_PER_SECOND; + var MS_PER_HOUR = 60 * MS_PER_MINUTE; + var MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; + + // actual modulo - handles negative numbers (for dates before 1970): + function mod$1(dividend, divisor) { + return (dividend % divisor + divisor) % divisor; + } + + function localStartOfDate(y, m, d) { + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return new Date(y + 400, m, d) - MS_PER_400_YEARS; + } else { + return new Date(y, m, d).valueOf(); + } + } + + function utcStartOfDate(y, m, d) { + // Date.UTC remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS; + } else { + return Date.UTC(y, m, d); + } + } + + function startOf (units) { + var time; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; + } + + var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; + + switch (units) { + case 'year': + time = startOfDate(this.year(), 0, 1); + break; + case 'quarter': + time = startOfDate(this.year(), this.month() - this.month() % 3, 1); + break; + case 'month': + time = startOfDate(this.year(), this.month(), 1); + break; + case 'week': + time = startOfDate(this.year(), this.month(), this.date() - this.weekday()); + break; + case 'isoWeek': + time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1)); + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date()); + break; + case 'hour': + time = this._d.valueOf(); + time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR); + break; + case 'minute': + time = this._d.valueOf(); + time -= mod$1(time, MS_PER_MINUTE); + break; + case 'second': + time = this._d.valueOf(); + time -= mod$1(time, MS_PER_SECOND); + break; + } + + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; + } + + function endOf (units) { + var time; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; + } + + var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; + + switch (units) { + case 'year': + time = startOfDate(this.year() + 1, 0, 1) - 1; + break; + case 'quarter': + time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1; + break; + case 'month': + time = startOfDate(this.year(), this.month() + 1, 1) - 1; + break; + case 'week': + time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1; + break; + case 'isoWeek': + time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1; + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date() + 1) - 1; + break; + case 'hour': + time = this._d.valueOf(); + time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1; + break; + case 'minute': + time = this._d.valueOf(); + time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1; + break; + case 'second': + time = this._d.valueOf(); + time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1; + break; + } + + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; + } + + function valueOf () { + return this._d.valueOf() - ((this._offset || 0) * 60000); + } + + function unix () { + return Math.floor(this.valueOf() / 1000); + } + + function toDate () { + return new Date(this.valueOf()); + } + + function toArray () { + var m = this; + return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()]; + } + + function toObject () { + var m = this; + return { + years: m.year(), + months: m.month(), + date: m.date(), + hours: m.hours(), + minutes: m.minutes(), + seconds: m.seconds(), + milliseconds: m.milliseconds() + }; + } + + function toJSON () { + // new Date(NaN).toJSON() === null + return this.isValid() ? this.toISOString() : null; + } + + function isValid$2 () { + return isValid(this); + } + + function parsingFlags () { + return extend({}, getParsingFlags(this)); + } + + function invalidAt () { + return getParsingFlags(this).overflow; + } + + function creationData() { + return { + input: this._i, + format: this._f, + locale: this._locale, + isUTC: this._isUTC, + strict: this._strict + }; + } + + // FORMATTING + + addFormatToken(0, ['gg', 2], 0, function () { + return this.weekYear() % 100; + }); + + addFormatToken(0, ['GG', 2], 0, function () { + return this.isoWeekYear() % 100; + }); + + function addWeekYearFormatToken (token, getter) { + addFormatToken(0, [token, token.length], 0, getter); + } + + addWeekYearFormatToken('gggg', 'weekYear'); + addWeekYearFormatToken('ggggg', 'weekYear'); + addWeekYearFormatToken('GGGG', 'isoWeekYear'); + addWeekYearFormatToken('GGGGG', 'isoWeekYear'); + + // ALIASES + + addUnitAlias('weekYear', 'gg'); + addUnitAlias('isoWeekYear', 'GG'); + + // PRIORITY + + addUnitPriority('weekYear', 1); + addUnitPriority('isoWeekYear', 1); + + + // PARSING + + addRegexToken('G', matchSigned); + addRegexToken('g', matchSigned); + addRegexToken('GG', match1to2, match2); + addRegexToken('gg', match1to2, match2); + addRegexToken('GGGG', match1to4, match4); + addRegexToken('gggg', match1to4, match4); + addRegexToken('GGGGG', match1to6, match6); + addRegexToken('ggggg', match1to6, match6); + + addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) { + week[token.substr(0, 2)] = toInt(input); + }); + + addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { + week[token] = hooks.parseTwoDigitYear(input); + }); + + // MOMENTS + + function getSetWeekYear (input) { + return getSetWeekYearHelper.call(this, + input, + this.week(), + this.weekday(), + this.localeData()._week.dow, + this.localeData()._week.doy); + } + + function getSetISOWeekYear (input) { + return getSetWeekYearHelper.call(this, + input, this.isoWeek(), this.isoWeekday(), 1, 4); + } + + function getISOWeeksInYear () { + return weeksInYear(this.year(), 1, 4); + } + + function getWeeksInYear () { + var weekInfo = this.localeData()._week; + return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); + } + + function getSetWeekYearHelper(input, week, weekday, dow, doy) { + var weeksTarget; + if (input == null) { + return weekOfYear(this, dow, doy).year; + } else { + weeksTarget = weeksInYear(input, dow, doy); + if (week > weeksTarget) { + week = weeksTarget; + } + return setWeekAll.call(this, input, week, weekday, dow, doy); + } + } + + function setWeekAll(weekYear, week, weekday, dow, doy) { + var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), + date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); + + this.year(date.getUTCFullYear()); + this.month(date.getUTCMonth()); + this.date(date.getUTCDate()); + return this; + } + + // FORMATTING + + addFormatToken('Q', 0, 'Qo', 'quarter'); + + // ALIASES + + addUnitAlias('quarter', 'Q'); + + // PRIORITY + + addUnitPriority('quarter', 7); + + // PARSING + + addRegexToken('Q', match1); + addParseToken('Q', function (input, array) { + array[MONTH] = (toInt(input) - 1) * 3; + }); + + // MOMENTS + + function getSetQuarter (input) { + return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); + } + + // FORMATTING + + addFormatToken('D', ['DD', 2], 'Do', 'date'); + + // ALIASES + + addUnitAlias('date', 'D'); + + // PRIORITY + addUnitPriority('date', 9); + + // PARSING + + addRegexToken('D', match1to2); + addRegexToken('DD', match1to2, match2); + addRegexToken('Do', function (isStrict, locale) { + // TODO: Remove "ordinalParse" fallback in next major release. + return isStrict ? + (locale._dayOfMonthOrdinalParse || locale._ordinalParse) : + locale._dayOfMonthOrdinalParseLenient; + }); + + addParseToken(['D', 'DD'], DATE); + addParseToken('Do', function (input, array) { + array[DATE] = toInt(input.match(match1to2)[0]); + }); + + // MOMENTS + + var getSetDayOfMonth = makeGetSet('Date', true); + + // FORMATTING + + addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); + + // ALIASES + + addUnitAlias('dayOfYear', 'DDD'); + + // PRIORITY + addUnitPriority('dayOfYear', 4); + + // PARSING + + addRegexToken('DDD', match1to3); + addRegexToken('DDDD', match3); + addParseToken(['DDD', 'DDDD'], function (input, array, config) { + config._dayOfYear = toInt(input); + }); + + // HELPERS + + // MOMENTS + + function getSetDayOfYear (input) { + var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; + return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); + } + + // FORMATTING + + addFormatToken('m', ['mm', 2], 0, 'minute'); + + // ALIASES + + addUnitAlias('minute', 'm'); + + // PRIORITY + + addUnitPriority('minute', 14); + + // PARSING + + addRegexToken('m', match1to2); + addRegexToken('mm', match1to2, match2); + addParseToken(['m', 'mm'], MINUTE); + + // MOMENTS + + var getSetMinute = makeGetSet('Minutes', false); + + // FORMATTING + + addFormatToken('s', ['ss', 2], 0, 'second'); + + // ALIASES + + addUnitAlias('second', 's'); + + // PRIORITY + + addUnitPriority('second', 15); + + // PARSING + + addRegexToken('s', match1to2); + addRegexToken('ss', match1to2, match2); + addParseToken(['s', 'ss'], SECOND); + + // MOMENTS + + var getSetSecond = makeGetSet('Seconds', false); + + // FORMATTING + + addFormatToken('S', 0, 0, function () { + return ~~(this.millisecond() / 100); + }); + + addFormatToken(0, ['SS', 2], 0, function () { + return ~~(this.millisecond() / 10); + }); + + addFormatToken(0, ['SSS', 3], 0, 'millisecond'); + addFormatToken(0, ['SSSS', 4], 0, function () { + return this.millisecond() * 10; + }); + addFormatToken(0, ['SSSSS', 5], 0, function () { + return this.millisecond() * 100; + }); + addFormatToken(0, ['SSSSSS', 6], 0, function () { + return this.millisecond() * 1000; + }); + addFormatToken(0, ['SSSSSSS', 7], 0, function () { + return this.millisecond() * 10000; + }); + addFormatToken(0, ['SSSSSSSS', 8], 0, function () { + return this.millisecond() * 100000; + }); + addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { + return this.millisecond() * 1000000; + }); + + + // ALIASES + + addUnitAlias('millisecond', 'ms'); + + // PRIORITY + + addUnitPriority('millisecond', 16); + + // PARSING + + addRegexToken('S', match1to3, match1); + addRegexToken('SS', match1to3, match2); + addRegexToken('SSS', match1to3, match3); + + var token; + for (token = 'SSSS'; token.length <= 9; token += 'S') { + addRegexToken(token, matchUnsigned); + } + + function parseMs(input, array) { + array[MILLISECOND] = toInt(('0.' + input) * 1000); + } + + for (token = 'S'; token.length <= 9; token += 'S') { + addParseToken(token, parseMs); + } + // MOMENTS + + var getSetMillisecond = makeGetSet('Milliseconds', false); + + // FORMATTING + + addFormatToken('z', 0, 0, 'zoneAbbr'); + addFormatToken('zz', 0, 0, 'zoneName'); + + // MOMENTS + + function getZoneAbbr () { + return this._isUTC ? 'UTC' : ''; + } + + function getZoneName () { + return this._isUTC ? 'Coordinated Universal Time' : ''; + } + + var proto = Moment.prototype; + + proto.add = add; + proto.calendar = calendar$1; + proto.clone = clone; + proto.diff = diff; + proto.endOf = endOf; + proto.format = format; + proto.from = from; + proto.fromNow = fromNow; + proto.to = to; + proto.toNow = toNow; + proto.get = stringGet; + proto.invalidAt = invalidAt; + proto.isAfter = isAfter; + proto.isBefore = isBefore; + proto.isBetween = isBetween; + proto.isSame = isSame; + proto.isSameOrAfter = isSameOrAfter; + proto.isSameOrBefore = isSameOrBefore; + proto.isValid = isValid$2; + proto.lang = lang; + proto.locale = locale; + proto.localeData = localeData; + proto.max = prototypeMax; + proto.min = prototypeMin; + proto.parsingFlags = parsingFlags; + proto.set = stringSet; + proto.startOf = startOf; + proto.subtract = subtract; + proto.toArray = toArray; + proto.toObject = toObject; + proto.toDate = toDate; + proto.toISOString = toISOString; + proto.inspect = inspect; + proto.toJSON = toJSON; + proto.toString = toString; + proto.unix = unix; + proto.valueOf = valueOf; + proto.creationData = creationData; + proto.year = getSetYear; + proto.isLeapYear = getIsLeapYear; + proto.weekYear = getSetWeekYear; + proto.isoWeekYear = getSetISOWeekYear; + proto.quarter = proto.quarters = getSetQuarter; + proto.month = getSetMonth; + proto.daysInMonth = getDaysInMonth; + proto.week = proto.weeks = getSetWeek; + proto.isoWeek = proto.isoWeeks = getSetISOWeek; + proto.weeksInYear = getWeeksInYear; + proto.isoWeeksInYear = getISOWeeksInYear; + proto.date = getSetDayOfMonth; + proto.day = proto.days = getSetDayOfWeek; + proto.weekday = getSetLocaleDayOfWeek; + proto.isoWeekday = getSetISODayOfWeek; + proto.dayOfYear = getSetDayOfYear; + proto.hour = proto.hours = getSetHour; + proto.minute = proto.minutes = getSetMinute; + proto.second = proto.seconds = getSetSecond; + proto.millisecond = proto.milliseconds = getSetMillisecond; + proto.utcOffset = getSetOffset; + proto.utc = setOffsetToUTC; + proto.local = setOffsetToLocal; + proto.parseZone = setOffsetToParsedOffset; + proto.hasAlignedHourOffset = hasAlignedHourOffset; + proto.isDST = isDaylightSavingTime; + proto.isLocal = isLocal; + proto.isUtcOffset = isUtcOffset; + proto.isUtc = isUtc; + proto.isUTC = isUtc; + proto.zoneAbbr = getZoneAbbr; + proto.zoneName = getZoneName; + proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth); + proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth); + proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear); + proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone); + proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted); + + function createUnix (input) { + return createLocal(input * 1000); + } + + function createInZone () { + return createLocal.apply(null, arguments).parseZone(); + } + + function preParsePostFormat (string) { + return string; + } + + var proto$1 = Locale.prototype; + + proto$1.calendar = calendar; + proto$1.longDateFormat = longDateFormat; + proto$1.invalidDate = invalidDate; + proto$1.ordinal = ordinal; + proto$1.preparse = preParsePostFormat; + proto$1.postformat = preParsePostFormat; + proto$1.relativeTime = relativeTime; + proto$1.pastFuture = pastFuture; + proto$1.set = set; + + proto$1.months = localeMonths; + proto$1.monthsShort = localeMonthsShort; + proto$1.monthsParse = localeMonthsParse; + proto$1.monthsRegex = monthsRegex; + proto$1.monthsShortRegex = monthsShortRegex; + proto$1.week = localeWeek; + proto$1.firstDayOfYear = localeFirstDayOfYear; + proto$1.firstDayOfWeek = localeFirstDayOfWeek; + + proto$1.weekdays = localeWeekdays; + proto$1.weekdaysMin = localeWeekdaysMin; + proto$1.weekdaysShort = localeWeekdaysShort; + proto$1.weekdaysParse = localeWeekdaysParse; + + proto$1.weekdaysRegex = weekdaysRegex; + proto$1.weekdaysShortRegex = weekdaysShortRegex; + proto$1.weekdaysMinRegex = weekdaysMinRegex; + + proto$1.isPM = localeIsPM; + proto$1.meridiem = localeMeridiem; + + function get$1 (format, index, field, setter) { + var locale = getLocale(); + var utc = createUTC().set(setter, index); + return locale[field](utc, format); + } + + function listMonthsImpl (format, index, field) { + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + + if (index != null) { + return get$1(format, index, field, 'month'); + } + + var i; + var out = []; + for (i = 0; i < 12; i++) { + out[i] = get$1(format, i, field, 'month'); + } + return out; + } + + // () + // (5) + // (fmt, 5) + // (fmt) + // (true) + // (true, 5) + // (true, fmt, 5) + // (true, fmt) + function listWeekdaysImpl (localeSorted, format, index, field) { + if (typeof localeSorted === 'boolean') { + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + } else { + format = localeSorted; + index = format; + localeSorted = false; + + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + } + + var locale = getLocale(), + shift = localeSorted ? locale._week.dow : 0; + + if (index != null) { + return get$1(format, (index + shift) % 7, field, 'day'); + } + + var i; + var out = []; + for (i = 0; i < 7; i++) { + out[i] = get$1(format, (i + shift) % 7, field, 'day'); + } + return out; + } + + function listMonths (format, index) { + return listMonthsImpl(format, index, 'months'); + } + + function listMonthsShort (format, index) { + return listMonthsImpl(format, index, 'monthsShort'); + } + + function listWeekdays (localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); + } + + function listWeekdaysShort (localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); + } + + function listWeekdaysMin (localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); + } + + getSetGlobalLocale('en', { + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal : function (number) { + var b = number % 10, + output = (toInt(number % 100 / 10) === 1) ? 'th' : + (b === 1) ? 'st' : + (b === 2) ? 'nd' : + (b === 3) ? 'rd' : 'th'; + return number + output; + } + }); + + // Side effect imports + + hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale); + hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale); + + var mathAbs = Math.abs; + + function abs () { + var data = this._data; + + this._milliseconds = mathAbs(this._milliseconds); + this._days = mathAbs(this._days); + this._months = mathAbs(this._months); + + data.milliseconds = mathAbs(data.milliseconds); + data.seconds = mathAbs(data.seconds); + data.minutes = mathAbs(data.minutes); + data.hours = mathAbs(data.hours); + data.months = mathAbs(data.months); + data.years = mathAbs(data.years); + + return this; + } + + function addSubtract$1 (duration, input, value, direction) { + var other = createDuration(input, value); + + duration._milliseconds += direction * other._milliseconds; + duration._days += direction * other._days; + duration._months += direction * other._months; + + return duration._bubble(); + } + + // supports only 2.0-style add(1, 's') or add(duration) + function add$1 (input, value) { + return addSubtract$1(this, input, value, 1); + } + + // supports only 2.0-style subtract(1, 's') or subtract(duration) + function subtract$1 (input, value) { + return addSubtract$1(this, input, value, -1); + } + + function absCeil (number) { + if (number < 0) { + return Math.floor(number); + } else { + return Math.ceil(number); + } + } + + function bubble () { + var milliseconds = this._milliseconds; + var days = this._days; + var months = this._months; + var data = this._data; + var seconds, minutes, hours, years, monthsFromDays; + + // if we have a mix of positive and negative values, bubble down first + // check: https://github.com/moment/moment/issues/2166 + if (!((milliseconds >= 0 && days >= 0 && months >= 0) || + (milliseconds <= 0 && days <= 0 && months <= 0))) { + milliseconds += absCeil(monthsToDays(months) + days) * 864e5; + days = 0; + months = 0; + } + + // The following code bubbles up values, see the tests for + // examples of what that means. + data.milliseconds = milliseconds % 1000; + + seconds = absFloor(milliseconds / 1000); + data.seconds = seconds % 60; + + minutes = absFloor(seconds / 60); + data.minutes = minutes % 60; + + hours = absFloor(minutes / 60); + data.hours = hours % 24; + + days += absFloor(hours / 24); + + // convert days to months + monthsFromDays = absFloor(daysToMonths(days)); + months += monthsFromDays; + days -= absCeil(monthsToDays(monthsFromDays)); + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + data.days = days; + data.months = months; + data.years = years; + + return this; + } + + function daysToMonths (days) { + // 400 years have 146097 days (taking into account leap year rules) + // 400 years have 12 months === 4800 + return days * 4800 / 146097; + } + + function monthsToDays (months) { + // the reverse of daysToMonths + return months * 146097 / 4800; + } + + function as (units) { + if (!this.isValid()) { + return NaN; + } + var days; + var months; + var milliseconds = this._milliseconds; + + units = normalizeUnits(units); + + if (units === 'month' || units === 'quarter' || units === 'year') { + days = this._days + milliseconds / 864e5; + months = this._months + daysToMonths(days); + switch (units) { + case 'month': return months; + case 'quarter': return months / 3; + case 'year': return months / 12; + } + } else { + // handle milliseconds separately because of floating point math errors (issue #1867) + days = this._days + Math.round(monthsToDays(this._months)); + switch (units) { + case 'week' : return days / 7 + milliseconds / 6048e5; + case 'day' : return days + milliseconds / 864e5; + case 'hour' : return days * 24 + milliseconds / 36e5; + case 'minute' : return days * 1440 + milliseconds / 6e4; + case 'second' : return days * 86400 + milliseconds / 1000; + // Math.floor prevents floating point math errors here + case 'millisecond': return Math.floor(days * 864e5) + milliseconds; + default: throw new Error('Unknown unit ' + units); + } + } + } + + // TODO: Use this.as('ms')? + function valueOf$1 () { + if (!this.isValid()) { + return NaN; + } + return ( + this._milliseconds + + this._days * 864e5 + + (this._months % 12) * 2592e6 + + toInt(this._months / 12) * 31536e6 + ); + } + + function makeAs (alias) { + return function () { + return this.as(alias); + }; + } + + var asMilliseconds = makeAs('ms'); + var asSeconds = makeAs('s'); + var asMinutes = makeAs('m'); + var asHours = makeAs('h'); + var asDays = makeAs('d'); + var asWeeks = makeAs('w'); + var asMonths = makeAs('M'); + var asQuarters = makeAs('Q'); + var asYears = makeAs('y'); + + function clone$1 () { + return createDuration(this); + } + + function get$2 (units) { + units = normalizeUnits(units); + return this.isValid() ? this[units + 's']() : NaN; + } + + function makeGetter(name) { + return function () { + return this.isValid() ? this._data[name] : NaN; + }; + } + + var milliseconds = makeGetter('milliseconds'); + var seconds = makeGetter('seconds'); + var minutes = makeGetter('minutes'); + var hours = makeGetter('hours'); + var days = makeGetter('days'); + var months = makeGetter('months'); + var years = makeGetter('years'); + + function weeks () { + return absFloor(this.days() / 7); + } + + var round = Math.round; + var thresholds = { + ss: 44, // a few seconds to seconds + s : 45, // seconds to minute + m : 45, // minutes to hour + h : 22, // hours to day + d : 26, // days to month + M : 11 // months to year + }; + + // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize + function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { + return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); + } + + function relativeTime$1 (posNegDuration, withoutSuffix, locale) { + var duration = createDuration(posNegDuration).abs(); + var seconds = round(duration.as('s')); + var minutes = round(duration.as('m')); + var hours = round(duration.as('h')); + var days = round(duration.as('d')); + var months = round(duration.as('M')); + var years = round(duration.as('y')); + + var a = seconds <= thresholds.ss && ['s', seconds] || + seconds < thresholds.s && ['ss', seconds] || + minutes <= 1 && ['m'] || + minutes < thresholds.m && ['mm', minutes] || + hours <= 1 && ['h'] || + hours < thresholds.h && ['hh', hours] || + days <= 1 && ['d'] || + days < thresholds.d && ['dd', days] || + months <= 1 && ['M'] || + months < thresholds.M && ['MM', months] || + years <= 1 && ['y'] || ['yy', years]; + + a[2] = withoutSuffix; + a[3] = +posNegDuration > 0; + a[4] = locale; + return substituteTimeAgo.apply(null, a); + } + + // This function allows you to set the rounding function for relative time strings + function getSetRelativeTimeRounding (roundingFunction) { + if (roundingFunction === undefined) { + return round; + } + if (typeof(roundingFunction) === 'function') { + round = roundingFunction; + return true; + } + return false; + } + + // This function allows you to set a threshold for relative time strings + function getSetRelativeTimeThreshold (threshold, limit) { + if (thresholds[threshold] === undefined) { + return false; + } + if (limit === undefined) { + return thresholds[threshold]; + } + thresholds[threshold] = limit; + if (threshold === 's') { + thresholds.ss = limit - 1; + } + return true; + } + + function humanize (withSuffix) { + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + + var locale = this.localeData(); + var output = relativeTime$1(this, !withSuffix, locale); + + if (withSuffix) { + output = locale.pastFuture(+this, output); + } + + return locale.postformat(output); + } + + var abs$1 = Math.abs; + + function sign(x) { + return ((x > 0) - (x < 0)) || +x; + } + + function toISOString$1() { + // for ISO strings we do not use the normal bubbling rules: + // * milliseconds bubble up until they become hours + // * days do not bubble at all + // * months bubble up until they become years + // This is because there is no context-free conversion between hours and days + // (think of clock changes) + // and also not between days and months (28-31 days per month) + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + + var seconds = abs$1(this._milliseconds) / 1000; + var days = abs$1(this._days); + var months = abs$1(this._months); + var minutes, hours, years; + + // 3600 seconds -> 60 minutes -> 1 hour + minutes = absFloor(seconds / 60); + hours = absFloor(minutes / 60); + seconds %= 60; + minutes %= 60; + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + + // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js + var Y = years; + var M = months; + var D = days; + var h = hours; + var m = minutes; + var s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : ''; + var total = this.asSeconds(); + + if (!total) { + // this is the same as C#'s (Noda) and python (isodate)... + // but not other JS (goog.date) + return 'P0D'; + } + + var totalSign = total < 0 ? '-' : ''; + var ymSign = sign(this._months) !== sign(total) ? '-' : ''; + var daysSign = sign(this._days) !== sign(total) ? '-' : ''; + var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : ''; + + return totalSign + 'P' + + (Y ? ymSign + Y + 'Y' : '') + + (M ? ymSign + M + 'M' : '') + + (D ? daysSign + D + 'D' : '') + + ((h || m || s) ? 'T' : '') + + (h ? hmsSign + h + 'H' : '') + + (m ? hmsSign + m + 'M' : '') + + (s ? hmsSign + s + 'S' : ''); + } + + var proto$2 = Duration.prototype; + + proto$2.isValid = isValid$1; + proto$2.abs = abs; + proto$2.add = add$1; + proto$2.subtract = subtract$1; + proto$2.as = as; + proto$2.asMilliseconds = asMilliseconds; + proto$2.asSeconds = asSeconds; + proto$2.asMinutes = asMinutes; + proto$2.asHours = asHours; + proto$2.asDays = asDays; + proto$2.asWeeks = asWeeks; + proto$2.asMonths = asMonths; + proto$2.asQuarters = asQuarters; + proto$2.asYears = asYears; + proto$2.valueOf = valueOf$1; + proto$2._bubble = bubble; + proto$2.clone = clone$1; + proto$2.get = get$2; + proto$2.milliseconds = milliseconds; + proto$2.seconds = seconds; + proto$2.minutes = minutes; + proto$2.hours = hours; + proto$2.days = days; + proto$2.weeks = weeks; + proto$2.months = months; + proto$2.years = years; + proto$2.humanize = humanize; + proto$2.toISOString = toISOString$1; + proto$2.toString = toISOString$1; + proto$2.toJSON = toISOString$1; + proto$2.locale = locale; + proto$2.localeData = localeData; + + proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1); + proto$2.lang = lang; + + // Side effect imports + + // FORMATTING + + addFormatToken('X', 0, 0, 'unix'); + addFormatToken('x', 0, 0, 'valueOf'); + + // PARSING + + addRegexToken('x', matchSigned); + addRegexToken('X', matchTimestamp); + addParseToken('X', function (input, array, config) { + config._d = new Date(parseFloat(input, 10) * 1000); + }); + addParseToken('x', function (input, array, config) { + config._d = new Date(toInt(input)); + }); + + // Side effect imports + + + hooks.version = '2.24.0'; + + setHookCallback(createLocal); + + hooks.fn = proto; + hooks.min = min; + hooks.max = max; + hooks.now = now; + hooks.utc = createUTC; + hooks.unix = createUnix; + hooks.months = listMonths; + hooks.isDate = isDate; + hooks.locale = getSetGlobalLocale; + hooks.invalid = createInvalid; + hooks.duration = createDuration; + hooks.isMoment = isMoment; + hooks.weekdays = listWeekdays; + hooks.parseZone = createInZone; + hooks.localeData = getLocale; + hooks.isDuration = isDuration; + hooks.monthsShort = listMonthsShort; + hooks.weekdaysMin = listWeekdaysMin; + hooks.defineLocale = defineLocale; + hooks.updateLocale = updateLocale; + hooks.locales = listLocales; + hooks.weekdaysShort = listWeekdaysShort; + hooks.normalizeUnits = normalizeUnits; + hooks.relativeTimeRounding = getSetRelativeTimeRounding; + hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; + hooks.calendarFormat = getCalendarFormat; + hooks.prototype = proto; + + // currently HTML5 input type only supports 24-hour formats + hooks.HTML5_FMT = { + DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type="datetime-local" /> + DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type="datetime-local" step="1" /> + DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type="datetime-local" step="0.001" /> + DATE: 'YYYY-MM-DD', // <input type="date" /> + TIME: 'HH:mm', // <input type="time" /> + TIME_SECONDS: 'HH:mm:ss', // <input type="time" step="1" /> + TIME_MS: 'HH:mm:ss.SSS', // <input type="time" step="0.001" /> + WEEK: 'GGGG-[W]WW', // <input type="week" /> + MONTH: 'YYYY-MM' // <input type="month" /> + }; + + return hooks; + +}))); +}); + +var FORMATS = { + datetime: 'MMM D, YYYY, h:mm:ss a', + millisecond: 'h:mm:ss.SSS a', + second: 'h:mm:ss a', + minute: 'h:mm a', + hour: 'hA', + day: 'MMM D', + week: 'll', + month: 'MMM YYYY', + quarter: '[Q]Q - YYYY', + year: 'YYYY' +}; + +core_adapters._date.override(typeof moment === 'function' ? { + _id: 'moment', // DEBUG ONLY + + formats: function() { + return FORMATS; + }, + + parse: function(value, format) { + if (typeof value === 'string' && typeof format === 'string') { + value = moment(value, format); + } else if (!(value instanceof moment)) { + value = moment(value); + } + return value.isValid() ? value.valueOf() : null; + }, + + format: function(time, format) { + return moment(time).format(format); + }, + + add: function(time, amount, unit) { + return moment(time).add(amount, unit).valueOf(); + }, + + diff: function(max, min, unit) { + return moment.duration(moment(max).diff(moment(min))).as(unit); + }, + + startOf: function(time, unit, weekday) { + time = moment(time); + if (unit === 'isoWeek') { + return time.isoWeekday(weekday).valueOf(); + } + return time.startOf(unit).valueOf(); + }, + + endOf: function(time, unit) { + return moment(time).endOf(unit).valueOf(); + }, + + // DEPRECATIONS + + /** + * Provided for backward compatibility with scale.getValueForPixel(). + * @deprecated since version 2.8.0 + * @todo remove at version 3 + * @private + */ + _create: function(time) { + return moment(time); + }, +} : {}); + +core_defaults._set('global', { + plugins: { + filler: { + propagate: true + } + } +}); + +var mappers = { + dataset: function(source) { + var index = source.fill; + var chart = source.chart; + var meta = chart.getDatasetMeta(index); + var visible = meta && chart.isDatasetVisible(index); + var points = (visible && meta.dataset._children) || []; + var length = points.length || 0; + + return !length ? null : function(point, i) { + return (i < length && points[i]._view) || null; + }; + }, + + boundary: function(source) { + var boundary = source.boundary; + var x = boundary ? boundary.x : null; + var y = boundary ? boundary.y : null; + + return function(point) { + return { + x: x === null ? point.x : x, + y: y === null ? point.y : y, + }; + }; + } +}; + +// @todo if (fill[0] === '#') +function decodeFill(el, index, count) { + var model = el._model || {}; + var fill = model.fill; + var target; + + if (fill === undefined) { + fill = !!model.backgroundColor; + } + + if (fill === false || fill === null) { + return false; + } + + if (fill === true) { + return 'origin'; + } + + target = parseFloat(fill, 10); + if (isFinite(target) && Math.floor(target) === target) { + if (fill[0] === '-' || fill[0] === '+') { + target = index + target; + } + + if (target === index || target < 0 || target >= count) { + return false; + } + + return target; + } + + switch (fill) { + // compatibility + case 'bottom': + return 'start'; + case 'top': + return 'end'; + case 'zero': + return 'origin'; + // supported boundaries + case 'origin': + case 'start': + case 'end': + return fill; + // invalid fill values + default: + return false; + } +} + +function computeBoundary(source) { + var model = source.el._model || {}; + var scale = source.el._scale || {}; + var fill = source.fill; + var target = null; + var horizontal; + + if (isFinite(fill)) { + return null; + } + + // Backward compatibility: until v3, we still need to support boundary values set on + // the model (scaleTop, scaleBottom and scaleZero) because some external plugins and + // controllers might still use it (e.g. the Smith chart). + + if (fill === 'start') { + target = model.scaleBottom === undefined ? scale.bottom : model.scaleBottom; + } else if (fill === 'end') { + target = model.scaleTop === undefined ? scale.top : model.scaleTop; + } else if (model.scaleZero !== undefined) { + target = model.scaleZero; + } else if (scale.getBasePosition) { + target = scale.getBasePosition(); + } else if (scale.getBasePixel) { + target = scale.getBasePixel(); + } + + if (target !== undefined && target !== null) { + if (target.x !== undefined && target.y !== undefined) { + return target; + } + + if (helpers$1.isFinite(target)) { + horizontal = scale.isHorizontal(); + return { + x: horizontal ? target : null, + y: horizontal ? null : target + }; + } + } + + return null; +} + +function resolveTarget(sources, index, propagate) { + var source = sources[index]; + var fill = source.fill; + var visited = [index]; + var target; + + if (!propagate) { + return fill; + } + + while (fill !== false && visited.indexOf(fill) === -1) { + if (!isFinite(fill)) { + return fill; + } + + target = sources[fill]; + if (!target) { + return false; + } + + if (target.visible) { + return fill; + } + + visited.push(fill); + fill = target.fill; + } + + return false; +} + +function createMapper(source) { + var fill = source.fill; + var type = 'dataset'; + + if (fill === false) { + return null; + } + + if (!isFinite(fill)) { + type = 'boundary'; + } + + return mappers[type](source); +} + +function isDrawable(point) { + return point && !point.skip; +} + +function drawArea(ctx, curve0, curve1, len0, len1) { + var i; + + if (!len0 || !len1) { + return; + } + + // building first area curve (normal) + ctx.moveTo(curve0[0].x, curve0[0].y); + for (i = 1; i < len0; ++i) { + helpers$1.canvas.lineTo(ctx, curve0[i - 1], curve0[i]); + } + + // joining the two area curves + ctx.lineTo(curve1[len1 - 1].x, curve1[len1 - 1].y); + + // building opposite area curve (reverse) + for (i = len1 - 1; i > 0; --i) { + helpers$1.canvas.lineTo(ctx, curve1[i], curve1[i - 1], true); + } +} + +function doFill(ctx, points, mapper, view, color, loop) { + var count = points.length; + var span = view.spanGaps; + var curve0 = []; + var curve1 = []; + var len0 = 0; + var len1 = 0; + var i, ilen, index, p0, p1, d0, d1; + + ctx.beginPath(); + + for (i = 0, ilen = (count + !!loop); i < ilen; ++i) { + index = i % count; + p0 = points[index]._view; + p1 = mapper(p0, index, view); + d0 = isDrawable(p0); + d1 = isDrawable(p1); + + if (d0 && d1) { + len0 = curve0.push(p0); + len1 = curve1.push(p1); + } else if (len0 && len1) { + if (!span) { + drawArea(ctx, curve0, curve1, len0, len1); + len0 = len1 = 0; + curve0 = []; + curve1 = []; + } else { + if (d0) { + curve0.push(p0); + } + if (d1) { + curve1.push(p1); + } + } + } + } + + drawArea(ctx, curve0, curve1, len0, len1); + + ctx.closePath(); + ctx.fillStyle = color; + ctx.fill(); +} + +var plugin_filler = { + id: 'filler', + + afterDatasetsUpdate: function(chart, options) { + var count = (chart.data.datasets || []).length; + var propagate = options.propagate; + var sources = []; + var meta, i, el, source; + + for (i = 0; i < count; ++i) { + meta = chart.getDatasetMeta(i); + el = meta.dataset; + source = null; + + if (el && el._model && el instanceof elements.Line) { + source = { + visible: chart.isDatasetVisible(i), + fill: decodeFill(el, i, count), + chart: chart, + el: el + }; + } + + meta.$filler = source; + sources.push(source); + } + + for (i = 0; i < count; ++i) { + source = sources[i]; + if (!source) { + continue; + } + + source.fill = resolveTarget(sources, i, propagate); + source.boundary = computeBoundary(source); + source.mapper = createMapper(source); + } + }, + + beforeDatasetDraw: function(chart, args) { + var meta = args.meta.$filler; + if (!meta) { + return; + } + + var ctx = chart.ctx; + var el = meta.el; + var view = el._view; + var points = el._children || []; + var mapper = meta.mapper; + var color = view.backgroundColor || core_defaults.global.defaultColor; + + if (mapper && color && points.length) { + helpers$1.canvas.clipArea(ctx, chart.chartArea); + doFill(ctx, points, mapper, view, color, el._loop); + helpers$1.canvas.unclipArea(ctx); + } + } +}; + +var noop$1 = helpers$1.noop; +var valueOrDefault$d = helpers$1.valueOrDefault; + +core_defaults._set('global', { + legend: { + display: true, + position: 'top', + fullWidth: true, + reverse: false, + weight: 1000, + + // a callback that will handle + onClick: function(e, legendItem) { + var index = legendItem.datasetIndex; + var ci = this.chart; + var meta = ci.getDatasetMeta(index); + + // See controller.isDatasetVisible comment + meta.hidden = meta.hidden === null ? !ci.data.datasets[index].hidden : null; + + // We hid a dataset ... rerender the chart + ci.update(); + }, + + onHover: null, + onLeave: null, + + labels: { + boxWidth: 40, + padding: 10, + // Generates labels shown in the legend + // Valid properties to return: + // text : text to display + // fillStyle : fill of coloured box + // strokeStyle: stroke of coloured box + // hidden : if this legend item refers to a hidden item + // lineCap : cap style for line + // lineDash + // lineDashOffset : + // lineJoin : + // lineWidth : + generateLabels: function(chart) { + var data = chart.data; + return helpers$1.isArray(data.datasets) ? data.datasets.map(function(dataset, i) { + return { + text: dataset.label, + fillStyle: (!helpers$1.isArray(dataset.backgroundColor) ? dataset.backgroundColor : dataset.backgroundColor[0]), + hidden: !chart.isDatasetVisible(i), + lineCap: dataset.borderCapStyle, + lineDash: dataset.borderDash, + lineDashOffset: dataset.borderDashOffset, + lineJoin: dataset.borderJoinStyle, + lineWidth: dataset.borderWidth, + strokeStyle: dataset.borderColor, + pointStyle: dataset.pointStyle, + + // Below is extra data used for toggling the datasets + datasetIndex: i + }; + }, this) : []; + } + } + }, + + legendCallback: function(chart) { + var text = []; + text.push('<ul class="' + chart.id + '-legend">'); + for (var i = 0; i < chart.data.datasets.length; i++) { + text.push('<li><span style="background-color:' + chart.data.datasets[i].backgroundColor + '"></span>'); + if (chart.data.datasets[i].label) { + text.push(chart.data.datasets[i].label); + } + text.push('</li>'); + } + text.push('</ul>'); + return text.join(''); + } +}); + +/** + * Helper function to get the box width based on the usePointStyle option + * @param {object} labelopts - the label options on the legend + * @param {number} fontSize - the label font size + * @return {number} width of the color box area + */ +function getBoxWidth(labelOpts, fontSize) { + return labelOpts.usePointStyle && labelOpts.boxWidth > fontSize ? + fontSize : + labelOpts.boxWidth; +} + +/** + * IMPORTANT: this class is exposed publicly as Chart.Legend, backward compatibility required! + */ +var Legend = core_element.extend({ + + initialize: function(config) { + helpers$1.extend(this, config); + + // Contains hit boxes for each dataset (in dataset order) + this.legendHitBoxes = []; + + /** + * @private + */ + this._hoveredItem = null; + + // Are we in doughnut mode which has a different data type + this.doughnutMode = false; + }, + + // These methods are ordered by lifecycle. Utilities then follow. + // Any function defined here is inherited by all legend types. + // Any function can be extended by the legend type + + beforeUpdate: noop$1, + update: function(maxWidth, maxHeight, margins) { + var me = this; + + // Update Lifecycle - Probably don't want to ever extend or overwrite this function ;) + me.beforeUpdate(); + + // Absorb the master measurements + me.maxWidth = maxWidth; + me.maxHeight = maxHeight; + me.margins = margins; + + // Dimensions + me.beforeSetDimensions(); + me.setDimensions(); + me.afterSetDimensions(); + // Labels + me.beforeBuildLabels(); + me.buildLabels(); + me.afterBuildLabels(); + + // Fit + me.beforeFit(); + me.fit(); + me.afterFit(); + // + me.afterUpdate(); + + return me.minSize; + }, + afterUpdate: noop$1, + + // + + beforeSetDimensions: noop$1, + setDimensions: function() { + var me = this; + // Set the unconstrained dimension before label rotation + if (me.isHorizontal()) { + // Reset position before calculating rotation + me.width = me.maxWidth; + me.left = 0; + me.right = me.width; + } else { + me.height = me.maxHeight; + + // Reset position before calculating rotation + me.top = 0; + me.bottom = me.height; + } + + // Reset padding + me.paddingLeft = 0; + me.paddingTop = 0; + me.paddingRight = 0; + me.paddingBottom = 0; + + // Reset minSize + me.minSize = { + width: 0, + height: 0 + }; + }, + afterSetDimensions: noop$1, + + // + + beforeBuildLabels: noop$1, + buildLabels: function() { + var me = this; + var labelOpts = me.options.labels || {}; + var legendItems = helpers$1.callback(labelOpts.generateLabels, [me.chart], me) || []; + + if (labelOpts.filter) { + legendItems = legendItems.filter(function(item) { + return labelOpts.filter(item, me.chart.data); + }); + } + + if (me.options.reverse) { + legendItems.reverse(); + } + + me.legendItems = legendItems; + }, + afterBuildLabels: noop$1, + + // + + beforeFit: noop$1, + fit: function() { + var me = this; + var opts = me.options; + var labelOpts = opts.labels; + var display = opts.display; + + var ctx = me.ctx; + + var labelFont = helpers$1.options._parseFont(labelOpts); + var fontSize = labelFont.size; + + // Reset hit boxes + var hitboxes = me.legendHitBoxes = []; + + var minSize = me.minSize; + var isHorizontal = me.isHorizontal(); + + if (isHorizontal) { + minSize.width = me.maxWidth; // fill all the width + minSize.height = display ? 10 : 0; + } else { + minSize.width = display ? 10 : 0; + minSize.height = me.maxHeight; // fill all the height + } + + // Increase sizes here + if (display) { + ctx.font = labelFont.string; + + if (isHorizontal) { + // Labels + + // Width of each line of legend boxes. Labels wrap onto multiple lines when there are too many to fit on one + var lineWidths = me.lineWidths = [0]; + var totalHeight = 0; + + ctx.textAlign = 'left'; + ctx.textBaseline = 'top'; + + helpers$1.each(me.legendItems, function(legendItem, i) { + var boxWidth = getBoxWidth(labelOpts, fontSize); + var width = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width; + + if (i === 0 || lineWidths[lineWidths.length - 1] + width + labelOpts.padding > minSize.width) { + totalHeight += fontSize + labelOpts.padding; + lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = labelOpts.padding; + } + + // Store the hitbox width and height here. Final position will be updated in `draw` + hitboxes[i] = { + left: 0, + top: 0, + width: width, + height: fontSize + }; + + lineWidths[lineWidths.length - 1] += width + labelOpts.padding; + }); + + minSize.height += totalHeight; + + } else { + var vPadding = labelOpts.padding; + var columnWidths = me.columnWidths = []; + var totalWidth = labelOpts.padding; + var currentColWidth = 0; + var currentColHeight = 0; + var itemHeight = fontSize + vPadding; + + helpers$1.each(me.legendItems, function(legendItem, i) { + var boxWidth = getBoxWidth(labelOpts, fontSize); + var itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width; + + // If too tall, go to new column + if (i > 0 && currentColHeight + itemHeight > minSize.height - vPadding) { + totalWidth += currentColWidth + labelOpts.padding; + columnWidths.push(currentColWidth); // previous column width + + currentColWidth = 0; + currentColHeight = 0; + } + + // Get max width + currentColWidth = Math.max(currentColWidth, itemWidth); + currentColHeight += itemHeight; + + // Store the hitbox width and height here. Final position will be updated in `draw` + hitboxes[i] = { + left: 0, + top: 0, + width: itemWidth, + height: fontSize + }; + }); + + totalWidth += currentColWidth; + columnWidths.push(currentColWidth); + minSize.width += totalWidth; + } + } + + me.width = minSize.width; + me.height = minSize.height; + }, + afterFit: noop$1, + + // Shared Methods + isHorizontal: function() { + return this.options.position === 'top' || this.options.position === 'bottom'; + }, + + // Actually draw the legend on the canvas + draw: function() { + var me = this; + var opts = me.options; + var labelOpts = opts.labels; + var globalDefaults = core_defaults.global; + var defaultColor = globalDefaults.defaultColor; + var lineDefault = globalDefaults.elements.line; + var legendWidth = me.width; + var lineWidths = me.lineWidths; + + if (opts.display) { + var ctx = me.ctx; + var fontColor = valueOrDefault$d(labelOpts.fontColor, globalDefaults.defaultFontColor); + var labelFont = helpers$1.options._parseFont(labelOpts); + var fontSize = labelFont.size; + var cursor; + + // Canvas setup + ctx.textAlign = 'left'; + ctx.textBaseline = 'middle'; + ctx.lineWidth = 0.5; + ctx.strokeStyle = fontColor; // for strikethrough effect + ctx.fillStyle = fontColor; // render in correct colour + ctx.font = labelFont.string; + + var boxWidth = getBoxWidth(labelOpts, fontSize); + var hitboxes = me.legendHitBoxes; + + // current position + var drawLegendBox = function(x, y, legendItem) { + if (isNaN(boxWidth) || boxWidth <= 0) { + return; + } + + // Set the ctx for the box + ctx.save(); + + var lineWidth = valueOrDefault$d(legendItem.lineWidth, lineDefault.borderWidth); + ctx.fillStyle = valueOrDefault$d(legendItem.fillStyle, defaultColor); + ctx.lineCap = valueOrDefault$d(legendItem.lineCap, lineDefault.borderCapStyle); + ctx.lineDashOffset = valueOrDefault$d(legendItem.lineDashOffset, lineDefault.borderDashOffset); + ctx.lineJoin = valueOrDefault$d(legendItem.lineJoin, lineDefault.borderJoinStyle); + ctx.lineWidth = lineWidth; + ctx.strokeStyle = valueOrDefault$d(legendItem.strokeStyle, defaultColor); + + if (ctx.setLineDash) { + // IE 9 and 10 do not support line dash + ctx.setLineDash(valueOrDefault$d(legendItem.lineDash, lineDefault.borderDash)); + } + + if (opts.labels && opts.labels.usePointStyle) { + // Recalculate x and y for drawPoint() because its expecting + // x and y to be center of figure (instead of top left) + var radius = boxWidth * Math.SQRT2 / 2; + var centerX = x + boxWidth / 2; + var centerY = y + fontSize / 2; + + // Draw pointStyle as legend symbol + helpers$1.canvas.drawPoint(ctx, legendItem.pointStyle, radius, centerX, centerY); + } else { + // Draw box as legend symbol + if (lineWidth !== 0) { + ctx.strokeRect(x, y, boxWidth, fontSize); + } + ctx.fillRect(x, y, boxWidth, fontSize); + } + + ctx.restore(); + }; + var fillText = function(x, y, legendItem, textWidth) { + var halfFontSize = fontSize / 2; + var xLeft = boxWidth + halfFontSize + x; + var yMiddle = y + halfFontSize; + + ctx.fillText(legendItem.text, xLeft, yMiddle); + + if (legendItem.hidden) { + // Strikethrough the text if hidden + ctx.beginPath(); + ctx.lineWidth = 2; + ctx.moveTo(xLeft, yMiddle); + ctx.lineTo(xLeft + textWidth, yMiddle); + ctx.stroke(); + } + }; + + // Horizontal + var isHorizontal = me.isHorizontal(); + if (isHorizontal) { + cursor = { + x: me.left + ((legendWidth - lineWidths[0]) / 2) + labelOpts.padding, + y: me.top + labelOpts.padding, + line: 0 + }; + } else { + cursor = { + x: me.left + labelOpts.padding, + y: me.top + labelOpts.padding, + line: 0 + }; + } + + var itemHeight = fontSize + labelOpts.padding; + helpers$1.each(me.legendItems, function(legendItem, i) { + var textWidth = ctx.measureText(legendItem.text).width; + var width = boxWidth + (fontSize / 2) + textWidth; + var x = cursor.x; + var y = cursor.y; + + // Use (me.left + me.minSize.width) and (me.top + me.minSize.height) + // instead of me.right and me.bottom because me.width and me.height + // may have been changed since me.minSize was calculated + if (isHorizontal) { + if (i > 0 && x + width + labelOpts.padding > me.left + me.minSize.width) { + y = cursor.y += itemHeight; + cursor.line++; + x = cursor.x = me.left + ((legendWidth - lineWidths[cursor.line]) / 2) + labelOpts.padding; + } + } else if (i > 0 && y + itemHeight > me.top + me.minSize.height) { + x = cursor.x = x + me.columnWidths[cursor.line] + labelOpts.padding; + y = cursor.y = me.top + labelOpts.padding; + cursor.line++; + } + + drawLegendBox(x, y, legendItem); + + hitboxes[i].left = x; + hitboxes[i].top = y; + + // Fill the actual label + fillText(x, y, legendItem, textWidth); + + if (isHorizontal) { + cursor.x += width + labelOpts.padding; + } else { + cursor.y += itemHeight; + } + + }); + } + }, + + /** + * @private + */ + _getLegendItemAt: function(x, y) { + var me = this; + var i, hitBox, lh; + + if (x >= me.left && x <= me.right && y >= me.top && y <= me.bottom) { + // See if we are touching one of the dataset boxes + lh = me.legendHitBoxes; + for (i = 0; i < lh.length; ++i) { + hitBox = lh[i]; + + if (x >= hitBox.left && x <= hitBox.left + hitBox.width && y >= hitBox.top && y <= hitBox.top + hitBox.height) { + // Touching an element + return me.legendItems[i]; + } + } + } + + return null; + }, + + /** + * Handle an event + * @private + * @param {IEvent} event - The event to handle + */ + handleEvent: function(e) { + var me = this; + var opts = me.options; + var type = e.type === 'mouseup' ? 'click' : e.type; + var hoveredItem; + + if (type === 'mousemove') { + if (!opts.onHover && !opts.onLeave) { + return; + } + } else if (type === 'click') { + if (!opts.onClick) { + return; + } + } else { + return; + } + + // Chart event already has relative position in it + hoveredItem = me._getLegendItemAt(e.x, e.y); + + if (type === 'click') { + if (hoveredItem && opts.onClick) { + // use e.native for backwards compatibility + opts.onClick.call(me, e.native, hoveredItem); + } + } else { + if (opts.onLeave && hoveredItem !== me._hoveredItem) { + if (me._hoveredItem) { + opts.onLeave.call(me, e.native, me._hoveredItem); + } + me._hoveredItem = hoveredItem; + } + + if (opts.onHover && hoveredItem) { + // use e.native for backwards compatibility + opts.onHover.call(me, e.native, hoveredItem); + } + } + } +}); + +function createNewLegendAndAttach(chart, legendOpts) { + var legend = new Legend({ + ctx: chart.ctx, + options: legendOpts, + chart: chart + }); + + core_layouts.configure(chart, legend, legendOpts); + core_layouts.addBox(chart, legend); + chart.legend = legend; +} + +var plugin_legend = { + id: 'legend', + + /** + * Backward compatibility: since 2.1.5, the legend is registered as a plugin, making + * Chart.Legend obsolete. To avoid a breaking change, we export the Legend as part of + * the plugin, which one will be re-exposed in the chart.js file. + * https://github.com/chartjs/Chart.js/pull/2640 + * @private + */ + _element: Legend, + + beforeInit: function(chart) { + var legendOpts = chart.options.legend; + + if (legendOpts) { + createNewLegendAndAttach(chart, legendOpts); + } + }, + + beforeUpdate: function(chart) { + var legendOpts = chart.options.legend; + var legend = chart.legend; + + if (legendOpts) { + helpers$1.mergeIf(legendOpts, core_defaults.global.legend); + + if (legend) { + core_layouts.configure(chart, legend, legendOpts); + legend.options = legendOpts; + } else { + createNewLegendAndAttach(chart, legendOpts); + } + } else if (legend) { + core_layouts.removeBox(chart, legend); + delete chart.legend; + } + }, + + afterEvent: function(chart, e) { + var legend = chart.legend; + if (legend) { + legend.handleEvent(e); + } + } +}; + +var noop$2 = helpers$1.noop; + +core_defaults._set('global', { + title: { + display: false, + fontStyle: 'bold', + fullWidth: true, + padding: 10, + position: 'top', + text: '', + weight: 2000 // by default greater than legend (1000) to be above + } +}); + +/** + * IMPORTANT: this class is exposed publicly as Chart.Legend, backward compatibility required! + */ +var Title = core_element.extend({ + initialize: function(config) { + var me = this; + helpers$1.extend(me, config); + + // Contains hit boxes for each dataset (in dataset order) + me.legendHitBoxes = []; + }, + + // These methods are ordered by lifecycle. Utilities then follow. + + beforeUpdate: noop$2, + update: function(maxWidth, maxHeight, margins) { + var me = this; + + // Update Lifecycle - Probably don't want to ever extend or overwrite this function ;) + me.beforeUpdate(); + + // Absorb the master measurements + me.maxWidth = maxWidth; + me.maxHeight = maxHeight; + me.margins = margins; + + // Dimensions + me.beforeSetDimensions(); + me.setDimensions(); + me.afterSetDimensions(); + // Labels + me.beforeBuildLabels(); + me.buildLabels(); + me.afterBuildLabels(); + + // Fit + me.beforeFit(); + me.fit(); + me.afterFit(); + // + me.afterUpdate(); + + return me.minSize; + + }, + afterUpdate: noop$2, + + // + + beforeSetDimensions: noop$2, + setDimensions: function() { + var me = this; + // Set the unconstrained dimension before label rotation + if (me.isHorizontal()) { + // Reset position before calculating rotation + me.width = me.maxWidth; + me.left = 0; + me.right = me.width; + } else { + me.height = me.maxHeight; + + // Reset position before calculating rotation + me.top = 0; + me.bottom = me.height; + } + + // Reset padding + me.paddingLeft = 0; + me.paddingTop = 0; + me.paddingRight = 0; + me.paddingBottom = 0; + + // Reset minSize + me.minSize = { + width: 0, + height: 0 + }; + }, + afterSetDimensions: noop$2, + + // + + beforeBuildLabels: noop$2, + buildLabels: noop$2, + afterBuildLabels: noop$2, + + // + + beforeFit: noop$2, + fit: function() { + var me = this; + var opts = me.options; + var display = opts.display; + var minSize = me.minSize; + var lineCount = helpers$1.isArray(opts.text) ? opts.text.length : 1; + var fontOpts = helpers$1.options._parseFont(opts); + var textSize = display ? (lineCount * fontOpts.lineHeight) + (opts.padding * 2) : 0; + + if (me.isHorizontal()) { + minSize.width = me.maxWidth; // fill all the width + minSize.height = textSize; + } else { + minSize.width = textSize; + minSize.height = me.maxHeight; // fill all the height + } + + me.width = minSize.width; + me.height = minSize.height; + + }, + afterFit: noop$2, + + // Shared Methods + isHorizontal: function() { + var pos = this.options.position; + return pos === 'top' || pos === 'bottom'; + }, + + // Actually draw the title block on the canvas + draw: function() { + var me = this; + var ctx = me.ctx; + var opts = me.options; + + if (opts.display) { + var fontOpts = helpers$1.options._parseFont(opts); + var lineHeight = fontOpts.lineHeight; + var offset = lineHeight / 2 + opts.padding; + var rotation = 0; + var top = me.top; + var left = me.left; + var bottom = me.bottom; + var right = me.right; + var maxWidth, titleX, titleY; + + ctx.fillStyle = helpers$1.valueOrDefault(opts.fontColor, core_defaults.global.defaultFontColor); // render in correct colour + ctx.font = fontOpts.string; + + // Horizontal + if (me.isHorizontal()) { + titleX = left + ((right - left) / 2); // midpoint of the width + titleY = top + offset; + maxWidth = right - left; + } else { + titleX = opts.position === 'left' ? left + offset : right - offset; + titleY = top + ((bottom - top) / 2); + maxWidth = bottom - top; + rotation = Math.PI * (opts.position === 'left' ? -0.5 : 0.5); + } + + ctx.save(); + ctx.translate(titleX, titleY); + ctx.rotate(rotation); + ctx.textAlign = 'center'; + ctx.textBaseline = 'middle'; + + var text = opts.text; + if (helpers$1.isArray(text)) { + var y = 0; + for (var i = 0; i < text.length; ++i) { + ctx.fillText(text[i], 0, y, maxWidth); + y += lineHeight; + } + } else { + ctx.fillText(text, 0, 0, maxWidth); + } + + ctx.restore(); + } + } +}); + +function createNewTitleBlockAndAttach(chart, titleOpts) { + var title = new Title({ + ctx: chart.ctx, + options: titleOpts, + chart: chart + }); + + core_layouts.configure(chart, title, titleOpts); + core_layouts.addBox(chart, title); + chart.titleBlock = title; +} + +var plugin_title = { + id: 'title', + + /** + * Backward compatibility: since 2.1.5, the title is registered as a plugin, making + * Chart.Title obsolete. To avoid a breaking change, we export the Title as part of + * the plugin, which one will be re-exposed in the chart.js file. + * https://github.com/chartjs/Chart.js/pull/2640 + * @private + */ + _element: Title, + + beforeInit: function(chart) { + var titleOpts = chart.options.title; + + if (titleOpts) { + createNewTitleBlockAndAttach(chart, titleOpts); + } + }, + + beforeUpdate: function(chart) { + var titleOpts = chart.options.title; + var titleBlock = chart.titleBlock; + + if (titleOpts) { + helpers$1.mergeIf(titleOpts, core_defaults.global.title); + + if (titleBlock) { + core_layouts.configure(chart, titleBlock, titleOpts); + titleBlock.options = titleOpts; + } else { + createNewTitleBlockAndAttach(chart, titleOpts); + } + } else if (titleBlock) { + core_layouts.removeBox(chart, titleBlock); + delete chart.titleBlock; + } + } +}; + +var plugins = {}; +var filler = plugin_filler; +var legend = plugin_legend; +var title = plugin_title; +plugins.filler = filler; +plugins.legend = legend; +plugins.title = title; + +/** + * @namespace Chart + */ + + +core_controller.helpers = helpers$1; + +// @todo dispatch these helpers into appropriated helpers/helpers.* file and write unit tests! +core_helpers(core_controller); + +core_controller._adapters = core_adapters; +core_controller.Animation = core_animation; +core_controller.animationService = core_animations; +core_controller.controllers = controllers; +core_controller.DatasetController = core_datasetController; +core_controller.defaults = core_defaults; +core_controller.Element = core_element; +core_controller.elements = elements; +core_controller.Interaction = core_interaction; +core_controller.layouts = core_layouts; +core_controller.platform = platform; +core_controller.plugins = core_plugins; +core_controller.Scale = core_scale; +core_controller.scaleService = core_scaleService; +core_controller.Ticks = core_ticks; +core_controller.Tooltip = core_tooltip; + +// Register built-in scales + +core_controller.helpers.each(scales, function(scale, type) { + core_controller.scaleService.registerScaleType(type, scale, scale._defaults); +}); + +// Load to register built-in adapters (as side effects) + + +// Loading built-in plugins + +for (var k in plugins) { + if (plugins.hasOwnProperty(k)) { + core_controller.plugins.register(plugins[k]); + } +} + +core_controller.platform.initialize(); + +var src = core_controller; +if (typeof window !== 'undefined') { + window.Chart = core_controller; +} + +// DEPRECATIONS + +/** + * Provided for backward compatibility, not available anymore + * @namespace Chart.Chart + * @deprecated since version 2.8.0 + * @todo remove at version 3 + * @private + */ +core_controller.Chart = core_controller; + +/** + * Provided for backward compatibility, not available anymore + * @namespace Chart.Legend + * @deprecated since version 2.1.5 + * @todo remove at version 3 + * @private + */ +core_controller.Legend = plugins.legend._element; + +/** + * Provided for backward compatibility, not available anymore + * @namespace Chart.Title + * @deprecated since version 2.1.5 + * @todo remove at version 3 + * @private + */ +core_controller.Title = plugins.title._element; + +/** + * Provided for backward compatibility, use Chart.plugins instead + * @namespace Chart.pluginService + * @deprecated since version 2.1.5 + * @todo remove at version 3 + * @private + */ +core_controller.pluginService = core_controller.plugins; + +/** + * Provided for backward compatibility, inheriting from Chart.PlugingBase has no + * effect, instead simply create/register plugins via plain JavaScript objects. + * @interface Chart.PluginBase + * @deprecated since version 2.5.0 + * @todo remove at version 3 + * @private + */ +core_controller.PluginBase = core_controller.Element.extend({}); + +/** + * Provided for backward compatibility, use Chart.helpers.canvas instead. + * @namespace Chart.canvasHelpers + * @deprecated since version 2.6.0 + * @todo remove at version 3 + * @private + */ +core_controller.canvasHelpers = core_controller.helpers.canvas; + +/** + * Provided for backward compatibility, use Chart.layouts instead. + * @namespace Chart.layoutService + * @deprecated since version 2.7.3 + * @todo remove at version 3 + * @private + */ +core_controller.layoutService = core_controller.layouts; + +/** + * Provided for backward compatibility, not available anymore. + * @namespace Chart.LinearScaleBase + * @deprecated since version 2.8 + * @todo remove at version 3 + * @private + */ +core_controller.LinearScaleBase = scale_linearbase; + +/** + * Provided for backward compatibility, instead we should create a new Chart + * by setting the type in the config (`new Chart(id, {type: '{chart-type}'}`). + * @deprecated since version 2.8.0 + * @todo remove at version 3 + */ +core_controller.helpers.each( + [ + 'Bar', + 'Bubble', + 'Doughnut', + 'Line', + 'PolarArea', + 'Radar', + 'Scatter' + ], + function(klass) { + core_controller[klass] = function(ctx, cfg) { + return new core_controller(ctx, core_controller.helpers.merge(cfg || {}, { + type: klass.charAt(0).toLowerCase() + klass.slice(1) + })); + }; + } +); + +return src; + +}))); diff --git a/base_accounting_kit/static/lib/Chart.bundle.min.js b/base_accounting_kit/static/lib/Chart.bundle.min.js new file mode 100644 index 0000000..0bf9ea9 --- /dev/null +++ b/base_accounting_kit/static/lib/Chart.bundle.min.js @@ -0,0 +1,7 @@ +/*! + * Chart.js v2.8.0 + * https://www.chartjs.org + * (c) 2019 Chart.js Contributors + * Released under the MIT License + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.Chart=e()}(this,function(){"use strict";var t={rgb2hsl:e,rgb2hsv:i,rgb2hwb:n,rgb2cmyk:a,rgb2keyword:o,rgb2xyz:s,rgb2lab:l,rgb2lch:function(t){return v(l(t))},hsl2rgb:u,hsl2hsv:function(t){var e=t[0],i=t[1]/100,n=t[2]/100;if(0===n)return[0,0,0];return[e,100*(2*(i*=(n*=2)<=1?n:2-n)/(n+i)),100*((n+i)/2)]},hsl2hwb:function(t){return n(u(t))},hsl2cmyk:function(t){return a(u(t))},hsl2keyword:function(t){return o(u(t))},hsv2rgb:d,hsv2hsl:function(t){var e,i,n=t[0],a=t[1]/100,r=t[2]/100;return e=a*r,[n,100*(e=(e/=(i=(2-a)*r)<=1?i:2-i)||0),100*(i/=2)]},hsv2hwb:function(t){return n(d(t))},hsv2cmyk:function(t){return a(d(t))},hsv2keyword:function(t){return o(d(t))},hwb2rgb:h,hwb2hsl:function(t){return e(h(t))},hwb2hsv:function(t){return i(h(t))},hwb2cmyk:function(t){return a(h(t))},hwb2keyword:function(t){return o(h(t))},cmyk2rgb:c,cmyk2hsl:function(t){return e(c(t))},cmyk2hsv:function(t){return i(c(t))},cmyk2hwb:function(t){return n(c(t))},cmyk2keyword:function(t){return o(c(t))},keyword2rgb:_,keyword2hsl:function(t){return e(_(t))},keyword2hsv:function(t){return i(_(t))},keyword2hwb:function(t){return n(_(t))},keyword2cmyk:function(t){return a(_(t))},keyword2lab:function(t){return l(_(t))},keyword2xyz:function(t){return s(_(t))},xyz2rgb:f,xyz2lab:m,xyz2lch:function(t){return v(m(t))},lab2xyz:p,lab2rgb:y,lab2lch:v,lch2lab:x,lch2xyz:function(t){return p(x(t))},lch2rgb:function(t){return y(x(t))}};function e(t){var e,i,n=t[0]/255,a=t[1]/255,r=t[2]/255,o=Math.min(n,a,r),s=Math.max(n,a,r),l=s-o;return s==o?e=0:n==s?e=(a-r)/l:a==s?e=2+(r-n)/l:r==s&&(e=4+(n-a)/l),(e=Math.min(60*e,360))<0&&(e+=360),i=(o+s)/2,[e,100*(s==o?0:i<=.5?l/(s+o):l/(2-s-o)),100*i]}function i(t){var e,i,n=t[0],a=t[1],r=t[2],o=Math.min(n,a,r),s=Math.max(n,a,r),l=s-o;return i=0==s?0:l/s*1e3/10,s==o?e=0:n==s?e=(a-r)/l:a==s?e=2+(r-n)/l:r==s&&(e=4+(n-a)/l),(e=Math.min(60*e,360))<0&&(e+=360),[e,i,s/255*1e3/10]}function n(t){var i=t[0],n=t[1],a=t[2];return[e(t)[0],100*(1/255*Math.min(i,Math.min(n,a))),100*(a=1-1/255*Math.max(i,Math.max(n,a)))]}function a(t){var e,i=t[0]/255,n=t[1]/255,a=t[2]/255;return[100*((1-i-(e=Math.min(1-i,1-n,1-a)))/(1-e)||0),100*((1-n-e)/(1-e)||0),100*((1-a-e)/(1-e)||0),100*e]}function o(t){return w[JSON.stringify(t)]}function s(t){var e=t[0]/255,i=t[1]/255,n=t[2]/255;return[100*(.4124*(e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92)+.1805*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)),100*(.2126*e+.7152*i+.0722*n),100*(.0193*e+.1192*i+.9505*n)]}function l(t){var e=s(t),i=e[0],n=e[1],a=e[2];return n/=100,a/=108.883,i=(i/=95.047)>.008856?Math.pow(i,1/3):7.787*i+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(i-n),200*(n-(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116))]}function u(t){var e,i,n,a,r,o=t[0]/360,s=t[1]/100,l=t[2]/100;if(0==s)return[r=255*l,r,r];e=2*l-(i=l<.5?l*(1+s):l+s-l*s),a=[0,0,0];for(var u=0;u<3;u++)(n=o+1/3*-(u-1))<0&&n++,n>1&&n--,r=6*n<1?e+6*(i-e)*n:2*n<1?i:3*n<2?e+(i-e)*(2/3-n)*6:e,a[u]=255*r;return a}function d(t){var e=t[0]/60,i=t[1]/100,n=t[2]/100,a=Math.floor(e)%6,r=e-Math.floor(e),o=255*n*(1-i),s=255*n*(1-i*r),l=255*n*(1-i*(1-r));n*=255;switch(a){case 0:return[n,l,o];case 1:return[s,n,o];case 2:return[o,n,l];case 3:return[o,s,n];case 4:return[l,o,n];case 5:return[n,o,s]}}function h(t){var e,i,n,a,o=t[0]/360,s=t[1]/100,l=t[2]/100,u=s+l;switch(u>1&&(s/=u,l/=u),n=6*o-(e=Math.floor(6*o)),0!=(1&e)&&(n=1-n),a=s+n*((i=1-l)-s),e){default:case 6:case 0:r=i,g=a,b=s;break;case 1:r=a,g=i,b=s;break;case 2:r=s,g=i,b=a;break;case 3:r=s,g=a,b=i;break;case 4:r=a,g=s,b=i;break;case 5:r=i,g=s,b=a}return[255*r,255*g,255*b]}function c(t){var e=t[0]/100,i=t[1]/100,n=t[2]/100,a=t[3]/100;return[255*(1-Math.min(1,e*(1-a)+a)),255*(1-Math.min(1,i*(1-a)+a)),255*(1-Math.min(1,n*(1-a)+a))]}function f(t){var e,i,n,a=t[0]/100,r=t[1]/100,o=t[2]/100;return i=-.9689*a+1.8758*r+.0415*o,n=.0557*a+-.204*r+1.057*o,e=(e=3.2406*a+-1.5372*r+-.4986*o)>.0031308?1.055*Math.pow(e,1/2.4)-.055:e*=12.92,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:i*=12.92,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,[255*(e=Math.min(Math.max(0,e),1)),255*(i=Math.min(Math.max(0,i),1)),255*(n=Math.min(Math.max(0,n),1))]}function m(t){var e=t[0],i=t[1],n=t[2];return i/=100,n/=108.883,e=(e/=95.047)>.008856?Math.pow(e,1/3):7.787*e+16/116,[116*(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116)-16,500*(e-i),200*(i-(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116))]}function p(t){var e,i,n,a,r=t[0],o=t[1],s=t[2];return r<=8?a=(i=100*r/903.3)/100*7.787+16/116:(i=100*Math.pow((r+16)/116,3),a=Math.pow(i/100,1/3)),[e=e/95.047<=.008856?e=95.047*(o/500+a-16/116)/7.787:95.047*Math.pow(o/500+a,3),i,n=n/108.883<=.008859?n=108.883*(a-s/200-16/116)/7.787:108.883*Math.pow(a-s/200,3)]}function v(t){var e,i=t[0],n=t[1],a=t[2];return(e=360*Math.atan2(a,n)/2/Math.PI)<0&&(e+=360),[i,Math.sqrt(n*n+a*a),e]}function y(t){return f(p(t))}function x(t){var e,i=t[0],n=t[1];return e=t[2]/360*2*Math.PI,[i,n*Math.cos(e),n*Math.sin(e)]}function _(t){return k[t]}var k={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},w={};for(var M in k)w[JSON.stringify(k[M])]=M;var S=function(){return new O};for(var D in t){S[D+"Raw"]=function(e){return function(i){return"number"==typeof i&&(i=Array.prototype.slice.call(arguments)),t[e](i)}}(D);var C=/(\w+)2(\w+)/.exec(D),P=C[1],T=C[2];(S[P]=S[P]||{})[T]=S[D]=function(e){return function(i){"number"==typeof i&&(i=Array.prototype.slice.call(arguments));var n=t[e](i);if("string"==typeof n||void 0===n)return n;for(var a=0;a<n.length;a++)n[a]=Math.round(n[a]);return n}}(D)}var O=function(){this.convs={}};O.prototype.routeSpace=function(t,e){var i=e[0];return void 0===i?this.getValues(t):("number"==typeof i&&(i=Array.prototype.slice.call(e)),this.setValues(t,i))},O.prototype.setValues=function(t,e){return this.space=t,this.convs={},this.convs[t]=e,this},O.prototype.getValues=function(t){var e=this.convs[t];if(!e){var i=this.space,n=this.convs[i];e=S[i][t](n),this.convs[t]=e}return e},["rgb","hsl","hsv","cmyk","keyword"].forEach(function(t){O.prototype[t]=function(e){return this.routeSpace(t,arguments)}});var I=S,A={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},F={getRgba:R,getHsla:L,getRgb:function(t){var e=R(t);return e&&e.slice(0,3)},getHsl:function(t){var e=L(t);return e&&e.slice(0,3)},getHwb:W,getAlpha:function(t){var e=R(t);if(e)return e[3];if(e=L(t))return e[3];if(e=W(t))return e[3]},hexString:function(t,e){var e=void 0!==e&&3===t.length?e:t[3];return"#"+H(t[0])+H(t[1])+H(t[2])+(e>=0&&e<1?H(Math.round(255*e)):"")},rgbString:function(t,e){if(e<1||t[3]&&t[3]<1)return Y(t,e);return"rgb("+t[0]+", "+t[1]+", "+t[2]+")"},rgbaString:Y,percentString:function(t,e){if(e<1||t[3]&&t[3]<1)return N(t,e);var i=Math.round(t[0]/255*100),n=Math.round(t[1]/255*100),a=Math.round(t[2]/255*100);return"rgb("+i+"%, "+n+"%, "+a+"%)"},percentaString:N,hslString:function(t,e){if(e<1||t[3]&&t[3]<1)return z(t,e);return"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)"},hslaString:z,hwbString:function(t,e){void 0===e&&(e=void 0!==t[3]?t[3]:1);return"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+(void 0!==e&&1!==e?", "+e:"")+")"},keyword:function(t){return E[t.slice(0,3)]}};function R(t){if(t){var e=[0,0,0],i=1,n=t.match(/^#([a-fA-F0-9]{3,4})$/i),a="";if(n){a=(n=n[1])[3];for(var r=0;r<e.length;r++)e[r]=parseInt(n[r]+n[r],16);a&&(i=Math.round(parseInt(a+a,16)/255*100)/100)}else if(n=t.match(/^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i)){a=n[2],n=n[1];for(r=0;r<e.length;r++)e[r]=parseInt(n.slice(2*r,2*r+2),16);a&&(i=Math.round(parseInt(a,16)/255*100)/100)}else if(n=t.match(/^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(r=0;r<e.length;r++)e[r]=parseInt(n[r+1]);i=parseFloat(n[4])}else if(n=t.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(r=0;r<e.length;r++)e[r]=Math.round(2.55*parseFloat(n[r+1]));i=parseFloat(n[4])}else if(n=t.match(/(\w+)/)){if("transparent"==n[1])return[0,0,0,0];if(!(e=A[n[1]]))return}for(r=0;r<e.length;r++)e[r]=V(e[r],0,255);return i=i||0==i?V(i,0,1):1,e[3]=i,e}}function L(t){if(t){var e=t.match(/^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(e){var i=parseFloat(e[4]);return[V(parseInt(e[1]),0,360),V(parseFloat(e[2]),0,100),V(parseFloat(e[3]),0,100),V(isNaN(i)?1:i,0,1)]}}}function W(t){if(t){var e=t.match(/^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(e){var i=parseFloat(e[4]);return[V(parseInt(e[1]),0,360),V(parseFloat(e[2]),0,100),V(parseFloat(e[3]),0,100),V(isNaN(i)?1:i,0,1)]}}}function Y(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"rgba("+t[0]+", "+t[1]+", "+t[2]+", "+e+")"}function N(t,e){return"rgba("+Math.round(t[0]/255*100)+"%, "+Math.round(t[1]/255*100)+"%, "+Math.round(t[2]/255*100)+"%, "+(e||t[3]||1)+")"}function z(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+e+")"}function V(t,e,i){return Math.min(Math.max(e,t),i)}function H(t){var e=t.toString(16).toUpperCase();return e.length<2?"0"+e:e}var E={};for(var B in A)E[A[B]]=B;var j=function(t){return t instanceof j?t:this instanceof j?(this.valid=!1,this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1},void("string"==typeof t?(e=F.getRgba(t))?this.setValues("rgb",e):(e=F.getHsla(t))?this.setValues("hsl",e):(e=F.getHwb(t))&&this.setValues("hwb",e):"object"==typeof t&&(void 0!==(e=t).r||void 0!==e.red?this.setValues("rgb",e):void 0!==e.l||void 0!==e.lightness?this.setValues("hsl",e):void 0!==e.v||void 0!==e.value?this.setValues("hsv",e):void 0!==e.w||void 0!==e.whiteness?this.setValues("hwb",e):void 0===e.c&&void 0===e.cyan||this.setValues("cmyk",e)))):new j(t);var e};j.prototype={isValid:function(){return this.valid},rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var t=this.values;return 1!==t.alpha?t.hwb.concat([t.alpha]):t.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var t=this.values;return t.rgb.concat([t.alpha])},hslaArray:function(){var t=this.values;return t.hsl.concat([t.alpha])},alpha:function(t){return void 0===t?this.values.alpha:(this.setValues("alpha",t),this)},red:function(t){return this.setChannel("rgb",0,t)},green:function(t){return this.setChannel("rgb",1,t)},blue:function(t){return this.setChannel("rgb",2,t)},hue:function(t){return t&&(t=(t%=360)<0?360+t:t),this.setChannel("hsl",0,t)},saturation:function(t){return this.setChannel("hsl",1,t)},lightness:function(t){return this.setChannel("hsl",2,t)},saturationv:function(t){return this.setChannel("hsv",1,t)},whiteness:function(t){return this.setChannel("hwb",1,t)},blackness:function(t){return this.setChannel("hwb",2,t)},value:function(t){return this.setChannel("hsv",2,t)},cyan:function(t){return this.setChannel("cmyk",0,t)},magenta:function(t){return this.setChannel("cmyk",1,t)},yellow:function(t){return this.setChannel("cmyk",2,t)},black:function(t){return this.setChannel("cmyk",3,t)},hexString:function(){return F.hexString(this.values.rgb)},rgbString:function(){return F.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return F.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return F.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return F.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return F.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return F.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return F.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var t=this.values.rgb;return t[0]<<16|t[1]<<8|t[2]},luminosity:function(){for(var t=this.values.rgb,e=[],i=0;i<t.length;i++){var n=t[i]/255;e[i]=n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4)}return.2126*e[0]+.7152*e[1]+.0722*e[2]},contrast:function(t){var e=this.luminosity(),i=t.luminosity();return e>i?(e+.05)/(i+.05):(i+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,i=(e[0]+t)%360;return e[0]=i<0?360+i:i,this.setValues("hsl",e),this},mix:function(t,e){var i=t,n=void 0===e?.5:e,a=2*n-1,r=this.alpha()-i.alpha(),o=((a*r==-1?a:(a+r)/(1+a*r))+1)/2,s=1-o;return this.rgb(o*this.red()+s*i.red(),o*this.green()+s*i.green(),o*this.blue()+s*i.blue()).alpha(this.alpha()*n+i.alpha()*(1-n))},toJSON:function(){return this.rgb()},clone:function(){var t,e,i=new j,n=this.values,a=i.values;for(var r in n)n.hasOwnProperty(r)&&(t=n[r],"[object Array]"===(e={}.toString.call(t))?a[r]=t.slice(0):"[object Number]"===e?a[r]=t:console.error("unexpected color value:",t));return i}},j.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},j.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},j.prototype.getValues=function(t){for(var e=this.values,i={},n=0;n<t.length;n++)i[t.charAt(n)]=e[t][n];return 1!==e.alpha&&(i.a=e.alpha),i},j.prototype.setValues=function(t,e){var i,n,a=this.values,r=this.spaces,o=this.maxes,s=1;if(this.valid=!0,"alpha"===t)s=e;else if(e.length)a[t]=e.slice(0,t.length),s=e[t.length];else if(void 0!==e[t.charAt(0)]){for(i=0;i<t.length;i++)a[t][i]=e[t.charAt(i)];s=e.a}else if(void 0!==e[r[t][0]]){var l=r[t];for(i=0;i<t.length;i++)a[t][i]=e[l[i]];s=e.alpha}if(a.alpha=Math.max(0,Math.min(1,void 0===s?a.alpha:s)),"alpha"===t)return!1;for(i=0;i<t.length;i++)n=Math.max(0,Math.min(o[t][i],a[t][i])),a[t][i]=Math.round(n);for(var u in r)u!==t&&(a[u]=I[t][u](a[t]));return!0},j.prototype.setSpace=function(t,e){var i=e[0];return void 0===i?this.getValues(t):("number"==typeof i&&(i=Array.prototype.slice.call(e)),this.setValues(t,i),this)},j.prototype.setChannel=function(t,e,i){var n=this.values[t];return void 0===i?n[e]:i===n[e]?this:(n[e]=i,this.setValues(t,n),this)},"undefined"!=typeof window&&(window.Color=j);var U,G=j,q={noop:function(){},uid:(U=0,function(){return U++}),isNullOrUndef:function(t){return null==t},isArray:function(t){if(Array.isArray&&Array.isArray(t))return!0;var e=Object.prototype.toString.call(t);return"[object"===e.substr(0,7)&&"Array]"===e.substr(-6)},isObject:function(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)},isFinite:function(t){return("number"==typeof t||t instanceof Number)&&isFinite(t)},valueOrDefault:function(t,e){return void 0===t?e:t},valueAtIndexOrDefault:function(t,e,i){return q.valueOrDefault(q.isArray(t)?t[e]:t,i)},callback:function(t,e,i){if(t&&"function"==typeof t.call)return t.apply(i,e)},each:function(t,e,i,n){var a,r,o;if(q.isArray(t))if(r=t.length,n)for(a=r-1;a>=0;a--)e.call(i,t[a],a);else for(a=0;a<r;a++)e.call(i,t[a],a);else if(q.isObject(t))for(r=(o=Object.keys(t)).length,a=0;a<r;a++)e.call(i,t[o[a]],o[a])},arrayEquals:function(t,e){var i,n,a,r;if(!t||!e||t.length!==e.length)return!1;for(i=0,n=t.length;i<n;++i)if(a=t[i],r=e[i],a instanceof Array&&r instanceof Array){if(!q.arrayEquals(a,r))return!1}else if(a!==r)return!1;return!0},clone:function(t){if(q.isArray(t))return t.map(q.clone);if(q.isObject(t)){for(var e={},i=Object.keys(t),n=i.length,a=0;a<n;++a)e[i[a]]=q.clone(t[i[a]]);return e}return t},_merger:function(t,e,i,n){var a=e[t],r=i[t];q.isObject(a)&&q.isObject(r)?q.merge(a,r,n):e[t]=q.clone(r)},_mergerIf:function(t,e,i){var n=e[t],a=i[t];q.isObject(n)&&q.isObject(a)?q.mergeIf(n,a):e.hasOwnProperty(t)||(e[t]=q.clone(a))},merge:function(t,e,i){var n,a,r,o,s,l=q.isArray(e)?e:[e],u=l.length;if(!q.isObject(t))return t;for(n=(i=i||{}).merger||q._merger,a=0;a<u;++a)if(e=l[a],q.isObject(e))for(s=0,o=(r=Object.keys(e)).length;s<o;++s)n(r[s],t,e,i);return t},mergeIf:function(t,e){return q.merge(t,e,{merger:q._mergerIf})},extend:function(t){for(var e=function(e,i){t[i]=e},i=1,n=arguments.length;i<n;++i)q.each(arguments[i],e);return t},inherits:function(t){var e=this,i=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return e.apply(this,arguments)},n=function(){this.constructor=i};return n.prototype=e.prototype,i.prototype=new n,i.extend=q.inherits,t&&q.extend(i.prototype,t),i.__super__=e.prototype,i}},Z=q;q.callCallback=q.callback,q.indexOf=function(t,e,i){return Array.prototype.indexOf.call(t,e,i)},q.getValueOrDefault=q.valueOrDefault,q.getValueAtIndexOrDefault=q.valueAtIndexOrDefault;var $={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return-t*(t-2)},easeInOutQuad:function(t){return(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1)},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return(t-=1)*t*t+1},easeInOutCubic:function(t){return(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return-((t-=1)*t*t*t-1)},easeInOutQuart:function(t){return(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return(t-=1)*t*t*t*t+1},easeInOutQuint:function(t){return(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},easeInSine:function(t){return 1-Math.cos(t*(Math.PI/2))},easeOutSine:function(t){return Math.sin(t*(Math.PI/2))},easeInOutSine:function(t){return-.5*(Math.cos(Math.PI*t)-1)},easeInExpo:function(t){return 0===t?0:Math.pow(2,10*(t-1))},easeOutExpo:function(t){return 1===t?1:1-Math.pow(2,-10*t)},easeInOutExpo:function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(2-Math.pow(2,-10*--t))},easeInCirc:function(t){return t>=1?t:-(Math.sqrt(1-t*t)-1)},easeOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:1===t?1:(i||(i=.3),n<1?(n=1,e=i/4):e=i/(2*Math.PI)*Math.asin(1/n),-n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i))},easeOutElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:1===t?1:(i||(i=.3),n<1?(n=1,e=i/4):e=i/(2*Math.PI)*Math.asin(1/n),n*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/i)+1)},easeInOutElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:2==(t/=.5)?1:(i||(i=.45),n<1?(n=1,e=i/4):e=i/(2*Math.PI)*Math.asin(1/n),t<1?n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*-.5:n*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*.5+1)},easeInBack:function(t){var e=1.70158;return t*t*((e+1)*t-e)},easeOutBack:function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:function(t){return 1-$.easeOutBounce(1-t)},easeOutBounce:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:function(t){return t<.5?.5*$.easeInBounce(2*t):.5*$.easeOutBounce(2*t-1)+.5}},X={effects:$};Z.easingEffects=$;var K=Math.PI,J=K/180,Q=2*K,tt=K/2,et=K/4,it=2*K/3,nt={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},roundedRect:function(t,e,i,n,a,r){if(r){var o=Math.min(r,a/2,n/2),s=e+o,l=i+o,u=e+n-o,d=i+a-o;t.moveTo(e,l),s<u&&l<d?(t.arc(s,l,o,-K,-tt),t.arc(u,l,o,-tt,0),t.arc(u,d,o,0,tt),t.arc(s,d,o,tt,K)):s<u?(t.moveTo(s,i),t.arc(u,l,o,-tt,tt),t.arc(s,l,o,tt,K+tt)):l<d?(t.arc(s,l,o,-K,0),t.arc(s,d,o,0,K)):t.arc(s,l,o,-K,K),t.closePath(),t.moveTo(e,i)}else t.rect(e,i,n,a)},drawPoint:function(t,e,i,n,a,r){var o,s,l,u,d,h=(r||0)*J;if(!e||"object"!=typeof e||"[object HTMLImageElement]"!==(o=e.toString())&&"[object HTMLCanvasElement]"!==o){if(!(isNaN(i)||i<=0)){switch(t.beginPath(),e){default:t.arc(n,a,i,0,Q),t.closePath();break;case"triangle":t.moveTo(n+Math.sin(h)*i,a-Math.cos(h)*i),h+=it,t.lineTo(n+Math.sin(h)*i,a-Math.cos(h)*i),h+=it,t.lineTo(n+Math.sin(h)*i,a-Math.cos(h)*i),t.closePath();break;case"rectRounded":u=i-(d=.516*i),s=Math.cos(h+et)*u,l=Math.sin(h+et)*u,t.arc(n-s,a-l,d,h-K,h-tt),t.arc(n+l,a-s,d,h-tt,h),t.arc(n+s,a+l,d,h,h+tt),t.arc(n-l,a+s,d,h+tt,h+K),t.closePath();break;case"rect":if(!r){u=Math.SQRT1_2*i,t.rect(n-u,a-u,2*u,2*u);break}h+=et;case"rectRot":s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+l,a-s),t.lineTo(n+s,a+l),t.lineTo(n-l,a+s),t.closePath();break;case"crossRot":h+=et;case"cross":s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l),t.moveTo(n+l,a-s),t.lineTo(n-l,a+s);break;case"star":s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l),t.moveTo(n+l,a-s),t.lineTo(n-l,a+s),h+=et,s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l),t.moveTo(n+l,a-s),t.lineTo(n-l,a+s);break;case"line":s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l);break;case"dash":t.moveTo(n,a),t.lineTo(n+Math.cos(h)*i,a+Math.sin(h)*i)}t.fill(),t.stroke()}}else t.drawImage(e,n-e.width/2,a-e.height/2,e.width,e.height)},_isPointInArea:function(t,e){return t.x>e.left-1e-6&&t.x<e.right+1e-6&&t.y>e.top-1e-6&&t.y<e.bottom+1e-6},clipArea:function(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()},unclipArea:function(t){t.restore()},lineTo:function(t,e,i,n){var a=i.steppedLine;if(a){if("middle"===a){var r=(e.x+i.x)/2;t.lineTo(r,n?i.y:e.y),t.lineTo(r,n?e.y:i.y)}else"after"===a&&!n||"after"!==a&&n?t.lineTo(e.x,i.y):t.lineTo(i.x,e.y);t.lineTo(i.x,i.y)}else i.tension?t.bezierCurveTo(n?e.controlPointPreviousX:e.controlPointNextX,n?e.controlPointPreviousY:e.controlPointNextY,n?i.controlPointNextX:i.controlPointPreviousX,n?i.controlPointNextY:i.controlPointPreviousY,i.x,i.y):t.lineTo(i.x,i.y)}},at=nt;Z.clear=nt.clear,Z.drawRoundedRectangle=function(t){t.beginPath(),nt.roundedRect.apply(nt,arguments)};var rt={_set:function(t,e){return Z.merge(this[t]||(this[t]={}),e)}};rt._set("global",{defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",defaultLineHeight:1.2,showLines:!0});var ot=rt,st=Z.valueOrDefault;var lt={toLineHeight:function(t,e){var i=(""+t).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!i||"normal"===i[1])return 1.2*e;switch(t=+i[2],i[3]){case"px":return t;case"%":t/=100}return e*t},toPadding:function(t){var e,i,n,a;return Z.isObject(t)?(e=+t.top||0,i=+t.right||0,n=+t.bottom||0,a=+t.left||0):e=i=n=a=+t||0,{top:e,right:i,bottom:n,left:a,height:e+n,width:a+i}},_parseFont:function(t){var e=ot.global,i=st(t.fontSize,e.defaultFontSize),n={family:st(t.fontFamily,e.defaultFontFamily),lineHeight:Z.options.toLineHeight(st(t.lineHeight,e.defaultLineHeight),i),size:i,style:st(t.fontStyle,e.defaultFontStyle),weight:null,string:""};return n.string=function(t){return!t||Z.isNullOrUndef(t.size)||Z.isNullOrUndef(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}(n),n},resolve:function(t,e,i){var n,a,r;for(n=0,a=t.length;n<a;++n)if(void 0!==(r=t[n])&&(void 0!==e&&"function"==typeof r&&(r=r(e)),void 0!==i&&Z.isArray(r)&&(r=r[i]),void 0!==r))return r}},ut=Z,dt=X,ht=at,ct=lt;ut.easing=dt,ut.canvas=ht,ut.options=ct;var ft=function(t){ut.extend(this,t),this.initialize.apply(this,arguments)};ut.extend(ft.prototype,{initialize:function(){this.hidden=!1},pivot:function(){var t=this;return t._view||(t._view=ut.clone(t._model)),t._start={},t},transition:function(t){var e=this,i=e._model,n=e._start,a=e._view;return i&&1!==t?(a||(a=e._view={}),n||(n=e._start={}),function(t,e,i,n){var a,r,o,s,l,u,d,h,c,f=Object.keys(i);for(a=0,r=f.length;a<r;++a)if(u=i[o=f[a]],e.hasOwnProperty(o)||(e[o]=u),(s=e[o])!==u&&"_"!==o[0]){if(t.hasOwnProperty(o)||(t[o]=s),(d=typeof u)==typeof(l=t[o]))if("string"===d){if((h=G(l)).valid&&(c=G(u)).valid){e[o]=c.mix(h,n).rgbString();continue}}else if(ut.isFinite(l)&&ut.isFinite(u)){e[o]=l+(u-l)*n;continue}e[o]=u}}(n,a,i,t),e):(e._view=i,e._start=null,e)},tooltipPosition:function(){return{x:this._model.x,y:this._model.y}},hasValue:function(){return ut.isNumber(this._model.x)&&ut.isNumber(this._model.y)}}),ft.extend=ut.inherits;var gt=ft,mt=gt.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),pt=mt;Object.defineProperty(mt.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(mt.prototype,"chartInstance",{get:function(){return this.chart},set:function(t){this.chart=t}}),ot._set("global",{animation:{duration:1e3,easing:"easeOutQuart",onProgress:ut.noop,onComplete:ut.noop}});var vt={animations:[],request:null,addAnimation:function(t,e,i,n){var a,r,o=this.animations;for(e.chart=t,e.startTime=Date.now(),e.duration=i,n||(t.animating=!0),a=0,r=o.length;a<r;++a)if(o[a].chart===t)return void(o[a]=e);o.push(e),1===o.length&&this.requestAnimationFrame()},cancelAnimation:function(t){var e=ut.findIndex(this.animations,function(e){return e.chart===t});-1!==e&&(this.animations.splice(e,1),t.animating=!1)},requestAnimationFrame:function(){var t=this;null===t.request&&(t.request=ut.requestAnimFrame.call(window,function(){t.request=null,t.startDigest()}))},startDigest:function(){this.advance(),this.animations.length>0&&this.requestAnimationFrame()},advance:function(){for(var t,e,i,n,a=this.animations,r=0;r<a.length;)e=(t=a[r]).chart,i=t.numSteps,n=Math.floor((Date.now()-t.startTime)/t.duration*i)+1,t.currentStep=Math.min(n,i),ut.callback(t.render,[e,t],e),ut.callback(t.onAnimationProgress,[t],e),t.currentStep>=i?(ut.callback(t.onAnimationComplete,[t],e),e.animating=!1,a.splice(r,1)):++r}},yt=ut.options.resolve,bt=["push","pop","shift","splice","unshift"];function xt(t,e){var i=t._chartjs;if(i){var n=i.listeners,a=n.indexOf(e);-1!==a&&n.splice(a,1),n.length>0||(bt.forEach(function(e){delete t[e]}),delete t._chartjs)}}var _t=function(t,e){this.initialize(t,e)};ut.extend(_t.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){this.chart=t,this.index=e,this.linkScales(),this.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),i=t.getDataset();null!==e.xAxisID&&e.xAxisID in t.chart.scales||(e.xAxisID=i.xAxisID||t.chart.options.scales.xAxes[0].id),null!==e.yAxisID&&e.yAxisID in t.chart.scales||(e.yAxisID=i.yAxisID||t.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},_getValueScaleId:function(){return this.getMeta().yAxisID},_getIndexScaleId:function(){return this.getMeta().xAxisID},_getValueScale:function(){return this.getScaleForId(this._getValueScaleId())},_getIndexScale:function(){return this.getScaleForId(this._getIndexScaleId())},reset:function(){this.update(!0)},destroy:function(){this._data&&xt(this._data,this)},createMetaDataset:function(){var t=this.datasetElementType;return t&&new t({_chart:this.chart,_datasetIndex:this.index})},createMetaData:function(t){var e=this.dataElementType;return e&&new e({_chart:this.chart,_datasetIndex:this.index,_index:t})},addElements:function(){var t,e,i=this.getMeta(),n=this.getDataset().data||[],a=i.data;for(t=0,e=n.length;t<e;++t)a[t]=a[t]||this.createMetaData(t);i.dataset=i.dataset||this.createMetaDataset()},addElementAndReset:function(t){var e=this.createMetaData(t);this.getMeta().data.splice(t,0,e),this.updateElement(e,t,!0)},buildOrUpdateElements:function(){var t,e,i=this,n=i.getDataset(),a=n.data||(n.data=[]);i._data!==a&&(i._data&&xt(i._data,i),a&&Object.isExtensible(a)&&(e=i,(t=a)._chartjs?t._chartjs.listeners.push(e):(Object.defineProperty(t,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),bt.forEach(function(e){var i="onData"+e.charAt(0).toUpperCase()+e.slice(1),n=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:function(){var e=Array.prototype.slice.call(arguments),a=n.apply(this,e);return ut.each(t._chartjs.listeners,function(t){"function"==typeof t[i]&&t[i].apply(t,e)}),a}})}))),i._data=a),i.resyncElements()},update:ut.noop,transition:function(t){for(var e=this.getMeta(),i=e.data||[],n=i.length,a=0;a<n;++a)i[a].transition(t);e.dataset&&e.dataset.transition(t)},draw:function(){var t=this.getMeta(),e=t.data||[],i=e.length,n=0;for(t.dataset&&t.dataset.draw();n<i;++n)e[n].draw()},removeHoverStyle:function(t){ut.merge(t._model,t.$previousStyle||{}),delete t.$previousStyle},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],i=t._index,n=t.custom||{},a=t._model,r=ut.getHoverColor;t.$previousStyle={backgroundColor:a.backgroundColor,borderColor:a.borderColor,borderWidth:a.borderWidth},a.backgroundColor=yt([n.hoverBackgroundColor,e.hoverBackgroundColor,r(a.backgroundColor)],void 0,i),a.borderColor=yt([n.hoverBorderColor,e.hoverBorderColor,r(a.borderColor)],void 0,i),a.borderWidth=yt([n.hoverBorderWidth,e.hoverBorderWidth,a.borderWidth],void 0,i)},resyncElements:function(){var t=this.getMeta(),e=this.getDataset().data,i=t.data.length,n=e.length;n<i?t.data.splice(n,i-n):n>i&&this.insertElements(i,n-i)},insertElements:function(t,e){for(var i=0;i<e;++i)this.addElementAndReset(t+i)},onDataPush:function(){var t=arguments.length;this.insertElements(this.getDataset().data.length-t,t)},onDataPop:function(){this.getMeta().data.pop()},onDataShift:function(){this.getMeta().data.shift()},onDataSplice:function(t,e){this.getMeta().data.splice(t,e),this.insertElements(t,arguments.length-2)},onDataUnshift:function(){this.insertElements(0,arguments.length)}}),_t.extend=ut.inherits;var kt=_t;ot._set("global",{elements:{arc:{backgroundColor:ot.global.defaultColor,borderColor:"#fff",borderWidth:2,borderAlign:"center"}}});var wt=gt.extend({inLabelRange:function(t){var e=this._view;return!!e&&Math.pow(t-e.x,2)<Math.pow(e.radius+e.hoverRadius,2)},inRange:function(t,e){var i=this._view;if(i){for(var n=ut.getAngleFromPoint(i,{x:t,y:e}),a=n.angle,r=n.distance,o=i.startAngle,s=i.endAngle;s<o;)s+=2*Math.PI;for(;a>s;)a-=2*Math.PI;for(;a<o;)a+=2*Math.PI;var l=a>=o&&a<=s,u=r>=i.innerRadius&&r<=i.outerRadius;return l&&u}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,i=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*i,y:t.y+Math.sin(e)*i}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,i=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*i,y:t.y+Math.sin(e)*i}},draw:function(){var t,e=this._chart.ctx,i=this._view,n=i.startAngle,a=i.endAngle,r="inner"===i.borderAlign?.33:0;e.save(),e.beginPath(),e.arc(i.x,i.y,Math.max(i.outerRadius-r,0),n,a),e.arc(i.x,i.y,i.innerRadius,a,n,!0),e.closePath(),e.fillStyle=i.backgroundColor,e.fill(),i.borderWidth&&("inner"===i.borderAlign?(e.beginPath(),t=r/i.outerRadius,e.arc(i.x,i.y,i.outerRadius,n-t,a+t),i.innerRadius>r?(t=r/i.innerRadius,e.arc(i.x,i.y,i.innerRadius-r,a+t,n-t,!0)):e.arc(i.x,i.y,r,a+Math.PI/2,n-Math.PI/2),e.closePath(),e.clip(),e.beginPath(),e.arc(i.x,i.y,i.outerRadius,n,a),e.arc(i.x,i.y,i.innerRadius,a,n,!0),e.closePath(),e.lineWidth=2*i.borderWidth,e.lineJoin="round"):(e.lineWidth=i.borderWidth,e.lineJoin="bevel"),e.strokeStyle=i.borderColor,e.stroke()),e.restore()}}),Mt=ut.valueOrDefault,St=ot.global.defaultColor;ot._set("global",{elements:{line:{tension:.4,backgroundColor:St,borderWidth:3,borderColor:St,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}});var Dt=gt.extend({draw:function(){var t,e,i,n,a=this._view,r=this._chart.ctx,o=a.spanGaps,s=this._children.slice(),l=ot.global,u=l.elements.line,d=-1;for(this._loop&&s.length&&s.push(s[0]),r.save(),r.lineCap=a.borderCapStyle||u.borderCapStyle,r.setLineDash&&r.setLineDash(a.borderDash||u.borderDash),r.lineDashOffset=Mt(a.borderDashOffset,u.borderDashOffset),r.lineJoin=a.borderJoinStyle||u.borderJoinStyle,r.lineWidth=Mt(a.borderWidth,u.borderWidth),r.strokeStyle=a.borderColor||l.defaultColor,r.beginPath(),d=-1,t=0;t<s.length;++t)e=s[t],i=ut.previousItem(s,t),n=e._view,0===t?n.skip||(r.moveTo(n.x,n.y),d=t):(i=-1===d?i:s[d],n.skip||(d!==t-1&&!o||-1===d?r.moveTo(n.x,n.y):ut.canvas.lineTo(r,i._view,e._view),d=t));r.stroke(),r.restore()}}),Ct=ut.valueOrDefault,Pt=ot.global.defaultColor;function Tt(t){var e=this._view;return!!e&&Math.abs(t-e.x)<e.radius+e.hitRadius}ot._set("global",{elements:{point:{radius:3,pointStyle:"circle",backgroundColor:Pt,borderColor:Pt,borderWidth:1,hitRadius:1,hoverRadius:4,hoverBorderWidth:1}}});var Ot=gt.extend({inRange:function(t,e){var i=this._view;return!!i&&Math.pow(t-i.x,2)+Math.pow(e-i.y,2)<Math.pow(i.hitRadius+i.radius,2)},inLabelRange:Tt,inXRange:Tt,inYRange:function(t){var e=this._view;return!!e&&Math.abs(t-e.y)<e.radius+e.hitRadius},getCenterPoint:function(){var t=this._view;return{x:t.x,y:t.y}},getArea:function(){return Math.PI*Math.pow(this._view.radius,2)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y,padding:t.radius+t.borderWidth}},draw:function(t){var e=this._view,i=this._chart.ctx,n=e.pointStyle,a=e.rotation,r=e.radius,o=e.x,s=e.y,l=ot.global,u=l.defaultColor;e.skip||(void 0===t||ut.canvas._isPointInArea(e,t))&&(i.strokeStyle=e.borderColor||u,i.lineWidth=Ct(e.borderWidth,l.elements.point.borderWidth),i.fillStyle=e.backgroundColor||u,ut.canvas.drawPoint(i,n,r,o,s,a))}}),It=ot.global.defaultColor;function At(t){return t&&void 0!==t.width}function Ft(t){var e,i,n,a,r;return At(t)?(r=t.width/2,e=t.x-r,i=t.x+r,n=Math.min(t.y,t.base),a=Math.max(t.y,t.base)):(r=t.height/2,e=Math.min(t.x,t.base),i=Math.max(t.x,t.base),n=t.y-r,a=t.y+r),{left:e,top:n,right:i,bottom:a}}function Rt(t,e,i){return t===e?i:t===i?e:t}function Lt(t,e,i){var n,a,r,o,s=t.borderWidth,l=function(t){var e=t.borderSkipped,i={};return e?(t.horizontal?t.base>t.x&&(e=Rt(e,"left","right")):t.base<t.y&&(e=Rt(e,"bottom","top")),i[e]=!0,i):i}(t);return ut.isObject(s)?(n=+s.top||0,a=+s.right||0,r=+s.bottom||0,o=+s.left||0):n=a=r=o=+s||0,{t:l.top||n<0?0:n>i?i:n,r:l.right||a<0?0:a>e?e:a,b:l.bottom||r<0?0:r>i?i:r,l:l.left||o<0?0:o>e?e:o}}function Wt(t,e,i){var n=null===e,a=null===i,r=!(!t||n&&a)&&Ft(t);return r&&(n||e>=r.left&&e<=r.right)&&(a||i>=r.top&&i<=r.bottom)}ot._set("global",{elements:{rectangle:{backgroundColor:It,borderColor:It,borderSkipped:"bottom",borderWidth:0}}});var Yt=gt.extend({draw:function(){var t=this._chart.ctx,e=this._view,i=function(t){var e=Ft(t),i=e.right-e.left,n=e.bottom-e.top,a=Lt(t,i/2,n/2);return{outer:{x:e.left,y:e.top,w:i,h:n},inner:{x:e.left+a.l,y:e.top+a.t,w:i-a.l-a.r,h:n-a.t-a.b}}}(e),n=i.outer,a=i.inner;t.fillStyle=e.backgroundColor,t.fillRect(n.x,n.y,n.w,n.h),n.w===a.w&&n.h===a.h||(t.save(),t.beginPath(),t.rect(n.x,n.y,n.w,n.h),t.clip(),t.fillStyle=e.borderColor,t.rect(a.x,a.y,a.w,a.h),t.fill("evenodd"),t.restore())},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){return Wt(this._view,t,e)},inLabelRange:function(t,e){var i=this._view;return At(i)?Wt(i,t,null):Wt(i,null,e)},inXRange:function(t){return Wt(this._view,t,null)},inYRange:function(t){return Wt(this._view,null,t)},getCenterPoint:function(){var t,e,i=this._view;return At(i)?(t=i.x,e=(i.y+i.base)/2):(t=(i.x+i.base)/2,e=i.y),{x:t,y:e}},getArea:function(){var t=this._view;return At(t)?t.width*Math.abs(t.y-t.base):t.height*Math.abs(t.x-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}}),Nt={},zt=wt,Vt=Dt,Ht=Ot,Et=Yt;Nt.Arc=zt,Nt.Line=Vt,Nt.Point=Ht,Nt.Rectangle=Et;var Bt=ut.options.resolve;ot._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}});var jt=kt.extend({dataElementType:Nt.Rectangle,initialize:function(){var t;kt.prototype.initialize.apply(this,arguments),(t=this.getMeta()).stack=this.getDataset().stack,t.bar=!0},update:function(t){var e,i,n=this.getMeta().data;for(this._ruler=this.getRuler(),e=0,i=n.length;e<i;++e)this.updateElement(n[e],e,t)},updateElement:function(t,e,i){var n=this,a=n.getMeta(),r=n.getDataset(),o=n._resolveElementOptions(t,e);t._xScale=n.getScaleForId(a.xAxisID),t._yScale=n.getScaleForId(a.yAxisID),t._datasetIndex=n.index,t._index=e,t._model={backgroundColor:o.backgroundColor,borderColor:o.borderColor,borderSkipped:o.borderSkipped,borderWidth:o.borderWidth,datasetLabel:r.label,label:n.chart.data.labels[e]},n._updateElementGeometry(t,e,i),t.pivot()},_updateElementGeometry:function(t,e,i){var n=this,a=t._model,r=n._getValueScale(),o=r.getBasePixel(),s=r.isHorizontal(),l=n._ruler||n.getRuler(),u=n.calculateBarValuePixels(n.index,e),d=n.calculateBarIndexPixels(n.index,e,l);a.horizontal=s,a.base=i?o:u.base,a.x=s?i?o:u.head:d.center,a.y=s?d.center:i?o:u.head,a.height=s?d.size:void 0,a.width=s?void 0:d.size},_getStacks:function(t){var e,i,n=this.chart,a=this._getIndexScale().options.stacked,r=void 0===t?n.data.datasets.length:t+1,o=[];for(e=0;e<r;++e)(i=n.getDatasetMeta(e)).bar&&n.isDatasetVisible(e)&&(!1===a||!0===a&&-1===o.indexOf(i.stack)||void 0===a&&(void 0===i.stack||-1===o.indexOf(i.stack)))&&o.push(i.stack);return o},getStackCount:function(){return this._getStacks().length},getStackIndex:function(t,e){var i=this._getStacks(t),n=void 0!==e?i.indexOf(e):-1;return-1===n?i.length-1:n},getRuler:function(){var t,e,i=this._getIndexScale(),n=this.getStackCount(),a=this.index,r=i.isHorizontal(),o=r?i.left:i.top,s=o+(r?i.width:i.height),l=[];for(t=0,e=this.getMeta().data.length;t<e;++t)l.push(i.getPixelForValue(null,t,a));return{min:ut.isNullOrUndef(i.options.barThickness)?function(t,e){var i,n,a,r,o=t.isHorizontal()?t.width:t.height,s=t.getTicks();for(a=1,r=e.length;a<r;++a)o=Math.min(o,Math.abs(e[a]-e[a-1]));for(a=0,r=s.length;a<r;++a)n=t.getPixelForTick(a),o=a>0?Math.min(o,n-i):o,i=n;return o}(i,l):-1,pixels:l,start:o,end:s,stackCount:n,scale:i}},calculateBarValuePixels:function(t,e){var i,n,a,r,o,s,l=this.chart,u=this.getMeta(),d=this._getValueScale(),h=d.isHorizontal(),c=l.data.datasets,f=+d.getRightValue(c[t].data[e]),g=d.options.minBarLength,m=d.options.stacked,p=u.stack,v=0;if(m||void 0===m&&void 0!==p)for(i=0;i<t;++i)(n=l.getDatasetMeta(i)).bar&&n.stack===p&&n.controller._getValueScaleId()===d.id&&l.isDatasetVisible(i)&&(a=+d.getRightValue(c[i].data[e]),(f<0&&a<0||f>=0&&a>0)&&(v+=a));return r=d.getPixelForValue(v),s=(o=d.getPixelForValue(v+f))-r,void 0!==g&&Math.abs(s)<g&&(s=g,o=f>=0&&!h||f<0&&h?r-g:r+g),{size:s,base:r,head:o,center:o+s/2}},calculateBarIndexPixels:function(t,e,i){var n=i.scale.options,a="flex"===n.barThickness?function(t,e,i){var n,a=e.pixels,r=a[t],o=t>0?a[t-1]:null,s=t<a.length-1?a[t+1]:null,l=i.categoryPercentage;return null===o&&(o=r-(null===s?e.end-e.start:s-r)),null===s&&(s=r+r-o),n=r-(r-Math.min(o,s))/2*l,{chunk:Math.abs(s-o)/2*l/e.stackCount,ratio:i.barPercentage,start:n}}(e,i,n):function(t,e,i){var n,a,r=i.barThickness,o=e.stackCount,s=e.pixels[t];return ut.isNullOrUndef(r)?(n=e.min*i.categoryPercentage,a=i.barPercentage):(n=r*o,a=1),{chunk:n/o,ratio:a,start:s-n/2}}(e,i,n),r=this.getStackIndex(t,this.getMeta().stack),o=a.start+a.chunk*r+a.chunk/2,s=Math.min(ut.valueOrDefault(n.maxBarThickness,1/0),a.chunk*a.ratio);return{base:o-s/2,head:o+s/2,center:o,size:s}},draw:function(){var t=this.chart,e=this._getValueScale(),i=this.getMeta().data,n=this.getDataset(),a=i.length,r=0;for(ut.canvas.clipArea(t.ctx,t.chartArea);r<a;++r)isNaN(e.getRightValue(n.data[r]))||i[r].draw();ut.canvas.unclipArea(t.ctx)},_resolveElementOptions:function(t,e){var i,n,a,r=this.chart,o=r.data.datasets[this.index],s=t.custom||{},l=r.options.elements.rectangle,u={},d={chart:r,dataIndex:e,dataset:o,datasetIndex:this.index},h=["backgroundColor","borderColor","borderSkipped","borderWidth"];for(i=0,n=h.length;i<n;++i)u[a=h[i]]=Bt([s[a],o[a],l[a]],d,e);return u}}),Ut=ut.valueOrDefault,Gt=ut.options.resolve;ot._set("bubble",{hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-0"}],yAxes:[{type:"linear",position:"left",id:"y-axis-0"}]},tooltips:{callbacks:{title:function(){return""},label:function(t,e){var i=e.datasets[t.datasetIndex].label||"",n=e.datasets[t.datasetIndex].data[t.index];return i+": ("+t.xLabel+", "+t.yLabel+", "+n.r+")"}}}});var qt=kt.extend({dataElementType:Nt.Point,update:function(t){var e=this,i=e.getMeta().data;ut.each(i,function(i,n){e.updateElement(i,n,t)})},updateElement:function(t,e,i){var n=this,a=n.getMeta(),r=t.custom||{},o=n.getScaleForId(a.xAxisID),s=n.getScaleForId(a.yAxisID),l=n._resolveElementOptions(t,e),u=n.getDataset().data[e],d=n.index,h=i?o.getPixelForDecimal(.5):o.getPixelForValue("object"==typeof u?u:NaN,e,d),c=i?s.getBasePixel():s.getPixelForValue(u,e,d);t._xScale=o,t._yScale=s,t._options=l,t._datasetIndex=d,t._index=e,t._model={backgroundColor:l.backgroundColor,borderColor:l.borderColor,borderWidth:l.borderWidth,hitRadius:l.hitRadius,pointStyle:l.pointStyle,rotation:l.rotation,radius:i?0:l.radius,skip:r.skip||isNaN(h)||isNaN(c),x:h,y:c},t.pivot()},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth,radius:e.radius},e.backgroundColor=Ut(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=Ut(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=Ut(i.hoverBorderWidth,i.borderWidth),e.radius=i.radius+i.hoverRadius},_resolveElementOptions:function(t,e){var i,n,a,r=this.chart,o=r.data.datasets[this.index],s=t.custom||{},l=r.options.elements.point,u=o.data[e],d={},h={chart:r,dataIndex:e,dataset:o,datasetIndex:this.index},c=["backgroundColor","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","hoverRadius","hitRadius","pointStyle","rotation"];for(i=0,n=c.length;i<n;++i)d[a=c[i]]=Gt([s[a],o[a],l[a]],h,e);return d.radius=Gt([s.radius,u?u.r:void 0,o.radius,l.radius],h,e),d}}),Zt=ut.options.resolve,$t=ut.valueOrDefault;ot._set("doughnut",{animation:{animateRotate:!0,animateScale:!1},hover:{mode:"single"},legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var i=t.data,n=i.datasets,a=i.labels;if(n.length)for(var r=0;r<n[0].data.length;++r)e.push('<li><span style="background-color:'+n[0].backgroundColor[r]+'"></span>'),a[r]&&e.push(a[r]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(i,n){var a=t.getDatasetMeta(0),r=e.datasets[0],o=a.data[n],s=o&&o.custom||{},l=t.options.elements.arc;return{text:i,fillStyle:Zt([s.backgroundColor,r.backgroundColor,l.backgroundColor],void 0,n),strokeStyle:Zt([s.borderColor,r.borderColor,l.borderColor],void 0,n),lineWidth:Zt([s.borderWidth,r.borderWidth,l.borderWidth],void 0,n),hidden:isNaN(r.data[n])||a.data[n].hidden,index:n}}):[]}},onClick:function(t,e){var i,n,a,r=e.index,o=this.chart;for(i=0,n=(o.data.datasets||[]).length;i<n;++i)(a=o.getDatasetMeta(i)).data[r]&&(a.data[r].hidden=!a.data[r].hidden);o.update()}},cutoutPercentage:50,rotation:-.5*Math.PI,circumference:2*Math.PI,tooltips:{callbacks:{title:function(){return""},label:function(t,e){var i=e.labels[t.index],n=": "+e.datasets[t.datasetIndex].data[t.index];return ut.isArray(i)?(i=i.slice())[0]+=n:i+=n,i}}}});var Xt=kt.extend({dataElementType:Nt.Arc,linkScales:ut.noop,getRingIndex:function(t){for(var e=0,i=0;i<t;++i)this.chart.isDatasetVisible(i)&&++e;return e},update:function(t){var e,i,n=this,a=n.chart,r=a.chartArea,o=a.options,s=r.right-r.left,l=r.bottom-r.top,u=Math.min(s,l),d={x:0,y:0},h=n.getMeta(),c=h.data,f=o.cutoutPercentage,g=o.circumference,m=n._getRingWeight(n.index);if(g<2*Math.PI){var p=o.rotation%(2*Math.PI),v=(p+=2*Math.PI*(p>=Math.PI?-1:p<-Math.PI?1:0))+g,y={x:Math.cos(p),y:Math.sin(p)},b={x:Math.cos(v),y:Math.sin(v)},x=p<=0&&v>=0||p<=2*Math.PI&&2*Math.PI<=v,_=p<=.5*Math.PI&&.5*Math.PI<=v||p<=2.5*Math.PI&&2.5*Math.PI<=v,k=p<=-Math.PI&&-Math.PI<=v||p<=Math.PI&&Math.PI<=v,w=p<=.5*-Math.PI&&.5*-Math.PI<=v||p<=1.5*Math.PI&&1.5*Math.PI<=v,M=f/100,S={x:k?-1:Math.min(y.x*(y.x<0?1:M),b.x*(b.x<0?1:M)),y:w?-1:Math.min(y.y*(y.y<0?1:M),b.y*(b.y<0?1:M))},D={x:x?1:Math.max(y.x*(y.x>0?1:M),b.x*(b.x>0?1:M)),y:_?1:Math.max(y.y*(y.y>0?1:M),b.y*(b.y>0?1:M))},C={width:.5*(D.x-S.x),height:.5*(D.y-S.y)};u=Math.min(s/C.width,l/C.height),d={x:-.5*(D.x+S.x),y:-.5*(D.y+S.y)}}for(e=0,i=c.length;e<i;++e)c[e]._options=n._resolveElementOptions(c[e],e);for(a.borderWidth=n.getMaxBorderWidth(),a.outerRadius=Math.max((u-a.borderWidth)/2,0),a.innerRadius=Math.max(f?a.outerRadius/100*f:0,0),a.radiusLength=(a.outerRadius-a.innerRadius)/(n._getVisibleDatasetWeightTotal()||1),a.offsetX=d.x*a.outerRadius,a.offsetY=d.y*a.outerRadius,h.total=n.calculateTotal(),n.outerRadius=a.outerRadius-a.radiusLength*n._getRingWeightOffset(n.index),n.innerRadius=Math.max(n.outerRadius-a.radiusLength*m,0),e=0,i=c.length;e<i;++e)n.updateElement(c[e],e,t)},updateElement:function(t,e,i){var n=this,a=n.chart,r=a.chartArea,o=a.options,s=o.animation,l=(r.left+r.right)/2,u=(r.top+r.bottom)/2,d=o.rotation,h=o.rotation,c=n.getDataset(),f=i&&s.animateRotate?0:t.hidden?0:n.calculateCircumference(c.data[e])*(o.circumference/(2*Math.PI)),g=i&&s.animateScale?0:n.innerRadius,m=i&&s.animateScale?0:n.outerRadius,p=t._options||{};ut.extend(t,{_datasetIndex:n.index,_index:e,_model:{backgroundColor:p.backgroundColor,borderColor:p.borderColor,borderWidth:p.borderWidth,borderAlign:p.borderAlign,x:l+a.offsetX,y:u+a.offsetY,startAngle:d,endAngle:h,circumference:f,outerRadius:m,innerRadius:g,label:ut.valueAtIndexOrDefault(c.label,e,a.data.labels[e])}});var v=t._model;i&&s.animateRotate||(v.startAngle=0===e?o.rotation:n.getMeta().data[e-1]._model.endAngle,v.endAngle=v.startAngle+v.circumference),t.pivot()},calculateTotal:function(){var t,e=this.getDataset(),i=this.getMeta(),n=0;return ut.each(i.data,function(i,a){t=e.data[a],isNaN(t)||i.hidden||(n+=Math.abs(t))}),n},calculateCircumference:function(t){var e=this.getMeta().total;return e>0&&!isNaN(t)?2*Math.PI*(Math.abs(t)/e):0},getMaxBorderWidth:function(t){var e,i,n,a,r,o,s,l,u=0,d=this.chart;if(!t)for(e=0,i=d.data.datasets.length;e<i;++e)if(d.isDatasetVisible(e)){t=(n=d.getDatasetMeta(e)).data,e!==this.index&&(r=n.controller);break}if(!t)return 0;for(e=0,i=t.length;e<i;++e)a=t[e],"inner"!==(o=r?r._resolveElementOptions(a,e):a._options).borderAlign&&(s=o.borderWidth,u=(l=o.hoverBorderWidth)>(u=s>u?s:u)?l:u);return u},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth},e.backgroundColor=$t(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=$t(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=$t(i.hoverBorderWidth,i.borderWidth)},_resolveElementOptions:function(t,e){var i,n,a,r=this.chart,o=this.getDataset(),s=t.custom||{},l=r.options.elements.arc,u={},d={chart:r,dataIndex:e,dataset:o,datasetIndex:this.index},h=["backgroundColor","borderColor","borderWidth","borderAlign","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth"];for(i=0,n=h.length;i<n;++i)u[a=h[i]]=Zt([s[a],o[a],l[a]],d,e);return u},_getRingWeightOffset:function(t){for(var e=0,i=0;i<t;++i)this.chart.isDatasetVisible(i)&&(e+=this._getRingWeight(i));return e},_getRingWeight:function(t){return Math.max($t(this.chart.data.datasets[t].weight,1),0)},_getVisibleDatasetWeightTotal:function(){return this._getRingWeightOffset(this.chart.data.datasets.length)}});ot._set("horizontalBar",{hover:{mode:"index",axis:"y"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{type:"category",position:"left",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{mode:"index",axis:"y"}});var Kt=jt.extend({_getValueScaleId:function(){return this.getMeta().xAxisID},_getIndexScaleId:function(){return this.getMeta().yAxisID}}),Jt=ut.valueOrDefault,Qt=ut.options.resolve,te=ut.canvas._isPointInArea;function ee(t,e){return Jt(t.showLine,e.showLines)}ot._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}});var ie=kt.extend({datasetElementType:Nt.Line,dataElementType:Nt.Point,update:function(t){var e,i,n=this,a=n.getMeta(),r=a.dataset,o=a.data||[],s=n.getScaleForId(a.yAxisID),l=n.getDataset(),u=ee(l,n.chart.options);for(u&&(void 0!==l.tension&&void 0===l.lineTension&&(l.lineTension=l.tension),r._scale=s,r._datasetIndex=n.index,r._children=o,r._model=n._resolveLineOptions(r),r.pivot()),e=0,i=o.length;e<i;++e)n.updateElement(o[e],e,t);for(u&&0!==r._model.tension&&n.updateBezierControlPoints(),e=0,i=o.length;e<i;++e)o[e].pivot()},updateElement:function(t,e,i){var n,a,r=this,o=r.getMeta(),s=t.custom||{},l=r.getDataset(),u=r.index,d=l.data[e],h=r.getScaleForId(o.yAxisID),c=r.getScaleForId(o.xAxisID),f=o.dataset._model,g=r._resolvePointOptions(t,e);n=c.getPixelForValue("object"==typeof d?d:NaN,e,u),a=i?h.getBasePixel():r.calculatePointY(d,e,u),t._xScale=c,t._yScale=h,t._options=g,t._datasetIndex=u,t._index=e,t._model={x:n,y:a,skip:s.skip||isNaN(n)||isNaN(a),radius:g.radius,pointStyle:g.pointStyle,rotation:g.rotation,backgroundColor:g.backgroundColor,borderColor:g.borderColor,borderWidth:g.borderWidth,tension:Jt(s.tension,f?f.tension:0),steppedLine:!!f&&f.steppedLine,hitRadius:g.hitRadius}},_resolvePointOptions:function(t,e){var i,n,a,r=this.chart,o=r.data.datasets[this.index],s=t.custom||{},l=r.options.elements.point,u={},d={chart:r,dataIndex:e,dataset:o,datasetIndex:this.index},h={backgroundColor:"pointBackgroundColor",borderColor:"pointBorderColor",borderWidth:"pointBorderWidth",hitRadius:"pointHitRadius",hoverBackgroundColor:"pointHoverBackgroundColor",hoverBorderColor:"pointHoverBorderColor",hoverBorderWidth:"pointHoverBorderWidth",hoverRadius:"pointHoverRadius",pointStyle:"pointStyle",radius:"pointRadius",rotation:"pointRotation"},c=Object.keys(h);for(i=0,n=c.length;i<n;++i)u[a=c[i]]=Qt([s[a],o[h[a]],o[a],l[a]],d,e);return u},_resolveLineOptions:function(t){var e,i,n,a=this.chart,r=a.data.datasets[this.index],o=t.custom||{},s=a.options,l=s.elements.line,u={},d=["backgroundColor","borderWidth","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","fill","cubicInterpolationMode"];for(e=0,i=d.length;e<i;++e)u[n=d[e]]=Qt([o[n],r[n],l[n]]);return u.spanGaps=Jt(r.spanGaps,s.spanGaps),u.tension=Jt(r.lineTension,l.tension),u.steppedLine=Qt([o.steppedLine,r.steppedLine,l.stepped]),u},calculatePointY:function(t,e,i){var n,a,r,o=this.chart,s=this.getMeta(),l=this.getScaleForId(s.yAxisID),u=0,d=0;if(l.options.stacked){for(n=0;n<i;n++)if(a=o.data.datasets[n],"line"===(r=o.getDatasetMeta(n)).type&&r.yAxisID===l.id&&o.isDatasetVisible(n)){var h=Number(l.getRightValue(a.data[e]));h<0?d+=h||0:u+=h||0}var c=Number(l.getRightValue(t));return c<0?l.getPixelForValue(d+c):l.getPixelForValue(u+c)}return l.getPixelForValue(t)},updateBezierControlPoints:function(){var t,e,i,n,a=this.chart,r=this.getMeta(),o=r.dataset._model,s=a.chartArea,l=r.data||[];function u(t,e,i){return Math.max(Math.min(t,i),e)}if(o.spanGaps&&(l=l.filter(function(t){return!t._model.skip})),"monotone"===o.cubicInterpolationMode)ut.splineCurveMonotone(l);else for(t=0,e=l.length;t<e;++t)i=l[t]._model,n=ut.splineCurve(ut.previousItem(l,t)._model,i,ut.nextItem(l,t)._model,o.tension),i.controlPointPreviousX=n.previous.x,i.controlPointPreviousY=n.previous.y,i.controlPointNextX=n.next.x,i.controlPointNextY=n.next.y;if(a.options.elements.line.capBezierPoints)for(t=0,e=l.length;t<e;++t)i=l[t]._model,te(i,s)&&(t>0&&te(l[t-1]._model,s)&&(i.controlPointPreviousX=u(i.controlPointPreviousX,s.left,s.right),i.controlPointPreviousY=u(i.controlPointPreviousY,s.top,s.bottom)),t<l.length-1&&te(l[t+1]._model,s)&&(i.controlPointNextX=u(i.controlPointNextX,s.left,s.right),i.controlPointNextY=u(i.controlPointNextY,s.top,s.bottom)))},draw:function(){var t,e=this.chart,i=this.getMeta(),n=i.data||[],a=e.chartArea,r=n.length,o=0;for(ee(this.getDataset(),e.options)&&(t=(i.dataset._model.borderWidth||0)/2,ut.canvas.clipArea(e.ctx,{left:a.left,right:a.right,top:a.top-t,bottom:a.bottom+t}),i.dataset.draw(),ut.canvas.unclipArea(e.ctx));o<r;++o)n[o].draw(a)},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth,radius:e.radius},e.backgroundColor=Jt(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=Jt(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=Jt(i.hoverBorderWidth,i.borderWidth),e.radius=Jt(i.hoverRadius,i.radius)}}),ne=ut.options.resolve;ot._set("polarArea",{scale:{type:"radialLinear",angleLines:{display:!1},gridLines:{circular:!0},pointLabels:{display:!1},ticks:{beginAtZero:!0}},animation:{animateRotate:!0,animateScale:!0},startAngle:-.5*Math.PI,legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var i=t.data,n=i.datasets,a=i.labels;if(n.length)for(var r=0;r<n[0].data.length;++r)e.push('<li><span style="background-color:'+n[0].backgroundColor[r]+'"></span>'),a[r]&&e.push(a[r]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(i,n){var a=t.getDatasetMeta(0),r=e.datasets[0],o=a.data[n].custom||{},s=t.options.elements.arc;return{text:i,fillStyle:ne([o.backgroundColor,r.backgroundColor,s.backgroundColor],void 0,n),strokeStyle:ne([o.borderColor,r.borderColor,s.borderColor],void 0,n),lineWidth:ne([o.borderWidth,r.borderWidth,s.borderWidth],void 0,n),hidden:isNaN(r.data[n])||a.data[n].hidden,index:n}}):[]}},onClick:function(t,e){var i,n,a,r=e.index,o=this.chart;for(i=0,n=(o.data.datasets||[]).length;i<n;++i)(a=o.getDatasetMeta(i)).data[r].hidden=!a.data[r].hidden;o.update()}},tooltips:{callbacks:{title:function(){return""},label:function(t,e){return e.labels[t.index]+": "+t.yLabel}}}});var ae=kt.extend({dataElementType:Nt.Arc,linkScales:ut.noop,update:function(t){var e,i,n,a=this,r=a.getDataset(),o=a.getMeta(),s=a.chart.options.startAngle||0,l=a._starts=[],u=a._angles=[],d=o.data;for(a._updateRadius(),o.count=a.countVisibleElements(),e=0,i=r.data.length;e<i;e++)l[e]=s,n=a._computeAngle(e),u[e]=n,s+=n;for(e=0,i=d.length;e<i;++e)d[e]._options=a._resolveElementOptions(d[e],e),a.updateElement(d[e],e,t)},_updateRadius:function(){var t=this,e=t.chart,i=e.chartArea,n=e.options,a=Math.min(i.right-i.left,i.bottom-i.top);e.outerRadius=Math.max(a/2,0),e.innerRadius=Math.max(n.cutoutPercentage?e.outerRadius/100*n.cutoutPercentage:1,0),e.radiusLength=(e.outerRadius-e.innerRadius)/e.getVisibleDatasetCount(),t.outerRadius=e.outerRadius-e.radiusLength*t.index,t.innerRadius=t.outerRadius-e.radiusLength},updateElement:function(t,e,i){var n=this,a=n.chart,r=n.getDataset(),o=a.options,s=o.animation,l=a.scale,u=a.data.labels,d=l.xCenter,h=l.yCenter,c=o.startAngle,f=t.hidden?0:l.getDistanceFromCenterForValue(r.data[e]),g=n._starts[e],m=g+(t.hidden?0:n._angles[e]),p=s.animateScale?0:l.getDistanceFromCenterForValue(r.data[e]),v=t._options||{};ut.extend(t,{_datasetIndex:n.index,_index:e,_scale:l,_model:{backgroundColor:v.backgroundColor,borderColor:v.borderColor,borderWidth:v.borderWidth,borderAlign:v.borderAlign,x:d,y:h,innerRadius:0,outerRadius:i?p:f,startAngle:i&&s.animateRotate?c:g,endAngle:i&&s.animateRotate?c:m,label:ut.valueAtIndexOrDefault(u,e,u[e])}}),t.pivot()},countVisibleElements:function(){var t=this.getDataset(),e=this.getMeta(),i=0;return ut.each(e.data,function(e,n){isNaN(t.data[n])||e.hidden||i++}),i},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor,a=ut.valueOrDefault;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth},e.backgroundColor=a(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=a(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=a(i.hoverBorderWidth,i.borderWidth)},_resolveElementOptions:function(t,e){var i,n,a,r=this.chart,o=this.getDataset(),s=t.custom||{},l=r.options.elements.arc,u={},d={chart:r,dataIndex:e,dataset:o,datasetIndex:this.index},h=["backgroundColor","borderColor","borderWidth","borderAlign","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth"];for(i=0,n=h.length;i<n;++i)u[a=h[i]]=ne([s[a],o[a],l[a]],d,e);return u},_computeAngle:function(t){var e=this,i=this.getMeta().count,n=e.getDataset(),a=e.getMeta();if(isNaN(n.data[t])||a.data[t].hidden)return 0;var r={chart:e.chart,dataIndex:t,dataset:n,datasetIndex:e.index};return ne([e.chart.options.elements.arc.angle,2*Math.PI/i],r,t)}});ot._set("pie",ut.clone(ot.doughnut)),ot._set("pie",{cutoutPercentage:0});var re=Xt,oe=ut.valueOrDefault,se=ut.options.resolve;ot._set("radar",{scale:{type:"radialLinear"},elements:{line:{tension:0}}});var le=kt.extend({datasetElementType:Nt.Line,dataElementType:Nt.Point,linkScales:ut.noop,update:function(t){var e,i,n=this,a=n.getMeta(),r=a.dataset,o=a.data||[],s=n.chart.scale,l=n.getDataset();for(void 0!==l.tension&&void 0===l.lineTension&&(l.lineTension=l.tension),r._scale=s,r._datasetIndex=n.index,r._children=o,r._loop=!0,r._model=n._resolveLineOptions(r),r.pivot(),e=0,i=o.length;e<i;++e)n.updateElement(o[e],e,t);for(n.updateBezierControlPoints(),e=0,i=o.length;e<i;++e)o[e].pivot()},updateElement:function(t,e,i){var n=this,a=t.custom||{},r=n.getDataset(),o=n.chart.scale,s=o.getPointPositionForValue(e,r.data[e]),l=n._resolvePointOptions(t,e),u=n.getMeta().dataset._model,d=i?o.xCenter:s.x,h=i?o.yCenter:s.y;t._scale=o,t._options=l,t._datasetIndex=n.index,t._index=e,t._model={x:d,y:h,skip:a.skip||isNaN(d)||isNaN(h),radius:l.radius,pointStyle:l.pointStyle,rotation:l.rotation,backgroundColor:l.backgroundColor,borderColor:l.borderColor,borderWidth:l.borderWidth,tension:oe(a.tension,u?u.tension:0),hitRadius:l.hitRadius}},_resolvePointOptions:function(t,e){var i,n,a,r=this.chart,o=r.data.datasets[this.index],s=t.custom||{},l=r.options.elements.point,u={},d={chart:r,dataIndex:e,dataset:o,datasetIndex:this.index},h={backgroundColor:"pointBackgroundColor",borderColor:"pointBorderColor",borderWidth:"pointBorderWidth",hitRadius:"pointHitRadius",hoverBackgroundColor:"pointHoverBackgroundColor",hoverBorderColor:"pointHoverBorderColor",hoverBorderWidth:"pointHoverBorderWidth",hoverRadius:"pointHoverRadius",pointStyle:"pointStyle",radius:"pointRadius",rotation:"pointRotation"},c=Object.keys(h);for(i=0,n=c.length;i<n;++i)u[a=c[i]]=se([s[a],o[h[a]],o[a],l[a]],d,e);return u},_resolveLineOptions:function(t){var e,i,n,a=this.chart,r=a.data.datasets[this.index],o=t.custom||{},s=a.options.elements.line,l={},u=["backgroundColor","borderWidth","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","fill"];for(e=0,i=u.length;e<i;++e)l[n=u[e]]=se([o[n],r[n],s[n]]);return l.tension=oe(r.lineTension,s.tension),l},updateBezierControlPoints:function(){var t,e,i,n,a=this.getMeta(),r=this.chart.chartArea,o=a.data||[];function s(t,e,i){return Math.max(Math.min(t,i),e)}for(t=0,e=o.length;t<e;++t)i=o[t]._model,n=ut.splineCurve(ut.previousItem(o,t,!0)._model,i,ut.nextItem(o,t,!0)._model,i.tension),i.controlPointPreviousX=s(n.previous.x,r.left,r.right),i.controlPointPreviousY=s(n.previous.y,r.top,r.bottom),i.controlPointNextX=s(n.next.x,r.left,r.right),i.controlPointNextY=s(n.next.y,r.top,r.bottom)},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth,radius:e.radius},e.backgroundColor=oe(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=oe(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=oe(i.hoverBorderWidth,i.borderWidth),e.radius=oe(i.hoverRadius,i.radius)}});ot._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},showLines:!1,tooltips:{callbacks:{title:function(){return""},label:function(t){return"("+t.xLabel+", "+t.yLabel+")"}}}});var ue={bar:jt,bubble:qt,doughnut:Xt,horizontalBar:Kt,line:ie,polarArea:ae,pie:re,radar:le,scatter:ie};function de(t,e){return t.native?{x:t.x,y:t.y}:ut.getRelativePosition(t,e)}function he(t,e){var i,n,a,r,o;for(n=0,r=t.data.datasets.length;n<r;++n)if(t.isDatasetVisible(n))for(a=0,o=(i=t.getDatasetMeta(n)).data.length;a<o;++a){var s=i.data[a];s._view.skip||e(s)}}function ce(t,e){var i=[];return he(t,function(t){t.inRange(e.x,e.y)&&i.push(t)}),i}function fe(t,e,i,n){var a=Number.POSITIVE_INFINITY,r=[];return he(t,function(t){if(!i||t.inRange(e.x,e.y)){var o=t.getCenterPoint(),s=n(e,o);s<a?(r=[t],a=s):s===a&&r.push(t)}}),r}function ge(t){var e=-1!==t.indexOf("x"),i=-1!==t.indexOf("y");return function(t,n){var a=e?Math.abs(t.x-n.x):0,r=i?Math.abs(t.y-n.y):0;return Math.sqrt(Math.pow(a,2)+Math.pow(r,2))}}function me(t,e,i){var n=de(e,t);i.axis=i.axis||"x";var a=ge(i.axis),r=i.intersect?ce(t,n):fe(t,n,!1,a),o=[];return r.length?(t.data.datasets.forEach(function(e,i){if(t.isDatasetVisible(i)){var n=t.getDatasetMeta(i).data[r[0]._index];n&&!n._view.skip&&o.push(n)}}),o):[]}var pe={modes:{single:function(t,e){var i=de(e,t),n=[];return he(t,function(t){if(t.inRange(i.x,i.y))return n.push(t),n}),n.slice(0,1)},label:me,index:me,dataset:function(t,e,i){var n=de(e,t);i.axis=i.axis||"xy";var a=ge(i.axis),r=i.intersect?ce(t,n):fe(t,n,!1,a);return r.length>0&&(r=t.getDatasetMeta(r[0]._datasetIndex).data),r},"x-axis":function(t,e){return me(t,e,{intersect:!1})},point:function(t,e){return ce(t,de(e,t))},nearest:function(t,e,i){var n=de(e,t);i.axis=i.axis||"xy";var a=ge(i.axis);return fe(t,n,i.intersect,a)},x:function(t,e,i){var n=de(e,t),a=[],r=!1;return he(t,function(t){t.inXRange(n.x)&&a.push(t),t.inRange(n.x,n.y)&&(r=!0)}),i.intersect&&!r&&(a=[]),a},y:function(t,e,i){var n=de(e,t),a=[],r=!1;return he(t,function(t){t.inYRange(n.y)&&a.push(t),t.inRange(n.x,n.y)&&(r=!0)}),i.intersect&&!r&&(a=[]),a}}};function ve(t,e){return ut.where(t,function(t){return t.position===e})}function ye(t,e){t.forEach(function(t,e){return t._tmpIndex_=e,t}),t.sort(function(t,i){var n=e?i:t,a=e?t:i;return n.weight===a.weight?n._tmpIndex_-a._tmpIndex_:n.weight-a.weight}),t.forEach(function(t){delete t._tmpIndex_})}function be(t,e){ut.each(t,function(t){e[t.position]+=t.isHorizontal()?t.height:t.width})}ot._set("global",{layout:{padding:{top:0,right:0,bottom:0,left:0}}});var xe={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),e.fullWidth=e.fullWidth||!1,e.position=e.position||"top",e.weight=e.weight||0,t.boxes.push(e)},removeBox:function(t,e){var i=t.boxes?t.boxes.indexOf(e):-1;-1!==i&&t.boxes.splice(i,1)},configure:function(t,e,i){for(var n,a=["fullWidth","position","weight"],r=a.length,o=0;o<r;++o)n=a[o],i.hasOwnProperty(n)&&(e[n]=i[n])},update:function(t,e,i){if(t){var n=t.options.layout||{},a=ut.options.toPadding(n.padding),r=a.left,o=a.right,s=a.top,l=a.bottom,u=ve(t.boxes,"left"),d=ve(t.boxes,"right"),h=ve(t.boxes,"top"),c=ve(t.boxes,"bottom"),f=ve(t.boxes,"chartArea");ye(u,!0),ye(d,!1),ye(h,!0),ye(c,!1);var g,m=u.concat(d),p=h.concat(c),v=m.concat(p),y=e-r-o,b=i-s-l,x=(e-y/2)/m.length,_=y,k=b,w={top:s,left:r,bottom:l,right:o},M=[];ut.each(v,function(t){var e,i=t.isHorizontal();i?(e=t.update(t.fullWidth?y:_,b/2),k-=e.height):(e=t.update(x,k),_-=e.width),M.push({horizontal:i,width:e.width,box:t})}),g=function(t){var e=0,i=0,n=0,a=0;return ut.each(t,function(t){if(t.getPadding){var r=t.getPadding();e=Math.max(e,r.top),i=Math.max(i,r.left),n=Math.max(n,r.bottom),a=Math.max(a,r.right)}}),{top:e,left:i,bottom:n,right:a}}(v),ut.each(m,I),be(m,w),ut.each(p,I),be(p,w),ut.each(m,function(t){var e=ut.findNextWhere(M,function(e){return e.box===t}),i={left:0,right:0,top:w.top,bottom:w.bottom};e&&t.update(e.width,k,i)}),be(v,w={top:s,left:r,bottom:l,right:o});var S=Math.max(g.left-w.left,0);w.left+=S,w.right+=Math.max(g.right-w.right,0);var D=Math.max(g.top-w.top,0);w.top+=D,w.bottom+=Math.max(g.bottom-w.bottom,0);var C=i-w.top-w.bottom,P=e-w.left-w.right;P===_&&C===k||(ut.each(m,function(t){t.height=C}),ut.each(p,function(t){t.fullWidth||(t.width=P)}),k=C,_=P);var T=r+S,O=s+D;ut.each(u.concat(h),A),T+=_,O+=k,ut.each(d,A),ut.each(c,A),t.chartArea={left:w.left,top:w.top,right:w.left+_,bottom:w.top+k},ut.each(f,function(e){e.left=t.chartArea.left,e.top=t.chartArea.top,e.right=t.chartArea.right,e.bottom=t.chartArea.bottom,e.update(_,k)})}function I(t){var e=ut.findNextWhere(M,function(e){return e.box===t});if(e)if(e.horizontal){var i={left:Math.max(w.left,g.left),right:Math.max(w.right,g.right),top:0,bottom:0};t.update(t.fullWidth?y:_,b/2,i)}else t.update(e.width,k)}function A(t){t.isHorizontal()?(t.left=t.fullWidth?r:w.left,t.right=t.fullWidth?e-o:w.left+_,t.top=O,t.bottom=O+t.height,O=t.bottom):(t.left=T,t.right=T+t.width,t.top=w.top,t.bottom=w.top+k,T=t.right)}}};"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function _e(){throw new Error("Dynamic requires are not currently supported by rollup-plugin-commonjs")}var ke,we=(ke=Object.freeze({default:"@keyframes chartjs-render-animation{from{opacity:.99}to{opacity:1}}.chartjs-render-monitor{animation:chartjs-render-animation 1ms}.chartjs-size-monitor,.chartjs-size-monitor-expand,.chartjs-size-monitor-shrink{position:absolute;direction:ltr;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1}.chartjs-size-monitor-expand>div{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0}"}))&&ke.default||ke,Me="$chartjs",Se="chartjs-size-monitor",De="chartjs-render-monitor",Ce="chartjs-render-animation",Pe=["animationstart","webkitAnimationStart"],Te={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function Oe(t,e){var i=ut.getStyle(t,e),n=i&&i.match(/^(\d+)(\.\d+)?px$/);return n?Number(n[1]):void 0}var Ie=!!function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("e",null,e)}catch(t){}return t}()&&{passive:!0};function Ae(t,e,i){t.addEventListener(e,i,Ie)}function Fe(t,e,i){t.removeEventListener(e,i,Ie)}function Re(t,e,i,n,a){return{type:t,chart:e,native:a||null,x:void 0!==i?i:null,y:void 0!==n?n:null}}function Le(t){var e=document.createElement("div");return e.className=t||"",e}function We(t,e,i){var n,a,r,o,s=t[Me]||(t[Me]={}),l=s.resizer=function(t){var e=Le(Se),i=Le(Se+"-expand"),n=Le(Se+"-shrink");i.appendChild(Le()),n.appendChild(Le()),e.appendChild(i),e.appendChild(n),e._reset=function(){i.scrollLeft=1e6,i.scrollTop=1e6,n.scrollLeft=1e6,n.scrollTop=1e6};var a=function(){e._reset(),t()};return Ae(i,"scroll",a.bind(i,"expand")),Ae(n,"scroll",a.bind(n,"shrink")),e}((n=function(){if(s.resizer){var n=i.options.maintainAspectRatio&&t.parentNode,a=n?n.clientWidth:0;e(Re("resize",i)),n&&n.clientWidth<a&&i.canvas&&e(Re("resize",i))}},r=!1,o=[],function(){o=Array.prototype.slice.call(arguments),a=a||this,r||(r=!0,ut.requestAnimFrame.call(window,function(){r=!1,n.apply(a,o)}))}));!function(t,e){var i=t[Me]||(t[Me]={}),n=i.renderProxy=function(t){t.animationName===Ce&&e()};ut.each(Pe,function(e){Ae(t,e,n)}),i.reflow=!!t.offsetParent,t.classList.add(De)}(t,function(){if(s.resizer){var e=t.parentNode;e&&e!==l.parentNode&&e.insertBefore(l,e.firstChild),l._reset()}})}function Ye(t){var e=t[Me]||{},i=e.resizer;delete e.resizer,function(t){var e=t[Me]||{},i=e.renderProxy;i&&(ut.each(Pe,function(e){Fe(t,e,i)}),delete e.renderProxy),t.classList.remove(De)}(t),i&&i.parentNode&&i.parentNode.removeChild(i)}var Ne={disableCSSInjection:!1,_enabled:"undefined"!=typeof window&&"undefined"!=typeof document,_ensureLoaded:function(){var t,e,i;this._loaded||(this._loaded=!0,this.disableCSSInjection||(e=we,i=(t=this)._style||document.createElement("style"),t._style||(t._style=i,e="/* Chart.js */\n"+e,i.setAttribute("type","text/css"),document.getElementsByTagName("head")[0].appendChild(i)),i.appendChild(document.createTextNode(e))))},acquireContext:function(t,e){"string"==typeof t?t=document.getElementById(t):t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas);var i=t&&t.getContext&&t.getContext("2d");return this._ensureLoaded(),i&&i.canvas===t?(function(t,e){var i=t.style,n=t.getAttribute("height"),a=t.getAttribute("width");if(t[Me]={initial:{height:n,width:a,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||"block",null===a||""===a){var r=Oe(t,"width");void 0!==r&&(t.width=r)}if(null===n||""===n)if(""===t.style.height)t.height=t.width/(e.options.aspectRatio||2);else{var o=Oe(t,"height");void 0!==r&&(t.height=o)}}(t,e),i):null},releaseContext:function(t){var e=t.canvas;if(e[Me]){var i=e[Me].initial;["height","width"].forEach(function(t){var n=i[t];ut.isNullOrUndef(n)?e.removeAttribute(t):e.setAttribute(t,n)}),ut.each(i.style||{},function(t,i){e.style[i]=t}),e.width=e.width,delete e[Me]}},addEventListener:function(t,e,i){var n=t.canvas;if("resize"!==e){var a=i[Me]||(i[Me]={});Ae(n,e,(a.proxies||(a.proxies={}))[t.id+"_"+e]=function(e){i(function(t,e){var i=Te[t.type]||t.type,n=ut.getRelativePosition(t,e);return Re(i,e,n.x,n.y,t)}(e,t))})}else We(n,i,t)},removeEventListener:function(t,e,i){var n=t.canvas;if("resize"!==e){var a=((i[Me]||{}).proxies||{})[t.id+"_"+e];a&&Fe(n,e,a)}else Ye(n)}};ut.addEvent=Ae,ut.removeEvent=Fe;var ze=Ne._enabled?Ne:{acquireContext:function(t){return t&&t.canvas&&(t=t.canvas),t&&t.getContext("2d")||null}},Ve=ut.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},ze);ot._set("global",{plugins:{}});var He={_plugins:[],_cacheId:0,register:function(t){var e=this._plugins;[].concat(t).forEach(function(t){-1===e.indexOf(t)&&e.push(t)}),this._cacheId++},unregister:function(t){var e=this._plugins;[].concat(t).forEach(function(t){var i=e.indexOf(t);-1!==i&&e.splice(i,1)}),this._cacheId++},clear:function(){this._plugins=[],this._cacheId++},count:function(){return this._plugins.length},getAll:function(){return this._plugins},notify:function(t,e,i){var n,a,r,o,s,l=this.descriptors(t),u=l.length;for(n=0;n<u;++n)if("function"==typeof(s=(r=(a=l[n]).plugin)[e])&&((o=[t].concat(i||[])).push(a.options),!1===s.apply(r,o)))return!1;return!0},descriptors:function(t){var e=t.$plugins||(t.$plugins={});if(e.id===this._cacheId)return e.descriptors;var i=[],n=[],a=t&&t.config||{},r=a.options&&a.options.plugins||{};return this._plugins.concat(a.plugins||[]).forEach(function(t){if(-1===i.indexOf(t)){var e=t.id,a=r[e];!1!==a&&(!0===a&&(a=ut.clone(ot.global.plugins[e])),i.push(t),n.push({plugin:t,options:a||{}}))}}),e.descriptors=n,e.id=this._cacheId,n},_invalidate:function(t){delete t.$plugins}},Ee={constructors:{},defaults:{},registerScaleType:function(t,e,i){this.constructors[t]=e,this.defaults[t]=ut.clone(i)},getScaleConstructor:function(t){return this.constructors.hasOwnProperty(t)?this.constructors[t]:void 0},getScaleDefaults:function(t){return this.defaults.hasOwnProperty(t)?ut.merge({},[ot.scale,this.defaults[t]]):{}},updateScaleDefaults:function(t,e){this.defaults.hasOwnProperty(t)&&(this.defaults[t]=ut.extend(this.defaults[t],e))},addScalesToLayout:function(t){ut.each(t.scales,function(e){e.fullWidth=e.options.fullWidth,e.position=e.options.position,e.weight=e.options.weight,xe.addBox(t,e)})}},Be=ut.valueOrDefault;ot._set("global",{tooltips:{enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,borderColor:"rgba(0,0,0,0)",borderWidth:0,callbacks:{beforeTitle:ut.noop,title:function(t,e){var i="",n=e.labels,a=n?n.length:0;if(t.length>0){var r=t[0];r.label?i=r.label:r.xLabel?i=r.xLabel:a>0&&r.index<a&&(i=n[r.index])}return i},afterTitle:ut.noop,beforeBody:ut.noop,beforeLabel:ut.noop,label:function(t,e){var i=e.datasets[t.datasetIndex].label||"";return i&&(i+=": "),ut.isNullOrUndef(t.value)?i+=t.yLabel:i+=t.value,i},labelColor:function(t,e){var i=e.getDatasetMeta(t.datasetIndex).data[t.index]._view;return{borderColor:i.borderColor,backgroundColor:i.backgroundColor}},labelTextColor:function(){return this._options.bodyFontColor},afterLabel:ut.noop,afterBody:ut.noop,beforeFooter:ut.noop,footer:ut.noop,afterFooter:ut.noop}}});var je={average:function(t){if(!t.length)return!1;var e,i,n=0,a=0,r=0;for(e=0,i=t.length;e<i;++e){var o=t[e];if(o&&o.hasValue()){var s=o.tooltipPosition();n+=s.x,a+=s.y,++r}}return{x:n/r,y:a/r}},nearest:function(t,e){var i,n,a,r=e.x,o=e.y,s=Number.POSITIVE_INFINITY;for(i=0,n=t.length;i<n;++i){var l=t[i];if(l&&l.hasValue()){var u=l.getCenterPoint(),d=ut.distanceBetweenPoints(e,u);d<s&&(s=d,a=l)}}if(a){var h=a.tooltipPosition();r=h.x,o=h.y}return{x:r,y:o}}};function Ue(t,e){return e&&(ut.isArray(e)?Array.prototype.push.apply(t,e):t.push(e)),t}function Ge(t){return("string"==typeof t||t instanceof String)&&t.indexOf("\n")>-1?t.split("\n"):t}function qe(t){var e=ot.global;return{xPadding:t.xPadding,yPadding:t.yPadding,xAlign:t.xAlign,yAlign:t.yAlign,bodyFontColor:t.bodyFontColor,_bodyFontFamily:Be(t.bodyFontFamily,e.defaultFontFamily),_bodyFontStyle:Be(t.bodyFontStyle,e.defaultFontStyle),_bodyAlign:t.bodyAlign,bodyFontSize:Be(t.bodyFontSize,e.defaultFontSize),bodySpacing:t.bodySpacing,titleFontColor:t.titleFontColor,_titleFontFamily:Be(t.titleFontFamily,e.defaultFontFamily),_titleFontStyle:Be(t.titleFontStyle,e.defaultFontStyle),titleFontSize:Be(t.titleFontSize,e.defaultFontSize),_titleAlign:t.titleAlign,titleSpacing:t.titleSpacing,titleMarginBottom:t.titleMarginBottom,footerFontColor:t.footerFontColor,_footerFontFamily:Be(t.footerFontFamily,e.defaultFontFamily),_footerFontStyle:Be(t.footerFontStyle,e.defaultFontStyle),footerFontSize:Be(t.footerFontSize,e.defaultFontSize),_footerAlign:t.footerAlign,footerSpacing:t.footerSpacing,footerMarginTop:t.footerMarginTop,caretSize:t.caretSize,cornerRadius:t.cornerRadius,backgroundColor:t.backgroundColor,opacity:0,legendColorBackground:t.multiKeyBackground,displayColors:t.displayColors,borderColor:t.borderColor,borderWidth:t.borderWidth}}function Ze(t,e){return"center"===e?t.x+t.width/2:"right"===e?t.x+t.width-t.xPadding:t.x+t.xPadding}function $e(t){return Ue([],Ge(t))}var Xe=gt.extend({initialize:function(){this._model=qe(this._options),this._lastActive=[]},getTitle:function(){var t=this._options.callbacks,e=t.beforeTitle.apply(this,arguments),i=t.title.apply(this,arguments),n=t.afterTitle.apply(this,arguments),a=[];return a=Ue(a,Ge(e)),a=Ue(a,Ge(i)),a=Ue(a,Ge(n))},getBeforeBody:function(){return $e(this._options.callbacks.beforeBody.apply(this,arguments))},getBody:function(t,e){var i=this,n=i._options.callbacks,a=[];return ut.each(t,function(t){var r={before:[],lines:[],after:[]};Ue(r.before,Ge(n.beforeLabel.call(i,t,e))),Ue(r.lines,n.label.call(i,t,e)),Ue(r.after,Ge(n.afterLabel.call(i,t,e))),a.push(r)}),a},getAfterBody:function(){return $e(this._options.callbacks.afterBody.apply(this,arguments))},getFooter:function(){var t=this._options.callbacks,e=t.beforeFooter.apply(this,arguments),i=t.footer.apply(this,arguments),n=t.afterFooter.apply(this,arguments),a=[];return a=Ue(a,Ge(e)),a=Ue(a,Ge(i)),a=Ue(a,Ge(n))},update:function(t){var e,i,n,a,r,o,s,l,u,d,h=this,c=h._options,f=h._model,g=h._model=qe(c),m=h._active,p=h._data,v={xAlign:f.xAlign,yAlign:f.yAlign},y={x:f.x,y:f.y},b={width:f.width,height:f.height},x={x:f.caretX,y:f.caretY};if(m.length){g.opacity=1;var _=[],k=[];x=je[c.position].call(h,m,h._eventPosition);var w=[];for(e=0,i=m.length;e<i;++e)w.push((n=m[e],a=void 0,r=void 0,o=void 0,s=void 0,l=void 0,u=void 0,d=void 0,a=n._xScale,r=n._yScale||n._scale,o=n._index,s=n._datasetIndex,l=n._chart.getDatasetMeta(s).controller,u=l._getIndexScale(),d=l._getValueScale(),{xLabel:a?a.getLabelForIndex(o,s):"",yLabel:r?r.getLabelForIndex(o,s):"",label:u?""+u.getLabelForIndex(o,s):"",value:d?""+d.getLabelForIndex(o,s):"",index:o,datasetIndex:s,x:n._model.x,y:n._model.y}));c.filter&&(w=w.filter(function(t){return c.filter(t,p)})),c.itemSort&&(w=w.sort(function(t,e){return c.itemSort(t,e,p)})),ut.each(w,function(t){_.push(c.callbacks.labelColor.call(h,t,h._chart)),k.push(c.callbacks.labelTextColor.call(h,t,h._chart))}),g.title=h.getTitle(w,p),g.beforeBody=h.getBeforeBody(w,p),g.body=h.getBody(w,p),g.afterBody=h.getAfterBody(w,p),g.footer=h.getFooter(w,p),g.x=x.x,g.y=x.y,g.caretPadding=c.caretPadding,g.labelColors=_,g.labelTextColors=k,g.dataPoints=w,b=function(t,e){var i=t._chart.ctx,n=2*e.yPadding,a=0,r=e.body,o=r.reduce(function(t,e){return t+e.before.length+e.lines.length+e.after.length},0);o+=e.beforeBody.length+e.afterBody.length;var s=e.title.length,l=e.footer.length,u=e.titleFontSize,d=e.bodyFontSize,h=e.footerFontSize;n+=s*u,n+=s?(s-1)*e.titleSpacing:0,n+=s?e.titleMarginBottom:0,n+=o*d,n+=o?(o-1)*e.bodySpacing:0,n+=l?e.footerMarginTop:0,n+=l*h,n+=l?(l-1)*e.footerSpacing:0;var c=0,f=function(t){a=Math.max(a,i.measureText(t).width+c)};return i.font=ut.fontString(u,e._titleFontStyle,e._titleFontFamily),ut.each(e.title,f),i.font=ut.fontString(d,e._bodyFontStyle,e._bodyFontFamily),ut.each(e.beforeBody.concat(e.afterBody),f),c=e.displayColors?d+2:0,ut.each(r,function(t){ut.each(t.before,f),ut.each(t.lines,f),ut.each(t.after,f)}),c=0,i.font=ut.fontString(h,e._footerFontStyle,e._footerFontFamily),ut.each(e.footer,f),{width:a+=2*e.xPadding,height:n}}(this,g),y=function(t,e,i,n){var a=t.x,r=t.y,o=t.caretSize,s=t.caretPadding,l=t.cornerRadius,u=i.xAlign,d=i.yAlign,h=o+s,c=l+s;return"right"===u?a-=e.width:"center"===u&&((a-=e.width/2)+e.width>n.width&&(a=n.width-e.width),a<0&&(a=0)),"top"===d?r+=h:r-="bottom"===d?e.height+h:e.height/2,"center"===d?"left"===u?a+=h:"right"===u&&(a-=h):"left"===u?a-=c:"right"===u&&(a+=c),{x:a,y:r}}(g,b,v=function(t,e){var i,n,a,r,o,s=t._model,l=t._chart,u=t._chart.chartArea,d="center",h="center";s.y<e.height?h="top":s.y>l.height-e.height&&(h="bottom");var c=(u.left+u.right)/2,f=(u.top+u.bottom)/2;"center"===h?(i=function(t){return t<=c},n=function(t){return t>c}):(i=function(t){return t<=e.width/2},n=function(t){return t>=l.width-e.width/2}),a=function(t){return t+e.width+s.caretSize+s.caretPadding>l.width},r=function(t){return t-e.width-s.caretSize-s.caretPadding<0},o=function(t){return t<=f?"top":"bottom"},i(s.x)?(d="left",a(s.x)&&(d="center",h=o(s.y))):n(s.x)&&(d="right",r(s.x)&&(d="center",h=o(s.y)));var g=t._options;return{xAlign:g.xAlign?g.xAlign:d,yAlign:g.yAlign?g.yAlign:h}}(this,b),h._chart)}else g.opacity=0;return g.xAlign=v.xAlign,g.yAlign=v.yAlign,g.x=y.x,g.y=y.y,g.width=b.width,g.height=b.height,g.caretX=x.x,g.caretY=x.y,h._model=g,t&&c.custom&&c.custom.call(h,g),h},drawCaret:function(t,e){var i=this._chart.ctx,n=this._view,a=this.getCaretPosition(t,e,n);i.lineTo(a.x1,a.y1),i.lineTo(a.x2,a.y2),i.lineTo(a.x3,a.y3)},getCaretPosition:function(t,e,i){var n,a,r,o,s,l,u=i.caretSize,d=i.cornerRadius,h=i.xAlign,c=i.yAlign,f=t.x,g=t.y,m=e.width,p=e.height;if("center"===c)s=g+p/2,"left"===h?(a=(n=f)-u,r=n,o=s+u,l=s-u):(a=(n=f+m)+u,r=n,o=s-u,l=s+u);else if("left"===h?(n=(a=f+d+u)-u,r=a+u):"right"===h?(n=(a=f+m-d-u)-u,r=a+u):(n=(a=i.caretX)-u,r=a+u),"top"===c)s=(o=g)-u,l=o;else{s=(o=g+p)+u,l=o;var v=r;r=n,n=v}return{x1:n,x2:a,x3:r,y1:o,y2:s,y3:l}},drawTitle:function(t,e,i){var n=e.title;if(n.length){t.x=Ze(e,e._titleAlign),i.textAlign=e._titleAlign,i.textBaseline="top";var a,r,o=e.titleFontSize,s=e.titleSpacing;for(i.fillStyle=e.titleFontColor,i.font=ut.fontString(o,e._titleFontStyle,e._titleFontFamily),a=0,r=n.length;a<r;++a)i.fillText(n[a],t.x,t.y),t.y+=o+s,a+1===n.length&&(t.y+=e.titleMarginBottom-s)}},drawBody:function(t,e,i){var n,a=e.bodyFontSize,r=e.bodySpacing,o=e._bodyAlign,s=e.body,l=e.displayColors,u=e.labelColors,d=0,h=l?Ze(e,"left"):0;i.textAlign=o,i.textBaseline="top",i.font=ut.fontString(a,e._bodyFontStyle,e._bodyFontFamily),t.x=Ze(e,o);var c=function(e){i.fillText(e,t.x+d,t.y),t.y+=a+r};i.fillStyle=e.bodyFontColor,ut.each(e.beforeBody,c),d=l&&"right"!==o?"center"===o?a/2+1:a+2:0,ut.each(s,function(r,o){n=e.labelTextColors[o],i.fillStyle=n,ut.each(r.before,c),ut.each(r.lines,function(r){l&&(i.fillStyle=e.legendColorBackground,i.fillRect(h,t.y,a,a),i.lineWidth=1,i.strokeStyle=u[o].borderColor,i.strokeRect(h,t.y,a,a),i.fillStyle=u[o].backgroundColor,i.fillRect(h+1,t.y+1,a-2,a-2),i.fillStyle=n),c(r)}),ut.each(r.after,c)}),d=0,ut.each(e.afterBody,c),t.y-=r},drawFooter:function(t,e,i){var n=e.footer;n.length&&(t.x=Ze(e,e._footerAlign),t.y+=e.footerMarginTop,i.textAlign=e._footerAlign,i.textBaseline="top",i.fillStyle=e.footerFontColor,i.font=ut.fontString(e.footerFontSize,e._footerFontStyle,e._footerFontFamily),ut.each(n,function(n){i.fillText(n,t.x,t.y),t.y+=e.footerFontSize+e.footerSpacing}))},drawBackground:function(t,e,i,n){i.fillStyle=e.backgroundColor,i.strokeStyle=e.borderColor,i.lineWidth=e.borderWidth;var a=e.xAlign,r=e.yAlign,o=t.x,s=t.y,l=n.width,u=n.height,d=e.cornerRadius;i.beginPath(),i.moveTo(o+d,s),"top"===r&&this.drawCaret(t,n),i.lineTo(o+l-d,s),i.quadraticCurveTo(o+l,s,o+l,s+d),"center"===r&&"right"===a&&this.drawCaret(t,n),i.lineTo(o+l,s+u-d),i.quadraticCurveTo(o+l,s+u,o+l-d,s+u),"bottom"===r&&this.drawCaret(t,n),i.lineTo(o+d,s+u),i.quadraticCurveTo(o,s+u,o,s+u-d),"center"===r&&"left"===a&&this.drawCaret(t,n),i.lineTo(o,s+d),i.quadraticCurveTo(o,s,o+d,s),i.closePath(),i.fill(),e.borderWidth>0&&i.stroke()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var i={width:e.width,height:e.height},n={x:e.x,y:e.y},a=Math.abs(e.opacity<.001)?0:e.opacity,r=e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length;this._options.enabled&&r&&(t.save(),t.globalAlpha=a,this.drawBackground(n,e,t,i),n.y+=e.yPadding,this.drawTitle(n,e,t),this.drawBody(n,e,t),this.drawFooter(n,e,t),t.restore())}},handleEvent:function(t){var e,i=this,n=i._options;return i._lastActive=i._lastActive||[],"mouseout"===t.type?i._active=[]:i._active=i._chart.getElementsAtEventForMode(t,n.mode,n),(e=!ut.arrayEquals(i._active,i._lastActive))&&(i._lastActive=i._active,(n.enabled||n.custom)&&(i._eventPosition={x:t.x,y:t.y},i.update(!0),i.pivot())),e}}),Ke=je,Je=Xe;Je.positioners=Ke;var Qe=ut.valueOrDefault;function ti(){return ut.merge({},[].slice.call(arguments),{merger:function(t,e,i,n){if("xAxes"===t||"yAxes"===t){var a,r,o,s=i[t].length;for(e[t]||(e[t]=[]),a=0;a<s;++a)o=i[t][a],r=Qe(o.type,"xAxes"===t?"category":"linear"),a>=e[t].length&&e[t].push({}),!e[t][a].type||o.type&&o.type!==e[t][a].type?ut.merge(e[t][a],[Ee.getScaleDefaults(r),o]):ut.merge(e[t][a],o)}else ut._merger(t,e,i,n)}})}function ei(){return ut.merge({},[].slice.call(arguments),{merger:function(t,e,i,n){var a=e[t]||{},r=i[t];"scales"===t?e[t]=ti(a,r):"scale"===t?e[t]=ut.merge(a,[Ee.getScaleDefaults(r.type),r]):ut._merger(t,e,i,n)}})}function ii(t){return"top"===t||"bottom"===t}ot._set("global",{elements:{},events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,maintainAspectRatio:!0,responsive:!0,responsiveAnimationDuration:0});var ni=function(t,e){return this.construct(t,e),this};ut.extend(ni.prototype,{construct:function(t,e){var i=this;e=function(t){var e=(t=t||{}).data=t.data||{};return e.datasets=e.datasets||[],e.labels=e.labels||[],t.options=ei(ot.global,ot[t.type],t.options||{}),t}(e);var n=Ve.acquireContext(t,e),a=n&&n.canvas,r=a&&a.height,o=a&&a.width;i.id=ut.uid(),i.ctx=n,i.canvas=a,i.config=e,i.width=o,i.height=r,i.aspectRatio=r?o/r:null,i.options=e.options,i._bufferedRender=!1,i.chart=i,i.controller=i,ni.instances[i.id]=i,Object.defineProperty(i,"data",{get:function(){return i.config.data},set:function(t){i.config.data=t}}),n&&a?(i.initialize(),i.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var t=this;return He.notify(t,"beforeInit"),ut.retinaScale(t,t.options.devicePixelRatio),t.bindEvents(),t.options.responsive&&t.resize(!0),t.ensureScalesHaveIDs(),t.buildOrUpdateScales(),t.initToolTip(),He.notify(t,"afterInit"),t},clear:function(){return ut.canvas.clear(this),this},stop:function(){return vt.cancelAnimation(this),this},resize:function(t){var e=this,i=e.options,n=e.canvas,a=i.maintainAspectRatio&&e.aspectRatio||null,r=Math.max(0,Math.floor(ut.getMaximumWidth(n))),o=Math.max(0,Math.floor(a?r/a:ut.getMaximumHeight(n)));if((e.width!==r||e.height!==o)&&(n.width=e.width=r,n.height=e.height=o,n.style.width=r+"px",n.style.height=o+"px",ut.retinaScale(e,i.devicePixelRatio),!t)){var s={width:r,height:o};He.notify(e,"resize",[s]),i.onResize&&i.onResize(e,s),e.stop(),e.update({duration:i.responsiveAnimationDuration})}},ensureScalesHaveIDs:function(){var t=this.options,e=t.scales||{},i=t.scale;ut.each(e.xAxes,function(t,e){t.id=t.id||"x-axis-"+e}),ut.each(e.yAxes,function(t,e){t.id=t.id||"y-axis-"+e}),i&&(i.id=i.id||"scale")},buildOrUpdateScales:function(){var t=this,e=t.options,i=t.scales||{},n=[],a=Object.keys(i).reduce(function(t,e){return t[e]=!1,t},{});e.scales&&(n=n.concat((e.scales.xAxes||[]).map(function(t){return{options:t,dtype:"category",dposition:"bottom"}}),(e.scales.yAxes||[]).map(function(t){return{options:t,dtype:"linear",dposition:"left"}}))),e.scale&&n.push({options:e.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),ut.each(n,function(e){var n=e.options,r=n.id,o=Qe(n.type,e.dtype);ii(n.position)!==ii(e.dposition)&&(n.position=e.dposition),a[r]=!0;var s=null;if(r in i&&i[r].type===o)(s=i[r]).options=n,s.ctx=t.ctx,s.chart=t;else{var l=Ee.getScaleConstructor(o);if(!l)return;s=new l({id:r,type:o,options:n,ctx:t.ctx,chart:t}),i[s.id]=s}s.mergeTicksOptions(),e.isDefault&&(t.scale=s)}),ut.each(a,function(t,e){t||delete i[e]}),t.scales=i,Ee.addScalesToLayout(this)},buildOrUpdateControllers:function(){var t=this,e=[];return ut.each(t.data.datasets,function(i,n){var a=t.getDatasetMeta(n),r=i.type||t.config.type;if(a.type&&a.type!==r&&(t.destroyDatasetMeta(n),a=t.getDatasetMeta(n)),a.type=r,a.controller)a.controller.updateIndex(n),a.controller.linkScales();else{var o=ue[a.type];if(void 0===o)throw new Error('"'+a.type+'" is not a chart type.');a.controller=new o(t,n),e.push(a.controller)}},t),e},resetElements:function(){var t=this;ut.each(t.data.datasets,function(e,i){t.getDatasetMeta(i).controller.reset()},t)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(t){var e,i,n=this;if(t&&"object"==typeof t||(t={duration:t,lazy:arguments[1]}),i=(e=n).options,ut.each(e.scales,function(t){xe.removeBox(e,t)}),i=ei(ot.global,ot[e.config.type],i),e.options=e.config.options=i,e.ensureScalesHaveIDs(),e.buildOrUpdateScales(),e.tooltip._options=i.tooltips,e.tooltip.initialize(),He._invalidate(n),!1!==He.notify(n,"beforeUpdate")){n.tooltip._data=n.data;var a=n.buildOrUpdateControllers();ut.each(n.data.datasets,function(t,e){n.getDatasetMeta(e).controller.buildOrUpdateElements()},n),n.updateLayout(),n.options.animation&&n.options.animation.duration&&ut.each(a,function(t){t.reset()}),n.updateDatasets(),n.tooltip.initialize(),n.lastActive=[],He.notify(n,"afterUpdate"),n._bufferedRender?n._bufferedRequest={duration:t.duration,easing:t.easing,lazy:t.lazy}:n.render(t)}},updateLayout:function(){!1!==He.notify(this,"beforeLayout")&&(xe.update(this,this.width,this.height),He.notify(this,"afterScaleUpdate"),He.notify(this,"afterLayout"))},updateDatasets:function(){if(!1!==He.notify(this,"beforeDatasetsUpdate")){for(var t=0,e=this.data.datasets.length;t<e;++t)this.updateDataset(t);He.notify(this,"afterDatasetsUpdate")}},updateDataset:function(t){var e=this.getDatasetMeta(t),i={meta:e,index:t};!1!==He.notify(this,"beforeDatasetUpdate",[i])&&(e.controller.update(),He.notify(this,"afterDatasetUpdate",[i]))},render:function(t){var e=this;t&&"object"==typeof t||(t={duration:t,lazy:arguments[1]});var i=e.options.animation,n=Qe(t.duration,i&&i.duration),a=t.lazy;if(!1!==He.notify(e,"beforeRender")){var r=function(t){He.notify(e,"afterRender"),ut.callback(i&&i.onComplete,[t],e)};if(i&&n){var o=new pt({numSteps:n/16.66,easing:t.easing||i.easing,render:function(t,e){var i=ut.easing.effects[e.easing],n=e.currentStep,a=n/e.numSteps;t.draw(i(a),a,n)},onAnimationProgress:i.onProgress,onAnimationComplete:r});vt.addAnimation(e,o,n,a)}else e.draw(),r(new pt({numSteps:0,chart:e}));return e}},draw:function(t){var e=this;e.clear(),ut.isNullOrUndef(t)&&(t=1),e.transition(t),e.width<=0||e.height<=0||!1!==He.notify(e,"beforeDraw",[t])&&(ut.each(e.boxes,function(t){t.draw(e.chartArea)},e),e.drawDatasets(t),e._drawTooltip(t),He.notify(e,"afterDraw",[t]))},transition:function(t){for(var e=0,i=(this.data.datasets||[]).length;e<i;++e)this.isDatasetVisible(e)&&this.getDatasetMeta(e).controller.transition(t);this.tooltip.transition(t)},drawDatasets:function(t){var e=this;if(!1!==He.notify(e,"beforeDatasetsDraw",[t])){for(var i=(e.data.datasets||[]).length-1;i>=0;--i)e.isDatasetVisible(i)&&e.drawDataset(i,t);He.notify(e,"afterDatasetsDraw",[t])}},drawDataset:function(t,e){var i=this.getDatasetMeta(t),n={meta:i,index:t,easingValue:e};!1!==He.notify(this,"beforeDatasetDraw",[n])&&(i.controller.draw(e),He.notify(this,"afterDatasetDraw",[n]))},_drawTooltip:function(t){var e=this.tooltip,i={tooltip:e,easingValue:t};!1!==He.notify(this,"beforeTooltipDraw",[i])&&(e.draw(),He.notify(this,"afterTooltipDraw",[i]))},getElementAtEvent:function(t){return pe.modes.single(this,t)},getElementsAtEvent:function(t){return pe.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return pe.modes["x-axis"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,i){var n=pe.modes[e];return"function"==typeof n?n(this,t,i):[]},getDatasetAtEvent:function(t){return pe.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var e=this.data.datasets[t];e._meta||(e._meta={});var i=e._meta[this.id];return i||(i=e._meta[this.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),i},getVisibleDatasetCount:function(){for(var t=0,e=0,i=this.data.datasets.length;e<i;++e)this.isDatasetVisible(e)&&t++;return t},isDatasetVisible:function(t){var e=this.getDatasetMeta(t);return"boolean"==typeof e.hidden?!e.hidden:!this.data.datasets[t].hidden},generateLegend:function(){return this.options.legendCallback(this)},destroyDatasetMeta:function(t){var e=this.id,i=this.data.datasets[t],n=i._meta&&i._meta[e];n&&(n.controller.destroy(),delete i._meta[e])},destroy:function(){var t,e,i=this,n=i.canvas;for(i.stop(),t=0,e=i.data.datasets.length;t<e;++t)i.destroyDatasetMeta(t);n&&(i.unbindEvents(),ut.canvas.clear(i),Ve.releaseContext(i.ctx),i.canvas=null,i.ctx=null),He.notify(i,"destroy"),delete ni.instances[i.id]},toBase64Image:function(){return this.canvas.toDataURL.apply(this.canvas,arguments)},initToolTip:function(){var t=this;t.tooltip=new Je({_chart:t,_chartInstance:t,_data:t.data,_options:t.options.tooltips},t)},bindEvents:function(){var t=this,e=t._listeners={},i=function(){t.eventHandler.apply(t,arguments)};ut.each(t.options.events,function(n){Ve.addEventListener(t,n,i),e[n]=i}),t.options.responsive&&(i=function(){t.resize()},Ve.addEventListener(t,"resize",i),e.resize=i)},unbindEvents:function(){var t=this,e=t._listeners;e&&(delete t._listeners,ut.each(e,function(e,i){Ve.removeEventListener(t,i,e)}))},updateHoverStyle:function(t,e,i){var n,a,r,o=i?"setHoverStyle":"removeHoverStyle";for(a=0,r=t.length;a<r;++a)(n=t[a])&&this.getDatasetMeta(n._datasetIndex).controller[o](n)},eventHandler:function(t){var e=this,i=e.tooltip;if(!1!==He.notify(e,"beforeEvent",[t])){e._bufferedRender=!0,e._bufferedRequest=null;var n=e.handleEvent(t);i&&(n=i._start?i.handleEvent(t):n|i.handleEvent(t)),He.notify(e,"afterEvent",[t]);var a=e._bufferedRequest;return a?e.render(a):n&&!e.animating&&(e.stop(),e.render({duration:e.options.hover.animationDuration,lazy:!0})),e._bufferedRender=!1,e._bufferedRequest=null,e}},handleEvent:function(t){var e,i=this,n=i.options||{},a=n.hover;return i.lastActive=i.lastActive||[],"mouseout"===t.type?i.active=[]:i.active=i.getElementsAtEventForMode(t,a.mode,a),ut.callback(n.onHover||n.hover.onHover,[t.native,i.active],i),"mouseup"!==t.type&&"click"!==t.type||n.onClick&&n.onClick.call(i,t.native,i.active),i.lastActive.length&&i.updateHoverStyle(i.lastActive,a.mode,!1),i.active.length&&a.mode&&i.updateHoverStyle(i.active,a.mode,!0),e=!ut.arrayEquals(i.active,i.lastActive),i.lastActive=i.active,e}}),ni.instances={};var ai=ni;ni.Controller=ni,ni.types={},ut.configMerge=ei,ut.scaleMerge=ti;function ri(){throw new Error("This method is not implemented: either no adapter can be found or an incomplete integration was provided.")}function oi(t){this.options=t||{}}ut.extend(oi.prototype,{formats:ri,parse:ri,format:ri,add:ri,diff:ri,startOf:ri,endOf:ri,_create:function(t){return t}}),oi.override=function(t){ut.extend(oi.prototype,t)};var si={_date:oi},li={formatters:{values:function(t){return ut.isArray(t)?t:""+t},linear:function(t,e,i){var n=i.length>3?i[2]-i[1]:i[1]-i[0];Math.abs(n)>1&&t!==Math.floor(t)&&(n=t-Math.floor(t));var a=ut.log10(Math.abs(n)),r="";if(0!==t)if(Math.max(Math.abs(i[0]),Math.abs(i[i.length-1]))<1e-4){var o=ut.log10(Math.abs(t));r=t.toExponential(Math.floor(o)-Math.floor(a))}else{var s=-1*Math.floor(a);s=Math.max(Math.min(s,20),0),r=t.toFixed(s)}else r="0";return r},logarithmic:function(t,e,i){var n=t/Math.pow(10,Math.floor(ut.log10(t)));return 0===t?"0":1===n||2===n||5===n||0===e||e===i.length-1?t.toExponential():""}}},ui=ut.valueOrDefault,di=ut.valueAtIndexOrDefault;function hi(t){var e,i,n=[];for(e=0,i=t.length;e<i;++e)n.push(t[e].label);return n}function ci(t,e,i){return ut.isArray(e)?ut.longestText(t,i,e):t.measureText(e).width}ot._set("scale",{display:!0,position:"left",offset:!1,gridLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickMarkLength:10,zeroLineWidth:1,zeroLineColor:"rgba(0,0,0,0.25)",zeroLineBorderDash:[],zeroLineBorderDashOffset:0,offsetGridLines:!1,borderDash:[],borderDashOffset:0},scaleLabel:{display:!1,labelString:"",padding:{top:4,bottom:4}},ticks:{beginAtZero:!1,minRotation:0,maxRotation:50,mirror:!1,padding:0,reverse:!1,display:!0,autoSkip:!0,autoSkipPadding:0,labelOffset:0,callback:li.formatters.values,minor:{},major:{}}});var fi=gt.extend({getPadding:function(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}},getTicks:function(){return this._ticks},mergeTicksOptions:function(){var t=this.options.ticks;for(var e in!1===t.minor&&(t.minor={display:!1}),!1===t.major&&(t.major={display:!1}),t)"major"!==e&&"minor"!==e&&(void 0===t.minor[e]&&(t.minor[e]=t[e]),void 0===t.major[e]&&(t.major[e]=t[e]))},beforeUpdate:function(){ut.callback(this.options.beforeUpdate,[this])},update:function(t,e,i){var n,a,r,o,s,l,u=this;for(u.beforeUpdate(),u.maxWidth=t,u.maxHeight=e,u.margins=ut.extend({left:0,right:0,top:0,bottom:0},i),u._maxLabelLines=0,u.longestLabelWidth=0,u.longestTextCache=u.longestTextCache||{},u.beforeSetDimensions(),u.setDimensions(),u.afterSetDimensions(),u.beforeDataLimits(),u.determineDataLimits(),u.afterDataLimits(),u.beforeBuildTicks(),s=u.buildTicks()||[],s=u.afterBuildTicks(s)||s,u.beforeTickToLabelConversion(),r=u.convertTicksToLabels(s)||u.ticks,u.afterTickToLabelConversion(),u.ticks=r,n=0,a=r.length;n<a;++n)o=r[n],(l=s[n])?l.label=o:s.push(l={label:o,major:!1});return u._ticks=s,u.beforeCalculateTickRotation(),u.calculateTickRotation(),u.afterCalculateTickRotation(),u.beforeFit(),u.fit(),u.afterFit(),u.afterUpdate(),u.minSize},afterUpdate:function(){ut.callback(this.options.afterUpdate,[this])},beforeSetDimensions:function(){ut.callback(this.options.beforeSetDimensions,[this])},setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0},afterSetDimensions:function(){ut.callback(this.options.afterSetDimensions,[this])},beforeDataLimits:function(){ut.callback(this.options.beforeDataLimits,[this])},determineDataLimits:ut.noop,afterDataLimits:function(){ut.callback(this.options.afterDataLimits,[this])},beforeBuildTicks:function(){ut.callback(this.options.beforeBuildTicks,[this])},buildTicks:ut.noop,afterBuildTicks:function(t){var e=this;return ut.isArray(t)&&t.length?ut.callback(e.options.afterBuildTicks,[e,t]):(e.ticks=ut.callback(e.options.afterBuildTicks,[e,e.ticks])||e.ticks,t)},beforeTickToLabelConversion:function(){ut.callback(this.options.beforeTickToLabelConversion,[this])},convertTicksToLabels:function(){var t=this.options.ticks;this.ticks=this.ticks.map(t.userCallback||t.callback,this)},afterTickToLabelConversion:function(){ut.callback(this.options.afterTickToLabelConversion,[this])},beforeCalculateTickRotation:function(){ut.callback(this.options.beforeCalculateTickRotation,[this])},calculateTickRotation:function(){var t=this,e=t.ctx,i=t.options.ticks,n=hi(t._ticks),a=ut.options._parseFont(i);e.font=a.string;var r=i.minRotation||0;if(n.length&&t.options.display&&t.isHorizontal())for(var o,s=ut.longestText(e,a.string,n,t.longestTextCache),l=s,u=t.getPixelForTick(1)-t.getPixelForTick(0)-6;l>u&&r<i.maxRotation;){var d=ut.toRadians(r);if(o=Math.cos(d),Math.sin(d)*s>t.maxHeight){r--;break}r++,l=o*s}t.labelRotation=r},afterCalculateTickRotation:function(){ut.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){ut.callback(this.options.beforeFit,[this])},fit:function(){var t=this,e=t.minSize={width:0,height:0},i=hi(t._ticks),n=t.options,a=n.ticks,r=n.scaleLabel,o=n.gridLines,s=t._isVisible(),l=n.position,u=t.isHorizontal(),d=ut.options._parseFont,h=d(a),c=n.gridLines.tickMarkLength;if(e.width=u?t.isFullWidth()?t.maxWidth-t.margins.left-t.margins.right:t.maxWidth:s&&o.drawTicks?c:0,e.height=u?s&&o.drawTicks?c:0:t.maxHeight,r.display&&s){var f=d(r),g=ut.options.toPadding(r.padding),m=f.lineHeight+g.height;u?e.height+=m:e.width+=m}if(a.display&&s){var p=ut.longestText(t.ctx,h.string,i,t.longestTextCache),v=ut.numberOfLabelLines(i),y=.5*h.size,b=t.options.ticks.padding;if(t._maxLabelLines=v,t.longestLabelWidth=p,u){var x=ut.toRadians(t.labelRotation),_=Math.cos(x),k=Math.sin(x)*p+h.lineHeight*v+y;e.height=Math.min(t.maxHeight,e.height+k+b),t.ctx.font=h.string;var w,M,S=ci(t.ctx,i[0],h.string),D=ci(t.ctx,i[i.length-1],h.string),C=t.getPixelForTick(0)-t.left,P=t.right-t.getPixelForTick(i.length-1);0!==t.labelRotation?(w="bottom"===l?_*S:_*y,M="bottom"===l?_*y:_*D):(w=S/2,M=D/2),t.paddingLeft=Math.max(w-C,0)+3,t.paddingRight=Math.max(M-P,0)+3}else a.mirror?p=0:p+=b+y,e.width=Math.min(t.maxWidth,e.width+p),t.paddingTop=h.size/2,t.paddingBottom=h.size/2}t.handleMargins(),t.width=e.width,t.height=e.height},handleMargins:function(){var t=this;t.margins&&(t.paddingLeft=Math.max(t.paddingLeft-t.margins.left,0),t.paddingTop=Math.max(t.paddingTop-t.margins.top,0),t.paddingRight=Math.max(t.paddingRight-t.margins.right,0),t.paddingBottom=Math.max(t.paddingBottom-t.margins.bottom,0))},afterFit:function(){ut.callback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){if(ut.isNullOrUndef(t))return NaN;if(("number"==typeof t||t instanceof Number)&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t},getLabelForIndex:ut.noop,getPixelForValue:ut.noop,getValueForPixel:ut.noop,getPixelForTick:function(t){var e=this,i=e.options.offset;if(e.isHorizontal()){var n=(e.width-(e.paddingLeft+e.paddingRight))/Math.max(e._ticks.length-(i?0:1),1),a=n*t+e.paddingLeft;i&&(a+=n/2);var r=e.left+a;return r+=e.isFullWidth()?e.margins.left:0}var o=e.height-(e.paddingTop+e.paddingBottom);return e.top+t*(o/(e._ticks.length-1))},getPixelForDecimal:function(t){var e=this;if(e.isHorizontal()){var i=(e.width-(e.paddingLeft+e.paddingRight))*t+e.paddingLeft,n=e.left+i;return n+=e.isFullWidth()?e.margins.left:0}return e.top+t*e.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this.min,e=this.max;return this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0},_autoSkip:function(t){var e,i,n=this,a=n.isHorizontal(),r=n.options.ticks.minor,o=t.length,s=!1,l=r.maxTicksLimit,u=n._tickSize()*(o-1),d=a?n.width-(n.paddingLeft+n.paddingRight):n.height-(n.paddingTop+n.PaddingBottom),h=[];for(u>d&&(s=1+Math.floor(u/d)),o>l&&(s=Math.max(s,1+Math.floor(o/l))),e=0;e<o;e++)i=t[e],s>1&&e%s>0&&delete i.label,h.push(i);return h},_tickSize:function(){var t=this,e=t.isHorizontal(),i=t.options.ticks.minor,n=ut.toRadians(t.labelRotation),a=Math.abs(Math.cos(n)),r=Math.abs(Math.sin(n)),o=i.autoSkipPadding||0,s=t.longestLabelWidth+o||0,l=ut.options._parseFont(i),u=t._maxLabelLines*l.lineHeight+o||0;return e?u*a>s*r?s/a:u/r:u*r<s*a?u/a:s/r},_isVisible:function(){var t,e,i,n=this.chart,a=this.options.display;if("auto"!==a)return!!a;for(t=0,e=n.data.datasets.length;t<e;++t)if(n.isDatasetVisible(t)&&((i=n.getDatasetMeta(t)).xAxisID===this.id||i.yAxisID===this.id))return!0;return!1},draw:function(t){var e=this,i=e.options;if(e._isVisible()){var n,a,r,o=e.chart,s=e.ctx,l=ot.global.defaultFontColor,u=i.ticks.minor,d=i.ticks.major||u,h=i.gridLines,c=i.scaleLabel,f=i.position,g=0!==e.labelRotation,m=u.mirror,p=e.isHorizontal(),v=ut.options._parseFont,y=u.display&&u.autoSkip?e._autoSkip(e.getTicks()):e.getTicks(),b=ui(u.fontColor,l),x=v(u),_=x.lineHeight,k=ui(d.fontColor,l),w=v(d),M=u.padding,S=u.labelOffset,D=h.drawTicks?h.tickMarkLength:0,C=ui(c.fontColor,l),P=v(c),T=ut.options.toPadding(c.padding),O=ut.toRadians(e.labelRotation),I=[],A=h.drawBorder?di(h.lineWidth,0,0):0,F=ut._alignPixel;"top"===f?(n=F(o,e.bottom,A),a=e.bottom-D,r=n-A/2):"bottom"===f?(n=F(o,e.top,A),a=n+A/2,r=e.top+D):"left"===f?(n=F(o,e.right,A),a=e.right-D,r=n-A/2):(n=F(o,e.left,A),a=n+A/2,r=e.left+D);if(ut.each(y,function(n,s){if(!ut.isNullOrUndef(n.label)){var l,u,d,c,v,y,b,x,k,w,C,P,T,R,L,W,Y=n.label;s===e.zeroLineIndex&&i.offset===h.offsetGridLines?(l=h.zeroLineWidth,u=h.zeroLineColor,d=h.zeroLineBorderDash||[],c=h.zeroLineBorderDashOffset||0):(l=di(h.lineWidth,s),u=di(h.color,s),d=h.borderDash||[],c=h.borderDashOffset||0);var N=ut.isArray(Y)?Y.length:1,z=function(t,e,i){var n=t.getPixelForTick(e);return i&&(1===t.getTicks().length?n-=t.isHorizontal()?Math.max(n-t.left,t.right-n):Math.max(n-t.top,t.bottom-n):n-=0===e?(t.getPixelForTick(1)-n)/2:(n-t.getPixelForTick(e-1))/2),n}(e,s,h.offsetGridLines);if(p){var V=D+M;z<e.left-1e-7&&(u="rgba(0,0,0,0)"),v=b=k=C=F(o,z,l),y=a,x=r,T=e.getPixelForTick(s)+S,"top"===f?(w=F(o,t.top,A)+A/2,P=t.bottom,L=((g?1:.5)-N)*_,W=g?"left":"center",R=e.bottom-V):(w=t.top,P=F(o,t.bottom,A)-A/2,L=(g?0:.5)*_,W=g?"right":"center",R=e.top+V)}else{var H=(m?0:D)+M;z<e.top-1e-7&&(u="rgba(0,0,0,0)"),v=a,b=r,y=x=w=P=F(o,z,l),R=e.getPixelForTick(s)+S,L=(1-N)*_/2,"left"===f?(k=F(o,t.left,A)+A/2,C=t.right,W=m?"left":"right",T=e.right-H):(k=t.left,C=F(o,t.right,A)-A/2,W=m?"right":"left",T=e.left+H)}I.push({tx1:v,ty1:y,tx2:b,ty2:x,x1:k,y1:w,x2:C,y2:P,labelX:T,labelY:R,glWidth:l,glColor:u,glBorderDash:d,glBorderDashOffset:c,rotation:-1*O,label:Y,major:n.major,textOffset:L,textAlign:W})}}),ut.each(I,function(t){var e=t.glWidth,i=t.glColor;if(h.display&&e&&i&&(s.save(),s.lineWidth=e,s.strokeStyle=i,s.setLineDash&&(s.setLineDash(t.glBorderDash),s.lineDashOffset=t.glBorderDashOffset),s.beginPath(),h.drawTicks&&(s.moveTo(t.tx1,t.ty1),s.lineTo(t.tx2,t.ty2)),h.drawOnChartArea&&(s.moveTo(t.x1,t.y1),s.lineTo(t.x2,t.y2)),s.stroke(),s.restore()),u.display){s.save(),s.translate(t.labelX,t.labelY),s.rotate(t.rotation),s.font=t.major?w.string:x.string,s.fillStyle=t.major?k:b,s.textBaseline="middle",s.textAlign=t.textAlign;var n=t.label,a=t.textOffset;if(ut.isArray(n))for(var r=0;r<n.length;++r)s.fillText(""+n[r],0,a),a+=_;else s.fillText(n,0,a);s.restore()}}),c.display){var R,L,W=0,Y=P.lineHeight/2;if(p)R=e.left+(e.right-e.left)/2,L="bottom"===f?e.bottom-Y-T.bottom:e.top+Y+T.top;else{var N="left"===f;R=N?e.left+Y+T.top:e.right-Y-T.top,L=e.top+(e.bottom-e.top)/2,W=N?-.5*Math.PI:.5*Math.PI}s.save(),s.translate(R,L),s.rotate(W),s.textAlign="center",s.textBaseline="middle",s.fillStyle=C,s.font=P.string,s.fillText(c.labelString,0,0),s.restore()}if(A){var z,V,H,E,B=A,j=di(h.lineWidth,y.length-1,0);p?(z=F(o,e.left,B)-B/2,V=F(o,e.right,j)+j/2,H=E=n):(H=F(o,e.top,B)-B/2,E=F(o,e.bottom,j)+j/2,z=V=n),s.lineWidth=A,s.strokeStyle=di(h.color,0),s.beginPath(),s.moveTo(z,H),s.lineTo(V,E),s.stroke()}}}}),gi=fi.extend({getLabels:function(){var t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels},determineDataLimits:function(){var t,e=this,i=e.getLabels();e.minIndex=0,e.maxIndex=i.length-1,void 0!==e.options.ticks.min&&(t=i.indexOf(e.options.ticks.min),e.minIndex=-1!==t?t:e.minIndex),void 0!==e.options.ticks.max&&(t=i.indexOf(e.options.ticks.max),e.maxIndex=-1!==t?t:e.maxIndex),e.min=i[e.minIndex],e.max=i[e.maxIndex]},buildTicks:function(){var t=this,e=t.getLabels();t.ticks=0===t.minIndex&&t.maxIndex===e.length-1?e:e.slice(t.minIndex,t.maxIndex+1)},getLabelForIndex:function(t,e){var i=this,n=i.chart;return n.getDatasetMeta(e).controller._getValueScaleId()===i.id?i.getRightValue(n.data.datasets[e].data[t]):i.ticks[t-i.minIndex]},getPixelForValue:function(t,e){var i,n=this,a=n.options.offset,r=Math.max(n.maxIndex+1-n.minIndex-(a?0:1),1);if(null!=t&&(i=n.isHorizontal()?t.x:t.y),void 0!==i||void 0!==t&&isNaN(e)){t=i||t;var o=n.getLabels().indexOf(t);e=-1!==o?o:e}if(n.isHorizontal()){var s=n.width/r,l=s*(e-n.minIndex);return a&&(l+=s/2),n.left+l}var u=n.height/r,d=u*(e-n.minIndex);return a&&(d+=u/2),n.top+d},getPixelForTick:function(t){return this.getPixelForValue(this.ticks[t],t+this.minIndex,null)},getValueForPixel:function(t){var e=this,i=e.options.offset,n=Math.max(e._ticks.length-(i?0:1),1),a=e.isHorizontal(),r=(a?e.width:e.height)/n;return t-=a?e.left:e.top,i&&(t-=r/2),(t<=0?0:Math.round(t/r))+e.minIndex},getBasePixel:function(){return this.bottom}}),mi={position:"bottom"};gi._defaults=mi;var pi=ut.noop,vi=ut.isNullOrUndef;var yi=fi.extend({getRightValue:function(t){return"string"==typeof t?+t:fi.prototype.getRightValue.call(this,t)},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;if(e.beginAtZero){var i=ut.sign(t.min),n=ut.sign(t.max);i<0&&n<0?t.max=0:i>0&&n>0&&(t.min=0)}var a=void 0!==e.min||void 0!==e.suggestedMin,r=void 0!==e.max||void 0!==e.suggestedMax;void 0!==e.min?t.min=e.min:void 0!==e.suggestedMin&&(null===t.min?t.min=e.suggestedMin:t.min=Math.min(t.min,e.suggestedMin)),void 0!==e.max?t.max=e.max:void 0!==e.suggestedMax&&(null===t.max?t.max=e.suggestedMax:t.max=Math.max(t.max,e.suggestedMax)),a!==r&&t.min>=t.max&&(a?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,e.beginAtZero||t.min--)},getTickLimit:function(){var t,e=this.options.ticks,i=e.stepSize,n=e.maxTicksLimit;return i?t=Math.ceil(this.max/i)-Math.floor(this.min/i)+1:(t=this._computeTickLimit(),n=n||11),n&&(t=Math.min(n,t)),t},_computeTickLimit:function(){return Number.POSITIVE_INFINITY},handleDirectionalChanges:pi,buildTicks:function(){var t=this,e=t.options.ticks,i=t.getTickLimit(),n={maxTicks:i=Math.max(2,i),min:e.min,max:e.max,precision:e.precision,stepSize:ut.valueOrDefault(e.fixedStepSize,e.stepSize)},a=t.ticks=function(t,e){var i,n,a,r,o=[],s=t.stepSize,l=s||1,u=t.maxTicks-1,d=t.min,h=t.max,c=t.precision,f=e.min,g=e.max,m=ut.niceNum((g-f)/u/l)*l;if(m<1e-14&&vi(d)&&vi(h))return[f,g];(r=Math.ceil(g/m)-Math.floor(f/m))>u&&(m=ut.niceNum(r*m/u/l)*l),s||vi(c)?i=Math.pow(10,ut._decimalPlaces(m)):(i=Math.pow(10,c),m=Math.ceil(m*i)/i),n=Math.floor(f/m)*m,a=Math.ceil(g/m)*m,s&&(!vi(d)&&ut.almostWhole(d/m,m/1e3)&&(n=d),!vi(h)&&ut.almostWhole(h/m,m/1e3)&&(a=h)),r=(a-n)/m,r=ut.almostEquals(r,Math.round(r),m/1e3)?Math.round(r):Math.ceil(r),n=Math.round(n*i)/i,a=Math.round(a*i)/i,o.push(vi(d)?n:d);for(var p=1;p<r;++p)o.push(Math.round((n+p*m)*i)/i);return o.push(vi(h)?a:h),o}(n,t);t.handleDirectionalChanges(),t.max=ut.max(a),t.min=ut.min(a),e.reverse?(a.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){var t=this;t.ticksAsNumbers=t.ticks.slice(),t.zeroLineIndex=t.ticks.indexOf(0),fi.prototype.convertTicksToLabels.call(t)}}),bi={position:"left",ticks:{callback:li.formatters.linear}},xi=yi.extend({determineDataLimits:function(){var t=this,e=t.options,i=t.chart,n=i.data.datasets,a=t.isHorizontal();function r(e){return a?e.xAxisID===t.id:e.yAxisID===t.id}t.min=null,t.max=null;var o=e.stacked;if(void 0===o&&ut.each(n,function(t,e){if(!o){var n=i.getDatasetMeta(e);i.isDatasetVisible(e)&&r(n)&&void 0!==n.stack&&(o=!0)}}),e.stacked||o){var s={};ut.each(n,function(n,a){var o=i.getDatasetMeta(a),l=[o.type,void 0===e.stacked&&void 0===o.stack?a:"",o.stack].join(".");void 0===s[l]&&(s[l]={positiveValues:[],negativeValues:[]});var u=s[l].positiveValues,d=s[l].negativeValues;i.isDatasetVisible(a)&&r(o)&&ut.each(n.data,function(i,n){var a=+t.getRightValue(i);isNaN(a)||o.data[n].hidden||(u[n]=u[n]||0,d[n]=d[n]||0,e.relativePoints?u[n]=100:a<0?d[n]+=a:u[n]+=a)})}),ut.each(s,function(e){var i=e.positiveValues.concat(e.negativeValues),n=ut.min(i),a=ut.max(i);t.min=null===t.min?n:Math.min(t.min,n),t.max=null===t.max?a:Math.max(t.max,a)})}else ut.each(n,function(e,n){var a=i.getDatasetMeta(n);i.isDatasetVisible(n)&&r(a)&&ut.each(e.data,function(e,i){var n=+t.getRightValue(e);isNaN(n)||a.data[i].hidden||(null===t.min?t.min=n:n<t.min&&(t.min=n),null===t.max?t.max=n:n>t.max&&(t.max=n))})});t.min=isFinite(t.min)&&!isNaN(t.min)?t.min:0,t.max=isFinite(t.max)&&!isNaN(t.max)?t.max:1,this.handleTickRangeOptions()},_computeTickLimit:function(){var t;return this.isHorizontal()?Math.ceil(this.width/40):(t=ut.options._parseFont(this.options.ticks),Math.ceil(this.height/t.lineHeight))},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForValue:function(t){var e=this,i=e.start,n=+e.getRightValue(t),a=e.end-i;return e.isHorizontal()?e.left+e.width/a*(n-i):e.bottom-e.height/a*(n-i)},getValueForPixel:function(t){var e=this,i=e.isHorizontal(),n=i?e.width:e.height,a=(i?t-e.left:e.bottom-t)/n;return e.start+(e.end-e.start)*a},getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}}),_i=bi;xi._defaults=_i;var ki=ut.valueOrDefault;var wi={position:"left",ticks:{callback:li.formatters.logarithmic}};function Mi(t,e){return ut.isFinite(t)&&t>=0?t:e}var Si=fi.extend({determineDataLimits:function(){var t=this,e=t.options,i=t.chart,n=i.data.datasets,a=t.isHorizontal();function r(e){return a?e.xAxisID===t.id:e.yAxisID===t.id}t.min=null,t.max=null,t.minNotZero=null;var o=e.stacked;if(void 0===o&&ut.each(n,function(t,e){if(!o){var n=i.getDatasetMeta(e);i.isDatasetVisible(e)&&r(n)&&void 0!==n.stack&&(o=!0)}}),e.stacked||o){var s={};ut.each(n,function(n,a){var o=i.getDatasetMeta(a),l=[o.type,void 0===e.stacked&&void 0===o.stack?a:"",o.stack].join(".");i.isDatasetVisible(a)&&r(o)&&(void 0===s[l]&&(s[l]=[]),ut.each(n.data,function(e,i){var n=s[l],a=+t.getRightValue(e);isNaN(a)||o.data[i].hidden||a<0||(n[i]=n[i]||0,n[i]+=a)}))}),ut.each(s,function(e){if(e.length>0){var i=ut.min(e),n=ut.max(e);t.min=null===t.min?i:Math.min(t.min,i),t.max=null===t.max?n:Math.max(t.max,n)}})}else ut.each(n,function(e,n){var a=i.getDatasetMeta(n);i.isDatasetVisible(n)&&r(a)&&ut.each(e.data,function(e,i){var n=+t.getRightValue(e);isNaN(n)||a.data[i].hidden||n<0||(null===t.min?t.min=n:n<t.min&&(t.min=n),null===t.max?t.max=n:n>t.max&&(t.max=n),0!==n&&(null===t.minNotZero||n<t.minNotZero)&&(t.minNotZero=n))})});this.handleTickRangeOptions()},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;t.min=Mi(e.min,t.min),t.max=Mi(e.max,t.max),t.min===t.max&&(0!==t.min&&null!==t.min?(t.min=Math.pow(10,Math.floor(ut.log10(t.min))-1),t.max=Math.pow(10,Math.floor(ut.log10(t.max))+1)):(t.min=1,t.max=10)),null===t.min&&(t.min=Math.pow(10,Math.floor(ut.log10(t.max))-1)),null===t.max&&(t.max=0!==t.min?Math.pow(10,Math.floor(ut.log10(t.min))+1):10),null===t.minNotZero&&(t.min>0?t.minNotZero=t.min:t.max<1?t.minNotZero=Math.pow(10,Math.floor(ut.log10(t.max))):t.minNotZero=1)},buildTicks:function(){var t=this,e=t.options.ticks,i=!t.isHorizontal(),n={min:Mi(e.min),max:Mi(e.max)},a=t.ticks=function(t,e){var i,n,a=[],r=ki(t.min,Math.pow(10,Math.floor(ut.log10(e.min)))),o=Math.floor(ut.log10(e.max)),s=Math.ceil(e.max/Math.pow(10,o));0===r?(i=Math.floor(ut.log10(e.minNotZero)),n=Math.floor(e.minNotZero/Math.pow(10,i)),a.push(r),r=n*Math.pow(10,i)):(i=Math.floor(ut.log10(r)),n=Math.floor(r/Math.pow(10,i)));var l=i<0?Math.pow(10,Math.abs(i)):1;do{a.push(r),10==++n&&(n=1,l=++i>=0?1:l),r=Math.round(n*Math.pow(10,i)*l)/l}while(i<o||i===o&&n<s);var u=ki(t.max,r);return a.push(u),a}(n,t);t.max=ut.max(a),t.min=ut.min(a),e.reverse?(i=!i,t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max),i&&a.reverse()},convertTicksToLabels:function(){this.tickValues=this.ticks.slice(),fi.prototype.convertTicksToLabels.call(this)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForTick:function(t){return this.getPixelForValue(this.tickValues[t])},_getFirstTickValue:function(t){var e=Math.floor(ut.log10(t));return Math.floor(t/Math.pow(10,e))*Math.pow(10,e)},getPixelForValue:function(t){var e,i,n,a,r,o=this,s=o.options.ticks,l=s.reverse,u=ut.log10,d=o._getFirstTickValue(o.minNotZero),h=0;return t=+o.getRightValue(t),l?(n=o.end,a=o.start,r=-1):(n=o.start,a=o.end,r=1),o.isHorizontal()?(e=o.width,i=l?o.right:o.left):(e=o.height,r*=-1,i=l?o.top:o.bottom),t!==n&&(0===n&&(e-=h=ki(s.fontSize,ot.global.defaultFontSize),n=d),0!==t&&(h+=e/(u(a)-u(n))*(u(t)-u(n))),i+=r*h),i},getValueForPixel:function(t){var e,i,n,a,r=this,o=r.options.ticks,s=o.reverse,l=ut.log10,u=r._getFirstTickValue(r.minNotZero);if(s?(i=r.end,n=r.start):(i=r.start,n=r.end),r.isHorizontal()?(e=r.width,a=s?r.right-t:t-r.left):(e=r.height,a=s?t-r.top:r.bottom-t),a!==i){if(0===i){var d=ki(o.fontSize,ot.global.defaultFontSize);a-=d,e-=d,i=u}a*=l(n)-l(i),a/=e,a=Math.pow(10,l(i)+a)}return a}}),Di=wi;Si._defaults=Di;var Ci=ut.valueOrDefault,Pi=ut.valueAtIndexOrDefault,Ti=ut.options.resolve,Oi={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1,borderDash:[],borderDashOffset:0},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:li.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(t){return t}}};function Ii(t){var e=t.options;return e.angleLines.display||e.pointLabels.display?t.chart.data.labels.length:0}function Ai(t){var e=t.ticks;return e.display&&t.display?Ci(e.fontSize,ot.global.defaultFontSize)+2*e.backdropPaddingY:0}function Fi(t,e,i,n,a){return t===n||t===a?{start:e-i/2,end:e+i/2}:t<n||t>a?{start:e-i,end:e}:{start:e,end:e+i}}function Ri(t){return 0===t||180===t?"center":t<180?"left":"right"}function Li(t,e,i,n){var a,r,o=i.y+n/2;if(ut.isArray(e))for(a=0,r=e.length;a<r;++a)t.fillText(e[a],i.x,o),o+=n;else t.fillText(e,i.x,o)}function Wi(t,e,i){90===t||270===t?i.y-=e.h/2:(t>270||t<90)&&(i.y-=e.h)}function Yi(t){return ut.isNumber(t)?t:0}var Ni=yi.extend({setDimensions:function(){var t=this;t.width=t.maxWidth,t.height=t.maxHeight,t.paddingTop=Ai(t.options)/2,t.xCenter=Math.floor(t.width/2),t.yCenter=Math.floor((t.height-t.paddingTop)/2),t.drawingArea=Math.min(t.height-t.paddingTop,t.width)/2},determineDataLimits:function(){var t=this,e=t.chart,i=Number.POSITIVE_INFINITY,n=Number.NEGATIVE_INFINITY;ut.each(e.data.datasets,function(a,r){if(e.isDatasetVisible(r)){var o=e.getDatasetMeta(r);ut.each(a.data,function(e,a){var r=+t.getRightValue(e);isNaN(r)||o.data[a].hidden||(i=Math.min(r,i),n=Math.max(r,n))})}}),t.min=i===Number.POSITIVE_INFINITY?0:i,t.max=n===Number.NEGATIVE_INFINITY?0:n,t.handleTickRangeOptions()},_computeTickLimit:function(){return Math.ceil(this.drawingArea/Ai(this.options))},convertTicksToLabels:function(){var t=this;yi.prototype.convertTicksToLabels.call(t),t.pointLabels=t.chart.data.labels.map(t.options.pointLabels.callback,t)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},fit:function(){var t=this.options;t.display&&t.pointLabels.display?function(t){var e,i,n,a=ut.options._parseFont(t.options.pointLabels),r={l:0,r:t.width,t:0,b:t.height-t.paddingTop},o={};t.ctx.font=a.string,t._pointLabelSizes=[];var s,l,u,d=Ii(t);for(e=0;e<d;e++){n=t.getPointPosition(e,t.drawingArea+5),s=t.ctx,l=a.lineHeight,u=t.pointLabels[e]||"",i=ut.isArray(u)?{w:ut.longestText(s,s.font,u),h:u.length*l}:{w:s.measureText(u).width,h:l},t._pointLabelSizes[e]=i;var h=t.getIndexAngle(e),c=ut.toDegrees(h)%360,f=Fi(c,n.x,i.w,0,180),g=Fi(c,n.y,i.h,90,270);f.start<r.l&&(r.l=f.start,o.l=h),f.end>r.r&&(r.r=f.end,o.r=h),g.start<r.t&&(r.t=g.start,o.t=h),g.end>r.b&&(r.b=g.end,o.b=h)}t.setReductions(t.drawingArea,r,o)}(this):this.setCenterPoint(0,0,0,0)},setReductions:function(t,e,i){var n=this,a=e.l/Math.sin(i.l),r=Math.max(e.r-n.width,0)/Math.sin(i.r),o=-e.t/Math.cos(i.t),s=-Math.max(e.b-(n.height-n.paddingTop),0)/Math.cos(i.b);a=Yi(a),r=Yi(r),o=Yi(o),s=Yi(s),n.drawingArea=Math.min(Math.floor(t-(a+r)/2),Math.floor(t-(o+s)/2)),n.setCenterPoint(a,r,o,s)},setCenterPoint:function(t,e,i,n){var a=this,r=a.width-e-a.drawingArea,o=t+a.drawingArea,s=i+a.drawingArea,l=a.height-a.paddingTop-n-a.drawingArea;a.xCenter=Math.floor((o+r)/2+a.left),a.yCenter=Math.floor((s+l)/2+a.top+a.paddingTop)},getIndexAngle:function(t){return t*(2*Math.PI/Ii(this))+(this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0)*Math.PI*2/360},getDistanceFromCenterForValue:function(t){var e=this;if(null===t)return 0;var i=e.drawingArea/(e.max-e.min);return e.options.ticks.reverse?(e.max-t)*i:(t-e.min)*i},getPointPosition:function(t,e){var i=this.getIndexAngle(t)-Math.PI/2;return{x:Math.cos(i)*e+this.xCenter,y:Math.sin(i)*e+this.yCenter}},getPointPositionForValue:function(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))},getBasePosition:function(){var t=this.min,e=this.max;return this.getPointPositionForValue(0,this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0)},draw:function(){var t=this,e=t.options,i=e.gridLines,n=e.ticks;if(e.display){var a=t.ctx,r=this.getIndexAngle(0),o=ut.options._parseFont(n);(e.angleLines.display||e.pointLabels.display)&&function(t){var e=t.ctx,i=t.options,n=i.angleLines,a=i.gridLines,r=i.pointLabels,o=Ci(n.lineWidth,a.lineWidth),s=Ci(n.color,a.color),l=Ai(i);e.save(),e.lineWidth=o,e.strokeStyle=s,e.setLineDash&&(e.setLineDash(Ti([n.borderDash,a.borderDash,[]])),e.lineDashOffset=Ti([n.borderDashOffset,a.borderDashOffset,0]));var u=t.getDistanceFromCenterForValue(i.ticks.reverse?t.min:t.max),d=ut.options._parseFont(r);e.font=d.string,e.textBaseline="middle";for(var h=Ii(t)-1;h>=0;h--){if(n.display&&o&&s){var c=t.getPointPosition(h,u);e.beginPath(),e.moveTo(t.xCenter,t.yCenter),e.lineTo(c.x,c.y),e.stroke()}if(r.display){var f=0===h?l/2:0,g=t.getPointPosition(h,u+f+5),m=Pi(r.fontColor,h,ot.global.defaultFontColor);e.fillStyle=m;var p=t.getIndexAngle(h),v=ut.toDegrees(p);e.textAlign=Ri(v),Wi(v,t._pointLabelSizes[h],g),Li(e,t.pointLabels[h]||"",g,d.lineHeight)}}e.restore()}(t),ut.each(t.ticks,function(e,s){if(s>0||n.reverse){var l=t.getDistanceFromCenterForValue(t.ticksAsNumbers[s]);if(i.display&&0!==s&&function(t,e,i,n){var a,r=t.ctx,o=e.circular,s=Ii(t),l=Pi(e.color,n-1),u=Pi(e.lineWidth,n-1);if((o||s)&&l&&u){if(r.save(),r.strokeStyle=l,r.lineWidth=u,r.setLineDash&&(r.setLineDash(e.borderDash||[]),r.lineDashOffset=e.borderDashOffset||0),r.beginPath(),o)r.arc(t.xCenter,t.yCenter,i,0,2*Math.PI);else{a=t.getPointPosition(0,i),r.moveTo(a.x,a.y);for(var d=1;d<s;d++)a=t.getPointPosition(d,i),r.lineTo(a.x,a.y)}r.closePath(),r.stroke(),r.restore()}}(t,i,l,s),n.display){var u=Ci(n.fontColor,ot.global.defaultFontColor);if(a.font=o.string,a.save(),a.translate(t.xCenter,t.yCenter),a.rotate(r),n.showLabelBackdrop){var d=a.measureText(e).width;a.fillStyle=n.backdropColor,a.fillRect(-d/2-n.backdropPaddingX,-l-o.size/2-n.backdropPaddingY,d+2*n.backdropPaddingX,o.size+2*n.backdropPaddingY)}a.textAlign="center",a.textBaseline="middle",a.fillStyle=u,a.fillText(e,0,-l),a.restore()}}})}}}),zi=Oi;Ni._defaults=zi;var Vi=ut.valueOrDefault,Hi=Number.MIN_SAFE_INTEGER||-9007199254740991,Ei=Number.MAX_SAFE_INTEGER||9007199254740991,Bi={millisecond:{common:!0,size:1,steps:[1,2,5,10,20,50,100,250,500]},second:{common:!0,size:1e3,steps:[1,2,5,10,15,30]},minute:{common:!0,size:6e4,steps:[1,2,5,10,15,30]},hour:{common:!0,size:36e5,steps:[1,2,3,6,12]},day:{common:!0,size:864e5,steps:[1,2,5]},week:{common:!1,size:6048e5,steps:[1,2,3,4]},month:{common:!0,size:2628e6,steps:[1,2,3]},quarter:{common:!1,size:7884e6,steps:[1,2,3,4]},year:{common:!0,size:3154e7}},ji=Object.keys(Bi);function Ui(t,e){return t-e}function Gi(t){var e,i,n,a={},r=[];for(e=0,i=t.length;e<i;++e)a[n=t[e]]||(a[n]=!0,r.push(n));return r}function qi(t,e,i,n){var a=function(t,e,i){for(var n,a,r,o=0,s=t.length-1;o>=0&&o<=s;){if(a=t[(n=o+s>>1)-1]||null,r=t[n],!a)return{lo:null,hi:r};if(r[e]<i)o=n+1;else{if(!(a[e]>i))return{lo:a,hi:r};s=n-1}}return{lo:r,hi:null}}(t,e,i),r=a.lo?a.hi?a.lo:t[t.length-2]:t[0],o=a.lo?a.hi?a.hi:t[t.length-1]:t[1],s=o[e]-r[e],l=s?(i-r[e])/s:0,u=(o[n]-r[n])*l;return r[n]+u}function Zi(t,e){var i=t._adapter,n=t.options.time,a=n.parser,r=a||n.format,o=e;return"function"==typeof a&&(o=a(o)),ut.isFinite(o)||(o="string"==typeof r?i.parse(o,r):i.parse(o)),null!==o?+o:(a||"function"!=typeof r||(o=r(e),ut.isFinite(o)||(o=i.parse(o))),o)}function $i(t,e){if(ut.isNullOrUndef(e))return null;var i=t.options.time,n=Zi(t,t.getRightValue(e));return null===n?n:(i.round&&(n=+t._adapter.startOf(n,i.round)),n)}function Xi(t){for(var e=ji.indexOf(t)+1,i=ji.length;e<i;++e)if(Bi[ji[e]].common)return ji[e]}function Ki(t,e,i,n){var a,r=t._adapter,o=t.options,s=o.time,l=s.unit||function(t,e,i,n){var a,r,o,s=ji.length;for(a=ji.indexOf(t);a<s-1;++a)if(o=(r=Bi[ji[a]]).steps?r.steps[r.steps.length-1]:Ei,r.common&&Math.ceil((i-e)/(o*r.size))<=n)return ji[a];return ji[s-1]}(s.minUnit,e,i,n),u=Xi(l),d=Vi(s.stepSize,s.unitStepSize),h="week"===l&&s.isoWeekday,c=o.ticks.major.enabled,f=Bi[l],g=e,m=i,p=[];for(d||(d=function(t,e,i,n){var a,r,o,s=e-t,l=Bi[i],u=l.size,d=l.steps;if(!d)return Math.ceil(s/(n*u));for(a=0,r=d.length;a<r&&(o=d[a],!(Math.ceil(s/(u*o))<=n));++a);return o}(e,i,l,n)),h&&(g=+r.startOf(g,"isoWeek",h),m=+r.startOf(m,"isoWeek",h)),g=+r.startOf(g,h?"day":l),(m=+r.startOf(m,h?"day":l))<i&&(m=+r.add(m,1,l)),a=g,c&&u&&!h&&!s.round&&(a=+r.startOf(a,u),a=+r.add(a,~~((g-a)/(f.size*d))*d,l));a<m;a=+r.add(a,d,l))p.push(+a);return p.push(+a),p}var Ji=fi.extend({initialize:function(){this.mergeTicksOptions(),fi.prototype.initialize.call(this)},update:function(){var t=this.options,e=t.time||(t.time={}),i=this._adapter=new si._date(t.adapters.date);return e.format&&console.warn("options.time.format is deprecated and replaced by options.time.parser."),ut.mergeIf(e.displayFormats,i.formats()),fi.prototype.update.apply(this,arguments)},getRightValue:function(t){return t&&void 0!==t.t&&(t=t.t),fi.prototype.getRightValue.call(this,t)},determineDataLimits:function(){var t,e,i,n,a,r,o=this,s=o.chart,l=o._adapter,u=o.options.time,d=u.unit||"day",h=Ei,c=Hi,f=[],g=[],m=[],p=s.data.labels||[];for(t=0,i=p.length;t<i;++t)m.push($i(o,p[t]));for(t=0,i=(s.data.datasets||[]).length;t<i;++t)if(s.isDatasetVisible(t))if(a=s.data.datasets[t].data,ut.isObject(a[0]))for(g[t]=[],e=0,n=a.length;e<n;++e)r=$i(o,a[e]),f.push(r),g[t][e]=r;else{for(e=0,n=m.length;e<n;++e)f.push(m[e]);g[t]=m.slice(0)}else g[t]=[];m.length&&(m=Gi(m).sort(Ui),h=Math.min(h,m[0]),c=Math.max(c,m[m.length-1])),f.length&&(f=Gi(f).sort(Ui),h=Math.min(h,f[0]),c=Math.max(c,f[f.length-1])),h=$i(o,u.min)||h,c=$i(o,u.max)||c,h=h===Ei?+l.startOf(Date.now(),d):h,c=c===Hi?+l.endOf(Date.now(),d)+1:c,o.min=Math.min(h,c),o.max=Math.max(h+1,c),o._horizontal=o.isHorizontal(),o._table=[],o._timestamps={data:f,datasets:g,labels:m}},buildTicks:function(){var t,e,i,n=this,a=n.min,r=n.max,o=n.options,s=o.time,l=[],u=[];switch(o.ticks.source){case"data":l=n._timestamps.data;break;case"labels":l=n._timestamps.labels;break;case"auto":default:l=Ki(n,a,r,n.getLabelCapacity(a))}for("ticks"===o.bounds&&l.length&&(a=l[0],r=l[l.length-1]),a=$i(n,s.min)||a,r=$i(n,s.max)||r,t=0,e=l.length;t<e;++t)(i=l[t])>=a&&i<=r&&u.push(i);return n.min=a,n.max=r,n._unit=s.unit||function(t,e,i,n,a){var r,o;for(r=ji.length-1;r>=ji.indexOf(i);r--)if(o=ji[r],Bi[o].common&&t._adapter.diff(a,n,o)>=e.length)return o;return ji[i?ji.indexOf(i):0]}(n,u,s.minUnit,n.min,n.max),n._majorUnit=Xi(n._unit),n._table=function(t,e,i,n){if("linear"===n||!t.length)return[{time:e,pos:0},{time:i,pos:1}];var a,r,o,s,l,u=[],d=[e];for(a=0,r=t.length;a<r;++a)(s=t[a])>e&&s<i&&d.push(s);for(d.push(i),a=0,r=d.length;a<r;++a)l=d[a+1],o=d[a-1],s=d[a],void 0!==o&&void 0!==l&&Math.round((l+o)/2)===s||u.push({time:s,pos:a/(r-1)});return u}(n._timestamps.data,a,r,o.distribution),n._offsets=function(t,e,i,n,a){var r,o,s=0,l=0;return a.offset&&e.length&&(a.time.min||(r=qi(t,"time",e[0],"pos"),s=1===e.length?1-r:(qi(t,"time",e[1],"pos")-r)/2),a.time.max||(o=qi(t,"time",e[e.length-1],"pos"),l=1===e.length?o:(o-qi(t,"time",e[e.length-2],"pos"))/2)),{start:s,end:l}}(n._table,u,0,0,o),o.ticks.reverse&&u.reverse(),function(t,e,i){var n,a,r,o,s=[];for(n=0,a=e.length;n<a;++n)r=e[n],o=!!i&&r===+t._adapter.startOf(r,i),s.push({value:r,major:o});return s}(n,u,n._majorUnit)},getLabelForIndex:function(t,e){var i=this,n=i._adapter,a=i.chart.data,r=i.options.time,o=a.labels&&t<a.labels.length?a.labels[t]:"",s=a.datasets[e].data[t];return ut.isObject(s)&&(o=i.getRightValue(s)),r.tooltipFormat?n.format(Zi(i,o),r.tooltipFormat):"string"==typeof o?o:n.format(Zi(i,o),r.displayFormats.datetime)},tickFormatFunction:function(t,e,i,n){var a=this._adapter,r=this.options,o=r.time.displayFormats,s=o[this._unit],l=this._majorUnit,u=o[l],d=+a.startOf(t,l),h=r.ticks.major,c=h.enabled&&l&&u&&t===d,f=a.format(t,n||(c?u:s)),g=c?h:r.ticks.minor,m=Vi(g.callback,g.userCallback);return m?m(f,e,i):f},convertTicksToLabels:function(t){var e,i,n=[];for(e=0,i=t.length;e<i;++e)n.push(this.tickFormatFunction(t[e].value,e,t));return n},getPixelForOffset:function(t){var e=this,i=e.options.ticks.reverse,n=e._horizontal?e.width:e.height,a=e._horizontal?i?e.right:e.left:i?e.bottom:e.top,r=qi(e._table,"time",t,"pos"),o=n*(e._offsets.start+r)/(e._offsets.start+1+e._offsets.end);return i?a-o:a+o},getPixelForValue:function(t,e,i){var n=null;if(void 0!==e&&void 0!==i&&(n=this._timestamps.datasets[i][e]),null===n&&(n=$i(this,t)),null!==n)return this.getPixelForOffset(n)},getPixelForTick:function(t){var e=this.getTicks();return t>=0&&t<e.length?this.getPixelForOffset(e[t].value):null},getValueForPixel:function(t){var e=this,i=e._horizontal?e.width:e.height,n=e._horizontal?e.left:e.top,a=(i?(t-n)/i:0)*(e._offsets.start+1+e._offsets.start)-e._offsets.end,r=qi(e._table,"pos",a,"time");return e._adapter._create(r)},getLabelWidth:function(t){var e=this.options.ticks,i=this.ctx.measureText(t).width,n=ut.toRadians(e.maxRotation),a=Math.cos(n),r=Math.sin(n);return i*a+Vi(e.fontSize,ot.global.defaultFontSize)*r},getLabelCapacity:function(t){var e=this,i=e.options.time.displayFormats.millisecond,n=e.tickFormatFunction(t,0,[],i),a=e.getLabelWidth(n),r=e.isHorizontal()?e.width:e.height,o=Math.floor(r/a);return o>0?o:1}}),Qi={position:"bottom",distribution:"linear",bounds:"data",adapters:{},time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}};Ji._defaults=Qi;var tn,en={category:gi,linear:xi,logarithmic:Si,radialLinear:Ni,time:Ji},nn=(function(t,e){t.exports=function(){var e,i;function n(){return e.apply(null,arguments)}function a(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function r(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function o(t){return void 0===t}function s(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function l(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function u(t,e){var i,n=[];for(i=0;i<t.length;++i)n.push(e(t[i],i));return n}function d(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function h(t,e){for(var i in e)d(e,i)&&(t[i]=e[i]);return d(e,"toString")&&(t.toString=e.toString),d(e,"valueOf")&&(t.valueOf=e.valueOf),t}function c(t,e,i,n){return Oe(t,e,i,n,!0).utc()}function f(t){return null==t._pf&&(t._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),t._pf}function g(t){if(null==t._isValid){var e=f(t),n=i.call(e.parsedDateParts,function(t){return null!=t}),a=!isNaN(t._d.getTime())&&e.overflow<0&&!e.empty&&!e.invalidMonth&&!e.invalidWeekday&&!e.weekdayMismatch&&!e.nullInput&&!e.invalidFormat&&!e.userInvalidated&&(!e.meridiem||e.meridiem&&n);if(t._strict&&(a=a&&0===e.charsLeftOver&&0===e.unusedTokens.length&&void 0===e.bigHour),null!=Object.isFrozen&&Object.isFrozen(t))return a;t._isValid=a}return t._isValid}function m(t){var e=c(NaN);return null!=t?h(f(e),t):f(e).userInvalidated=!0,e}i=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),i=e.length>>>0,n=0;n<i;n++)if(n in e&&t.call(this,e[n],n,e))return!0;return!1};var p=n.momentProperties=[];function v(t,e){var i,n,a;if(o(e._isAMomentObject)||(t._isAMomentObject=e._isAMomentObject),o(e._i)||(t._i=e._i),o(e._f)||(t._f=e._f),o(e._l)||(t._l=e._l),o(e._strict)||(t._strict=e._strict),o(e._tzm)||(t._tzm=e._tzm),o(e._isUTC)||(t._isUTC=e._isUTC),o(e._offset)||(t._offset=e._offset),o(e._pf)||(t._pf=f(e)),o(e._locale)||(t._locale=e._locale),p.length>0)for(i=0;i<p.length;i++)n=p[i],o(a=e[n])||(t[n]=a);return t}var y=!1;function b(t){v(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===y&&(y=!0,n.updateOffset(this),y=!1)}function x(t){return t instanceof b||null!=t&&null!=t._isAMomentObject}function _(t){return t<0?Math.ceil(t)||0:Math.floor(t)}function k(t){var e=+t,i=0;return 0!==e&&isFinite(e)&&(i=_(e)),i}function w(t,e,i){var n,a=Math.min(t.length,e.length),r=Math.abs(t.length-e.length),o=0;for(n=0;n<a;n++)(i&&t[n]!==e[n]||!i&&k(t[n])!==k(e[n]))&&o++;return o+r}function M(t){!1===n.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function S(t,e){var i=!0;return h(function(){if(null!=n.deprecationHandler&&n.deprecationHandler(null,t),i){for(var a,r=[],o=0;o<arguments.length;o++){if(a="","object"==typeof arguments[o]){for(var s in a+="\n["+o+"] ",arguments[0])a+=s+": "+arguments[0][s]+", ";a=a.slice(0,-2)}else a=arguments[o];r.push(a)}M(t+"\nArguments: "+Array.prototype.slice.call(r).join("")+"\n"+(new Error).stack),i=!1}return e.apply(this,arguments)},e)}var D,C={};function P(t,e){null!=n.deprecationHandler&&n.deprecationHandler(t,e),C[t]||(M(e),C[t]=!0)}function T(t){return t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}function O(t,e){var i,n=h({},t);for(i in e)d(e,i)&&(r(t[i])&&r(e[i])?(n[i]={},h(n[i],t[i]),h(n[i],e[i])):null!=e[i]?n[i]=e[i]:delete n[i]);for(i in t)d(t,i)&&!d(e,i)&&r(t[i])&&(n[i]=h({},n[i]));return n}function I(t){null!=t&&this.set(t)}n.suppressDeprecationWarnings=!1,n.deprecationHandler=null,D=Object.keys?Object.keys:function(t){var e,i=[];for(e in t)d(t,e)&&i.push(e);return i};var A={};function F(t,e){var i=t.toLowerCase();A[i]=A[i+"s"]=A[e]=t}function R(t){return"string"==typeof t?A[t]||A[t.toLowerCase()]:void 0}function L(t){var e,i,n={};for(i in t)d(t,i)&&(e=R(i))&&(n[e]=t[i]);return n}var W={};function Y(t,e){W[t]=e}function N(t,e,i){var n=""+Math.abs(t),a=e-n.length,r=t>=0;return(r?i?"+":"":"-")+Math.pow(10,Math.max(0,a)).toString().substr(1)+n}var z=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,V=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,H={},E={};function B(t,e,i,n){var a=n;"string"==typeof n&&(a=function(){return this[n]()}),t&&(E[t]=a),e&&(E[e[0]]=function(){return N(a.apply(this,arguments),e[1],e[2])}),i&&(E[i]=function(){return this.localeData().ordinal(a.apply(this,arguments),t)})}function j(t,e){return t.isValid()?(e=U(e,t.localeData()),H[e]=H[e]||function(t){var e,i,n,a=t.match(z);for(e=0,i=a.length;e<i;e++)E[a[e]]?a[e]=E[a[e]]:a[e]=(n=a[e]).match(/\[[\s\S]/)?n.replace(/^\[|\]$/g,""):n.replace(/\\/g,"");return function(e){var n,r="";for(n=0;n<i;n++)r+=T(a[n])?a[n].call(e,t):a[n];return r}}(e),H[e](t)):t.localeData().invalidDate()}function U(t,e){var i=5;function n(t){return e.longDateFormat(t)||t}for(V.lastIndex=0;i>=0&&V.test(t);)t=t.replace(V,n),V.lastIndex=0,i-=1;return t}var G=/\d/,q=/\d\d/,Z=/\d{3}/,$=/\d{4}/,X=/[+-]?\d{6}/,K=/\d\d?/,J=/\d\d\d\d?/,Q=/\d\d\d\d\d\d?/,tt=/\d{1,3}/,et=/\d{1,4}/,it=/[+-]?\d{1,6}/,nt=/\d+/,at=/[+-]?\d+/,rt=/Z|[+-]\d\d:?\d\d/gi,ot=/Z|[+-]\d\d(?::?\d\d)?/gi,st=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,lt={};function ut(t,e,i){lt[t]=T(e)?e:function(t,n){return t&&i?i:e}}function dt(t,e){return d(lt,t)?lt[t](e._strict,e._locale):new RegExp(ht(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,n,a){return e||i||n||a})))}function ht(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var ct={};function ft(t,e){var i,n=e;for("string"==typeof t&&(t=[t]),s(e)&&(n=function(t,i){i[e]=k(t)}),i=0;i<t.length;i++)ct[t[i]]=n}function gt(t,e){ft(t,function(t,i,n,a){n._w=n._w||{},e(t,n._w,n,a)})}function mt(t,e,i){null!=e&&d(ct,t)&&ct[t](e,i._a,i,t)}var pt=0,vt=1,yt=2,bt=3,xt=4,_t=5,kt=6,wt=7,Mt=8;function St(t){return Dt(t)?366:365}function Dt(t){return t%4==0&&t%100!=0||t%400==0}B("Y",0,0,function(){var t=this.year();return t<=9999?""+t:"+"+t}),B(0,["YY",2],0,function(){return this.year()%100}),B(0,["YYYY",4],0,"year"),B(0,["YYYYY",5],0,"year"),B(0,["YYYYYY",6,!0],0,"year"),F("year","y"),Y("year",1),ut("Y",at),ut("YY",K,q),ut("YYYY",et,$),ut("YYYYY",it,X),ut("YYYYYY",it,X),ft(["YYYYY","YYYYYY"],pt),ft("YYYY",function(t,e){e[pt]=2===t.length?n.parseTwoDigitYear(t):k(t)}),ft("YY",function(t,e){e[pt]=n.parseTwoDigitYear(t)}),ft("Y",function(t,e){e[pt]=parseInt(t,10)}),n.parseTwoDigitYear=function(t){return k(t)+(k(t)>68?1900:2e3)};var Ct,Pt=Tt("FullYear",!0);function Tt(t,e){return function(i){return null!=i?(It(this,t,i),n.updateOffset(this,e),this):Ot(this,t)}}function Ot(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function It(t,e,i){t.isValid()&&!isNaN(i)&&("FullYear"===e&&Dt(t.year())&&1===t.month()&&29===t.date()?t._d["set"+(t._isUTC?"UTC":"")+e](i,t.month(),At(i,t.month())):t._d["set"+(t._isUTC?"UTC":"")+e](i))}function At(t,e){if(isNaN(t)||isNaN(e))return NaN;var i,n=(e%(i=12)+i)%i;return t+=(e-n)/12,1===n?Dt(t)?29:28:31-n%7%2}Ct=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;e<this.length;++e)if(this[e]===t)return e;return-1},B("M",["MM",2],"Mo",function(){return this.month()+1}),B("MMM",0,0,function(t){return this.localeData().monthsShort(this,t)}),B("MMMM",0,0,function(t){return this.localeData().months(this,t)}),F("month","M"),Y("month",8),ut("M",K),ut("MM",K,q),ut("MMM",function(t,e){return e.monthsShortRegex(t)}),ut("MMMM",function(t,e){return e.monthsRegex(t)}),ft(["M","MM"],function(t,e){e[vt]=k(t)-1}),ft(["MMM","MMMM"],function(t,e,i,n){var a=i._locale.monthsParse(t,n,i._strict);null!=a?e[vt]=a:f(i).invalidMonth=t});var Ft=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,Rt="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Lt="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_");function Wt(t,e){var i;if(!t.isValid())return t;if("string"==typeof e)if(/^\d+$/.test(e))e=k(e);else if(!s(e=t.localeData().monthsParse(e)))return t;return i=Math.min(t.date(),At(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,i),t}function Yt(t){return null!=t?(Wt(this,t),n.updateOffset(this,!0),this):Ot(this,"Month")}var Nt=st,zt=st;function Vt(){function t(t,e){return e.length-t.length}var e,i,n=[],a=[],r=[];for(e=0;e<12;e++)i=c([2e3,e]),n.push(this.monthsShort(i,"")),a.push(this.months(i,"")),r.push(this.months(i,"")),r.push(this.monthsShort(i,""));for(n.sort(t),a.sort(t),r.sort(t),e=0;e<12;e++)n[e]=ht(n[e]),a[e]=ht(a[e]);for(e=0;e<24;e++)r[e]=ht(r[e]);this._monthsRegex=new RegExp("^("+r.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+n.join("|")+")","i")}function Ht(t){var e;if(t<100&&t>=0){var i=Array.prototype.slice.call(arguments);i[0]=t+400,e=new Date(Date.UTC.apply(null,i)),isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t)}else e=new Date(Date.UTC.apply(null,arguments));return e}function Et(t,e,i){var n=7+e-i,a=(7+Ht(t,0,n).getUTCDay()-e)%7;return-a+n-1}function Bt(t,e,i,n,a){var r,o,s=(7+i-n)%7,l=Et(t,n,a),u=1+7*(e-1)+s+l;return u<=0?o=St(r=t-1)+u:u>St(t)?(r=t+1,o=u-St(t)):(r=t,o=u),{year:r,dayOfYear:o}}function jt(t,e,i){var n,a,r=Et(t.year(),e,i),o=Math.floor((t.dayOfYear()-r-1)/7)+1;return o<1?(a=t.year()-1,n=o+Ut(a,e,i)):o>Ut(t.year(),e,i)?(n=o-Ut(t.year(),e,i),a=t.year()+1):(a=t.year(),n=o),{week:n,year:a}}function Ut(t,e,i){var n=Et(t,e,i),a=Et(t+1,e,i);return(St(t)-n+a)/7}function Gt(t,e){return t.slice(e,7).concat(t.slice(0,e))}B("w",["ww",2],"wo","week"),B("W",["WW",2],"Wo","isoWeek"),F("week","w"),F("isoWeek","W"),Y("week",5),Y("isoWeek",5),ut("w",K),ut("ww",K,q),ut("W",K),ut("WW",K,q),gt(["w","ww","W","WW"],function(t,e,i,n){e[n.substr(0,1)]=k(t)}),B("d",0,"do","day"),B("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),B("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),B("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),B("e",0,0,"weekday"),B("E",0,0,"isoWeekday"),F("day","d"),F("weekday","e"),F("isoWeekday","E"),Y("day",11),Y("weekday",11),Y("isoWeekday",11),ut("d",K),ut("e",K),ut("E",K),ut("dd",function(t,e){return e.weekdaysMinRegex(t)}),ut("ddd",function(t,e){return e.weekdaysShortRegex(t)}),ut("dddd",function(t,e){return e.weekdaysRegex(t)}),gt(["dd","ddd","dddd"],function(t,e,i,n){var a=i._locale.weekdaysParse(t,n,i._strict);null!=a?e.d=a:f(i).invalidWeekday=t}),gt(["d","e","E"],function(t,e,i,n){e[n]=k(t)});var qt="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Zt="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),$t="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Xt=st,Kt=st,Jt=st;function Qt(){function t(t,e){return e.length-t.length}var e,i,n,a,r,o=[],s=[],l=[],u=[];for(e=0;e<7;e++)i=c([2e3,1]).day(e),n=this.weekdaysMin(i,""),a=this.weekdaysShort(i,""),r=this.weekdays(i,""),o.push(n),s.push(a),l.push(r),u.push(n),u.push(a),u.push(r);for(o.sort(t),s.sort(t),l.sort(t),u.sort(t),e=0;e<7;e++)s[e]=ht(s[e]),l[e]=ht(l[e]),u[e]=ht(u[e]);this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+o.join("|")+")","i")}function te(){return this.hours()%12||12}function ee(t,e){B(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function ie(t,e){return e._meridiemParse}B("H",["HH",2],0,"hour"),B("h",["hh",2],0,te),B("k",["kk",2],0,function(){return this.hours()||24}),B("hmm",0,0,function(){return""+te.apply(this)+N(this.minutes(),2)}),B("hmmss",0,0,function(){return""+te.apply(this)+N(this.minutes(),2)+N(this.seconds(),2)}),B("Hmm",0,0,function(){return""+this.hours()+N(this.minutes(),2)}),B("Hmmss",0,0,function(){return""+this.hours()+N(this.minutes(),2)+N(this.seconds(),2)}),ee("a",!0),ee("A",!1),F("hour","h"),Y("hour",13),ut("a",ie),ut("A",ie),ut("H",K),ut("h",K),ut("k",K),ut("HH",K,q),ut("hh",K,q),ut("kk",K,q),ut("hmm",J),ut("hmmss",Q),ut("Hmm",J),ut("Hmmss",Q),ft(["H","HH"],bt),ft(["k","kk"],function(t,e,i){var n=k(t);e[bt]=24===n?0:n}),ft(["a","A"],function(t,e,i){i._isPm=i._locale.isPM(t),i._meridiem=t}),ft(["h","hh"],function(t,e,i){e[bt]=k(t),f(i).bigHour=!0}),ft("hmm",function(t,e,i){var n=t.length-2;e[bt]=k(t.substr(0,n)),e[xt]=k(t.substr(n)),f(i).bigHour=!0}),ft("hmmss",function(t,e,i){var n=t.length-4,a=t.length-2;e[bt]=k(t.substr(0,n)),e[xt]=k(t.substr(n,2)),e[_t]=k(t.substr(a)),f(i).bigHour=!0}),ft("Hmm",function(t,e,i){var n=t.length-2;e[bt]=k(t.substr(0,n)),e[xt]=k(t.substr(n))}),ft("Hmmss",function(t,e,i){var n=t.length-4,a=t.length-2;e[bt]=k(t.substr(0,n)),e[xt]=k(t.substr(n,2)),e[_t]=k(t.substr(a))});var ne,ae=Tt("Hours",!0),re={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Rt,monthsShort:Lt,week:{dow:0,doy:6},weekdays:qt,weekdaysMin:$t,weekdaysShort:Zt,meridiemParse:/[ap]\.?m?\.?/i},oe={},se={};function le(t){return t?t.toLowerCase().replace("_","-"):t}function ue(e){var i=null;if(!oe[e]&&t&&t.exports)try{i=ne._abbr;var n=_e;n("./locale/"+e),de(i)}catch(t){}return oe[e]}function de(t,e){var i;return t&&((i=o(e)?ce(t):he(t,e))?ne=i:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+t+" not found. Did you forget to load it?")),ne._abbr}function he(t,e){if(null!==e){var i,n=re;if(e.abbr=t,null!=oe[t])P("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=oe[t]._config;else if(null!=e.parentLocale)if(null!=oe[e.parentLocale])n=oe[e.parentLocale]._config;else{if(null==(i=ue(e.parentLocale)))return se[e.parentLocale]||(se[e.parentLocale]=[]),se[e.parentLocale].push({name:t,config:e}),null;n=i._config}return oe[t]=new I(O(n,e)),se[t]&&se[t].forEach(function(t){he(t.name,t.config)}),de(t),oe[t]}return delete oe[t],null}function ce(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return ne;if(!a(t)){if(e=ue(t))return e;t=[t]}return function(t){for(var e,i,n,a,r=0;r<t.length;){for(a=le(t[r]).split("-"),e=a.length,i=(i=le(t[r+1]))?i.split("-"):null;e>0;){if(n=ue(a.slice(0,e).join("-")))return n;if(i&&i.length>=e&&w(a,i,!0)>=e-1)break;e--}r++}return ne}(t)}function fe(t){var e,i=t._a;return i&&-2===f(t).overflow&&(e=i[vt]<0||i[vt]>11?vt:i[yt]<1||i[yt]>At(i[pt],i[vt])?yt:i[bt]<0||i[bt]>24||24===i[bt]&&(0!==i[xt]||0!==i[_t]||0!==i[kt])?bt:i[xt]<0||i[xt]>59?xt:i[_t]<0||i[_t]>59?_t:i[kt]<0||i[kt]>999?kt:-1,f(t)._overflowDayOfYear&&(e<pt||e>yt)&&(e=yt),f(t)._overflowWeeks&&-1===e&&(e=wt),f(t)._overflowWeekday&&-1===e&&(e=Mt),f(t).overflow=e),t}function ge(t,e,i){return null!=t?t:null!=e?e:i}function me(t){var e,i,a,r,o,s=[];if(!t._d){for(a=function(t){var e=new Date(n.now());return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}(t),t._w&&null==t._a[yt]&&null==t._a[vt]&&function(t){var e,i,n,a,r,o,s,l;if(null!=(e=t._w).GG||null!=e.W||null!=e.E)r=1,o=4,i=ge(e.GG,t._a[pt],jt(Ie(),1,4).year),n=ge(e.W,1),((a=ge(e.E,1))<1||a>7)&&(l=!0);else{r=t._locale._week.dow,o=t._locale._week.doy;var u=jt(Ie(),r,o);i=ge(e.gg,t._a[pt],u.year),n=ge(e.w,u.week),null!=e.d?((a=e.d)<0||a>6)&&(l=!0):null!=e.e?(a=e.e+r,(e.e<0||e.e>6)&&(l=!0)):a=r}n<1||n>Ut(i,r,o)?f(t)._overflowWeeks=!0:null!=l?f(t)._overflowWeekday=!0:(s=Bt(i,n,a,r,o),t._a[pt]=s.year,t._dayOfYear=s.dayOfYear)}(t),null!=t._dayOfYear&&(o=ge(t._a[pt],a[pt]),(t._dayOfYear>St(o)||0===t._dayOfYear)&&(f(t)._overflowDayOfYear=!0),i=Ht(o,0,t._dayOfYear),t._a[vt]=i.getUTCMonth(),t._a[yt]=i.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=s[e]=a[e];for(;e<7;e++)t._a[e]=s[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[bt]&&0===t._a[xt]&&0===t._a[_t]&&0===t._a[kt]&&(t._nextDay=!0,t._a[bt]=0),t._d=(t._useUTC?Ht:function(t,e,i,n,a,r,o){var s;return t<100&&t>=0?(s=new Date(t+400,e,i,n,a,r,o),isFinite(s.getFullYear())&&s.setFullYear(t)):s=new Date(t,e,i,n,a,r,o),s}).apply(null,s),r=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[bt]=24),t._w&&void 0!==t._w.d&&t._w.d!==r&&(f(t).weekdayMismatch=!0)}}var pe=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ve=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ye=/Z|[+-]\d\d(?::?\d\d)?/,be=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],xe=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],ke=/^\/?Date\((\-?\d+)/i;function we(t){var e,i,n,a,r,o,s=t._i,l=pe.exec(s)||ve.exec(s);if(l){for(f(t).iso=!0,e=0,i=be.length;e<i;e++)if(be[e][1].exec(l[1])){a=be[e][0],n=!1!==be[e][2];break}if(null==a)return void(t._isValid=!1);if(l[3]){for(e=0,i=xe.length;e<i;e++)if(xe[e][1].exec(l[3])){r=(l[2]||" ")+xe[e][0];break}if(null==r)return void(t._isValid=!1)}if(!n&&null!=r)return void(t._isValid=!1);if(l[4]){if(!ye.exec(l[4]))return void(t._isValid=!1);o="Z"}t._f=a+(r||"")+(o||""),Pe(t)}else t._isValid=!1}var Me=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;function Se(t){var e=parseInt(t,10);return e<=49?2e3+e:e<=999?1900+e:e}var De={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Ce(t){var e,i,n,a,r,o,s,l=Me.exec(t._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));if(l){var u=(e=l[4],i=l[3],n=l[2],a=l[5],r=l[6],o=l[7],s=[Se(e),Lt.indexOf(i),parseInt(n,10),parseInt(a,10),parseInt(r,10)],o&&s.push(parseInt(o,10)),s);if(!function(t,e,i){if(t){var n=Zt.indexOf(t),a=new Date(e[0],e[1],e[2]).getDay();if(n!==a)return f(i).weekdayMismatch=!0,i._isValid=!1,!1}return!0}(l[1],u,t))return;t._a=u,t._tzm=function(t,e,i){if(t)return De[t];if(e)return 0;var n=parseInt(i,10),a=n%100,r=(n-a)/100;return 60*r+a}(l[8],l[9],l[10]),t._d=Ht.apply(null,t._a),t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),f(t).rfc2822=!0}else t._isValid=!1}function Pe(t){if(t._f!==n.ISO_8601)if(t._f!==n.RFC_2822){t._a=[],f(t).empty=!0;var e,i,a,r,o,s=""+t._i,l=s.length,u=0;for(a=U(t._f,t._locale).match(z)||[],e=0;e<a.length;e++)r=a[e],(i=(s.match(dt(r,t))||[])[0])&&((o=s.substr(0,s.indexOf(i))).length>0&&f(t).unusedInput.push(o),s=s.slice(s.indexOf(i)+i.length),u+=i.length),E[r]?(i?f(t).empty=!1:f(t).unusedTokens.push(r),mt(r,i,t)):t._strict&&!i&&f(t).unusedTokens.push(r);f(t).charsLeftOver=l-u,s.length>0&&f(t).unusedInput.push(s),t._a[bt]<=12&&!0===f(t).bigHour&&t._a[bt]>0&&(f(t).bigHour=void 0),f(t).parsedDateParts=t._a.slice(0),f(t).meridiem=t._meridiem,t._a[bt]=(d=t._locale,h=t._a[bt],null==(c=t._meridiem)?h:null!=d.meridiemHour?d.meridiemHour(h,c):null!=d.isPM?((g=d.isPM(c))&&h<12&&(h+=12),g||12!==h||(h=0),h):h),me(t),fe(t)}else Ce(t);else we(t);var d,h,c,g}function Te(t){var e=t._i,i=t._f;return t._locale=t._locale||ce(t._l),null===e||void 0===i&&""===e?m({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),x(e)?new b(fe(e)):(l(e)?t._d=e:a(i)?function(t){var e,i,n,a,r;if(0===t._f.length)return f(t).invalidFormat=!0,void(t._d=new Date(NaN));for(a=0;a<t._f.length;a++)r=0,e=v({},t),null!=t._useUTC&&(e._useUTC=t._useUTC),e._f=t._f[a],Pe(e),g(e)&&(r+=f(e).charsLeftOver,r+=10*f(e).unusedTokens.length,f(e).score=r,(null==n||r<n)&&(n=r,i=e));h(t,i||e)}(t):i?Pe(t):function(t){var e=t._i;o(e)?t._d=new Date(n.now()):l(e)?t._d=new Date(e.valueOf()):"string"==typeof e?function(t){var e=ke.exec(t._i);null===e?(we(t),!1===t._isValid&&(delete t._isValid,Ce(t),!1===t._isValid&&(delete t._isValid,n.createFromInputFallback(t)))):t._d=new Date(+e[1])}(t):a(e)?(t._a=u(e.slice(0),function(t){return parseInt(t,10)}),me(t)):r(e)?function(t){if(!t._d){var e=L(t._i);t._a=u([e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],function(t){return t&&parseInt(t,10)}),me(t)}}(t):s(e)?t._d=new Date(e):n.createFromInputFallback(t)}(t),g(t)||(t._d=null),t))}function Oe(t,e,i,n,o){var s,l={};return!0!==i&&!1!==i||(n=i,i=void 0),(r(t)&&function(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var e;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}(t)||a(t)&&0===t.length)&&(t=void 0),l._isAMomentObject=!0,l._useUTC=l._isUTC=o,l._l=i,l._i=t,l._f=e,l._strict=n,(s=new b(fe(Te(l))))._nextDay&&(s.add(1,"d"),s._nextDay=void 0),s}function Ie(t,e,i,n){return Oe(t,e,i,n,!1)}n.createFromInputFallback=S("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),n.ISO_8601=function(){},n.RFC_2822=function(){};var Ae=S("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var t=Ie.apply(null,arguments);return this.isValid()&&t.isValid()?t<this?this:t:m()}),Fe=S("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var t=Ie.apply(null,arguments);return this.isValid()&&t.isValid()?t>this?this:t:m()});function Re(t,e){var i,n;if(1===e.length&&a(e[0])&&(e=e[0]),!e.length)return Ie();for(i=e[0],n=1;n<e.length;++n)e[n].isValid()&&!e[n][t](i)||(i=e[n]);return i}var Le=["year","quarter","month","week","day","hour","minute","second","millisecond"];function We(t){var e=L(t),i=e.year||0,n=e.quarter||0,a=e.month||0,r=e.week||e.isoWeek||0,o=e.day||0,s=e.hour||0,l=e.minute||0,u=e.second||0,d=e.millisecond||0;this._isValid=function(t){for(var e in t)if(-1===Ct.call(Le,e)||null!=t[e]&&isNaN(t[e]))return!1;for(var i=!1,n=0;n<Le.length;++n)if(t[Le[n]]){if(i)return!1;parseFloat(t[Le[n]])!==k(t[Le[n]])&&(i=!0)}return!0}(e),this._milliseconds=+d+1e3*u+6e4*l+1e3*s*60*60,this._days=+o+7*r,this._months=+a+3*n+12*i,this._data={},this._locale=ce(),this._bubble()}function Ye(t){return t instanceof We}function Ne(t){return t<0?-1*Math.round(-1*t):Math.round(t)}function ze(t,e){B(t,0,0,function(){var t=this.utcOffset(),i="+";return t<0&&(t=-t,i="-"),i+N(~~(t/60),2)+e+N(~~t%60,2)})}ze("Z",":"),ze("ZZ",""),ut("Z",ot),ut("ZZ",ot),ft(["Z","ZZ"],function(t,e,i){i._useUTC=!0,i._tzm=He(ot,t)});var Ve=/([\+\-]|\d\d)/gi;function He(t,e){var i=(e||"").match(t);if(null===i)return null;var n=i[i.length-1]||[],a=(n+"").match(Ve)||["-",0,0],r=60*a[1]+k(a[2]);return 0===r?0:"+"===a[0]?r:-r}function Ee(t,e){var i,a;return e._isUTC?(i=e.clone(),a=(x(t)||l(t)?t.valueOf():Ie(t).valueOf())-i.valueOf(),i._d.setTime(i._d.valueOf()+a),n.updateOffset(i,!1),i):Ie(t).local()}function Be(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function je(){return!!this.isValid()&&this._isUTC&&0===this._offset}n.updateOffset=function(){};var Ue=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Ge=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function qe(t,e){var i,n,a,r,o,l,u=t,h=null;return Ye(t)?u={ms:t._milliseconds,d:t._days,M:t._months}:s(t)?(u={},e?u[e]=t:u.milliseconds=t):(h=Ue.exec(t))?(i="-"===h[1]?-1:1,u={y:0,d:k(h[yt])*i,h:k(h[bt])*i,m:k(h[xt])*i,s:k(h[_t])*i,ms:k(Ne(1e3*h[kt]))*i}):(h=Ge.exec(t))?(i="-"===h[1]?-1:1,u={y:Ze(h[2],i),M:Ze(h[3],i),w:Ze(h[4],i),d:Ze(h[5],i),h:Ze(h[6],i),m:Ze(h[7],i),s:Ze(h[8],i)}):null==u?u={}:"object"==typeof u&&("from"in u||"to"in u)&&(r=Ie(u.from),o=Ie(u.to),a=r.isValid()&&o.isValid()?(o=Ee(o,r),r.isBefore(o)?l=$e(r,o):((l=$e(o,r)).milliseconds=-l.milliseconds,l.months=-l.months),l):{milliseconds:0,months:0},(u={}).ms=a.milliseconds,u.M=a.months),n=new We(u),Ye(t)&&d(t,"_locale")&&(n._locale=t._locale),n}function Ze(t,e){var i=t&&parseFloat(t.replace(",","."));return(isNaN(i)?0:i)*e}function $e(t,e){var i={};return i.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(i.months,"M").isAfter(e)&&--i.months,i.milliseconds=+e-+t.clone().add(i.months,"M"),i}function Xe(t,e){return function(i,n){var a;return null===n||isNaN(+n)||(P(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),a=i,i=n,n=a),Ke(this,qe(i="string"==typeof i?+i:i,n),t),this}}function Ke(t,e,i,a){var r=e._milliseconds,o=Ne(e._days),s=Ne(e._months);t.isValid()&&(a=null==a||a,s&&Wt(t,Ot(t,"Month")+s*i),o&&It(t,"Date",Ot(t,"Date")+o*i),r&&t._d.setTime(t._d.valueOf()+r*i),a&&n.updateOffset(t,o||s))}qe.fn=We.prototype,qe.invalid=function(){return qe(NaN)};var Je=Xe(1,"add"),Qe=Xe(-1,"subtract");function ti(t,e){var i,n,a=12*(e.year()-t.year())+(e.month()-t.month()),r=t.clone().add(a,"months");return e-r<0?(i=t.clone().add(a-1,"months"),n=(e-r)/(r-i)):(i=t.clone().add(a+1,"months"),n=(e-r)/(i-r)),-(a+n)||0}function ei(t){var e;return void 0===t?this._locale._abbr:(null!=(e=ce(t))&&(this._locale=e),this)}n.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",n.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var ii=S("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});function ni(){return this._locale}var ai=1e3,ri=60*ai,oi=60*ri,si=3506328*oi;function li(t,e){return(t%e+e)%e}function ui(t,e,i){return t<100&&t>=0?new Date(t+400,e,i)-si:new Date(t,e,i).valueOf()}function di(t,e,i){return t<100&&t>=0?Date.UTC(t+400,e,i)-si:Date.UTC(t,e,i)}function hi(t,e){B(0,[t,t.length],0,e)}function ci(t,e,i,n,a){var r;return null==t?jt(this,n,a).year:(r=Ut(t,n,a),e>r&&(e=r),function(t,e,i,n,a){var r=Bt(t,e,i,n,a),o=Ht(r.year,0,r.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}.call(this,t,e,i,n,a))}B(0,["gg",2],0,function(){return this.weekYear()%100}),B(0,["GG",2],0,function(){return this.isoWeekYear()%100}),hi("gggg","weekYear"),hi("ggggg","weekYear"),hi("GGGG","isoWeekYear"),hi("GGGGG","isoWeekYear"),F("weekYear","gg"),F("isoWeekYear","GG"),Y("weekYear",1),Y("isoWeekYear",1),ut("G",at),ut("g",at),ut("GG",K,q),ut("gg",K,q),ut("GGGG",et,$),ut("gggg",et,$),ut("GGGGG",it,X),ut("ggggg",it,X),gt(["gggg","ggggg","GGGG","GGGGG"],function(t,e,i,n){e[n.substr(0,2)]=k(t)}),gt(["gg","GG"],function(t,e,i,a){e[a]=n.parseTwoDigitYear(t)}),B("Q",0,"Qo","quarter"),F("quarter","Q"),Y("quarter",7),ut("Q",G),ft("Q",function(t,e){e[vt]=3*(k(t)-1)}),B("D",["DD",2],"Do","date"),F("date","D"),Y("date",9),ut("D",K),ut("DD",K,q),ut("Do",function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient}),ft(["D","DD"],yt),ft("Do",function(t,e){e[yt]=k(t.match(K)[0])});var fi=Tt("Date",!0);B("DDD",["DDDD",3],"DDDo","dayOfYear"),F("dayOfYear","DDD"),Y("dayOfYear",4),ut("DDD",tt),ut("DDDD",Z),ft(["DDD","DDDD"],function(t,e,i){i._dayOfYear=k(t)}),B("m",["mm",2],0,"minute"),F("minute","m"),Y("minute",14),ut("m",K),ut("mm",K,q),ft(["m","mm"],xt);var gi=Tt("Minutes",!1);B("s",["ss",2],0,"second"),F("second","s"),Y("second",15),ut("s",K),ut("ss",K,q),ft(["s","ss"],_t);var mi,pi=Tt("Seconds",!1);for(B("S",0,0,function(){return~~(this.millisecond()/100)}),B(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),B(0,["SSS",3],0,"millisecond"),B(0,["SSSS",4],0,function(){return 10*this.millisecond()}),B(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),B(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),B(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),B(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),B(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),F("millisecond","ms"),Y("millisecond",16),ut("S",tt,G),ut("SS",tt,q),ut("SSS",tt,Z),mi="SSSS";mi.length<=9;mi+="S")ut(mi,nt);function vi(t,e){e[kt]=k(1e3*("0."+t))}for(mi="S";mi.length<=9;mi+="S")ft(mi,vi);var yi=Tt("Milliseconds",!1);B("z",0,0,"zoneAbbr"),B("zz",0,0,"zoneName");var bi=b.prototype;function xi(t){return t}bi.add=Je,bi.calendar=function(t,e){var i=t||Ie(),a=Ee(i,this).startOf("day"),r=n.calendarFormat(this,a)||"sameElse",o=e&&(T(e[r])?e[r].call(this,i):e[r]);return this.format(o||this.localeData().calendar(r,this,Ie(i)))},bi.clone=function(){return new b(this)},bi.diff=function(t,e,i){var n,a,r;if(!this.isValid())return NaN;if(!(n=Ee(t,this)).isValid())return NaN;switch(a=6e4*(n.utcOffset()-this.utcOffset()),e=R(e)){case"year":r=ti(this,n)/12;break;case"month":r=ti(this,n);break;case"quarter":r=ti(this,n)/3;break;case"second":r=(this-n)/1e3;break;case"minute":r=(this-n)/6e4;break;case"hour":r=(this-n)/36e5;break;case"day":r=(this-n-a)/864e5;break;case"week":r=(this-n-a)/6048e5;break;default:r=this-n}return i?r:_(r)},bi.endOf=function(t){var e;if(void 0===(t=R(t))||"millisecond"===t||!this.isValid())return this;var i=this._isUTC?di:ui;switch(t){case"year":e=i(this.year()+1,0,1)-1;break;case"quarter":e=i(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":e=i(this.year(),this.month()+1,1)-1;break;case"week":e=i(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":e=i(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":e=i(this.year(),this.month(),this.date()+1)-1;break;case"hour":e=this._d.valueOf(),e+=oi-li(e+(this._isUTC?0:this.utcOffset()*ri),oi)-1;break;case"minute":e=this._d.valueOf(),e+=ri-li(e,ri)-1;break;case"second":e=this._d.valueOf(),e+=ai-li(e,ai)-1}return this._d.setTime(e),n.updateOffset(this,!0),this},bi.format=function(t){t||(t=this.isUtc()?n.defaultFormatUtc:n.defaultFormat);var e=j(this,t);return this.localeData().postformat(e)},bi.from=function(t,e){return this.isValid()&&(x(t)&&t.isValid()||Ie(t).isValid())?qe({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},bi.fromNow=function(t){return this.from(Ie(),t)},bi.to=function(t,e){return this.isValid()&&(x(t)&&t.isValid()||Ie(t).isValid())?qe({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},bi.toNow=function(t){return this.to(Ie(),t)},bi.get=function(t){return T(this[t=R(t)])?this[t]():this},bi.invalidAt=function(){return f(this).overflow},bi.isAfter=function(t,e){var i=x(t)?t:Ie(t);return!(!this.isValid()||!i.isValid())&&("millisecond"===(e=R(e)||"millisecond")?this.valueOf()>i.valueOf():i.valueOf()<this.clone().startOf(e).valueOf())},bi.isBefore=function(t,e){var i=x(t)?t:Ie(t);return!(!this.isValid()||!i.isValid())&&("millisecond"===(e=R(e)||"millisecond")?this.valueOf()<i.valueOf():this.clone().endOf(e).valueOf()<i.valueOf())},bi.isBetween=function(t,e,i,n){var a=x(t)?t:Ie(t),r=x(e)?e:Ie(e);return!!(this.isValid()&&a.isValid()&&r.isValid())&&(("("===(n=n||"()")[0]?this.isAfter(a,i):!this.isBefore(a,i))&&(")"===n[1]?this.isBefore(r,i):!this.isAfter(r,i)))},bi.isSame=function(t,e){var i,n=x(t)?t:Ie(t);return!(!this.isValid()||!n.isValid())&&("millisecond"===(e=R(e)||"millisecond")?this.valueOf()===n.valueOf():(i=n.valueOf(),this.clone().startOf(e).valueOf()<=i&&i<=this.clone().endOf(e).valueOf()))},bi.isSameOrAfter=function(t,e){return this.isSame(t,e)||this.isAfter(t,e)},bi.isSameOrBefore=function(t,e){return this.isSame(t,e)||this.isBefore(t,e)},bi.isValid=function(){return g(this)},bi.lang=ii,bi.locale=ei,bi.localeData=ni,bi.max=Fe,bi.min=Ae,bi.parsingFlags=function(){return h({},f(this))},bi.set=function(t,e){if("object"==typeof t)for(var i=function(t){var e=[];for(var i in t)e.push({unit:i,priority:W[i]});return e.sort(function(t,e){return t.priority-e.priority}),e}(t=L(t)),n=0;n<i.length;n++)this[i[n].unit](t[i[n].unit]);else if(T(this[t=R(t)]))return this[t](e);return this},bi.startOf=function(t){var e;if(void 0===(t=R(t))||"millisecond"===t||!this.isValid())return this;var i=this._isUTC?di:ui;switch(t){case"year":e=i(this.year(),0,1);break;case"quarter":e=i(this.year(),this.month()-this.month()%3,1);break;case"month":e=i(this.year(),this.month(),1);break;case"week":e=i(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":e=i(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":e=i(this.year(),this.month(),this.date());break;case"hour":e=this._d.valueOf(),e-=li(e+(this._isUTC?0:this.utcOffset()*ri),oi);break;case"minute":e=this._d.valueOf(),e-=li(e,ri);break;case"second":e=this._d.valueOf(),e-=li(e,ai)}return this._d.setTime(e),n.updateOffset(this,!0),this},bi.subtract=Qe,bi.toArray=function(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]},bi.toObject=function(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}},bi.toDate=function(){return new Date(this.valueOf())},bi.toISOString=function(t){if(!this.isValid())return null;var e=!0!==t,i=e?this.clone().utc():this;return i.year()<0||i.year()>9999?j(i,e?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):T(Date.prototype.toISOString)?e?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",j(i,"Z")):j(i,e?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},bi.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var i="["+t+'("]',n=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",a=e+'[")]';return this.format(i+n+"-MM-DD[T]HH:mm:ss.SSS"+a)},bi.toJSON=function(){return this.isValid()?this.toISOString():null},bi.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},bi.unix=function(){return Math.floor(this.valueOf()/1e3)},bi.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},bi.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},bi.year=Pt,bi.isLeapYear=function(){return Dt(this.year())},bi.weekYear=function(t){return ci.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},bi.isoWeekYear=function(t){return ci.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)},bi.quarter=bi.quarters=function(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)},bi.month=Yt,bi.daysInMonth=function(){return At(this.year(),this.month())},bi.week=bi.weeks=function(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")},bi.isoWeek=bi.isoWeeks=function(t){var e=jt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")},bi.weeksInYear=function(){var t=this.localeData()._week;return Ut(this.year(),t.dow,t.doy)},bi.isoWeeksInYear=function(){return Ut(this.year(),1,4)},bi.date=fi,bi.day=bi.days=function(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=function(t,e){return"string"!=typeof t?t:isNaN(t)?"number"==typeof(t=e.weekdaysParse(t))?t:null:parseInt(t,10)}(t,this.localeData()),this.add(t-e,"d")):e},bi.weekday=function(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")},bi.isoWeekday=function(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=function(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7},bi.dayOfYear=function(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")},bi.hour=bi.hours=ae,bi.minute=bi.minutes=gi,bi.second=bi.seconds=pi,bi.millisecond=bi.milliseconds=yi,bi.utcOffset=function(t,e,i){var a,r=this._offset||0;if(!this.isValid())return null!=t?this:NaN;if(null!=t){if("string"==typeof t){if(null===(t=He(ot,t)))return this}else Math.abs(t)<16&&!i&&(t*=60);return!this._isUTC&&e&&(a=Be(this)),this._offset=t,this._isUTC=!0,null!=a&&this.add(a,"m"),r!==t&&(!e||this._changeInProgress?Ke(this,qe(t-r,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,n.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?r:Be(this)},bi.utc=function(t){return this.utcOffset(0,t)},bi.local=function(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(Be(this),"m")),this},bi.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var t=He(rt,this._i);null!=t?this.utcOffset(t):this.utcOffset(0,!0)}return this},bi.hasAlignedHourOffset=function(t){return!!this.isValid()&&(t=t?Ie(t).utcOffset():0,(this.utcOffset()-t)%60==0)},bi.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},bi.isLocal=function(){return!!this.isValid()&&!this._isUTC},bi.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},bi.isUtc=je,bi.isUTC=je,bi.zoneAbbr=function(){return this._isUTC?"UTC":""},bi.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},bi.dates=S("dates accessor is deprecated. Use date instead.",fi),bi.months=S("months accessor is deprecated. Use month instead",Yt),bi.years=S("years accessor is deprecated. Use year instead",Pt),bi.zone=S("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}),bi.isDSTShifted=S("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!o(this._isDSTShifted))return this._isDSTShifted;var t={};if(v(t,this),(t=Te(t))._a){var e=t._isUTC?c(t._a):Ie(t._a);this._isDSTShifted=this.isValid()&&w(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted});var _i=I.prototype;function ki(t,e,i,n){var a=ce(),r=c().set(n,e);return a[i](r,t)}function wi(t,e,i){if(s(t)&&(e=t,t=void 0),t=t||"",null!=e)return ki(t,e,i,"month");var n,a=[];for(n=0;n<12;n++)a[n]=ki(t,n,i,"month");return a}function Mi(t,e,i,n){"boolean"==typeof t?(s(e)&&(i=e,e=void 0),e=e||""):(i=e=t,t=!1,s(e)&&(i=e,e=void 0),e=e||"");var a,r=ce(),o=t?r._week.dow:0;if(null!=i)return ki(e,(i+o)%7,n,"day");var l=[];for(a=0;a<7;a++)l[a]=ki(e,(a+o)%7,n,"day");return l}_i.calendar=function(t,e,i){var n=this._calendar[t]||this._calendar.sameElse;return T(n)?n.call(e,i):n},_i.longDateFormat=function(t){var e=this._longDateFormat[t],i=this._longDateFormat[t.toUpperCase()];return e||!i?e:(this._longDateFormat[t]=i.replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t])},_i.invalidDate=function(){return this._invalidDate},_i.ordinal=function(t){return this._ordinal.replace("%d",t)},_i.preparse=xi,_i.postformat=xi,_i.relativeTime=function(t,e,i,n){var a=this._relativeTime[i];return T(a)?a(t,e,i,n):a.replace(/%d/i,t)},_i.pastFuture=function(t,e){var i=this._relativeTime[t>0?"future":"past"];return T(i)?i(e):i.replace(/%s/i,e)},_i.set=function(t){var e,i;for(i in t)T(e=t[i])?this[i]=e:this["_"+i]=e;this._config=t,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},_i.months=function(t,e){return t?a(this._months)?this._months[t.month()]:this._months[(this._months.isFormat||Ft).test(e)?"format":"standalone"][t.month()]:a(this._months)?this._months:this._months.standalone},_i.monthsShort=function(t,e){return t?a(this._monthsShort)?this._monthsShort[t.month()]:this._monthsShort[Ft.test(e)?"format":"standalone"][t.month()]:a(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},_i.monthsParse=function(t,e,i){var n,a,r;if(this._monthsParseExact)return function(t,e,i){var n,a,r,o=t.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],n=0;n<12;++n)r=c([2e3,n]),this._shortMonthsParse[n]=this.monthsShort(r,"").toLocaleLowerCase(),this._longMonthsParse[n]=this.months(r,"").toLocaleLowerCase();return i?"MMM"===e?-1!==(a=Ct.call(this._shortMonthsParse,o))?a:null:-1!==(a=Ct.call(this._longMonthsParse,o))?a:null:"MMM"===e?-1!==(a=Ct.call(this._shortMonthsParse,o))?a:-1!==(a=Ct.call(this._longMonthsParse,o))?a:null:-1!==(a=Ct.call(this._longMonthsParse,o))?a:-1!==(a=Ct.call(this._shortMonthsParse,o))?a:null}.call(this,t,e,i);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),n=0;n<12;n++){if(a=c([2e3,n]),i&&!this._longMonthsParse[n]&&(this._longMonthsParse[n]=new RegExp("^"+this.months(a,"").replace(".","")+"$","i"),this._shortMonthsParse[n]=new RegExp("^"+this.monthsShort(a,"").replace(".","")+"$","i")),i||this._monthsParse[n]||(r="^"+this.months(a,"")+"|^"+this.monthsShort(a,""),this._monthsParse[n]=new RegExp(r.replace(".",""),"i")),i&&"MMMM"===e&&this._longMonthsParse[n].test(t))return n;if(i&&"MMM"===e&&this._shortMonthsParse[n].test(t))return n;if(!i&&this._monthsParse[n].test(t))return n}},_i.monthsRegex=function(t){return this._monthsParseExact?(d(this,"_monthsRegex")||Vt.call(this),t?this._monthsStrictRegex:this._monthsRegex):(d(this,"_monthsRegex")||(this._monthsRegex=zt),this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex)},_i.monthsShortRegex=function(t){return this._monthsParseExact?(d(this,"_monthsRegex")||Vt.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):(d(this,"_monthsShortRegex")||(this._monthsShortRegex=Nt),this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex)},_i.week=function(t){return jt(t,this._week.dow,this._week.doy).week},_i.firstDayOfYear=function(){return this._week.doy},_i.firstDayOfWeek=function(){return this._week.dow},_i.weekdays=function(t,e){var i=a(this._weekdays)?this._weekdays:this._weekdays[t&&!0!==t&&this._weekdays.isFormat.test(e)?"format":"standalone"];return!0===t?Gt(i,this._week.dow):t?i[t.day()]:i},_i.weekdaysMin=function(t){return!0===t?Gt(this._weekdaysMin,this._week.dow):t?this._weekdaysMin[t.day()]:this._weekdaysMin},_i.weekdaysShort=function(t){return!0===t?Gt(this._weekdaysShort,this._week.dow):t?this._weekdaysShort[t.day()]:this._weekdaysShort},_i.weekdaysParse=function(t,e,i){var n,a,r;if(this._weekdaysParseExact)return function(t,e,i){var n,a,r,o=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],n=0;n<7;++n)r=c([2e3,1]).day(n),this._minWeekdaysParse[n]=this.weekdaysMin(r,"").toLocaleLowerCase(),this._shortWeekdaysParse[n]=this.weekdaysShort(r,"").toLocaleLowerCase(),this._weekdaysParse[n]=this.weekdays(r,"").toLocaleLowerCase();return i?"dddd"===e?-1!==(a=Ct.call(this._weekdaysParse,o))?a:null:"ddd"===e?-1!==(a=Ct.call(this._shortWeekdaysParse,o))?a:null:-1!==(a=Ct.call(this._minWeekdaysParse,o))?a:null:"dddd"===e?-1!==(a=Ct.call(this._weekdaysParse,o))?a:-1!==(a=Ct.call(this._shortWeekdaysParse,o))?a:-1!==(a=Ct.call(this._minWeekdaysParse,o))?a:null:"ddd"===e?-1!==(a=Ct.call(this._shortWeekdaysParse,o))?a:-1!==(a=Ct.call(this._weekdaysParse,o))?a:-1!==(a=Ct.call(this._minWeekdaysParse,o))?a:null:-1!==(a=Ct.call(this._minWeekdaysParse,o))?a:-1!==(a=Ct.call(this._weekdaysParse,o))?a:-1!==(a=Ct.call(this._shortWeekdaysParse,o))?a:null}.call(this,t,e,i);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),n=0;n<7;n++){if(a=c([2e3,1]).day(n),i&&!this._fullWeekdaysParse[n]&&(this._fullWeekdaysParse[n]=new RegExp("^"+this.weekdays(a,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[n]=new RegExp("^"+this.weekdaysShort(a,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[n]=new RegExp("^"+this.weekdaysMin(a,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[n]||(r="^"+this.weekdays(a,"")+"|^"+this.weekdaysShort(a,"")+"|^"+this.weekdaysMin(a,""),this._weekdaysParse[n]=new RegExp(r.replace(".",""),"i")),i&&"dddd"===e&&this._fullWeekdaysParse[n].test(t))return n;if(i&&"ddd"===e&&this._shortWeekdaysParse[n].test(t))return n;if(i&&"dd"===e&&this._minWeekdaysParse[n].test(t))return n;if(!i&&this._weekdaysParse[n].test(t))return n}},_i.weekdaysRegex=function(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Qt.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(d(this,"_weekdaysRegex")||(this._weekdaysRegex=Xt),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)},_i.weekdaysShortRegex=function(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Qt.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(d(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Kt),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},_i.weekdaysMinRegex=function(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Qt.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(d(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Jt),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},_i.isPM=function(t){return"p"===(t+"").toLowerCase().charAt(0)},_i.meridiem=function(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"},de("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,i=1===k(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+i}}),n.lang=S("moment.lang is deprecated. Use moment.locale instead.",de),n.langData=S("moment.langData is deprecated. Use moment.localeData instead.",ce);var Si=Math.abs;function Di(t,e,i,n){var a=qe(e,i);return t._milliseconds+=n*a._milliseconds,t._days+=n*a._days,t._months+=n*a._months,t._bubble()}function Ci(t){return t<0?Math.floor(t):Math.ceil(t)}function Pi(t){return 4800*t/146097}function Ti(t){return 146097*t/4800}function Oi(t){return function(){return this.as(t)}}var Ii=Oi("ms"),Ai=Oi("s"),Fi=Oi("m"),Ri=Oi("h"),Li=Oi("d"),Wi=Oi("w"),Yi=Oi("M"),Ni=Oi("Q"),zi=Oi("y");function Vi(t){return function(){return this.isValid()?this._data[t]:NaN}}var Hi=Vi("milliseconds"),Ei=Vi("seconds"),Bi=Vi("minutes"),ji=Vi("hours"),Ui=Vi("days"),Gi=Vi("months"),qi=Vi("years"),Zi=Math.round,$i={ss:44,s:45,m:45,h:22,d:26,M:11},Xi=Math.abs;function Ki(t){return(t>0)-(t<0)||+t}function Ji(){if(!this.isValid())return this.localeData().invalidDate();var t,e,i=Xi(this._milliseconds)/1e3,n=Xi(this._days),a=Xi(this._months);t=_(i/60),e=_(t/60),i%=60,t%=60;var r=_(a/12),o=a%=12,s=n,l=e,u=t,d=i?i.toFixed(3).replace(/\.?0+$/,""):"",h=this.asSeconds();if(!h)return"P0D";var c=h<0?"-":"",f=Ki(this._months)!==Ki(h)?"-":"",g=Ki(this._days)!==Ki(h)?"-":"",m=Ki(this._milliseconds)!==Ki(h)?"-":"";return c+"P"+(r?f+r+"Y":"")+(o?f+o+"M":"")+(s?g+s+"D":"")+(l||u||d?"T":"")+(l?m+l+"H":"")+(u?m+u+"M":"")+(d?m+d+"S":"")}var Qi=We.prototype;return Qi.isValid=function(){return this._isValid},Qi.abs=function(){var t=this._data;return this._milliseconds=Si(this._milliseconds),this._days=Si(this._days),this._months=Si(this._months),t.milliseconds=Si(t.milliseconds),t.seconds=Si(t.seconds),t.minutes=Si(t.minutes),t.hours=Si(t.hours),t.months=Si(t.months),t.years=Si(t.years),this},Qi.add=function(t,e){return Di(this,t,e,1)},Qi.subtract=function(t,e){return Di(this,t,e,-1)},Qi.as=function(t){if(!this.isValid())return NaN;var e,i,n=this._milliseconds;if("month"===(t=R(t))||"quarter"===t||"year"===t)switch(e=this._days+n/864e5,i=this._months+Pi(e),t){case"month":return i;case"quarter":return i/3;case"year":return i/12}else switch(e=this._days+Math.round(Ti(this._months)),t){case"week":return e/7+n/6048e5;case"day":return e+n/864e5;case"hour":return 24*e+n/36e5;case"minute":return 1440*e+n/6e4;case"second":return 86400*e+n/1e3;case"millisecond":return Math.floor(864e5*e)+n;default:throw new Error("Unknown unit "+t)}},Qi.asMilliseconds=Ii,Qi.asSeconds=Ai,Qi.asMinutes=Fi,Qi.asHours=Ri,Qi.asDays=Li,Qi.asWeeks=Wi,Qi.asMonths=Yi,Qi.asQuarters=Ni,Qi.asYears=zi,Qi.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*k(this._months/12):NaN},Qi._bubble=function(){var t,e,i,n,a,r=this._milliseconds,o=this._days,s=this._months,l=this._data;return r>=0&&o>=0&&s>=0||r<=0&&o<=0&&s<=0||(r+=864e5*Ci(Ti(s)+o),o=0,s=0),l.milliseconds=r%1e3,t=_(r/1e3),l.seconds=t%60,e=_(t/60),l.minutes=e%60,i=_(e/60),l.hours=i%24,o+=_(i/24),a=_(Pi(o)),s+=a,o-=Ci(Ti(a)),n=_(s/12),s%=12,l.days=o,l.months=s,l.years=n,this},Qi.clone=function(){return qe(this)},Qi.get=function(t){return t=R(t),this.isValid()?this[t+"s"]():NaN},Qi.milliseconds=Hi,Qi.seconds=Ei,Qi.minutes=Bi,Qi.hours=ji,Qi.days=Ui,Qi.weeks=function(){return _(this.days()/7)},Qi.months=Gi,Qi.years=qi,Qi.humanize=function(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),i=function(t,e,i){var n=qe(t).abs(),a=Zi(n.as("s")),r=Zi(n.as("m")),o=Zi(n.as("h")),s=Zi(n.as("d")),l=Zi(n.as("M")),u=Zi(n.as("y")),d=a<=$i.ss&&["s",a]||a<$i.s&&["ss",a]||r<=1&&["m"]||r<$i.m&&["mm",r]||o<=1&&["h"]||o<$i.h&&["hh",o]||s<=1&&["d"]||s<$i.d&&["dd",s]||l<=1&&["M"]||l<$i.M&&["MM",l]||u<=1&&["y"]||["yy",u];return d[2]=e,d[3]=+t>0,d[4]=i,function(t,e,i,n,a){return a.relativeTime(e||1,!!i,t,n)}.apply(null,d)}(this,!t,e);return t&&(i=e.pastFuture(+this,i)),e.postformat(i)},Qi.toISOString=Ji,Qi.toString=Ji,Qi.toJSON=Ji,Qi.locale=ei,Qi.localeData=ni,Qi.toIsoString=S("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Ji),Qi.lang=ii,B("X",0,0,"unix"),B("x",0,0,"valueOf"),ut("x",at),ut("X",/[+-]?\d+(\.\d{1,3})?/),ft("X",function(t,e,i){i._d=new Date(1e3*parseFloat(t,10))}),ft("x",function(t,e,i){i._d=new Date(k(t))}),n.version="2.24.0",e=Ie,n.fn=bi,n.min=function(){return Re("isBefore",[].slice.call(arguments,0))},n.max=function(){return Re("isAfter",[].slice.call(arguments,0))},n.now=function(){return Date.now?Date.now():+new Date},n.utc=c,n.unix=function(t){return Ie(1e3*t)},n.months=function(t,e){return wi(t,e,"months")},n.isDate=l,n.locale=de,n.invalid=m,n.duration=qe,n.isMoment=x,n.weekdays=function(t,e,i){return Mi(t,e,i,"weekdays")},n.parseZone=function(){return Ie.apply(null,arguments).parseZone()},n.localeData=ce,n.isDuration=Ye,n.monthsShort=function(t,e){return wi(t,e,"monthsShort")},n.weekdaysMin=function(t,e,i){return Mi(t,e,i,"weekdaysMin")},n.defineLocale=he,n.updateLocale=function(t,e){if(null!=e){var i,n,a=re;null!=(n=ue(t))&&(a=n._config),e=O(a,e),(i=new I(e)).parentLocale=oe[t],oe[t]=i,de(t)}else null!=oe[t]&&(null!=oe[t].parentLocale?oe[t]=oe[t].parentLocale:null!=oe[t]&&delete oe[t]);return oe[t]},n.locales=function(){return D(oe)},n.weekdaysShort=function(t,e,i){return Mi(t,e,i,"weekdaysShort")},n.normalizeUnits=R,n.relativeTimeRounding=function(t){return void 0===t?Zi:"function"==typeof t&&(Zi=t,!0)},n.relativeTimeThreshold=function(t,e){return void 0!==$i[t]&&(void 0===e?$i[t]:($i[t]=e,"s"===t&&($i.ss=e-1),!0))},n.calendarFormat=function(t,e){var i=t.diff(e,"days",!0);return i<-6?"sameElse":i<-1?"lastWeek":i<0?"lastDay":i<1?"sameDay":i<2?"nextDay":i<7?"nextWeek":"sameElse"},n.prototype=bi,n.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},n}()}(tn={exports:{}},tn.exports),tn.exports),an={datetime:"MMM D, YYYY, h:mm:ss a",millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"};si._date.override("function"==typeof nn?{_id:"moment",formats:function(){return an},parse:function(t,e){return"string"==typeof t&&"string"==typeof e?t=nn(t,e):t instanceof nn||(t=nn(t)),t.isValid()?t.valueOf():null},format:function(t,e){return nn(t).format(e)},add:function(t,e,i){return nn(t).add(e,i).valueOf()},diff:function(t,e,i){return nn.duration(nn(t).diff(nn(e))).as(i)},startOf:function(t,e,i){return t=nn(t),"isoWeek"===e?t.isoWeekday(i).valueOf():t.startOf(e).valueOf()},endOf:function(t,e){return nn(t).endOf(e).valueOf()},_create:function(t){return nn(t)}}:{}),ot._set("global",{plugins:{filler:{propagate:!0}}});var rn={dataset:function(t){var e=t.fill,i=t.chart,n=i.getDatasetMeta(e),a=n&&i.isDatasetVisible(e)&&n.dataset._children||[],r=a.length||0;return r?function(t,e){return e<r&&a[e]._view||null}:null},boundary:function(t){var e=t.boundary,i=e?e.x:null,n=e?e.y:null;return function(t){return{x:null===i?t.x:i,y:null===n?t.y:n}}}};function on(t,e,i){var n,a=t._model||{},r=a.fill;if(void 0===r&&(r=!!a.backgroundColor),!1===r||null===r)return!1;if(!0===r)return"origin";if(n=parseFloat(r,10),isFinite(n)&&Math.floor(n)===n)return"-"!==r[0]&&"+"!==r[0]||(n=e+n),!(n===e||n<0||n>=i)&&n;switch(r){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return r;default:return!1}}function sn(t){var e,i=t.el._model||{},n=t.el._scale||{},a=t.fill,r=null;if(isFinite(a))return null;if("start"===a?r=void 0===i.scaleBottom?n.bottom:i.scaleBottom:"end"===a?r=void 0===i.scaleTop?n.top:i.scaleTop:void 0!==i.scaleZero?r=i.scaleZero:n.getBasePosition?r=n.getBasePosition():n.getBasePixel&&(r=n.getBasePixel()),null!=r){if(void 0!==r.x&&void 0!==r.y)return r;if(ut.isFinite(r))return{x:(e=n.isHorizontal())?r:null,y:e?null:r}}return null}function ln(t,e,i){var n,a=t[e].fill,r=[e];if(!i)return a;for(;!1!==a&&-1===r.indexOf(a);){if(!isFinite(a))return a;if(!(n=t[a]))return!1;if(n.visible)return a;r.push(a),a=n.fill}return!1}function un(t){var e=t.fill,i="dataset";return!1===e?null:(isFinite(e)||(i="boundary"),rn[i](t))}function dn(t){return t&&!t.skip}function hn(t,e,i,n,a){var r;if(n&&a){for(t.moveTo(e[0].x,e[0].y),r=1;r<n;++r)ut.canvas.lineTo(t,e[r-1],e[r]);for(t.lineTo(i[a-1].x,i[a-1].y),r=a-1;r>0;--r)ut.canvas.lineTo(t,i[r],i[r-1],!0)}}var cn={id:"filler",afterDatasetsUpdate:function(t,e){var i,n,a,r,o=(t.data.datasets||[]).length,s=e.propagate,l=[];for(n=0;n<o;++n)r=null,(a=(i=t.getDatasetMeta(n)).dataset)&&a._model&&a instanceof Nt.Line&&(r={visible:t.isDatasetVisible(n),fill:on(a,n,o),chart:t,el:a}),i.$filler=r,l.push(r);for(n=0;n<o;++n)(r=l[n])&&(r.fill=ln(l,n,s),r.boundary=sn(r),r.mapper=un(r))},beforeDatasetDraw:function(t,e){var i=e.meta.$filler;if(i){var n=t.ctx,a=i.el,r=a._view,o=a._children||[],s=i.mapper,l=r.backgroundColor||ot.global.defaultColor;s&&l&&o.length&&(ut.canvas.clipArea(n,t.chartArea),function(t,e,i,n,a,r){var o,s,l,u,d,h,c,f=e.length,g=n.spanGaps,m=[],p=[],v=0,y=0;for(t.beginPath(),o=0,s=f+!!r;o<s;++o)d=i(u=e[l=o%f]._view,l,n),h=dn(u),c=dn(d),h&&c?(v=m.push(u),y=p.push(d)):v&&y&&(g?(h&&m.push(u),c&&p.push(d)):(hn(t,m,p,v,y),v=y=0,m=[],p=[]));hn(t,m,p,v,y),t.closePath(),t.fillStyle=a,t.fill()}(n,o,s,r,l,a._loop),ut.canvas.unclipArea(n))}}},fn=ut.noop,gn=ut.valueOrDefault;function mn(t,e){return t.usePointStyle&&t.boxWidth>e?e:t.boxWidth}ot._set("global",{legend:{display:!0,position:"top",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(t,e){var i=e.datasetIndex,n=this.chart,a=n.getDatasetMeta(i);a.hidden=null===a.hidden?!n.data.datasets[i].hidden:null,n.update()},onHover:null,onLeave:null,labels:{boxWidth:40,padding:10,generateLabels:function(t){var e=t.data;return ut.isArray(e.datasets)?e.datasets.map(function(e,i){return{text:e.label,fillStyle:ut.isArray(e.backgroundColor)?e.backgroundColor[0]:e.backgroundColor,hidden:!t.isDatasetVisible(i),lineCap:e.borderCapStyle,lineDash:e.borderDash,lineDashOffset:e.borderDashOffset,lineJoin:e.borderJoinStyle,lineWidth:e.borderWidth,strokeStyle:e.borderColor,pointStyle:e.pointStyle,datasetIndex:i}},this):[]}}},legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');for(var i=0;i<t.data.datasets.length;i++)e.push('<li><span style="background-color:'+t.data.datasets[i].backgroundColor+'"></span>'),t.data.datasets[i].label&&e.push(t.data.datasets[i].label),e.push("</li>");return e.push("</ul>"),e.join("")}});var pn=gt.extend({initialize:function(t){ut.extend(this,t),this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1},beforeUpdate:fn,update:function(t,e,i){var n=this;return n.beforeUpdate(),n.maxWidth=t,n.maxHeight=e,n.margins=i,n.beforeSetDimensions(),n.setDimensions(),n.afterSetDimensions(),n.beforeBuildLabels(),n.buildLabels(),n.afterBuildLabels(),n.beforeFit(),n.fit(),n.afterFit(),n.afterUpdate(),n.minSize},afterUpdate:fn,beforeSetDimensions:fn,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:fn,beforeBuildLabels:fn,buildLabels:function(){var t=this,e=t.options.labels||{},i=ut.callback(e.generateLabels,[t.chart],t)||[];e.filter&&(i=i.filter(function(i){return e.filter(i,t.chart.data)})),t.options.reverse&&i.reverse(),t.legendItems=i},afterBuildLabels:fn,beforeFit:fn,fit:function(){var t=this,e=t.options,i=e.labels,n=e.display,a=t.ctx,r=ut.options._parseFont(i),o=r.size,s=t.legendHitBoxes=[],l=t.minSize,u=t.isHorizontal();if(u?(l.width=t.maxWidth,l.height=n?10:0):(l.width=n?10:0,l.height=t.maxHeight),n)if(a.font=r.string,u){var d=t.lineWidths=[0],h=0;a.textAlign="left",a.textBaseline="top",ut.each(t.legendItems,function(t,e){var n=mn(i,o)+o/2+a.measureText(t.text).width;(0===e||d[d.length-1]+n+i.padding>l.width)&&(h+=o+i.padding,d[d.length-(e>0?0:1)]=i.padding),s[e]={left:0,top:0,width:n,height:o},d[d.length-1]+=n+i.padding}),l.height+=h}else{var c=i.padding,f=t.columnWidths=[],g=i.padding,m=0,p=0,v=o+c;ut.each(t.legendItems,function(t,e){var n=mn(i,o)+o/2+a.measureText(t.text).width;e>0&&p+v>l.height-c&&(g+=m+i.padding,f.push(m),m=0,p=0),m=Math.max(m,n),p+=v,s[e]={left:0,top:0,width:n,height:o}}),g+=m,f.push(m),l.width+=g}t.width=l.width,t.height=l.height},afterFit:fn,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var t=this,e=t.options,i=e.labels,n=ot.global,a=n.defaultColor,r=n.elements.line,o=t.width,s=t.lineWidths;if(e.display){var l,u=t.ctx,d=gn(i.fontColor,n.defaultFontColor),h=ut.options._parseFont(i),c=h.size;u.textAlign="left",u.textBaseline="middle",u.lineWidth=.5,u.strokeStyle=d,u.fillStyle=d,u.font=h.string;var f=mn(i,c),g=t.legendHitBoxes,m=t.isHorizontal();l=m?{x:t.left+(o-s[0])/2+i.padding,y:t.top+i.padding,line:0}:{x:t.left+i.padding,y:t.top+i.padding,line:0};var p=c+i.padding;ut.each(t.legendItems,function(n,d){var h=u.measureText(n.text).width,v=f+c/2+h,y=l.x,b=l.y;m?d>0&&y+v+i.padding>t.left+t.minSize.width&&(b=l.y+=p,l.line++,y=l.x=t.left+(o-s[l.line])/2+i.padding):d>0&&b+p>t.top+t.minSize.height&&(y=l.x=y+t.columnWidths[l.line]+i.padding,b=l.y=t.top+i.padding,l.line++),function(t,i,n){if(!(isNaN(f)||f<=0)){u.save();var o=gn(n.lineWidth,r.borderWidth);if(u.fillStyle=gn(n.fillStyle,a),u.lineCap=gn(n.lineCap,r.borderCapStyle),u.lineDashOffset=gn(n.lineDashOffset,r.borderDashOffset),u.lineJoin=gn(n.lineJoin,r.borderJoinStyle),u.lineWidth=o,u.strokeStyle=gn(n.strokeStyle,a),u.setLineDash&&u.setLineDash(gn(n.lineDash,r.borderDash)),e.labels&&e.labels.usePointStyle){var s=f*Math.SQRT2/2,l=t+f/2,d=i+c/2;ut.canvas.drawPoint(u,n.pointStyle,s,l,d)}else 0!==o&&u.strokeRect(t,i,f,c),u.fillRect(t,i,f,c);u.restore()}}(y,b,n),g[d].left=y,g[d].top=b,function(t,e,i,n){var a=c/2,r=f+a+t,o=e+a;u.fillText(i.text,r,o),i.hidden&&(u.beginPath(),u.lineWidth=2,u.moveTo(r,o),u.lineTo(r+n,o),u.stroke())}(y,b,n,h),m?l.x+=v+i.padding:l.y+=p})}},_getLegendItemAt:function(t,e){var i,n,a,r=this;if(t>=r.left&&t<=r.right&&e>=r.top&&e<=r.bottom)for(a=r.legendHitBoxes,i=0;i<a.length;++i)if(t>=(n=a[i]).left&&t<=n.left+n.width&&e>=n.top&&e<=n.top+n.height)return r.legendItems[i];return null},handleEvent:function(t){var e,i=this,n=i.options,a="mouseup"===t.type?"click":t.type;if("mousemove"===a){if(!n.onHover&&!n.onLeave)return}else{if("click"!==a)return;if(!n.onClick)return}e=i._getLegendItemAt(t.x,t.y),"click"===a?e&&n.onClick&&n.onClick.call(i,t.native,e):(n.onLeave&&e!==i._hoveredItem&&(i._hoveredItem&&n.onLeave.call(i,t.native,i._hoveredItem),i._hoveredItem=e),n.onHover&&e&&n.onHover.call(i,t.native,e))}});function vn(t,e){var i=new pn({ctx:t.ctx,options:e,chart:t});xe.configure(t,i,e),xe.addBox(t,i),t.legend=i}var yn={id:"legend",_element:pn,beforeInit:function(t){var e=t.options.legend;e&&vn(t,e)},beforeUpdate:function(t){var e=t.options.legend,i=t.legend;e?(ut.mergeIf(e,ot.global.legend),i?(xe.configure(t,i,e),i.options=e):vn(t,e)):i&&(xe.removeBox(t,i),delete t.legend)},afterEvent:function(t,e){var i=t.legend;i&&i.handleEvent(e)}},bn=ut.noop;ot._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,padding:10,position:"top",text:"",weight:2e3}});var xn=gt.extend({initialize:function(t){ut.extend(this,t),this.legendHitBoxes=[]},beforeUpdate:bn,update:function(t,e,i){var n=this;return n.beforeUpdate(),n.maxWidth=t,n.maxHeight=e,n.margins=i,n.beforeSetDimensions(),n.setDimensions(),n.afterSetDimensions(),n.beforeBuildLabels(),n.buildLabels(),n.afterBuildLabels(),n.beforeFit(),n.fit(),n.afterFit(),n.afterUpdate(),n.minSize},afterUpdate:bn,beforeSetDimensions:bn,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:bn,beforeBuildLabels:bn,buildLabels:bn,afterBuildLabels:bn,beforeFit:bn,fit:function(){var t=this,e=t.options,i=e.display,n=t.minSize,a=ut.isArray(e.text)?e.text.length:1,r=ut.options._parseFont(e),o=i?a*r.lineHeight+2*e.padding:0;t.isHorizontal()?(n.width=t.maxWidth,n.height=o):(n.width=o,n.height=t.maxHeight),t.width=n.width,t.height=n.height},afterFit:bn,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var t=this,e=t.ctx,i=t.options;if(i.display){var n,a,r,o=ut.options._parseFont(i),s=o.lineHeight,l=s/2+i.padding,u=0,d=t.top,h=t.left,c=t.bottom,f=t.right;e.fillStyle=ut.valueOrDefault(i.fontColor,ot.global.defaultFontColor),e.font=o.string,t.isHorizontal()?(a=h+(f-h)/2,r=d+l,n=f-h):(a="left"===i.position?h+l:f-l,r=d+(c-d)/2,n=c-d,u=Math.PI*("left"===i.position?-.5:.5)),e.save(),e.translate(a,r),e.rotate(u),e.textAlign="center",e.textBaseline="middle";var g=i.text;if(ut.isArray(g))for(var m=0,p=0;p<g.length;++p)e.fillText(g[p],0,m,n),m+=s;else e.fillText(g,0,0,n);e.restore()}}});function _n(t,e){var i=new xn({ctx:t.ctx,options:e,chart:t});xe.configure(t,i,e),xe.addBox(t,i),t.titleBlock=i}var kn={},wn=cn,Mn=yn,Sn={id:"title",_element:xn,beforeInit:function(t){var e=t.options.title;e&&_n(t,e)},beforeUpdate:function(t){var e=t.options.title,i=t.titleBlock;e?(ut.mergeIf(e,ot.global.title),i?(xe.configure(t,i,e),i.options=e):_n(t,e)):i&&(xe.removeBox(t,i),delete t.titleBlock)}};for(var Dn in kn.filler=wn,kn.legend=Mn,kn.title=Sn,ai.helpers=ut,function(){function t(t,e,i){var n;return"string"==typeof t?(n=parseInt(t,10),-1!==t.indexOf("%")&&(n=n/100*e.parentNode[i])):n=t,n}function e(t){return null!=t&&"none"!==t}function i(i,n,a){var r=document.defaultView,o=ut._getParentNode(i),s=r.getComputedStyle(i)[n],l=r.getComputedStyle(o)[n],u=e(s),d=e(l),h=Number.POSITIVE_INFINITY;return u||d?Math.min(u?t(s,i,a):h,d?t(l,o,a):h):"none"}ut.where=function(t,e){if(ut.isArray(t)&&Array.prototype.filter)return t.filter(e);var i=[];return ut.each(t,function(t){e(t)&&i.push(t)}),i},ut.findIndex=Array.prototype.findIndex?function(t,e,i){return t.findIndex(e,i)}:function(t,e,i){i=void 0===i?t:i;for(var n=0,a=t.length;n<a;++n)if(e.call(i,t[n],n,t))return n;return-1},ut.findNextWhere=function(t,e,i){ut.isNullOrUndef(i)&&(i=-1);for(var n=i+1;n<t.length;n++){var a=t[n];if(e(a))return a}},ut.findPreviousWhere=function(t,e,i){ut.isNullOrUndef(i)&&(i=t.length);for(var n=i-1;n>=0;n--){var a=t[n];if(e(a))return a}},ut.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},ut.almostEquals=function(t,e,i){return Math.abs(t-e)<i},ut.almostWhole=function(t,e){var i=Math.round(t);return i-e<t&&i+e>t},ut.max=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.max(t,e)},Number.NEGATIVE_INFINITY)},ut.min=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.min(t,e)},Number.POSITIVE_INFINITY)},ut.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return 0==(t=+t)||isNaN(t)?t:t>0?1:-1},ut.log10=Math.log10?function(t){return Math.log10(t)}:function(t){var e=Math.log(t)*Math.LOG10E,i=Math.round(e);return t===Math.pow(10,i)?i:e},ut.toRadians=function(t){return t*(Math.PI/180)},ut.toDegrees=function(t){return t*(180/Math.PI)},ut._decimalPlaces=function(t){if(ut.isFinite(t)){for(var e=1,i=0;Math.round(t*e)/e!==t;)e*=10,i++;return i}},ut.getAngleFromPoint=function(t,e){var i=e.x-t.x,n=e.y-t.y,a=Math.sqrt(i*i+n*n),r=Math.atan2(n,i);return r<-.5*Math.PI&&(r+=2*Math.PI),{angle:r,distance:a}},ut.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},ut.aliasPixel=function(t){return t%2==0?0:.5},ut._alignPixel=function(t,e,i){var n=t.currentDevicePixelRatio,a=i/2;return Math.round((e-a)*n)/n+a},ut.splineCurve=function(t,e,i,n){var a=t.skip?e:t,r=e,o=i.skip?e:i,s=Math.sqrt(Math.pow(r.x-a.x,2)+Math.pow(r.y-a.y,2)),l=Math.sqrt(Math.pow(o.x-r.x,2)+Math.pow(o.y-r.y,2)),u=s/(s+l),d=l/(s+l),h=n*(u=isNaN(u)?0:u),c=n*(d=isNaN(d)?0:d);return{previous:{x:r.x-h*(o.x-a.x),y:r.y-h*(o.y-a.y)},next:{x:r.x+c*(o.x-a.x),y:r.y+c*(o.y-a.y)}}},ut.EPSILON=Number.EPSILON||1e-14,ut.splineCurveMonotone=function(t){var e,i,n,a,r,o,s,l,u,d=(t||[]).map(function(t){return{model:t._model,deltaK:0,mK:0}}),h=d.length;for(e=0;e<h;++e)if(!(n=d[e]).model.skip){if(i=e>0?d[e-1]:null,(a=e<h-1?d[e+1]:null)&&!a.model.skip){var c=a.model.x-n.model.x;n.deltaK=0!==c?(a.model.y-n.model.y)/c:0}!i||i.model.skip?n.mK=n.deltaK:!a||a.model.skip?n.mK=i.deltaK:this.sign(i.deltaK)!==this.sign(n.deltaK)?n.mK=0:n.mK=(i.deltaK+n.deltaK)/2}for(e=0;e<h-1;++e)n=d[e],a=d[e+1],n.model.skip||a.model.skip||(ut.almostEquals(n.deltaK,0,this.EPSILON)?n.mK=a.mK=0:(r=n.mK/n.deltaK,o=a.mK/n.deltaK,(l=Math.pow(r,2)+Math.pow(o,2))<=9||(s=3/Math.sqrt(l),n.mK=r*s*n.deltaK,a.mK=o*s*n.deltaK)));for(e=0;e<h;++e)(n=d[e]).model.skip||(i=e>0?d[e-1]:null,a=e<h-1?d[e+1]:null,i&&!i.model.skip&&(u=(n.model.x-i.model.x)/3,n.model.controlPointPreviousX=n.model.x-u,n.model.controlPointPreviousY=n.model.y-u*n.mK),a&&!a.model.skip&&(u=(a.model.x-n.model.x)/3,n.model.controlPointNextX=n.model.x+u,n.model.controlPointNextY=n.model.y+u*n.mK))},ut.nextItem=function(t,e,i){return i?e>=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},ut.previousItem=function(t,e,i){return i?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},ut.niceNum=function(t,e){var i=Math.floor(ut.log10(t)),n=t/Math.pow(10,i);return(e?n<1.5?1:n<3?2:n<7?5:10:n<=1?1:n<=2?2:n<=5?5:10)*Math.pow(10,i)},ut.requestAnimFrame="undefined"==typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)},ut.getRelativePosition=function(t,e){var i,n,a=t.originalEvent||t,r=t.target||t.srcElement,o=r.getBoundingClientRect(),s=a.touches;s&&s.length>0?(i=s[0].clientX,n=s[0].clientY):(i=a.clientX,n=a.clientY);var l=parseFloat(ut.getStyle(r,"padding-left")),u=parseFloat(ut.getStyle(r,"padding-top")),d=parseFloat(ut.getStyle(r,"padding-right")),h=parseFloat(ut.getStyle(r,"padding-bottom")),c=o.right-o.left-l-d,f=o.bottom-o.top-u-h;return{x:i=Math.round((i-o.left-l)/c*r.width/e.currentDevicePixelRatio),y:n=Math.round((n-o.top-u)/f*r.height/e.currentDevicePixelRatio)}},ut.getConstraintWidth=function(t){return i(t,"max-width","clientWidth")},ut.getConstraintHeight=function(t){return i(t,"max-height","clientHeight")},ut._calculatePadding=function(t,e,i){return(e=ut.getStyle(t,e)).indexOf("%")>-1?i*parseInt(e,10)/100:parseInt(e,10)},ut._getParentNode=function(t){var e=t.parentNode;return e&&"[object ShadowRoot]"===e.toString()&&(e=e.host),e},ut.getMaximumWidth=function(t){var e=ut._getParentNode(t);if(!e)return t.clientWidth;var i=e.clientWidth,n=i-ut._calculatePadding(e,"padding-left",i)-ut._calculatePadding(e,"padding-right",i),a=ut.getConstraintWidth(t);return isNaN(a)?n:Math.min(n,a)},ut.getMaximumHeight=function(t){var e=ut._getParentNode(t);if(!e)return t.clientHeight;var i=e.clientHeight,n=i-ut._calculatePadding(e,"padding-top",i)-ut._calculatePadding(e,"padding-bottom",i),a=ut.getConstraintHeight(t);return isNaN(a)?n:Math.min(n,a)},ut.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},ut.retinaScale=function(t,e){var i=t.currentDevicePixelRatio=e||"undefined"!=typeof window&&window.devicePixelRatio||1;if(1!==i){var n=t.canvas,a=t.height,r=t.width;n.height=a*i,n.width=r*i,t.ctx.scale(i,i),n.style.height||n.style.width||(n.style.height=a+"px",n.style.width=r+"px")}},ut.fontString=function(t,e,i){return e+" "+t+"px "+i},ut.longestText=function(t,e,i,n){var a=(n=n||{}).data=n.data||{},r=n.garbageCollect=n.garbageCollect||[];n.font!==e&&(a=n.data={},r=n.garbageCollect=[],n.font=e),t.font=e;var o=0;ut.each(i,function(e){null!=e&&!0!==ut.isArray(e)?o=ut.measureText(t,a,r,o,e):ut.isArray(e)&&ut.each(e,function(e){null==e||ut.isArray(e)||(o=ut.measureText(t,a,r,o,e))})});var s=r.length/2;if(s>i.length){for(var l=0;l<s;l++)delete a[r[l]];r.splice(0,s)}return o},ut.measureText=function(t,e,i,n,a){var r=e[a];return r||(r=e[a]=t.measureText(a).width,i.push(a)),r>n&&(n=r),n},ut.numberOfLabelLines=function(t){var e=1;return ut.each(t,function(t){ut.isArray(t)&&t.length>e&&(e=t.length)}),e},ut.color=G?function(t){return t instanceof CanvasGradient&&(t=ot.global.defaultColor),G(t)}:function(t){return console.error("Color.js not found!"),t},ut.getHoverColor=function(t){return t instanceof CanvasPattern||t instanceof CanvasGradient?t:ut.color(t).saturate(.5).darken(.1).rgbString()}}(),ai._adapters=si,ai.Animation=pt,ai.animationService=vt,ai.controllers=ue,ai.DatasetController=kt,ai.defaults=ot,ai.Element=gt,ai.elements=Nt,ai.Interaction=pe,ai.layouts=xe,ai.platform=Ve,ai.plugins=He,ai.Scale=fi,ai.scaleService=Ee,ai.Ticks=li,ai.Tooltip=Je,ai.helpers.each(en,function(t,e){ai.scaleService.registerScaleType(e,t,t._defaults)}),kn)kn.hasOwnProperty(Dn)&&ai.plugins.register(kn[Dn]);ai.platform.initialize();var Cn=ai;return"undefined"!=typeof window&&(window.Chart=ai),ai.Chart=ai,ai.Legend=kn.legend._element,ai.Title=kn.title._element,ai.pluginService=ai.plugins,ai.PluginBase=ai.Element.extend({}),ai.canvasHelpers=ai.helpers.canvas,ai.layoutService=ai.layouts,ai.LinearScaleBase=yi,ai.helpers.each(["Bar","Bubble","Doughnut","Line","PolarArea","Radar","Scatter"],function(t){ai[t]=function(e,i){return new ai(e,ai.helpers.merge(i||{},{type:t.charAt(0).toLowerCase()+t.slice(1)}))}}),Cn}); diff --git a/base_accounting_kit/static/lib/Chart.css b/base_accounting_kit/static/lib/Chart.css new file mode 100644 index 0000000..5e74959 --- /dev/null +++ b/base_accounting_kit/static/lib/Chart.css @@ -0,0 +1,47 @@ +/* + * DOM element rendering detection + * https://davidwalsh.name/detect-node-insertion + */ +@keyframes chartjs-render-animation { + from { opacity: 0.99; } + to { opacity: 1; } +} + +.chartjs-render-monitor { + animation: chartjs-render-animation 0.001s; +} + +/* + * DOM element resizing detection + * https://github.com/marcj/css-element-queries + */ +.chartjs-size-monitor, +.chartjs-size-monitor-expand, +.chartjs-size-monitor-shrink { + position: absolute; + direction: ltr; + left: 0; + top: 0; + right: 0; + bottom: 0; + overflow: hidden; + pointer-events: none; + visibility: hidden; + z-index: -1; +} + +.chartjs-size-monitor-expand > div { + position: absolute; + width: 1000000px; + height: 1000000px; + left: 0; + top: 0; +} + +.chartjs-size-monitor-shrink > div { + position: absolute; + width: 200%; + height: 200%; + left: 0; + top: 0; +} diff --git a/base_accounting_kit/static/lib/Chart.js b/base_accounting_kit/static/lib/Chart.js new file mode 100644 index 0000000..4c50e09 --- /dev/null +++ b/base_accounting_kit/static/lib/Chart.js @@ -0,0 +1,14680 @@ +/*! + * Chart.js v2.8.0 + * https://www.chartjs.org + * (c) 2019 Chart.js Contributors + * Released under the MIT License + */ +(function (global, factory) { +typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(function() { try { return require('moment'); } catch(e) { } }()) : +typeof define === 'function' && define.amd ? define(['require'], function(require) { return factory(function() { try { return require('moment'); } catch(e) { } }()); }) : +(global.Chart = factory(global.moment)); +}(this, (function (moment) { 'use strict'; + +moment = moment && moment.hasOwnProperty('default') ? moment['default'] : moment; + +/* MIT license */ + +var conversions = { + rgb2hsl: rgb2hsl, + rgb2hsv: rgb2hsv, + rgb2hwb: rgb2hwb, + rgb2cmyk: rgb2cmyk, + rgb2keyword: rgb2keyword, + rgb2xyz: rgb2xyz, + rgb2lab: rgb2lab, + rgb2lch: rgb2lch, + + hsl2rgb: hsl2rgb, + hsl2hsv: hsl2hsv, + hsl2hwb: hsl2hwb, + hsl2cmyk: hsl2cmyk, + hsl2keyword: hsl2keyword, + + hsv2rgb: hsv2rgb, + hsv2hsl: hsv2hsl, + hsv2hwb: hsv2hwb, + hsv2cmyk: hsv2cmyk, + hsv2keyword: hsv2keyword, + + hwb2rgb: hwb2rgb, + hwb2hsl: hwb2hsl, + hwb2hsv: hwb2hsv, + hwb2cmyk: hwb2cmyk, + hwb2keyword: hwb2keyword, + + cmyk2rgb: cmyk2rgb, + cmyk2hsl: cmyk2hsl, + cmyk2hsv: cmyk2hsv, + cmyk2hwb: cmyk2hwb, + cmyk2keyword: cmyk2keyword, + + keyword2rgb: keyword2rgb, + keyword2hsl: keyword2hsl, + keyword2hsv: keyword2hsv, + keyword2hwb: keyword2hwb, + keyword2cmyk: keyword2cmyk, + keyword2lab: keyword2lab, + keyword2xyz: keyword2xyz, + + xyz2rgb: xyz2rgb, + xyz2lab: xyz2lab, + xyz2lch: xyz2lch, + + lab2xyz: lab2xyz, + lab2rgb: lab2rgb, + lab2lch: lab2lch, + + lch2lab: lch2lab, + lch2xyz: lch2xyz, + lch2rgb: lch2rgb +}; + + +function rgb2hsl(rgb) { + var r = rgb[0]/255, + g = rgb[1]/255, + b = rgb[2]/255, + min = Math.min(r, g, b), + max = Math.max(r, g, b), + delta = max - min, + h, s, l; + + if (max == min) + h = 0; + else if (r == max) + h = (g - b) / delta; + else if (g == max) + h = 2 + (b - r) / delta; + else if (b == max) + h = 4 + (r - g)/ delta; + + h = Math.min(h * 60, 360); + + if (h < 0) + h += 360; + + l = (min + max) / 2; + + if (max == min) + s = 0; + else if (l <= 0.5) + s = delta / (max + min); + else + s = delta / (2 - max - min); + + return [h, s * 100, l * 100]; +} + +function rgb2hsv(rgb) { + var r = rgb[0], + g = rgb[1], + b = rgb[2], + min = Math.min(r, g, b), + max = Math.max(r, g, b), + delta = max - min, + h, s, v; + + if (max == 0) + s = 0; + else + s = (delta/max * 1000)/10; + + if (max == min) + h = 0; + else if (r == max) + h = (g - b) / delta; + else if (g == max) + h = 2 + (b - r) / delta; + else if (b == max) + h = 4 + (r - g) / delta; + + h = Math.min(h * 60, 360); + + if (h < 0) + h += 360; + + v = ((max / 255) * 1000) / 10; + + return [h, s, v]; +} + +function rgb2hwb(rgb) { + var r = rgb[0], + g = rgb[1], + b = rgb[2], + h = rgb2hsl(rgb)[0], + w = 1/255 * Math.min(r, Math.min(g, b)), + b = 1 - 1/255 * Math.max(r, Math.max(g, b)); + + return [h, w * 100, b * 100]; +} + +function rgb2cmyk(rgb) { + var r = rgb[0] / 255, + g = rgb[1] / 255, + b = rgb[2] / 255, + c, m, y, k; + + k = Math.min(1 - r, 1 - g, 1 - b); + c = (1 - r - k) / (1 - k) || 0; + m = (1 - g - k) / (1 - k) || 0; + y = (1 - b - k) / (1 - k) || 0; + return [c * 100, m * 100, y * 100, k * 100]; +} + +function rgb2keyword(rgb) { + return reverseKeywords[JSON.stringify(rgb)]; +} + +function rgb2xyz(rgb) { + var r = rgb[0] / 255, + g = rgb[1] / 255, + b = rgb[2] / 255; + + // assume sRGB + r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92); + g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92); + b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92); + + var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805); + var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722); + var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505); + + return [x * 100, y *100, z * 100]; +} + +function rgb2lab(rgb) { + var xyz = rgb2xyz(rgb), + x = xyz[0], + y = xyz[1], + z = xyz[2], + l, a, b; + + x /= 95.047; + y /= 100; + z /= 108.883; + + x = x > 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116); + y = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116); + z = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116); + + l = (116 * y) - 16; + a = 500 * (x - y); + b = 200 * (y - z); + + return [l, a, b]; +} + +function rgb2lch(args) { + return lab2lch(rgb2lab(args)); +} + +function hsl2rgb(hsl) { + var h = hsl[0] / 360, + s = hsl[1] / 100, + l = hsl[2] / 100, + t1, t2, t3, rgb, val; + + if (s == 0) { + val = l * 255; + return [val, val, val]; + } + + if (l < 0.5) + t2 = l * (1 + s); + else + t2 = l + s - l * s; + t1 = 2 * l - t2; + + rgb = [0, 0, 0]; + for (var i = 0; i < 3; i++) { + t3 = h + 1 / 3 * - (i - 1); + t3 < 0 && t3++; + t3 > 1 && t3--; + + if (6 * t3 < 1) + val = t1 + (t2 - t1) * 6 * t3; + else if (2 * t3 < 1) + val = t2; + else if (3 * t3 < 2) + val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; + else + val = t1; + + rgb[i] = val * 255; + } + + return rgb; +} + +function hsl2hsv(hsl) { + var h = hsl[0], + s = hsl[1] / 100, + l = hsl[2] / 100, + sv, v; + + if(l === 0) { + // no need to do calc on black + // also avoids divide by 0 error + return [0, 0, 0]; + } + + l *= 2; + s *= (l <= 1) ? l : 2 - l; + v = (l + s) / 2; + sv = (2 * s) / (l + s); + return [h, sv * 100, v * 100]; +} + +function hsl2hwb(args) { + return rgb2hwb(hsl2rgb(args)); +} + +function hsl2cmyk(args) { + return rgb2cmyk(hsl2rgb(args)); +} + +function hsl2keyword(args) { + return rgb2keyword(hsl2rgb(args)); +} + + +function hsv2rgb(hsv) { + var h = hsv[0] / 60, + s = hsv[1] / 100, + v = hsv[2] / 100, + hi = Math.floor(h) % 6; + + var f = h - Math.floor(h), + p = 255 * v * (1 - s), + q = 255 * v * (1 - (s * f)), + t = 255 * v * (1 - (s * (1 - f))), + v = 255 * v; + + switch(hi) { + case 0: + return [v, t, p]; + case 1: + return [q, v, p]; + case 2: + return [p, v, t]; + case 3: + return [p, q, v]; + case 4: + return [t, p, v]; + case 5: + return [v, p, q]; + } +} + +function hsv2hsl(hsv) { + var h = hsv[0], + s = hsv[1] / 100, + v = hsv[2] / 100, + sl, l; + + l = (2 - s) * v; + sl = s * v; + sl /= (l <= 1) ? l : 2 - l; + sl = sl || 0; + l /= 2; + return [h, sl * 100, l * 100]; +} + +function hsv2hwb(args) { + return rgb2hwb(hsv2rgb(args)) +} + +function hsv2cmyk(args) { + return rgb2cmyk(hsv2rgb(args)); +} + +function hsv2keyword(args) { + return rgb2keyword(hsv2rgb(args)); +} + +// http://dev.w3.org/csswg/css-color/#hwb-to-rgb +function hwb2rgb(hwb) { + var h = hwb[0] / 360, + wh = hwb[1] / 100, + bl = hwb[2] / 100, + ratio = wh + bl, + i, v, f, n; + + // wh + bl cant be > 1 + if (ratio > 1) { + wh /= ratio; + bl /= ratio; + } + + i = Math.floor(6 * h); + v = 1 - bl; + f = 6 * h - i; + if ((i & 0x01) != 0) { + f = 1 - f; + } + n = wh + f * (v - wh); // linear interpolation + + switch (i) { + default: + case 6: + case 0: r = v; g = n; b = wh; break; + case 1: r = n; g = v; b = wh; break; + case 2: r = wh; g = v; b = n; break; + case 3: r = wh; g = n; b = v; break; + case 4: r = n; g = wh; b = v; break; + case 5: r = v; g = wh; b = n; break; + } + + return [r * 255, g * 255, b * 255]; +} + +function hwb2hsl(args) { + return rgb2hsl(hwb2rgb(args)); +} + +function hwb2hsv(args) { + return rgb2hsv(hwb2rgb(args)); +} + +function hwb2cmyk(args) { + return rgb2cmyk(hwb2rgb(args)); +} + +function hwb2keyword(args) { + return rgb2keyword(hwb2rgb(args)); +} + +function cmyk2rgb(cmyk) { + var c = cmyk[0] / 100, + m = cmyk[1] / 100, + y = cmyk[2] / 100, + k = cmyk[3] / 100, + r, g, b; + + r = 1 - Math.min(1, c * (1 - k) + k); + g = 1 - Math.min(1, m * (1 - k) + k); + b = 1 - Math.min(1, y * (1 - k) + k); + return [r * 255, g * 255, b * 255]; +} + +function cmyk2hsl(args) { + return rgb2hsl(cmyk2rgb(args)); +} + +function cmyk2hsv(args) { + return rgb2hsv(cmyk2rgb(args)); +} + +function cmyk2hwb(args) { + return rgb2hwb(cmyk2rgb(args)); +} + +function cmyk2keyword(args) { + return rgb2keyword(cmyk2rgb(args)); +} + + +function xyz2rgb(xyz) { + var x = xyz[0] / 100, + y = xyz[1] / 100, + z = xyz[2] / 100, + r, g, b; + + r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986); + g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415); + b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570); + + // assume sRGB + r = r > 0.0031308 ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055) + : r = (r * 12.92); + + g = g > 0.0031308 ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055) + : g = (g * 12.92); + + b = b > 0.0031308 ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055) + : b = (b * 12.92); + + r = Math.min(Math.max(0, r), 1); + g = Math.min(Math.max(0, g), 1); + b = Math.min(Math.max(0, b), 1); + + return [r * 255, g * 255, b * 255]; +} + +function xyz2lab(xyz) { + var x = xyz[0], + y = xyz[1], + z = xyz[2], + l, a, b; + + x /= 95.047; + y /= 100; + z /= 108.883; + + x = x > 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116); + y = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116); + z = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116); + + l = (116 * y) - 16; + a = 500 * (x - y); + b = 200 * (y - z); + + return [l, a, b]; +} + +function xyz2lch(args) { + return lab2lch(xyz2lab(args)); +} + +function lab2xyz(lab) { + var l = lab[0], + a = lab[1], + b = lab[2], + x, y, z, y2; + + if (l <= 8) { + y = (l * 100) / 903.3; + y2 = (7.787 * (y / 100)) + (16 / 116); + } else { + y = 100 * Math.pow((l + 16) / 116, 3); + y2 = Math.pow(y / 100, 1/3); + } + + x = x / 95.047 <= 0.008856 ? x = (95.047 * ((a / 500) + y2 - (16 / 116))) / 7.787 : 95.047 * Math.pow((a / 500) + y2, 3); + + z = z / 108.883 <= 0.008859 ? z = (108.883 * (y2 - (b / 200) - (16 / 116))) / 7.787 : 108.883 * Math.pow(y2 - (b / 200), 3); + + return [x, y, z]; +} + +function lab2lch(lab) { + var l = lab[0], + a = lab[1], + b = lab[2], + hr, h, c; + + hr = Math.atan2(b, a); + h = hr * 360 / 2 / Math.PI; + if (h < 0) { + h += 360; + } + c = Math.sqrt(a * a + b * b); + return [l, c, h]; +} + +function lab2rgb(args) { + return xyz2rgb(lab2xyz(args)); +} + +function lch2lab(lch) { + var l = lch[0], + c = lch[1], + h = lch[2], + a, b, hr; + + hr = h / 360 * 2 * Math.PI; + a = c * Math.cos(hr); + b = c * Math.sin(hr); + return [l, a, b]; +} + +function lch2xyz(args) { + return lab2xyz(lch2lab(args)); +} + +function lch2rgb(args) { + return lab2rgb(lch2lab(args)); +} + +function keyword2rgb(keyword) { + return cssKeywords[keyword]; +} + +function keyword2hsl(args) { + return rgb2hsl(keyword2rgb(args)); +} + +function keyword2hsv(args) { + return rgb2hsv(keyword2rgb(args)); +} + +function keyword2hwb(args) { + return rgb2hwb(keyword2rgb(args)); +} + +function keyword2cmyk(args) { + return rgb2cmyk(keyword2rgb(args)); +} + +function keyword2lab(args) { + return rgb2lab(keyword2rgb(args)); +} + +function keyword2xyz(args) { + return rgb2xyz(keyword2rgb(args)); +} + +var cssKeywords = { + aliceblue: [240,248,255], + antiquewhite: [250,235,215], + aqua: [0,255,255], + aquamarine: [127,255,212], + azure: [240,255,255], + beige: [245,245,220], + bisque: [255,228,196], + black: [0,0,0], + blanchedalmond: [255,235,205], + blue: [0,0,255], + blueviolet: [138,43,226], + brown: [165,42,42], + burlywood: [222,184,135], + cadetblue: [95,158,160], + chartreuse: [127,255,0], + chocolate: [210,105,30], + coral: [255,127,80], + cornflowerblue: [100,149,237], + cornsilk: [255,248,220], + crimson: [220,20,60], + cyan: [0,255,255], + darkblue: [0,0,139], + darkcyan: [0,139,139], + darkgoldenrod: [184,134,11], + darkgray: [169,169,169], + darkgreen: [0,100,0], + darkgrey: [169,169,169], + darkkhaki: [189,183,107], + darkmagenta: [139,0,139], + darkolivegreen: [85,107,47], + darkorange: [255,140,0], + darkorchid: [153,50,204], + darkred: [139,0,0], + darksalmon: [233,150,122], + darkseagreen: [143,188,143], + darkslateblue: [72,61,139], + darkslategray: [47,79,79], + darkslategrey: [47,79,79], + darkturquoise: [0,206,209], + darkviolet: [148,0,211], + deeppink: [255,20,147], + deepskyblue: [0,191,255], + dimgray: [105,105,105], + dimgrey: [105,105,105], + dodgerblue: [30,144,255], + firebrick: [178,34,34], + floralwhite: [255,250,240], + forestgreen: [34,139,34], + fuchsia: [255,0,255], + gainsboro: [220,220,220], + ghostwhite: [248,248,255], + gold: [255,215,0], + goldenrod: [218,165,32], + gray: [128,128,128], + green: [0,128,0], + greenyellow: [173,255,47], + grey: [128,128,128], + honeydew: [240,255,240], + hotpink: [255,105,180], + indianred: [205,92,92], + indigo: [75,0,130], + ivory: [255,255,240], + khaki: [240,230,140], + lavender: [230,230,250], + lavenderblush: [255,240,245], + lawngreen: [124,252,0], + lemonchiffon: [255,250,205], + lightblue: [173,216,230], + lightcoral: [240,128,128], + lightcyan: [224,255,255], + lightgoldenrodyellow: [250,250,210], + lightgray: [211,211,211], + lightgreen: [144,238,144], + lightgrey: [211,211,211], + lightpink: [255,182,193], + lightsalmon: [255,160,122], + lightseagreen: [32,178,170], + lightskyblue: [135,206,250], + lightslategray: [119,136,153], + lightslategrey: [119,136,153], + lightsteelblue: [176,196,222], + lightyellow: [255,255,224], + lime: [0,255,0], + limegreen: [50,205,50], + linen: [250,240,230], + magenta: [255,0,255], + maroon: [128,0,0], + mediumaquamarine: [102,205,170], + mediumblue: [0,0,205], + mediumorchid: [186,85,211], + mediumpurple: [147,112,219], + mediumseagreen: [60,179,113], + mediumslateblue: [123,104,238], + mediumspringgreen: [0,250,154], + mediumturquoise: [72,209,204], + mediumvioletred: [199,21,133], + midnightblue: [25,25,112], + mintcream: [245,255,250], + mistyrose: [255,228,225], + moccasin: [255,228,181], + navajowhite: [255,222,173], + navy: [0,0,128], + oldlace: [253,245,230], + olive: [128,128,0], + olivedrab: [107,142,35], + orange: [255,165,0], + orangered: [255,69,0], + orchid: [218,112,214], + palegoldenrod: [238,232,170], + palegreen: [152,251,152], + paleturquoise: [175,238,238], + palevioletred: [219,112,147], + papayawhip: [255,239,213], + peachpuff: [255,218,185], + peru: [205,133,63], + pink: [255,192,203], + plum: [221,160,221], + powderblue: [176,224,230], + purple: [128,0,128], + rebeccapurple: [102, 51, 153], + red: [255,0,0], + rosybrown: [188,143,143], + royalblue: [65,105,225], + saddlebrown: [139,69,19], + salmon: [250,128,114], + sandybrown: [244,164,96], + seagreen: [46,139,87], + seashell: [255,245,238], + sienna: [160,82,45], + silver: [192,192,192], + skyblue: [135,206,235], + slateblue: [106,90,205], + slategray: [112,128,144], + slategrey: [112,128,144], + snow: [255,250,250], + springgreen: [0,255,127], + steelblue: [70,130,180], + tan: [210,180,140], + teal: [0,128,128], + thistle: [216,191,216], + tomato: [255,99,71], + turquoise: [64,224,208], + violet: [238,130,238], + wheat: [245,222,179], + white: [255,255,255], + whitesmoke: [245,245,245], + yellow: [255,255,0], + yellowgreen: [154,205,50] +}; + +var reverseKeywords = {}; +for (var key in cssKeywords) { + reverseKeywords[JSON.stringify(cssKeywords[key])] = key; +} + +var convert = function() { + return new Converter(); +}; + +for (var func in conversions) { + // export Raw versions + convert[func + "Raw"] = (function(func) { + // accept array or plain args + return function(arg) { + if (typeof arg == "number") + arg = Array.prototype.slice.call(arguments); + return conversions[func](arg); + } + })(func); + + var pair = /(\w+)2(\w+)/.exec(func), + from = pair[1], + to = pair[2]; + + // export rgb2hsl and ["rgb"]["hsl"] + convert[from] = convert[from] || {}; + + convert[from][to] = convert[func] = (function(func) { + return function(arg) { + if (typeof arg == "number") + arg = Array.prototype.slice.call(arguments); + + var val = conversions[func](arg); + if (typeof val == "string" || val === undefined) + return val; // keyword + + for (var i = 0; i < val.length; i++) + val[i] = Math.round(val[i]); + return val; + } + })(func); +} + + +/* Converter does lazy conversion and caching */ +var Converter = function() { + this.convs = {}; +}; + +/* Either get the values for a space or + set the values for a space, depending on args */ +Converter.prototype.routeSpace = function(space, args) { + var values = args[0]; + if (values === undefined) { + // color.rgb() + return this.getValues(space); + } + // color.rgb(10, 10, 10) + if (typeof values == "number") { + values = Array.prototype.slice.call(args); + } + + return this.setValues(space, values); +}; + +/* Set the values for a space, invalidating cache */ +Converter.prototype.setValues = function(space, values) { + this.space = space; + this.convs = {}; + this.convs[space] = values; + return this; +}; + +/* Get the values for a space. If there's already + a conversion for the space, fetch it, otherwise + compute it */ +Converter.prototype.getValues = function(space) { + var vals = this.convs[space]; + if (!vals) { + var fspace = this.space, + from = this.convs[fspace]; + vals = convert[fspace][space](from); + + this.convs[space] = vals; + } + return vals; +}; + +["rgb", "hsl", "hsv", "cmyk", "keyword"].forEach(function(space) { + Converter.prototype[space] = function(vals) { + return this.routeSpace(space, arguments); + }; +}); + +var colorConvert = convert; + +var colorName = {
+ "aliceblue": [240, 248, 255],
+ "antiquewhite": [250, 235, 215],
+ "aqua": [0, 255, 255],
+ "aquamarine": [127, 255, 212],
+ "azure": [240, 255, 255],
+ "beige": [245, 245, 220],
+ "bisque": [255, 228, 196],
+ "black": [0, 0, 0],
+ "blanchedalmond": [255, 235, 205],
+ "blue": [0, 0, 255],
+ "blueviolet": [138, 43, 226],
+ "brown": [165, 42, 42],
+ "burlywood": [222, 184, 135],
+ "cadetblue": [95, 158, 160],
+ "chartreuse": [127, 255, 0],
+ "chocolate": [210, 105, 30],
+ "coral": [255, 127, 80],
+ "cornflowerblue": [100, 149, 237],
+ "cornsilk": [255, 248, 220],
+ "crimson": [220, 20, 60],
+ "cyan": [0, 255, 255],
+ "darkblue": [0, 0, 139],
+ "darkcyan": [0, 139, 139],
+ "darkgoldenrod": [184, 134, 11],
+ "darkgray": [169, 169, 169],
+ "darkgreen": [0, 100, 0],
+ "darkgrey": [169, 169, 169],
+ "darkkhaki": [189, 183, 107],
+ "darkmagenta": [139, 0, 139],
+ "darkolivegreen": [85, 107, 47],
+ "darkorange": [255, 140, 0],
+ "darkorchid": [153, 50, 204],
+ "darkred": [139, 0, 0],
+ "darksalmon": [233, 150, 122],
+ "darkseagreen": [143, 188, 143],
+ "darkslateblue": [72, 61, 139],
+ "darkslategray": [47, 79, 79],
+ "darkslategrey": [47, 79, 79],
+ "darkturquoise": [0, 206, 209],
+ "darkviolet": [148, 0, 211],
+ "deeppink": [255, 20, 147],
+ "deepskyblue": [0, 191, 255],
+ "dimgray": [105, 105, 105],
+ "dimgrey": [105, 105, 105],
+ "dodgerblue": [30, 144, 255],
+ "firebrick": [178, 34, 34],
+ "floralwhite": [255, 250, 240],
+ "forestgreen": [34, 139, 34],
+ "fuchsia": [255, 0, 255],
+ "gainsboro": [220, 220, 220],
+ "ghostwhite": [248, 248, 255],
+ "gold": [255, 215, 0],
+ "goldenrod": [218, 165, 32],
+ "gray": [128, 128, 128],
+ "green": [0, 128, 0],
+ "greenyellow": [173, 255, 47],
+ "grey": [128, 128, 128],
+ "honeydew": [240, 255, 240],
+ "hotpink": [255, 105, 180],
+ "indianred": [205, 92, 92],
+ "indigo": [75, 0, 130],
+ "ivory": [255, 255, 240],
+ "khaki": [240, 230, 140],
+ "lavender": [230, 230, 250],
+ "lavenderblush": [255, 240, 245],
+ "lawngreen": [124, 252, 0],
+ "lemonchiffon": [255, 250, 205],
+ "lightblue": [173, 216, 230],
+ "lightcoral": [240, 128, 128],
+ "lightcyan": [224, 255, 255],
+ "lightgoldenrodyellow": [250, 250, 210],
+ "lightgray": [211, 211, 211],
+ "lightgreen": [144, 238, 144],
+ "lightgrey": [211, 211, 211],
+ "lightpink": [255, 182, 193],
+ "lightsalmon": [255, 160, 122],
+ "lightseagreen": [32, 178, 170],
+ "lightskyblue": [135, 206, 250],
+ "lightslategray": [119, 136, 153],
+ "lightslategrey": [119, 136, 153],
+ "lightsteelblue": [176, 196, 222],
+ "lightyellow": [255, 255, 224],
+ "lime": [0, 255, 0],
+ "limegreen": [50, 205, 50],
+ "linen": [250, 240, 230],
+ "magenta": [255, 0, 255],
+ "maroon": [128, 0, 0],
+ "mediumaquamarine": [102, 205, 170],
+ "mediumblue": [0, 0, 205],
+ "mediumorchid": [186, 85, 211],
+ "mediumpurple": [147, 112, 219],
+ "mediumseagreen": [60, 179, 113],
+ "mediumslateblue": [123, 104, 238],
+ "mediumspringgreen": [0, 250, 154],
+ "mediumturquoise": [72, 209, 204],
+ "mediumvioletred": [199, 21, 133],
+ "midnightblue": [25, 25, 112],
+ "mintcream": [245, 255, 250],
+ "mistyrose": [255, 228, 225],
+ "moccasin": [255, 228, 181],
+ "navajowhite": [255, 222, 173],
+ "navy": [0, 0, 128],
+ "oldlace": [253, 245, 230],
+ "olive": [128, 128, 0],
+ "olivedrab": [107, 142, 35],
+ "orange": [255, 165, 0],
+ "orangered": [255, 69, 0],
+ "orchid": [218, 112, 214],
+ "palegoldenrod": [238, 232, 170],
+ "palegreen": [152, 251, 152],
+ "paleturquoise": [175, 238, 238],
+ "palevioletred": [219, 112, 147],
+ "papayawhip": [255, 239, 213],
+ "peachpuff": [255, 218, 185],
+ "peru": [205, 133, 63],
+ "pink": [255, 192, 203],
+ "plum": [221, 160, 221],
+ "powderblue": [176, 224, 230],
+ "purple": [128, 0, 128],
+ "rebeccapurple": [102, 51, 153],
+ "red": [255, 0, 0],
+ "rosybrown": [188, 143, 143],
+ "royalblue": [65, 105, 225],
+ "saddlebrown": [139, 69, 19],
+ "salmon": [250, 128, 114],
+ "sandybrown": [244, 164, 96],
+ "seagreen": [46, 139, 87],
+ "seashell": [255, 245, 238],
+ "sienna": [160, 82, 45],
+ "silver": [192, 192, 192],
+ "skyblue": [135, 206, 235],
+ "slateblue": [106, 90, 205],
+ "slategray": [112, 128, 144],
+ "slategrey": [112, 128, 144],
+ "snow": [255, 250, 250],
+ "springgreen": [0, 255, 127],
+ "steelblue": [70, 130, 180],
+ "tan": [210, 180, 140],
+ "teal": [0, 128, 128],
+ "thistle": [216, 191, 216],
+ "tomato": [255, 99, 71],
+ "turquoise": [64, 224, 208],
+ "violet": [238, 130, 238],
+ "wheat": [245, 222, 179],
+ "white": [255, 255, 255],
+ "whitesmoke": [245, 245, 245],
+ "yellow": [255, 255, 0],
+ "yellowgreen": [154, 205, 50]
+}; + +/* MIT license */ + + +var colorString = { + getRgba: getRgba, + getHsla: getHsla, + getRgb: getRgb, + getHsl: getHsl, + getHwb: getHwb, + getAlpha: getAlpha, + + hexString: hexString, + rgbString: rgbString, + rgbaString: rgbaString, + percentString: percentString, + percentaString: percentaString, + hslString: hslString, + hslaString: hslaString, + hwbString: hwbString, + keyword: keyword +}; + +function getRgba(string) { + if (!string) { + return; + } + var abbr = /^#([a-fA-F0-9]{3,4})$/i, + hex = /^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i, + rgba = /^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i, + per = /^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i, + keyword = /(\w+)/; + + var rgb = [0, 0, 0], + a = 1, + match = string.match(abbr), + hexAlpha = ""; + if (match) { + match = match[1]; + hexAlpha = match[3]; + for (var i = 0; i < rgb.length; i++) { + rgb[i] = parseInt(match[i] + match[i], 16); + } + if (hexAlpha) { + a = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100; + } + } + else if (match = string.match(hex)) { + hexAlpha = match[2]; + match = match[1]; + for (var i = 0; i < rgb.length; i++) { + rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16); + } + if (hexAlpha) { + a = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100; + } + } + else if (match = string.match(rgba)) { + for (var i = 0; i < rgb.length; i++) { + rgb[i] = parseInt(match[i + 1]); + } + a = parseFloat(match[4]); + } + else if (match = string.match(per)) { + for (var i = 0; i < rgb.length; i++) { + rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55); + } + a = parseFloat(match[4]); + } + else if (match = string.match(keyword)) { + if (match[1] == "transparent") { + return [0, 0, 0, 0]; + } + rgb = colorName[match[1]]; + if (!rgb) { + return; + } + } + + for (var i = 0; i < rgb.length; i++) { + rgb[i] = scale(rgb[i], 0, 255); + } + if (!a && a != 0) { + a = 1; + } + else { + a = scale(a, 0, 1); + } + rgb[3] = a; + return rgb; +} + +function getHsla(string) { + if (!string) { + return; + } + var hsl = /^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/; + var match = string.match(hsl); + if (match) { + var alpha = parseFloat(match[4]); + var h = scale(parseInt(match[1]), 0, 360), + s = scale(parseFloat(match[2]), 0, 100), + l = scale(parseFloat(match[3]), 0, 100), + a = scale(isNaN(alpha) ? 1 : alpha, 0, 1); + return [h, s, l, a]; + } +} + +function getHwb(string) { + if (!string) { + return; + } + var hwb = /^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/; + var match = string.match(hwb); + if (match) { + var alpha = parseFloat(match[4]); + var h = scale(parseInt(match[1]), 0, 360), + w = scale(parseFloat(match[2]), 0, 100), + b = scale(parseFloat(match[3]), 0, 100), + a = scale(isNaN(alpha) ? 1 : alpha, 0, 1); + return [h, w, b, a]; + } +} + +function getRgb(string) { + var rgba = getRgba(string); + return rgba && rgba.slice(0, 3); +} + +function getHsl(string) { + var hsla = getHsla(string); + return hsla && hsla.slice(0, 3); +} + +function getAlpha(string) { + var vals = getRgba(string); + if (vals) { + return vals[3]; + } + else if (vals = getHsla(string)) { + return vals[3]; + } + else if (vals = getHwb(string)) { + return vals[3]; + } +} + +// generators +function hexString(rgba, a) { + var a = (a !== undefined && rgba.length === 3) ? a : rgba[3]; + return "#" + hexDouble(rgba[0]) + + hexDouble(rgba[1]) + + hexDouble(rgba[2]) + + ( + (a >= 0 && a < 1) + ? hexDouble(Math.round(a * 255)) + : "" + ); +} + +function rgbString(rgba, alpha) { + if (alpha < 1 || (rgba[3] && rgba[3] < 1)) { + return rgbaString(rgba, alpha); + } + return "rgb(" + rgba[0] + ", " + rgba[1] + ", " + rgba[2] + ")"; +} + +function rgbaString(rgba, alpha) { + if (alpha === undefined) { + alpha = (rgba[3] !== undefined ? rgba[3] : 1); + } + return "rgba(" + rgba[0] + ", " + rgba[1] + ", " + rgba[2] + + ", " + alpha + ")"; +} + +function percentString(rgba, alpha) { + if (alpha < 1 || (rgba[3] && rgba[3] < 1)) { + return percentaString(rgba, alpha); + } + var r = Math.round(rgba[0]/255 * 100), + g = Math.round(rgba[1]/255 * 100), + b = Math.round(rgba[2]/255 * 100); + + return "rgb(" + r + "%, " + g + "%, " + b + "%)"; +} + +function percentaString(rgba, alpha) { + var r = Math.round(rgba[0]/255 * 100), + g = Math.round(rgba[1]/255 * 100), + b = Math.round(rgba[2]/255 * 100); + return "rgba(" + r + "%, " + g + "%, " + b + "%, " + (alpha || rgba[3] || 1) + ")"; +} + +function hslString(hsla, alpha) { + if (alpha < 1 || (hsla[3] && hsla[3] < 1)) { + return hslaString(hsla, alpha); + } + return "hsl(" + hsla[0] + ", " + hsla[1] + "%, " + hsla[2] + "%)"; +} + +function hslaString(hsla, alpha) { + if (alpha === undefined) { + alpha = (hsla[3] !== undefined ? hsla[3] : 1); + } + return "hsla(" + hsla[0] + ", " + hsla[1] + "%, " + hsla[2] + "%, " + + alpha + ")"; +} + +// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax +// (hwb have alpha optional & 1 is default value) +function hwbString(hwb, alpha) { + if (alpha === undefined) { + alpha = (hwb[3] !== undefined ? hwb[3] : 1); + } + return "hwb(" + hwb[0] + ", " + hwb[1] + "%, " + hwb[2] + "%" + + (alpha !== undefined && alpha !== 1 ? ", " + alpha : "") + ")"; +} + +function keyword(rgb) { + return reverseNames[rgb.slice(0, 3)]; +} + +// helpers +function scale(num, min, max) { + return Math.min(Math.max(min, num), max); +} + +function hexDouble(num) { + var str = num.toString(16).toUpperCase(); + return (str.length < 2) ? "0" + str : str; +} + + +//create a list of reverse color names +var reverseNames = {}; +for (var name in colorName) { + reverseNames[colorName[name]] = name; +} + +/* MIT license */ + + + +var Color = function (obj) { + if (obj instanceof Color) { + return obj; + } + if (!(this instanceof Color)) { + return new Color(obj); + } + + this.valid = false; + this.values = { + rgb: [0, 0, 0], + hsl: [0, 0, 0], + hsv: [0, 0, 0], + hwb: [0, 0, 0], + cmyk: [0, 0, 0, 0], + alpha: 1 + }; + + // parse Color() argument + var vals; + if (typeof obj === 'string') { + vals = colorString.getRgba(obj); + if (vals) { + this.setValues('rgb', vals); + } else if (vals = colorString.getHsla(obj)) { + this.setValues('hsl', vals); + } else if (vals = colorString.getHwb(obj)) { + this.setValues('hwb', vals); + } + } else if (typeof obj === 'object') { + vals = obj; + if (vals.r !== undefined || vals.red !== undefined) { + this.setValues('rgb', vals); + } else if (vals.l !== undefined || vals.lightness !== undefined) { + this.setValues('hsl', vals); + } else if (vals.v !== undefined || vals.value !== undefined) { + this.setValues('hsv', vals); + } else if (vals.w !== undefined || vals.whiteness !== undefined) { + this.setValues('hwb', vals); + } else if (vals.c !== undefined || vals.cyan !== undefined) { + this.setValues('cmyk', vals); + } + } +}; + +Color.prototype = { + isValid: function () { + return this.valid; + }, + rgb: function () { + return this.setSpace('rgb', arguments); + }, + hsl: function () { + return this.setSpace('hsl', arguments); + }, + hsv: function () { + return this.setSpace('hsv', arguments); + }, + hwb: function () { + return this.setSpace('hwb', arguments); + }, + cmyk: function () { + return this.setSpace('cmyk', arguments); + }, + + rgbArray: function () { + return this.values.rgb; + }, + hslArray: function () { + return this.values.hsl; + }, + hsvArray: function () { + return this.values.hsv; + }, + hwbArray: function () { + var values = this.values; + if (values.alpha !== 1) { + return values.hwb.concat([values.alpha]); + } + return values.hwb; + }, + cmykArray: function () { + return this.values.cmyk; + }, + rgbaArray: function () { + var values = this.values; + return values.rgb.concat([values.alpha]); + }, + hslaArray: function () { + var values = this.values; + return values.hsl.concat([values.alpha]); + }, + alpha: function (val) { + if (val === undefined) { + return this.values.alpha; + } + this.setValues('alpha', val); + return this; + }, + + red: function (val) { + return this.setChannel('rgb', 0, val); + }, + green: function (val) { + return this.setChannel('rgb', 1, val); + }, + blue: function (val) { + return this.setChannel('rgb', 2, val); + }, + hue: function (val) { + if (val) { + val %= 360; + val = val < 0 ? 360 + val : val; + } + return this.setChannel('hsl', 0, val); + }, + saturation: function (val) { + return this.setChannel('hsl', 1, val); + }, + lightness: function (val) { + return this.setChannel('hsl', 2, val); + }, + saturationv: function (val) { + return this.setChannel('hsv', 1, val); + }, + whiteness: function (val) { + return this.setChannel('hwb', 1, val); + }, + blackness: function (val) { + return this.setChannel('hwb', 2, val); + }, + value: function (val) { + return this.setChannel('hsv', 2, val); + }, + cyan: function (val) { + return this.setChannel('cmyk', 0, val); + }, + magenta: function (val) { + return this.setChannel('cmyk', 1, val); + }, + yellow: function (val) { + return this.setChannel('cmyk', 2, val); + }, + black: function (val) { + return this.setChannel('cmyk', 3, val); + }, + + hexString: function () { + return colorString.hexString(this.values.rgb); + }, + rgbString: function () { + return colorString.rgbString(this.values.rgb, this.values.alpha); + }, + rgbaString: function () { + return colorString.rgbaString(this.values.rgb, this.values.alpha); + }, + percentString: function () { + return colorString.percentString(this.values.rgb, this.values.alpha); + }, + hslString: function () { + return colorString.hslString(this.values.hsl, this.values.alpha); + }, + hslaString: function () { + return colorString.hslaString(this.values.hsl, this.values.alpha); + }, + hwbString: function () { + return colorString.hwbString(this.values.hwb, this.values.alpha); + }, + keyword: function () { + return colorString.keyword(this.values.rgb, this.values.alpha); + }, + + rgbNumber: function () { + var rgb = this.values.rgb; + return (rgb[0] << 16) | (rgb[1] << 8) | rgb[2]; + }, + + luminosity: function () { + // http://www.w3.org/TR/WCAG20/#relativeluminancedef + var rgb = this.values.rgb; + var lum = []; + for (var i = 0; i < rgb.length; i++) { + var chan = rgb[i] / 255; + lum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4); + } + return 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2]; + }, + + contrast: function (color2) { + // http://www.w3.org/TR/WCAG20/#contrast-ratiodef + var lum1 = this.luminosity(); + var lum2 = color2.luminosity(); + if (lum1 > lum2) { + return (lum1 + 0.05) / (lum2 + 0.05); + } + return (lum2 + 0.05) / (lum1 + 0.05); + }, + + level: function (color2) { + var contrastRatio = this.contrast(color2); + if (contrastRatio >= 7.1) { + return 'AAA'; + } + + return (contrastRatio >= 4.5) ? 'AA' : ''; + }, + + dark: function () { + // YIQ equation from http://24ways.org/2010/calculating-color-contrast + var rgb = this.values.rgb; + var yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000; + return yiq < 128; + }, + + light: function () { + return !this.dark(); + }, + + negate: function () { + var rgb = []; + for (var i = 0; i < 3; i++) { + rgb[i] = 255 - this.values.rgb[i]; + } + this.setValues('rgb', rgb); + return this; + }, + + lighten: function (ratio) { + var hsl = this.values.hsl; + hsl[2] += hsl[2] * ratio; + this.setValues('hsl', hsl); + return this; + }, + + darken: function (ratio) { + var hsl = this.values.hsl; + hsl[2] -= hsl[2] * ratio; + this.setValues('hsl', hsl); + return this; + }, + + saturate: function (ratio) { + var hsl = this.values.hsl; + hsl[1] += hsl[1] * ratio; + this.setValues('hsl', hsl); + return this; + }, + + desaturate: function (ratio) { + var hsl = this.values.hsl; + hsl[1] -= hsl[1] * ratio; + this.setValues('hsl', hsl); + return this; + }, + + whiten: function (ratio) { + var hwb = this.values.hwb; + hwb[1] += hwb[1] * ratio; + this.setValues('hwb', hwb); + return this; + }, + + blacken: function (ratio) { + var hwb = this.values.hwb; + hwb[2] += hwb[2] * ratio; + this.setValues('hwb', hwb); + return this; + }, + + greyscale: function () { + var rgb = this.values.rgb; + // http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale + var val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11; + this.setValues('rgb', [val, val, val]); + return this; + }, + + clearer: function (ratio) { + var alpha = this.values.alpha; + this.setValues('alpha', alpha - (alpha * ratio)); + return this; + }, + + opaquer: function (ratio) { + var alpha = this.values.alpha; + this.setValues('alpha', alpha + (alpha * ratio)); + return this; + }, + + rotate: function (degrees) { + var hsl = this.values.hsl; + var hue = (hsl[0] + degrees) % 360; + hsl[0] = hue < 0 ? 360 + hue : hue; + this.setValues('hsl', hsl); + return this; + }, + + /** + * Ported from sass implementation in C + * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209 + */ + mix: function (mixinColor, weight) { + var color1 = this; + var color2 = mixinColor; + var p = weight === undefined ? 0.5 : weight; + + var w = 2 * p - 1; + var a = color1.alpha() - color2.alpha(); + + var w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0; + var w2 = 1 - w1; + + return this + .rgb( + w1 * color1.red() + w2 * color2.red(), + w1 * color1.green() + w2 * color2.green(), + w1 * color1.blue() + w2 * color2.blue() + ) + .alpha(color1.alpha() * p + color2.alpha() * (1 - p)); + }, + + toJSON: function () { + return this.rgb(); + }, + + clone: function () { + // NOTE(SB): using node-clone creates a dependency to Buffer when using browserify, + // making the final build way to big to embed in Chart.js. So let's do it manually, + // assuming that values to clone are 1 dimension arrays containing only numbers, + // except 'alpha' which is a number. + var result = new Color(); + var source = this.values; + var target = result.values; + var value, type; + + for (var prop in source) { + if (source.hasOwnProperty(prop)) { + value = source[prop]; + type = ({}).toString.call(value); + if (type === '[object Array]') { + target[prop] = value.slice(0); + } else if (type === '[object Number]') { + target[prop] = value; + } else { + console.error('unexpected color value:', value); + } + } + } + + return result; + } +}; + +Color.prototype.spaces = { + rgb: ['red', 'green', 'blue'], + hsl: ['hue', 'saturation', 'lightness'], + hsv: ['hue', 'saturation', 'value'], + hwb: ['hue', 'whiteness', 'blackness'], + cmyk: ['cyan', 'magenta', 'yellow', 'black'] +}; + +Color.prototype.maxes = { + rgb: [255, 255, 255], + hsl: [360, 100, 100], + hsv: [360, 100, 100], + hwb: [360, 100, 100], + cmyk: [100, 100, 100, 100] +}; + +Color.prototype.getValues = function (space) { + var values = this.values; + var vals = {}; + + for (var i = 0; i < space.length; i++) { + vals[space.charAt(i)] = values[space][i]; + } + + if (values.alpha !== 1) { + vals.a = values.alpha; + } + + // {r: 255, g: 255, b: 255, a: 0.4} + return vals; +}; + +Color.prototype.setValues = function (space, vals) { + var values = this.values; + var spaces = this.spaces; + var maxes = this.maxes; + var alpha = 1; + var i; + + this.valid = true; + + if (space === 'alpha') { + alpha = vals; + } else if (vals.length) { + // [10, 10, 10] + values[space] = vals.slice(0, space.length); + alpha = vals[space.length]; + } else if (vals[space.charAt(0)] !== undefined) { + // {r: 10, g: 10, b: 10} + for (i = 0; i < space.length; i++) { + values[space][i] = vals[space.charAt(i)]; + } + + alpha = vals.a; + } else if (vals[spaces[space][0]] !== undefined) { + // {red: 10, green: 10, blue: 10} + var chans = spaces[space]; + + for (i = 0; i < space.length; i++) { + values[space][i] = vals[chans[i]]; + } + + alpha = vals.alpha; + } + + values.alpha = Math.max(0, Math.min(1, (alpha === undefined ? values.alpha : alpha))); + + if (space === 'alpha') { + return false; + } + + var capped; + + // cap values of the space prior converting all values + for (i = 0; i < space.length; i++) { + capped = Math.max(0, Math.min(maxes[space][i], values[space][i])); + values[space][i] = Math.round(capped); + } + + // convert to all the other color spaces + for (var sname in spaces) { + if (sname !== space) { + values[sname] = colorConvert[space][sname](values[space]); + } + } + + return true; +}; + +Color.prototype.setSpace = function (space, args) { + var vals = args[0]; + + if (vals === undefined) { + // color.rgb() + return this.getValues(space); + } + + // color.rgb(10, 10, 10) + if (typeof vals === 'number') { + vals = Array.prototype.slice.call(args); + } + + this.setValues(space, vals); + return this; +}; + +Color.prototype.setChannel = function (space, index, val) { + var svalues = this.values[space]; + if (val === undefined) { + // color.red() + return svalues[index]; + } else if (val === svalues[index]) { + // color.red(color.red()) + return this; + } + + // color.red(100) + svalues[index] = val; + this.setValues(space, svalues); + + return this; +}; + +if (typeof window !== 'undefined') { + window.Color = Color; +} + +var chartjsColor = Color; + +/** + * @namespace Chart.helpers + */ +var helpers = { + /** + * An empty function that can be used, for example, for optional callback. + */ + noop: function() {}, + + /** + * Returns a unique id, sequentially generated from a global variable. + * @returns {number} + * @function + */ + uid: (function() { + var id = 0; + return function() { + return id++; + }; + }()), + + /** + * Returns true if `value` is neither null nor undefined, else returns false. + * @param {*} value - The value to test. + * @returns {boolean} + * @since 2.7.0 + */ + isNullOrUndef: function(value) { + return value === null || typeof value === 'undefined'; + }, + + /** + * Returns true if `value` is an array (including typed arrays), else returns false. + * @param {*} value - The value to test. + * @returns {boolean} + * @function + */ + isArray: function(value) { + if (Array.isArray && Array.isArray(value)) { + return true; + } + var type = Object.prototype.toString.call(value); + if (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') { + return true; + } + return false; + }, + + /** + * Returns true if `value` is an object (excluding null), else returns false. + * @param {*} value - The value to test. + * @returns {boolean} + * @since 2.7.0 + */ + isObject: function(value) { + return value !== null && Object.prototype.toString.call(value) === '[object Object]'; + }, + + /** + * Returns true if `value` is a finite number, else returns false + * @param {*} value - The value to test. + * @returns {boolean} + */ + isFinite: function(value) { + return (typeof value === 'number' || value instanceof Number) && isFinite(value); + }, + + /** + * Returns `value` if defined, else returns `defaultValue`. + * @param {*} value - The value to return if defined. + * @param {*} defaultValue - The value to return if `value` is undefined. + * @returns {*} + */ + valueOrDefault: function(value, defaultValue) { + return typeof value === 'undefined' ? defaultValue : value; + }, + + /** + * Returns value at the given `index` in array if defined, else returns `defaultValue`. + * @param {Array} value - The array to lookup for value at `index`. + * @param {number} index - The index in `value` to lookup for value. + * @param {*} defaultValue - The value to return if `value[index]` is undefined. + * @returns {*} + */ + valueAtIndexOrDefault: function(value, index, defaultValue) { + return helpers.valueOrDefault(helpers.isArray(value) ? value[index] : value, defaultValue); + }, + + /** + * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the + * value returned by `fn`. If `fn` is not a function, this method returns undefined. + * @param {function} fn - The function to call. + * @param {Array|undefined|null} args - The arguments with which `fn` should be called. + * @param {object} [thisArg] - The value of `this` provided for the call to `fn`. + * @returns {*} + */ + callback: function(fn, args, thisArg) { + if (fn && typeof fn.call === 'function') { + return fn.apply(thisArg, args); + } + }, + + /** + * Note(SB) for performance sake, this method should only be used when loopable type + * is unknown or in none intensive code (not called often and small loopable). Else + * it's preferable to use a regular for() loop and save extra function calls. + * @param {object|Array} loopable - The object or array to be iterated. + * @param {function} fn - The function to call for each item. + * @param {object} [thisArg] - The value of `this` provided for the call to `fn`. + * @param {boolean} [reverse] - If true, iterates backward on the loopable. + */ + each: function(loopable, fn, thisArg, reverse) { + var i, len, keys; + if (helpers.isArray(loopable)) { + len = loopable.length; + if (reverse) { + for (i = len - 1; i >= 0; i--) { + fn.call(thisArg, loopable[i], i); + } + } else { + for (i = 0; i < len; i++) { + fn.call(thisArg, loopable[i], i); + } + } + } else if (helpers.isObject(loopable)) { + keys = Object.keys(loopable); + len = keys.length; + for (i = 0; i < len; i++) { + fn.call(thisArg, loopable[keys[i]], keys[i]); + } + } + }, + + /** + * Returns true if the `a0` and `a1` arrays have the same content, else returns false. + * @see https://stackoverflow.com/a/14853974 + * @param {Array} a0 - The array to compare + * @param {Array} a1 - The array to compare + * @returns {boolean} + */ + arrayEquals: function(a0, a1) { + var i, ilen, v0, v1; + + if (!a0 || !a1 || a0.length !== a1.length) { + return false; + } + + for (i = 0, ilen = a0.length; i < ilen; ++i) { + v0 = a0[i]; + v1 = a1[i]; + + if (v0 instanceof Array && v1 instanceof Array) { + if (!helpers.arrayEquals(v0, v1)) { + return false; + } + } else if (v0 !== v1) { + // NOTE: two different object instances will never be equal: {x:20} != {x:20} + return false; + } + } + + return true; + }, + + /** + * Returns a deep copy of `source` without keeping references on objects and arrays. + * @param {*} source - The value to clone. + * @returns {*} + */ + clone: function(source) { + if (helpers.isArray(source)) { + return source.map(helpers.clone); + } + + if (helpers.isObject(source)) { + var target = {}; + var keys = Object.keys(source); + var klen = keys.length; + var k = 0; + + for (; k < klen; ++k) { + target[keys[k]] = helpers.clone(source[keys[k]]); + } + + return target; + } + + return source; + }, + + /** + * The default merger when Chart.helpers.merge is called without merger option. + * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback. + * @private + */ + _merger: function(key, target, source, options) { + var tval = target[key]; + var sval = source[key]; + + if (helpers.isObject(tval) && helpers.isObject(sval)) { + helpers.merge(tval, sval, options); + } else { + target[key] = helpers.clone(sval); + } + }, + + /** + * Merges source[key] in target[key] only if target[key] is undefined. + * @private + */ + _mergerIf: function(key, target, source) { + var tval = target[key]; + var sval = source[key]; + + if (helpers.isObject(tval) && helpers.isObject(sval)) { + helpers.mergeIf(tval, sval); + } else if (!target.hasOwnProperty(key)) { + target[key] = helpers.clone(sval); + } + }, + + /** + * Recursively deep copies `source` properties into `target` with the given `options`. + * IMPORTANT: `target` is not cloned and will be updated with `source` properties. + * @param {object} target - The target object in which all sources are merged into. + * @param {object|object[]} source - Object(s) to merge into `target`. + * @param {object} [options] - Merging options: + * @param {function} [options.merger] - The merge method (key, target, source, options) + * @returns {object} The `target` object. + */ + merge: function(target, source, options) { + var sources = helpers.isArray(source) ? source : [source]; + var ilen = sources.length; + var merge, i, keys, klen, k; + + if (!helpers.isObject(target)) { + return target; + } + + options = options || {}; + merge = options.merger || helpers._merger; + + for (i = 0; i < ilen; ++i) { + source = sources[i]; + if (!helpers.isObject(source)) { + continue; + } + + keys = Object.keys(source); + for (k = 0, klen = keys.length; k < klen; ++k) { + merge(keys[k], target, source, options); + } + } + + return target; + }, + + /** + * Recursively deep copies `source` properties into `target` *only* if not defined in target. + * IMPORTANT: `target` is not cloned and will be updated with `source` properties. + * @param {object} target - The target object in which all sources are merged into. + * @param {object|object[]} source - Object(s) to merge into `target`. + * @returns {object} The `target` object. + */ + mergeIf: function(target, source) { + return helpers.merge(target, source, {merger: helpers._mergerIf}); + }, + + /** + * Applies the contents of two or more objects together into the first object. + * @param {object} target - The target object in which all objects are merged into. + * @param {object} arg1 - Object containing additional properties to merge in target. + * @param {object} argN - Additional objects containing properties to merge in target. + * @returns {object} The `target` object. + */ + extend: function(target) { + var setFn = function(value, key) { + target[key] = value; + }; + for (var i = 1, ilen = arguments.length; i < ilen; ++i) { + helpers.each(arguments[i], setFn); + } + return target; + }, + + /** + * Basic javascript inheritance based on the model created in Backbone.js + */ + inherits: function(extensions) { + var me = this; + var ChartElement = (extensions && extensions.hasOwnProperty('constructor')) ? extensions.constructor : function() { + return me.apply(this, arguments); + }; + + var Surrogate = function() { + this.constructor = ChartElement; + }; + + Surrogate.prototype = me.prototype; + ChartElement.prototype = new Surrogate(); + ChartElement.extend = helpers.inherits; + + if (extensions) { + helpers.extend(ChartElement.prototype, extensions); + } + + ChartElement.__super__ = me.prototype; + return ChartElement; + } +}; + +var helpers_core = helpers; + +// DEPRECATIONS + +/** + * Provided for backward compatibility, use Chart.helpers.callback instead. + * @function Chart.helpers.callCallback + * @deprecated since version 2.6.0 + * @todo remove at version 3 + * @private + */ +helpers.callCallback = helpers.callback; + +/** + * Provided for backward compatibility, use Array.prototype.indexOf instead. + * Array.prototype.indexOf compatibility: Chrome, Opera, Safari, FF1.5+, IE9+ + * @function Chart.helpers.indexOf + * @deprecated since version 2.7.0 + * @todo remove at version 3 + * @private + */ +helpers.indexOf = function(array, item, fromIndex) { + return Array.prototype.indexOf.call(array, item, fromIndex); +}; + +/** + * Provided for backward compatibility, use Chart.helpers.valueOrDefault instead. + * @function Chart.helpers.getValueOrDefault + * @deprecated since version 2.7.0 + * @todo remove at version 3 + * @private + */ +helpers.getValueOrDefault = helpers.valueOrDefault; + +/** + * Provided for backward compatibility, use Chart.helpers.valueAtIndexOrDefault instead. + * @function Chart.helpers.getValueAtIndexOrDefault + * @deprecated since version 2.7.0 + * @todo remove at version 3 + * @private + */ +helpers.getValueAtIndexOrDefault = helpers.valueAtIndexOrDefault; + +/** + * Easing functions adapted from Robert Penner's easing equations. + * @namespace Chart.helpers.easingEffects + * @see http://www.robertpenner.com/easing/ + */ +var effects = { + linear: function(t) { + return t; + }, + + easeInQuad: function(t) { + return t * t; + }, + + easeOutQuad: function(t) { + return -t * (t - 2); + }, + + easeInOutQuad: function(t) { + if ((t /= 0.5) < 1) { + return 0.5 * t * t; + } + return -0.5 * ((--t) * (t - 2) - 1); + }, + + easeInCubic: function(t) { + return t * t * t; + }, + + easeOutCubic: function(t) { + return (t = t - 1) * t * t + 1; + }, + + easeInOutCubic: function(t) { + if ((t /= 0.5) < 1) { + return 0.5 * t * t * t; + } + return 0.5 * ((t -= 2) * t * t + 2); + }, + + easeInQuart: function(t) { + return t * t * t * t; + }, + + easeOutQuart: function(t) { + return -((t = t - 1) * t * t * t - 1); + }, + + easeInOutQuart: function(t) { + if ((t /= 0.5) < 1) { + return 0.5 * t * t * t * t; + } + return -0.5 * ((t -= 2) * t * t * t - 2); + }, + + easeInQuint: function(t) { + return t * t * t * t * t; + }, + + easeOutQuint: function(t) { + return (t = t - 1) * t * t * t * t + 1; + }, + + easeInOutQuint: function(t) { + if ((t /= 0.5) < 1) { + return 0.5 * t * t * t * t * t; + } + return 0.5 * ((t -= 2) * t * t * t * t + 2); + }, + + easeInSine: function(t) { + return -Math.cos(t * (Math.PI / 2)) + 1; + }, + + easeOutSine: function(t) { + return Math.sin(t * (Math.PI / 2)); + }, + + easeInOutSine: function(t) { + return -0.5 * (Math.cos(Math.PI * t) - 1); + }, + + easeInExpo: function(t) { + return (t === 0) ? 0 : Math.pow(2, 10 * (t - 1)); + }, + + easeOutExpo: function(t) { + return (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1; + }, + + easeInOutExpo: function(t) { + if (t === 0) { + return 0; + } + if (t === 1) { + return 1; + } + if ((t /= 0.5) < 1) { + return 0.5 * Math.pow(2, 10 * (t - 1)); + } + return 0.5 * (-Math.pow(2, -10 * --t) + 2); + }, + + easeInCirc: function(t) { + if (t >= 1) { + return t; + } + return -(Math.sqrt(1 - t * t) - 1); + }, + + easeOutCirc: function(t) { + return Math.sqrt(1 - (t = t - 1) * t); + }, + + easeInOutCirc: function(t) { + if ((t /= 0.5) < 1) { + return -0.5 * (Math.sqrt(1 - t * t) - 1); + } + return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1); + }, + + easeInElastic: function(t) { + var s = 1.70158; + var p = 0; + var a = 1; + if (t === 0) { + return 0; + } + if (t === 1) { + return 1; + } + if (!p) { + p = 0.3; + } + if (a < 1) { + a = 1; + s = p / 4; + } else { + s = p / (2 * Math.PI) * Math.asin(1 / a); + } + return -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p)); + }, + + easeOutElastic: function(t) { + var s = 1.70158; + var p = 0; + var a = 1; + if (t === 0) { + return 0; + } + if (t === 1) { + return 1; + } + if (!p) { + p = 0.3; + } + if (a < 1) { + a = 1; + s = p / 4; + } else { + s = p / (2 * Math.PI) * Math.asin(1 / a); + } + return a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1; + }, + + easeInOutElastic: function(t) { + var s = 1.70158; + var p = 0; + var a = 1; + if (t === 0) { + return 0; + } + if ((t /= 0.5) === 2) { + return 1; + } + if (!p) { + p = 0.45; + } + if (a < 1) { + a = 1; + s = p / 4; + } else { + s = p / (2 * Math.PI) * Math.asin(1 / a); + } + if (t < 1) { + return -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p)); + } + return a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p) * 0.5 + 1; + }, + easeInBack: function(t) { + var s = 1.70158; + return t * t * ((s + 1) * t - s); + }, + + easeOutBack: function(t) { + var s = 1.70158; + return (t = t - 1) * t * ((s + 1) * t + s) + 1; + }, + + easeInOutBack: function(t) { + var s = 1.70158; + if ((t /= 0.5) < 1) { + return 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s)); + } + return 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2); + }, + + easeInBounce: function(t) { + return 1 - effects.easeOutBounce(1 - t); + }, + + easeOutBounce: function(t) { + if (t < (1 / 2.75)) { + return 7.5625 * t * t; + } + if (t < (2 / 2.75)) { + return 7.5625 * (t -= (1.5 / 2.75)) * t + 0.75; + } + if (t < (2.5 / 2.75)) { + return 7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375; + } + return 7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375; + }, + + easeInOutBounce: function(t) { + if (t < 0.5) { + return effects.easeInBounce(t * 2) * 0.5; + } + return effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5; + } +}; + +var helpers_easing = { + effects: effects +}; + +// DEPRECATIONS + +/** + * Provided for backward compatibility, use Chart.helpers.easing.effects instead. + * @function Chart.helpers.easingEffects + * @deprecated since version 2.7.0 + * @todo remove at version 3 + * @private + */ +helpers_core.easingEffects = effects; + +var PI = Math.PI; +var RAD_PER_DEG = PI / 180; +var DOUBLE_PI = PI * 2; +var HALF_PI = PI / 2; +var QUARTER_PI = PI / 4; +var TWO_THIRDS_PI = PI * 2 / 3; + +/** + * @namespace Chart.helpers.canvas + */ +var exports$1 = { + /** + * Clears the entire canvas associated to the given `chart`. + * @param {Chart} chart - The chart for which to clear the canvas. + */ + clear: function(chart) { + chart.ctx.clearRect(0, 0, chart.width, chart.height); + }, + + /** + * Creates a "path" for a rectangle with rounded corners at position (x, y) with a + * given size (width, height) and the same `radius` for all corners. + * @param {CanvasRenderingContext2D} ctx - The canvas 2D Context. + * @param {number} x - The x axis of the coordinate for the rectangle starting point. + * @param {number} y - The y axis of the coordinate for the rectangle starting point. + * @param {number} width - The rectangle's width. + * @param {number} height - The rectangle's height. + * @param {number} radius - The rounded amount (in pixels) for the four corners. + * @todo handle `radius` as top-left, top-right, bottom-right, bottom-left array/object? + */ + roundedRect: function(ctx, x, y, width, height, radius) { + if (radius) { + var r = Math.min(radius, height / 2, width / 2); + var left = x + r; + var top = y + r; + var right = x + width - r; + var bottom = y + height - r; + + ctx.moveTo(x, top); + if (left < right && top < bottom) { + ctx.arc(left, top, r, -PI, -HALF_PI); + ctx.arc(right, top, r, -HALF_PI, 0); + ctx.arc(right, bottom, r, 0, HALF_PI); + ctx.arc(left, bottom, r, HALF_PI, PI); + } else if (left < right) { + ctx.moveTo(left, y); + ctx.arc(right, top, r, -HALF_PI, HALF_PI); + ctx.arc(left, top, r, HALF_PI, PI + HALF_PI); + } else if (top < bottom) { + ctx.arc(left, top, r, -PI, 0); + ctx.arc(left, bottom, r, 0, PI); + } else { + ctx.arc(left, top, r, -PI, PI); + } + ctx.closePath(); + ctx.moveTo(x, y); + } else { + ctx.rect(x, y, width, height); + } + }, + + drawPoint: function(ctx, style, radius, x, y, rotation) { + var type, xOffset, yOffset, size, cornerRadius; + var rad = (rotation || 0) * RAD_PER_DEG; + + if (style && typeof style === 'object') { + type = style.toString(); + if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') { + ctx.drawImage(style, x - style.width / 2, y - style.height / 2, style.width, style.height); + return; + } + } + + if (isNaN(radius) || radius <= 0) { + return; + } + + ctx.beginPath(); + + switch (style) { + // Default includes circle + default: + ctx.arc(x, y, radius, 0, DOUBLE_PI); + ctx.closePath(); + break; + case 'triangle': + ctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius); + rad += TWO_THIRDS_PI; + ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius); + rad += TWO_THIRDS_PI; + ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius); + ctx.closePath(); + break; + case 'rectRounded': + // NOTE: the rounded rect implementation changed to use `arc` instead of + // `quadraticCurveTo` since it generates better results when rect is + // almost a circle. 0.516 (instead of 0.5) produces results with visually + // closer proportion to the previous impl and it is inscribed in the + // circle with `radius`. For more details, see the following PRs: + // https://github.com/chartjs/Chart.js/issues/5597 + // https://github.com/chartjs/Chart.js/issues/5858 + cornerRadius = radius * 0.516; + size = radius - cornerRadius; + xOffset = Math.cos(rad + QUARTER_PI) * size; + yOffset = Math.sin(rad + QUARTER_PI) * size; + ctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI); + ctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad); + ctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI); + ctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI); + ctx.closePath(); + break; + case 'rect': + if (!rotation) { + size = Math.SQRT1_2 * radius; + ctx.rect(x - size, y - size, 2 * size, 2 * size); + break; + } + rad += QUARTER_PI; + /* falls through */ + case 'rectRot': + xOffset = Math.cos(rad) * radius; + yOffset = Math.sin(rad) * radius; + ctx.moveTo(x - xOffset, y - yOffset); + ctx.lineTo(x + yOffset, y - xOffset); + ctx.lineTo(x + xOffset, y + yOffset); + ctx.lineTo(x - yOffset, y + xOffset); + ctx.closePath(); + break; + case 'crossRot': + rad += QUARTER_PI; + /* falls through */ + case 'cross': + xOffset = Math.cos(rad) * radius; + yOffset = Math.sin(rad) * radius; + ctx.moveTo(x - xOffset, y - yOffset); + ctx.lineTo(x + xOffset, y + yOffset); + ctx.moveTo(x + yOffset, y - xOffset); + ctx.lineTo(x - yOffset, y + xOffset); + break; + case 'star': + xOffset = Math.cos(rad) * radius; + yOffset = Math.sin(rad) * radius; + ctx.moveTo(x - xOffset, y - yOffset); + ctx.lineTo(x + xOffset, y + yOffset); + ctx.moveTo(x + yOffset, y - xOffset); + ctx.lineTo(x - yOffset, y + xOffset); + rad += QUARTER_PI; + xOffset = Math.cos(rad) * radius; + yOffset = Math.sin(rad) * radius; + ctx.moveTo(x - xOffset, y - yOffset); + ctx.lineTo(x + xOffset, y + yOffset); + ctx.moveTo(x + yOffset, y - xOffset); + ctx.lineTo(x - yOffset, y + xOffset); + break; + case 'line': + xOffset = Math.cos(rad) * radius; + yOffset = Math.sin(rad) * radius; + ctx.moveTo(x - xOffset, y - yOffset); + ctx.lineTo(x + xOffset, y + yOffset); + break; + case 'dash': + ctx.moveTo(x, y); + ctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius); + break; + } + + ctx.fill(); + ctx.stroke(); + }, + + /** + * Returns true if the point is inside the rectangle + * @param {object} point - The point to test + * @param {object} area - The rectangle + * @returns {boolean} + * @private + */ + _isPointInArea: function(point, area) { + var epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error. + + return point.x > area.left - epsilon && point.x < area.right + epsilon && + point.y > area.top - epsilon && point.y < area.bottom + epsilon; + }, + + clipArea: function(ctx, area) { + ctx.save(); + ctx.beginPath(); + ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top); + ctx.clip(); + }, + + unclipArea: function(ctx) { + ctx.restore(); + }, + + lineTo: function(ctx, previous, target, flip) { + var stepped = target.steppedLine; + if (stepped) { + if (stepped === 'middle') { + var midpoint = (previous.x + target.x) / 2.0; + ctx.lineTo(midpoint, flip ? target.y : previous.y); + ctx.lineTo(midpoint, flip ? previous.y : target.y); + } else if ((stepped === 'after' && !flip) || (stepped !== 'after' && flip)) { + ctx.lineTo(previous.x, target.y); + } else { + ctx.lineTo(target.x, previous.y); + } + ctx.lineTo(target.x, target.y); + return; + } + + if (!target.tension) { + ctx.lineTo(target.x, target.y); + return; + } + + ctx.bezierCurveTo( + flip ? previous.controlPointPreviousX : previous.controlPointNextX, + flip ? previous.controlPointPreviousY : previous.controlPointNextY, + flip ? target.controlPointNextX : target.controlPointPreviousX, + flip ? target.controlPointNextY : target.controlPointPreviousY, + target.x, + target.y); + } +}; + +var helpers_canvas = exports$1; + +// DEPRECATIONS + +/** + * Provided for backward compatibility, use Chart.helpers.canvas.clear instead. + * @namespace Chart.helpers.clear + * @deprecated since version 2.7.0 + * @todo remove at version 3 + * @private + */ +helpers_core.clear = exports$1.clear; + +/** + * Provided for backward compatibility, use Chart.helpers.canvas.roundedRect instead. + * @namespace Chart.helpers.drawRoundedRectangle + * @deprecated since version 2.7.0 + * @todo remove at version 3 + * @private + */ +helpers_core.drawRoundedRectangle = function(ctx) { + ctx.beginPath(); + exports$1.roundedRect.apply(exports$1, arguments); +}; + +var defaults = { + /** + * @private + */ + _set: function(scope, values) { + return helpers_core.merge(this[scope] || (this[scope] = {}), values); + } +}; + +defaults._set('global', { + defaultColor: 'rgba(0,0,0,0.1)', + defaultFontColor: '#666', + defaultFontFamily: "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif", + defaultFontSize: 12, + defaultFontStyle: 'normal', + defaultLineHeight: 1.2, + showLines: true +}); + +var core_defaults = defaults; + +var valueOrDefault = helpers_core.valueOrDefault; + +/** + * Converts the given font object into a CSS font string. + * @param {object} font - A font object. + * @return {string} The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font + * @private + */ +function toFontString(font) { + if (!font || helpers_core.isNullOrUndef(font.size) || helpers_core.isNullOrUndef(font.family)) { + return null; + } + + return (font.style ? font.style + ' ' : '') + + (font.weight ? font.weight + ' ' : '') + + font.size + 'px ' + + font.family; +} + +/** + * @alias Chart.helpers.options + * @namespace + */ +var helpers_options = { + /** + * Converts the given line height `value` in pixels for a specific font `size`. + * @param {number|string} value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em'). + * @param {number} size - The font size (in pixels) used to resolve relative `value`. + * @returns {number} The effective line height in pixels (size * 1.2 if value is invalid). + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height + * @since 2.7.0 + */ + toLineHeight: function(value, size) { + var matches = ('' + value).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/); + if (!matches || matches[1] === 'normal') { + return size * 1.2; + } + + value = +matches[2]; + + switch (matches[3]) { + case 'px': + return value; + case '%': + value /= 100; + break; + default: + break; + } + + return size * value; + }, + + /** + * Converts the given value into a padding object with pre-computed width/height. + * @param {number|object} value - If a number, set the value to all TRBL component, + * else, if and object, use defined properties and sets undefined ones to 0. + * @returns {object} The padding values (top, right, bottom, left, width, height) + * @since 2.7.0 + */ + toPadding: function(value) { + var t, r, b, l; + + if (helpers_core.isObject(value)) { + t = +value.top || 0; + r = +value.right || 0; + b = +value.bottom || 0; + l = +value.left || 0; + } else { + t = r = b = l = +value || 0; + } + + return { + top: t, + right: r, + bottom: b, + left: l, + height: t + b, + width: l + r + }; + }, + + /** + * Parses font options and returns the font object. + * @param {object} options - A object that contains font options to be parsed. + * @return {object} The font object. + * @todo Support font.* options and renamed to toFont(). + * @private + */ + _parseFont: function(options) { + var globalDefaults = core_defaults.global; + var size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize); + var font = { + family: valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily), + lineHeight: helpers_core.options.toLineHeight(valueOrDefault(options.lineHeight, globalDefaults.defaultLineHeight), size), + size: size, + style: valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle), + weight: null, + string: '' + }; + + font.string = toFontString(font); + return font; + }, + + /** + * Evaluates the given `inputs` sequentially and returns the first defined value. + * @param {Array} inputs - An array of values, falling back to the last value. + * @param {object} [context] - If defined and the current value is a function, the value + * is called with `context` as first argument and the result becomes the new input. + * @param {number} [index] - If defined and the current value is an array, the value + * at `index` become the new input. + * @since 2.7.0 + */ + resolve: function(inputs, context, index) { + var i, ilen, value; + + for (i = 0, ilen = inputs.length; i < ilen; ++i) { + value = inputs[i]; + if (value === undefined) { + continue; + } + if (context !== undefined && typeof value === 'function') { + value = value(context); + } + if (index !== undefined && helpers_core.isArray(value)) { + value = value[index]; + } + if (value !== undefined) { + return value; + } + } + } +}; + +var helpers$1 = helpers_core; +var easing = helpers_easing; +var canvas = helpers_canvas; +var options = helpers_options; +helpers$1.easing = easing; +helpers$1.canvas = canvas; +helpers$1.options = options; + +function interpolate(start, view, model, ease) { + var keys = Object.keys(model); + var i, ilen, key, actual, origin, target, type, c0, c1; + + for (i = 0, ilen = keys.length; i < ilen; ++i) { + key = keys[i]; + + target = model[key]; + + // if a value is added to the model after pivot() has been called, the view + // doesn't contain it, so let's initialize the view to the target value. + if (!view.hasOwnProperty(key)) { + view[key] = target; + } + + actual = view[key]; + + if (actual === target || key[0] === '_') { + continue; + } + + if (!start.hasOwnProperty(key)) { + start[key] = actual; + } + + origin = start[key]; + + type = typeof target; + + if (type === typeof origin) { + if (type === 'string') { + c0 = chartjsColor(origin); + if (c0.valid) { + c1 = chartjsColor(target); + if (c1.valid) { + view[key] = c1.mix(c0, ease).rgbString(); + continue; + } + } + } else if (helpers$1.isFinite(origin) && helpers$1.isFinite(target)) { + view[key] = origin + (target - origin) * ease; + continue; + } + } + + view[key] = target; + } +} + +var Element = function(configuration) { + helpers$1.extend(this, configuration); + this.initialize.apply(this, arguments); +}; + +helpers$1.extend(Element.prototype, { + + initialize: function() { + this.hidden = false; + }, + + pivot: function() { + var me = this; + if (!me._view) { + me._view = helpers$1.clone(me._model); + } + me._start = {}; + return me; + }, + + transition: function(ease) { + var me = this; + var model = me._model; + var start = me._start; + var view = me._view; + + // No animation -> No Transition + if (!model || ease === 1) { + me._view = model; + me._start = null; + return me; + } + + if (!view) { + view = me._view = {}; + } + + if (!start) { + start = me._start = {}; + } + + interpolate(start, view, model, ease); + + return me; + }, + + tooltipPosition: function() { + return { + x: this._model.x, + y: this._model.y + }; + }, + + hasValue: function() { + return helpers$1.isNumber(this._model.x) && helpers$1.isNumber(this._model.y); + } +}); + +Element.extend = helpers$1.inherits; + +var core_element = Element; + +var exports$2 = core_element.extend({ + chart: null, // the animation associated chart instance + currentStep: 0, // the current animation step + numSteps: 60, // default number of steps + easing: '', // the easing to use for this animation + render: null, // render function used by the animation service + + onAnimationProgress: null, // user specified callback to fire on each step of the animation + onAnimationComplete: null, // user specified callback to fire when the animation finishes +}); + +var core_animation = exports$2; + +// DEPRECATIONS + +/** + * Provided for backward compatibility, use Chart.Animation instead + * @prop Chart.Animation#animationObject + * @deprecated since version 2.6.0 + * @todo remove at version 3 + */ +Object.defineProperty(exports$2.prototype, 'animationObject', { + get: function() { + return this; + } +}); + +/** + * Provided for backward compatibility, use Chart.Animation#chart instead + * @prop Chart.Animation#chartInstance + * @deprecated since version 2.6.0 + * @todo remove at version 3 + */ +Object.defineProperty(exports$2.prototype, 'chartInstance', { + get: function() { + return this.chart; + }, + set: function(value) { + this.chart = value; + } +}); + +core_defaults._set('global', { + animation: { + duration: 1000, + easing: 'easeOutQuart', + onProgress: helpers$1.noop, + onComplete: helpers$1.noop + } +}); + +var core_animations = { + animations: [], + request: null, + + /** + * @param {Chart} chart - The chart to animate. + * @param {Chart.Animation} animation - The animation that we will animate. + * @param {number} duration - The animation duration in ms. + * @param {boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions + */ + addAnimation: function(chart, animation, duration, lazy) { + var animations = this.animations; + var i, ilen; + + animation.chart = chart; + animation.startTime = Date.now(); + animation.duration = duration; + + if (!lazy) { + chart.animating = true; + } + + for (i = 0, ilen = animations.length; i < ilen; ++i) { + if (animations[i].chart === chart) { + animations[i] = animation; + return; + } + } + + animations.push(animation); + + // If there are no animations queued, manually kickstart a digest, for lack of a better word + if (animations.length === 1) { + this.requestAnimationFrame(); + } + }, + + cancelAnimation: function(chart) { + var index = helpers$1.findIndex(this.animations, function(animation) { + return animation.chart === chart; + }); + + if (index !== -1) { + this.animations.splice(index, 1); + chart.animating = false; + } + }, + + requestAnimationFrame: function() { + var me = this; + if (me.request === null) { + // Skip animation frame requests until the active one is executed. + // This can happen when processing mouse events, e.g. 'mousemove' + // and 'mouseout' events will trigger multiple renders. + me.request = helpers$1.requestAnimFrame.call(window, function() { + me.request = null; + me.startDigest(); + }); + } + }, + + /** + * @private + */ + startDigest: function() { + var me = this; + + me.advance(); + + // Do we have more stuff to animate? + if (me.animations.length > 0) { + me.requestAnimationFrame(); + } + }, + + /** + * @private + */ + advance: function() { + var animations = this.animations; + var animation, chart, numSteps, nextStep; + var i = 0; + + // 1 animation per chart, so we are looping charts here + while (i < animations.length) { + animation = animations[i]; + chart = animation.chart; + numSteps = animation.numSteps; + + // Make sure that currentStep starts at 1 + // https://github.com/chartjs/Chart.js/issues/6104 + nextStep = Math.floor((Date.now() - animation.startTime) / animation.duration * numSteps) + 1; + animation.currentStep = Math.min(nextStep, numSteps); + + helpers$1.callback(animation.render, [chart, animation], chart); + helpers$1.callback(animation.onAnimationProgress, [animation], chart); + + if (animation.currentStep >= numSteps) { + helpers$1.callback(animation.onAnimationComplete, [animation], chart); + chart.animating = false; + animations.splice(i, 1); + } else { + ++i; + } + } + } +}; + +var resolve = helpers$1.options.resolve; + +var arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift']; + +/** + * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice', + * 'unshift') and notify the listener AFTER the array has been altered. Listeners are + * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments. + */ +function listenArrayEvents(array, listener) { + if (array._chartjs) { + array._chartjs.listeners.push(listener); + return; + } + + Object.defineProperty(array, '_chartjs', { + configurable: true, + enumerable: false, + value: { + listeners: [listener] + } + }); + + arrayEvents.forEach(function(key) { + var method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1); + var base = array[key]; + + Object.defineProperty(array, key, { + configurable: true, + enumerable: false, + value: function() { + var args = Array.prototype.slice.call(arguments); + var res = base.apply(this, args); + + helpers$1.each(array._chartjs.listeners, function(object) { + if (typeof object[method] === 'function') { + object[method].apply(object, args); + } + }); + + return res; + } + }); + }); +} + +/** + * Removes the given array event listener and cleanup extra attached properties (such as + * the _chartjs stub and overridden methods) if array doesn't have any more listeners. + */ +function unlistenArrayEvents(array, listener) { + var stub = array._chartjs; + if (!stub) { + return; + } + + var listeners = stub.listeners; + var index = listeners.indexOf(listener); + if (index !== -1) { + listeners.splice(index, 1); + } + + if (listeners.length > 0) { + return; + } + + arrayEvents.forEach(function(key) { + delete array[key]; + }); + + delete array._chartjs; +} + +// Base class for all dataset controllers (line, bar, etc) +var DatasetController = function(chart, datasetIndex) { + this.initialize(chart, datasetIndex); +}; + +helpers$1.extend(DatasetController.prototype, { + + /** + * Element type used to generate a meta dataset (e.g. Chart.element.Line). + * @type {Chart.core.element} + */ + datasetElementType: null, + + /** + * Element type used to generate a meta data (e.g. Chart.element.Point). + * @type {Chart.core.element} + */ + dataElementType: null, + + initialize: function(chart, datasetIndex) { + var me = this; + me.chart = chart; + me.index = datasetIndex; + me.linkScales(); + me.addElements(); + }, + + updateIndex: function(datasetIndex) { + this.index = datasetIndex; + }, + + linkScales: function() { + var me = this; + var meta = me.getMeta(); + var dataset = me.getDataset(); + + if (meta.xAxisID === null || !(meta.xAxisID in me.chart.scales)) { + meta.xAxisID = dataset.xAxisID || me.chart.options.scales.xAxes[0].id; + } + if (meta.yAxisID === null || !(meta.yAxisID in me.chart.scales)) { + meta.yAxisID = dataset.yAxisID || me.chart.options.scales.yAxes[0].id; + } + }, + + getDataset: function() { + return this.chart.data.datasets[this.index]; + }, + + getMeta: function() { + return this.chart.getDatasetMeta(this.index); + }, + + getScaleForId: function(scaleID) { + return this.chart.scales[scaleID]; + }, + + /** + * @private + */ + _getValueScaleId: function() { + return this.getMeta().yAxisID; + }, + + /** + * @private + */ + _getIndexScaleId: function() { + return this.getMeta().xAxisID; + }, + + /** + * @private + */ + _getValueScale: function() { + return this.getScaleForId(this._getValueScaleId()); + }, + + /** + * @private + */ + _getIndexScale: function() { + return this.getScaleForId(this._getIndexScaleId()); + }, + + reset: function() { + this.update(true); + }, + + /** + * @private + */ + destroy: function() { + if (this._data) { + unlistenArrayEvents(this._data, this); + } + }, + + createMetaDataset: function() { + var me = this; + var type = me.datasetElementType; + return type && new type({ + _chart: me.chart, + _datasetIndex: me.index + }); + }, + + createMetaData: function(index) { + var me = this; + var type = me.dataElementType; + return type && new type({ + _chart: me.chart, + _datasetIndex: me.index, + _index: index + }); + }, + + addElements: function() { + var me = this; + var meta = me.getMeta(); + var data = me.getDataset().data || []; + var metaData = meta.data; + var i, ilen; + + for (i = 0, ilen = data.length; i < ilen; ++i) { + metaData[i] = metaData[i] || me.createMetaData(i); + } + + meta.dataset = meta.dataset || me.createMetaDataset(); + }, + + addElementAndReset: function(index) { + var element = this.createMetaData(index); + this.getMeta().data.splice(index, 0, element); + this.updateElement(element, index, true); + }, + + buildOrUpdateElements: function() { + var me = this; + var dataset = me.getDataset(); + var data = dataset.data || (dataset.data = []); + + // In order to correctly handle data addition/deletion animation (an thus simulate + // real-time charts), we need to monitor these data modifications and synchronize + // the internal meta data accordingly. + if (me._data !== data) { + if (me._data) { + // This case happens when the user replaced the data array instance. + unlistenArrayEvents(me._data, me); + } + + if (data && Object.isExtensible(data)) { + listenArrayEvents(data, me); + } + me._data = data; + } + + // Re-sync meta data in case the user replaced the data array or if we missed + // any updates and so make sure that we handle number of datapoints changing. + me.resyncElements(); + }, + + update: helpers$1.noop, + + transition: function(easingValue) { + var meta = this.getMeta(); + var elements = meta.data || []; + var ilen = elements.length; + var i = 0; + + for (; i < ilen; ++i) { + elements[i].transition(easingValue); + } + + if (meta.dataset) { + meta.dataset.transition(easingValue); + } + }, + + draw: function() { + var meta = this.getMeta(); + var elements = meta.data || []; + var ilen = elements.length; + var i = 0; + + if (meta.dataset) { + meta.dataset.draw(); + } + + for (; i < ilen; ++i) { + elements[i].draw(); + } + }, + + removeHoverStyle: function(element) { + helpers$1.merge(element._model, element.$previousStyle || {}); + delete element.$previousStyle; + }, + + setHoverStyle: function(element) { + var dataset = this.chart.data.datasets[element._datasetIndex]; + var index = element._index; + var custom = element.custom || {}; + var model = element._model; + var getHoverColor = helpers$1.getHoverColor; + + element.$previousStyle = { + backgroundColor: model.backgroundColor, + borderColor: model.borderColor, + borderWidth: model.borderWidth + }; + + model.backgroundColor = resolve([custom.hoverBackgroundColor, dataset.hoverBackgroundColor, getHoverColor(model.backgroundColor)], undefined, index); + model.borderColor = resolve([custom.hoverBorderColor, dataset.hoverBorderColor, getHoverColor(model.borderColor)], undefined, index); + model.borderWidth = resolve([custom.hoverBorderWidth, dataset.hoverBorderWidth, model.borderWidth], undefined, index); + }, + + /** + * @private + */ + resyncElements: function() { + var me = this; + var meta = me.getMeta(); + var data = me.getDataset().data; + var numMeta = meta.data.length; + var numData = data.length; + + if (numData < numMeta) { + meta.data.splice(numData, numMeta - numData); + } else if (numData > numMeta) { + me.insertElements(numMeta, numData - numMeta); + } + }, + + /** + * @private + */ + insertElements: function(start, count) { + for (var i = 0; i < count; ++i) { + this.addElementAndReset(start + i); + } + }, + + /** + * @private + */ + onDataPush: function() { + var count = arguments.length; + this.insertElements(this.getDataset().data.length - count, count); + }, + + /** + * @private + */ + onDataPop: function() { + this.getMeta().data.pop(); + }, + + /** + * @private + */ + onDataShift: function() { + this.getMeta().data.shift(); + }, + + /** + * @private + */ + onDataSplice: function(start, count) { + this.getMeta().data.splice(start, count); + this.insertElements(start, arguments.length - 2); + }, + + /** + * @private + */ + onDataUnshift: function() { + this.insertElements(0, arguments.length); + } +}); + +DatasetController.extend = helpers$1.inherits; + +var core_datasetController = DatasetController; + +core_defaults._set('global', { + elements: { + arc: { + backgroundColor: core_defaults.global.defaultColor, + borderColor: '#fff', + borderWidth: 2, + borderAlign: 'center' + } + } +}); + +var element_arc = core_element.extend({ + inLabelRange: function(mouseX) { + var vm = this._view; + + if (vm) { + return (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hoverRadius, 2)); + } + return false; + }, + + inRange: function(chartX, chartY) { + var vm = this._view; + + if (vm) { + var pointRelativePosition = helpers$1.getAngleFromPoint(vm, {x: chartX, y: chartY}); + var angle = pointRelativePosition.angle; + var distance = pointRelativePosition.distance; + + // Sanitise angle range + var startAngle = vm.startAngle; + var endAngle = vm.endAngle; + while (endAngle < startAngle) { + endAngle += 2.0 * Math.PI; + } + while (angle > endAngle) { + angle -= 2.0 * Math.PI; + } + while (angle < startAngle) { + angle += 2.0 * Math.PI; + } + + // Check if within the range of the open/close angle + var betweenAngles = (angle >= startAngle && angle <= endAngle); + var withinRadius = (distance >= vm.innerRadius && distance <= vm.outerRadius); + + return (betweenAngles && withinRadius); + } + return false; + }, + + getCenterPoint: function() { + var vm = this._view; + var halfAngle = (vm.startAngle + vm.endAngle) / 2; + var halfRadius = (vm.innerRadius + vm.outerRadius) / 2; + return { + x: vm.x + Math.cos(halfAngle) * halfRadius, + y: vm.y + Math.sin(halfAngle) * halfRadius + }; + }, + + getArea: function() { + var vm = this._view; + return Math.PI * ((vm.endAngle - vm.startAngle) / (2 * Math.PI)) * (Math.pow(vm.outerRadius, 2) - Math.pow(vm.innerRadius, 2)); + }, + + tooltipPosition: function() { + var vm = this._view; + var centreAngle = vm.startAngle + ((vm.endAngle - vm.startAngle) / 2); + var rangeFromCentre = (vm.outerRadius - vm.innerRadius) / 2 + vm.innerRadius; + + return { + x: vm.x + (Math.cos(centreAngle) * rangeFromCentre), + y: vm.y + (Math.sin(centreAngle) * rangeFromCentre) + }; + }, + + draw: function() { + var ctx = this._chart.ctx; + var vm = this._view; + var sA = vm.startAngle; + var eA = vm.endAngle; + var pixelMargin = (vm.borderAlign === 'inner') ? 0.33 : 0; + var angleMargin; + + ctx.save(); + + ctx.beginPath(); + ctx.arc(vm.x, vm.y, Math.max(vm.outerRadius - pixelMargin, 0), sA, eA); + ctx.arc(vm.x, vm.y, vm.innerRadius, eA, sA, true); + ctx.closePath(); + + ctx.fillStyle = vm.backgroundColor; + ctx.fill(); + + if (vm.borderWidth) { + if (vm.borderAlign === 'inner') { + // Draw an inner border by cliping the arc and drawing a double-width border + // Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders + ctx.beginPath(); + angleMargin = pixelMargin / vm.outerRadius; + ctx.arc(vm.x, vm.y, vm.outerRadius, sA - angleMargin, eA + angleMargin); + if (vm.innerRadius > pixelMargin) { + angleMargin = pixelMargin / vm.innerRadius; + ctx.arc(vm.x, vm.y, vm.innerRadius - pixelMargin, eA + angleMargin, sA - angleMargin, true); + } else { + ctx.arc(vm.x, vm.y, pixelMargin, eA + Math.PI / 2, sA - Math.PI / 2); + } + ctx.closePath(); + ctx.clip(); + + ctx.beginPath(); + ctx.arc(vm.x, vm.y, vm.outerRadius, sA, eA); + ctx.arc(vm.x, vm.y, vm.innerRadius, eA, sA, true); + ctx.closePath(); + + ctx.lineWidth = vm.borderWidth * 2; + ctx.lineJoin = 'round'; + } else { + ctx.lineWidth = vm.borderWidth; + ctx.lineJoin = 'bevel'; + } + + ctx.strokeStyle = vm.borderColor; + ctx.stroke(); + } + + ctx.restore(); + } +}); + +var valueOrDefault$1 = helpers$1.valueOrDefault; + +var defaultColor = core_defaults.global.defaultColor; + +core_defaults._set('global', { + elements: { + line: { + tension: 0.4, + backgroundColor: defaultColor, + borderWidth: 3, + borderColor: defaultColor, + borderCapStyle: 'butt', + borderDash: [], + borderDashOffset: 0.0, + borderJoinStyle: 'miter', + capBezierPoints: true, + fill: true, // do we fill in the area between the line and its base axis + } + } +}); + +var element_line = core_element.extend({ + draw: function() { + var me = this; + var vm = me._view; + var ctx = me._chart.ctx; + var spanGaps = vm.spanGaps; + var points = me._children.slice(); // clone array + var globalDefaults = core_defaults.global; + var globalOptionLineElements = globalDefaults.elements.line; + var lastDrawnIndex = -1; + var index, current, previous, currentVM; + + // If we are looping, adding the first point again + if (me._loop && points.length) { + points.push(points[0]); + } + + ctx.save(); + + // Stroke Line Options + ctx.lineCap = vm.borderCapStyle || globalOptionLineElements.borderCapStyle; + + // IE 9 and 10 do not support line dash + if (ctx.setLineDash) { + ctx.setLineDash(vm.borderDash || globalOptionLineElements.borderDash); + } + + ctx.lineDashOffset = valueOrDefault$1(vm.borderDashOffset, globalOptionLineElements.borderDashOffset); + ctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle; + ctx.lineWidth = valueOrDefault$1(vm.borderWidth, globalOptionLineElements.borderWidth); + ctx.strokeStyle = vm.borderColor || globalDefaults.defaultColor; + + // Stroke Line + ctx.beginPath(); + lastDrawnIndex = -1; + + for (index = 0; index < points.length; ++index) { + current = points[index]; + previous = helpers$1.previousItem(points, index); + currentVM = current._view; + + // First point moves to it's starting position no matter what + if (index === 0) { + if (!currentVM.skip) { + ctx.moveTo(currentVM.x, currentVM.y); + lastDrawnIndex = index; + } + } else { + previous = lastDrawnIndex === -1 ? previous : points[lastDrawnIndex]; + + if (!currentVM.skip) { + if ((lastDrawnIndex !== (index - 1) && !spanGaps) || lastDrawnIndex === -1) { + // There was a gap and this is the first point after the gap + ctx.moveTo(currentVM.x, currentVM.y); + } else { + // Line to next point + helpers$1.canvas.lineTo(ctx, previous._view, current._view); + } + lastDrawnIndex = index; + } + } + } + + ctx.stroke(); + ctx.restore(); + } +}); + +var valueOrDefault$2 = helpers$1.valueOrDefault; + +var defaultColor$1 = core_defaults.global.defaultColor; + +core_defaults._set('global', { + elements: { + point: { + radius: 3, + pointStyle: 'circle', + backgroundColor: defaultColor$1, + borderColor: defaultColor$1, + borderWidth: 1, + // Hover + hitRadius: 1, + hoverRadius: 4, + hoverBorderWidth: 1 + } + } +}); + +function xRange(mouseX) { + var vm = this._view; + return vm ? (Math.abs(mouseX - vm.x) < vm.radius + vm.hitRadius) : false; +} + +function yRange(mouseY) { + var vm = this._view; + return vm ? (Math.abs(mouseY - vm.y) < vm.radius + vm.hitRadius) : false; +} + +var element_point = core_element.extend({ + inRange: function(mouseX, mouseY) { + var vm = this._view; + return vm ? ((Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2)) < Math.pow(vm.hitRadius + vm.radius, 2)) : false; + }, + + inLabelRange: xRange, + inXRange: xRange, + inYRange: yRange, + + getCenterPoint: function() { + var vm = this._view; + return { + x: vm.x, + y: vm.y + }; + }, + + getArea: function() { + return Math.PI * Math.pow(this._view.radius, 2); + }, + + tooltipPosition: function() { + var vm = this._view; + return { + x: vm.x, + y: vm.y, + padding: vm.radius + vm.borderWidth + }; + }, + + draw: function(chartArea) { + var vm = this._view; + var ctx = this._chart.ctx; + var pointStyle = vm.pointStyle; + var rotation = vm.rotation; + var radius = vm.radius; + var x = vm.x; + var y = vm.y; + var globalDefaults = core_defaults.global; + var defaultColor = globalDefaults.defaultColor; // eslint-disable-line no-shadow + + if (vm.skip) { + return; + } + + // Clipping for Points. + if (chartArea === undefined || helpers$1.canvas._isPointInArea(vm, chartArea)) { + ctx.strokeStyle = vm.borderColor || defaultColor; + ctx.lineWidth = valueOrDefault$2(vm.borderWidth, globalDefaults.elements.point.borderWidth); + ctx.fillStyle = vm.backgroundColor || defaultColor; + helpers$1.canvas.drawPoint(ctx, pointStyle, radius, x, y, rotation); + } + } +}); + +var defaultColor$2 = core_defaults.global.defaultColor; + +core_defaults._set('global', { + elements: { + rectangle: { + backgroundColor: defaultColor$2, + borderColor: defaultColor$2, + borderSkipped: 'bottom', + borderWidth: 0 + } + } +}); + +function isVertical(vm) { + return vm && vm.width !== undefined; +} + +/** + * Helper function to get the bounds of the bar regardless of the orientation + * @param bar {Chart.Element.Rectangle} the bar + * @return {Bounds} bounds of the bar + * @private + */ +function getBarBounds(vm) { + var x1, x2, y1, y2, half; + + if (isVertical(vm)) { + half = vm.width / 2; + x1 = vm.x - half; + x2 = vm.x + half; + y1 = Math.min(vm.y, vm.base); + y2 = Math.max(vm.y, vm.base); + } else { + half = vm.height / 2; + x1 = Math.min(vm.x, vm.base); + x2 = Math.max(vm.x, vm.base); + y1 = vm.y - half; + y2 = vm.y + half; + } + + return { + left: x1, + top: y1, + right: x2, + bottom: y2 + }; +} + +function swap(orig, v1, v2) { + return orig === v1 ? v2 : orig === v2 ? v1 : orig; +} + +function parseBorderSkipped(vm) { + var edge = vm.borderSkipped; + var res = {}; + + if (!edge) { + return res; + } + + if (vm.horizontal) { + if (vm.base > vm.x) { + edge = swap(edge, 'left', 'right'); + } + } else if (vm.base < vm.y) { + edge = swap(edge, 'bottom', 'top'); + } + + res[edge] = true; + return res; +} + +function parseBorderWidth(vm, maxW, maxH) { + var value = vm.borderWidth; + var skip = parseBorderSkipped(vm); + var t, r, b, l; + + if (helpers$1.isObject(value)) { + t = +value.top || 0; + r = +value.right || 0; + b = +value.bottom || 0; + l = +value.left || 0; + } else { + t = r = b = l = +value || 0; + } + + return { + t: skip.top || (t < 0) ? 0 : t > maxH ? maxH : t, + r: skip.right || (r < 0) ? 0 : r > maxW ? maxW : r, + b: skip.bottom || (b < 0) ? 0 : b > maxH ? maxH : b, + l: skip.left || (l < 0) ? 0 : l > maxW ? maxW : l + }; +} + +function boundingRects(vm) { + var bounds = getBarBounds(vm); + var width = bounds.right - bounds.left; + var height = bounds.bottom - bounds.top; + var border = parseBorderWidth(vm, width / 2, height / 2); + + return { + outer: { + x: bounds.left, + y: bounds.top, + w: width, + h: height + }, + inner: { + x: bounds.left + border.l, + y: bounds.top + border.t, + w: width - border.l - border.r, + h: height - border.t - border.b + } + }; +} + +function inRange(vm, x, y) { + var skipX = x === null; + var skipY = y === null; + var bounds = !vm || (skipX && skipY) ? false : getBarBounds(vm); + + return bounds + && (skipX || x >= bounds.left && x <= bounds.right) + && (skipY || y >= bounds.top && y <= bounds.bottom); +} + +var element_rectangle = core_element.extend({ + draw: function() { + var ctx = this._chart.ctx; + var vm = this._view; + var rects = boundingRects(vm); + var outer = rects.outer; + var inner = rects.inner; + + ctx.fillStyle = vm.backgroundColor; + ctx.fillRect(outer.x, outer.y, outer.w, outer.h); + + if (outer.w === inner.w && outer.h === inner.h) { + return; + } + + ctx.save(); + ctx.beginPath(); + ctx.rect(outer.x, outer.y, outer.w, outer.h); + ctx.clip(); + ctx.fillStyle = vm.borderColor; + ctx.rect(inner.x, inner.y, inner.w, inner.h); + ctx.fill('evenodd'); + ctx.restore(); + }, + + height: function() { + var vm = this._view; + return vm.base - vm.y; + }, + + inRange: function(mouseX, mouseY) { + return inRange(this._view, mouseX, mouseY); + }, + + inLabelRange: function(mouseX, mouseY) { + var vm = this._view; + return isVertical(vm) + ? inRange(vm, mouseX, null) + : inRange(vm, null, mouseY); + }, + + inXRange: function(mouseX) { + return inRange(this._view, mouseX, null); + }, + + inYRange: function(mouseY) { + return inRange(this._view, null, mouseY); + }, + + getCenterPoint: function() { + var vm = this._view; + var x, y; + if (isVertical(vm)) { + x = vm.x; + y = (vm.y + vm.base) / 2; + } else { + x = (vm.x + vm.base) / 2; + y = vm.y; + } + + return {x: x, y: y}; + }, + + getArea: function() { + var vm = this._view; + + return isVertical(vm) + ? vm.width * Math.abs(vm.y - vm.base) + : vm.height * Math.abs(vm.x - vm.base); + }, + + tooltipPosition: function() { + var vm = this._view; + return { + x: vm.x, + y: vm.y + }; + } +}); + +var elements = {}; +var Arc = element_arc; +var Line = element_line; +var Point = element_point; +var Rectangle = element_rectangle; +elements.Arc = Arc; +elements.Line = Line; +elements.Point = Point; +elements.Rectangle = Rectangle; + +var resolve$1 = helpers$1.options.resolve; + +core_defaults._set('bar', { + hover: { + mode: 'label' + }, + + scales: { + xAxes: [{ + type: 'category', + categoryPercentage: 0.8, + barPercentage: 0.9, + offset: true, + gridLines: { + offsetGridLines: true + } + }], + + yAxes: [{ + type: 'linear' + }] + } +}); + +/** + * Computes the "optimal" sample size to maintain bars equally sized while preventing overlap. + * @private + */ +function computeMinSampleSize(scale, pixels) { + var min = scale.isHorizontal() ? scale.width : scale.height; + var ticks = scale.getTicks(); + var prev, curr, i, ilen; + + for (i = 1, ilen = pixels.length; i < ilen; ++i) { + min = Math.min(min, Math.abs(pixels[i] - pixels[i - 1])); + } + + for (i = 0, ilen = ticks.length; i < ilen; ++i) { + curr = scale.getPixelForTick(i); + min = i > 0 ? Math.min(min, curr - prev) : min; + prev = curr; + } + + return min; +} + +/** + * Computes an "ideal" category based on the absolute bar thickness or, if undefined or null, + * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This + * mode currently always generates bars equally sized (until we introduce scriptable options?). + * @private + */ +function computeFitCategoryTraits(index, ruler, options) { + var thickness = options.barThickness; + var count = ruler.stackCount; + var curr = ruler.pixels[index]; + var size, ratio; + + if (helpers$1.isNullOrUndef(thickness)) { + size = ruler.min * options.categoryPercentage; + ratio = options.barPercentage; + } else { + // When bar thickness is enforced, category and bar percentages are ignored. + // Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%') + // and deprecate barPercentage since this value is ignored when thickness is absolute. + size = thickness * count; + ratio = 1; + } + + return { + chunk: size / count, + ratio: ratio, + start: curr - (size / 2) + }; +} + +/** + * Computes an "optimal" category that globally arranges bars side by side (no gap when + * percentage options are 1), based on the previous and following categories. This mode + * generates bars with different widths when data are not evenly spaced. + * @private + */ +function computeFlexCategoryTraits(index, ruler, options) { + var pixels = ruler.pixels; + var curr = pixels[index]; + var prev = index > 0 ? pixels[index - 1] : null; + var next = index < pixels.length - 1 ? pixels[index + 1] : null; + var percent = options.categoryPercentage; + var start, size; + + if (prev === null) { + // first data: its size is double based on the next point or, + // if it's also the last data, we use the scale size. + prev = curr - (next === null ? ruler.end - ruler.start : next - curr); + } + + if (next === null) { + // last data: its size is also double based on the previous point. + next = curr + curr - prev; + } + + start = curr - (curr - Math.min(prev, next)) / 2 * percent; + size = Math.abs(next - prev) / 2 * percent; + + return { + chunk: size / ruler.stackCount, + ratio: options.barPercentage, + start: start + }; +} + +var controller_bar = core_datasetController.extend({ + + dataElementType: elements.Rectangle, + + initialize: function() { + var me = this; + var meta; + + core_datasetController.prototype.initialize.apply(me, arguments); + + meta = me.getMeta(); + meta.stack = me.getDataset().stack; + meta.bar = true; + }, + + update: function(reset) { + var me = this; + var rects = me.getMeta().data; + var i, ilen; + + me._ruler = me.getRuler(); + + for (i = 0, ilen = rects.length; i < ilen; ++i) { + me.updateElement(rects[i], i, reset); + } + }, + + updateElement: function(rectangle, index, reset) { + var me = this; + var meta = me.getMeta(); + var dataset = me.getDataset(); + var options = me._resolveElementOptions(rectangle, index); + + rectangle._xScale = me.getScaleForId(meta.xAxisID); + rectangle._yScale = me.getScaleForId(meta.yAxisID); + rectangle._datasetIndex = me.index; + rectangle._index = index; + rectangle._model = { + backgroundColor: options.backgroundColor, + borderColor: options.borderColor, + borderSkipped: options.borderSkipped, + borderWidth: options.borderWidth, + datasetLabel: dataset.label, + label: me.chart.data.labels[index] + }; + + me._updateElementGeometry(rectangle, index, reset); + + rectangle.pivot(); + }, + + /** + * @private + */ + _updateElementGeometry: function(rectangle, index, reset) { + var me = this; + var model = rectangle._model; + var vscale = me._getValueScale(); + var base = vscale.getBasePixel(); + var horizontal = vscale.isHorizontal(); + var ruler = me._ruler || me.getRuler(); + var vpixels = me.calculateBarValuePixels(me.index, index); + var ipixels = me.calculateBarIndexPixels(me.index, index, ruler); + + model.horizontal = horizontal; + model.base = reset ? base : vpixels.base; + model.x = horizontal ? reset ? base : vpixels.head : ipixels.center; + model.y = horizontal ? ipixels.center : reset ? base : vpixels.head; + model.height = horizontal ? ipixels.size : undefined; + model.width = horizontal ? undefined : ipixels.size; + }, + + /** + * Returns the stacks based on groups and bar visibility. + * @param {number} [last] - The dataset index + * @returns {string[]} The list of stack IDs + * @private + */ + _getStacks: function(last) { + var me = this; + var chart = me.chart; + var scale = me._getIndexScale(); + var stacked = scale.options.stacked; + var ilen = last === undefined ? chart.data.datasets.length : last + 1; + var stacks = []; + var i, meta; + + for (i = 0; i < ilen; ++i) { + meta = chart.getDatasetMeta(i); + if (meta.bar && chart.isDatasetVisible(i) && + (stacked === false || + (stacked === true && stacks.indexOf(meta.stack) === -1) || + (stacked === undefined && (meta.stack === undefined || stacks.indexOf(meta.stack) === -1)))) { + stacks.push(meta.stack); + } + } + + return stacks; + }, + + /** + * Returns the effective number of stacks based on groups and bar visibility. + * @private + */ + getStackCount: function() { + return this._getStacks().length; + }, + + /** + * Returns the stack index for the given dataset based on groups and bar visibility. + * @param {number} [datasetIndex] - The dataset index + * @param {string} [name] - The stack name to find + * @returns {number} The stack index + * @private + */ + getStackIndex: function(datasetIndex, name) { + var stacks = this._getStacks(datasetIndex); + var index = (name !== undefined) + ? stacks.indexOf(name) + : -1; // indexOf returns -1 if element is not present + + return (index === -1) + ? stacks.length - 1 + : index; + }, + + /** + * @private + */ + getRuler: function() { + var me = this; + var scale = me._getIndexScale(); + var stackCount = me.getStackCount(); + var datasetIndex = me.index; + var isHorizontal = scale.isHorizontal(); + var start = isHorizontal ? scale.left : scale.top; + var end = start + (isHorizontal ? scale.width : scale.height); + var pixels = []; + var i, ilen, min; + + for (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) { + pixels.push(scale.getPixelForValue(null, i, datasetIndex)); + } + + min = helpers$1.isNullOrUndef(scale.options.barThickness) + ? computeMinSampleSize(scale, pixels) + : -1; + + return { + min: min, + pixels: pixels, + start: start, + end: end, + stackCount: stackCount, + scale: scale + }; + }, + + /** + * Note: pixel values are not clamped to the scale area. + * @private + */ + calculateBarValuePixels: function(datasetIndex, index) { + var me = this; + var chart = me.chart; + var meta = me.getMeta(); + var scale = me._getValueScale(); + var isHorizontal = scale.isHorizontal(); + var datasets = chart.data.datasets; + var value = +scale.getRightValue(datasets[datasetIndex].data[index]); + var minBarLength = scale.options.minBarLength; + var stacked = scale.options.stacked; + var stack = meta.stack; + var start = 0; + var i, imeta, ivalue, base, head, size; + + if (stacked || (stacked === undefined && stack !== undefined)) { + for (i = 0; i < datasetIndex; ++i) { + imeta = chart.getDatasetMeta(i); + + if (imeta.bar && + imeta.stack === stack && + imeta.controller._getValueScaleId() === scale.id && + chart.isDatasetVisible(i)) { + + ivalue = +scale.getRightValue(datasets[i].data[index]); + if ((value < 0 && ivalue < 0) || (value >= 0 && ivalue > 0)) { + start += ivalue; + } + } + } + } + + base = scale.getPixelForValue(start); + head = scale.getPixelForValue(start + value); + size = head - base; + + if (minBarLength !== undefined && Math.abs(size) < minBarLength) { + size = minBarLength; + if (value >= 0 && !isHorizontal || value < 0 && isHorizontal) { + head = base - minBarLength; + } else { + head = base + minBarLength; + } + } + + return { + size: size, + base: base, + head: head, + center: head + size / 2 + }; + }, + + /** + * @private + */ + calculateBarIndexPixels: function(datasetIndex, index, ruler) { + var me = this; + var options = ruler.scale.options; + var range = options.barThickness === 'flex' + ? computeFlexCategoryTraits(index, ruler, options) + : computeFitCategoryTraits(index, ruler, options); + + var stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack); + var center = range.start + (range.chunk * stackIndex) + (range.chunk / 2); + var size = Math.min( + helpers$1.valueOrDefault(options.maxBarThickness, Infinity), + range.chunk * range.ratio); + + return { + base: center - size / 2, + head: center + size / 2, + center: center, + size: size + }; + }, + + draw: function() { + var me = this; + var chart = me.chart; + var scale = me._getValueScale(); + var rects = me.getMeta().data; + var dataset = me.getDataset(); + var ilen = rects.length; + var i = 0; + + helpers$1.canvas.clipArea(chart.ctx, chart.chartArea); + + for (; i < ilen; ++i) { + if (!isNaN(scale.getRightValue(dataset.data[i]))) { + rects[i].draw(); + } + } + + helpers$1.canvas.unclipArea(chart.ctx); + }, + + /** + * @private + */ + _resolveElementOptions: function(rectangle, index) { + var me = this; + var chart = me.chart; + var datasets = chart.data.datasets; + var dataset = datasets[me.index]; + var custom = rectangle.custom || {}; + var options = chart.options.elements.rectangle; + var values = {}; + var i, ilen, key; + + // Scriptable options + var context = { + chart: chart, + dataIndex: index, + dataset: dataset, + datasetIndex: me.index + }; + + var keys = [ + 'backgroundColor', + 'borderColor', + 'borderSkipped', + 'borderWidth' + ]; + + for (i = 0, ilen = keys.length; i < ilen; ++i) { + key = keys[i]; + values[key] = resolve$1([ + custom[key], + dataset[key], + options[key] + ], context, index); + } + + return values; + } +}); + +var valueOrDefault$3 = helpers$1.valueOrDefault; +var resolve$2 = helpers$1.options.resolve; + +core_defaults._set('bubble', { + hover: { + mode: 'single' + }, + + scales: { + xAxes: [{ + type: 'linear', // bubble should probably use a linear scale by default + position: 'bottom', + id: 'x-axis-0' // need an ID so datasets can reference the scale + }], + yAxes: [{ + type: 'linear', + position: 'left', + id: 'y-axis-0' + }] + }, + + tooltips: { + callbacks: { + title: function() { + // Title doesn't make sense for scatter since we format the data as a point + return ''; + }, + label: function(item, data) { + var datasetLabel = data.datasets[item.datasetIndex].label || ''; + var dataPoint = data.datasets[item.datasetIndex].data[item.index]; + return datasetLabel + ': (' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.r + ')'; + } + } + } +}); + +var controller_bubble = core_datasetController.extend({ + /** + * @protected + */ + dataElementType: elements.Point, + + /** + * @protected + */ + update: function(reset) { + var me = this; + var meta = me.getMeta(); + var points = meta.data; + + // Update Points + helpers$1.each(points, function(point, index) { + me.updateElement(point, index, reset); + }); + }, + + /** + * @protected + */ + updateElement: function(point, index, reset) { + var me = this; + var meta = me.getMeta(); + var custom = point.custom || {}; + var xScale = me.getScaleForId(meta.xAxisID); + var yScale = me.getScaleForId(meta.yAxisID); + var options = me._resolveElementOptions(point, index); + var data = me.getDataset().data[index]; + var dsIndex = me.index; + + var x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex); + var y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex); + + point._xScale = xScale; + point._yScale = yScale; + point._options = options; + point._datasetIndex = dsIndex; + point._index = index; + point._model = { + backgroundColor: options.backgroundColor, + borderColor: options.borderColor, + borderWidth: options.borderWidth, + hitRadius: options.hitRadius, + pointStyle: options.pointStyle, + rotation: options.rotation, + radius: reset ? 0 : options.radius, + skip: custom.skip || isNaN(x) || isNaN(y), + x: x, + y: y, + }; + + point.pivot(); + }, + + /** + * @protected + */ + setHoverStyle: function(point) { + var model = point._model; + var options = point._options; + var getHoverColor = helpers$1.getHoverColor; + + point.$previousStyle = { + backgroundColor: model.backgroundColor, + borderColor: model.borderColor, + borderWidth: model.borderWidth, + radius: model.radius + }; + + model.backgroundColor = valueOrDefault$3(options.hoverBackgroundColor, getHoverColor(options.backgroundColor)); + model.borderColor = valueOrDefault$3(options.hoverBorderColor, getHoverColor(options.borderColor)); + model.borderWidth = valueOrDefault$3(options.hoverBorderWidth, options.borderWidth); + model.radius = options.radius + options.hoverRadius; + }, + + /** + * @private + */ + _resolveElementOptions: function(point, index) { + var me = this; + var chart = me.chart; + var datasets = chart.data.datasets; + var dataset = datasets[me.index]; + var custom = point.custom || {}; + var options = chart.options.elements.point; + var data = dataset.data[index]; + var values = {}; + var i, ilen, key; + + // Scriptable options + var context = { + chart: chart, + dataIndex: index, + dataset: dataset, + datasetIndex: me.index + }; + + var keys = [ + 'backgroundColor', + 'borderColor', + 'borderWidth', + 'hoverBackgroundColor', + 'hoverBorderColor', + 'hoverBorderWidth', + 'hoverRadius', + 'hitRadius', + 'pointStyle', + 'rotation' + ]; + + for (i = 0, ilen = keys.length; i < ilen; ++i) { + key = keys[i]; + values[key] = resolve$2([ + custom[key], + dataset[key], + options[key] + ], context, index); + } + + // Custom radius resolution + values.radius = resolve$2([ + custom.radius, + data ? data.r : undefined, + dataset.radius, + options.radius + ], context, index); + + return values; + } +}); + +var resolve$3 = helpers$1.options.resolve; +var valueOrDefault$4 = helpers$1.valueOrDefault; + +core_defaults._set('doughnut', { + animation: { + // Boolean - Whether we animate the rotation of the Doughnut + animateRotate: true, + // Boolean - Whether we animate scaling the Doughnut from the centre + animateScale: false + }, + hover: { + mode: 'single' + }, + legendCallback: function(chart) { + var text = []; + text.push('<ul class="' + chart.id + '-legend">'); + + var data = chart.data; + var datasets = data.datasets; + var labels = data.labels; + + if (datasets.length) { + for (var i = 0; i < datasets[0].data.length; ++i) { + text.push('<li><span style="background-color:' + datasets[0].backgroundColor[i] + '"></span>'); + if (labels[i]) { + text.push(labels[i]); + } + text.push('</li>'); + } + } + + text.push('</ul>'); + return text.join(''); + }, + legend: { + labels: { + generateLabels: function(chart) { + var data = chart.data; + if (data.labels.length && data.datasets.length) { + return data.labels.map(function(label, i) { + var meta = chart.getDatasetMeta(0); + var ds = data.datasets[0]; + var arc = meta.data[i]; + var custom = arc && arc.custom || {}; + var arcOpts = chart.options.elements.arc; + var fill = resolve$3([custom.backgroundColor, ds.backgroundColor, arcOpts.backgroundColor], undefined, i); + var stroke = resolve$3([custom.borderColor, ds.borderColor, arcOpts.borderColor], undefined, i); + var bw = resolve$3([custom.borderWidth, ds.borderWidth, arcOpts.borderWidth], undefined, i); + + return { + text: label, + fillStyle: fill, + strokeStyle: stroke, + lineWidth: bw, + hidden: isNaN(ds.data[i]) || meta.data[i].hidden, + + // Extra data used for toggling the correct item + index: i + }; + }); + } + return []; + } + }, + + onClick: function(e, legendItem) { + var index = legendItem.index; + var chart = this.chart; + var i, ilen, meta; + + for (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) { + meta = chart.getDatasetMeta(i); + // toggle visibility of index if exists + if (meta.data[index]) { + meta.data[index].hidden = !meta.data[index].hidden; + } + } + + chart.update(); + } + }, + + // The percentage of the chart that we cut out of the middle. + cutoutPercentage: 50, + + // The rotation of the chart, where the first data arc begins. + rotation: Math.PI * -0.5, + + // The total circumference of the chart. + circumference: Math.PI * 2.0, + + // Need to override these to give a nice default + tooltips: { + callbacks: { + title: function() { + return ''; + }, + label: function(tooltipItem, data) { + var dataLabel = data.labels[tooltipItem.index]; + var value = ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index]; + + if (helpers$1.isArray(dataLabel)) { + // show value on first line of multiline label + // need to clone because we are changing the value + dataLabel = dataLabel.slice(); + dataLabel[0] += value; + } else { + dataLabel += value; + } + + return dataLabel; + } + } + } +}); + +var controller_doughnut = core_datasetController.extend({ + + dataElementType: elements.Arc, + + linkScales: helpers$1.noop, + + // Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly + getRingIndex: function(datasetIndex) { + var ringIndex = 0; + + for (var j = 0; j < datasetIndex; ++j) { + if (this.chart.isDatasetVisible(j)) { + ++ringIndex; + } + } + + return ringIndex; + }, + + update: function(reset) { + var me = this; + var chart = me.chart; + var chartArea = chart.chartArea; + var opts = chart.options; + var availableWidth = chartArea.right - chartArea.left; + var availableHeight = chartArea.bottom - chartArea.top; + var minSize = Math.min(availableWidth, availableHeight); + var offset = {x: 0, y: 0}; + var meta = me.getMeta(); + var arcs = meta.data; + var cutoutPercentage = opts.cutoutPercentage; + var circumference = opts.circumference; + var chartWeight = me._getRingWeight(me.index); + var i, ilen; + + // If the chart's circumference isn't a full circle, calculate minSize as a ratio of the width/height of the arc + if (circumference < Math.PI * 2.0) { + var startAngle = opts.rotation % (Math.PI * 2.0); + startAngle += Math.PI * 2.0 * (startAngle >= Math.PI ? -1 : startAngle < -Math.PI ? 1 : 0); + var endAngle = startAngle + circumference; + var start = {x: Math.cos(startAngle), y: Math.sin(startAngle)}; + var end = {x: Math.cos(endAngle), y: Math.sin(endAngle)}; + var contains0 = (startAngle <= 0 && endAngle >= 0) || (startAngle <= Math.PI * 2.0 && Math.PI * 2.0 <= endAngle); + var contains90 = (startAngle <= Math.PI * 0.5 && Math.PI * 0.5 <= endAngle) || (startAngle <= Math.PI * 2.5 && Math.PI * 2.5 <= endAngle); + var contains180 = (startAngle <= -Math.PI && -Math.PI <= endAngle) || (startAngle <= Math.PI && Math.PI <= endAngle); + var contains270 = (startAngle <= -Math.PI * 0.5 && -Math.PI * 0.5 <= endAngle) || (startAngle <= Math.PI * 1.5 && Math.PI * 1.5 <= endAngle); + var cutout = cutoutPercentage / 100.0; + var min = {x: contains180 ? -1 : Math.min(start.x * (start.x < 0 ? 1 : cutout), end.x * (end.x < 0 ? 1 : cutout)), y: contains270 ? -1 : Math.min(start.y * (start.y < 0 ? 1 : cutout), end.y * (end.y < 0 ? 1 : cutout))}; + var max = {x: contains0 ? 1 : Math.max(start.x * (start.x > 0 ? 1 : cutout), end.x * (end.x > 0 ? 1 : cutout)), y: contains90 ? 1 : Math.max(start.y * (start.y > 0 ? 1 : cutout), end.y * (end.y > 0 ? 1 : cutout))}; + var size = {width: (max.x - min.x) * 0.5, height: (max.y - min.y) * 0.5}; + minSize = Math.min(availableWidth / size.width, availableHeight / size.height); + offset = {x: (max.x + min.x) * -0.5, y: (max.y + min.y) * -0.5}; + } + + for (i = 0, ilen = arcs.length; i < ilen; ++i) { + arcs[i]._options = me._resolveElementOptions(arcs[i], i); + } + + chart.borderWidth = me.getMaxBorderWidth(); + chart.outerRadius = Math.max((minSize - chart.borderWidth) / 2, 0); + chart.innerRadius = Math.max(cutoutPercentage ? (chart.outerRadius / 100) * (cutoutPercentage) : 0, 0); + chart.radiusLength = (chart.outerRadius - chart.innerRadius) / (me._getVisibleDatasetWeightTotal() || 1); + chart.offsetX = offset.x * chart.outerRadius; + chart.offsetY = offset.y * chart.outerRadius; + + meta.total = me.calculateTotal(); + + me.outerRadius = chart.outerRadius - chart.radiusLength * me._getRingWeightOffset(me.index); + me.innerRadius = Math.max(me.outerRadius - chart.radiusLength * chartWeight, 0); + + for (i = 0, ilen = arcs.length; i < ilen; ++i) { + me.updateElement(arcs[i], i, reset); + } + }, + + updateElement: function(arc, index, reset) { + var me = this; + var chart = me.chart; + var chartArea = chart.chartArea; + var opts = chart.options; + var animationOpts = opts.animation; + var centerX = (chartArea.left + chartArea.right) / 2; + var centerY = (chartArea.top + chartArea.bottom) / 2; + var startAngle = opts.rotation; // non reset case handled later + var endAngle = opts.rotation; // non reset case handled later + var dataset = me.getDataset(); + var circumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / (2.0 * Math.PI)); + var innerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius; + var outerRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius; + var options = arc._options || {}; + + helpers$1.extend(arc, { + // Utility + _datasetIndex: me.index, + _index: index, + + // Desired view properties + _model: { + backgroundColor: options.backgroundColor, + borderColor: options.borderColor, + borderWidth: options.borderWidth, + borderAlign: options.borderAlign, + x: centerX + chart.offsetX, + y: centerY + chart.offsetY, + startAngle: startAngle, + endAngle: endAngle, + circumference: circumference, + outerRadius: outerRadius, + innerRadius: innerRadius, + label: helpers$1.valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index]) + } + }); + + var model = arc._model; + + // Set correct angles if not resetting + if (!reset || !animationOpts.animateRotate) { + if (index === 0) { + model.startAngle = opts.rotation; + } else { + model.startAngle = me.getMeta().data[index - 1]._model.endAngle; + } + + model.endAngle = model.startAngle + model.circumference; + } + + arc.pivot(); + }, + + calculateTotal: function() { + var dataset = this.getDataset(); + var meta = this.getMeta(); + var total = 0; + var value; + + helpers$1.each(meta.data, function(element, index) { + value = dataset.data[index]; + if (!isNaN(value) && !element.hidden) { + total += Math.abs(value); + } + }); + + /* if (total === 0) { + total = NaN; + }*/ + + return total; + }, + + calculateCircumference: function(value) { + var total = this.getMeta().total; + if (total > 0 && !isNaN(value)) { + return (Math.PI * 2.0) * (Math.abs(value) / total); + } + return 0; + }, + + // gets the max border or hover width to properly scale pie charts + getMaxBorderWidth: function(arcs) { + var me = this; + var max = 0; + var chart = me.chart; + var i, ilen, meta, arc, controller, options, borderWidth, hoverWidth; + + if (!arcs) { + // Find the outmost visible dataset + for (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) { + if (chart.isDatasetVisible(i)) { + meta = chart.getDatasetMeta(i); + arcs = meta.data; + if (i !== me.index) { + controller = meta.controller; + } + break; + } + } + } + + if (!arcs) { + return 0; + } + + for (i = 0, ilen = arcs.length; i < ilen; ++i) { + arc = arcs[i]; + options = controller ? controller._resolveElementOptions(arc, i) : arc._options; + if (options.borderAlign !== 'inner') { + borderWidth = options.borderWidth; + hoverWidth = options.hoverBorderWidth; + + max = borderWidth > max ? borderWidth : max; + max = hoverWidth > max ? hoverWidth : max; + } + } + return max; + }, + + /** + * @protected + */ + setHoverStyle: function(arc) { + var model = arc._model; + var options = arc._options; + var getHoverColor = helpers$1.getHoverColor; + + arc.$previousStyle = { + backgroundColor: model.backgroundColor, + borderColor: model.borderColor, + borderWidth: model.borderWidth, + }; + + model.backgroundColor = valueOrDefault$4(options.hoverBackgroundColor, getHoverColor(options.backgroundColor)); + model.borderColor = valueOrDefault$4(options.hoverBorderColor, getHoverColor(options.borderColor)); + model.borderWidth = valueOrDefault$4(options.hoverBorderWidth, options.borderWidth); + }, + + /** + * @private + */ + _resolveElementOptions: function(arc, index) { + var me = this; + var chart = me.chart; + var dataset = me.getDataset(); + var custom = arc.custom || {}; + var options = chart.options.elements.arc; + var values = {}; + var i, ilen, key; + + // Scriptable options + var context = { + chart: chart, + dataIndex: index, + dataset: dataset, + datasetIndex: me.index + }; + + var keys = [ + 'backgroundColor', + 'borderColor', + 'borderWidth', + 'borderAlign', + 'hoverBackgroundColor', + 'hoverBorderColor', + 'hoverBorderWidth', + ]; + + for (i = 0, ilen = keys.length; i < ilen; ++i) { + key = keys[i]; + values[key] = resolve$3([ + custom[key], + dataset[key], + options[key] + ], context, index); + } + + return values; + }, + + /** + * Get radius length offset of the dataset in relation to the visible datasets weights. This allows determining the inner and outer radius correctly + * @private + */ + _getRingWeightOffset: function(datasetIndex) { + var ringWeightOffset = 0; + + for (var i = 0; i < datasetIndex; ++i) { + if (this.chart.isDatasetVisible(i)) { + ringWeightOffset += this._getRingWeight(i); + } + } + + return ringWeightOffset; + }, + + /** + * @private + */ + _getRingWeight: function(dataSetIndex) { + return Math.max(valueOrDefault$4(this.chart.data.datasets[dataSetIndex].weight, 1), 0); + }, + + /** + * Returns the sum of all visibile data set weights. This value can be 0. + * @private + */ + _getVisibleDatasetWeightTotal: function() { + return this._getRingWeightOffset(this.chart.data.datasets.length); + } +}); + +core_defaults._set('horizontalBar', { + hover: { + mode: 'index', + axis: 'y' + }, + + scales: { + xAxes: [{ + type: 'linear', + position: 'bottom' + }], + + yAxes: [{ + type: 'category', + position: 'left', + categoryPercentage: 0.8, + barPercentage: 0.9, + offset: true, + gridLines: { + offsetGridLines: true + } + }] + }, + + elements: { + rectangle: { + borderSkipped: 'left' + } + }, + + tooltips: { + mode: 'index', + axis: 'y' + } +}); + +var controller_horizontalBar = controller_bar.extend({ + /** + * @private + */ + _getValueScaleId: function() { + return this.getMeta().xAxisID; + }, + + /** + * @private + */ + _getIndexScaleId: function() { + return this.getMeta().yAxisID; + } +}); + +var valueOrDefault$5 = helpers$1.valueOrDefault; +var resolve$4 = helpers$1.options.resolve; +var isPointInArea = helpers$1.canvas._isPointInArea; + +core_defaults._set('line', { + showLines: true, + spanGaps: false, + + hover: { + mode: 'label' + }, + + scales: { + xAxes: [{ + type: 'category', + id: 'x-axis-0' + }], + yAxes: [{ + type: 'linear', + id: 'y-axis-0' + }] + } +}); + +function lineEnabled(dataset, options) { + return valueOrDefault$5(dataset.showLine, options.showLines); +} + +var controller_line = core_datasetController.extend({ + + datasetElementType: elements.Line, + + dataElementType: elements.Point, + + update: function(reset) { + var me = this; + var meta = me.getMeta(); + var line = meta.dataset; + var points = meta.data || []; + var scale = me.getScaleForId(meta.yAxisID); + var dataset = me.getDataset(); + var showLine = lineEnabled(dataset, me.chart.options); + var i, ilen; + + // Update Line + if (showLine) { + // Compatibility: If the properties are defined with only the old name, use those values + if ((dataset.tension !== undefined) && (dataset.lineTension === undefined)) { + dataset.lineTension = dataset.tension; + } + + // Utility + line._scale = scale; + line._datasetIndex = me.index; + // Data + line._children = points; + // Model + line._model = me._resolveLineOptions(line); + + line.pivot(); + } + + // Update Points + for (i = 0, ilen = points.length; i < ilen; ++i) { + me.updateElement(points[i], i, reset); + } + + if (showLine && line._model.tension !== 0) { + me.updateBezierControlPoints(); + } + + // Now pivot the point for animation + for (i = 0, ilen = points.length; i < ilen; ++i) { + points[i].pivot(); + } + }, + + updateElement: function(point, index, reset) { + var me = this; + var meta = me.getMeta(); + var custom = point.custom || {}; + var dataset = me.getDataset(); + var datasetIndex = me.index; + var value = dataset.data[index]; + var yScale = me.getScaleForId(meta.yAxisID); + var xScale = me.getScaleForId(meta.xAxisID); + var lineModel = meta.dataset._model; + var x, y; + + var options = me._resolvePointOptions(point, index); + + x = xScale.getPixelForValue(typeof value === 'object' ? value : NaN, index, datasetIndex); + y = reset ? yScale.getBasePixel() : me.calculatePointY(value, index, datasetIndex); + + // Utility + point._xScale = xScale; + point._yScale = yScale; + point._options = options; + point._datasetIndex = datasetIndex; + point._index = index; + + // Desired view properties + point._model = { + x: x, + y: y, + skip: custom.skip || isNaN(x) || isNaN(y), + // Appearance + radius: options.radius, + pointStyle: options.pointStyle, + rotation: options.rotation, + backgroundColor: options.backgroundColor, + borderColor: options.borderColor, + borderWidth: options.borderWidth, + tension: valueOrDefault$5(custom.tension, lineModel ? lineModel.tension : 0), + steppedLine: lineModel ? lineModel.steppedLine : false, + // Tooltip + hitRadius: options.hitRadius + }; + }, + + /** + * @private + */ + _resolvePointOptions: function(element, index) { + var me = this; + var chart = me.chart; + var dataset = chart.data.datasets[me.index]; + var custom = element.custom || {}; + var options = chart.options.elements.point; + var values = {}; + var i, ilen, key; + + // Scriptable options + var context = { + chart: chart, + dataIndex: index, + dataset: dataset, + datasetIndex: me.index + }; + + var ELEMENT_OPTIONS = { + backgroundColor: 'pointBackgroundColor', + borderColor: 'pointBorderColor', + borderWidth: 'pointBorderWidth', + hitRadius: 'pointHitRadius', + hoverBackgroundColor: 'pointHoverBackgroundColor', + hoverBorderColor: 'pointHoverBorderColor', + hoverBorderWidth: 'pointHoverBorderWidth', + hoverRadius: 'pointHoverRadius', + pointStyle: 'pointStyle', + radius: 'pointRadius', + rotation: 'pointRotation' + }; + var keys = Object.keys(ELEMENT_OPTIONS); + + for (i = 0, ilen = keys.length; i < ilen; ++i) { + key = keys[i]; + values[key] = resolve$4([ + custom[key], + dataset[ELEMENT_OPTIONS[key]], + dataset[key], + options[key] + ], context, index); + } + + return values; + }, + + /** + * @private + */ + _resolveLineOptions: function(element) { + var me = this; + var chart = me.chart; + var dataset = chart.data.datasets[me.index]; + var custom = element.custom || {}; + var options = chart.options; + var elementOptions = options.elements.line; + var values = {}; + var i, ilen, key; + + var keys = [ + 'backgroundColor', + 'borderWidth', + 'borderColor', + 'borderCapStyle', + 'borderDash', + 'borderDashOffset', + 'borderJoinStyle', + 'fill', + 'cubicInterpolationMode' + ]; + + for (i = 0, ilen = keys.length; i < ilen; ++i) { + key = keys[i]; + values[key] = resolve$4([ + custom[key], + dataset[key], + elementOptions[key] + ]); + } + + // The default behavior of lines is to break at null values, according + // to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158 + // This option gives lines the ability to span gaps + values.spanGaps = valueOrDefault$5(dataset.spanGaps, options.spanGaps); + values.tension = valueOrDefault$5(dataset.lineTension, elementOptions.tension); + values.steppedLine = resolve$4([custom.steppedLine, dataset.steppedLine, elementOptions.stepped]); + + return values; + }, + + calculatePointY: function(value, index, datasetIndex) { + var me = this; + var chart = me.chart; + var meta = me.getMeta(); + var yScale = me.getScaleForId(meta.yAxisID); + var sumPos = 0; + var sumNeg = 0; + var i, ds, dsMeta; + + if (yScale.options.stacked) { + for (i = 0; i < datasetIndex; i++) { + ds = chart.data.datasets[i]; + dsMeta = chart.getDatasetMeta(i); + if (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id && chart.isDatasetVisible(i)) { + var stackedRightValue = Number(yScale.getRightValue(ds.data[index])); + if (stackedRightValue < 0) { + sumNeg += stackedRightValue || 0; + } else { + sumPos += stackedRightValue || 0; + } + } + } + + var rightValue = Number(yScale.getRightValue(value)); + if (rightValue < 0) { + return yScale.getPixelForValue(sumNeg + rightValue); + } + return yScale.getPixelForValue(sumPos + rightValue); + } + + return yScale.getPixelForValue(value); + }, + + updateBezierControlPoints: function() { + var me = this; + var chart = me.chart; + var meta = me.getMeta(); + var lineModel = meta.dataset._model; + var area = chart.chartArea; + var points = meta.data || []; + var i, ilen, model, controlPoints; + + // Only consider points that are drawn in case the spanGaps option is used + if (lineModel.spanGaps) { + points = points.filter(function(pt) { + return !pt._model.skip; + }); + } + + function capControlPoint(pt, min, max) { + return Math.max(Math.min(pt, max), min); + } + + if (lineModel.cubicInterpolationMode === 'monotone') { + helpers$1.splineCurveMonotone(points); + } else { + for (i = 0, ilen = points.length; i < ilen; ++i) { + model = points[i]._model; + controlPoints = helpers$1.splineCurve( + helpers$1.previousItem(points, i)._model, + model, + helpers$1.nextItem(points, i)._model, + lineModel.tension + ); + model.controlPointPreviousX = controlPoints.previous.x; + model.controlPointPreviousY = controlPoints.previous.y; + model.controlPointNextX = controlPoints.next.x; + model.controlPointNextY = controlPoints.next.y; + } + } + + if (chart.options.elements.line.capBezierPoints) { + for (i = 0, ilen = points.length; i < ilen; ++i) { + model = points[i]._model; + if (isPointInArea(model, area)) { + if (i > 0 && isPointInArea(points[i - 1]._model, area)) { + model.controlPointPreviousX = capControlPoint(model.controlPointPreviousX, area.left, area.right); + model.controlPointPreviousY = capControlPoint(model.controlPointPreviousY, area.top, area.bottom); + } + if (i < points.length - 1 && isPointInArea(points[i + 1]._model, area)) { + model.controlPointNextX = capControlPoint(model.controlPointNextX, area.left, area.right); + model.controlPointNextY = capControlPoint(model.controlPointNextY, area.top, area.bottom); + } + } + } + } + }, + + draw: function() { + var me = this; + var chart = me.chart; + var meta = me.getMeta(); + var points = meta.data || []; + var area = chart.chartArea; + var ilen = points.length; + var halfBorderWidth; + var i = 0; + + if (lineEnabled(me.getDataset(), chart.options)) { + halfBorderWidth = (meta.dataset._model.borderWidth || 0) / 2; + + helpers$1.canvas.clipArea(chart.ctx, { + left: area.left, + right: area.right, + top: area.top - halfBorderWidth, + bottom: area.bottom + halfBorderWidth + }); + + meta.dataset.draw(); + + helpers$1.canvas.unclipArea(chart.ctx); + } + + // Draw the points + for (; i < ilen; ++i) { + points[i].draw(area); + } + }, + + /** + * @protected + */ + setHoverStyle: function(point) { + var model = point._model; + var options = point._options; + var getHoverColor = helpers$1.getHoverColor; + + point.$previousStyle = { + backgroundColor: model.backgroundColor, + borderColor: model.borderColor, + borderWidth: model.borderWidth, + radius: model.radius + }; + + model.backgroundColor = valueOrDefault$5(options.hoverBackgroundColor, getHoverColor(options.backgroundColor)); + model.borderColor = valueOrDefault$5(options.hoverBorderColor, getHoverColor(options.borderColor)); + model.borderWidth = valueOrDefault$5(options.hoverBorderWidth, options.borderWidth); + model.radius = valueOrDefault$5(options.hoverRadius, options.radius); + }, +}); + +var resolve$5 = helpers$1.options.resolve; + +core_defaults._set('polarArea', { + scale: { + type: 'radialLinear', + angleLines: { + display: false + }, + gridLines: { + circular: true + }, + pointLabels: { + display: false + }, + ticks: { + beginAtZero: true + } + }, + + // Boolean - Whether to animate the rotation of the chart + animation: { + animateRotate: true, + animateScale: true + }, + + startAngle: -0.5 * Math.PI, + legendCallback: function(chart) { + var text = []; + text.push('<ul class="' + chart.id + '-legend">'); + + var data = chart.data; + var datasets = data.datasets; + var labels = data.labels; + + if (datasets.length) { + for (var i = 0; i < datasets[0].data.length; ++i) { + text.push('<li><span style="background-color:' + datasets[0].backgroundColor[i] + '"></span>'); + if (labels[i]) { + text.push(labels[i]); + } + text.push('</li>'); + } + } + + text.push('</ul>'); + return text.join(''); + }, + legend: { + labels: { + generateLabels: function(chart) { + var data = chart.data; + if (data.labels.length && data.datasets.length) { + return data.labels.map(function(label, i) { + var meta = chart.getDatasetMeta(0); + var ds = data.datasets[0]; + var arc = meta.data[i]; + var custom = arc.custom || {}; + var arcOpts = chart.options.elements.arc; + var fill = resolve$5([custom.backgroundColor, ds.backgroundColor, arcOpts.backgroundColor], undefined, i); + var stroke = resolve$5([custom.borderColor, ds.borderColor, arcOpts.borderColor], undefined, i); + var bw = resolve$5([custom.borderWidth, ds.borderWidth, arcOpts.borderWidth], undefined, i); + + return { + text: label, + fillStyle: fill, + strokeStyle: stroke, + lineWidth: bw, + hidden: isNaN(ds.data[i]) || meta.data[i].hidden, + + // Extra data used for toggling the correct item + index: i + }; + }); + } + return []; + } + }, + + onClick: function(e, legendItem) { + var index = legendItem.index; + var chart = this.chart; + var i, ilen, meta; + + for (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) { + meta = chart.getDatasetMeta(i); + meta.data[index].hidden = !meta.data[index].hidden; + } + + chart.update(); + } + }, + + // Need to override these to give a nice default + tooltips: { + callbacks: { + title: function() { + return ''; + }, + label: function(item, data) { + return data.labels[item.index] + ': ' + item.yLabel; + } + } + } +}); + +var controller_polarArea = core_datasetController.extend({ + + dataElementType: elements.Arc, + + linkScales: helpers$1.noop, + + update: function(reset) { + var me = this; + var dataset = me.getDataset(); + var meta = me.getMeta(); + var start = me.chart.options.startAngle || 0; + var starts = me._starts = []; + var angles = me._angles = []; + var arcs = meta.data; + var i, ilen, angle; + + me._updateRadius(); + + meta.count = me.countVisibleElements(); + + for (i = 0, ilen = dataset.data.length; i < ilen; i++) { + starts[i] = start; + angle = me._computeAngle(i); + angles[i] = angle; + start += angle; + } + + for (i = 0, ilen = arcs.length; i < ilen; ++i) { + arcs[i]._options = me._resolveElementOptions(arcs[i], i); + me.updateElement(arcs[i], i, reset); + } + }, + + /** + * @private + */ + _updateRadius: function() { + var me = this; + var chart = me.chart; + var chartArea = chart.chartArea; + var opts = chart.options; + var minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top); + + chart.outerRadius = Math.max(minSize / 2, 0); + chart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0); + chart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount(); + + me.outerRadius = chart.outerRadius - (chart.radiusLength * me.index); + me.innerRadius = me.outerRadius - chart.radiusLength; + }, + + updateElement: function(arc, index, reset) { + var me = this; + var chart = me.chart; + var dataset = me.getDataset(); + var opts = chart.options; + var animationOpts = opts.animation; + var scale = chart.scale; + var labels = chart.data.labels; + + var centerX = scale.xCenter; + var centerY = scale.yCenter; + + // var negHalfPI = -0.5 * Math.PI; + var datasetStartAngle = opts.startAngle; + var distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]); + var startAngle = me._starts[index]; + var endAngle = startAngle + (arc.hidden ? 0 : me._angles[index]); + + var resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]); + var options = arc._options || {}; + + helpers$1.extend(arc, { + // Utility + _datasetIndex: me.index, + _index: index, + _scale: scale, + + // Desired view properties + _model: { + backgroundColor: options.backgroundColor, + borderColor: options.borderColor, + borderWidth: options.borderWidth, + borderAlign: options.borderAlign, + x: centerX, + y: centerY, + innerRadius: 0, + outerRadius: reset ? resetRadius : distance, + startAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle, + endAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle, + label: helpers$1.valueAtIndexOrDefault(labels, index, labels[index]) + } + }); + + arc.pivot(); + }, + + countVisibleElements: function() { + var dataset = this.getDataset(); + var meta = this.getMeta(); + var count = 0; + + helpers$1.each(meta.data, function(element, index) { + if (!isNaN(dataset.data[index]) && !element.hidden) { + count++; + } + }); + + return count; + }, + + /** + * @protected + */ + setHoverStyle: function(arc) { + var model = arc._model; + var options = arc._options; + var getHoverColor = helpers$1.getHoverColor; + var valueOrDefault = helpers$1.valueOrDefault; + + arc.$previousStyle = { + backgroundColor: model.backgroundColor, + borderColor: model.borderColor, + borderWidth: model.borderWidth, + }; + + model.backgroundColor = valueOrDefault(options.hoverBackgroundColor, getHoverColor(options.backgroundColor)); + model.borderColor = valueOrDefault(options.hoverBorderColor, getHoverColor(options.borderColor)); + model.borderWidth = valueOrDefault(options.hoverBorderWidth, options.borderWidth); + }, + + /** + * @private + */ + _resolveElementOptions: function(arc, index) { + var me = this; + var chart = me.chart; + var dataset = me.getDataset(); + var custom = arc.custom || {}; + var options = chart.options.elements.arc; + var values = {}; + var i, ilen, key; + + // Scriptable options + var context = { + chart: chart, + dataIndex: index, + dataset: dataset, + datasetIndex: me.index + }; + + var keys = [ + 'backgroundColor', + 'borderColor', + 'borderWidth', + 'borderAlign', + 'hoverBackgroundColor', + 'hoverBorderColor', + 'hoverBorderWidth', + ]; + + for (i = 0, ilen = keys.length; i < ilen; ++i) { + key = keys[i]; + values[key] = resolve$5([ + custom[key], + dataset[key], + options[key] + ], context, index); + } + + return values; + }, + + /** + * @private + */ + _computeAngle: function(index) { + var me = this; + var count = this.getMeta().count; + var dataset = me.getDataset(); + var meta = me.getMeta(); + + if (isNaN(dataset.data[index]) || meta.data[index].hidden) { + return 0; + } + + // Scriptable options + var context = { + chart: me.chart, + dataIndex: index, + dataset: dataset, + datasetIndex: me.index + }; + + return resolve$5([ + me.chart.options.elements.arc.angle, + (2 * Math.PI) / count + ], context, index); + } +}); + +core_defaults._set('pie', helpers$1.clone(core_defaults.doughnut)); +core_defaults._set('pie', { + cutoutPercentage: 0 +}); + +// Pie charts are Doughnut chart with different defaults +var controller_pie = controller_doughnut; + +var valueOrDefault$6 = helpers$1.valueOrDefault; +var resolve$6 = helpers$1.options.resolve; + +core_defaults._set('radar', { + scale: { + type: 'radialLinear' + }, + elements: { + line: { + tension: 0 // no bezier in radar + } + } +}); + +var controller_radar = core_datasetController.extend({ + + datasetElementType: elements.Line, + + dataElementType: elements.Point, + + linkScales: helpers$1.noop, + + update: function(reset) { + var me = this; + var meta = me.getMeta(); + var line = meta.dataset; + var points = meta.data || []; + var scale = me.chart.scale; + var dataset = me.getDataset(); + var i, ilen; + + // Compatibility: If the properties are defined with only the old name, use those values + if ((dataset.tension !== undefined) && (dataset.lineTension === undefined)) { + dataset.lineTension = dataset.tension; + } + + // Utility + line._scale = scale; + line._datasetIndex = me.index; + // Data + line._children = points; + line._loop = true; + // Model + line._model = me._resolveLineOptions(line); + + line.pivot(); + + // Update Points + for (i = 0, ilen = points.length; i < ilen; ++i) { + me.updateElement(points[i], i, reset); + } + + // Update bezier control points + me.updateBezierControlPoints(); + + // Now pivot the point for animation + for (i = 0, ilen = points.length; i < ilen; ++i) { + points[i].pivot(); + } + }, + + updateElement: function(point, index, reset) { + var me = this; + var custom = point.custom || {}; + var dataset = me.getDataset(); + var scale = me.chart.scale; + var pointPosition = scale.getPointPositionForValue(index, dataset.data[index]); + var options = me._resolvePointOptions(point, index); + var lineModel = me.getMeta().dataset._model; + var x = reset ? scale.xCenter : pointPosition.x; + var y = reset ? scale.yCenter : pointPosition.y; + + // Utility + point._scale = scale; + point._options = options; + point._datasetIndex = me.index; + point._index = index; + + // Desired view properties + point._model = { + x: x, // value not used in dataset scale, but we want a consistent API between scales + y: y, + skip: custom.skip || isNaN(x) || isNaN(y), + // Appearance + radius: options.radius, + pointStyle: options.pointStyle, + rotation: options.rotation, + backgroundColor: options.backgroundColor, + borderColor: options.borderColor, + borderWidth: options.borderWidth, + tension: valueOrDefault$6(custom.tension, lineModel ? lineModel.tension : 0), + + // Tooltip + hitRadius: options.hitRadius + }; + }, + + /** + * @private + */ + _resolvePointOptions: function(element, index) { + var me = this; + var chart = me.chart; + var dataset = chart.data.datasets[me.index]; + var custom = element.custom || {}; + var options = chart.options.elements.point; + var values = {}; + var i, ilen, key; + + // Scriptable options + var context = { + chart: chart, + dataIndex: index, + dataset: dataset, + datasetIndex: me.index + }; + + var ELEMENT_OPTIONS = { + backgroundColor: 'pointBackgroundColor', + borderColor: 'pointBorderColor', + borderWidth: 'pointBorderWidth', + hitRadius: 'pointHitRadius', + hoverBackgroundColor: 'pointHoverBackgroundColor', + hoverBorderColor: 'pointHoverBorderColor', + hoverBorderWidth: 'pointHoverBorderWidth', + hoverRadius: 'pointHoverRadius', + pointStyle: 'pointStyle', + radius: 'pointRadius', + rotation: 'pointRotation' + }; + var keys = Object.keys(ELEMENT_OPTIONS); + + for (i = 0, ilen = keys.length; i < ilen; ++i) { + key = keys[i]; + values[key] = resolve$6([ + custom[key], + dataset[ELEMENT_OPTIONS[key]], + dataset[key], + options[key] + ], context, index); + } + + return values; + }, + + /** + * @private + */ + _resolveLineOptions: function(element) { + var me = this; + var chart = me.chart; + var dataset = chart.data.datasets[me.index]; + var custom = element.custom || {}; + var options = chart.options.elements.line; + var values = {}; + var i, ilen, key; + + var keys = [ + 'backgroundColor', + 'borderWidth', + 'borderColor', + 'borderCapStyle', + 'borderDash', + 'borderDashOffset', + 'borderJoinStyle', + 'fill' + ]; + + for (i = 0, ilen = keys.length; i < ilen; ++i) { + key = keys[i]; + values[key] = resolve$6([ + custom[key], + dataset[key], + options[key] + ]); + } + + values.tension = valueOrDefault$6(dataset.lineTension, options.tension); + + return values; + }, + + updateBezierControlPoints: function() { + var me = this; + var meta = me.getMeta(); + var area = me.chart.chartArea; + var points = meta.data || []; + var i, ilen, model, controlPoints; + + function capControlPoint(pt, min, max) { + return Math.max(Math.min(pt, max), min); + } + + for (i = 0, ilen = points.length; i < ilen; ++i) { + model = points[i]._model; + controlPoints = helpers$1.splineCurve( + helpers$1.previousItem(points, i, true)._model, + model, + helpers$1.nextItem(points, i, true)._model, + model.tension + ); + + // Prevent the bezier going outside of the bounds of the graph + model.controlPointPreviousX = capControlPoint(controlPoints.previous.x, area.left, area.right); + model.controlPointPreviousY = capControlPoint(controlPoints.previous.y, area.top, area.bottom); + model.controlPointNextX = capControlPoint(controlPoints.next.x, area.left, area.right); + model.controlPointNextY = capControlPoint(controlPoints.next.y, area.top, area.bottom); + } + }, + + setHoverStyle: function(point) { + var model = point._model; + var options = point._options; + var getHoverColor = helpers$1.getHoverColor; + + point.$previousStyle = { + backgroundColor: model.backgroundColor, + borderColor: model.borderColor, + borderWidth: model.borderWidth, + radius: model.radius + }; + + model.backgroundColor = valueOrDefault$6(options.hoverBackgroundColor, getHoverColor(options.backgroundColor)); + model.borderColor = valueOrDefault$6(options.hoverBorderColor, getHoverColor(options.borderColor)); + model.borderWidth = valueOrDefault$6(options.hoverBorderWidth, options.borderWidth); + model.radius = valueOrDefault$6(options.hoverRadius, options.radius); + } +}); + +core_defaults._set('scatter', { + hover: { + mode: 'single' + }, + + scales: { + xAxes: [{ + id: 'x-axis-1', // need an ID so datasets can reference the scale + type: 'linear', // scatter should not use a category axis + position: 'bottom' + }], + yAxes: [{ + id: 'y-axis-1', + type: 'linear', + position: 'left' + }] + }, + + showLines: false, + + tooltips: { + callbacks: { + title: function() { + return ''; // doesn't make sense for scatter since data are formatted as a point + }, + label: function(item) { + return '(' + item.xLabel + ', ' + item.yLabel + ')'; + } + } + } +}); + +// Scatter charts use line controllers +var controller_scatter = controller_line; + +// NOTE export a map in which the key represents the controller type, not +// the class, and so must be CamelCase in order to be correctly retrieved +// by the controller in core.controller.js (`controllers[meta.type]`). + +var controllers = { + bar: controller_bar, + bubble: controller_bubble, + doughnut: controller_doughnut, + horizontalBar: controller_horizontalBar, + line: controller_line, + polarArea: controller_polarArea, + pie: controller_pie, + radar: controller_radar, + scatter: controller_scatter +}; + +/** + * Helper function to get relative position for an event + * @param {Event|IEvent} event - The event to get the position for + * @param {Chart} chart - The chart + * @returns {object} the event position + */ +function getRelativePosition(e, chart) { + if (e.native) { + return { + x: e.x, + y: e.y + }; + } + + return helpers$1.getRelativePosition(e, chart); +} + +/** + * Helper function to traverse all of the visible elements in the chart + * @param {Chart} chart - the chart + * @param {function} handler - the callback to execute for each visible item + */ +function parseVisibleItems(chart, handler) { + var datasets = chart.data.datasets; + var meta, i, j, ilen, jlen; + + for (i = 0, ilen = datasets.length; i < ilen; ++i) { + if (!chart.isDatasetVisible(i)) { + continue; + } + + meta = chart.getDatasetMeta(i); + for (j = 0, jlen = meta.data.length; j < jlen; ++j) { + var element = meta.data[j]; + if (!element._view.skip) { + handler(element); + } + } + } +} + +/** + * Helper function to get the items that intersect the event position + * @param {ChartElement[]} items - elements to filter + * @param {object} position - the point to be nearest to + * @return {ChartElement[]} the nearest items + */ +function getIntersectItems(chart, position) { + var elements = []; + + parseVisibleItems(chart, function(element) { + if (element.inRange(position.x, position.y)) { + elements.push(element); + } + }); + + return elements; +} + +/** + * Helper function to get the items nearest to the event position considering all visible items in teh chart + * @param {Chart} chart - the chart to look at elements from + * @param {object} position - the point to be nearest to + * @param {boolean} intersect - if true, only consider items that intersect the position + * @param {function} distanceMetric - function to provide the distance between points + * @return {ChartElement[]} the nearest items + */ +function getNearestItems(chart, position, intersect, distanceMetric) { + var minDistance = Number.POSITIVE_INFINITY; + var nearestItems = []; + + parseVisibleItems(chart, function(element) { + if (intersect && !element.inRange(position.x, position.y)) { + return; + } + + var center = element.getCenterPoint(); + var distance = distanceMetric(position, center); + if (distance < minDistance) { + nearestItems = [element]; + minDistance = distance; + } else if (distance === minDistance) { + // Can have multiple items at the same distance in which case we sort by size + nearestItems.push(element); + } + }); + + return nearestItems; +} + +/** + * Get a distance metric function for two points based on the + * axis mode setting + * @param {string} axis - the axis mode. x|y|xy + */ +function getDistanceMetricForAxis(axis) { + var useX = axis.indexOf('x') !== -1; + var useY = axis.indexOf('y') !== -1; + + return function(pt1, pt2) { + var deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0; + var deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0; + return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2)); + }; +} + +function indexMode(chart, e, options) { + var position = getRelativePosition(e, chart); + // Default axis for index mode is 'x' to match old behaviour + options.axis = options.axis || 'x'; + var distanceMetric = getDistanceMetricForAxis(options.axis); + var items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric); + var elements = []; + + if (!items.length) { + return []; + } + + chart.data.datasets.forEach(function(dataset, datasetIndex) { + if (chart.isDatasetVisible(datasetIndex)) { + var meta = chart.getDatasetMeta(datasetIndex); + var element = meta.data[items[0]._index]; + + // don't count items that are skipped (null data) + if (element && !element._view.skip) { + elements.push(element); + } + } + }); + + return elements; +} + +/** + * @interface IInteractionOptions + */ +/** + * If true, only consider items that intersect the point + * @name IInterfaceOptions#boolean + * @type Boolean + */ + +/** + * Contains interaction related functions + * @namespace Chart.Interaction + */ +var core_interaction = { + // Helper function for different modes + modes: { + single: function(chart, e) { + var position = getRelativePosition(e, chart); + var elements = []; + + parseVisibleItems(chart, function(element) { + if (element.inRange(position.x, position.y)) { + elements.push(element); + return elements; + } + }); + + return elements.slice(0, 1); + }, + + /** + * @function Chart.Interaction.modes.label + * @deprecated since version 2.4.0 + * @todo remove at version 3 + * @private + */ + label: indexMode, + + /** + * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something + * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item + * @function Chart.Interaction.modes.index + * @since v2.4.0 + * @param {Chart} chart - the chart we are returning items from + * @param {Event} e - the event we are find things at + * @param {IInteractionOptions} options - options to use during interaction + * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned + */ + index: indexMode, + + /** + * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something + * If the options.intersect is false, we find the nearest item and return the items in that dataset + * @function Chart.Interaction.modes.dataset + * @param {Chart} chart - the chart we are returning items from + * @param {Event} e - the event we are find things at + * @param {IInteractionOptions} options - options to use during interaction + * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned + */ + dataset: function(chart, e, options) { + var position = getRelativePosition(e, chart); + options.axis = options.axis || 'xy'; + var distanceMetric = getDistanceMetricForAxis(options.axis); + var items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric); + + if (items.length > 0) { + items = chart.getDatasetMeta(items[0]._datasetIndex).data; + } + + return items; + }, + + /** + * @function Chart.Interaction.modes.x-axis + * @deprecated since version 2.4.0. Use index mode and intersect == true + * @todo remove at version 3 + * @private + */ + 'x-axis': function(chart, e) { + return indexMode(chart, e, {intersect: false}); + }, + + /** + * Point mode returns all elements that hit test based on the event position + * of the event + * @function Chart.Interaction.modes.intersect + * @param {Chart} chart - the chart we are returning items from + * @param {Event} e - the event we are find things at + * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned + */ + point: function(chart, e) { + var position = getRelativePosition(e, chart); + return getIntersectItems(chart, position); + }, + + /** + * nearest mode returns the element closest to the point + * @function Chart.Interaction.modes.intersect + * @param {Chart} chart - the chart we are returning items from + * @param {Event} e - the event we are find things at + * @param {IInteractionOptions} options - options to use + * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned + */ + nearest: function(chart, e, options) { + var position = getRelativePosition(e, chart); + options.axis = options.axis || 'xy'; + var distanceMetric = getDistanceMetricForAxis(options.axis); + return getNearestItems(chart, position, options.intersect, distanceMetric); + }, + + /** + * x mode returns the elements that hit-test at the current x coordinate + * @function Chart.Interaction.modes.x + * @param {Chart} chart - the chart we are returning items from + * @param {Event} e - the event we are find things at + * @param {IInteractionOptions} options - options to use + * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned + */ + x: function(chart, e, options) { + var position = getRelativePosition(e, chart); + var items = []; + var intersectsItem = false; + + parseVisibleItems(chart, function(element) { + if (element.inXRange(position.x)) { + items.push(element); + } + + if (element.inRange(position.x, position.y)) { + intersectsItem = true; + } + }); + + // If we want to trigger on an intersect and we don't have any items + // that intersect the position, return nothing + if (options.intersect && !intersectsItem) { + items = []; + } + return items; + }, + + /** + * y mode returns the elements that hit-test at the current y coordinate + * @function Chart.Interaction.modes.y + * @param {Chart} chart - the chart we are returning items from + * @param {Event} e - the event we are find things at + * @param {IInteractionOptions} options - options to use + * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned + */ + y: function(chart, e, options) { + var position = getRelativePosition(e, chart); + var items = []; + var intersectsItem = false; + + parseVisibleItems(chart, function(element) { + if (element.inYRange(position.y)) { + items.push(element); + } + + if (element.inRange(position.x, position.y)) { + intersectsItem = true; + } + }); + + // If we want to trigger on an intersect and we don't have any items + // that intersect the position, return nothing + if (options.intersect && !intersectsItem) { + items = []; + } + return items; + } + } +}; + +function filterByPosition(array, position) { + return helpers$1.where(array, function(v) { + return v.position === position; + }); +} + +function sortByWeight(array, reverse) { + array.forEach(function(v, i) { + v._tmpIndex_ = i; + return v; + }); + array.sort(function(a, b) { + var v0 = reverse ? b : a; + var v1 = reverse ? a : b; + return v0.weight === v1.weight ? + v0._tmpIndex_ - v1._tmpIndex_ : + v0.weight - v1.weight; + }); + array.forEach(function(v) { + delete v._tmpIndex_; + }); +} + +function findMaxPadding(boxes) { + var top = 0; + var left = 0; + var bottom = 0; + var right = 0; + helpers$1.each(boxes, function(box) { + if (box.getPadding) { + var boxPadding = box.getPadding(); + top = Math.max(top, boxPadding.top); + left = Math.max(left, boxPadding.left); + bottom = Math.max(bottom, boxPadding.bottom); + right = Math.max(right, boxPadding.right); + } + }); + return { + top: top, + left: left, + bottom: bottom, + right: right + }; +} + +function addSizeByPosition(boxes, size) { + helpers$1.each(boxes, function(box) { + size[box.position] += box.isHorizontal() ? box.height : box.width; + }); +} + +core_defaults._set('global', { + layout: { + padding: { + top: 0, + right: 0, + bottom: 0, + left: 0 + } + } +}); + +/** + * @interface ILayoutItem + * @prop {string} position - The position of the item in the chart layout. Possible values are + * 'left', 'top', 'right', 'bottom', and 'chartArea' + * @prop {number} weight - The weight used to sort the item. Higher weights are further away from the chart area + * @prop {boolean} fullWidth - if true, and the item is horizontal, then push vertical boxes down + * @prop {function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom) + * @prop {function} update - Takes two parameters: width and height. Returns size of item + * @prop {function} getPadding - Returns an object with padding on the edges + * @prop {number} width - Width of item. Must be valid after update() + * @prop {number} height - Height of item. Must be valid after update() + * @prop {number} left - Left edge of the item. Set by layout system and cannot be used in update + * @prop {number} top - Top edge of the item. Set by layout system and cannot be used in update + * @prop {number} right - Right edge of the item. Set by layout system and cannot be used in update + * @prop {number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update + */ + +// The layout service is very self explanatory. It's responsible for the layout within a chart. +// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need +// It is this service's responsibility of carrying out that layout. +var core_layouts = { + defaults: {}, + + /** + * Register a box to a chart. + * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title. + * @param {Chart} chart - the chart to use + * @param {ILayoutItem} item - the item to add to be layed out + */ + addBox: function(chart, item) { + if (!chart.boxes) { + chart.boxes = []; + } + + // initialize item with default values + item.fullWidth = item.fullWidth || false; + item.position = item.position || 'top'; + item.weight = item.weight || 0; + + chart.boxes.push(item); + }, + + /** + * Remove a layoutItem from a chart + * @param {Chart} chart - the chart to remove the box from + * @param {ILayoutItem} layoutItem - the item to remove from the layout + */ + removeBox: function(chart, layoutItem) { + var index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1; + if (index !== -1) { + chart.boxes.splice(index, 1); + } + }, + + /** + * Sets (or updates) options on the given `item`. + * @param {Chart} chart - the chart in which the item lives (or will be added to) + * @param {ILayoutItem} item - the item to configure with the given options + * @param {object} options - the new item options. + */ + configure: function(chart, item, options) { + var props = ['fullWidth', 'position', 'weight']; + var ilen = props.length; + var i = 0; + var prop; + + for (; i < ilen; ++i) { + prop = props[i]; + if (options.hasOwnProperty(prop)) { + item[prop] = options[prop]; + } + } + }, + + /** + * Fits boxes of the given chart into the given size by having each box measure itself + * then running a fitting algorithm + * @param {Chart} chart - the chart + * @param {number} width - the width to fit into + * @param {number} height - the height to fit into + */ + update: function(chart, width, height) { + if (!chart) { + return; + } + + var layoutOptions = chart.options.layout || {}; + var padding = helpers$1.options.toPadding(layoutOptions.padding); + var leftPadding = padding.left; + var rightPadding = padding.right; + var topPadding = padding.top; + var bottomPadding = padding.bottom; + + var leftBoxes = filterByPosition(chart.boxes, 'left'); + var rightBoxes = filterByPosition(chart.boxes, 'right'); + var topBoxes = filterByPosition(chart.boxes, 'top'); + var bottomBoxes = filterByPosition(chart.boxes, 'bottom'); + var chartAreaBoxes = filterByPosition(chart.boxes, 'chartArea'); + + // Sort boxes by weight. A higher weight is further away from the chart area + sortByWeight(leftBoxes, true); + sortByWeight(rightBoxes, false); + sortByWeight(topBoxes, true); + sortByWeight(bottomBoxes, false); + + var verticalBoxes = leftBoxes.concat(rightBoxes); + var horizontalBoxes = topBoxes.concat(bottomBoxes); + var outerBoxes = verticalBoxes.concat(horizontalBoxes); + + // Essentially we now have any number of boxes on each of the 4 sides. + // Our canvas looks like the following. + // The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and + // B1 is the bottom axis + // There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays + // These locations are single-box locations only, when trying to register a chartArea location that is already taken, + // an error will be thrown. + // + // |----------------------------------------------------| + // | T1 (Full Width) | + // |----------------------------------------------------| + // | | | T2 | | + // | |----|-------------------------------------|----| + // | | | C1 | | C2 | | + // | | |----| |----| | + // | | | | | + // | L1 | L2 | ChartArea (C0) | R1 | + // | | | | | + // | | |----| |----| | + // | | | C3 | | C4 | | + // | |----|-------------------------------------|----| + // | | | B1 | | + // |----------------------------------------------------| + // | B2 (Full Width) | + // |----------------------------------------------------| + // + // What we do to find the best sizing, we do the following + // 1. Determine the minimum size of the chart area. + // 2. Split the remaining width equally between each vertical axis + // 3. Split the remaining height equally between each horizontal axis + // 4. Give each layout the maximum size it can be. The layout will return it's minimum size + // 5. Adjust the sizes of each axis based on it's minimum reported size. + // 6. Refit each axis + // 7. Position each axis in the final location + // 8. Tell the chart the final location of the chart area + // 9. Tell any axes that overlay the chart area the positions of the chart area + + // Step 1 + var chartWidth = width - leftPadding - rightPadding; + var chartHeight = height - topPadding - bottomPadding; + var chartAreaWidth = chartWidth / 2; // min 50% + + // Step 2 + var verticalBoxWidth = (width - chartAreaWidth) / verticalBoxes.length; + + // Step 3 + // TODO re-limit horizontal axis height (this limit has affected only padding calculation since PR 1837) + // var horizontalBoxHeight = (height - chartAreaHeight) / horizontalBoxes.length; + + // Step 4 + var maxChartAreaWidth = chartWidth; + var maxChartAreaHeight = chartHeight; + var outerBoxSizes = {top: topPadding, left: leftPadding, bottom: bottomPadding, right: rightPadding}; + var minBoxSizes = []; + var maxPadding; + + function getMinimumBoxSize(box) { + var minSize; + var isHorizontal = box.isHorizontal(); + + if (isHorizontal) { + minSize = box.update(box.fullWidth ? chartWidth : maxChartAreaWidth, chartHeight / 2); + maxChartAreaHeight -= minSize.height; + } else { + minSize = box.update(verticalBoxWidth, maxChartAreaHeight); + maxChartAreaWidth -= minSize.width; + } + + minBoxSizes.push({ + horizontal: isHorizontal, + width: minSize.width, + box: box, + }); + } + + helpers$1.each(outerBoxes, getMinimumBoxSize); + + // If a horizontal box has padding, we move the left boxes over to avoid ugly charts (see issue #2478) + maxPadding = findMaxPadding(outerBoxes); + + // At this point, maxChartAreaHeight and maxChartAreaWidth are the size the chart area could + // be if the axes are drawn at their minimum sizes. + // Steps 5 & 6 + + // Function to fit a box + function fitBox(box) { + var minBoxSize = helpers$1.findNextWhere(minBoxSizes, function(minBox) { + return minBox.box === box; + }); + + if (minBoxSize) { + if (minBoxSize.horizontal) { + var scaleMargin = { + left: Math.max(outerBoxSizes.left, maxPadding.left), + right: Math.max(outerBoxSizes.right, maxPadding.right), + top: 0, + bottom: 0 + }; + + // Don't use min size here because of label rotation. When the labels are rotated, their rotation highly depends + // on the margin. Sometimes they need to increase in size slightly + box.update(box.fullWidth ? chartWidth : maxChartAreaWidth, chartHeight / 2, scaleMargin); + } else { + box.update(minBoxSize.width, maxChartAreaHeight); + } + } + } + + // Update, and calculate the left and right margins for the horizontal boxes + helpers$1.each(verticalBoxes, fitBox); + addSizeByPosition(verticalBoxes, outerBoxSizes); + + // Set the Left and Right margins for the horizontal boxes + helpers$1.each(horizontalBoxes, fitBox); + addSizeByPosition(horizontalBoxes, outerBoxSizes); + + function finalFitVerticalBox(box) { + var minBoxSize = helpers$1.findNextWhere(minBoxSizes, function(minSize) { + return minSize.box === box; + }); + + var scaleMargin = { + left: 0, + right: 0, + top: outerBoxSizes.top, + bottom: outerBoxSizes.bottom + }; + + if (minBoxSize) { + box.update(minBoxSize.width, maxChartAreaHeight, scaleMargin); + } + } + + // Let the left layout know the final margin + helpers$1.each(verticalBoxes, finalFitVerticalBox); + + // Recalculate because the size of each layout might have changed slightly due to the margins (label rotation for instance) + outerBoxSizes = {top: topPadding, left: leftPadding, bottom: bottomPadding, right: rightPadding}; + addSizeByPosition(outerBoxes, outerBoxSizes); + + // We may be adding some padding to account for rotated x axis labels + var leftPaddingAddition = Math.max(maxPadding.left - outerBoxSizes.left, 0); + outerBoxSizes.left += leftPaddingAddition; + outerBoxSizes.right += Math.max(maxPadding.right - outerBoxSizes.right, 0); + + var topPaddingAddition = Math.max(maxPadding.top - outerBoxSizes.top, 0); + outerBoxSizes.top += topPaddingAddition; + outerBoxSizes.bottom += Math.max(maxPadding.bottom - outerBoxSizes.bottom, 0); + + // Figure out if our chart area changed. This would occur if the dataset layout label rotation + // changed due to the application of the margins in step 6. Since we can only get bigger, this is safe to do + // without calling `fit` again + var newMaxChartAreaHeight = height - outerBoxSizes.top - outerBoxSizes.bottom; + var newMaxChartAreaWidth = width - outerBoxSizes.left - outerBoxSizes.right; + + if (newMaxChartAreaWidth !== maxChartAreaWidth || newMaxChartAreaHeight !== maxChartAreaHeight) { + helpers$1.each(verticalBoxes, function(box) { + box.height = newMaxChartAreaHeight; + }); + + helpers$1.each(horizontalBoxes, function(box) { + if (!box.fullWidth) { + box.width = newMaxChartAreaWidth; + } + }); + + maxChartAreaHeight = newMaxChartAreaHeight; + maxChartAreaWidth = newMaxChartAreaWidth; + } + + // Step 7 - Position the boxes + var left = leftPadding + leftPaddingAddition; + var top = topPadding + topPaddingAddition; + + function placeBox(box) { + if (box.isHorizontal()) { + box.left = box.fullWidth ? leftPadding : outerBoxSizes.left; + box.right = box.fullWidth ? width - rightPadding : outerBoxSizes.left + maxChartAreaWidth; + box.top = top; + box.bottom = top + box.height; + + // Move to next point + top = box.bottom; + + } else { + + box.left = left; + box.right = left + box.width; + box.top = outerBoxSizes.top; + box.bottom = outerBoxSizes.top + maxChartAreaHeight; + + // Move to next point + left = box.right; + } + } + + helpers$1.each(leftBoxes.concat(topBoxes), placeBox); + + // Account for chart width and height + left += maxChartAreaWidth; + top += maxChartAreaHeight; + + helpers$1.each(rightBoxes, placeBox); + helpers$1.each(bottomBoxes, placeBox); + + // Step 8 + chart.chartArea = { + left: outerBoxSizes.left, + top: outerBoxSizes.top, + right: outerBoxSizes.left + maxChartAreaWidth, + bottom: outerBoxSizes.top + maxChartAreaHeight + }; + + // Step 9 + helpers$1.each(chartAreaBoxes, function(box) { + box.left = chart.chartArea.left; + box.top = chart.chartArea.top; + box.right = chart.chartArea.right; + box.bottom = chart.chartArea.bottom; + + box.update(maxChartAreaWidth, maxChartAreaHeight); + }); + } +}; + +/** + * Platform fallback implementation (minimal). + * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939 + */ + +var platform_basic = { + acquireContext: function(item) { + if (item && item.canvas) { + // Support for any object associated to a canvas (including a context2d) + item = item.canvas; + } + + return item && item.getContext('2d') || null; + } +}; + +var platform_dom = "/*\n * DOM element rendering detection\n * https://davidwalsh.name/detect-node-insertion\n */\n@keyframes chartjs-render-animation {\n\tfrom { opacity: 0.99; }\n\tto { opacity: 1; }\n}\n\n.chartjs-render-monitor {\n\tanimation: chartjs-render-animation 0.001s;\n}\n\n/*\n * DOM element resizing detection\n * https://github.com/marcj/css-element-queries\n */\n.chartjs-size-monitor,\n.chartjs-size-monitor-expand,\n.chartjs-size-monitor-shrink {\n\tposition: absolute;\n\tdirection: ltr;\n\tleft: 0;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\toverflow: hidden;\n\tpointer-events: none;\n\tvisibility: hidden;\n\tz-index: -1;\n}\n\n.chartjs-size-monitor-expand > div {\n\tposition: absolute;\n\twidth: 1000000px;\n\theight: 1000000px;\n\tleft: 0;\n\ttop: 0;\n}\n\n.chartjs-size-monitor-shrink > div {\n\tposition: absolute;\n\twidth: 200%;\n\theight: 200%;\n\tleft: 0;\n\ttop: 0;\n}\n"; + +var platform_dom$1 = /*#__PURE__*/Object.freeze({ +default: platform_dom +}); + +function getCjsExportFromNamespace (n) { + return n && n.default || n; +} + +var stylesheet = getCjsExportFromNamespace(platform_dom$1); + +var EXPANDO_KEY = '$chartjs'; +var CSS_PREFIX = 'chartjs-'; +var CSS_SIZE_MONITOR = CSS_PREFIX + 'size-monitor'; +var CSS_RENDER_MONITOR = CSS_PREFIX + 'render-monitor'; +var CSS_RENDER_ANIMATION = CSS_PREFIX + 'render-animation'; +var ANIMATION_START_EVENTS = ['animationstart', 'webkitAnimationStart']; + +/** + * DOM event types -> Chart.js event types. + * Note: only events with different types are mapped. + * @see https://developer.mozilla.org/en-US/docs/Web/Events + */ +var EVENT_TYPES = { + touchstart: 'mousedown', + touchmove: 'mousemove', + touchend: 'mouseup', + pointerenter: 'mouseenter', + pointerdown: 'mousedown', + pointermove: 'mousemove', + pointerup: 'mouseup', + pointerleave: 'mouseout', + pointerout: 'mouseout' +}; + +/** + * The "used" size is the final value of a dimension property after all calculations have + * been performed. This method uses the computed style of `element` but returns undefined + * if the computed style is not expressed in pixels. That can happen in some cases where + * `element` has a size relative to its parent and this last one is not yet displayed, + * for example because of `display: none` on a parent node. + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value + * @returns {number} Size in pixels or undefined if unknown. + */ +function readUsedSize(element, property) { + var value = helpers$1.getStyle(element, property); + var matches = value && value.match(/^(\d+)(\.\d+)?px$/); + return matches ? Number(matches[1]) : undefined; +} + +/** + * Initializes the canvas style and render size without modifying the canvas display size, + * since responsiveness is handled by the controller.resize() method. The config is used + * to determine the aspect ratio to apply in case no explicit height has been specified. + */ +function initCanvas(canvas, config) { + var style = canvas.style; + + // NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it + // returns null or '' if no explicit value has been set to the canvas attribute. + var renderHeight = canvas.getAttribute('height'); + var renderWidth = canvas.getAttribute('width'); + + // Chart.js modifies some canvas values that we want to restore on destroy + canvas[EXPANDO_KEY] = { + initial: { + height: renderHeight, + width: renderWidth, + style: { + display: style.display, + height: style.height, + width: style.width + } + } + }; + + // Force canvas to display as block to avoid extra space caused by inline + // elements, which would interfere with the responsive resize process. + // https://github.com/chartjs/Chart.js/issues/2538 + style.display = style.display || 'block'; + + if (renderWidth === null || renderWidth === '') { + var displayWidth = readUsedSize(canvas, 'width'); + if (displayWidth !== undefined) { + canvas.width = displayWidth; + } + } + + if (renderHeight === null || renderHeight === '') { + if (canvas.style.height === '') { + // If no explicit render height and style height, let's apply the aspect ratio, + // which one can be specified by the user but also by charts as default option + // (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2. + canvas.height = canvas.width / (config.options.aspectRatio || 2); + } else { + var displayHeight = readUsedSize(canvas, 'height'); + if (displayWidth !== undefined) { + canvas.height = displayHeight; + } + } + } + + return canvas; +} + +/** + * Detects support for options object argument in addEventListener. + * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support + * @private + */ +var supportsEventListenerOptions = (function() { + var supports = false; + try { + var options = Object.defineProperty({}, 'passive', { + // eslint-disable-next-line getter-return + get: function() { + supports = true; + } + }); + window.addEventListener('e', null, options); + } catch (e) { + // continue regardless of error + } + return supports; +}()); + +// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events. +// https://github.com/chartjs/Chart.js/issues/4287 +var eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false; + +function addListener(node, type, listener) { + node.addEventListener(type, listener, eventListenerOptions); +} + +function removeListener(node, type, listener) { + node.removeEventListener(type, listener, eventListenerOptions); +} + +function createEvent(type, chart, x, y, nativeEvent) { + return { + type: type, + chart: chart, + native: nativeEvent || null, + x: x !== undefined ? x : null, + y: y !== undefined ? y : null, + }; +} + +function fromNativeEvent(event, chart) { + var type = EVENT_TYPES[event.type] || event.type; + var pos = helpers$1.getRelativePosition(event, chart); + return createEvent(type, chart, pos.x, pos.y, event); +} + +function throttled(fn, thisArg) { + var ticking = false; + var args = []; + + return function() { + args = Array.prototype.slice.call(arguments); + thisArg = thisArg || this; + + if (!ticking) { + ticking = true; + helpers$1.requestAnimFrame.call(window, function() { + ticking = false; + fn.apply(thisArg, args); + }); + } + }; +} + +function createDiv(cls) { + var el = document.createElement('div'); + el.className = cls || ''; + return el; +} + +// Implementation based on https://github.com/marcj/css-element-queries +function createResizer(handler) { + var maxSize = 1000000; + + // NOTE(SB) Don't use innerHTML because it could be considered unsafe. + // https://github.com/chartjs/Chart.js/issues/5902 + var resizer = createDiv(CSS_SIZE_MONITOR); + var expand = createDiv(CSS_SIZE_MONITOR + '-expand'); + var shrink = createDiv(CSS_SIZE_MONITOR + '-shrink'); + + expand.appendChild(createDiv()); + shrink.appendChild(createDiv()); + + resizer.appendChild(expand); + resizer.appendChild(shrink); + resizer._reset = function() { + expand.scrollLeft = maxSize; + expand.scrollTop = maxSize; + shrink.scrollLeft = maxSize; + shrink.scrollTop = maxSize; + }; + + var onScroll = function() { + resizer._reset(); + handler(); + }; + + addListener(expand, 'scroll', onScroll.bind(expand, 'expand')); + addListener(shrink, 'scroll', onScroll.bind(shrink, 'shrink')); + + return resizer; +} + +// https://davidwalsh.name/detect-node-insertion +function watchForRender(node, handler) { + var expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {}); + var proxy = expando.renderProxy = function(e) { + if (e.animationName === CSS_RENDER_ANIMATION) { + handler(); + } + }; + + helpers$1.each(ANIMATION_START_EVENTS, function(type) { + addListener(node, type, proxy); + }); + + // #4737: Chrome might skip the CSS animation when the CSS_RENDER_MONITOR class + // is removed then added back immediately (same animation frame?). Accessing the + // `offsetParent` property will force a reflow and re-evaluate the CSS animation. + // https://gist.github.com/paulirish/5d52fb081b3570c81e3a#box-metrics + // https://github.com/chartjs/Chart.js/issues/4737 + expando.reflow = !!node.offsetParent; + + node.classList.add(CSS_RENDER_MONITOR); +} + +function unwatchForRender(node) { + var expando = node[EXPANDO_KEY] || {}; + var proxy = expando.renderProxy; + + if (proxy) { + helpers$1.each(ANIMATION_START_EVENTS, function(type) { + removeListener(node, type, proxy); + }); + + delete expando.renderProxy; + } + + node.classList.remove(CSS_RENDER_MONITOR); +} + +function addResizeListener(node, listener, chart) { + var expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {}); + + // Let's keep track of this added resizer and thus avoid DOM query when removing it. + var resizer = expando.resizer = createResizer(throttled(function() { + if (expando.resizer) { + var container = chart.options.maintainAspectRatio && node.parentNode; + var w = container ? container.clientWidth : 0; + listener(createEvent('resize', chart)); + if (container && container.clientWidth < w && chart.canvas) { + // If the container size shrank during chart resize, let's assume + // scrollbar appeared. So we resize again with the scrollbar visible - + // effectively making chart smaller and the scrollbar hidden again. + // Because we are inside `throttled`, and currently `ticking`, scroll + // events are ignored during this whole 2 resize process. + // If we assumed wrong and something else happened, we are resizing + // twice in a frame (potential performance issue) + listener(createEvent('resize', chart)); + } + } + })); + + // The resizer needs to be attached to the node parent, so we first need to be + // sure that `node` is attached to the DOM before injecting the resizer element. + watchForRender(node, function() { + if (expando.resizer) { + var container = node.parentNode; + if (container && container !== resizer.parentNode) { + container.insertBefore(resizer, container.firstChild); + } + + // The container size might have changed, let's reset the resizer state. + resizer._reset(); + } + }); +} + +function removeResizeListener(node) { + var expando = node[EXPANDO_KEY] || {}; + var resizer = expando.resizer; + + delete expando.resizer; + unwatchForRender(node); + + if (resizer && resizer.parentNode) { + resizer.parentNode.removeChild(resizer); + } +} + +function injectCSS(platform, css) { + // https://stackoverflow.com/q/3922139 + var style = platform._style || document.createElement('style'); + if (!platform._style) { + platform._style = style; + css = '/* Chart.js */\n' + css; + style.setAttribute('type', 'text/css'); + document.getElementsByTagName('head')[0].appendChild(style); + } + + style.appendChild(document.createTextNode(css)); +} + +var platform_dom$2 = { + /** + * When `true`, prevents the automatic injection of the stylesheet required to + * correctly detect when the chart is added to the DOM and then resized. This + * switch has been added to allow external stylesheet (`dist/Chart(.min)?.js`) + * to be manually imported to make this library compatible with any CSP. + * See https://github.com/chartjs/Chart.js/issues/5208 + */ + disableCSSInjection: false, + + /** + * This property holds whether this platform is enabled for the current environment. + * Currently used by platform.js to select the proper implementation. + * @private + */ + _enabled: typeof window !== 'undefined' && typeof document !== 'undefined', + + /** + * @private + */ + _ensureLoaded: function() { + if (this._loaded) { + return; + } + + this._loaded = true; + + // https://github.com/chartjs/Chart.js/issues/5208 + if (!this.disableCSSInjection) { + injectCSS(this, stylesheet); + } + }, + + acquireContext: function(item, config) { + if (typeof item === 'string') { + item = document.getElementById(item); + } else if (item.length) { + // Support for array based queries (such as jQuery) + item = item[0]; + } + + if (item && item.canvas) { + // Support for any object associated to a canvas (including a context2d) + item = item.canvas; + } + + // To prevent canvas fingerprinting, some add-ons undefine the getContext + // method, for example: https://github.com/kkapsner/CanvasBlocker + // https://github.com/chartjs/Chart.js/issues/2807 + var context = item && item.getContext && item.getContext('2d'); + + // Load platform resources on first chart creation, to make possible to change + // platform options after importing the library (e.g. `disableCSSInjection`). + this._ensureLoaded(); + + // `instanceof HTMLCanvasElement/CanvasRenderingContext2D` fails when the item is + // inside an iframe or when running in a protected environment. We could guess the + // types from their toString() value but let's keep things flexible and assume it's + // a sufficient condition if the item has a context2D which has item as `canvas`. + // https://github.com/chartjs/Chart.js/issues/3887 + // https://github.com/chartjs/Chart.js/issues/4102 + // https://github.com/chartjs/Chart.js/issues/4152 + if (context && context.canvas === item) { + initCanvas(item, config); + return context; + } + + return null; + }, + + releaseContext: function(context) { + var canvas = context.canvas; + if (!canvas[EXPANDO_KEY]) { + return; + } + + var initial = canvas[EXPANDO_KEY].initial; + ['height', 'width'].forEach(function(prop) { + var value = initial[prop]; + if (helpers$1.isNullOrUndef(value)) { + canvas.removeAttribute(prop); + } else { + canvas.setAttribute(prop, value); + } + }); + + helpers$1.each(initial.style || {}, function(value, key) { + canvas.style[key] = value; + }); + + // The canvas render size might have been changed (and thus the state stack discarded), + // we can't use save() and restore() to restore the initial state. So make sure that at + // least the canvas context is reset to the default state by setting the canvas width. + // https://www.w3.org/TR/2011/WD-html5-20110525/the-canvas-element.html + // eslint-disable-next-line no-self-assign + canvas.width = canvas.width; + + delete canvas[EXPANDO_KEY]; + }, + + addEventListener: function(chart, type, listener) { + var canvas = chart.canvas; + if (type === 'resize') { + // Note: the resize event is not supported on all browsers. + addResizeListener(canvas, listener, chart); + return; + } + + var expando = listener[EXPANDO_KEY] || (listener[EXPANDO_KEY] = {}); + var proxies = expando.proxies || (expando.proxies = {}); + var proxy = proxies[chart.id + '_' + type] = function(event) { + listener(fromNativeEvent(event, chart)); + }; + + addListener(canvas, type, proxy); + }, + + removeEventListener: function(chart, type, listener) { + var canvas = chart.canvas; + if (type === 'resize') { + // Note: the resize event is not supported on all browsers. + removeResizeListener(canvas); + return; + } + + var expando = listener[EXPANDO_KEY] || {}; + var proxies = expando.proxies || {}; + var proxy = proxies[chart.id + '_' + type]; + if (!proxy) { + return; + } + + removeListener(canvas, type, proxy); + } +}; + +// DEPRECATIONS + +/** + * Provided for backward compatibility, use EventTarget.addEventListener instead. + * EventTarget.addEventListener compatibility: Chrome, Opera 7, Safari, FF1.5+, IE9+ + * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener + * @function Chart.helpers.addEvent + * @deprecated since version 2.7.0 + * @todo remove at version 3 + * @private + */ +helpers$1.addEvent = addListener; + +/** + * Provided for backward compatibility, use EventTarget.removeEventListener instead. + * EventTarget.removeEventListener compatibility: Chrome, Opera 7, Safari, FF1.5+, IE9+ + * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener + * @function Chart.helpers.removeEvent + * @deprecated since version 2.7.0 + * @todo remove at version 3 + * @private + */ +helpers$1.removeEvent = removeListener; + +// @TODO Make possible to select another platform at build time. +var implementation = platform_dom$2._enabled ? platform_dom$2 : platform_basic; + +/** + * @namespace Chart.platform + * @see https://chartjs.gitbooks.io/proposals/content/Platform.html + * @since 2.4.0 + */ +var platform = helpers$1.extend({ + /** + * @since 2.7.0 + */ + initialize: function() {}, + + /** + * Called at chart construction time, returns a context2d instance implementing + * the [W3C Canvas 2D Context API standard]{@link https://www.w3.org/TR/2dcontext/}. + * @param {*} item - The native item from which to acquire context (platform specific) + * @param {object} options - The chart options + * @returns {CanvasRenderingContext2D} context2d instance + */ + acquireContext: function() {}, + + /** + * Called at chart destruction time, releases any resources associated to the context + * previously returned by the acquireContext() method. + * @param {CanvasRenderingContext2D} context - The context2d instance + * @returns {boolean} true if the method succeeded, else false + */ + releaseContext: function() {}, + + /** + * Registers the specified listener on the given chart. + * @param {Chart} chart - Chart from which to listen for event + * @param {string} type - The ({@link IEvent}) type to listen for + * @param {function} listener - Receives a notification (an object that implements + * the {@link IEvent} interface) when an event of the specified type occurs. + */ + addEventListener: function() {}, + + /** + * Removes the specified listener previously registered with addEventListener. + * @param {Chart} chart - Chart from which to remove the listener + * @param {string} type - The ({@link IEvent}) type to remove + * @param {function} listener - The listener function to remove from the event target. + */ + removeEventListener: function() {} + +}, implementation); + +core_defaults._set('global', { + plugins: {} +}); + +/** + * The plugin service singleton + * @namespace Chart.plugins + * @since 2.1.0 + */ +var core_plugins = { + /** + * Globally registered plugins. + * @private + */ + _plugins: [], + + /** + * This identifier is used to invalidate the descriptors cache attached to each chart + * when a global plugin is registered or unregistered. In this case, the cache ID is + * incremented and descriptors are regenerated during following API calls. + * @private + */ + _cacheId: 0, + + /** + * Registers the given plugin(s) if not already registered. + * @param {IPlugin[]|IPlugin} plugins plugin instance(s). + */ + register: function(plugins) { + var p = this._plugins; + ([]).concat(plugins).forEach(function(plugin) { + if (p.indexOf(plugin) === -1) { + p.push(plugin); + } + }); + + this._cacheId++; + }, + + /** + * Unregisters the given plugin(s) only if registered. + * @param {IPlugin[]|IPlugin} plugins plugin instance(s). + */ + unregister: function(plugins) { + var p = this._plugins; + ([]).concat(plugins).forEach(function(plugin) { + var idx = p.indexOf(plugin); + if (idx !== -1) { + p.splice(idx, 1); + } + }); + + this._cacheId++; + }, + + /** + * Remove all registered plugins. + * @since 2.1.5 + */ + clear: function() { + this._plugins = []; + this._cacheId++; + }, + + /** + * Returns the number of registered plugins? + * @returns {number} + * @since 2.1.5 + */ + count: function() { + return this._plugins.length; + }, + + /** + * Returns all registered plugin instances. + * @returns {IPlugin[]} array of plugin objects. + * @since 2.1.5 + */ + getAll: function() { + return this._plugins; + }, + + /** + * Calls enabled plugins for `chart` on the specified hook and with the given args. + * This method immediately returns as soon as a plugin explicitly returns false. The + * returned value can be used, for instance, to interrupt the current action. + * @param {Chart} chart - The chart instance for which plugins should be called. + * @param {string} hook - The name of the plugin method to call (e.g. 'beforeUpdate'). + * @param {Array} [args] - Extra arguments to apply to the hook call. + * @returns {boolean} false if any of the plugins return false, else returns true. + */ + notify: function(chart, hook, args) { + var descriptors = this.descriptors(chart); + var ilen = descriptors.length; + var i, descriptor, plugin, params, method; + + for (i = 0; i < ilen; ++i) { + descriptor = descriptors[i]; + plugin = descriptor.plugin; + method = plugin[hook]; + if (typeof method === 'function') { + params = [chart].concat(args || []); + params.push(descriptor.options); + if (method.apply(plugin, params) === false) { + return false; + } + } + } + + return true; + }, + + /** + * Returns descriptors of enabled plugins for the given chart. + * @returns {object[]} [{ plugin, options }] + * @private + */ + descriptors: function(chart) { + var cache = chart.$plugins || (chart.$plugins = {}); + if (cache.id === this._cacheId) { + return cache.descriptors; + } + + var plugins = []; + var descriptors = []; + var config = (chart && chart.config) || {}; + var options = (config.options && config.options.plugins) || {}; + + this._plugins.concat(config.plugins || []).forEach(function(plugin) { + var idx = plugins.indexOf(plugin); + if (idx !== -1) { + return; + } + + var id = plugin.id; + var opts = options[id]; + if (opts === false) { + return; + } + + if (opts === true) { + opts = helpers$1.clone(core_defaults.global.plugins[id]); + } + + plugins.push(plugin); + descriptors.push({ + plugin: plugin, + options: opts || {} + }); + }); + + cache.descriptors = descriptors; + cache.id = this._cacheId; + return descriptors; + }, + + /** + * Invalidates cache for the given chart: descriptors hold a reference on plugin option, + * but in some cases, this reference can be changed by the user when updating options. + * https://github.com/chartjs/Chart.js/issues/5111#issuecomment-355934167 + * @private + */ + _invalidate: function(chart) { + delete chart.$plugins; + } +}; + +var core_scaleService = { + // Scale registration object. Extensions can register new scale types (such as log or DB scales) and then + // use the new chart options to grab the correct scale + constructors: {}, + // Use a registration function so that we can move to an ES6 map when we no longer need to support + // old browsers + + // Scale config defaults + defaults: {}, + registerScaleType: function(type, scaleConstructor, scaleDefaults) { + this.constructors[type] = scaleConstructor; + this.defaults[type] = helpers$1.clone(scaleDefaults); + }, + getScaleConstructor: function(type) { + return this.constructors.hasOwnProperty(type) ? this.constructors[type] : undefined; + }, + getScaleDefaults: function(type) { + // Return the scale defaults merged with the global settings so that we always use the latest ones + return this.defaults.hasOwnProperty(type) ? helpers$1.merge({}, [core_defaults.scale, this.defaults[type]]) : {}; + }, + updateScaleDefaults: function(type, additions) { + var me = this; + if (me.defaults.hasOwnProperty(type)) { + me.defaults[type] = helpers$1.extend(me.defaults[type], additions); + } + }, + addScalesToLayout: function(chart) { + // Adds each scale to the chart.boxes array to be sized accordingly + helpers$1.each(chart.scales, function(scale) { + // Set ILayoutItem parameters for backwards compatibility + scale.fullWidth = scale.options.fullWidth; + scale.position = scale.options.position; + scale.weight = scale.options.weight; + core_layouts.addBox(chart, scale); + }); + } +}; + +var valueOrDefault$7 = helpers$1.valueOrDefault; + +core_defaults._set('global', { + tooltips: { + enabled: true, + custom: null, + mode: 'nearest', + position: 'average', + intersect: true, + backgroundColor: 'rgba(0,0,0,0.8)', + titleFontStyle: 'bold', + titleSpacing: 2, + titleMarginBottom: 6, + titleFontColor: '#fff', + titleAlign: 'left', + bodySpacing: 2, + bodyFontColor: '#fff', + bodyAlign: 'left', + footerFontStyle: 'bold', + footerSpacing: 2, + footerMarginTop: 6, + footerFontColor: '#fff', + footerAlign: 'left', + yPadding: 6, + xPadding: 6, + caretPadding: 2, + caretSize: 5, + cornerRadius: 6, + multiKeyBackground: '#fff', + displayColors: true, + borderColor: 'rgba(0,0,0,0)', + borderWidth: 0, + callbacks: { + // Args are: (tooltipItems, data) + beforeTitle: helpers$1.noop, + title: function(tooltipItems, data) { + var title = ''; + var labels = data.labels; + var labelCount = labels ? labels.length : 0; + + if (tooltipItems.length > 0) { + var item = tooltipItems[0]; + if (item.label) { + title = item.label; + } else if (item.xLabel) { + title = item.xLabel; + } else if (labelCount > 0 && item.index < labelCount) { + title = labels[item.index]; + } + } + + return title; + }, + afterTitle: helpers$1.noop, + + // Args are: (tooltipItems, data) + beforeBody: helpers$1.noop, + + // Args are: (tooltipItem, data) + beforeLabel: helpers$1.noop, + label: function(tooltipItem, data) { + var label = data.datasets[tooltipItem.datasetIndex].label || ''; + + if (label) { + label += ': '; + } + if (!helpers$1.isNullOrUndef(tooltipItem.value)) { + label += tooltipItem.value; + } else { + label += tooltipItem.yLabel; + } + return label; + }, + labelColor: function(tooltipItem, chart) { + var meta = chart.getDatasetMeta(tooltipItem.datasetIndex); + var activeElement = meta.data[tooltipItem.index]; + var view = activeElement._view; + return { + borderColor: view.borderColor, + backgroundColor: view.backgroundColor + }; + }, + labelTextColor: function() { + return this._options.bodyFontColor; + }, + afterLabel: helpers$1.noop, + + // Args are: (tooltipItems, data) + afterBody: helpers$1.noop, + + // Args are: (tooltipItems, data) + beforeFooter: helpers$1.noop, + footer: helpers$1.noop, + afterFooter: helpers$1.noop + } + } +}); + +var positioners = { + /** + * Average mode places the tooltip at the average position of the elements shown + * @function Chart.Tooltip.positioners.average + * @param elements {ChartElement[]} the elements being displayed in the tooltip + * @returns {object} tooltip position + */ + average: function(elements) { + if (!elements.length) { + return false; + } + + var i, len; + var x = 0; + var y = 0; + var count = 0; + + for (i = 0, len = elements.length; i < len; ++i) { + var el = elements[i]; + if (el && el.hasValue()) { + var pos = el.tooltipPosition(); + x += pos.x; + y += pos.y; + ++count; + } + } + + return { + x: x / count, + y: y / count + }; + }, + + /** + * Gets the tooltip position nearest of the item nearest to the event position + * @function Chart.Tooltip.positioners.nearest + * @param elements {Chart.Element[]} the tooltip elements + * @param eventPosition {object} the position of the event in canvas coordinates + * @returns {object} the tooltip position + */ + nearest: function(elements, eventPosition) { + var x = eventPosition.x; + var y = eventPosition.y; + var minDistance = Number.POSITIVE_INFINITY; + var i, len, nearestElement; + + for (i = 0, len = elements.length; i < len; ++i) { + var el = elements[i]; + if (el && el.hasValue()) { + var center = el.getCenterPoint(); + var d = helpers$1.distanceBetweenPoints(eventPosition, center); + + if (d < minDistance) { + minDistance = d; + nearestElement = el; + } + } + } + + if (nearestElement) { + var tp = nearestElement.tooltipPosition(); + x = tp.x; + y = tp.y; + } + + return { + x: x, + y: y + }; + } +}; + +// Helper to push or concat based on if the 2nd parameter is an array or not +function pushOrConcat(base, toPush) { + if (toPush) { + if (helpers$1.isArray(toPush)) { + // base = base.concat(toPush); + Array.prototype.push.apply(base, toPush); + } else { + base.push(toPush); + } + } + + return base; +} + +/** + * Returns array of strings split by newline + * @param {string} value - The value to split by newline. + * @returns {string[]} value if newline present - Returned from String split() method + * @function + */ +function splitNewlines(str) { + if ((typeof str === 'string' || str instanceof String) && str.indexOf('\n') > -1) { + return str.split('\n'); + } + return str; +} + + +/** + * Private helper to create a tooltip item model + * @param element - the chart element (point, arc, bar) to create the tooltip item for + * @return new tooltip item + */ +function createTooltipItem(element) { + var xScale = element._xScale; + var yScale = element._yScale || element._scale; // handle radar || polarArea charts + var index = element._index; + var datasetIndex = element._datasetIndex; + var controller = element._chart.getDatasetMeta(datasetIndex).controller; + var indexScale = controller._getIndexScale(); + var valueScale = controller._getValueScale(); + + return { + xLabel: xScale ? xScale.getLabelForIndex(index, datasetIndex) : '', + yLabel: yScale ? yScale.getLabelForIndex(index, datasetIndex) : '', + label: indexScale ? '' + indexScale.getLabelForIndex(index, datasetIndex) : '', + value: valueScale ? '' + valueScale.getLabelForIndex(index, datasetIndex) : '', + index: index, + datasetIndex: datasetIndex, + x: element._model.x, + y: element._model.y + }; +} + +/** + * Helper to get the reset model for the tooltip + * @param tooltipOpts {object} the tooltip options + */ +function getBaseModel(tooltipOpts) { + var globalDefaults = core_defaults.global; + + return { + // Positioning + xPadding: tooltipOpts.xPadding, + yPadding: tooltipOpts.yPadding, + xAlign: tooltipOpts.xAlign, + yAlign: tooltipOpts.yAlign, + + // Body + bodyFontColor: tooltipOpts.bodyFontColor, + _bodyFontFamily: valueOrDefault$7(tooltipOpts.bodyFontFamily, globalDefaults.defaultFontFamily), + _bodyFontStyle: valueOrDefault$7(tooltipOpts.bodyFontStyle, globalDefaults.defaultFontStyle), + _bodyAlign: tooltipOpts.bodyAlign, + bodyFontSize: valueOrDefault$7(tooltipOpts.bodyFontSize, globalDefaults.defaultFontSize), + bodySpacing: tooltipOpts.bodySpacing, + + // Title + titleFontColor: tooltipOpts.titleFontColor, + _titleFontFamily: valueOrDefault$7(tooltipOpts.titleFontFamily, globalDefaults.defaultFontFamily), + _titleFontStyle: valueOrDefault$7(tooltipOpts.titleFontStyle, globalDefaults.defaultFontStyle), + titleFontSize: valueOrDefault$7(tooltipOpts.titleFontSize, globalDefaults.defaultFontSize), + _titleAlign: tooltipOpts.titleAlign, + titleSpacing: tooltipOpts.titleSpacing, + titleMarginBottom: tooltipOpts.titleMarginBottom, + + // Footer + footerFontColor: tooltipOpts.footerFontColor, + _footerFontFamily: valueOrDefault$7(tooltipOpts.footerFontFamily, globalDefaults.defaultFontFamily), + _footerFontStyle: valueOrDefault$7(tooltipOpts.footerFontStyle, globalDefaults.defaultFontStyle), + footerFontSize: valueOrDefault$7(tooltipOpts.footerFontSize, globalDefaults.defaultFontSize), + _footerAlign: tooltipOpts.footerAlign, + footerSpacing: tooltipOpts.footerSpacing, + footerMarginTop: tooltipOpts.footerMarginTop, + + // Appearance + caretSize: tooltipOpts.caretSize, + cornerRadius: tooltipOpts.cornerRadius, + backgroundColor: tooltipOpts.backgroundColor, + opacity: 0, + legendColorBackground: tooltipOpts.multiKeyBackground, + displayColors: tooltipOpts.displayColors, + borderColor: tooltipOpts.borderColor, + borderWidth: tooltipOpts.borderWidth + }; +} + +/** + * Get the size of the tooltip + */ +function getTooltipSize(tooltip, model) { + var ctx = tooltip._chart.ctx; + + var height = model.yPadding * 2; // Tooltip Padding + var width = 0; + + // Count of all lines in the body + var body = model.body; + var combinedBodyLength = body.reduce(function(count, bodyItem) { + return count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length; + }, 0); + combinedBodyLength += model.beforeBody.length + model.afterBody.length; + + var titleLineCount = model.title.length; + var footerLineCount = model.footer.length; + var titleFontSize = model.titleFontSize; + var bodyFontSize = model.bodyFontSize; + var footerFontSize = model.footerFontSize; + + height += titleLineCount * titleFontSize; // Title Lines + height += titleLineCount ? (titleLineCount - 1) * model.titleSpacing : 0; // Title Line Spacing + height += titleLineCount ? model.titleMarginBottom : 0; // Title's bottom Margin + height += combinedBodyLength * bodyFontSize; // Body Lines + height += combinedBodyLength ? (combinedBodyLength - 1) * model.bodySpacing : 0; // Body Line Spacing + height += footerLineCount ? model.footerMarginTop : 0; // Footer Margin + height += footerLineCount * (footerFontSize); // Footer Lines + height += footerLineCount ? (footerLineCount - 1) * model.footerSpacing : 0; // Footer Line Spacing + + // Title width + var widthPadding = 0; + var maxLineWidth = function(line) { + width = Math.max(width, ctx.measureText(line).width + widthPadding); + }; + + ctx.font = helpers$1.fontString(titleFontSize, model._titleFontStyle, model._titleFontFamily); + helpers$1.each(model.title, maxLineWidth); + + // Body width + ctx.font = helpers$1.fontString(bodyFontSize, model._bodyFontStyle, model._bodyFontFamily); + helpers$1.each(model.beforeBody.concat(model.afterBody), maxLineWidth); + + // Body lines may include some extra width due to the color box + widthPadding = model.displayColors ? (bodyFontSize + 2) : 0; + helpers$1.each(body, function(bodyItem) { + helpers$1.each(bodyItem.before, maxLineWidth); + helpers$1.each(bodyItem.lines, maxLineWidth); + helpers$1.each(bodyItem.after, maxLineWidth); + }); + + // Reset back to 0 + widthPadding = 0; + + // Footer width + ctx.font = helpers$1.fontString(footerFontSize, model._footerFontStyle, model._footerFontFamily); + helpers$1.each(model.footer, maxLineWidth); + + // Add padding + width += 2 * model.xPadding; + + return { + width: width, + height: height + }; +} + +/** + * Helper to get the alignment of a tooltip given the size + */ +function determineAlignment(tooltip, size) { + var model = tooltip._model; + var chart = tooltip._chart; + var chartArea = tooltip._chart.chartArea; + var xAlign = 'center'; + var yAlign = 'center'; + + if (model.y < size.height) { + yAlign = 'top'; + } else if (model.y > (chart.height - size.height)) { + yAlign = 'bottom'; + } + + var lf, rf; // functions to determine left, right alignment + var olf, orf; // functions to determine if left/right alignment causes tooltip to go outside chart + var yf; // function to get the y alignment if the tooltip goes outside of the left or right edges + var midX = (chartArea.left + chartArea.right) / 2; + var midY = (chartArea.top + chartArea.bottom) / 2; + + if (yAlign === 'center') { + lf = function(x) { + return x <= midX; + }; + rf = function(x) { + return x > midX; + }; + } else { + lf = function(x) { + return x <= (size.width / 2); + }; + rf = function(x) { + return x >= (chart.width - (size.width / 2)); + }; + } + + olf = function(x) { + return x + size.width + model.caretSize + model.caretPadding > chart.width; + }; + orf = function(x) { + return x - size.width - model.caretSize - model.caretPadding < 0; + }; + yf = function(y) { + return y <= midY ? 'top' : 'bottom'; + }; + + if (lf(model.x)) { + xAlign = 'left'; + + // Is tooltip too wide and goes over the right side of the chart.? + if (olf(model.x)) { + xAlign = 'center'; + yAlign = yf(model.y); + } + } else if (rf(model.x)) { + xAlign = 'right'; + + // Is tooltip too wide and goes outside left edge of canvas? + if (orf(model.x)) { + xAlign = 'center'; + yAlign = yf(model.y); + } + } + + var opts = tooltip._options; + return { + xAlign: opts.xAlign ? opts.xAlign : xAlign, + yAlign: opts.yAlign ? opts.yAlign : yAlign + }; +} + +/** + * Helper to get the location a tooltip needs to be placed at given the initial position (via the vm) and the size and alignment + */ +function getBackgroundPoint(vm, size, alignment, chart) { + // Background Position + var x = vm.x; + var y = vm.y; + + var caretSize = vm.caretSize; + var caretPadding = vm.caretPadding; + var cornerRadius = vm.cornerRadius; + var xAlign = alignment.xAlign; + var yAlign = alignment.yAlign; + var paddingAndSize = caretSize + caretPadding; + var radiusAndPadding = cornerRadius + caretPadding; + + if (xAlign === 'right') { + x -= size.width; + } else if (xAlign === 'center') { + x -= (size.width / 2); + if (x + size.width > chart.width) { + x = chart.width - size.width; + } + if (x < 0) { + x = 0; + } + } + + if (yAlign === 'top') { + y += paddingAndSize; + } else if (yAlign === 'bottom') { + y -= size.height + paddingAndSize; + } else { + y -= (size.height / 2); + } + + if (yAlign === 'center') { + if (xAlign === 'left') { + x += paddingAndSize; + } else if (xAlign === 'right') { + x -= paddingAndSize; + } + } else if (xAlign === 'left') { + x -= radiusAndPadding; + } else if (xAlign === 'right') { + x += radiusAndPadding; + } + + return { + x: x, + y: y + }; +} + +function getAlignedX(vm, align) { + return align === 'center' + ? vm.x + vm.width / 2 + : align === 'right' + ? vm.x + vm.width - vm.xPadding + : vm.x + vm.xPadding; +} + +/** + * Helper to build before and after body lines + */ +function getBeforeAfterBodyLines(callback) { + return pushOrConcat([], splitNewlines(callback)); +} + +var exports$3 = core_element.extend({ + initialize: function() { + this._model = getBaseModel(this._options); + this._lastActive = []; + }, + + // Get the title + // Args are: (tooltipItem, data) + getTitle: function() { + var me = this; + var opts = me._options; + var callbacks = opts.callbacks; + + var beforeTitle = callbacks.beforeTitle.apply(me, arguments); + var title = callbacks.title.apply(me, arguments); + var afterTitle = callbacks.afterTitle.apply(me, arguments); + + var lines = []; + lines = pushOrConcat(lines, splitNewlines(beforeTitle)); + lines = pushOrConcat(lines, splitNewlines(title)); + lines = pushOrConcat(lines, splitNewlines(afterTitle)); + + return lines; + }, + + // Args are: (tooltipItem, data) + getBeforeBody: function() { + return getBeforeAfterBodyLines(this._options.callbacks.beforeBody.apply(this, arguments)); + }, + + // Args are: (tooltipItem, data) + getBody: function(tooltipItems, data) { + var me = this; + var callbacks = me._options.callbacks; + var bodyItems = []; + + helpers$1.each(tooltipItems, function(tooltipItem) { + var bodyItem = { + before: [], + lines: [], + after: [] + }; + pushOrConcat(bodyItem.before, splitNewlines(callbacks.beforeLabel.call(me, tooltipItem, data))); + pushOrConcat(bodyItem.lines, callbacks.label.call(me, tooltipItem, data)); + pushOrConcat(bodyItem.after, splitNewlines(callbacks.afterLabel.call(me, tooltipItem, data))); + + bodyItems.push(bodyItem); + }); + + return bodyItems; + }, + + // Args are: (tooltipItem, data) + getAfterBody: function() { + return getBeforeAfterBodyLines(this._options.callbacks.afterBody.apply(this, arguments)); + }, + + // Get the footer and beforeFooter and afterFooter lines + // Args are: (tooltipItem, data) + getFooter: function() { + var me = this; + var callbacks = me._options.callbacks; + + var beforeFooter = callbacks.beforeFooter.apply(me, arguments); + var footer = callbacks.footer.apply(me, arguments); + var afterFooter = callbacks.afterFooter.apply(me, arguments); + + var lines = []; + lines = pushOrConcat(lines, splitNewlines(beforeFooter)); + lines = pushOrConcat(lines, splitNewlines(footer)); + lines = pushOrConcat(lines, splitNewlines(afterFooter)); + + return lines; + }, + + update: function(changed) { + var me = this; + var opts = me._options; + + // Need to regenerate the model because its faster than using extend and it is necessary due to the optimization in Chart.Element.transition + // that does _view = _model if ease === 1. This causes the 2nd tooltip update to set properties in both the view and model at the same time + // which breaks any animations. + var existingModel = me._model; + var model = me._model = getBaseModel(opts); + var active = me._active; + + var data = me._data; + + // In the case where active.length === 0 we need to keep these at existing values for good animations + var alignment = { + xAlign: existingModel.xAlign, + yAlign: existingModel.yAlign + }; + var backgroundPoint = { + x: existingModel.x, + y: existingModel.y + }; + var tooltipSize = { + width: existingModel.width, + height: existingModel.height + }; + var tooltipPosition = { + x: existingModel.caretX, + y: existingModel.caretY + }; + + var i, len; + + if (active.length) { + model.opacity = 1; + + var labelColors = []; + var labelTextColors = []; + tooltipPosition = positioners[opts.position].call(me, active, me._eventPosition); + + var tooltipItems = []; + for (i = 0, len = active.length; i < len; ++i) { + tooltipItems.push(createTooltipItem(active[i])); + } + + // If the user provided a filter function, use it to modify the tooltip items + if (opts.filter) { + tooltipItems = tooltipItems.filter(function(a) { + return opts.filter(a, data); + }); + } + + // If the user provided a sorting function, use it to modify the tooltip items + if (opts.itemSort) { + tooltipItems = tooltipItems.sort(function(a, b) { + return opts.itemSort(a, b, data); + }); + } + + // Determine colors for boxes + helpers$1.each(tooltipItems, function(tooltipItem) { + labelColors.push(opts.callbacks.labelColor.call(me, tooltipItem, me._chart)); + labelTextColors.push(opts.callbacks.labelTextColor.call(me, tooltipItem, me._chart)); + }); + + + // Build the Text Lines + model.title = me.getTitle(tooltipItems, data); + model.beforeBody = me.getBeforeBody(tooltipItems, data); + model.body = me.getBody(tooltipItems, data); + model.afterBody = me.getAfterBody(tooltipItems, data); + model.footer = me.getFooter(tooltipItems, data); + + // Initial positioning and colors + model.x = tooltipPosition.x; + model.y = tooltipPosition.y; + model.caretPadding = opts.caretPadding; + model.labelColors = labelColors; + model.labelTextColors = labelTextColors; + + // data points + model.dataPoints = tooltipItems; + + // We need to determine alignment of the tooltip + tooltipSize = getTooltipSize(this, model); + alignment = determineAlignment(this, tooltipSize); + // Final Size and Position + backgroundPoint = getBackgroundPoint(model, tooltipSize, alignment, me._chart); + } else { + model.opacity = 0; + } + + model.xAlign = alignment.xAlign; + model.yAlign = alignment.yAlign; + model.x = backgroundPoint.x; + model.y = backgroundPoint.y; + model.width = tooltipSize.width; + model.height = tooltipSize.height; + + // Point where the caret on the tooltip points to + model.caretX = tooltipPosition.x; + model.caretY = tooltipPosition.y; + + me._model = model; + + if (changed && opts.custom) { + opts.custom.call(me, model); + } + + return me; + }, + + drawCaret: function(tooltipPoint, size) { + var ctx = this._chart.ctx; + var vm = this._view; + var caretPosition = this.getCaretPosition(tooltipPoint, size, vm); + + ctx.lineTo(caretPosition.x1, caretPosition.y1); + ctx.lineTo(caretPosition.x2, caretPosition.y2); + ctx.lineTo(caretPosition.x3, caretPosition.y3); + }, + getCaretPosition: function(tooltipPoint, size, vm) { + var x1, x2, x3, y1, y2, y3; + var caretSize = vm.caretSize; + var cornerRadius = vm.cornerRadius; + var xAlign = vm.xAlign; + var yAlign = vm.yAlign; + var ptX = tooltipPoint.x; + var ptY = tooltipPoint.y; + var width = size.width; + var height = size.height; + + if (yAlign === 'center') { + y2 = ptY + (height / 2); + + if (xAlign === 'left') { + x1 = ptX; + x2 = x1 - caretSize; + x3 = x1; + + y1 = y2 + caretSize; + y3 = y2 - caretSize; + } else { + x1 = ptX + width; + x2 = x1 + caretSize; + x3 = x1; + + y1 = y2 - caretSize; + y3 = y2 + caretSize; + } + } else { + if (xAlign === 'left') { + x2 = ptX + cornerRadius + (caretSize); + x1 = x2 - caretSize; + x3 = x2 + caretSize; + } else if (xAlign === 'right') { + x2 = ptX + width - cornerRadius - caretSize; + x1 = x2 - caretSize; + x3 = x2 + caretSize; + } else { + x2 = vm.caretX; + x1 = x2 - caretSize; + x3 = x2 + caretSize; + } + if (yAlign === 'top') { + y1 = ptY; + y2 = y1 - caretSize; + y3 = y1; + } else { + y1 = ptY + height; + y2 = y1 + caretSize; + y3 = y1; + // invert drawing order + var tmp = x3; + x3 = x1; + x1 = tmp; + } + } + return {x1: x1, x2: x2, x3: x3, y1: y1, y2: y2, y3: y3}; + }, + + drawTitle: function(pt, vm, ctx) { + var title = vm.title; + + if (title.length) { + pt.x = getAlignedX(vm, vm._titleAlign); + + ctx.textAlign = vm._titleAlign; + ctx.textBaseline = 'top'; + + var titleFontSize = vm.titleFontSize; + var titleSpacing = vm.titleSpacing; + + ctx.fillStyle = vm.titleFontColor; + ctx.font = helpers$1.fontString(titleFontSize, vm._titleFontStyle, vm._titleFontFamily); + + var i, len; + for (i = 0, len = title.length; i < len; ++i) { + ctx.fillText(title[i], pt.x, pt.y); + pt.y += titleFontSize + titleSpacing; // Line Height and spacing + + if (i + 1 === title.length) { + pt.y += vm.titleMarginBottom - titleSpacing; // If Last, add margin, remove spacing + } + } + } + }, + + drawBody: function(pt, vm, ctx) { + var bodyFontSize = vm.bodyFontSize; + var bodySpacing = vm.bodySpacing; + var bodyAlign = vm._bodyAlign; + var body = vm.body; + var drawColorBoxes = vm.displayColors; + var labelColors = vm.labelColors; + var xLinePadding = 0; + var colorX = drawColorBoxes ? getAlignedX(vm, 'left') : 0; + var textColor; + + ctx.textAlign = bodyAlign; + ctx.textBaseline = 'top'; + ctx.font = helpers$1.fontString(bodyFontSize, vm._bodyFontStyle, vm._bodyFontFamily); + + pt.x = getAlignedX(vm, bodyAlign); + + // Before Body + var fillLineOfText = function(line) { + ctx.fillText(line, pt.x + xLinePadding, pt.y); + pt.y += bodyFontSize + bodySpacing; + }; + + // Before body lines + ctx.fillStyle = vm.bodyFontColor; + helpers$1.each(vm.beforeBody, fillLineOfText); + + xLinePadding = drawColorBoxes && bodyAlign !== 'right' + ? bodyAlign === 'center' ? (bodyFontSize / 2 + 1) : (bodyFontSize + 2) + : 0; + + // Draw body lines now + helpers$1.each(body, function(bodyItem, i) { + textColor = vm.labelTextColors[i]; + ctx.fillStyle = textColor; + helpers$1.each(bodyItem.before, fillLineOfText); + + helpers$1.each(bodyItem.lines, function(line) { + // Draw Legend-like boxes if needed + if (drawColorBoxes) { + // Fill a white rect so that colours merge nicely if the opacity is < 1 + ctx.fillStyle = vm.legendColorBackground; + ctx.fillRect(colorX, pt.y, bodyFontSize, bodyFontSize); + + // Border + ctx.lineWidth = 1; + ctx.strokeStyle = labelColors[i].borderColor; + ctx.strokeRect(colorX, pt.y, bodyFontSize, bodyFontSize); + + // Inner square + ctx.fillStyle = labelColors[i].backgroundColor; + ctx.fillRect(colorX + 1, pt.y + 1, bodyFontSize - 2, bodyFontSize - 2); + ctx.fillStyle = textColor; + } + + fillLineOfText(line); + }); + + helpers$1.each(bodyItem.after, fillLineOfText); + }); + + // Reset back to 0 for after body + xLinePadding = 0; + + // After body lines + helpers$1.each(vm.afterBody, fillLineOfText); + pt.y -= bodySpacing; // Remove last body spacing + }, + + drawFooter: function(pt, vm, ctx) { + var footer = vm.footer; + + if (footer.length) { + pt.x = getAlignedX(vm, vm._footerAlign); + pt.y += vm.footerMarginTop; + + ctx.textAlign = vm._footerAlign; + ctx.textBaseline = 'top'; + + ctx.fillStyle = vm.footerFontColor; + ctx.font = helpers$1.fontString(vm.footerFontSize, vm._footerFontStyle, vm._footerFontFamily); + + helpers$1.each(footer, function(line) { + ctx.fillText(line, pt.x, pt.y); + pt.y += vm.footerFontSize + vm.footerSpacing; + }); + } + }, + + drawBackground: function(pt, vm, ctx, tooltipSize) { + ctx.fillStyle = vm.backgroundColor; + ctx.strokeStyle = vm.borderColor; + ctx.lineWidth = vm.borderWidth; + var xAlign = vm.xAlign; + var yAlign = vm.yAlign; + var x = pt.x; + var y = pt.y; + var width = tooltipSize.width; + var height = tooltipSize.height; + var radius = vm.cornerRadius; + + ctx.beginPath(); + ctx.moveTo(x + radius, y); + if (yAlign === 'top') { + this.drawCaret(pt, tooltipSize); + } + ctx.lineTo(x + width - radius, y); + ctx.quadraticCurveTo(x + width, y, x + width, y + radius); + if (yAlign === 'center' && xAlign === 'right') { + this.drawCaret(pt, tooltipSize); + } + ctx.lineTo(x + width, y + height - radius); + ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height); + if (yAlign === 'bottom') { + this.drawCaret(pt, tooltipSize); + } + ctx.lineTo(x + radius, y + height); + ctx.quadraticCurveTo(x, y + height, x, y + height - radius); + if (yAlign === 'center' && xAlign === 'left') { + this.drawCaret(pt, tooltipSize); + } + ctx.lineTo(x, y + radius); + ctx.quadraticCurveTo(x, y, x + radius, y); + ctx.closePath(); + + ctx.fill(); + + if (vm.borderWidth > 0) { + ctx.stroke(); + } + }, + + draw: function() { + var ctx = this._chart.ctx; + var vm = this._view; + + if (vm.opacity === 0) { + return; + } + + var tooltipSize = { + width: vm.width, + height: vm.height + }; + var pt = { + x: vm.x, + y: vm.y + }; + + // IE11/Edge does not like very small opacities, so snap to 0 + var opacity = Math.abs(vm.opacity < 1e-3) ? 0 : vm.opacity; + + // Truthy/falsey value for empty tooltip + var hasTooltipContent = vm.title.length || vm.beforeBody.length || vm.body.length || vm.afterBody.length || vm.footer.length; + + if (this._options.enabled && hasTooltipContent) { + ctx.save(); + ctx.globalAlpha = opacity; + + // Draw Background + this.drawBackground(pt, vm, ctx, tooltipSize); + + // Draw Title, Body, and Footer + pt.y += vm.yPadding; + + // Titles + this.drawTitle(pt, vm, ctx); + + // Body + this.drawBody(pt, vm, ctx); + + // Footer + this.drawFooter(pt, vm, ctx); + + ctx.restore(); + } + }, + + /** + * Handle an event + * @private + * @param {IEvent} event - The event to handle + * @returns {boolean} true if the tooltip changed + */ + handleEvent: function(e) { + var me = this; + var options = me._options; + var changed = false; + + me._lastActive = me._lastActive || []; + + // Find Active Elements for tooltips + if (e.type === 'mouseout') { + me._active = []; + } else { + me._active = me._chart.getElementsAtEventForMode(e, options.mode, options); + } + + // Remember Last Actives + changed = !helpers$1.arrayEquals(me._active, me._lastActive); + + // Only handle target event on tooltip change + if (changed) { + me._lastActive = me._active; + + if (options.enabled || options.custom) { + me._eventPosition = { + x: e.x, + y: e.y + }; + + me.update(true); + me.pivot(); + } + } + + return changed; + } +}); + +/** + * @namespace Chart.Tooltip.positioners + */ +var positioners_1 = positioners; + +var core_tooltip = exports$3; +core_tooltip.positioners = positioners_1; + +var valueOrDefault$8 = helpers$1.valueOrDefault; + +core_defaults._set('global', { + elements: {}, + events: [ + 'mousemove', + 'mouseout', + 'click', + 'touchstart', + 'touchmove' + ], + hover: { + onHover: null, + mode: 'nearest', + intersect: true, + animationDuration: 400 + }, + onClick: null, + maintainAspectRatio: true, + responsive: true, + responsiveAnimationDuration: 0 +}); + +/** + * Recursively merge the given config objects representing the `scales` option + * by incorporating scale defaults in `xAxes` and `yAxes` array items, then + * returns a deep copy of the result, thus doesn't alter inputs. + */ +function mergeScaleConfig(/* config objects ... */) { + return helpers$1.merge({}, [].slice.call(arguments), { + merger: function(key, target, source, options) { + if (key === 'xAxes' || key === 'yAxes') { + var slen = source[key].length; + var i, type, scale; + + if (!target[key]) { + target[key] = []; + } + + for (i = 0; i < slen; ++i) { + scale = source[key][i]; + type = valueOrDefault$8(scale.type, key === 'xAxes' ? 'category' : 'linear'); + + if (i >= target[key].length) { + target[key].push({}); + } + + if (!target[key][i].type || (scale.type && scale.type !== target[key][i].type)) { + // new/untyped scale or type changed: let's apply the new defaults + // then merge source scale to correctly overwrite the defaults. + helpers$1.merge(target[key][i], [core_scaleService.getScaleDefaults(type), scale]); + } else { + // scales type are the same + helpers$1.merge(target[key][i], scale); + } + } + } else { + helpers$1._merger(key, target, source, options); + } + } + }); +} + +/** + * Recursively merge the given config objects as the root options by handling + * default scale options for the `scales` and `scale` properties, then returns + * a deep copy of the result, thus doesn't alter inputs. + */ +function mergeConfig(/* config objects ... */) { + return helpers$1.merge({}, [].slice.call(arguments), { + merger: function(key, target, source, options) { + var tval = target[key] || {}; + var sval = source[key]; + + if (key === 'scales') { + // scale config merging is complex. Add our own function here for that + target[key] = mergeScaleConfig(tval, sval); + } else if (key === 'scale') { + // used in polar area & radar charts since there is only one scale + target[key] = helpers$1.merge(tval, [core_scaleService.getScaleDefaults(sval.type), sval]); + } else { + helpers$1._merger(key, target, source, options); + } + } + }); +} + +function initConfig(config) { + config = config || {}; + + // Do NOT use mergeConfig for the data object because this method merges arrays + // and so would change references to labels and datasets, preventing data updates. + var data = config.data = config.data || {}; + data.datasets = data.datasets || []; + data.labels = data.labels || []; + + config.options = mergeConfig( + core_defaults.global, + core_defaults[config.type], + config.options || {}); + + return config; +} + +function updateConfig(chart) { + var newOptions = chart.options; + + helpers$1.each(chart.scales, function(scale) { + core_layouts.removeBox(chart, scale); + }); + + newOptions = mergeConfig( + core_defaults.global, + core_defaults[chart.config.type], + newOptions); + + chart.options = chart.config.options = newOptions; + chart.ensureScalesHaveIDs(); + chart.buildOrUpdateScales(); + + // Tooltip + chart.tooltip._options = newOptions.tooltips; + chart.tooltip.initialize(); +} + +function positionIsHorizontal(position) { + return position === 'top' || position === 'bottom'; +} + +var Chart = function(item, config) { + this.construct(item, config); + return this; +}; + +helpers$1.extend(Chart.prototype, /** @lends Chart */ { + /** + * @private + */ + construct: function(item, config) { + var me = this; + + config = initConfig(config); + + var context = platform.acquireContext(item, config); + var canvas = context && context.canvas; + var height = canvas && canvas.height; + var width = canvas && canvas.width; + + me.id = helpers$1.uid(); + me.ctx = context; + me.canvas = canvas; + me.config = config; + me.width = width; + me.height = height; + me.aspectRatio = height ? width / height : null; + me.options = config.options; + me._bufferedRender = false; + + /** + * Provided for backward compatibility, Chart and Chart.Controller have been merged, + * the "instance" still need to be defined since it might be called from plugins. + * @prop Chart#chart + * @deprecated since version 2.6.0 + * @todo remove at version 3 + * @private + */ + me.chart = me; + me.controller = me; // chart.chart.controller #inception + + // Add the chart instance to the global namespace + Chart.instances[me.id] = me; + + // Define alias to the config data: `chart.data === chart.config.data` + Object.defineProperty(me, 'data', { + get: function() { + return me.config.data; + }, + set: function(value) { + me.config.data = value; + } + }); + + if (!context || !canvas) { + // The given item is not a compatible context2d element, let's return before finalizing + // the chart initialization but after setting basic chart / controller properties that + // can help to figure out that the chart is not valid (e.g chart.canvas !== null); + // https://github.com/chartjs/Chart.js/issues/2807 + console.error("Failed to create chart: can't acquire context from the given item"); + return; + } + + me.initialize(); + me.update(); + }, + + /** + * @private + */ + initialize: function() { + var me = this; + + // Before init plugin notification + core_plugins.notify(me, 'beforeInit'); + + helpers$1.retinaScale(me, me.options.devicePixelRatio); + + me.bindEvents(); + + if (me.options.responsive) { + // Initial resize before chart draws (must be silent to preserve initial animations). + me.resize(true); + } + + // Make sure scales have IDs and are built before we build any controllers. + me.ensureScalesHaveIDs(); + me.buildOrUpdateScales(); + me.initToolTip(); + + // After init plugin notification + core_plugins.notify(me, 'afterInit'); + + return me; + }, + + clear: function() { + helpers$1.canvas.clear(this); + return this; + }, + + stop: function() { + // Stops any current animation loop occurring + core_animations.cancelAnimation(this); + return this; + }, + + resize: function(silent) { + var me = this; + var options = me.options; + var canvas = me.canvas; + var aspectRatio = (options.maintainAspectRatio && me.aspectRatio) || null; + + // the canvas render width and height will be casted to integers so make sure that + // the canvas display style uses the same integer values to avoid blurring effect. + + // Set to 0 instead of canvas.size because the size defaults to 300x150 if the element is collapsed + var newWidth = Math.max(0, Math.floor(helpers$1.getMaximumWidth(canvas))); + var newHeight = Math.max(0, Math.floor(aspectRatio ? newWidth / aspectRatio : helpers$1.getMaximumHeight(canvas))); + + if (me.width === newWidth && me.height === newHeight) { + return; + } + + canvas.width = me.width = newWidth; + canvas.height = me.height = newHeight; + canvas.style.width = newWidth + 'px'; + canvas.style.height = newHeight + 'px'; + + helpers$1.retinaScale(me, options.devicePixelRatio); + + if (!silent) { + // Notify any plugins about the resize + var newSize = {width: newWidth, height: newHeight}; + core_plugins.notify(me, 'resize', [newSize]); + + // Notify of resize + if (options.onResize) { + options.onResize(me, newSize); + } + + me.stop(); + me.update({ + duration: options.responsiveAnimationDuration + }); + } + }, + + ensureScalesHaveIDs: function() { + var options = this.options; + var scalesOptions = options.scales || {}; + var scaleOptions = options.scale; + + helpers$1.each(scalesOptions.xAxes, function(xAxisOptions, index) { + xAxisOptions.id = xAxisOptions.id || ('x-axis-' + index); + }); + + helpers$1.each(scalesOptions.yAxes, function(yAxisOptions, index) { + yAxisOptions.id = yAxisOptions.id || ('y-axis-' + index); + }); + + if (scaleOptions) { + scaleOptions.id = scaleOptions.id || 'scale'; + } + }, + + /** + * Builds a map of scale ID to scale object for future lookup. + */ + buildOrUpdateScales: function() { + var me = this; + var options = me.options; + var scales = me.scales || {}; + var items = []; + var updated = Object.keys(scales).reduce(function(obj, id) { + obj[id] = false; + return obj; + }, {}); + + if (options.scales) { + items = items.concat( + (options.scales.xAxes || []).map(function(xAxisOptions) { + return {options: xAxisOptions, dtype: 'category', dposition: 'bottom'}; + }), + (options.scales.yAxes || []).map(function(yAxisOptions) { + return {options: yAxisOptions, dtype: 'linear', dposition: 'left'}; + }) + ); + } + + if (options.scale) { + items.push({ + options: options.scale, + dtype: 'radialLinear', + isDefault: true, + dposition: 'chartArea' + }); + } + + helpers$1.each(items, function(item) { + var scaleOptions = item.options; + var id = scaleOptions.id; + var scaleType = valueOrDefault$8(scaleOptions.type, item.dtype); + + if (positionIsHorizontal(scaleOptions.position) !== positionIsHorizontal(item.dposition)) { + scaleOptions.position = item.dposition; + } + + updated[id] = true; + var scale = null; + if (id in scales && scales[id].type === scaleType) { + scale = scales[id]; + scale.options = scaleOptions; + scale.ctx = me.ctx; + scale.chart = me; + } else { + var scaleClass = core_scaleService.getScaleConstructor(scaleType); + if (!scaleClass) { + return; + } + scale = new scaleClass({ + id: id, + type: scaleType, + options: scaleOptions, + ctx: me.ctx, + chart: me + }); + scales[scale.id] = scale; + } + + scale.mergeTicksOptions(); + + // TODO(SB): I think we should be able to remove this custom case (options.scale) + // and consider it as a regular scale part of the "scales"" map only! This would + // make the logic easier and remove some useless? custom code. + if (item.isDefault) { + me.scale = scale; + } + }); + // clear up discarded scales + helpers$1.each(updated, function(hasUpdated, id) { + if (!hasUpdated) { + delete scales[id]; + } + }); + + me.scales = scales; + + core_scaleService.addScalesToLayout(this); + }, + + buildOrUpdateControllers: function() { + var me = this; + var newControllers = []; + + helpers$1.each(me.data.datasets, function(dataset, datasetIndex) { + var meta = me.getDatasetMeta(datasetIndex); + var type = dataset.type || me.config.type; + + if (meta.type && meta.type !== type) { + me.destroyDatasetMeta(datasetIndex); + meta = me.getDatasetMeta(datasetIndex); + } + meta.type = type; + + if (meta.controller) { + meta.controller.updateIndex(datasetIndex); + meta.controller.linkScales(); + } else { + var ControllerClass = controllers[meta.type]; + if (ControllerClass === undefined) { + throw new Error('"' + meta.type + '" is not a chart type.'); + } + + meta.controller = new ControllerClass(me, datasetIndex); + newControllers.push(meta.controller); + } + }, me); + + return newControllers; + }, + + /** + * Reset the elements of all datasets + * @private + */ + resetElements: function() { + var me = this; + helpers$1.each(me.data.datasets, function(dataset, datasetIndex) { + me.getDatasetMeta(datasetIndex).controller.reset(); + }, me); + }, + + /** + * Resets the chart back to it's state before the initial animation + */ + reset: function() { + this.resetElements(); + this.tooltip.initialize(); + }, + + update: function(config) { + var me = this; + + if (!config || typeof config !== 'object') { + // backwards compatibility + config = { + duration: config, + lazy: arguments[1] + }; + } + + updateConfig(me); + + // plugins options references might have change, let's invalidate the cache + // https://github.com/chartjs/Chart.js/issues/5111#issuecomment-355934167 + core_plugins._invalidate(me); + + if (core_plugins.notify(me, 'beforeUpdate') === false) { + return; + } + + // In case the entire data object changed + me.tooltip._data = me.data; + + // Make sure dataset controllers are updated and new controllers are reset + var newControllers = me.buildOrUpdateControllers(); + + // Make sure all dataset controllers have correct meta data counts + helpers$1.each(me.data.datasets, function(dataset, datasetIndex) { + me.getDatasetMeta(datasetIndex).controller.buildOrUpdateElements(); + }, me); + + me.updateLayout(); + + // Can only reset the new controllers after the scales have been updated + if (me.options.animation && me.options.animation.duration) { + helpers$1.each(newControllers, function(controller) { + controller.reset(); + }); + } + + me.updateDatasets(); + + // Need to reset tooltip in case it is displayed with elements that are removed + // after update. + me.tooltip.initialize(); + + // Last active contains items that were previously in the tooltip. + // When we reset the tooltip, we need to clear it + me.lastActive = []; + + // Do this before render so that any plugins that need final scale updates can use it + core_plugins.notify(me, 'afterUpdate'); + + if (me._bufferedRender) { + me._bufferedRequest = { + duration: config.duration, + easing: config.easing, + lazy: config.lazy + }; + } else { + me.render(config); + } + }, + + /** + * Updates the chart layout unless a plugin returns `false` to the `beforeLayout` + * hook, in which case, plugins will not be called on `afterLayout`. + * @private + */ + updateLayout: function() { + var me = this; + + if (core_plugins.notify(me, 'beforeLayout') === false) { + return; + } + + core_layouts.update(this, this.width, this.height); + + /** + * Provided for backward compatibility, use `afterLayout` instead. + * @method IPlugin#afterScaleUpdate + * @deprecated since version 2.5.0 + * @todo remove at version 3 + * @private + */ + core_plugins.notify(me, 'afterScaleUpdate'); + core_plugins.notify(me, 'afterLayout'); + }, + + /** + * Updates all datasets unless a plugin returns `false` to the `beforeDatasetsUpdate` + * hook, in which case, plugins will not be called on `afterDatasetsUpdate`. + * @private + */ + updateDatasets: function() { + var me = this; + + if (core_plugins.notify(me, 'beforeDatasetsUpdate') === false) { + return; + } + + for (var i = 0, ilen = me.data.datasets.length; i < ilen; ++i) { + me.updateDataset(i); + } + + core_plugins.notify(me, 'afterDatasetsUpdate'); + }, + + /** + * Updates dataset at index unless a plugin returns `false` to the `beforeDatasetUpdate` + * hook, in which case, plugins will not be called on `afterDatasetUpdate`. + * @private + */ + updateDataset: function(index) { + var me = this; + var meta = me.getDatasetMeta(index); + var args = { + meta: meta, + index: index + }; + + if (core_plugins.notify(me, 'beforeDatasetUpdate', [args]) === false) { + return; + } + + meta.controller.update(); + + core_plugins.notify(me, 'afterDatasetUpdate', [args]); + }, + + render: function(config) { + var me = this; + + if (!config || typeof config !== 'object') { + // backwards compatibility + config = { + duration: config, + lazy: arguments[1] + }; + } + + var animationOptions = me.options.animation; + var duration = valueOrDefault$8(config.duration, animationOptions && animationOptions.duration); + var lazy = config.lazy; + + if (core_plugins.notify(me, 'beforeRender') === false) { + return; + } + + var onComplete = function(animation) { + core_plugins.notify(me, 'afterRender'); + helpers$1.callback(animationOptions && animationOptions.onComplete, [animation], me); + }; + + if (animationOptions && duration) { + var animation = new core_animation({ + numSteps: duration / 16.66, // 60 fps + easing: config.easing || animationOptions.easing, + + render: function(chart, animationObject) { + var easingFunction = helpers$1.easing.effects[animationObject.easing]; + var currentStep = animationObject.currentStep; + var stepDecimal = currentStep / animationObject.numSteps; + + chart.draw(easingFunction(stepDecimal), stepDecimal, currentStep); + }, + + onAnimationProgress: animationOptions.onProgress, + onAnimationComplete: onComplete + }); + + core_animations.addAnimation(me, animation, duration, lazy); + } else { + me.draw(); + + // See https://github.com/chartjs/Chart.js/issues/3781 + onComplete(new core_animation({numSteps: 0, chart: me})); + } + + return me; + }, + + draw: function(easingValue) { + var me = this; + + me.clear(); + + if (helpers$1.isNullOrUndef(easingValue)) { + easingValue = 1; + } + + me.transition(easingValue); + + if (me.width <= 0 || me.height <= 0) { + return; + } + + if (core_plugins.notify(me, 'beforeDraw', [easingValue]) === false) { + return; + } + + // Draw all the scales + helpers$1.each(me.boxes, function(box) { + box.draw(me.chartArea); + }, me); + + me.drawDatasets(easingValue); + me._drawTooltip(easingValue); + + core_plugins.notify(me, 'afterDraw', [easingValue]); + }, + + /** + * @private + */ + transition: function(easingValue) { + var me = this; + + for (var i = 0, ilen = (me.data.datasets || []).length; i < ilen; ++i) { + if (me.isDatasetVisible(i)) { + me.getDatasetMeta(i).controller.transition(easingValue); + } + } + + me.tooltip.transition(easingValue); + }, + + /** + * Draws all datasets unless a plugin returns `false` to the `beforeDatasetsDraw` + * hook, in which case, plugins will not be called on `afterDatasetsDraw`. + * @private + */ + drawDatasets: function(easingValue) { + var me = this; + + if (core_plugins.notify(me, 'beforeDatasetsDraw', [easingValue]) === false) { + return; + } + + // Draw datasets reversed to support proper line stacking + for (var i = (me.data.datasets || []).length - 1; i >= 0; --i) { + if (me.isDatasetVisible(i)) { + me.drawDataset(i, easingValue); + } + } + + core_plugins.notify(me, 'afterDatasetsDraw', [easingValue]); + }, + + /** + * Draws dataset at index unless a plugin returns `false` to the `beforeDatasetDraw` + * hook, in which case, plugins will not be called on `afterDatasetDraw`. + * @private + */ + drawDataset: function(index, easingValue) { + var me = this; + var meta = me.getDatasetMeta(index); + var args = { + meta: meta, + index: index, + easingValue: easingValue + }; + + if (core_plugins.notify(me, 'beforeDatasetDraw', [args]) === false) { + return; + } + + meta.controller.draw(easingValue); + + core_plugins.notify(me, 'afterDatasetDraw', [args]); + }, + + /** + * Draws tooltip unless a plugin returns `false` to the `beforeTooltipDraw` + * hook, in which case, plugins will not be called on `afterTooltipDraw`. + * @private + */ + _drawTooltip: function(easingValue) { + var me = this; + var tooltip = me.tooltip; + var args = { + tooltip: tooltip, + easingValue: easingValue + }; + + if (core_plugins.notify(me, 'beforeTooltipDraw', [args]) === false) { + return; + } + + tooltip.draw(); + + core_plugins.notify(me, 'afterTooltipDraw', [args]); + }, + + /** + * Get the single element that was clicked on + * @return An object containing the dataset index and element index of the matching element. Also contains the rectangle that was draw + */ + getElementAtEvent: function(e) { + return core_interaction.modes.single(this, e); + }, + + getElementsAtEvent: function(e) { + return core_interaction.modes.label(this, e, {intersect: true}); + }, + + getElementsAtXAxis: function(e) { + return core_interaction.modes['x-axis'](this, e, {intersect: true}); + }, + + getElementsAtEventForMode: function(e, mode, options) { + var method = core_interaction.modes[mode]; + if (typeof method === 'function') { + return method(this, e, options); + } + + return []; + }, + + getDatasetAtEvent: function(e) { + return core_interaction.modes.dataset(this, e, {intersect: true}); + }, + + getDatasetMeta: function(datasetIndex) { + var me = this; + var dataset = me.data.datasets[datasetIndex]; + if (!dataset._meta) { + dataset._meta = {}; + } + + var meta = dataset._meta[me.id]; + if (!meta) { + meta = dataset._meta[me.id] = { + type: null, + data: [], + dataset: null, + controller: null, + hidden: null, // See isDatasetVisible() comment + xAxisID: null, + yAxisID: null + }; + } + + return meta; + }, + + getVisibleDatasetCount: function() { + var count = 0; + for (var i = 0, ilen = this.data.datasets.length; i < ilen; ++i) { + if (this.isDatasetVisible(i)) { + count++; + } + } + return count; + }, + + isDatasetVisible: function(datasetIndex) { + var meta = this.getDatasetMeta(datasetIndex); + + // meta.hidden is a per chart dataset hidden flag override with 3 states: if true or false, + // the dataset.hidden value is ignored, else if null, the dataset hidden state is returned. + return typeof meta.hidden === 'boolean' ? !meta.hidden : !this.data.datasets[datasetIndex].hidden; + }, + + generateLegend: function() { + return this.options.legendCallback(this); + }, + + /** + * @private + */ + destroyDatasetMeta: function(datasetIndex) { + var id = this.id; + var dataset = this.data.datasets[datasetIndex]; + var meta = dataset._meta && dataset._meta[id]; + + if (meta) { + meta.controller.destroy(); + delete dataset._meta[id]; + } + }, + + destroy: function() { + var me = this; + var canvas = me.canvas; + var i, ilen; + + me.stop(); + + // dataset controllers need to cleanup associated data + for (i = 0, ilen = me.data.datasets.length; i < ilen; ++i) { + me.destroyDatasetMeta(i); + } + + if (canvas) { + me.unbindEvents(); + helpers$1.canvas.clear(me); + platform.releaseContext(me.ctx); + me.canvas = null; + me.ctx = null; + } + + core_plugins.notify(me, 'destroy'); + + delete Chart.instances[me.id]; + }, + + toBase64Image: function() { + return this.canvas.toDataURL.apply(this.canvas, arguments); + }, + + initToolTip: function() { + var me = this; + me.tooltip = new core_tooltip({ + _chart: me, + _chartInstance: me, // deprecated, backward compatibility + _data: me.data, + _options: me.options.tooltips + }, me); + }, + + /** + * @private + */ + bindEvents: function() { + var me = this; + var listeners = me._listeners = {}; + var listener = function() { + me.eventHandler.apply(me, arguments); + }; + + helpers$1.each(me.options.events, function(type) { + platform.addEventListener(me, type, listener); + listeners[type] = listener; + }); + + // Elements used to detect size change should not be injected for non responsive charts. + // See https://github.com/chartjs/Chart.js/issues/2210 + if (me.options.responsive) { + listener = function() { + me.resize(); + }; + + platform.addEventListener(me, 'resize', listener); + listeners.resize = listener; + } + }, + + /** + * @private + */ + unbindEvents: function() { + var me = this; + var listeners = me._listeners; + if (!listeners) { + return; + } + + delete me._listeners; + helpers$1.each(listeners, function(listener, type) { + platform.removeEventListener(me, type, listener); + }); + }, + + updateHoverStyle: function(elements, mode, enabled) { + var method = enabled ? 'setHoverStyle' : 'removeHoverStyle'; + var element, i, ilen; + + for (i = 0, ilen = elements.length; i < ilen; ++i) { + element = elements[i]; + if (element) { + this.getDatasetMeta(element._datasetIndex).controller[method](element); + } + } + }, + + /** + * @private + */ + eventHandler: function(e) { + var me = this; + var tooltip = me.tooltip; + + if (core_plugins.notify(me, 'beforeEvent', [e]) === false) { + return; + } + + // Buffer any update calls so that renders do not occur + me._bufferedRender = true; + me._bufferedRequest = null; + + var changed = me.handleEvent(e); + // for smooth tooltip animations issue #4989 + // the tooltip should be the source of change + // Animation check workaround: + // tooltip._start will be null when tooltip isn't animating + if (tooltip) { + changed = tooltip._start + ? tooltip.handleEvent(e) + : changed | tooltip.handleEvent(e); + } + + core_plugins.notify(me, 'afterEvent', [e]); + + var bufferedRequest = me._bufferedRequest; + if (bufferedRequest) { + // If we have an update that was triggered, we need to do a normal render + me.render(bufferedRequest); + } else if (changed && !me.animating) { + // If entering, leaving, or changing elements, animate the change via pivot + me.stop(); + + // We only need to render at this point. Updating will cause scales to be + // recomputed generating flicker & using more memory than necessary. + me.render({ + duration: me.options.hover.animationDuration, + lazy: true + }); + } + + me._bufferedRender = false; + me._bufferedRequest = null; + + return me; + }, + + /** + * Handle an event + * @private + * @param {IEvent} event the event to handle + * @return {boolean} true if the chart needs to re-render + */ + handleEvent: function(e) { + var me = this; + var options = me.options || {}; + var hoverOptions = options.hover; + var changed = false; + + me.lastActive = me.lastActive || []; + + // Find Active Elements for hover and tooltips + if (e.type === 'mouseout') { + me.active = []; + } else { + me.active = me.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions); + } + + // Invoke onHover hook + // Need to call with native event here to not break backwards compatibility + helpers$1.callback(options.onHover || options.hover.onHover, [e.native, me.active], me); + + if (e.type === 'mouseup' || e.type === 'click') { + if (options.onClick) { + // Use e.native here for backwards compatibility + options.onClick.call(me, e.native, me.active); + } + } + + // Remove styling for last active (even if it may still be active) + if (me.lastActive.length) { + me.updateHoverStyle(me.lastActive, hoverOptions.mode, false); + } + + // Built in hover styling + if (me.active.length && hoverOptions.mode) { + me.updateHoverStyle(me.active, hoverOptions.mode, true); + } + + changed = !helpers$1.arrayEquals(me.active, me.lastActive); + + // Remember Last Actives + me.lastActive = me.active; + + return changed; + } +}); + +/** + * NOTE(SB) We actually don't use this container anymore but we need to keep it + * for backward compatibility. Though, it can still be useful for plugins that + * would need to work on multiple charts?! + */ +Chart.instances = {}; + +var core_controller = Chart; + +// DEPRECATIONS + +/** + * Provided for backward compatibility, use Chart instead. + * @class Chart.Controller + * @deprecated since version 2.6 + * @todo remove at version 3 + * @private + */ +Chart.Controller = Chart; + +/** + * Provided for backward compatibility, not available anymore. + * @namespace Chart + * @deprecated since version 2.8 + * @todo remove at version 3 + * @private + */ +Chart.types = {}; + +/** + * Provided for backward compatibility, not available anymore. + * @namespace Chart.helpers.configMerge + * @deprecated since version 2.8.0 + * @todo remove at version 3 + * @private + */ +helpers$1.configMerge = mergeConfig; + +/** + * Provided for backward compatibility, not available anymore. + * @namespace Chart.helpers.scaleMerge + * @deprecated since version 2.8.0 + * @todo remove at version 3 + * @private + */ +helpers$1.scaleMerge = mergeScaleConfig; + +var core_helpers = function() { + + // -- Basic js utility methods + + helpers$1.where = function(collection, filterCallback) { + if (helpers$1.isArray(collection) && Array.prototype.filter) { + return collection.filter(filterCallback); + } + var filtered = []; + + helpers$1.each(collection, function(item) { + if (filterCallback(item)) { + filtered.push(item); + } + }); + + return filtered; + }; + helpers$1.findIndex = Array.prototype.findIndex ? + function(array, callback, scope) { + return array.findIndex(callback, scope); + } : + function(array, callback, scope) { + scope = scope === undefined ? array : scope; + for (var i = 0, ilen = array.length; i < ilen; ++i) { + if (callback.call(scope, array[i], i, array)) { + return i; + } + } + return -1; + }; + helpers$1.findNextWhere = function(arrayToSearch, filterCallback, startIndex) { + // Default to start of the array + if (helpers$1.isNullOrUndef(startIndex)) { + startIndex = -1; + } + for (var i = startIndex + 1; i < arrayToSearch.length; i++) { + var currentItem = arrayToSearch[i]; + if (filterCallback(currentItem)) { + return currentItem; + } + } + }; + helpers$1.findPreviousWhere = function(arrayToSearch, filterCallback, startIndex) { + // Default to end of the array + if (helpers$1.isNullOrUndef(startIndex)) { + startIndex = arrayToSearch.length; + } + for (var i = startIndex - 1; i >= 0; i--) { + var currentItem = arrayToSearch[i]; + if (filterCallback(currentItem)) { + return currentItem; + } + } + }; + + // -- Math methods + helpers$1.isNumber = function(n) { + return !isNaN(parseFloat(n)) && isFinite(n); + }; + helpers$1.almostEquals = function(x, y, epsilon) { + return Math.abs(x - y) < epsilon; + }; + helpers$1.almostWhole = function(x, epsilon) { + var rounded = Math.round(x); + return (((rounded - epsilon) < x) && ((rounded + epsilon) > x)); + }; + helpers$1.max = function(array) { + return array.reduce(function(max, value) { + if (!isNaN(value)) { + return Math.max(max, value); + } + return max; + }, Number.NEGATIVE_INFINITY); + }; + helpers$1.min = function(array) { + return array.reduce(function(min, value) { + if (!isNaN(value)) { + return Math.min(min, value); + } + return min; + }, Number.POSITIVE_INFINITY); + }; + helpers$1.sign = Math.sign ? + function(x) { + return Math.sign(x); + } : + function(x) { + x = +x; // convert to a number + if (x === 0 || isNaN(x)) { + return x; + } + return x > 0 ? 1 : -1; + }; + helpers$1.log10 = Math.log10 ? + function(x) { + return Math.log10(x); + } : + function(x) { + var exponent = Math.log(x) * Math.LOG10E; // Math.LOG10E = 1 / Math.LN10. + // Check for whole powers of 10, + // which due to floating point rounding error should be corrected. + var powerOf10 = Math.round(exponent); + var isPowerOf10 = x === Math.pow(10, powerOf10); + + return isPowerOf10 ? powerOf10 : exponent; + }; + helpers$1.toRadians = function(degrees) { + return degrees * (Math.PI / 180); + }; + helpers$1.toDegrees = function(radians) { + return radians * (180 / Math.PI); + }; + + /** + * Returns the number of decimal places + * i.e. the number of digits after the decimal point, of the value of this Number. + * @param {number} x - A number. + * @returns {number} The number of decimal places. + * @private + */ + helpers$1._decimalPlaces = function(x) { + if (!helpers$1.isFinite(x)) { + return; + } + var e = 1; + var p = 0; + while (Math.round(x * e) / e !== x) { + e *= 10; + p++; + } + return p; + }; + + // Gets the angle from vertical upright to the point about a centre. + helpers$1.getAngleFromPoint = function(centrePoint, anglePoint) { + var distanceFromXCenter = anglePoint.x - centrePoint.x; + var distanceFromYCenter = anglePoint.y - centrePoint.y; + var radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter); + + var angle = Math.atan2(distanceFromYCenter, distanceFromXCenter); + + if (angle < (-0.5 * Math.PI)) { + angle += 2.0 * Math.PI; // make sure the returned angle is in the range of (-PI/2, 3PI/2] + } + + return { + angle: angle, + distance: radialDistanceFromCenter + }; + }; + helpers$1.distanceBetweenPoints = function(pt1, pt2) { + return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2)); + }; + + /** + * Provided for backward compatibility, not available anymore + * @function Chart.helpers.aliasPixel + * @deprecated since version 2.8.0 + * @todo remove at version 3 + */ + helpers$1.aliasPixel = function(pixelWidth) { + return (pixelWidth % 2 === 0) ? 0 : 0.5; + }; + + /** + * Returns the aligned pixel value to avoid anti-aliasing blur + * @param {Chart} chart - The chart instance. + * @param {number} pixel - A pixel value. + * @param {number} width - The width of the element. + * @returns {number} The aligned pixel value. + * @private + */ + helpers$1._alignPixel = function(chart, pixel, width) { + var devicePixelRatio = chart.currentDevicePixelRatio; + var halfWidth = width / 2; + return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth; + }; + + helpers$1.splineCurve = function(firstPoint, middlePoint, afterPoint, t) { + // Props to Rob Spencer at scaled innovation for his post on splining between points + // http://scaledinnovation.com/analytics/splines/aboutSplines.html + + // This function must also respect "skipped" points + + var previous = firstPoint.skip ? middlePoint : firstPoint; + var current = middlePoint; + var next = afterPoint.skip ? middlePoint : afterPoint; + + var d01 = Math.sqrt(Math.pow(current.x - previous.x, 2) + Math.pow(current.y - previous.y, 2)); + var d12 = Math.sqrt(Math.pow(next.x - current.x, 2) + Math.pow(next.y - current.y, 2)); + + var s01 = d01 / (d01 + d12); + var s12 = d12 / (d01 + d12); + + // If all points are the same, s01 & s02 will be inf + s01 = isNaN(s01) ? 0 : s01; + s12 = isNaN(s12) ? 0 : s12; + + var fa = t * s01; // scaling factor for triangle Ta + var fb = t * s12; + + return { + previous: { + x: current.x - fa * (next.x - previous.x), + y: current.y - fa * (next.y - previous.y) + }, + next: { + x: current.x + fb * (next.x - previous.x), + y: current.y + fb * (next.y - previous.y) + } + }; + }; + helpers$1.EPSILON = Number.EPSILON || 1e-14; + helpers$1.splineCurveMonotone = function(points) { + // This function calculates Bézier control points in a similar way than |splineCurve|, + // but preserves monotonicity of the provided data and ensures no local extremums are added + // between the dataset discrete points due to the interpolation. + // See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation + + var pointsWithTangents = (points || []).map(function(point) { + return { + model: point._model, + deltaK: 0, + mK: 0 + }; + }); + + // Calculate slopes (deltaK) and initialize tangents (mK) + var pointsLen = pointsWithTangents.length; + var i, pointBefore, pointCurrent, pointAfter; + for (i = 0; i < pointsLen; ++i) { + pointCurrent = pointsWithTangents[i]; + if (pointCurrent.model.skip) { + continue; + } + + pointBefore = i > 0 ? pointsWithTangents[i - 1] : null; + pointAfter = i < pointsLen - 1 ? pointsWithTangents[i + 1] : null; + if (pointAfter && !pointAfter.model.skip) { + var slopeDeltaX = (pointAfter.model.x - pointCurrent.model.x); + + // In the case of two points that appear at the same x pixel, slopeDeltaX is 0 + pointCurrent.deltaK = slopeDeltaX !== 0 ? (pointAfter.model.y - pointCurrent.model.y) / slopeDeltaX : 0; + } + + if (!pointBefore || pointBefore.model.skip) { + pointCurrent.mK = pointCurrent.deltaK; + } else if (!pointAfter || pointAfter.model.skip) { + pointCurrent.mK = pointBefore.deltaK; + } else if (this.sign(pointBefore.deltaK) !== this.sign(pointCurrent.deltaK)) { + pointCurrent.mK = 0; + } else { + pointCurrent.mK = (pointBefore.deltaK + pointCurrent.deltaK) / 2; + } + } + + // Adjust tangents to ensure monotonic properties + var alphaK, betaK, tauK, squaredMagnitude; + for (i = 0; i < pointsLen - 1; ++i) { + pointCurrent = pointsWithTangents[i]; + pointAfter = pointsWithTangents[i + 1]; + if (pointCurrent.model.skip || pointAfter.model.skip) { + continue; + } + + if (helpers$1.almostEquals(pointCurrent.deltaK, 0, this.EPSILON)) { + pointCurrent.mK = pointAfter.mK = 0; + continue; + } + + alphaK = pointCurrent.mK / pointCurrent.deltaK; + betaK = pointAfter.mK / pointCurrent.deltaK; + squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2); + if (squaredMagnitude <= 9) { + continue; + } + + tauK = 3 / Math.sqrt(squaredMagnitude); + pointCurrent.mK = alphaK * tauK * pointCurrent.deltaK; + pointAfter.mK = betaK * tauK * pointCurrent.deltaK; + } + + // Compute control points + var deltaX; + for (i = 0; i < pointsLen; ++i) { + pointCurrent = pointsWithTangents[i]; + if (pointCurrent.model.skip) { + continue; + } + + pointBefore = i > 0 ? pointsWithTangents[i - 1] : null; + pointAfter = i < pointsLen - 1 ? pointsWithTangents[i + 1] : null; + if (pointBefore && !pointBefore.model.skip) { + deltaX = (pointCurrent.model.x - pointBefore.model.x) / 3; + pointCurrent.model.controlPointPreviousX = pointCurrent.model.x - deltaX; + pointCurrent.model.controlPointPreviousY = pointCurrent.model.y - deltaX * pointCurrent.mK; + } + if (pointAfter && !pointAfter.model.skip) { + deltaX = (pointAfter.model.x - pointCurrent.model.x) / 3; + pointCurrent.model.controlPointNextX = pointCurrent.model.x + deltaX; + pointCurrent.model.controlPointNextY = pointCurrent.model.y + deltaX * pointCurrent.mK; + } + } + }; + helpers$1.nextItem = function(collection, index, loop) { + if (loop) { + return index >= collection.length - 1 ? collection[0] : collection[index + 1]; + } + return index >= collection.length - 1 ? collection[collection.length - 1] : collection[index + 1]; + }; + helpers$1.previousItem = function(collection, index, loop) { + if (loop) { + return index <= 0 ? collection[collection.length - 1] : collection[index - 1]; + } + return index <= 0 ? collection[0] : collection[index - 1]; + }; + // Implementation of the nice number algorithm used in determining where axis labels will go + helpers$1.niceNum = function(range, round) { + var exponent = Math.floor(helpers$1.log10(range)); + var fraction = range / Math.pow(10, exponent); + var niceFraction; + + if (round) { + if (fraction < 1.5) { + niceFraction = 1; + } else if (fraction < 3) { + niceFraction = 2; + } else if (fraction < 7) { + niceFraction = 5; + } else { + niceFraction = 10; + } + } else if (fraction <= 1.0) { + niceFraction = 1; + } else if (fraction <= 2) { + niceFraction = 2; + } else if (fraction <= 5) { + niceFraction = 5; + } else { + niceFraction = 10; + } + + return niceFraction * Math.pow(10, exponent); + }; + // Request animation polyfill - https://www.paulirish.com/2011/requestanimationframe-for-smart-animating/ + helpers$1.requestAnimFrame = (function() { + if (typeof window === 'undefined') { + return function(callback) { + callback(); + }; + } + return window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + window.oRequestAnimationFrame || + window.msRequestAnimationFrame || + function(callback) { + return window.setTimeout(callback, 1000 / 60); + }; + }()); + // -- DOM methods + helpers$1.getRelativePosition = function(evt, chart) { + var mouseX, mouseY; + var e = evt.originalEvent || evt; + var canvas = evt.target || evt.srcElement; + var boundingRect = canvas.getBoundingClientRect(); + + var touches = e.touches; + if (touches && touches.length > 0) { + mouseX = touches[0].clientX; + mouseY = touches[0].clientY; + + } else { + mouseX = e.clientX; + mouseY = e.clientY; + } + + // Scale mouse coordinates into canvas coordinates + // by following the pattern laid out by 'jerryj' in the comments of + // https://www.html5canvastutorials.com/advanced/html5-canvas-mouse-coordinates/ + var paddingLeft = parseFloat(helpers$1.getStyle(canvas, 'padding-left')); + var paddingTop = parseFloat(helpers$1.getStyle(canvas, 'padding-top')); + var paddingRight = parseFloat(helpers$1.getStyle(canvas, 'padding-right')); + var paddingBottom = parseFloat(helpers$1.getStyle(canvas, 'padding-bottom')); + var width = boundingRect.right - boundingRect.left - paddingLeft - paddingRight; + var height = boundingRect.bottom - boundingRect.top - paddingTop - paddingBottom; + + // We divide by the current device pixel ratio, because the canvas is scaled up by that amount in each direction. However + // the backend model is in unscaled coordinates. Since we are going to deal with our model coordinates, we go back here + mouseX = Math.round((mouseX - boundingRect.left - paddingLeft) / (width) * canvas.width / chart.currentDevicePixelRatio); + mouseY = Math.round((mouseY - boundingRect.top - paddingTop) / (height) * canvas.height / chart.currentDevicePixelRatio); + + return { + x: mouseX, + y: mouseY + }; + + }; + + // Private helper function to convert max-width/max-height values that may be percentages into a number + function parseMaxStyle(styleValue, node, parentProperty) { + var valueInPixels; + if (typeof styleValue === 'string') { + valueInPixels = parseInt(styleValue, 10); + + if (styleValue.indexOf('%') !== -1) { + // percentage * size in dimension + valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty]; + } + } else { + valueInPixels = styleValue; + } + + return valueInPixels; + } + + /** + * Returns if the given value contains an effective constraint. + * @private + */ + function isConstrainedValue(value) { + return value !== undefined && value !== null && value !== 'none'; + } + + /** + * Returns the max width or height of the given DOM node in a cross-browser compatible fashion + * @param {HTMLElement} domNode - the node to check the constraint on + * @param {string} maxStyle - the style that defines the maximum for the direction we are using ('max-width' / 'max-height') + * @param {string} percentageProperty - property of parent to use when calculating width as a percentage + * @see {@link https://www.nathanaeljones.com/blog/2013/reading-max-width-cross-browser} + */ + function getConstraintDimension(domNode, maxStyle, percentageProperty) { + var view = document.defaultView; + var parentNode = helpers$1._getParentNode(domNode); + var constrainedNode = view.getComputedStyle(domNode)[maxStyle]; + var constrainedContainer = view.getComputedStyle(parentNode)[maxStyle]; + var hasCNode = isConstrainedValue(constrainedNode); + var hasCContainer = isConstrainedValue(constrainedContainer); + var infinity = Number.POSITIVE_INFINITY; + + if (hasCNode || hasCContainer) { + return Math.min( + hasCNode ? parseMaxStyle(constrainedNode, domNode, percentageProperty) : infinity, + hasCContainer ? parseMaxStyle(constrainedContainer, parentNode, percentageProperty) : infinity); + } + + return 'none'; + } + // returns Number or undefined if no constraint + helpers$1.getConstraintWidth = function(domNode) { + return getConstraintDimension(domNode, 'max-width', 'clientWidth'); + }; + // returns Number or undefined if no constraint + helpers$1.getConstraintHeight = function(domNode) { + return getConstraintDimension(domNode, 'max-height', 'clientHeight'); + }; + /** + * @private + */ + helpers$1._calculatePadding = function(container, padding, parentDimension) { + padding = helpers$1.getStyle(container, padding); + + return padding.indexOf('%') > -1 ? parentDimension * parseInt(padding, 10) / 100 : parseInt(padding, 10); + }; + /** + * @private + */ + helpers$1._getParentNode = function(domNode) { + var parent = domNode.parentNode; + if (parent && parent.toString() === '[object ShadowRoot]') { + parent = parent.host; + } + return parent; + }; + helpers$1.getMaximumWidth = function(domNode) { + var container = helpers$1._getParentNode(domNode); + if (!container) { + return domNode.clientWidth; + } + + var clientWidth = container.clientWidth; + var paddingLeft = helpers$1._calculatePadding(container, 'padding-left', clientWidth); + var paddingRight = helpers$1._calculatePadding(container, 'padding-right', clientWidth); + + var w = clientWidth - paddingLeft - paddingRight; + var cw = helpers$1.getConstraintWidth(domNode); + return isNaN(cw) ? w : Math.min(w, cw); + }; + helpers$1.getMaximumHeight = function(domNode) { + var container = helpers$1._getParentNode(domNode); + if (!container) { + return domNode.clientHeight; + } + + var clientHeight = container.clientHeight; + var paddingTop = helpers$1._calculatePadding(container, 'padding-top', clientHeight); + var paddingBottom = helpers$1._calculatePadding(container, 'padding-bottom', clientHeight); + + var h = clientHeight - paddingTop - paddingBottom; + var ch = helpers$1.getConstraintHeight(domNode); + return isNaN(ch) ? h : Math.min(h, ch); + }; + helpers$1.getStyle = function(el, property) { + return el.currentStyle ? + el.currentStyle[property] : + document.defaultView.getComputedStyle(el, null).getPropertyValue(property); + }; + helpers$1.retinaScale = function(chart, forceRatio) { + var pixelRatio = chart.currentDevicePixelRatio = forceRatio || (typeof window !== 'undefined' && window.devicePixelRatio) || 1; + if (pixelRatio === 1) { + return; + } + + var canvas = chart.canvas; + var height = chart.height; + var width = chart.width; + + canvas.height = height * pixelRatio; + canvas.width = width * pixelRatio; + chart.ctx.scale(pixelRatio, pixelRatio); + + // If no style has been set on the canvas, the render size is used as display size, + // making the chart visually bigger, so let's enforce it to the "correct" values. + // See https://github.com/chartjs/Chart.js/issues/3575 + if (!canvas.style.height && !canvas.style.width) { + canvas.style.height = height + 'px'; + canvas.style.width = width + 'px'; + } + }; + // -- Canvas methods + helpers$1.fontString = function(pixelSize, fontStyle, fontFamily) { + return fontStyle + ' ' + pixelSize + 'px ' + fontFamily; + }; + helpers$1.longestText = function(ctx, font, arrayOfThings, cache) { + cache = cache || {}; + var data = cache.data = cache.data || {}; + var gc = cache.garbageCollect = cache.garbageCollect || []; + + if (cache.font !== font) { + data = cache.data = {}; + gc = cache.garbageCollect = []; + cache.font = font; + } + + ctx.font = font; + var longest = 0; + helpers$1.each(arrayOfThings, function(thing) { + // Undefined strings and arrays should not be measured + if (thing !== undefined && thing !== null && helpers$1.isArray(thing) !== true) { + longest = helpers$1.measureText(ctx, data, gc, longest, thing); + } else if (helpers$1.isArray(thing)) { + // if it is an array lets measure each element + // to do maybe simplify this function a bit so we can do this more recursively? + helpers$1.each(thing, function(nestedThing) { + // Undefined strings and arrays should not be measured + if (nestedThing !== undefined && nestedThing !== null && !helpers$1.isArray(nestedThing)) { + longest = helpers$1.measureText(ctx, data, gc, longest, nestedThing); + } + }); + } + }); + + var gcLen = gc.length / 2; + if (gcLen > arrayOfThings.length) { + for (var i = 0; i < gcLen; i++) { + delete data[gc[i]]; + } + gc.splice(0, gcLen); + } + return longest; + }; + helpers$1.measureText = function(ctx, data, gc, longest, string) { + var textWidth = data[string]; + if (!textWidth) { + textWidth = data[string] = ctx.measureText(string).width; + gc.push(string); + } + if (textWidth > longest) { + longest = textWidth; + } + return longest; + }; + helpers$1.numberOfLabelLines = function(arrayOfThings) { + var numberOfLines = 1; + helpers$1.each(arrayOfThings, function(thing) { + if (helpers$1.isArray(thing)) { + if (thing.length > numberOfLines) { + numberOfLines = thing.length; + } + } + }); + return numberOfLines; + }; + + helpers$1.color = !chartjsColor ? + function(value) { + console.error('Color.js not found!'); + return value; + } : + function(value) { + /* global CanvasGradient */ + if (value instanceof CanvasGradient) { + value = core_defaults.global.defaultColor; + } + + return chartjsColor(value); + }; + + helpers$1.getHoverColor = function(colorValue) { + /* global CanvasPattern */ + return (colorValue instanceof CanvasPattern || colorValue instanceof CanvasGradient) ? + colorValue : + helpers$1.color(colorValue).saturate(0.5).darken(0.1).rgbString(); + }; +}; + +function abstract() { + throw new Error( + 'This method is not implemented: either no adapter can ' + + 'be found or an incomplete integration was provided.' + ); +} + +/** + * Date adapter (current used by the time scale) + * @namespace Chart._adapters._date + * @memberof Chart._adapters + * @private + */ + +/** + * Currently supported unit string values. + * @typedef {('millisecond'|'second'|'minute'|'hour'|'day'|'week'|'month'|'quarter'|'year')} + * @memberof Chart._adapters._date + * @name Unit + */ + +/** + * @class + */ +function DateAdapter(options) { + this.options = options || {}; +} + +helpers$1.extend(DateAdapter.prototype, /** @lends DateAdapter */ { + /** + * Returns a map of time formats for the supported formatting units defined + * in Unit as well as 'datetime' representing a detailed date/time string. + * @returns {{string: string}} + */ + formats: abstract, + + /** + * Parses the given `value` and return the associated timestamp. + * @param {any} value - the value to parse (usually comes from the data) + * @param {string} [format] - the expected data format + * @returns {(number|null)} + * @function + */ + parse: abstract, + + /** + * Returns the formatted date in the specified `format` for a given `timestamp`. + * @param {number} timestamp - the timestamp to format + * @param {string} format - the date/time token + * @return {string} + * @function + */ + format: abstract, + + /** + * Adds the specified `amount` of `unit` to the given `timestamp`. + * @param {number} timestamp - the input timestamp + * @param {number} amount - the amount to add + * @param {Unit} unit - the unit as string + * @return {number} + * @function + */ + add: abstract, + + /** + * Returns the number of `unit` between the given timestamps. + * @param {number} max - the input timestamp (reference) + * @param {number} min - the timestamp to substract + * @param {Unit} unit - the unit as string + * @return {number} + * @function + */ + diff: abstract, + + /** + * Returns start of `unit` for the given `timestamp`. + * @param {number} timestamp - the input timestamp + * @param {Unit} unit - the unit as string + * @param {number} [weekday] - the ISO day of the week with 1 being Monday + * and 7 being Sunday (only needed if param *unit* is `isoWeek`). + * @function + */ + startOf: abstract, + + /** + * Returns end of `unit` for the given `timestamp`. + * @param {number} timestamp - the input timestamp + * @param {Unit} unit - the unit as string + * @function + */ + endOf: abstract, + + // DEPRECATIONS + + /** + * Provided for backward compatibility for scale.getValueForPixel(), + * this method should be overridden only by the moment adapter. + * @deprecated since version 2.8.0 + * @todo remove at version 3 + * @private + */ + _create: function(value) { + return value; + } +}); + +DateAdapter.override = function(members) { + helpers$1.extend(DateAdapter.prototype, members); +}; + +var _date = DateAdapter; + +var core_adapters = { + _date: _date +}; + +/** + * Namespace to hold static tick generation functions + * @namespace Chart.Ticks + */ +var core_ticks = { + /** + * Namespace to hold formatters for different types of ticks + * @namespace Chart.Ticks.formatters + */ + formatters: { + /** + * Formatter for value labels + * @method Chart.Ticks.formatters.values + * @param value the value to display + * @return {string|string[]} the label to display + */ + values: function(value) { + return helpers$1.isArray(value) ? value : '' + value; + }, + + /** + * Formatter for linear numeric ticks + * @method Chart.Ticks.formatters.linear + * @param tickValue {number} the value to be formatted + * @param index {number} the position of the tickValue parameter in the ticks array + * @param ticks {number[]} the list of ticks being converted + * @return {string} string representation of the tickValue parameter + */ + linear: function(tickValue, index, ticks) { + // If we have lots of ticks, don't use the ones + var delta = ticks.length > 3 ? ticks[2] - ticks[1] : ticks[1] - ticks[0]; + + // If we have a number like 2.5 as the delta, figure out how many decimal places we need + if (Math.abs(delta) > 1) { + if (tickValue !== Math.floor(tickValue)) { + // not an integer + delta = tickValue - Math.floor(tickValue); + } + } + + var logDelta = helpers$1.log10(Math.abs(delta)); + var tickString = ''; + + if (tickValue !== 0) { + var maxTick = Math.max(Math.abs(ticks[0]), Math.abs(ticks[ticks.length - 1])); + if (maxTick < 1e-4) { // all ticks are small numbers; use scientific notation + var logTick = helpers$1.log10(Math.abs(tickValue)); + tickString = tickValue.toExponential(Math.floor(logTick) - Math.floor(logDelta)); + } else { + var numDecimal = -1 * Math.floor(logDelta); + numDecimal = Math.max(Math.min(numDecimal, 20), 0); // toFixed has a max of 20 decimal places + tickString = tickValue.toFixed(numDecimal); + } + } else { + tickString = '0'; // never show decimal places for 0 + } + + return tickString; + }, + + logarithmic: function(tickValue, index, ticks) { + var remain = tickValue / (Math.pow(10, Math.floor(helpers$1.log10(tickValue)))); + + if (tickValue === 0) { + return '0'; + } else if (remain === 1 || remain === 2 || remain === 5 || index === 0 || index === ticks.length - 1) { + return tickValue.toExponential(); + } + return ''; + } + } +}; + +var valueOrDefault$9 = helpers$1.valueOrDefault; +var valueAtIndexOrDefault = helpers$1.valueAtIndexOrDefault; + +core_defaults._set('scale', { + display: true, + position: 'left', + offset: false, + + // grid line settings + gridLines: { + display: true, + color: 'rgba(0, 0, 0, 0.1)', + lineWidth: 1, + drawBorder: true, + drawOnChartArea: true, + drawTicks: true, + tickMarkLength: 10, + zeroLineWidth: 1, + zeroLineColor: 'rgba(0,0,0,0.25)', + zeroLineBorderDash: [], + zeroLineBorderDashOffset: 0.0, + offsetGridLines: false, + borderDash: [], + borderDashOffset: 0.0 + }, + + // scale label + scaleLabel: { + // display property + display: false, + + // actual label + labelString: '', + + // top/bottom padding + padding: { + top: 4, + bottom: 4 + } + }, + + // label settings + ticks: { + beginAtZero: false, + minRotation: 0, + maxRotation: 50, + mirror: false, + padding: 0, + reverse: false, + display: true, + autoSkip: true, + autoSkipPadding: 0, + labelOffset: 0, + // We pass through arrays to be rendered as multiline labels, we convert Others to strings here. + callback: core_ticks.formatters.values, + minor: {}, + major: {} + } +}); + +function labelsFromTicks(ticks) { + var labels = []; + var i, ilen; + + for (i = 0, ilen = ticks.length; i < ilen; ++i) { + labels.push(ticks[i].label); + } + + return labels; +} + +function getPixelForGridLine(scale, index, offsetGridLines) { + var lineValue = scale.getPixelForTick(index); + + if (offsetGridLines) { + if (scale.getTicks().length === 1) { + lineValue -= scale.isHorizontal() ? + Math.max(lineValue - scale.left, scale.right - lineValue) : + Math.max(lineValue - scale.top, scale.bottom - lineValue); + } else if (index === 0) { + lineValue -= (scale.getPixelForTick(1) - lineValue) / 2; + } else { + lineValue -= (lineValue - scale.getPixelForTick(index - 1)) / 2; + } + } + return lineValue; +} + +function computeTextSize(context, tick, font) { + return helpers$1.isArray(tick) ? + helpers$1.longestText(context, font, tick) : + context.measureText(tick).width; +} + +var core_scale = core_element.extend({ + /** + * Get the padding needed for the scale + * @method getPadding + * @private + * @returns {Padding} the necessary padding + */ + getPadding: function() { + var me = this; + return { + left: me.paddingLeft || 0, + top: me.paddingTop || 0, + right: me.paddingRight || 0, + bottom: me.paddingBottom || 0 + }; + }, + + /** + * Returns the scale tick objects ({label, major}) + * @since 2.7 + */ + getTicks: function() { + return this._ticks; + }, + + // These methods are ordered by lifecyle. Utilities then follow. + // Any function defined here is inherited by all scale types. + // Any function can be extended by the scale type + + mergeTicksOptions: function() { + var ticks = this.options.ticks; + if (ticks.minor === false) { + ticks.minor = { + display: false + }; + } + if (ticks.major === false) { + ticks.major = { + display: false + }; + } + for (var key in ticks) { + if (key !== 'major' && key !== 'minor') { + if (typeof ticks.minor[key] === 'undefined') { + ticks.minor[key] = ticks[key]; + } + if (typeof ticks.major[key] === 'undefined') { + ticks.major[key] = ticks[key]; + } + } + } + }, + beforeUpdate: function() { + helpers$1.callback(this.options.beforeUpdate, [this]); + }, + + update: function(maxWidth, maxHeight, margins) { + var me = this; + var i, ilen, labels, label, ticks, tick; + + // Update Lifecycle - Probably don't want to ever extend or overwrite this function ;) + me.beforeUpdate(); + + // Absorb the master measurements + me.maxWidth = maxWidth; + me.maxHeight = maxHeight; + me.margins = helpers$1.extend({ + left: 0, + right: 0, + top: 0, + bottom: 0 + }, margins); + + me._maxLabelLines = 0; + me.longestLabelWidth = 0; + me.longestTextCache = me.longestTextCache || {}; + + // Dimensions + me.beforeSetDimensions(); + me.setDimensions(); + me.afterSetDimensions(); + + // Data min/max + me.beforeDataLimits(); + me.determineDataLimits(); + me.afterDataLimits(); + + // Ticks - `this.ticks` is now DEPRECATED! + // Internal ticks are now stored as objects in the PRIVATE `this._ticks` member + // and must not be accessed directly from outside this class. `this.ticks` being + // around for long time and not marked as private, we can't change its structure + // without unexpected breaking changes. If you need to access the scale ticks, + // use scale.getTicks() instead. + + me.beforeBuildTicks(); + + // New implementations should return an array of objects but for BACKWARD COMPAT, + // we still support no return (`this.ticks` internally set by calling this method). + ticks = me.buildTicks() || []; + + // Allow modification of ticks in callback. + ticks = me.afterBuildTicks(ticks) || ticks; + + me.beforeTickToLabelConversion(); + + // New implementations should return the formatted tick labels but for BACKWARD + // COMPAT, we still support no return (`this.ticks` internally changed by calling + // this method and supposed to contain only string values). + labels = me.convertTicksToLabels(ticks) || me.ticks; + + me.afterTickToLabelConversion(); + + me.ticks = labels; // BACKWARD COMPATIBILITY + + // IMPORTANT: from this point, we consider that `this.ticks` will NEVER change! + + // BACKWARD COMPAT: synchronize `_ticks` with labels (so potentially `this.ticks`) + for (i = 0, ilen = labels.length; i < ilen; ++i) { + label = labels[i]; + tick = ticks[i]; + if (!tick) { + ticks.push(tick = { + label: label, + major: false + }); + } else { + tick.label = label; + } + } + + me._ticks = ticks; + + // Tick Rotation + me.beforeCalculateTickRotation(); + me.calculateTickRotation(); + me.afterCalculateTickRotation(); + // Fit + me.beforeFit(); + me.fit(); + me.afterFit(); + // + me.afterUpdate(); + + return me.minSize; + + }, + afterUpdate: function() { + helpers$1.callback(this.options.afterUpdate, [this]); + }, + + // + + beforeSetDimensions: function() { + helpers$1.callback(this.options.beforeSetDimensions, [this]); + }, + setDimensions: function() { + var me = this; + // Set the unconstrained dimension before label rotation + if (me.isHorizontal()) { + // Reset position before calculating rotation + me.width = me.maxWidth; + me.left = 0; + me.right = me.width; + } else { + me.height = me.maxHeight; + + // Reset position before calculating rotation + me.top = 0; + me.bottom = me.height; + } + + // Reset padding + me.paddingLeft = 0; + me.paddingTop = 0; + me.paddingRight = 0; + me.paddingBottom = 0; + }, + afterSetDimensions: function() { + helpers$1.callback(this.options.afterSetDimensions, [this]); + }, + + // Data limits + beforeDataLimits: function() { + helpers$1.callback(this.options.beforeDataLimits, [this]); + }, + determineDataLimits: helpers$1.noop, + afterDataLimits: function() { + helpers$1.callback(this.options.afterDataLimits, [this]); + }, + + // + beforeBuildTicks: function() { + helpers$1.callback(this.options.beforeBuildTicks, [this]); + }, + buildTicks: helpers$1.noop, + afterBuildTicks: function(ticks) { + var me = this; + // ticks is empty for old axis implementations here + if (helpers$1.isArray(ticks) && ticks.length) { + return helpers$1.callback(me.options.afterBuildTicks, [me, ticks]); + } + // Support old implementations (that modified `this.ticks` directly in buildTicks) + me.ticks = helpers$1.callback(me.options.afterBuildTicks, [me, me.ticks]) || me.ticks; + return ticks; + }, + + beforeTickToLabelConversion: function() { + helpers$1.callback(this.options.beforeTickToLabelConversion, [this]); + }, + convertTicksToLabels: function() { + var me = this; + // Convert ticks to strings + var tickOpts = me.options.ticks; + me.ticks = me.ticks.map(tickOpts.userCallback || tickOpts.callback, this); + }, + afterTickToLabelConversion: function() { + helpers$1.callback(this.options.afterTickToLabelConversion, [this]); + }, + + // + + beforeCalculateTickRotation: function() { + helpers$1.callback(this.options.beforeCalculateTickRotation, [this]); + }, + calculateTickRotation: function() { + var me = this; + var context = me.ctx; + var tickOpts = me.options.ticks; + var labels = labelsFromTicks(me._ticks); + + // Get the width of each grid by calculating the difference + // between x offsets between 0 and 1. + var tickFont = helpers$1.options._parseFont(tickOpts); + context.font = tickFont.string; + + var labelRotation = tickOpts.minRotation || 0; + + if (labels.length && me.options.display && me.isHorizontal()) { + var originalLabelWidth = helpers$1.longestText(context, tickFont.string, labels, me.longestTextCache); + var labelWidth = originalLabelWidth; + var cosRotation, sinRotation; + + // Allow 3 pixels x2 padding either side for label readability + var tickWidth = me.getPixelForTick(1) - me.getPixelForTick(0) - 6; + + // Max label rotation can be set or default to 90 - also act as a loop counter + while (labelWidth > tickWidth && labelRotation < tickOpts.maxRotation) { + var angleRadians = helpers$1.toRadians(labelRotation); + cosRotation = Math.cos(angleRadians); + sinRotation = Math.sin(angleRadians); + + if (sinRotation * originalLabelWidth > me.maxHeight) { + // go back one step + labelRotation--; + break; + } + + labelRotation++; + labelWidth = cosRotation * originalLabelWidth; + } + } + + me.labelRotation = labelRotation; + }, + afterCalculateTickRotation: function() { + helpers$1.callback(this.options.afterCalculateTickRotation, [this]); + }, + + // + + beforeFit: function() { + helpers$1.callback(this.options.beforeFit, [this]); + }, + fit: function() { + var me = this; + // Reset + var minSize = me.minSize = { + width: 0, + height: 0 + }; + + var labels = labelsFromTicks(me._ticks); + + var opts = me.options; + var tickOpts = opts.ticks; + var scaleLabelOpts = opts.scaleLabel; + var gridLineOpts = opts.gridLines; + var display = me._isVisible(); + var position = opts.position; + var isHorizontal = me.isHorizontal(); + + var parseFont = helpers$1.options._parseFont; + var tickFont = parseFont(tickOpts); + var tickMarkLength = opts.gridLines.tickMarkLength; + + // Width + if (isHorizontal) { + // subtract the margins to line up with the chartArea if we are a full width scale + minSize.width = me.isFullWidth() ? me.maxWidth - me.margins.left - me.margins.right : me.maxWidth; + } else { + minSize.width = display && gridLineOpts.drawTicks ? tickMarkLength : 0; + } + + // height + if (isHorizontal) { + minSize.height = display && gridLineOpts.drawTicks ? tickMarkLength : 0; + } else { + minSize.height = me.maxHeight; // fill all the height + } + + // Are we showing a title for the scale? + if (scaleLabelOpts.display && display) { + var scaleLabelFont = parseFont(scaleLabelOpts); + var scaleLabelPadding = helpers$1.options.toPadding(scaleLabelOpts.padding); + var deltaHeight = scaleLabelFont.lineHeight + scaleLabelPadding.height; + + if (isHorizontal) { + minSize.height += deltaHeight; + } else { + minSize.width += deltaHeight; + } + } + + // Don't bother fitting the ticks if we are not showing the labels + if (tickOpts.display && display) { + var largestTextWidth = helpers$1.longestText(me.ctx, tickFont.string, labels, me.longestTextCache); + var tallestLabelHeightInLines = helpers$1.numberOfLabelLines(labels); + var lineSpace = tickFont.size * 0.5; + var tickPadding = me.options.ticks.padding; + + // Store max number of lines and widest label for _autoSkip + me._maxLabelLines = tallestLabelHeightInLines; + me.longestLabelWidth = largestTextWidth; + + if (isHorizontal) { + var angleRadians = helpers$1.toRadians(me.labelRotation); + var cosRotation = Math.cos(angleRadians); + var sinRotation = Math.sin(angleRadians); + + // TODO - improve this calculation + var labelHeight = (sinRotation * largestTextWidth) + + (tickFont.lineHeight * tallestLabelHeightInLines) + + lineSpace; // padding + + minSize.height = Math.min(me.maxHeight, minSize.height + labelHeight + tickPadding); + + me.ctx.font = tickFont.string; + var firstLabelWidth = computeTextSize(me.ctx, labels[0], tickFont.string); + var lastLabelWidth = computeTextSize(me.ctx, labels[labels.length - 1], tickFont.string); + var offsetLeft = me.getPixelForTick(0) - me.left; + var offsetRight = me.right - me.getPixelForTick(labels.length - 1); + var paddingLeft, paddingRight; + + // Ensure that our ticks are always inside the canvas. When rotated, ticks are right aligned + // which means that the right padding is dominated by the font height + if (me.labelRotation !== 0) { + paddingLeft = position === 'bottom' ? (cosRotation * firstLabelWidth) : (cosRotation * lineSpace); + paddingRight = position === 'bottom' ? (cosRotation * lineSpace) : (cosRotation * lastLabelWidth); + } else { + paddingLeft = firstLabelWidth / 2; + paddingRight = lastLabelWidth / 2; + } + me.paddingLeft = Math.max(paddingLeft - offsetLeft, 0) + 3; // add 3 px to move away from canvas edges + me.paddingRight = Math.max(paddingRight - offsetRight, 0) + 3; + } else { + // A vertical axis is more constrained by the width. Labels are the + // dominant factor here, so get that length first and account for padding + if (tickOpts.mirror) { + largestTextWidth = 0; + } else { + // use lineSpace for consistency with horizontal axis + // tickPadding is not implemented for horizontal + largestTextWidth += tickPadding + lineSpace; + } + + minSize.width = Math.min(me.maxWidth, minSize.width + largestTextWidth); + + me.paddingTop = tickFont.size / 2; + me.paddingBottom = tickFont.size / 2; + } + } + + me.handleMargins(); + + me.width = minSize.width; + me.height = minSize.height; + }, + + /** + * Handle margins and padding interactions + * @private + */ + handleMargins: function() { + var me = this; + if (me.margins) { + me.paddingLeft = Math.max(me.paddingLeft - me.margins.left, 0); + me.paddingTop = Math.max(me.paddingTop - me.margins.top, 0); + me.paddingRight = Math.max(me.paddingRight - me.margins.right, 0); + me.paddingBottom = Math.max(me.paddingBottom - me.margins.bottom, 0); + } + }, + + afterFit: function() { + helpers$1.callback(this.options.afterFit, [this]); + }, + + // Shared Methods + isHorizontal: function() { + return this.options.position === 'top' || this.options.position === 'bottom'; + }, + isFullWidth: function() { + return (this.options.fullWidth); + }, + + // Get the correct value. NaN bad inputs, If the value type is object get the x or y based on whether we are horizontal or not + getRightValue: function(rawValue) { + // Null and undefined values first + if (helpers$1.isNullOrUndef(rawValue)) { + return NaN; + } + // isNaN(object) returns true, so make sure NaN is checking for a number; Discard Infinite values + if ((typeof rawValue === 'number' || rawValue instanceof Number) && !isFinite(rawValue)) { + return NaN; + } + // If it is in fact an object, dive in one more level + if (rawValue) { + if (this.isHorizontal()) { + if (rawValue.x !== undefined) { + return this.getRightValue(rawValue.x); + } + } else if (rawValue.y !== undefined) { + return this.getRightValue(rawValue.y); + } + } + + // Value is good, return it + return rawValue; + }, + + /** + * Used to get the value to display in the tooltip for the data at the given index + * @param index + * @param datasetIndex + */ + getLabelForIndex: helpers$1.noop, + + /** + * Returns the location of the given data point. Value can either be an index or a numerical value + * The coordinate (0, 0) is at the upper-left corner of the canvas + * @param value + * @param index + * @param datasetIndex + */ + getPixelForValue: helpers$1.noop, + + /** + * Used to get the data value from a given pixel. This is the inverse of getPixelForValue + * The coordinate (0, 0) is at the upper-left corner of the canvas + * @param pixel + */ + getValueForPixel: helpers$1.noop, + + /** + * Returns the location of the tick at the given index + * The coordinate (0, 0) is at the upper-left corner of the canvas + */ + getPixelForTick: function(index) { + var me = this; + var offset = me.options.offset; + if (me.isHorizontal()) { + var innerWidth = me.width - (me.paddingLeft + me.paddingRight); + var tickWidth = innerWidth / Math.max((me._ticks.length - (offset ? 0 : 1)), 1); + var pixel = (tickWidth * index) + me.paddingLeft; + + if (offset) { + pixel += tickWidth / 2; + } + + var finalVal = me.left + pixel; + finalVal += me.isFullWidth() ? me.margins.left : 0; + return finalVal; + } + var innerHeight = me.height - (me.paddingTop + me.paddingBottom); + return me.top + (index * (innerHeight / (me._ticks.length - 1))); + }, + + /** + * Utility for getting the pixel location of a percentage of scale + * The coordinate (0, 0) is at the upper-left corner of the canvas + */ + getPixelForDecimal: function(decimal) { + var me = this; + if (me.isHorizontal()) { + var innerWidth = me.width - (me.paddingLeft + me.paddingRight); + var valueOffset = (innerWidth * decimal) + me.paddingLeft; + + var finalVal = me.left + valueOffset; + finalVal += me.isFullWidth() ? me.margins.left : 0; + return finalVal; + } + return me.top + (decimal * me.height); + }, + + /** + * Returns the pixel for the minimum chart value + * The coordinate (0, 0) is at the upper-left corner of the canvas + */ + getBasePixel: function() { + return this.getPixelForValue(this.getBaseValue()); + }, + + getBaseValue: function() { + var me = this; + var min = me.min; + var max = me.max; + + return me.beginAtZero ? 0 : + min < 0 && max < 0 ? max : + min > 0 && max > 0 ? min : + 0; + }, + + /** + * Returns a subset of ticks to be plotted to avoid overlapping labels. + * @private + */ + _autoSkip: function(ticks) { + var me = this; + var isHorizontal = me.isHorizontal(); + var optionTicks = me.options.ticks.minor; + var tickCount = ticks.length; + var skipRatio = false; + var maxTicks = optionTicks.maxTicksLimit; + + // Total space needed to display all ticks. First and last ticks are + // drawn as their center at end of axis, so tickCount-1 + var ticksLength = me._tickSize() * (tickCount - 1); + + // Axis length + var axisLength = isHorizontal + ? me.width - (me.paddingLeft + me.paddingRight) + : me.height - (me.paddingTop + me.PaddingBottom); + + var result = []; + var i, tick; + + if (ticksLength > axisLength) { + skipRatio = 1 + Math.floor(ticksLength / axisLength); + } + + // if they defined a max number of optionTicks, + // increase skipRatio until that number is met + if (tickCount > maxTicks) { + skipRatio = Math.max(skipRatio, 1 + Math.floor(tickCount / maxTicks)); + } + + for (i = 0; i < tickCount; i++) { + tick = ticks[i]; + + if (skipRatio > 1 && i % skipRatio > 0) { + // leave tick in place but make sure it's not displayed (#4635) + delete tick.label; + } + result.push(tick); + } + return result; + }, + + /** + * @private + */ + _tickSize: function() { + var me = this; + var isHorizontal = me.isHorizontal(); + var optionTicks = me.options.ticks.minor; + + // Calculate space needed by label in axis direction. + var rot = helpers$1.toRadians(me.labelRotation); + var cos = Math.abs(Math.cos(rot)); + var sin = Math.abs(Math.sin(rot)); + + var padding = optionTicks.autoSkipPadding || 0; + var w = (me.longestLabelWidth + padding) || 0; + + var tickFont = helpers$1.options._parseFont(optionTicks); + var h = (me._maxLabelLines * tickFont.lineHeight + padding) || 0; + + // Calculate space needed for 1 tick in axis direction. + return isHorizontal + ? h * cos > w * sin ? w / cos : h / sin + : h * sin < w * cos ? h / cos : w / sin; + }, + + /** + * @private + */ + _isVisible: function() { + var me = this; + var chart = me.chart; + var display = me.options.display; + var i, ilen, meta; + + if (display !== 'auto') { + return !!display; + } + + // When 'auto', the scale is visible if at least one associated dataset is visible. + for (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) { + if (chart.isDatasetVisible(i)) { + meta = chart.getDatasetMeta(i); + if (meta.xAxisID === me.id || meta.yAxisID === me.id) { + return true; + } + } + } + + return false; + }, + + /** + * Actually draw the scale on the canvas + * @param {object} chartArea - the area of the chart to draw full grid lines on + */ + draw: function(chartArea) { + var me = this; + var options = me.options; + + if (!me._isVisible()) { + return; + } + + var chart = me.chart; + var context = me.ctx; + var globalDefaults = core_defaults.global; + var defaultFontColor = globalDefaults.defaultFontColor; + var optionTicks = options.ticks.minor; + var optionMajorTicks = options.ticks.major || optionTicks; + var gridLines = options.gridLines; + var scaleLabel = options.scaleLabel; + var position = options.position; + + var isRotated = me.labelRotation !== 0; + var isMirrored = optionTicks.mirror; + var isHorizontal = me.isHorizontal(); + + var parseFont = helpers$1.options._parseFont; + var ticks = optionTicks.display && optionTicks.autoSkip ? me._autoSkip(me.getTicks()) : me.getTicks(); + var tickFontColor = valueOrDefault$9(optionTicks.fontColor, defaultFontColor); + var tickFont = parseFont(optionTicks); + var lineHeight = tickFont.lineHeight; + var majorTickFontColor = valueOrDefault$9(optionMajorTicks.fontColor, defaultFontColor); + var majorTickFont = parseFont(optionMajorTicks); + var tickPadding = optionTicks.padding; + var labelOffset = optionTicks.labelOffset; + + var tl = gridLines.drawTicks ? gridLines.tickMarkLength : 0; + + var scaleLabelFontColor = valueOrDefault$9(scaleLabel.fontColor, defaultFontColor); + var scaleLabelFont = parseFont(scaleLabel); + var scaleLabelPadding = helpers$1.options.toPadding(scaleLabel.padding); + var labelRotationRadians = helpers$1.toRadians(me.labelRotation); + + var itemsToDraw = []; + + var axisWidth = gridLines.drawBorder ? valueAtIndexOrDefault(gridLines.lineWidth, 0, 0) : 0; + var alignPixel = helpers$1._alignPixel; + var borderValue, tickStart, tickEnd; + + if (position === 'top') { + borderValue = alignPixel(chart, me.bottom, axisWidth); + tickStart = me.bottom - tl; + tickEnd = borderValue - axisWidth / 2; + } else if (position === 'bottom') { + borderValue = alignPixel(chart, me.top, axisWidth); + tickStart = borderValue + axisWidth / 2; + tickEnd = me.top + tl; + } else if (position === 'left') { + borderValue = alignPixel(chart, me.right, axisWidth); + tickStart = me.right - tl; + tickEnd = borderValue - axisWidth / 2; + } else { + borderValue = alignPixel(chart, me.left, axisWidth); + tickStart = borderValue + axisWidth / 2; + tickEnd = me.left + tl; + } + + var epsilon = 0.0000001; // 0.0000001 is margin in pixels for Accumulated error. + + helpers$1.each(ticks, function(tick, index) { + // autoskipper skipped this tick (#4635) + if (helpers$1.isNullOrUndef(tick.label)) { + return; + } + + var label = tick.label; + var lineWidth, lineColor, borderDash, borderDashOffset; + if (index === me.zeroLineIndex && options.offset === gridLines.offsetGridLines) { + // Draw the first index specially + lineWidth = gridLines.zeroLineWidth; + lineColor = gridLines.zeroLineColor; + borderDash = gridLines.zeroLineBorderDash || []; + borderDashOffset = gridLines.zeroLineBorderDashOffset || 0.0; + } else { + lineWidth = valueAtIndexOrDefault(gridLines.lineWidth, index); + lineColor = valueAtIndexOrDefault(gridLines.color, index); + borderDash = gridLines.borderDash || []; + borderDashOffset = gridLines.borderDashOffset || 0.0; + } + + // Common properties + var tx1, ty1, tx2, ty2, x1, y1, x2, y2, labelX, labelY, textOffset, textAlign; + var labelCount = helpers$1.isArray(label) ? label.length : 1; + var lineValue = getPixelForGridLine(me, index, gridLines.offsetGridLines); + + if (isHorizontal) { + var labelYOffset = tl + tickPadding; + + if (lineValue < me.left - epsilon) { + lineColor = 'rgba(0,0,0,0)'; + } + + tx1 = tx2 = x1 = x2 = alignPixel(chart, lineValue, lineWidth); + ty1 = tickStart; + ty2 = tickEnd; + labelX = me.getPixelForTick(index) + labelOffset; // x values for optionTicks (need to consider offsetLabel option) + + if (position === 'top') { + y1 = alignPixel(chart, chartArea.top, axisWidth) + axisWidth / 2; + y2 = chartArea.bottom; + textOffset = ((!isRotated ? 0.5 : 1) - labelCount) * lineHeight; + textAlign = !isRotated ? 'center' : 'left'; + labelY = me.bottom - labelYOffset; + } else { + y1 = chartArea.top; + y2 = alignPixel(chart, chartArea.bottom, axisWidth) - axisWidth / 2; + textOffset = (!isRotated ? 0.5 : 0) * lineHeight; + textAlign = !isRotated ? 'center' : 'right'; + labelY = me.top + labelYOffset; + } + } else { + var labelXOffset = (isMirrored ? 0 : tl) + tickPadding; + + if (lineValue < me.top - epsilon) { + lineColor = 'rgba(0,0,0,0)'; + } + + tx1 = tickStart; + tx2 = tickEnd; + ty1 = ty2 = y1 = y2 = alignPixel(chart, lineValue, lineWidth); + labelY = me.getPixelForTick(index) + labelOffset; + textOffset = (1 - labelCount) * lineHeight / 2; + + if (position === 'left') { + x1 = alignPixel(chart, chartArea.left, axisWidth) + axisWidth / 2; + x2 = chartArea.right; + textAlign = isMirrored ? 'left' : 'right'; + labelX = me.right - labelXOffset; + } else { + x1 = chartArea.left; + x2 = alignPixel(chart, chartArea.right, axisWidth) - axisWidth / 2; + textAlign = isMirrored ? 'right' : 'left'; + labelX = me.left + labelXOffset; + } + } + + itemsToDraw.push({ + tx1: tx1, + ty1: ty1, + tx2: tx2, + ty2: ty2, + x1: x1, + y1: y1, + x2: x2, + y2: y2, + labelX: labelX, + labelY: labelY, + glWidth: lineWidth, + glColor: lineColor, + glBorderDash: borderDash, + glBorderDashOffset: borderDashOffset, + rotation: -1 * labelRotationRadians, + label: label, + major: tick.major, + textOffset: textOffset, + textAlign: textAlign + }); + }); + + // Draw all of the tick labels, tick marks, and grid lines at the correct places + helpers$1.each(itemsToDraw, function(itemToDraw) { + var glWidth = itemToDraw.glWidth; + var glColor = itemToDraw.glColor; + + if (gridLines.display && glWidth && glColor) { + context.save(); + context.lineWidth = glWidth; + context.strokeStyle = glColor; + if (context.setLineDash) { + context.setLineDash(itemToDraw.glBorderDash); + context.lineDashOffset = itemToDraw.glBorderDashOffset; + } + + context.beginPath(); + + if (gridLines.drawTicks) { + context.moveTo(itemToDraw.tx1, itemToDraw.ty1); + context.lineTo(itemToDraw.tx2, itemToDraw.ty2); + } + + if (gridLines.drawOnChartArea) { + context.moveTo(itemToDraw.x1, itemToDraw.y1); + context.lineTo(itemToDraw.x2, itemToDraw.y2); + } + + context.stroke(); + context.restore(); + } + + if (optionTicks.display) { + // Make sure we draw text in the correct color and font + context.save(); + context.translate(itemToDraw.labelX, itemToDraw.labelY); + context.rotate(itemToDraw.rotation); + context.font = itemToDraw.major ? majorTickFont.string : tickFont.string; + context.fillStyle = itemToDraw.major ? majorTickFontColor : tickFontColor; + context.textBaseline = 'middle'; + context.textAlign = itemToDraw.textAlign; + + var label = itemToDraw.label; + var y = itemToDraw.textOffset; + if (helpers$1.isArray(label)) { + for (var i = 0; i < label.length; ++i) { + // We just make sure the multiline element is a string here.. + context.fillText('' + label[i], 0, y); + y += lineHeight; + } + } else { + context.fillText(label, 0, y); + } + context.restore(); + } + }); + + if (scaleLabel.display) { + // Draw the scale label + var scaleLabelX; + var scaleLabelY; + var rotation = 0; + var halfLineHeight = scaleLabelFont.lineHeight / 2; + + if (isHorizontal) { + scaleLabelX = me.left + ((me.right - me.left) / 2); // midpoint of the width + scaleLabelY = position === 'bottom' + ? me.bottom - halfLineHeight - scaleLabelPadding.bottom + : me.top + halfLineHeight + scaleLabelPadding.top; + } else { + var isLeft = position === 'left'; + scaleLabelX = isLeft + ? me.left + halfLineHeight + scaleLabelPadding.top + : me.right - halfLineHeight - scaleLabelPadding.top; + scaleLabelY = me.top + ((me.bottom - me.top) / 2); + rotation = isLeft ? -0.5 * Math.PI : 0.5 * Math.PI; + } + + context.save(); + context.translate(scaleLabelX, scaleLabelY); + context.rotate(rotation); + context.textAlign = 'center'; + context.textBaseline = 'middle'; + context.fillStyle = scaleLabelFontColor; // render in correct colour + context.font = scaleLabelFont.string; + context.fillText(scaleLabel.labelString, 0, 0); + context.restore(); + } + + if (axisWidth) { + // Draw the line at the edge of the axis + var firstLineWidth = axisWidth; + var lastLineWidth = valueAtIndexOrDefault(gridLines.lineWidth, ticks.length - 1, 0); + var x1, x2, y1, y2; + + if (isHorizontal) { + x1 = alignPixel(chart, me.left, firstLineWidth) - firstLineWidth / 2; + x2 = alignPixel(chart, me.right, lastLineWidth) + lastLineWidth / 2; + y1 = y2 = borderValue; + } else { + y1 = alignPixel(chart, me.top, firstLineWidth) - firstLineWidth / 2; + y2 = alignPixel(chart, me.bottom, lastLineWidth) + lastLineWidth / 2; + x1 = x2 = borderValue; + } + + context.lineWidth = axisWidth; + context.strokeStyle = valueAtIndexOrDefault(gridLines.color, 0); + context.beginPath(); + context.moveTo(x1, y1); + context.lineTo(x2, y2); + context.stroke(); + } + } +}); + +var defaultConfig = { + position: 'bottom' +}; + +var scale_category = core_scale.extend({ + /** + * Internal function to get the correct labels. If data.xLabels or data.yLabels are defined, use those + * else fall back to data.labels + * @private + */ + getLabels: function() { + var data = this.chart.data; + return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels; + }, + + determineDataLimits: function() { + var me = this; + var labels = me.getLabels(); + me.minIndex = 0; + me.maxIndex = labels.length - 1; + var findIndex; + + if (me.options.ticks.min !== undefined) { + // user specified min value + findIndex = labels.indexOf(me.options.ticks.min); + me.minIndex = findIndex !== -1 ? findIndex : me.minIndex; + } + + if (me.options.ticks.max !== undefined) { + // user specified max value + findIndex = labels.indexOf(me.options.ticks.max); + me.maxIndex = findIndex !== -1 ? findIndex : me.maxIndex; + } + + me.min = labels[me.minIndex]; + me.max = labels[me.maxIndex]; + }, + + buildTicks: function() { + var me = this; + var labels = me.getLabels(); + // If we are viewing some subset of labels, slice the original array + me.ticks = (me.minIndex === 0 && me.maxIndex === labels.length - 1) ? labels : labels.slice(me.minIndex, me.maxIndex + 1); + }, + + getLabelForIndex: function(index, datasetIndex) { + var me = this; + var chart = me.chart; + + if (chart.getDatasetMeta(datasetIndex).controller._getValueScaleId() === me.id) { + return me.getRightValue(chart.data.datasets[datasetIndex].data[index]); + } + + return me.ticks[index - me.minIndex]; + }, + + // Used to get data value locations. Value can either be an index or a numerical value + getPixelForValue: function(value, index) { + var me = this; + var offset = me.options.offset; + // 1 is added because we need the length but we have the indexes + var offsetAmt = Math.max((me.maxIndex + 1 - me.minIndex - (offset ? 0 : 1)), 1); + + // If value is a data object, then index is the index in the data array, + // not the index of the scale. We need to change that. + var valueCategory; + if (value !== undefined && value !== null) { + valueCategory = me.isHorizontal() ? value.x : value.y; + } + if (valueCategory !== undefined || (value !== undefined && isNaN(index))) { + var labels = me.getLabels(); + value = valueCategory || value; + var idx = labels.indexOf(value); + index = idx !== -1 ? idx : index; + } + + if (me.isHorizontal()) { + var valueWidth = me.width / offsetAmt; + var widthOffset = (valueWidth * (index - me.minIndex)); + + if (offset) { + widthOffset += (valueWidth / 2); + } + + return me.left + widthOffset; + } + var valueHeight = me.height / offsetAmt; + var heightOffset = (valueHeight * (index - me.minIndex)); + + if (offset) { + heightOffset += (valueHeight / 2); + } + + return me.top + heightOffset; + }, + + getPixelForTick: function(index) { + return this.getPixelForValue(this.ticks[index], index + this.minIndex, null); + }, + + getValueForPixel: function(pixel) { + var me = this; + var offset = me.options.offset; + var value; + var offsetAmt = Math.max((me._ticks.length - (offset ? 0 : 1)), 1); + var horz = me.isHorizontal(); + var valueDimension = (horz ? me.width : me.height) / offsetAmt; + + pixel -= horz ? me.left : me.top; + + if (offset) { + pixel -= (valueDimension / 2); + } + + if (pixel <= 0) { + value = 0; + } else { + value = Math.round(pixel / valueDimension); + } + + return value + me.minIndex; + }, + + getBasePixel: function() { + return this.bottom; + } +}); + +// INTERNAL: static default options, registered in src/index.js +var _defaults = defaultConfig; +scale_category._defaults = _defaults; + +var noop = helpers$1.noop; +var isNullOrUndef = helpers$1.isNullOrUndef; + +/** + * Generate a set of linear ticks + * @param generationOptions the options used to generate the ticks + * @param dataRange the range of the data + * @returns {number[]} array of tick values + */ +function generateTicks(generationOptions, dataRange) { + var ticks = []; + // To get a "nice" value for the tick spacing, we will use the appropriately named + // "nice number" algorithm. See https://stackoverflow.com/questions/8506881/nice-label-algorithm-for-charts-with-minimum-ticks + // for details. + + var MIN_SPACING = 1e-14; + var stepSize = generationOptions.stepSize; + var unit = stepSize || 1; + var maxNumSpaces = generationOptions.maxTicks - 1; + var min = generationOptions.min; + var max = generationOptions.max; + var precision = generationOptions.precision; + var rmin = dataRange.min; + var rmax = dataRange.max; + var spacing = helpers$1.niceNum((rmax - rmin) / maxNumSpaces / unit) * unit; + var factor, niceMin, niceMax, numSpaces; + + // Beyond MIN_SPACING floating point numbers being to lose precision + // such that we can't do the math necessary to generate ticks + if (spacing < MIN_SPACING && isNullOrUndef(min) && isNullOrUndef(max)) { + return [rmin, rmax]; + } + + numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing); + if (numSpaces > maxNumSpaces) { + // If the calculated num of spaces exceeds maxNumSpaces, recalculate it + spacing = helpers$1.niceNum(numSpaces * spacing / maxNumSpaces / unit) * unit; + } + + if (stepSize || isNullOrUndef(precision)) { + // If a precision is not specified, calculate factor based on spacing + factor = Math.pow(10, helpers$1._decimalPlaces(spacing)); + } else { + // If the user specified a precision, round to that number of decimal places + factor = Math.pow(10, precision); + spacing = Math.ceil(spacing * factor) / factor; + } + + niceMin = Math.floor(rmin / spacing) * spacing; + niceMax = Math.ceil(rmax / spacing) * spacing; + + // If min, max and stepSize is set and they make an evenly spaced scale use it. + if (stepSize) { + // If very close to our whole number, use it. + if (!isNullOrUndef(min) && helpers$1.almostWhole(min / spacing, spacing / 1000)) { + niceMin = min; + } + if (!isNullOrUndef(max) && helpers$1.almostWhole(max / spacing, spacing / 1000)) { + niceMax = max; + } + } + + numSpaces = (niceMax - niceMin) / spacing; + // If very close to our rounded value, use it. + if (helpers$1.almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) { + numSpaces = Math.round(numSpaces); + } else { + numSpaces = Math.ceil(numSpaces); + } + + niceMin = Math.round(niceMin * factor) / factor; + niceMax = Math.round(niceMax * factor) / factor; + ticks.push(isNullOrUndef(min) ? niceMin : min); + for (var j = 1; j < numSpaces; ++j) { + ticks.push(Math.round((niceMin + j * spacing) * factor) / factor); + } + ticks.push(isNullOrUndef(max) ? niceMax : max); + + return ticks; +} + +var scale_linearbase = core_scale.extend({ + getRightValue: function(value) { + if (typeof value === 'string') { + return +value; + } + return core_scale.prototype.getRightValue.call(this, value); + }, + + handleTickRangeOptions: function() { + var me = this; + var opts = me.options; + var tickOpts = opts.ticks; + + // If we are forcing it to begin at 0, but 0 will already be rendered on the chart, + // do nothing since that would make the chart weird. If the user really wants a weird chart + // axis, they can manually override it + if (tickOpts.beginAtZero) { + var minSign = helpers$1.sign(me.min); + var maxSign = helpers$1.sign(me.max); + + if (minSign < 0 && maxSign < 0) { + // move the top up to 0 + me.max = 0; + } else if (minSign > 0 && maxSign > 0) { + // move the bottom down to 0 + me.min = 0; + } + } + + var setMin = tickOpts.min !== undefined || tickOpts.suggestedMin !== undefined; + var setMax = tickOpts.max !== undefined || tickOpts.suggestedMax !== undefined; + + if (tickOpts.min !== undefined) { + me.min = tickOpts.min; + } else if (tickOpts.suggestedMin !== undefined) { + if (me.min === null) { + me.min = tickOpts.suggestedMin; + } else { + me.min = Math.min(me.min, tickOpts.suggestedMin); + } + } + + if (tickOpts.max !== undefined) { + me.max = tickOpts.max; + } else if (tickOpts.suggestedMax !== undefined) { + if (me.max === null) { + me.max = tickOpts.suggestedMax; + } else { + me.max = Math.max(me.max, tickOpts.suggestedMax); + } + } + + if (setMin !== setMax) { + // We set the min or the max but not both. + // So ensure that our range is good + // Inverted or 0 length range can happen when + // ticks.min is set, and no datasets are visible + if (me.min >= me.max) { + if (setMin) { + me.max = me.min + 1; + } else { + me.min = me.max - 1; + } + } + } + + if (me.min === me.max) { + me.max++; + + if (!tickOpts.beginAtZero) { + me.min--; + } + } + }, + + getTickLimit: function() { + var me = this; + var tickOpts = me.options.ticks; + var stepSize = tickOpts.stepSize; + var maxTicksLimit = tickOpts.maxTicksLimit; + var maxTicks; + + if (stepSize) { + maxTicks = Math.ceil(me.max / stepSize) - Math.floor(me.min / stepSize) + 1; + } else { + maxTicks = me._computeTickLimit(); + maxTicksLimit = maxTicksLimit || 11; + } + + if (maxTicksLimit) { + maxTicks = Math.min(maxTicksLimit, maxTicks); + } + + return maxTicks; + }, + + _computeTickLimit: function() { + return Number.POSITIVE_INFINITY; + }, + + handleDirectionalChanges: noop, + + buildTicks: function() { + var me = this; + var opts = me.options; + var tickOpts = opts.ticks; + + // Figure out what the max number of ticks we can support it is based on the size of + // the axis area. For now, we say that the minimum tick spacing in pixels must be 40 + // We also limit the maximum number of ticks to 11 which gives a nice 10 squares on + // the graph. Make sure we always have at least 2 ticks + var maxTicks = me.getTickLimit(); + maxTicks = Math.max(2, maxTicks); + + var numericGeneratorOptions = { + maxTicks: maxTicks, + min: tickOpts.min, + max: tickOpts.max, + precision: tickOpts.precision, + stepSize: helpers$1.valueOrDefault(tickOpts.fixedStepSize, tickOpts.stepSize) + }; + var ticks = me.ticks = generateTicks(numericGeneratorOptions, me); + + me.handleDirectionalChanges(); + + // At this point, we need to update our max and min given the tick values since we have expanded the + // range of the scale + me.max = helpers$1.max(ticks); + me.min = helpers$1.min(ticks); + + if (tickOpts.reverse) { + ticks.reverse(); + + me.start = me.max; + me.end = me.min; + } else { + me.start = me.min; + me.end = me.max; + } + }, + + convertTicksToLabels: function() { + var me = this; + me.ticksAsNumbers = me.ticks.slice(); + me.zeroLineIndex = me.ticks.indexOf(0); + + core_scale.prototype.convertTicksToLabels.call(me); + } +}); + +var defaultConfig$1 = { + position: 'left', + ticks: { + callback: core_ticks.formatters.linear + } +}; + +var scale_linear = scale_linearbase.extend({ + determineDataLimits: function() { + var me = this; + var opts = me.options; + var chart = me.chart; + var data = chart.data; + var datasets = data.datasets; + var isHorizontal = me.isHorizontal(); + var DEFAULT_MIN = 0; + var DEFAULT_MAX = 1; + + function IDMatches(meta) { + return isHorizontal ? meta.xAxisID === me.id : meta.yAxisID === me.id; + } + + // First Calculate the range + me.min = null; + me.max = null; + + var hasStacks = opts.stacked; + if (hasStacks === undefined) { + helpers$1.each(datasets, function(dataset, datasetIndex) { + if (hasStacks) { + return; + } + + var meta = chart.getDatasetMeta(datasetIndex); + if (chart.isDatasetVisible(datasetIndex) && IDMatches(meta) && + meta.stack !== undefined) { + hasStacks = true; + } + }); + } + + if (opts.stacked || hasStacks) { + var valuesPerStack = {}; + + helpers$1.each(datasets, function(dataset, datasetIndex) { + var meta = chart.getDatasetMeta(datasetIndex); + var key = [ + meta.type, + // we have a separate stack for stack=undefined datasets when the opts.stacked is undefined + ((opts.stacked === undefined && meta.stack === undefined) ? datasetIndex : ''), + meta.stack + ].join('.'); + + if (valuesPerStack[key] === undefined) { + valuesPerStack[key] = { + positiveValues: [], + negativeValues: [] + }; + } + + // Store these per type + var positiveValues = valuesPerStack[key].positiveValues; + var negativeValues = valuesPerStack[key].negativeValues; + + if (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) { + helpers$1.each(dataset.data, function(rawValue, index) { + var value = +me.getRightValue(rawValue); + if (isNaN(value) || meta.data[index].hidden) { + return; + } + + positiveValues[index] = positiveValues[index] || 0; + negativeValues[index] = negativeValues[index] || 0; + + if (opts.relativePoints) { + positiveValues[index] = 100; + } else if (value < 0) { + negativeValues[index] += value; + } else { + positiveValues[index] += value; + } + }); + } + }); + + helpers$1.each(valuesPerStack, function(valuesForType) { + var values = valuesForType.positiveValues.concat(valuesForType.negativeValues); + var minVal = helpers$1.min(values); + var maxVal = helpers$1.max(values); + me.min = me.min === null ? minVal : Math.min(me.min, minVal); + me.max = me.max === null ? maxVal : Math.max(me.max, maxVal); + }); + + } else { + helpers$1.each(datasets, function(dataset, datasetIndex) { + var meta = chart.getDatasetMeta(datasetIndex); + if (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) { + helpers$1.each(dataset.data, function(rawValue, index) { + var value = +me.getRightValue(rawValue); + if (isNaN(value) || meta.data[index].hidden) { + return; + } + + if (me.min === null) { + me.min = value; + } else if (value < me.min) { + me.min = value; + } + + if (me.max === null) { + me.max = value; + } else if (value > me.max) { + me.max = value; + } + }); + } + }); + } + + me.min = isFinite(me.min) && !isNaN(me.min) ? me.min : DEFAULT_MIN; + me.max = isFinite(me.max) && !isNaN(me.max) ? me.max : DEFAULT_MAX; + + // Common base implementation to handle ticks.min, ticks.max, ticks.beginAtZero + this.handleTickRangeOptions(); + }, + + // Returns the maximum number of ticks based on the scale dimension + _computeTickLimit: function() { + var me = this; + var tickFont; + + if (me.isHorizontal()) { + return Math.ceil(me.width / 40); + } + tickFont = helpers$1.options._parseFont(me.options.ticks); + return Math.ceil(me.height / tickFont.lineHeight); + }, + + // Called after the ticks are built. We need + handleDirectionalChanges: function() { + if (!this.isHorizontal()) { + // We are in a vertical orientation. The top value is the highest. So reverse the array + this.ticks.reverse(); + } + }, + + getLabelForIndex: function(index, datasetIndex) { + return +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]); + }, + + // Utils + getPixelForValue: function(value) { + // This must be called after fit has been run so that + // this.left, this.top, this.right, and this.bottom have been defined + var me = this; + var start = me.start; + + var rightValue = +me.getRightValue(value); + var pixel; + var range = me.end - start; + + if (me.isHorizontal()) { + pixel = me.left + (me.width / range * (rightValue - start)); + } else { + pixel = me.bottom - (me.height / range * (rightValue - start)); + } + return pixel; + }, + + getValueForPixel: function(pixel) { + var me = this; + var isHorizontal = me.isHorizontal(); + var innerDimension = isHorizontal ? me.width : me.height; + var offset = (isHorizontal ? pixel - me.left : me.bottom - pixel) / innerDimension; + return me.start + ((me.end - me.start) * offset); + }, + + getPixelForTick: function(index) { + return this.getPixelForValue(this.ticksAsNumbers[index]); + } +}); + +// INTERNAL: static default options, registered in src/index.js +var _defaults$1 = defaultConfig$1; +scale_linear._defaults = _defaults$1; + +var valueOrDefault$a = helpers$1.valueOrDefault; + +/** + * Generate a set of logarithmic ticks + * @param generationOptions the options used to generate the ticks + * @param dataRange the range of the data + * @returns {number[]} array of tick values + */ +function generateTicks$1(generationOptions, dataRange) { + var ticks = []; + + var tickVal = valueOrDefault$a(generationOptions.min, Math.pow(10, Math.floor(helpers$1.log10(dataRange.min)))); + + var endExp = Math.floor(helpers$1.log10(dataRange.max)); + var endSignificand = Math.ceil(dataRange.max / Math.pow(10, endExp)); + var exp, significand; + + if (tickVal === 0) { + exp = Math.floor(helpers$1.log10(dataRange.minNotZero)); + significand = Math.floor(dataRange.minNotZero / Math.pow(10, exp)); + + ticks.push(tickVal); + tickVal = significand * Math.pow(10, exp); + } else { + exp = Math.floor(helpers$1.log10(tickVal)); + significand = Math.floor(tickVal / Math.pow(10, exp)); + } + var precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1; + + do { + ticks.push(tickVal); + + ++significand; + if (significand === 10) { + significand = 1; + ++exp; + precision = exp >= 0 ? 1 : precision; + } + + tickVal = Math.round(significand * Math.pow(10, exp) * precision) / precision; + } while (exp < endExp || (exp === endExp && significand < endSignificand)); + + var lastTick = valueOrDefault$a(generationOptions.max, tickVal); + ticks.push(lastTick); + + return ticks; +} + +var defaultConfig$2 = { + position: 'left', + + // label settings + ticks: { + callback: core_ticks.formatters.logarithmic + } +}; + +// TODO(v3): change this to positiveOrDefault +function nonNegativeOrDefault(value, defaultValue) { + return helpers$1.isFinite(value) && value >= 0 ? value : defaultValue; +} + +var scale_logarithmic = core_scale.extend({ + determineDataLimits: function() { + var me = this; + var opts = me.options; + var chart = me.chart; + var data = chart.data; + var datasets = data.datasets; + var isHorizontal = me.isHorizontal(); + function IDMatches(meta) { + return isHorizontal ? meta.xAxisID === me.id : meta.yAxisID === me.id; + } + + // Calculate Range + me.min = null; + me.max = null; + me.minNotZero = null; + + var hasStacks = opts.stacked; + if (hasStacks === undefined) { + helpers$1.each(datasets, function(dataset, datasetIndex) { + if (hasStacks) { + return; + } + + var meta = chart.getDatasetMeta(datasetIndex); + if (chart.isDatasetVisible(datasetIndex) && IDMatches(meta) && + meta.stack !== undefined) { + hasStacks = true; + } + }); + } + + if (opts.stacked || hasStacks) { + var valuesPerStack = {}; + + helpers$1.each(datasets, function(dataset, datasetIndex) { + var meta = chart.getDatasetMeta(datasetIndex); + var key = [ + meta.type, + // we have a separate stack for stack=undefined datasets when the opts.stacked is undefined + ((opts.stacked === undefined && meta.stack === undefined) ? datasetIndex : ''), + meta.stack + ].join('.'); + + if (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) { + if (valuesPerStack[key] === undefined) { + valuesPerStack[key] = []; + } + + helpers$1.each(dataset.data, function(rawValue, index) { + var values = valuesPerStack[key]; + var value = +me.getRightValue(rawValue); + // invalid, hidden and negative values are ignored + if (isNaN(value) || meta.data[index].hidden || value < 0) { + return; + } + values[index] = values[index] || 0; + values[index] += value; + }); + } + }); + + helpers$1.each(valuesPerStack, function(valuesForType) { + if (valuesForType.length > 0) { + var minVal = helpers$1.min(valuesForType); + var maxVal = helpers$1.max(valuesForType); + me.min = me.min === null ? minVal : Math.min(me.min, minVal); + me.max = me.max === null ? maxVal : Math.max(me.max, maxVal); + } + }); + + } else { + helpers$1.each(datasets, function(dataset, datasetIndex) { + var meta = chart.getDatasetMeta(datasetIndex); + if (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) { + helpers$1.each(dataset.data, function(rawValue, index) { + var value = +me.getRightValue(rawValue); + // invalid, hidden and negative values are ignored + if (isNaN(value) || meta.data[index].hidden || value < 0) { + return; + } + + if (me.min === null) { + me.min = value; + } else if (value < me.min) { + me.min = value; + } + + if (me.max === null) { + me.max = value; + } else if (value > me.max) { + me.max = value; + } + + if (value !== 0 && (me.minNotZero === null || value < me.minNotZero)) { + me.minNotZero = value; + } + }); + } + }); + } + + // Common base implementation to handle ticks.min, ticks.max + this.handleTickRangeOptions(); + }, + + handleTickRangeOptions: function() { + var me = this; + var tickOpts = me.options.ticks; + var DEFAULT_MIN = 1; + var DEFAULT_MAX = 10; + + me.min = nonNegativeOrDefault(tickOpts.min, me.min); + me.max = nonNegativeOrDefault(tickOpts.max, me.max); + + if (me.min === me.max) { + if (me.min !== 0 && me.min !== null) { + me.min = Math.pow(10, Math.floor(helpers$1.log10(me.min)) - 1); + me.max = Math.pow(10, Math.floor(helpers$1.log10(me.max)) + 1); + } else { + me.min = DEFAULT_MIN; + me.max = DEFAULT_MAX; + } + } + if (me.min === null) { + me.min = Math.pow(10, Math.floor(helpers$1.log10(me.max)) - 1); + } + if (me.max === null) { + me.max = me.min !== 0 + ? Math.pow(10, Math.floor(helpers$1.log10(me.min)) + 1) + : DEFAULT_MAX; + } + if (me.minNotZero === null) { + if (me.min > 0) { + me.minNotZero = me.min; + } else if (me.max < 1) { + me.minNotZero = Math.pow(10, Math.floor(helpers$1.log10(me.max))); + } else { + me.minNotZero = DEFAULT_MIN; + } + } + }, + + buildTicks: function() { + var me = this; + var tickOpts = me.options.ticks; + var reverse = !me.isHorizontal(); + + var generationOptions = { + min: nonNegativeOrDefault(tickOpts.min), + max: nonNegativeOrDefault(tickOpts.max) + }; + var ticks = me.ticks = generateTicks$1(generationOptions, me); + + // At this point, we need to update our max and min given the tick values since we have expanded the + // range of the scale + me.max = helpers$1.max(ticks); + me.min = helpers$1.min(ticks); + + if (tickOpts.reverse) { + reverse = !reverse; + me.start = me.max; + me.end = me.min; + } else { + me.start = me.min; + me.end = me.max; + } + if (reverse) { + ticks.reverse(); + } + }, + + convertTicksToLabels: function() { + this.tickValues = this.ticks.slice(); + + core_scale.prototype.convertTicksToLabels.call(this); + }, + + // Get the correct tooltip label + getLabelForIndex: function(index, datasetIndex) { + return +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]); + }, + + getPixelForTick: function(index) { + return this.getPixelForValue(this.tickValues[index]); + }, + + /** + * Returns the value of the first tick. + * @param {number} value - The minimum not zero value. + * @return {number} The first tick value. + * @private + */ + _getFirstTickValue: function(value) { + var exp = Math.floor(helpers$1.log10(value)); + var significand = Math.floor(value / Math.pow(10, exp)); + + return significand * Math.pow(10, exp); + }, + + getPixelForValue: function(value) { + var me = this; + var tickOpts = me.options.ticks; + var reverse = tickOpts.reverse; + var log10 = helpers$1.log10; + var firstTickValue = me._getFirstTickValue(me.minNotZero); + var offset = 0; + var innerDimension, pixel, start, end, sign; + + value = +me.getRightValue(value); + if (reverse) { + start = me.end; + end = me.start; + sign = -1; + } else { + start = me.start; + end = me.end; + sign = 1; + } + if (me.isHorizontal()) { + innerDimension = me.width; + pixel = reverse ? me.right : me.left; + } else { + innerDimension = me.height; + sign *= -1; // invert, since the upper-left corner of the canvas is at pixel (0, 0) + pixel = reverse ? me.top : me.bottom; + } + if (value !== start) { + if (start === 0) { // include zero tick + offset = valueOrDefault$a(tickOpts.fontSize, core_defaults.global.defaultFontSize); + innerDimension -= offset; + start = firstTickValue; + } + if (value !== 0) { + offset += innerDimension / (log10(end) - log10(start)) * (log10(value) - log10(start)); + } + pixel += sign * offset; + } + return pixel; + }, + + getValueForPixel: function(pixel) { + var me = this; + var tickOpts = me.options.ticks; + var reverse = tickOpts.reverse; + var log10 = helpers$1.log10; + var firstTickValue = me._getFirstTickValue(me.minNotZero); + var innerDimension, start, end, value; + + if (reverse) { + start = me.end; + end = me.start; + } else { + start = me.start; + end = me.end; + } + if (me.isHorizontal()) { + innerDimension = me.width; + value = reverse ? me.right - pixel : pixel - me.left; + } else { + innerDimension = me.height; + value = reverse ? pixel - me.top : me.bottom - pixel; + } + if (value !== start) { + if (start === 0) { // include zero tick + var offset = valueOrDefault$a(tickOpts.fontSize, core_defaults.global.defaultFontSize); + value -= offset; + innerDimension -= offset; + start = firstTickValue; + } + value *= log10(end) - log10(start); + value /= innerDimension; + value = Math.pow(10, log10(start) + value); + } + return value; + } +}); + +// INTERNAL: static default options, registered in src/index.js +var _defaults$2 = defaultConfig$2; +scale_logarithmic._defaults = _defaults$2; + +var valueOrDefault$b = helpers$1.valueOrDefault; +var valueAtIndexOrDefault$1 = helpers$1.valueAtIndexOrDefault; +var resolve$7 = helpers$1.options.resolve; + +var defaultConfig$3 = { + display: true, + + // Boolean - Whether to animate scaling the chart from the centre + animate: true, + position: 'chartArea', + + angleLines: { + display: true, + color: 'rgba(0, 0, 0, 0.1)', + lineWidth: 1, + borderDash: [], + borderDashOffset: 0.0 + }, + + gridLines: { + circular: false + }, + + // label settings + ticks: { + // Boolean - Show a backdrop to the scale label + showLabelBackdrop: true, + + // String - The colour of the label backdrop + backdropColor: 'rgba(255,255,255,0.75)', + + // Number - The backdrop padding above & below the label in pixels + backdropPaddingY: 2, + + // Number - The backdrop padding to the side of the label in pixels + backdropPaddingX: 2, + + callback: core_ticks.formatters.linear + }, + + pointLabels: { + // Boolean - if true, show point labels + display: true, + + // Number - Point label font size in pixels + fontSize: 10, + + // Function - Used to convert point labels + callback: function(label) { + return label; + } + } +}; + +function getValueCount(scale) { + var opts = scale.options; + return opts.angleLines.display || opts.pointLabels.display ? scale.chart.data.labels.length : 0; +} + +function getTickBackdropHeight(opts) { + var tickOpts = opts.ticks; + + if (tickOpts.display && opts.display) { + return valueOrDefault$b(tickOpts.fontSize, core_defaults.global.defaultFontSize) + tickOpts.backdropPaddingY * 2; + } + return 0; +} + +function measureLabelSize(ctx, lineHeight, label) { + if (helpers$1.isArray(label)) { + return { + w: helpers$1.longestText(ctx, ctx.font, label), + h: label.length * lineHeight + }; + } + + return { + w: ctx.measureText(label).width, + h: lineHeight + }; +} + +function determineLimits(angle, pos, size, min, max) { + if (angle === min || angle === max) { + return { + start: pos - (size / 2), + end: pos + (size / 2) + }; + } else if (angle < min || angle > max) { + return { + start: pos - size, + end: pos + }; + } + + return { + start: pos, + end: pos + size + }; +} + +/** + * Helper function to fit a radial linear scale with point labels + */ +function fitWithPointLabels(scale) { + + // Right, this is really confusing and there is a lot of maths going on here + // The gist of the problem is here: https://gist.github.com/nnnick/696cc9c55f4b0beb8fe9 + // + // Reaction: https://dl.dropboxusercontent.com/u/34601363/toomuchscience.gif + // + // Solution: + // + // We assume the radius of the polygon is half the size of the canvas at first + // at each index we check if the text overlaps. + // + // Where it does, we store that angle and that index. + // + // After finding the largest index and angle we calculate how much we need to remove + // from the shape radius to move the point inwards by that x. + // + // We average the left and right distances to get the maximum shape radius that can fit in the box + // along with labels. + // + // Once we have that, we can find the centre point for the chart, by taking the x text protrusion + // on each side, removing that from the size, halving it and adding the left x protrusion width. + // + // This will mean we have a shape fitted to the canvas, as large as it can be with the labels + // and position it in the most space efficient manner + // + // https://dl.dropboxusercontent.com/u/34601363/yeahscience.gif + + var plFont = helpers$1.options._parseFont(scale.options.pointLabels); + + // Get maximum radius of the polygon. Either half the height (minus the text width) or half the width. + // Use this to calculate the offset + change. - Make sure L/R protrusion is at least 0 to stop issues with centre points + var furthestLimits = { + l: 0, + r: scale.width, + t: 0, + b: scale.height - scale.paddingTop + }; + var furthestAngles = {}; + var i, textSize, pointPosition; + + scale.ctx.font = plFont.string; + scale._pointLabelSizes = []; + + var valueCount = getValueCount(scale); + for (i = 0; i < valueCount; i++) { + pointPosition = scale.getPointPosition(i, scale.drawingArea + 5); + textSize = measureLabelSize(scale.ctx, plFont.lineHeight, scale.pointLabels[i] || ''); + scale._pointLabelSizes[i] = textSize; + + // Add quarter circle to make degree 0 mean top of circle + var angleRadians = scale.getIndexAngle(i); + var angle = helpers$1.toDegrees(angleRadians) % 360; + var hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180); + var vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270); + + if (hLimits.start < furthestLimits.l) { + furthestLimits.l = hLimits.start; + furthestAngles.l = angleRadians; + } + + if (hLimits.end > furthestLimits.r) { + furthestLimits.r = hLimits.end; + furthestAngles.r = angleRadians; + } + + if (vLimits.start < furthestLimits.t) { + furthestLimits.t = vLimits.start; + furthestAngles.t = angleRadians; + } + + if (vLimits.end > furthestLimits.b) { + furthestLimits.b = vLimits.end; + furthestAngles.b = angleRadians; + } + } + + scale.setReductions(scale.drawingArea, furthestLimits, furthestAngles); +} + +function getTextAlignForAngle(angle) { + if (angle === 0 || angle === 180) { + return 'center'; + } else if (angle < 180) { + return 'left'; + } + + return 'right'; +} + +function fillText(ctx, text, position, lineHeight) { + var y = position.y + lineHeight / 2; + var i, ilen; + + if (helpers$1.isArray(text)) { + for (i = 0, ilen = text.length; i < ilen; ++i) { + ctx.fillText(text[i], position.x, y); + y += lineHeight; + } + } else { + ctx.fillText(text, position.x, y); + } +} + +function adjustPointPositionForLabelHeight(angle, textSize, position) { + if (angle === 90 || angle === 270) { + position.y -= (textSize.h / 2); + } else if (angle > 270 || angle < 90) { + position.y -= textSize.h; + } +} + +function drawPointLabels(scale) { + var ctx = scale.ctx; + var opts = scale.options; + var angleLineOpts = opts.angleLines; + var gridLineOpts = opts.gridLines; + var pointLabelOpts = opts.pointLabels; + var lineWidth = valueOrDefault$b(angleLineOpts.lineWidth, gridLineOpts.lineWidth); + var lineColor = valueOrDefault$b(angleLineOpts.color, gridLineOpts.color); + var tickBackdropHeight = getTickBackdropHeight(opts); + + ctx.save(); + ctx.lineWidth = lineWidth; + ctx.strokeStyle = lineColor; + if (ctx.setLineDash) { + ctx.setLineDash(resolve$7([angleLineOpts.borderDash, gridLineOpts.borderDash, []])); + ctx.lineDashOffset = resolve$7([angleLineOpts.borderDashOffset, gridLineOpts.borderDashOffset, 0.0]); + } + + var outerDistance = scale.getDistanceFromCenterForValue(opts.ticks.reverse ? scale.min : scale.max); + + // Point Label Font + var plFont = helpers$1.options._parseFont(pointLabelOpts); + + ctx.font = plFont.string; + ctx.textBaseline = 'middle'; + + for (var i = getValueCount(scale) - 1; i >= 0; i--) { + if (angleLineOpts.display && lineWidth && lineColor) { + var outerPosition = scale.getPointPosition(i, outerDistance); + ctx.beginPath(); + ctx.moveTo(scale.xCenter, scale.yCenter); + ctx.lineTo(outerPosition.x, outerPosition.y); + ctx.stroke(); + } + + if (pointLabelOpts.display) { + // Extra pixels out for some label spacing + var extra = (i === 0 ? tickBackdropHeight / 2 : 0); + var pointLabelPosition = scale.getPointPosition(i, outerDistance + extra + 5); + + // Keep this in loop since we may support array properties here + var pointLabelFontColor = valueAtIndexOrDefault$1(pointLabelOpts.fontColor, i, core_defaults.global.defaultFontColor); + ctx.fillStyle = pointLabelFontColor; + + var angleRadians = scale.getIndexAngle(i); + var angle = helpers$1.toDegrees(angleRadians); + ctx.textAlign = getTextAlignForAngle(angle); + adjustPointPositionForLabelHeight(angle, scale._pointLabelSizes[i], pointLabelPosition); + fillText(ctx, scale.pointLabels[i] || '', pointLabelPosition, plFont.lineHeight); + } + } + ctx.restore(); +} + +function drawRadiusLine(scale, gridLineOpts, radius, index) { + var ctx = scale.ctx; + var circular = gridLineOpts.circular; + var valueCount = getValueCount(scale); + var lineColor = valueAtIndexOrDefault$1(gridLineOpts.color, index - 1); + var lineWidth = valueAtIndexOrDefault$1(gridLineOpts.lineWidth, index - 1); + var pointPosition; + + if ((!circular && !valueCount) || !lineColor || !lineWidth) { + return; + } + + ctx.save(); + ctx.strokeStyle = lineColor; + ctx.lineWidth = lineWidth; + if (ctx.setLineDash) { + ctx.setLineDash(gridLineOpts.borderDash || []); + ctx.lineDashOffset = gridLineOpts.borderDashOffset || 0.0; + } + + ctx.beginPath(); + if (circular) { + // Draw circular arcs between the points + ctx.arc(scale.xCenter, scale.yCenter, radius, 0, Math.PI * 2); + } else { + // Draw straight lines connecting each index + pointPosition = scale.getPointPosition(0, radius); + ctx.moveTo(pointPosition.x, pointPosition.y); + + for (var i = 1; i < valueCount; i++) { + pointPosition = scale.getPointPosition(i, radius); + ctx.lineTo(pointPosition.x, pointPosition.y); + } + } + ctx.closePath(); + ctx.stroke(); + ctx.restore(); +} + +function numberOrZero(param) { + return helpers$1.isNumber(param) ? param : 0; +} + +var scale_radialLinear = scale_linearbase.extend({ + setDimensions: function() { + var me = this; + + // Set the unconstrained dimension before label rotation + me.width = me.maxWidth; + me.height = me.maxHeight; + me.paddingTop = getTickBackdropHeight(me.options) / 2; + me.xCenter = Math.floor(me.width / 2); + me.yCenter = Math.floor((me.height - me.paddingTop) / 2); + me.drawingArea = Math.min(me.height - me.paddingTop, me.width) / 2; + }, + + determineDataLimits: function() { + var me = this; + var chart = me.chart; + var min = Number.POSITIVE_INFINITY; + var max = Number.NEGATIVE_INFINITY; + + helpers$1.each(chart.data.datasets, function(dataset, datasetIndex) { + if (chart.isDatasetVisible(datasetIndex)) { + var meta = chart.getDatasetMeta(datasetIndex); + + helpers$1.each(dataset.data, function(rawValue, index) { + var value = +me.getRightValue(rawValue); + if (isNaN(value) || meta.data[index].hidden) { + return; + } + + min = Math.min(value, min); + max = Math.max(value, max); + }); + } + }); + + me.min = (min === Number.POSITIVE_INFINITY ? 0 : min); + me.max = (max === Number.NEGATIVE_INFINITY ? 0 : max); + + // Common base implementation to handle ticks.min, ticks.max, ticks.beginAtZero + me.handleTickRangeOptions(); + }, + + // Returns the maximum number of ticks based on the scale dimension + _computeTickLimit: function() { + return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options)); + }, + + convertTicksToLabels: function() { + var me = this; + + scale_linearbase.prototype.convertTicksToLabels.call(me); + + // Point labels + me.pointLabels = me.chart.data.labels.map(me.options.pointLabels.callback, me); + }, + + getLabelForIndex: function(index, datasetIndex) { + return +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]); + }, + + fit: function() { + var me = this; + var opts = me.options; + + if (opts.display && opts.pointLabels.display) { + fitWithPointLabels(me); + } else { + me.setCenterPoint(0, 0, 0, 0); + } + }, + + /** + * Set radius reductions and determine new radius and center point + * @private + */ + setReductions: function(largestPossibleRadius, furthestLimits, furthestAngles) { + var me = this; + var radiusReductionLeft = furthestLimits.l / Math.sin(furthestAngles.l); + var radiusReductionRight = Math.max(furthestLimits.r - me.width, 0) / Math.sin(furthestAngles.r); + var radiusReductionTop = -furthestLimits.t / Math.cos(furthestAngles.t); + var radiusReductionBottom = -Math.max(furthestLimits.b - (me.height - me.paddingTop), 0) / Math.cos(furthestAngles.b); + + radiusReductionLeft = numberOrZero(radiusReductionLeft); + radiusReductionRight = numberOrZero(radiusReductionRight); + radiusReductionTop = numberOrZero(radiusReductionTop); + radiusReductionBottom = numberOrZero(radiusReductionBottom); + + me.drawingArea = Math.min( + Math.floor(largestPossibleRadius - (radiusReductionLeft + radiusReductionRight) / 2), + Math.floor(largestPossibleRadius - (radiusReductionTop + radiusReductionBottom) / 2)); + me.setCenterPoint(radiusReductionLeft, radiusReductionRight, radiusReductionTop, radiusReductionBottom); + }, + + setCenterPoint: function(leftMovement, rightMovement, topMovement, bottomMovement) { + var me = this; + var maxRight = me.width - rightMovement - me.drawingArea; + var maxLeft = leftMovement + me.drawingArea; + var maxTop = topMovement + me.drawingArea; + var maxBottom = (me.height - me.paddingTop) - bottomMovement - me.drawingArea; + + me.xCenter = Math.floor(((maxLeft + maxRight) / 2) + me.left); + me.yCenter = Math.floor(((maxTop + maxBottom) / 2) + me.top + me.paddingTop); + }, + + getIndexAngle: function(index) { + var angleMultiplier = (Math.PI * 2) / getValueCount(this); + var startAngle = this.chart.options && this.chart.options.startAngle ? + this.chart.options.startAngle : + 0; + + var startAngleRadians = startAngle * Math.PI * 2 / 360; + + // Start from the top instead of right, so remove a quarter of the circle + return index * angleMultiplier + startAngleRadians; + }, + + getDistanceFromCenterForValue: function(value) { + var me = this; + + if (value === null) { + return 0; // null always in center + } + + // Take into account half font size + the yPadding of the top value + var scalingFactor = me.drawingArea / (me.max - me.min); + if (me.options.ticks.reverse) { + return (me.max - value) * scalingFactor; + } + return (value - me.min) * scalingFactor; + }, + + getPointPosition: function(index, distanceFromCenter) { + var me = this; + var thisAngle = me.getIndexAngle(index) - (Math.PI / 2); + return { + x: Math.cos(thisAngle) * distanceFromCenter + me.xCenter, + y: Math.sin(thisAngle) * distanceFromCenter + me.yCenter + }; + }, + + getPointPositionForValue: function(index, value) { + return this.getPointPosition(index, this.getDistanceFromCenterForValue(value)); + }, + + getBasePosition: function() { + var me = this; + var min = me.min; + var max = me.max; + + return me.getPointPositionForValue(0, + me.beginAtZero ? 0 : + min < 0 && max < 0 ? max : + min > 0 && max > 0 ? min : + 0); + }, + + draw: function() { + var me = this; + var opts = me.options; + var gridLineOpts = opts.gridLines; + var tickOpts = opts.ticks; + + if (opts.display) { + var ctx = me.ctx; + var startAngle = this.getIndexAngle(0); + var tickFont = helpers$1.options._parseFont(tickOpts); + + if (opts.angleLines.display || opts.pointLabels.display) { + drawPointLabels(me); + } + + helpers$1.each(me.ticks, function(label, index) { + // Don't draw a centre value (if it is minimum) + if (index > 0 || tickOpts.reverse) { + var yCenterOffset = me.getDistanceFromCenterForValue(me.ticksAsNumbers[index]); + + // Draw circular lines around the scale + if (gridLineOpts.display && index !== 0) { + drawRadiusLine(me, gridLineOpts, yCenterOffset, index); + } + + if (tickOpts.display) { + var tickFontColor = valueOrDefault$b(tickOpts.fontColor, core_defaults.global.defaultFontColor); + ctx.font = tickFont.string; + + ctx.save(); + ctx.translate(me.xCenter, me.yCenter); + ctx.rotate(startAngle); + + if (tickOpts.showLabelBackdrop) { + var labelWidth = ctx.measureText(label).width; + ctx.fillStyle = tickOpts.backdropColor; + ctx.fillRect( + -labelWidth / 2 - tickOpts.backdropPaddingX, + -yCenterOffset - tickFont.size / 2 - tickOpts.backdropPaddingY, + labelWidth + tickOpts.backdropPaddingX * 2, + tickFont.size + tickOpts.backdropPaddingY * 2 + ); + } + + ctx.textAlign = 'center'; + ctx.textBaseline = 'middle'; + ctx.fillStyle = tickFontColor; + ctx.fillText(label, 0, -yCenterOffset); + ctx.restore(); + } + } + }); + } + } +}); + +// INTERNAL: static default options, registered in src/index.js +var _defaults$3 = defaultConfig$3; +scale_radialLinear._defaults = _defaults$3; + +var valueOrDefault$c = helpers$1.valueOrDefault; + +// Integer constants are from the ES6 spec. +var MIN_INTEGER = Number.MIN_SAFE_INTEGER || -9007199254740991; +var MAX_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991; + +var INTERVALS = { + millisecond: { + common: true, + size: 1, + steps: [1, 2, 5, 10, 20, 50, 100, 250, 500] + }, + second: { + common: true, + size: 1000, + steps: [1, 2, 5, 10, 15, 30] + }, + minute: { + common: true, + size: 60000, + steps: [1, 2, 5, 10, 15, 30] + }, + hour: { + common: true, + size: 3600000, + steps: [1, 2, 3, 6, 12] + }, + day: { + common: true, + size: 86400000, + steps: [1, 2, 5] + }, + week: { + common: false, + size: 604800000, + steps: [1, 2, 3, 4] + }, + month: { + common: true, + size: 2.628e9, + steps: [1, 2, 3] + }, + quarter: { + common: false, + size: 7.884e9, + steps: [1, 2, 3, 4] + }, + year: { + common: true, + size: 3.154e10 + } +}; + +var UNITS = Object.keys(INTERVALS); + +function sorter(a, b) { + return a - b; +} + +function arrayUnique(items) { + var hash = {}; + var out = []; + var i, ilen, item; + + for (i = 0, ilen = items.length; i < ilen; ++i) { + item = items[i]; + if (!hash[item]) { + hash[item] = true; + out.push(item); + } + } + + return out; +} + +/** + * Returns an array of {time, pos} objects used to interpolate a specific `time` or position + * (`pos`) on the scale, by searching entries before and after the requested value. `pos` is + * a decimal between 0 and 1: 0 being the start of the scale (left or top) and 1 the other + * extremity (left + width or top + height). Note that it would be more optimized to directly + * store pre-computed pixels, but the scale dimensions are not guaranteed at the time we need + * to create the lookup table. The table ALWAYS contains at least two items: min and max. + * + * @param {number[]} timestamps - timestamps sorted from lowest to highest. + * @param {string} distribution - If 'linear', timestamps will be spread linearly along the min + * and max range, so basically, the table will contains only two items: {min, 0} and {max, 1}. + * If 'series', timestamps will be positioned at the same distance from each other. In this + * case, only timestamps that break the time linearity are registered, meaning that in the + * best case, all timestamps are linear, the table contains only min and max. + */ +function buildLookupTable(timestamps, min, max, distribution) { + if (distribution === 'linear' || !timestamps.length) { + return [ + {time: min, pos: 0}, + {time: max, pos: 1} + ]; + } + + var table = []; + var items = [min]; + var i, ilen, prev, curr, next; + + for (i = 0, ilen = timestamps.length; i < ilen; ++i) { + curr = timestamps[i]; + if (curr > min && curr < max) { + items.push(curr); + } + } + + items.push(max); + + for (i = 0, ilen = items.length; i < ilen; ++i) { + next = items[i + 1]; + prev = items[i - 1]; + curr = items[i]; + + // only add points that breaks the scale linearity + if (prev === undefined || next === undefined || Math.round((next + prev) / 2) !== curr) { + table.push({time: curr, pos: i / (ilen - 1)}); + } + } + + return table; +} + +// @see adapted from https://www.anujgakhar.com/2014/03/01/binary-search-in-javascript/ +function lookup(table, key, value) { + var lo = 0; + var hi = table.length - 1; + var mid, i0, i1; + + while (lo >= 0 && lo <= hi) { + mid = (lo + hi) >> 1; + i0 = table[mid - 1] || null; + i1 = table[mid]; + + if (!i0) { + // given value is outside table (before first item) + return {lo: null, hi: i1}; + } else if (i1[key] < value) { + lo = mid + 1; + } else if (i0[key] > value) { + hi = mid - 1; + } else { + return {lo: i0, hi: i1}; + } + } + + // given value is outside table (after last item) + return {lo: i1, hi: null}; +} + +/** + * Linearly interpolates the given source `value` using the table items `skey` values and + * returns the associated `tkey` value. For example, interpolate(table, 'time', 42, 'pos') + * returns the position for a timestamp equal to 42. If value is out of bounds, values at + * index [0, 1] or [n - 1, n] are used for the interpolation. + */ +function interpolate$1(table, skey, sval, tkey) { + var range = lookup(table, skey, sval); + + // Note: the lookup table ALWAYS contains at least 2 items (min and max) + var prev = !range.lo ? table[0] : !range.hi ? table[table.length - 2] : range.lo; + var next = !range.lo ? table[1] : !range.hi ? table[table.length - 1] : range.hi; + + var span = next[skey] - prev[skey]; + var ratio = span ? (sval - prev[skey]) / span : 0; + var offset = (next[tkey] - prev[tkey]) * ratio; + + return prev[tkey] + offset; +} + +function toTimestamp(scale, input) { + var adapter = scale._adapter; + var options = scale.options.time; + var parser = options.parser; + var format = parser || options.format; + var value = input; + + if (typeof parser === 'function') { + value = parser(value); + } + + // Only parse if its not a timestamp already + if (!helpers$1.isFinite(value)) { + value = typeof format === 'string' + ? adapter.parse(value, format) + : adapter.parse(value); + } + + if (value !== null) { + return +value; + } + + // Labels are in an incompatible format and no `parser` has been provided. + // The user might still use the deprecated `format` option for parsing. + if (!parser && typeof format === 'function') { + value = format(input); + + // `format` could return something else than a timestamp, if so, parse it + if (!helpers$1.isFinite(value)) { + value = adapter.parse(value); + } + } + + return value; +} + +function parse(scale, input) { + if (helpers$1.isNullOrUndef(input)) { + return null; + } + + var options = scale.options.time; + var value = toTimestamp(scale, scale.getRightValue(input)); + if (value === null) { + return value; + } + + if (options.round) { + value = +scale._adapter.startOf(value, options.round); + } + + return value; +} + +/** + * Returns the number of unit to skip to be able to display up to `capacity` number of ticks + * in `unit` for the given `min` / `max` range and respecting the interval steps constraints. + */ +function determineStepSize(min, max, unit, capacity) { + var range = max - min; + var interval = INTERVALS[unit]; + var milliseconds = interval.size; + var steps = interval.steps; + var i, ilen, factor; + + if (!steps) { + return Math.ceil(range / (capacity * milliseconds)); + } + + for (i = 0, ilen = steps.length; i < ilen; ++i) { + factor = steps[i]; + if (Math.ceil(range / (milliseconds * factor)) <= capacity) { + break; + } + } + + return factor; +} + +/** + * Figures out what unit results in an appropriate number of auto-generated ticks + */ +function determineUnitForAutoTicks(minUnit, min, max, capacity) { + var ilen = UNITS.length; + var i, interval, factor; + + for (i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) { + interval = INTERVALS[UNITS[i]]; + factor = interval.steps ? interval.steps[interval.steps.length - 1] : MAX_INTEGER; + + if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) { + return UNITS[i]; + } + } + + return UNITS[ilen - 1]; +} + +/** + * Figures out what unit to format a set of ticks with + */ +function determineUnitForFormatting(scale, ticks, minUnit, min, max) { + var ilen = UNITS.length; + var i, unit; + + for (i = ilen - 1; i >= UNITS.indexOf(minUnit); i--) { + unit = UNITS[i]; + if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= ticks.length) { + return unit; + } + } + + return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0]; +} + +function determineMajorUnit(unit) { + for (var i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) { + if (INTERVALS[UNITS[i]].common) { + return UNITS[i]; + } + } +} + +/** + * Generates a maximum of `capacity` timestamps between min and max, rounded to the + * `minor` unit, aligned on the `major` unit and using the given scale time `options`. + * Important: this method can return ticks outside the min and max range, it's the + * responsibility of the calling code to clamp values if needed. + */ +function generate(scale, min, max, capacity) { + var adapter = scale._adapter; + var options = scale.options; + var timeOpts = options.time; + var minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, capacity); + var major = determineMajorUnit(minor); + var stepSize = valueOrDefault$c(timeOpts.stepSize, timeOpts.unitStepSize); + var weekday = minor === 'week' ? timeOpts.isoWeekday : false; + var majorTicksEnabled = options.ticks.major.enabled; + var interval = INTERVALS[minor]; + var first = min; + var last = max; + var ticks = []; + var time; + + if (!stepSize) { + stepSize = determineStepSize(min, max, minor, capacity); + } + + // For 'week' unit, handle the first day of week option + if (weekday) { + first = +adapter.startOf(first, 'isoWeek', weekday); + last = +adapter.startOf(last, 'isoWeek', weekday); + } + + // Align first/last ticks on unit + first = +adapter.startOf(first, weekday ? 'day' : minor); + last = +adapter.startOf(last, weekday ? 'day' : minor); + + // Make sure that the last tick include max + if (last < max) { + last = +adapter.add(last, 1, minor); + } + + time = first; + + if (majorTicksEnabled && major && !weekday && !timeOpts.round) { + // Align the first tick on the previous `minor` unit aligned on the `major` unit: + // we first aligned time on the previous `major` unit then add the number of full + // stepSize there is between first and the previous major time. + time = +adapter.startOf(time, major); + time = +adapter.add(time, ~~((first - time) / (interval.size * stepSize)) * stepSize, minor); + } + + for (; time < last; time = +adapter.add(time, stepSize, minor)) { + ticks.push(+time); + } + + ticks.push(+time); + + return ticks; +} + +/** + * Returns the start and end offsets from edges in the form of {start, end} + * where each value is a relative width to the scale and ranges between 0 and 1. + * They add extra margins on the both sides by scaling down the original scale. + * Offsets are added when the `offset` option is true. + */ +function computeOffsets(table, ticks, min, max, options) { + var start = 0; + var end = 0; + var first, last; + + if (options.offset && ticks.length) { + if (!options.time.min) { + first = interpolate$1(table, 'time', ticks[0], 'pos'); + if (ticks.length === 1) { + start = 1 - first; + } else { + start = (interpolate$1(table, 'time', ticks[1], 'pos') - first) / 2; + } + } + if (!options.time.max) { + last = interpolate$1(table, 'time', ticks[ticks.length - 1], 'pos'); + if (ticks.length === 1) { + end = last; + } else { + end = (last - interpolate$1(table, 'time', ticks[ticks.length - 2], 'pos')) / 2; + } + } + } + + return {start: start, end: end}; +} + +function ticksFromTimestamps(scale, values, majorUnit) { + var ticks = []; + var i, ilen, value, major; + + for (i = 0, ilen = values.length; i < ilen; ++i) { + value = values[i]; + major = majorUnit ? value === +scale._adapter.startOf(value, majorUnit) : false; + + ticks.push({ + value: value, + major: major + }); + } + + return ticks; +} + +var defaultConfig$4 = { + position: 'bottom', + + /** + * Data distribution along the scale: + * - 'linear': data are spread according to their time (distances can vary), + * - 'series': data are spread at the same distance from each other. + * @see https://github.com/chartjs/Chart.js/pull/4507 + * @since 2.7.0 + */ + distribution: 'linear', + + /** + * Scale boundary strategy (bypassed by min/max time options) + * - `data`: make sure data are fully visible, ticks outside are removed + * - `ticks`: make sure ticks are fully visible, data outside are truncated + * @see https://github.com/chartjs/Chart.js/pull/4556 + * @since 2.7.0 + */ + bounds: 'data', + + adapters: {}, + time: { + parser: false, // false == a pattern string from https://momentjs.com/docs/#/parsing/string-format/ or a custom callback that converts its argument to a moment + format: false, // DEPRECATED false == date objects, moment object, callback or a pattern string from https://momentjs.com/docs/#/parsing/string-format/ + unit: false, // false == automatic or override with week, month, year, etc. + round: false, // none, or override with week, month, year, etc. + displayFormat: false, // DEPRECATED + isoWeekday: false, // override week start day - see https://momentjs.com/docs/#/get-set/iso-weekday/ + minUnit: 'millisecond', + displayFormats: {} + }, + ticks: { + autoSkip: false, + + /** + * Ticks generation input values: + * - 'auto': generates "optimal" ticks based on scale size and time options. + * - 'data': generates ticks from data (including labels from data {t|x|y} objects). + * - 'labels': generates ticks from user given `data.labels` values ONLY. + * @see https://github.com/chartjs/Chart.js/pull/4507 + * @since 2.7.0 + */ + source: 'auto', + + major: { + enabled: false + } + } +}; + +var scale_time = core_scale.extend({ + initialize: function() { + this.mergeTicksOptions(); + core_scale.prototype.initialize.call(this); + }, + + update: function() { + var me = this; + var options = me.options; + var time = options.time || (options.time = {}); + var adapter = me._adapter = new core_adapters._date(options.adapters.date); + + // DEPRECATIONS: output a message only one time per update + if (time.format) { + console.warn('options.time.format is deprecated and replaced by options.time.parser.'); + } + + // Backward compatibility: before introducing adapter, `displayFormats` was + // supposed to contain *all* unit/string pairs but this can't be resolved + // when loading the scale (adapters are loaded afterward), so let's populate + // missing formats on update + helpers$1.mergeIf(time.displayFormats, adapter.formats()); + + return core_scale.prototype.update.apply(me, arguments); + }, + + /** + * Allows data to be referenced via 't' attribute + */ + getRightValue: function(rawValue) { + if (rawValue && rawValue.t !== undefined) { + rawValue = rawValue.t; + } + return core_scale.prototype.getRightValue.call(this, rawValue); + }, + + determineDataLimits: function() { + var me = this; + var chart = me.chart; + var adapter = me._adapter; + var timeOpts = me.options.time; + var unit = timeOpts.unit || 'day'; + var min = MAX_INTEGER; + var max = MIN_INTEGER; + var timestamps = []; + var datasets = []; + var labels = []; + var i, j, ilen, jlen, data, timestamp; + var dataLabels = chart.data.labels || []; + + // Convert labels to timestamps + for (i = 0, ilen = dataLabels.length; i < ilen; ++i) { + labels.push(parse(me, dataLabels[i])); + } + + // Convert data to timestamps + for (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) { + if (chart.isDatasetVisible(i)) { + data = chart.data.datasets[i].data; + + // Let's consider that all data have the same format. + if (helpers$1.isObject(data[0])) { + datasets[i] = []; + + for (j = 0, jlen = data.length; j < jlen; ++j) { + timestamp = parse(me, data[j]); + timestamps.push(timestamp); + datasets[i][j] = timestamp; + } + } else { + for (j = 0, jlen = labels.length; j < jlen; ++j) { + timestamps.push(labels[j]); + } + datasets[i] = labels.slice(0); + } + } else { + datasets[i] = []; + } + } + + if (labels.length) { + // Sort labels **after** data have been converted + labels = arrayUnique(labels).sort(sorter); + min = Math.min(min, labels[0]); + max = Math.max(max, labels[labels.length - 1]); + } + + if (timestamps.length) { + timestamps = arrayUnique(timestamps).sort(sorter); + min = Math.min(min, timestamps[0]); + max = Math.max(max, timestamps[timestamps.length - 1]); + } + + min = parse(me, timeOpts.min) || min; + max = parse(me, timeOpts.max) || max; + + // In case there is no valid min/max, set limits based on unit time option + min = min === MAX_INTEGER ? +adapter.startOf(Date.now(), unit) : min; + max = max === MIN_INTEGER ? +adapter.endOf(Date.now(), unit) + 1 : max; + + // Make sure that max is strictly higher than min (required by the lookup table) + me.min = Math.min(min, max); + me.max = Math.max(min + 1, max); + + // PRIVATE + me._horizontal = me.isHorizontal(); + me._table = []; + me._timestamps = { + data: timestamps, + datasets: datasets, + labels: labels + }; + }, + + buildTicks: function() { + var me = this; + var min = me.min; + var max = me.max; + var options = me.options; + var timeOpts = options.time; + var timestamps = []; + var ticks = []; + var i, ilen, timestamp; + + switch (options.ticks.source) { + case 'data': + timestamps = me._timestamps.data; + break; + case 'labels': + timestamps = me._timestamps.labels; + break; + case 'auto': + default: + timestamps = generate(me, min, max, me.getLabelCapacity(min), options); + } + + if (options.bounds === 'ticks' && timestamps.length) { + min = timestamps[0]; + max = timestamps[timestamps.length - 1]; + } + + // Enforce limits with user min/max options + min = parse(me, timeOpts.min) || min; + max = parse(me, timeOpts.max) || max; + + // Remove ticks outside the min/max range + for (i = 0, ilen = timestamps.length; i < ilen; ++i) { + timestamp = timestamps[i]; + if (timestamp >= min && timestamp <= max) { + ticks.push(timestamp); + } + } + + me.min = min; + me.max = max; + + // PRIVATE + me._unit = timeOpts.unit || determineUnitForFormatting(me, ticks, timeOpts.minUnit, me.min, me.max); + me._majorUnit = determineMajorUnit(me._unit); + me._table = buildLookupTable(me._timestamps.data, min, max, options.distribution); + me._offsets = computeOffsets(me._table, ticks, min, max, options); + + if (options.ticks.reverse) { + ticks.reverse(); + } + + return ticksFromTimestamps(me, ticks, me._majorUnit); + }, + + getLabelForIndex: function(index, datasetIndex) { + var me = this; + var adapter = me._adapter; + var data = me.chart.data; + var timeOpts = me.options.time; + var label = data.labels && index < data.labels.length ? data.labels[index] : ''; + var value = data.datasets[datasetIndex].data[index]; + + if (helpers$1.isObject(value)) { + label = me.getRightValue(value); + } + if (timeOpts.tooltipFormat) { + return adapter.format(toTimestamp(me, label), timeOpts.tooltipFormat); + } + if (typeof label === 'string') { + return label; + } + return adapter.format(toTimestamp(me, label), timeOpts.displayFormats.datetime); + }, + + /** + * Function to format an individual tick mark + * @private + */ + tickFormatFunction: function(time, index, ticks, format) { + var me = this; + var adapter = me._adapter; + var options = me.options; + var formats = options.time.displayFormats; + var minorFormat = formats[me._unit]; + var majorUnit = me._majorUnit; + var majorFormat = formats[majorUnit]; + var majorTime = +adapter.startOf(time, majorUnit); + var majorTickOpts = options.ticks.major; + var major = majorTickOpts.enabled && majorUnit && majorFormat && time === majorTime; + var label = adapter.format(time, format ? format : major ? majorFormat : minorFormat); + var tickOpts = major ? majorTickOpts : options.ticks.minor; + var formatter = valueOrDefault$c(tickOpts.callback, tickOpts.userCallback); + + return formatter ? formatter(label, index, ticks) : label; + }, + + convertTicksToLabels: function(ticks) { + var labels = []; + var i, ilen; + + for (i = 0, ilen = ticks.length; i < ilen; ++i) { + labels.push(this.tickFormatFunction(ticks[i].value, i, ticks)); + } + + return labels; + }, + + /** + * @private + */ + getPixelForOffset: function(time) { + var me = this; + var isReverse = me.options.ticks.reverse; + var size = me._horizontal ? me.width : me.height; + var start = me._horizontal ? isReverse ? me.right : me.left : isReverse ? me.bottom : me.top; + var pos = interpolate$1(me._table, 'time', time, 'pos'); + var offset = size * (me._offsets.start + pos) / (me._offsets.start + 1 + me._offsets.end); + + return isReverse ? start - offset : start + offset; + }, + + getPixelForValue: function(value, index, datasetIndex) { + var me = this; + var time = null; + + if (index !== undefined && datasetIndex !== undefined) { + time = me._timestamps.datasets[datasetIndex][index]; + } + + if (time === null) { + time = parse(me, value); + } + + if (time !== null) { + return me.getPixelForOffset(time); + } + }, + + getPixelForTick: function(index) { + var ticks = this.getTicks(); + return index >= 0 && index < ticks.length ? + this.getPixelForOffset(ticks[index].value) : + null; + }, + + getValueForPixel: function(pixel) { + var me = this; + var size = me._horizontal ? me.width : me.height; + var start = me._horizontal ? me.left : me.top; + var pos = (size ? (pixel - start) / size : 0) * (me._offsets.start + 1 + me._offsets.start) - me._offsets.end; + var time = interpolate$1(me._table, 'pos', pos, 'time'); + + // DEPRECATION, we should return time directly + return me._adapter._create(time); + }, + + /** + * Crude approximation of what the label width might be + * @private + */ + getLabelWidth: function(label) { + var me = this; + var ticksOpts = me.options.ticks; + var tickLabelWidth = me.ctx.measureText(label).width; + var angle = helpers$1.toRadians(ticksOpts.maxRotation); + var cosRotation = Math.cos(angle); + var sinRotation = Math.sin(angle); + var tickFontSize = valueOrDefault$c(ticksOpts.fontSize, core_defaults.global.defaultFontSize); + + return (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation); + }, + + /** + * @private + */ + getLabelCapacity: function(exampleTime) { + var me = this; + + // pick the longest format (milliseconds) for guestimation + var format = me.options.time.displayFormats.millisecond; + var exampleLabel = me.tickFormatFunction(exampleTime, 0, [], format); + var tickLabelWidth = me.getLabelWidth(exampleLabel); + var innerWidth = me.isHorizontal() ? me.width : me.height; + var capacity = Math.floor(innerWidth / tickLabelWidth); + + return capacity > 0 ? capacity : 1; + } +}); + +// INTERNAL: static default options, registered in src/index.js +var _defaults$4 = defaultConfig$4; +scale_time._defaults = _defaults$4; + +var scales = { + category: scale_category, + linear: scale_linear, + logarithmic: scale_logarithmic, + radialLinear: scale_radialLinear, + time: scale_time +}; + +var FORMATS = { + datetime: 'MMM D, YYYY, h:mm:ss a', + millisecond: 'h:mm:ss.SSS a', + second: 'h:mm:ss a', + minute: 'h:mm a', + hour: 'hA', + day: 'MMM D', + week: 'll', + month: 'MMM YYYY', + quarter: '[Q]Q - YYYY', + year: 'YYYY' +}; + +core_adapters._date.override(typeof moment === 'function' ? { + _id: 'moment', // DEBUG ONLY + + formats: function() { + return FORMATS; + }, + + parse: function(value, format) { + if (typeof value === 'string' && typeof format === 'string') { + value = moment(value, format); + } else if (!(value instanceof moment)) { + value = moment(value); + } + return value.isValid() ? value.valueOf() : null; + }, + + format: function(time, format) { + return moment(time).format(format); + }, + + add: function(time, amount, unit) { + return moment(time).add(amount, unit).valueOf(); + }, + + diff: function(max, min, unit) { + return moment.duration(moment(max).diff(moment(min))).as(unit); + }, + + startOf: function(time, unit, weekday) { + time = moment(time); + if (unit === 'isoWeek') { + return time.isoWeekday(weekday).valueOf(); + } + return time.startOf(unit).valueOf(); + }, + + endOf: function(time, unit) { + return moment(time).endOf(unit).valueOf(); + }, + + // DEPRECATIONS + + /** + * Provided for backward compatibility with scale.getValueForPixel(). + * @deprecated since version 2.8.0 + * @todo remove at version 3 + * @private + */ + _create: function(time) { + return moment(time); + }, +} : {}); + +core_defaults._set('global', { + plugins: { + filler: { + propagate: true + } + } +}); + +var mappers = { + dataset: function(source) { + var index = source.fill; + var chart = source.chart; + var meta = chart.getDatasetMeta(index); + var visible = meta && chart.isDatasetVisible(index); + var points = (visible && meta.dataset._children) || []; + var length = points.length || 0; + + return !length ? null : function(point, i) { + return (i < length && points[i]._view) || null; + }; + }, + + boundary: function(source) { + var boundary = source.boundary; + var x = boundary ? boundary.x : null; + var y = boundary ? boundary.y : null; + + return function(point) { + return { + x: x === null ? point.x : x, + y: y === null ? point.y : y, + }; + }; + } +}; + +// @todo if (fill[0] === '#') +function decodeFill(el, index, count) { + var model = el._model || {}; + var fill = model.fill; + var target; + + if (fill === undefined) { + fill = !!model.backgroundColor; + } + + if (fill === false || fill === null) { + return false; + } + + if (fill === true) { + return 'origin'; + } + + target = parseFloat(fill, 10); + if (isFinite(target) && Math.floor(target) === target) { + if (fill[0] === '-' || fill[0] === '+') { + target = index + target; + } + + if (target === index || target < 0 || target >= count) { + return false; + } + + return target; + } + + switch (fill) { + // compatibility + case 'bottom': + return 'start'; + case 'top': + return 'end'; + case 'zero': + return 'origin'; + // supported boundaries + case 'origin': + case 'start': + case 'end': + return fill; + // invalid fill values + default: + return false; + } +} + +function computeBoundary(source) { + var model = source.el._model || {}; + var scale = source.el._scale || {}; + var fill = source.fill; + var target = null; + var horizontal; + + if (isFinite(fill)) { + return null; + } + + // Backward compatibility: until v3, we still need to support boundary values set on + // the model (scaleTop, scaleBottom and scaleZero) because some external plugins and + // controllers might still use it (e.g. the Smith chart). + + if (fill === 'start') { + target = model.scaleBottom === undefined ? scale.bottom : model.scaleBottom; + } else if (fill === 'end') { + target = model.scaleTop === undefined ? scale.top : model.scaleTop; + } else if (model.scaleZero !== undefined) { + target = model.scaleZero; + } else if (scale.getBasePosition) { + target = scale.getBasePosition(); + } else if (scale.getBasePixel) { + target = scale.getBasePixel(); + } + + if (target !== undefined && target !== null) { + if (target.x !== undefined && target.y !== undefined) { + return target; + } + + if (helpers$1.isFinite(target)) { + horizontal = scale.isHorizontal(); + return { + x: horizontal ? target : null, + y: horizontal ? null : target + }; + } + } + + return null; +} + +function resolveTarget(sources, index, propagate) { + var source = sources[index]; + var fill = source.fill; + var visited = [index]; + var target; + + if (!propagate) { + return fill; + } + + while (fill !== false && visited.indexOf(fill) === -1) { + if (!isFinite(fill)) { + return fill; + } + + target = sources[fill]; + if (!target) { + return false; + } + + if (target.visible) { + return fill; + } + + visited.push(fill); + fill = target.fill; + } + + return false; +} + +function createMapper(source) { + var fill = source.fill; + var type = 'dataset'; + + if (fill === false) { + return null; + } + + if (!isFinite(fill)) { + type = 'boundary'; + } + + return mappers[type](source); +} + +function isDrawable(point) { + return point && !point.skip; +} + +function drawArea(ctx, curve0, curve1, len0, len1) { + var i; + + if (!len0 || !len1) { + return; + } + + // building first area curve (normal) + ctx.moveTo(curve0[0].x, curve0[0].y); + for (i = 1; i < len0; ++i) { + helpers$1.canvas.lineTo(ctx, curve0[i - 1], curve0[i]); + } + + // joining the two area curves + ctx.lineTo(curve1[len1 - 1].x, curve1[len1 - 1].y); + + // building opposite area curve (reverse) + for (i = len1 - 1; i > 0; --i) { + helpers$1.canvas.lineTo(ctx, curve1[i], curve1[i - 1], true); + } +} + +function doFill(ctx, points, mapper, view, color, loop) { + var count = points.length; + var span = view.spanGaps; + var curve0 = []; + var curve1 = []; + var len0 = 0; + var len1 = 0; + var i, ilen, index, p0, p1, d0, d1; + + ctx.beginPath(); + + for (i = 0, ilen = (count + !!loop); i < ilen; ++i) { + index = i % count; + p0 = points[index]._view; + p1 = mapper(p0, index, view); + d0 = isDrawable(p0); + d1 = isDrawable(p1); + + if (d0 && d1) { + len0 = curve0.push(p0); + len1 = curve1.push(p1); + } else if (len0 && len1) { + if (!span) { + drawArea(ctx, curve0, curve1, len0, len1); + len0 = len1 = 0; + curve0 = []; + curve1 = []; + } else { + if (d0) { + curve0.push(p0); + } + if (d1) { + curve1.push(p1); + } + } + } + } + + drawArea(ctx, curve0, curve1, len0, len1); + + ctx.closePath(); + ctx.fillStyle = color; + ctx.fill(); +} + +var plugin_filler = { + id: 'filler', + + afterDatasetsUpdate: function(chart, options) { + var count = (chart.data.datasets || []).length; + var propagate = options.propagate; + var sources = []; + var meta, i, el, source; + + for (i = 0; i < count; ++i) { + meta = chart.getDatasetMeta(i); + el = meta.dataset; + source = null; + + if (el && el._model && el instanceof elements.Line) { + source = { + visible: chart.isDatasetVisible(i), + fill: decodeFill(el, i, count), + chart: chart, + el: el + }; + } + + meta.$filler = source; + sources.push(source); + } + + for (i = 0; i < count; ++i) { + source = sources[i]; + if (!source) { + continue; + } + + source.fill = resolveTarget(sources, i, propagate); + source.boundary = computeBoundary(source); + source.mapper = createMapper(source); + } + }, + + beforeDatasetDraw: function(chart, args) { + var meta = args.meta.$filler; + if (!meta) { + return; + } + + var ctx = chart.ctx; + var el = meta.el; + var view = el._view; + var points = el._children || []; + var mapper = meta.mapper; + var color = view.backgroundColor || core_defaults.global.defaultColor; + + if (mapper && color && points.length) { + helpers$1.canvas.clipArea(ctx, chart.chartArea); + doFill(ctx, points, mapper, view, color, el._loop); + helpers$1.canvas.unclipArea(ctx); + } + } +}; + +var noop$1 = helpers$1.noop; +var valueOrDefault$d = helpers$1.valueOrDefault; + +core_defaults._set('global', { + legend: { + display: true, + position: 'top', + fullWidth: true, + reverse: false, + weight: 1000, + + // a callback that will handle + onClick: function(e, legendItem) { + var index = legendItem.datasetIndex; + var ci = this.chart; + var meta = ci.getDatasetMeta(index); + + // See controller.isDatasetVisible comment + meta.hidden = meta.hidden === null ? !ci.data.datasets[index].hidden : null; + + // We hid a dataset ... rerender the chart + ci.update(); + }, + + onHover: null, + onLeave: null, + + labels: { + boxWidth: 40, + padding: 10, + // Generates labels shown in the legend + // Valid properties to return: + // text : text to display + // fillStyle : fill of coloured box + // strokeStyle: stroke of coloured box + // hidden : if this legend item refers to a hidden item + // lineCap : cap style for line + // lineDash + // lineDashOffset : + // lineJoin : + // lineWidth : + generateLabels: function(chart) { + var data = chart.data; + return helpers$1.isArray(data.datasets) ? data.datasets.map(function(dataset, i) { + return { + text: dataset.label, + fillStyle: (!helpers$1.isArray(dataset.backgroundColor) ? dataset.backgroundColor : dataset.backgroundColor[0]), + hidden: !chart.isDatasetVisible(i), + lineCap: dataset.borderCapStyle, + lineDash: dataset.borderDash, + lineDashOffset: dataset.borderDashOffset, + lineJoin: dataset.borderJoinStyle, + lineWidth: dataset.borderWidth, + strokeStyle: dataset.borderColor, + pointStyle: dataset.pointStyle, + + // Below is extra data used for toggling the datasets + datasetIndex: i + }; + }, this) : []; + } + } + }, + + legendCallback: function(chart) { + var text = []; + text.push('<ul class="' + chart.id + '-legend">'); + for (var i = 0; i < chart.data.datasets.length; i++) { + text.push('<li><span style="background-color:' + chart.data.datasets[i].backgroundColor + '"></span>'); + if (chart.data.datasets[i].label) { + text.push(chart.data.datasets[i].label); + } + text.push('</li>'); + } + text.push('</ul>'); + return text.join(''); + } +}); + +/** + * Helper function to get the box width based on the usePointStyle option + * @param {object} labelopts - the label options on the legend + * @param {number} fontSize - the label font size + * @return {number} width of the color box area + */ +function getBoxWidth(labelOpts, fontSize) { + return labelOpts.usePointStyle && labelOpts.boxWidth > fontSize ? + fontSize : + labelOpts.boxWidth; +} + +/** + * IMPORTANT: this class is exposed publicly as Chart.Legend, backward compatibility required! + */ +var Legend = core_element.extend({ + + initialize: function(config) { + helpers$1.extend(this, config); + + // Contains hit boxes for each dataset (in dataset order) + this.legendHitBoxes = []; + + /** + * @private + */ + this._hoveredItem = null; + + // Are we in doughnut mode which has a different data type + this.doughnutMode = false; + }, + + // These methods are ordered by lifecycle. Utilities then follow. + // Any function defined here is inherited by all legend types. + // Any function can be extended by the legend type + + beforeUpdate: noop$1, + update: function(maxWidth, maxHeight, margins) { + var me = this; + + // Update Lifecycle - Probably don't want to ever extend or overwrite this function ;) + me.beforeUpdate(); + + // Absorb the master measurements + me.maxWidth = maxWidth; + me.maxHeight = maxHeight; + me.margins = margins; + + // Dimensions + me.beforeSetDimensions(); + me.setDimensions(); + me.afterSetDimensions(); + // Labels + me.beforeBuildLabels(); + me.buildLabels(); + me.afterBuildLabels(); + + // Fit + me.beforeFit(); + me.fit(); + me.afterFit(); + // + me.afterUpdate(); + + return me.minSize; + }, + afterUpdate: noop$1, + + // + + beforeSetDimensions: noop$1, + setDimensions: function() { + var me = this; + // Set the unconstrained dimension before label rotation + if (me.isHorizontal()) { + // Reset position before calculating rotation + me.width = me.maxWidth; + me.left = 0; + me.right = me.width; + } else { + me.height = me.maxHeight; + + // Reset position before calculating rotation + me.top = 0; + me.bottom = me.height; + } + + // Reset padding + me.paddingLeft = 0; + me.paddingTop = 0; + me.paddingRight = 0; + me.paddingBottom = 0; + + // Reset minSize + me.minSize = { + width: 0, + height: 0 + }; + }, + afterSetDimensions: noop$1, + + // + + beforeBuildLabels: noop$1, + buildLabels: function() { + var me = this; + var labelOpts = me.options.labels || {}; + var legendItems = helpers$1.callback(labelOpts.generateLabels, [me.chart], me) || []; + + if (labelOpts.filter) { + legendItems = legendItems.filter(function(item) { + return labelOpts.filter(item, me.chart.data); + }); + } + + if (me.options.reverse) { + legendItems.reverse(); + } + + me.legendItems = legendItems; + }, + afterBuildLabels: noop$1, + + // + + beforeFit: noop$1, + fit: function() { + var me = this; + var opts = me.options; + var labelOpts = opts.labels; + var display = opts.display; + + var ctx = me.ctx; + + var labelFont = helpers$1.options._parseFont(labelOpts); + var fontSize = labelFont.size; + + // Reset hit boxes + var hitboxes = me.legendHitBoxes = []; + + var minSize = me.minSize; + var isHorizontal = me.isHorizontal(); + + if (isHorizontal) { + minSize.width = me.maxWidth; // fill all the width + minSize.height = display ? 10 : 0; + } else { + minSize.width = display ? 10 : 0; + minSize.height = me.maxHeight; // fill all the height + } + + // Increase sizes here + if (display) { + ctx.font = labelFont.string; + + if (isHorizontal) { + // Labels + + // Width of each line of legend boxes. Labels wrap onto multiple lines when there are too many to fit on one + var lineWidths = me.lineWidths = [0]; + var totalHeight = 0; + + ctx.textAlign = 'left'; + ctx.textBaseline = 'top'; + + helpers$1.each(me.legendItems, function(legendItem, i) { + var boxWidth = getBoxWidth(labelOpts, fontSize); + var width = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width; + + if (i === 0 || lineWidths[lineWidths.length - 1] + width + labelOpts.padding > minSize.width) { + totalHeight += fontSize + labelOpts.padding; + lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = labelOpts.padding; + } + + // Store the hitbox width and height here. Final position will be updated in `draw` + hitboxes[i] = { + left: 0, + top: 0, + width: width, + height: fontSize + }; + + lineWidths[lineWidths.length - 1] += width + labelOpts.padding; + }); + + minSize.height += totalHeight; + + } else { + var vPadding = labelOpts.padding; + var columnWidths = me.columnWidths = []; + var totalWidth = labelOpts.padding; + var currentColWidth = 0; + var currentColHeight = 0; + var itemHeight = fontSize + vPadding; + + helpers$1.each(me.legendItems, function(legendItem, i) { + var boxWidth = getBoxWidth(labelOpts, fontSize); + var itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width; + + // If too tall, go to new column + if (i > 0 && currentColHeight + itemHeight > minSize.height - vPadding) { + totalWidth += currentColWidth + labelOpts.padding; + columnWidths.push(currentColWidth); // previous column width + + currentColWidth = 0; + currentColHeight = 0; + } + + // Get max width + currentColWidth = Math.max(currentColWidth, itemWidth); + currentColHeight += itemHeight; + + // Store the hitbox width and height here. Final position will be updated in `draw` + hitboxes[i] = { + left: 0, + top: 0, + width: itemWidth, + height: fontSize + }; + }); + + totalWidth += currentColWidth; + columnWidths.push(currentColWidth); + minSize.width += totalWidth; + } + } + + me.width = minSize.width; + me.height = minSize.height; + }, + afterFit: noop$1, + + // Shared Methods + isHorizontal: function() { + return this.options.position === 'top' || this.options.position === 'bottom'; + }, + + // Actually draw the legend on the canvas + draw: function() { + var me = this; + var opts = me.options; + var labelOpts = opts.labels; + var globalDefaults = core_defaults.global; + var defaultColor = globalDefaults.defaultColor; + var lineDefault = globalDefaults.elements.line; + var legendWidth = me.width; + var lineWidths = me.lineWidths; + + if (opts.display) { + var ctx = me.ctx; + var fontColor = valueOrDefault$d(labelOpts.fontColor, globalDefaults.defaultFontColor); + var labelFont = helpers$1.options._parseFont(labelOpts); + var fontSize = labelFont.size; + var cursor; + + // Canvas setup + ctx.textAlign = 'left'; + ctx.textBaseline = 'middle'; + ctx.lineWidth = 0.5; + ctx.strokeStyle = fontColor; // for strikethrough effect + ctx.fillStyle = fontColor; // render in correct colour + ctx.font = labelFont.string; + + var boxWidth = getBoxWidth(labelOpts, fontSize); + var hitboxes = me.legendHitBoxes; + + // current position + var drawLegendBox = function(x, y, legendItem) { + if (isNaN(boxWidth) || boxWidth <= 0) { + return; + } + + // Set the ctx for the box + ctx.save(); + + var lineWidth = valueOrDefault$d(legendItem.lineWidth, lineDefault.borderWidth); + ctx.fillStyle = valueOrDefault$d(legendItem.fillStyle, defaultColor); + ctx.lineCap = valueOrDefault$d(legendItem.lineCap, lineDefault.borderCapStyle); + ctx.lineDashOffset = valueOrDefault$d(legendItem.lineDashOffset, lineDefault.borderDashOffset); + ctx.lineJoin = valueOrDefault$d(legendItem.lineJoin, lineDefault.borderJoinStyle); + ctx.lineWidth = lineWidth; + ctx.strokeStyle = valueOrDefault$d(legendItem.strokeStyle, defaultColor); + + if (ctx.setLineDash) { + // IE 9 and 10 do not support line dash + ctx.setLineDash(valueOrDefault$d(legendItem.lineDash, lineDefault.borderDash)); + } + + if (opts.labels && opts.labels.usePointStyle) { + // Recalculate x and y for drawPoint() because its expecting + // x and y to be center of figure (instead of top left) + var radius = boxWidth * Math.SQRT2 / 2; + var centerX = x + boxWidth / 2; + var centerY = y + fontSize / 2; + + // Draw pointStyle as legend symbol + helpers$1.canvas.drawPoint(ctx, legendItem.pointStyle, radius, centerX, centerY); + } else { + // Draw box as legend symbol + if (lineWidth !== 0) { + ctx.strokeRect(x, y, boxWidth, fontSize); + } + ctx.fillRect(x, y, boxWidth, fontSize); + } + + ctx.restore(); + }; + var fillText = function(x, y, legendItem, textWidth) { + var halfFontSize = fontSize / 2; + var xLeft = boxWidth + halfFontSize + x; + var yMiddle = y + halfFontSize; + + ctx.fillText(legendItem.text, xLeft, yMiddle); + + if (legendItem.hidden) { + // Strikethrough the text if hidden + ctx.beginPath(); + ctx.lineWidth = 2; + ctx.moveTo(xLeft, yMiddle); + ctx.lineTo(xLeft + textWidth, yMiddle); + ctx.stroke(); + } + }; + + // Horizontal + var isHorizontal = me.isHorizontal(); + if (isHorizontal) { + cursor = { + x: me.left + ((legendWidth - lineWidths[0]) / 2) + labelOpts.padding, + y: me.top + labelOpts.padding, + line: 0 + }; + } else { + cursor = { + x: me.left + labelOpts.padding, + y: me.top + labelOpts.padding, + line: 0 + }; + } + + var itemHeight = fontSize + labelOpts.padding; + helpers$1.each(me.legendItems, function(legendItem, i) { + var textWidth = ctx.measureText(legendItem.text).width; + var width = boxWidth + (fontSize / 2) + textWidth; + var x = cursor.x; + var y = cursor.y; + + // Use (me.left + me.minSize.width) and (me.top + me.minSize.height) + // instead of me.right and me.bottom because me.width and me.height + // may have been changed since me.minSize was calculated + if (isHorizontal) { + if (i > 0 && x + width + labelOpts.padding > me.left + me.minSize.width) { + y = cursor.y += itemHeight; + cursor.line++; + x = cursor.x = me.left + ((legendWidth - lineWidths[cursor.line]) / 2) + labelOpts.padding; + } + } else if (i > 0 && y + itemHeight > me.top + me.minSize.height) { + x = cursor.x = x + me.columnWidths[cursor.line] + labelOpts.padding; + y = cursor.y = me.top + labelOpts.padding; + cursor.line++; + } + + drawLegendBox(x, y, legendItem); + + hitboxes[i].left = x; + hitboxes[i].top = y; + + // Fill the actual label + fillText(x, y, legendItem, textWidth); + + if (isHorizontal) { + cursor.x += width + labelOpts.padding; + } else { + cursor.y += itemHeight; + } + + }); + } + }, + + /** + * @private + */ + _getLegendItemAt: function(x, y) { + var me = this; + var i, hitBox, lh; + + if (x >= me.left && x <= me.right && y >= me.top && y <= me.bottom) { + // See if we are touching one of the dataset boxes + lh = me.legendHitBoxes; + for (i = 0; i < lh.length; ++i) { + hitBox = lh[i]; + + if (x >= hitBox.left && x <= hitBox.left + hitBox.width && y >= hitBox.top && y <= hitBox.top + hitBox.height) { + // Touching an element + return me.legendItems[i]; + } + } + } + + return null; + }, + + /** + * Handle an event + * @private + * @param {IEvent} event - The event to handle + */ + handleEvent: function(e) { + var me = this; + var opts = me.options; + var type = e.type === 'mouseup' ? 'click' : e.type; + var hoveredItem; + + if (type === 'mousemove') { + if (!opts.onHover && !opts.onLeave) { + return; + } + } else if (type === 'click') { + if (!opts.onClick) { + return; + } + } else { + return; + } + + // Chart event already has relative position in it + hoveredItem = me._getLegendItemAt(e.x, e.y); + + if (type === 'click') { + if (hoveredItem && opts.onClick) { + // use e.native for backwards compatibility + opts.onClick.call(me, e.native, hoveredItem); + } + } else { + if (opts.onLeave && hoveredItem !== me._hoveredItem) { + if (me._hoveredItem) { + opts.onLeave.call(me, e.native, me._hoveredItem); + } + me._hoveredItem = hoveredItem; + } + + if (opts.onHover && hoveredItem) { + // use e.native for backwards compatibility + opts.onHover.call(me, e.native, hoveredItem); + } + } + } +}); + +function createNewLegendAndAttach(chart, legendOpts) { + var legend = new Legend({ + ctx: chart.ctx, + options: legendOpts, + chart: chart + }); + + core_layouts.configure(chart, legend, legendOpts); + core_layouts.addBox(chart, legend); + chart.legend = legend; +} + +var plugin_legend = { + id: 'legend', + + /** + * Backward compatibility: since 2.1.5, the legend is registered as a plugin, making + * Chart.Legend obsolete. To avoid a breaking change, we export the Legend as part of + * the plugin, which one will be re-exposed in the chart.js file. + * https://github.com/chartjs/Chart.js/pull/2640 + * @private + */ + _element: Legend, + + beforeInit: function(chart) { + var legendOpts = chart.options.legend; + + if (legendOpts) { + createNewLegendAndAttach(chart, legendOpts); + } + }, + + beforeUpdate: function(chart) { + var legendOpts = chart.options.legend; + var legend = chart.legend; + + if (legendOpts) { + helpers$1.mergeIf(legendOpts, core_defaults.global.legend); + + if (legend) { + core_layouts.configure(chart, legend, legendOpts); + legend.options = legendOpts; + } else { + createNewLegendAndAttach(chart, legendOpts); + } + } else if (legend) { + core_layouts.removeBox(chart, legend); + delete chart.legend; + } + }, + + afterEvent: function(chart, e) { + var legend = chart.legend; + if (legend) { + legend.handleEvent(e); + } + } +}; + +var noop$2 = helpers$1.noop; + +core_defaults._set('global', { + title: { + display: false, + fontStyle: 'bold', + fullWidth: true, + padding: 10, + position: 'top', + text: '', + weight: 2000 // by default greater than legend (1000) to be above + } +}); + +/** + * IMPORTANT: this class is exposed publicly as Chart.Legend, backward compatibility required! + */ +var Title = core_element.extend({ + initialize: function(config) { + var me = this; + helpers$1.extend(me, config); + + // Contains hit boxes for each dataset (in dataset order) + me.legendHitBoxes = []; + }, + + // These methods are ordered by lifecycle. Utilities then follow. + + beforeUpdate: noop$2, + update: function(maxWidth, maxHeight, margins) { + var me = this; + + // Update Lifecycle - Probably don't want to ever extend or overwrite this function ;) + me.beforeUpdate(); + + // Absorb the master measurements + me.maxWidth = maxWidth; + me.maxHeight = maxHeight; + me.margins = margins; + + // Dimensions + me.beforeSetDimensions(); + me.setDimensions(); + me.afterSetDimensions(); + // Labels + me.beforeBuildLabels(); + me.buildLabels(); + me.afterBuildLabels(); + + // Fit + me.beforeFit(); + me.fit(); + me.afterFit(); + // + me.afterUpdate(); + + return me.minSize; + + }, + afterUpdate: noop$2, + + // + + beforeSetDimensions: noop$2, + setDimensions: function() { + var me = this; + // Set the unconstrained dimension before label rotation + if (me.isHorizontal()) { + // Reset position before calculating rotation + me.width = me.maxWidth; + me.left = 0; + me.right = me.width; + } else { + me.height = me.maxHeight; + + // Reset position before calculating rotation + me.top = 0; + me.bottom = me.height; + } + + // Reset padding + me.paddingLeft = 0; + me.paddingTop = 0; + me.paddingRight = 0; + me.paddingBottom = 0; + + // Reset minSize + me.minSize = { + width: 0, + height: 0 + }; + }, + afterSetDimensions: noop$2, + + // + + beforeBuildLabels: noop$2, + buildLabels: noop$2, + afterBuildLabels: noop$2, + + // + + beforeFit: noop$2, + fit: function() { + var me = this; + var opts = me.options; + var display = opts.display; + var minSize = me.minSize; + var lineCount = helpers$1.isArray(opts.text) ? opts.text.length : 1; + var fontOpts = helpers$1.options._parseFont(opts); + var textSize = display ? (lineCount * fontOpts.lineHeight) + (opts.padding * 2) : 0; + + if (me.isHorizontal()) { + minSize.width = me.maxWidth; // fill all the width + minSize.height = textSize; + } else { + minSize.width = textSize; + minSize.height = me.maxHeight; // fill all the height + } + + me.width = minSize.width; + me.height = minSize.height; + + }, + afterFit: noop$2, + + // Shared Methods + isHorizontal: function() { + var pos = this.options.position; + return pos === 'top' || pos === 'bottom'; + }, + + // Actually draw the title block on the canvas + draw: function() { + var me = this; + var ctx = me.ctx; + var opts = me.options; + + if (opts.display) { + var fontOpts = helpers$1.options._parseFont(opts); + var lineHeight = fontOpts.lineHeight; + var offset = lineHeight / 2 + opts.padding; + var rotation = 0; + var top = me.top; + var left = me.left; + var bottom = me.bottom; + var right = me.right; + var maxWidth, titleX, titleY; + + ctx.fillStyle = helpers$1.valueOrDefault(opts.fontColor, core_defaults.global.defaultFontColor); // render in correct colour + ctx.font = fontOpts.string; + + // Horizontal + if (me.isHorizontal()) { + titleX = left + ((right - left) / 2); // midpoint of the width + titleY = top + offset; + maxWidth = right - left; + } else { + titleX = opts.position === 'left' ? left + offset : right - offset; + titleY = top + ((bottom - top) / 2); + maxWidth = bottom - top; + rotation = Math.PI * (opts.position === 'left' ? -0.5 : 0.5); + } + + ctx.save(); + ctx.translate(titleX, titleY); + ctx.rotate(rotation); + ctx.textAlign = 'center'; + ctx.textBaseline = 'middle'; + + var text = opts.text; + if (helpers$1.isArray(text)) { + var y = 0; + for (var i = 0; i < text.length; ++i) { + ctx.fillText(text[i], 0, y, maxWidth); + y += lineHeight; + } + } else { + ctx.fillText(text, 0, 0, maxWidth); + } + + ctx.restore(); + } + } +}); + +function createNewTitleBlockAndAttach(chart, titleOpts) { + var title = new Title({ + ctx: chart.ctx, + options: titleOpts, + chart: chart + }); + + core_layouts.configure(chart, title, titleOpts); + core_layouts.addBox(chart, title); + chart.titleBlock = title; +} + +var plugin_title = { + id: 'title', + + /** + * Backward compatibility: since 2.1.5, the title is registered as a plugin, making + * Chart.Title obsolete. To avoid a breaking change, we export the Title as part of + * the plugin, which one will be re-exposed in the chart.js file. + * https://github.com/chartjs/Chart.js/pull/2640 + * @private + */ + _element: Title, + + beforeInit: function(chart) { + var titleOpts = chart.options.title; + + if (titleOpts) { + createNewTitleBlockAndAttach(chart, titleOpts); + } + }, + + beforeUpdate: function(chart) { + var titleOpts = chart.options.title; + var titleBlock = chart.titleBlock; + + if (titleOpts) { + helpers$1.mergeIf(titleOpts, core_defaults.global.title); + + if (titleBlock) { + core_layouts.configure(chart, titleBlock, titleOpts); + titleBlock.options = titleOpts; + } else { + createNewTitleBlockAndAttach(chart, titleOpts); + } + } else if (titleBlock) { + core_layouts.removeBox(chart, titleBlock); + delete chart.titleBlock; + } + } +}; + +var plugins = {}; +var filler = plugin_filler; +var legend = plugin_legend; +var title = plugin_title; +plugins.filler = filler; +plugins.legend = legend; +plugins.title = title; + +/** + * @namespace Chart + */ + + +core_controller.helpers = helpers$1; + +// @todo dispatch these helpers into appropriated helpers/helpers.* file and write unit tests! +core_helpers(core_controller); + +core_controller._adapters = core_adapters; +core_controller.Animation = core_animation; +core_controller.animationService = core_animations; +core_controller.controllers = controllers; +core_controller.DatasetController = core_datasetController; +core_controller.defaults = core_defaults; +core_controller.Element = core_element; +core_controller.elements = elements; +core_controller.Interaction = core_interaction; +core_controller.layouts = core_layouts; +core_controller.platform = platform; +core_controller.plugins = core_plugins; +core_controller.Scale = core_scale; +core_controller.scaleService = core_scaleService; +core_controller.Ticks = core_ticks; +core_controller.Tooltip = core_tooltip; + +// Register built-in scales + +core_controller.helpers.each(scales, function(scale, type) { + core_controller.scaleService.registerScaleType(type, scale, scale._defaults); +}); + +// Load to register built-in adapters (as side effects) + + +// Loading built-in plugins + +for (var k in plugins) { + if (plugins.hasOwnProperty(k)) { + core_controller.plugins.register(plugins[k]); + } +} + +core_controller.platform.initialize(); + +var src = core_controller; +if (typeof window !== 'undefined') { + window.Chart = core_controller; +} + +// DEPRECATIONS + +/** + * Provided for backward compatibility, not available anymore + * @namespace Chart.Chart + * @deprecated since version 2.8.0 + * @todo remove at version 3 + * @private + */ +core_controller.Chart = core_controller; + +/** + * Provided for backward compatibility, not available anymore + * @namespace Chart.Legend + * @deprecated since version 2.1.5 + * @todo remove at version 3 + * @private + */ +core_controller.Legend = plugins.legend._element; + +/** + * Provided for backward compatibility, not available anymore + * @namespace Chart.Title + * @deprecated since version 2.1.5 + * @todo remove at version 3 + * @private + */ +core_controller.Title = plugins.title._element; + +/** + * Provided for backward compatibility, use Chart.plugins instead + * @namespace Chart.pluginService + * @deprecated since version 2.1.5 + * @todo remove at version 3 + * @private + */ +core_controller.pluginService = core_controller.plugins; + +/** + * Provided for backward compatibility, inheriting from Chart.PlugingBase has no + * effect, instead simply create/register plugins via plain JavaScript objects. + * @interface Chart.PluginBase + * @deprecated since version 2.5.0 + * @todo remove at version 3 + * @private + */ +core_controller.PluginBase = core_controller.Element.extend({}); + +/** + * Provided for backward compatibility, use Chart.helpers.canvas instead. + * @namespace Chart.canvasHelpers + * @deprecated since version 2.6.0 + * @todo remove at version 3 + * @private + */ +core_controller.canvasHelpers = core_controller.helpers.canvas; + +/** + * Provided for backward compatibility, use Chart.layouts instead. + * @namespace Chart.layoutService + * @deprecated since version 2.7.3 + * @todo remove at version 3 + * @private + */ +core_controller.layoutService = core_controller.layouts; + +/** + * Provided for backward compatibility, not available anymore. + * @namespace Chart.LinearScaleBase + * @deprecated since version 2.8 + * @todo remove at version 3 + * @private + */ +core_controller.LinearScaleBase = scale_linearbase; + +/** + * Provided for backward compatibility, instead we should create a new Chart + * by setting the type in the config (`new Chart(id, {type: '{chart-type}'}`). + * @deprecated since version 2.8.0 + * @todo remove at version 3 + */ +core_controller.helpers.each( + [ + 'Bar', + 'Bubble', + 'Doughnut', + 'Line', + 'PolarArea', + 'Radar', + 'Scatter' + ], + function(klass) { + core_controller[klass] = function(ctx, cfg) { + return new core_controller(ctx, core_controller.helpers.merge(cfg || {}, { + type: klass.charAt(0).toLowerCase() + klass.slice(1) + })); + }; + } +); + +return src; + +}))); diff --git a/base_accounting_kit/static/lib/Chart.min.css b/base_accounting_kit/static/lib/Chart.min.css new file mode 100644 index 0000000..9dc5ac2 --- /dev/null +++ b/base_accounting_kit/static/lib/Chart.min.css @@ -0,0 +1 @@ +@keyframes chartjs-render-animation{from{opacity:.99}to{opacity:1}}.chartjs-render-monitor{animation:chartjs-render-animation 1ms}.chartjs-size-monitor,.chartjs-size-monitor-expand,.chartjs-size-monitor-shrink{position:absolute;direction:ltr;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1}.chartjs-size-monitor-expand>div{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0}
\ No newline at end of file diff --git a/base_accounting_kit/static/lib/Chart.min.js b/base_accounting_kit/static/lib/Chart.min.js new file mode 100644 index 0000000..c74a791 --- /dev/null +++ b/base_accounting_kit/static/lib/Chart.min.js @@ -0,0 +1,7 @@ +/*! + * Chart.js v2.8.0 + * https://www.chartjs.org + * (c) 2019 Chart.js Contributors + * Released under the MIT License + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(function(){try{return require("moment")}catch(t){}}()):"function"==typeof define&&define.amd?define(["require"],function(t){return e(function(){try{return t("moment")}catch(t){}}())}):t.Chart=e(t.moment)}(this,function(t){"use strict";t=t&&t.hasOwnProperty("default")?t.default:t;var e={rgb2hsl:i,rgb2hsv:n,rgb2hwb:a,rgb2cmyk:o,rgb2keyword:s,rgb2xyz:l,rgb2lab:d,rgb2lch:function(t){return x(d(t))},hsl2rgb:u,hsl2hsv:function(t){var e=t[0],i=t[1]/100,n=t[2]/100;if(0===n)return[0,0,0];return[e,100*(2*(i*=(n*=2)<=1?n:2-n)/(n+i)),100*((n+i)/2)]},hsl2hwb:function(t){return a(u(t))},hsl2cmyk:function(t){return o(u(t))},hsl2keyword:function(t){return s(u(t))},hsv2rgb:h,hsv2hsl:function(t){var e,i,n=t[0],a=t[1]/100,o=t[2]/100;return e=a*o,[n,100*(e=(e/=(i=(2-a)*o)<=1?i:2-i)||0),100*(i/=2)]},hsv2hwb:function(t){return a(h(t))},hsv2cmyk:function(t){return o(h(t))},hsv2keyword:function(t){return s(h(t))},hwb2rgb:c,hwb2hsl:function(t){return i(c(t))},hwb2hsv:function(t){return n(c(t))},hwb2cmyk:function(t){return o(c(t))},hwb2keyword:function(t){return s(c(t))},cmyk2rgb:f,cmyk2hsl:function(t){return i(f(t))},cmyk2hsv:function(t){return n(f(t))},cmyk2hwb:function(t){return a(f(t))},cmyk2keyword:function(t){return s(f(t))},keyword2rgb:w,keyword2hsl:function(t){return i(w(t))},keyword2hsv:function(t){return n(w(t))},keyword2hwb:function(t){return a(w(t))},keyword2cmyk:function(t){return o(w(t))},keyword2lab:function(t){return d(w(t))},keyword2xyz:function(t){return l(w(t))},xyz2rgb:p,xyz2lab:m,xyz2lch:function(t){return x(m(t))},lab2xyz:v,lab2rgb:y,lab2lch:x,lch2lab:k,lch2xyz:function(t){return v(k(t))},lch2rgb:function(t){return y(k(t))}};function i(t){var e,i,n=t[0]/255,a=t[1]/255,o=t[2]/255,r=Math.min(n,a,o),s=Math.max(n,a,o),l=s-r;return s==r?e=0:n==s?e=(a-o)/l:a==s?e=2+(o-n)/l:o==s&&(e=4+(n-a)/l),(e=Math.min(60*e,360))<0&&(e+=360),i=(r+s)/2,[e,100*(s==r?0:i<=.5?l/(s+r):l/(2-s-r)),100*i]}function n(t){var e,i,n=t[0],a=t[1],o=t[2],r=Math.min(n,a,o),s=Math.max(n,a,o),l=s-r;return i=0==s?0:l/s*1e3/10,s==r?e=0:n==s?e=(a-o)/l:a==s?e=2+(o-n)/l:o==s&&(e=4+(n-a)/l),(e=Math.min(60*e,360))<0&&(e+=360),[e,i,s/255*1e3/10]}function a(t){var e=t[0],n=t[1],a=t[2];return[i(t)[0],100*(1/255*Math.min(e,Math.min(n,a))),100*(a=1-1/255*Math.max(e,Math.max(n,a)))]}function o(t){var e,i=t[0]/255,n=t[1]/255,a=t[2]/255;return[100*((1-i-(e=Math.min(1-i,1-n,1-a)))/(1-e)||0),100*((1-n-e)/(1-e)||0),100*((1-a-e)/(1-e)||0),100*e]}function s(t){return _[JSON.stringify(t)]}function l(t){var e=t[0]/255,i=t[1]/255,n=t[2]/255;return[100*(.4124*(e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92)+.1805*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)),100*(.2126*e+.7152*i+.0722*n),100*(.0193*e+.1192*i+.9505*n)]}function d(t){var e=l(t),i=e[0],n=e[1],a=e[2];return n/=100,a/=108.883,i=(i/=95.047)>.008856?Math.pow(i,1/3):7.787*i+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(i-n),200*(n-(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116))]}function u(t){var e,i,n,a,o,r=t[0]/360,s=t[1]/100,l=t[2]/100;if(0==s)return[o=255*l,o,o];e=2*l-(i=l<.5?l*(1+s):l+s-l*s),a=[0,0,0];for(var d=0;d<3;d++)(n=r+1/3*-(d-1))<0&&n++,n>1&&n--,o=6*n<1?e+6*(i-e)*n:2*n<1?i:3*n<2?e+(i-e)*(2/3-n)*6:e,a[d]=255*o;return a}function h(t){var e=t[0]/60,i=t[1]/100,n=t[2]/100,a=Math.floor(e)%6,o=e-Math.floor(e),r=255*n*(1-i),s=255*n*(1-i*o),l=255*n*(1-i*(1-o));n*=255;switch(a){case 0:return[n,l,r];case 1:return[s,n,r];case 2:return[r,n,l];case 3:return[r,s,n];case 4:return[l,r,n];case 5:return[n,r,s]}}function c(t){var e,i,n,a,o=t[0]/360,s=t[1]/100,l=t[2]/100,d=s+l;switch(d>1&&(s/=d,l/=d),n=6*o-(e=Math.floor(6*o)),0!=(1&e)&&(n=1-n),a=s+n*((i=1-l)-s),e){default:case 6:case 0:r=i,g=a,b=s;break;case 1:r=a,g=i,b=s;break;case 2:r=s,g=i,b=a;break;case 3:r=s,g=a,b=i;break;case 4:r=a,g=s,b=i;break;case 5:r=i,g=s,b=a}return[255*r,255*g,255*b]}function f(t){var e=t[0]/100,i=t[1]/100,n=t[2]/100,a=t[3]/100;return[255*(1-Math.min(1,e*(1-a)+a)),255*(1-Math.min(1,i*(1-a)+a)),255*(1-Math.min(1,n*(1-a)+a))]}function p(t){var e,i,n,a=t[0]/100,o=t[1]/100,r=t[2]/100;return i=-.9689*a+1.8758*o+.0415*r,n=.0557*a+-.204*o+1.057*r,e=(e=3.2406*a+-1.5372*o+-.4986*r)>.0031308?1.055*Math.pow(e,1/2.4)-.055:e*=12.92,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:i*=12.92,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,[255*(e=Math.min(Math.max(0,e),1)),255*(i=Math.min(Math.max(0,i),1)),255*(n=Math.min(Math.max(0,n),1))]}function m(t){var e=t[0],i=t[1],n=t[2];return i/=100,n/=108.883,e=(e/=95.047)>.008856?Math.pow(e,1/3):7.787*e+16/116,[116*(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116)-16,500*(e-i),200*(i-(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116))]}function v(t){var e,i,n,a,o=t[0],r=t[1],s=t[2];return o<=8?a=(i=100*o/903.3)/100*7.787+16/116:(i=100*Math.pow((o+16)/116,3),a=Math.pow(i/100,1/3)),[e=e/95.047<=.008856?e=95.047*(r/500+a-16/116)/7.787:95.047*Math.pow(r/500+a,3),i,n=n/108.883<=.008859?n=108.883*(a-s/200-16/116)/7.787:108.883*Math.pow(a-s/200,3)]}function x(t){var e,i=t[0],n=t[1],a=t[2];return(e=360*Math.atan2(a,n)/2/Math.PI)<0&&(e+=360),[i,Math.sqrt(n*n+a*a),e]}function y(t){return p(v(t))}function k(t){var e,i=t[0],n=t[1];return e=t[2]/360*2*Math.PI,[i,n*Math.cos(e),n*Math.sin(e)]}function w(t){return M[t]}var M={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},_={};for(var C in M)_[JSON.stringify(M[C])]=C;var S=function(){return new T};for(var P in e){S[P+"Raw"]=function(t){return function(i){return"number"==typeof i&&(i=Array.prototype.slice.call(arguments)),e[t](i)}}(P);var I=/(\w+)2(\w+)/.exec(P),A=I[1],D=I[2];(S[A]=S[A]||{})[D]=S[P]=function(t){return function(i){"number"==typeof i&&(i=Array.prototype.slice.call(arguments));var n=e[t](i);if("string"==typeof n||void 0===n)return n;for(var a=0;a<n.length;a++)n[a]=Math.round(n[a]);return n}}(P)}var T=function(){this.convs={}};T.prototype.routeSpace=function(t,e){var i=e[0];return void 0===i?this.getValues(t):("number"==typeof i&&(i=Array.prototype.slice.call(e)),this.setValues(t,i))},T.prototype.setValues=function(t,e){return this.space=t,this.convs={},this.convs[t]=e,this},T.prototype.getValues=function(t){var e=this.convs[t];if(!e){var i=this.space,n=this.convs[i];e=S[i][t](n),this.convs[t]=e}return e},["rgb","hsl","hsv","cmyk","keyword"].forEach(function(t){T.prototype[t]=function(e){return this.routeSpace(t,arguments)}});var F=S,L={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},R={getRgba:O,getHsla:z,getRgb:function(t){var e=O(t);return e&&e.slice(0,3)},getHsl:function(t){var e=z(t);return e&&e.slice(0,3)},getHwb:B,getAlpha:function(t){var e=O(t);if(e)return e[3];if(e=z(t))return e[3];if(e=B(t))return e[3]},hexString:function(t,e){var e=void 0!==e&&3===t.length?e:t[3];return"#"+H(t[0])+H(t[1])+H(t[2])+(e>=0&&e<1?H(Math.round(255*e)):"")},rgbString:function(t,e){if(e<1||t[3]&&t[3]<1)return N(t,e);return"rgb("+t[0]+", "+t[1]+", "+t[2]+")"},rgbaString:N,percentString:function(t,e){if(e<1||t[3]&&t[3]<1)return W(t,e);var i=Math.round(t[0]/255*100),n=Math.round(t[1]/255*100),a=Math.round(t[2]/255*100);return"rgb("+i+"%, "+n+"%, "+a+"%)"},percentaString:W,hslString:function(t,e){if(e<1||t[3]&&t[3]<1)return V(t,e);return"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)"},hslaString:V,hwbString:function(t,e){void 0===e&&(e=void 0!==t[3]?t[3]:1);return"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+(void 0!==e&&1!==e?", "+e:"")+")"},keyword:function(t){return j[t.slice(0,3)]}};function O(t){if(t){var e=[0,0,0],i=1,n=t.match(/^#([a-fA-F0-9]{3,4})$/i),a="";if(n){a=(n=n[1])[3];for(var o=0;o<e.length;o++)e[o]=parseInt(n[o]+n[o],16);a&&(i=Math.round(parseInt(a+a,16)/255*100)/100)}else if(n=t.match(/^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i)){a=n[2],n=n[1];for(o=0;o<e.length;o++)e[o]=parseInt(n.slice(2*o,2*o+2),16);a&&(i=Math.round(parseInt(a,16)/255*100)/100)}else if(n=t.match(/^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(o=0;o<e.length;o++)e[o]=parseInt(n[o+1]);i=parseFloat(n[4])}else if(n=t.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(o=0;o<e.length;o++)e[o]=Math.round(2.55*parseFloat(n[o+1]));i=parseFloat(n[4])}else if(n=t.match(/(\w+)/)){if("transparent"==n[1])return[0,0,0,0];if(!(e=L[n[1]]))return}for(o=0;o<e.length;o++)e[o]=E(e[o],0,255);return i=i||0==i?E(i,0,1):1,e[3]=i,e}}function z(t){if(t){var e=t.match(/^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(e){var i=parseFloat(e[4]);return[E(parseInt(e[1]),0,360),E(parseFloat(e[2]),0,100),E(parseFloat(e[3]),0,100),E(isNaN(i)?1:i,0,1)]}}}function B(t){if(t){var e=t.match(/^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(e){var i=parseFloat(e[4]);return[E(parseInt(e[1]),0,360),E(parseFloat(e[2]),0,100),E(parseFloat(e[3]),0,100),E(isNaN(i)?1:i,0,1)]}}}function N(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"rgba("+t[0]+", "+t[1]+", "+t[2]+", "+e+")"}function W(t,e){return"rgba("+Math.round(t[0]/255*100)+"%, "+Math.round(t[1]/255*100)+"%, "+Math.round(t[2]/255*100)+"%, "+(e||t[3]||1)+")"}function V(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+e+")"}function E(t,e,i){return Math.min(Math.max(e,t),i)}function H(t){var e=t.toString(16).toUpperCase();return e.length<2?"0"+e:e}var j={};for(var q in L)j[L[q]]=q;var Y=function(t){return t instanceof Y?t:this instanceof Y?(this.valid=!1,this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1},void("string"==typeof t?(e=R.getRgba(t))?this.setValues("rgb",e):(e=R.getHsla(t))?this.setValues("hsl",e):(e=R.getHwb(t))&&this.setValues("hwb",e):"object"==typeof t&&(void 0!==(e=t).r||void 0!==e.red?this.setValues("rgb",e):void 0!==e.l||void 0!==e.lightness?this.setValues("hsl",e):void 0!==e.v||void 0!==e.value?this.setValues("hsv",e):void 0!==e.w||void 0!==e.whiteness?this.setValues("hwb",e):void 0===e.c&&void 0===e.cyan||this.setValues("cmyk",e)))):new Y(t);var e};Y.prototype={isValid:function(){return this.valid},rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var t=this.values;return 1!==t.alpha?t.hwb.concat([t.alpha]):t.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var t=this.values;return t.rgb.concat([t.alpha])},hslaArray:function(){var t=this.values;return t.hsl.concat([t.alpha])},alpha:function(t){return void 0===t?this.values.alpha:(this.setValues("alpha",t),this)},red:function(t){return this.setChannel("rgb",0,t)},green:function(t){return this.setChannel("rgb",1,t)},blue:function(t){return this.setChannel("rgb",2,t)},hue:function(t){return t&&(t=(t%=360)<0?360+t:t),this.setChannel("hsl",0,t)},saturation:function(t){return this.setChannel("hsl",1,t)},lightness:function(t){return this.setChannel("hsl",2,t)},saturationv:function(t){return this.setChannel("hsv",1,t)},whiteness:function(t){return this.setChannel("hwb",1,t)},blackness:function(t){return this.setChannel("hwb",2,t)},value:function(t){return this.setChannel("hsv",2,t)},cyan:function(t){return this.setChannel("cmyk",0,t)},magenta:function(t){return this.setChannel("cmyk",1,t)},yellow:function(t){return this.setChannel("cmyk",2,t)},black:function(t){return this.setChannel("cmyk",3,t)},hexString:function(){return R.hexString(this.values.rgb)},rgbString:function(){return R.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return R.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return R.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return R.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return R.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return R.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return R.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var t=this.values.rgb;return t[0]<<16|t[1]<<8|t[2]},luminosity:function(){for(var t=this.values.rgb,e=[],i=0;i<t.length;i++){var n=t[i]/255;e[i]=n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4)}return.2126*e[0]+.7152*e[1]+.0722*e[2]},contrast:function(t){var e=this.luminosity(),i=t.luminosity();return e>i?(e+.05)/(i+.05):(i+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,i=(e[0]+t)%360;return e[0]=i<0?360+i:i,this.setValues("hsl",e),this},mix:function(t,e){var i=t,n=void 0===e?.5:e,a=2*n-1,o=this.alpha()-i.alpha(),r=((a*o==-1?a:(a+o)/(1+a*o))+1)/2,s=1-r;return this.rgb(r*this.red()+s*i.red(),r*this.green()+s*i.green(),r*this.blue()+s*i.blue()).alpha(this.alpha()*n+i.alpha()*(1-n))},toJSON:function(){return this.rgb()},clone:function(){var t,e,i=new Y,n=this.values,a=i.values;for(var o in n)n.hasOwnProperty(o)&&(t=n[o],"[object Array]"===(e={}.toString.call(t))?a[o]=t.slice(0):"[object Number]"===e?a[o]=t:console.error("unexpected color value:",t));return i}},Y.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},Y.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},Y.prototype.getValues=function(t){for(var e=this.values,i={},n=0;n<t.length;n++)i[t.charAt(n)]=e[t][n];return 1!==e.alpha&&(i.a=e.alpha),i},Y.prototype.setValues=function(t,e){var i,n,a=this.values,o=this.spaces,r=this.maxes,s=1;if(this.valid=!0,"alpha"===t)s=e;else if(e.length)a[t]=e.slice(0,t.length),s=e[t.length];else if(void 0!==e[t.charAt(0)]){for(i=0;i<t.length;i++)a[t][i]=e[t.charAt(i)];s=e.a}else if(void 0!==e[o[t][0]]){var l=o[t];for(i=0;i<t.length;i++)a[t][i]=e[l[i]];s=e.alpha}if(a.alpha=Math.max(0,Math.min(1,void 0===s?a.alpha:s)),"alpha"===t)return!1;for(i=0;i<t.length;i++)n=Math.max(0,Math.min(r[t][i],a[t][i])),a[t][i]=Math.round(n);for(var d in o)d!==t&&(a[d]=F[t][d](a[t]));return!0},Y.prototype.setSpace=function(t,e){var i=e[0];return void 0===i?this.getValues(t):("number"==typeof i&&(i=Array.prototype.slice.call(e)),this.setValues(t,i),this)},Y.prototype.setChannel=function(t,e,i){var n=this.values[t];return void 0===i?n[e]:i===n[e]?this:(n[e]=i,this.setValues(t,n),this)},"undefined"!=typeof window&&(window.Color=Y);var U,X=Y,K={noop:function(){},uid:(U=0,function(){return U++}),isNullOrUndef:function(t){return null==t},isArray:function(t){if(Array.isArray&&Array.isArray(t))return!0;var e=Object.prototype.toString.call(t);return"[object"===e.substr(0,7)&&"Array]"===e.substr(-6)},isObject:function(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)},isFinite:function(t){return("number"==typeof t||t instanceof Number)&&isFinite(t)},valueOrDefault:function(t,e){return void 0===t?e:t},valueAtIndexOrDefault:function(t,e,i){return K.valueOrDefault(K.isArray(t)?t[e]:t,i)},callback:function(t,e,i){if(t&&"function"==typeof t.call)return t.apply(i,e)},each:function(t,e,i,n){var a,o,r;if(K.isArray(t))if(o=t.length,n)for(a=o-1;a>=0;a--)e.call(i,t[a],a);else for(a=0;a<o;a++)e.call(i,t[a],a);else if(K.isObject(t))for(o=(r=Object.keys(t)).length,a=0;a<o;a++)e.call(i,t[r[a]],r[a])},arrayEquals:function(t,e){var i,n,a,o;if(!t||!e||t.length!==e.length)return!1;for(i=0,n=t.length;i<n;++i)if(a=t[i],o=e[i],a instanceof Array&&o instanceof Array){if(!K.arrayEquals(a,o))return!1}else if(a!==o)return!1;return!0},clone:function(t){if(K.isArray(t))return t.map(K.clone);if(K.isObject(t)){for(var e={},i=Object.keys(t),n=i.length,a=0;a<n;++a)e[i[a]]=K.clone(t[i[a]]);return e}return t},_merger:function(t,e,i,n){var a=e[t],o=i[t];K.isObject(a)&&K.isObject(o)?K.merge(a,o,n):e[t]=K.clone(o)},_mergerIf:function(t,e,i){var n=e[t],a=i[t];K.isObject(n)&&K.isObject(a)?K.mergeIf(n,a):e.hasOwnProperty(t)||(e[t]=K.clone(a))},merge:function(t,e,i){var n,a,o,r,s,l=K.isArray(e)?e:[e],d=l.length;if(!K.isObject(t))return t;for(n=(i=i||{}).merger||K._merger,a=0;a<d;++a)if(e=l[a],K.isObject(e))for(s=0,r=(o=Object.keys(e)).length;s<r;++s)n(o[s],t,e,i);return t},mergeIf:function(t,e){return K.merge(t,e,{merger:K._mergerIf})},extend:function(t){for(var e=function(e,i){t[i]=e},i=1,n=arguments.length;i<n;++i)K.each(arguments[i],e);return t},inherits:function(t){var e=this,i=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return e.apply(this,arguments)},n=function(){this.constructor=i};return n.prototype=e.prototype,i.prototype=new n,i.extend=K.inherits,t&&K.extend(i.prototype,t),i.__super__=e.prototype,i}},G=K;K.callCallback=K.callback,K.indexOf=function(t,e,i){return Array.prototype.indexOf.call(t,e,i)},K.getValueOrDefault=K.valueOrDefault,K.getValueAtIndexOrDefault=K.valueAtIndexOrDefault;var Z={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return-t*(t-2)},easeInOutQuad:function(t){return(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1)},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return(t-=1)*t*t+1},easeInOutCubic:function(t){return(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return-((t-=1)*t*t*t-1)},easeInOutQuart:function(t){return(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return(t-=1)*t*t*t*t+1},easeInOutQuint:function(t){return(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},easeInSine:function(t){return 1-Math.cos(t*(Math.PI/2))},easeOutSine:function(t){return Math.sin(t*(Math.PI/2))},easeInOutSine:function(t){return-.5*(Math.cos(Math.PI*t)-1)},easeInExpo:function(t){return 0===t?0:Math.pow(2,10*(t-1))},easeOutExpo:function(t){return 1===t?1:1-Math.pow(2,-10*t)},easeInOutExpo:function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(2-Math.pow(2,-10*--t))},easeInCirc:function(t){return t>=1?t:-(Math.sqrt(1-t*t)-1)},easeOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:1===t?1:(i||(i=.3),n<1?(n=1,e=i/4):e=i/(2*Math.PI)*Math.asin(1/n),-n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i))},easeOutElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:1===t?1:(i||(i=.3),n<1?(n=1,e=i/4):e=i/(2*Math.PI)*Math.asin(1/n),n*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/i)+1)},easeInOutElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:2==(t/=.5)?1:(i||(i=.45),n<1?(n=1,e=i/4):e=i/(2*Math.PI)*Math.asin(1/n),t<1?n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*-.5:n*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*.5+1)},easeInBack:function(t){var e=1.70158;return t*t*((e+1)*t-e)},easeOutBack:function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:function(t){return 1-Z.easeOutBounce(1-t)},easeOutBounce:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:function(t){return t<.5?.5*Z.easeInBounce(2*t):.5*Z.easeOutBounce(2*t-1)+.5}},$={effects:Z};G.easingEffects=Z;var J=Math.PI,Q=J/180,tt=2*J,et=J/2,it=J/4,nt=2*J/3,at={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},roundedRect:function(t,e,i,n,a,o){if(o){var r=Math.min(o,a/2,n/2),s=e+r,l=i+r,d=e+n-r,u=i+a-r;t.moveTo(e,l),s<d&&l<u?(t.arc(s,l,r,-J,-et),t.arc(d,l,r,-et,0),t.arc(d,u,r,0,et),t.arc(s,u,r,et,J)):s<d?(t.moveTo(s,i),t.arc(d,l,r,-et,et),t.arc(s,l,r,et,J+et)):l<u?(t.arc(s,l,r,-J,0),t.arc(s,u,r,0,J)):t.arc(s,l,r,-J,J),t.closePath(),t.moveTo(e,i)}else t.rect(e,i,n,a)},drawPoint:function(t,e,i,n,a,o){var r,s,l,d,u,h=(o||0)*Q;if(!e||"object"!=typeof e||"[object HTMLImageElement]"!==(r=e.toString())&&"[object HTMLCanvasElement]"!==r){if(!(isNaN(i)||i<=0)){switch(t.beginPath(),e){default:t.arc(n,a,i,0,tt),t.closePath();break;case"triangle":t.moveTo(n+Math.sin(h)*i,a-Math.cos(h)*i),h+=nt,t.lineTo(n+Math.sin(h)*i,a-Math.cos(h)*i),h+=nt,t.lineTo(n+Math.sin(h)*i,a-Math.cos(h)*i),t.closePath();break;case"rectRounded":d=i-(u=.516*i),s=Math.cos(h+it)*d,l=Math.sin(h+it)*d,t.arc(n-s,a-l,u,h-J,h-et),t.arc(n+l,a-s,u,h-et,h),t.arc(n+s,a+l,u,h,h+et),t.arc(n-l,a+s,u,h+et,h+J),t.closePath();break;case"rect":if(!o){d=Math.SQRT1_2*i,t.rect(n-d,a-d,2*d,2*d);break}h+=it;case"rectRot":s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+l,a-s),t.lineTo(n+s,a+l),t.lineTo(n-l,a+s),t.closePath();break;case"crossRot":h+=it;case"cross":s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l),t.moveTo(n+l,a-s),t.lineTo(n-l,a+s);break;case"star":s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l),t.moveTo(n+l,a-s),t.lineTo(n-l,a+s),h+=it,s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l),t.moveTo(n+l,a-s),t.lineTo(n-l,a+s);break;case"line":s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l);break;case"dash":t.moveTo(n,a),t.lineTo(n+Math.cos(h)*i,a+Math.sin(h)*i)}t.fill(),t.stroke()}}else t.drawImage(e,n-e.width/2,a-e.height/2,e.width,e.height)},_isPointInArea:function(t,e){return t.x>e.left-1e-6&&t.x<e.right+1e-6&&t.y>e.top-1e-6&&t.y<e.bottom+1e-6},clipArea:function(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()},unclipArea:function(t){t.restore()},lineTo:function(t,e,i,n){var a=i.steppedLine;if(a){if("middle"===a){var o=(e.x+i.x)/2;t.lineTo(o,n?i.y:e.y),t.lineTo(o,n?e.y:i.y)}else"after"===a&&!n||"after"!==a&&n?t.lineTo(e.x,i.y):t.lineTo(i.x,e.y);t.lineTo(i.x,i.y)}else i.tension?t.bezierCurveTo(n?e.controlPointPreviousX:e.controlPointNextX,n?e.controlPointPreviousY:e.controlPointNextY,n?i.controlPointNextX:i.controlPointPreviousX,n?i.controlPointNextY:i.controlPointPreviousY,i.x,i.y):t.lineTo(i.x,i.y)}},ot=at;G.clear=at.clear,G.drawRoundedRectangle=function(t){t.beginPath(),at.roundedRect.apply(at,arguments)};var rt={_set:function(t,e){return G.merge(this[t]||(this[t]={}),e)}};rt._set("global",{defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",defaultLineHeight:1.2,showLines:!0});var st=rt,lt=G.valueOrDefault;var dt={toLineHeight:function(t,e){var i=(""+t).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!i||"normal"===i[1])return 1.2*e;switch(t=+i[2],i[3]){case"px":return t;case"%":t/=100}return e*t},toPadding:function(t){var e,i,n,a;return G.isObject(t)?(e=+t.top||0,i=+t.right||0,n=+t.bottom||0,a=+t.left||0):e=i=n=a=+t||0,{top:e,right:i,bottom:n,left:a,height:e+n,width:a+i}},_parseFont:function(t){var e=st.global,i=lt(t.fontSize,e.defaultFontSize),n={family:lt(t.fontFamily,e.defaultFontFamily),lineHeight:G.options.toLineHeight(lt(t.lineHeight,e.defaultLineHeight),i),size:i,style:lt(t.fontStyle,e.defaultFontStyle),weight:null,string:""};return n.string=function(t){return!t||G.isNullOrUndef(t.size)||G.isNullOrUndef(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}(n),n},resolve:function(t,e,i){var n,a,o;for(n=0,a=t.length;n<a;++n)if(void 0!==(o=t[n])&&(void 0!==e&&"function"==typeof o&&(o=o(e)),void 0!==i&&G.isArray(o)&&(o=o[i]),void 0!==o))return o}},ut=G,ht=$,ct=ot,ft=dt;ut.easing=ht,ut.canvas=ct,ut.options=ft;var gt=function(t){ut.extend(this,t),this.initialize.apply(this,arguments)};ut.extend(gt.prototype,{initialize:function(){this.hidden=!1},pivot:function(){var t=this;return t._view||(t._view=ut.clone(t._model)),t._start={},t},transition:function(t){var e=this,i=e._model,n=e._start,a=e._view;return i&&1!==t?(a||(a=e._view={}),n||(n=e._start={}),function(t,e,i,n){var a,o,r,s,l,d,u,h,c,f=Object.keys(i);for(a=0,o=f.length;a<o;++a)if(d=i[r=f[a]],e.hasOwnProperty(r)||(e[r]=d),(s=e[r])!==d&&"_"!==r[0]){if(t.hasOwnProperty(r)||(t[r]=s),(u=typeof d)==typeof(l=t[r]))if("string"===u){if((h=X(l)).valid&&(c=X(d)).valid){e[r]=c.mix(h,n).rgbString();continue}}else if(ut.isFinite(l)&&ut.isFinite(d)){e[r]=l+(d-l)*n;continue}e[r]=d}}(n,a,i,t),e):(e._view=i,e._start=null,e)},tooltipPosition:function(){return{x:this._model.x,y:this._model.y}},hasValue:function(){return ut.isNumber(this._model.x)&&ut.isNumber(this._model.y)}}),gt.extend=ut.inherits;var pt=gt,mt=pt.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),vt=mt;Object.defineProperty(mt.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(mt.prototype,"chartInstance",{get:function(){return this.chart},set:function(t){this.chart=t}}),st._set("global",{animation:{duration:1e3,easing:"easeOutQuart",onProgress:ut.noop,onComplete:ut.noop}});var bt={animations:[],request:null,addAnimation:function(t,e,i,n){var a,o,r=this.animations;for(e.chart=t,e.startTime=Date.now(),e.duration=i,n||(t.animating=!0),a=0,o=r.length;a<o;++a)if(r[a].chart===t)return void(r[a]=e);r.push(e),1===r.length&&this.requestAnimationFrame()},cancelAnimation:function(t){var e=ut.findIndex(this.animations,function(e){return e.chart===t});-1!==e&&(this.animations.splice(e,1),t.animating=!1)},requestAnimationFrame:function(){var t=this;null===t.request&&(t.request=ut.requestAnimFrame.call(window,function(){t.request=null,t.startDigest()}))},startDigest:function(){this.advance(),this.animations.length>0&&this.requestAnimationFrame()},advance:function(){for(var t,e,i,n,a=this.animations,o=0;o<a.length;)e=(t=a[o]).chart,i=t.numSteps,n=Math.floor((Date.now()-t.startTime)/t.duration*i)+1,t.currentStep=Math.min(n,i),ut.callback(t.render,[e,t],e),ut.callback(t.onAnimationProgress,[t],e),t.currentStep>=i?(ut.callback(t.onAnimationComplete,[t],e),e.animating=!1,a.splice(o,1)):++o}},xt=ut.options.resolve,yt=["push","pop","shift","splice","unshift"];function kt(t,e){var i=t._chartjs;if(i){var n=i.listeners,a=n.indexOf(e);-1!==a&&n.splice(a,1),n.length>0||(yt.forEach(function(e){delete t[e]}),delete t._chartjs)}}var wt=function(t,e){this.initialize(t,e)};ut.extend(wt.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){this.chart=t,this.index=e,this.linkScales(),this.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),i=t.getDataset();null!==e.xAxisID&&e.xAxisID in t.chart.scales||(e.xAxisID=i.xAxisID||t.chart.options.scales.xAxes[0].id),null!==e.yAxisID&&e.yAxisID in t.chart.scales||(e.yAxisID=i.yAxisID||t.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},_getValueScaleId:function(){return this.getMeta().yAxisID},_getIndexScaleId:function(){return this.getMeta().xAxisID},_getValueScale:function(){return this.getScaleForId(this._getValueScaleId())},_getIndexScale:function(){return this.getScaleForId(this._getIndexScaleId())},reset:function(){this.update(!0)},destroy:function(){this._data&&kt(this._data,this)},createMetaDataset:function(){var t=this.datasetElementType;return t&&new t({_chart:this.chart,_datasetIndex:this.index})},createMetaData:function(t){var e=this.dataElementType;return e&&new e({_chart:this.chart,_datasetIndex:this.index,_index:t})},addElements:function(){var t,e,i=this.getMeta(),n=this.getDataset().data||[],a=i.data;for(t=0,e=n.length;t<e;++t)a[t]=a[t]||this.createMetaData(t);i.dataset=i.dataset||this.createMetaDataset()},addElementAndReset:function(t){var e=this.createMetaData(t);this.getMeta().data.splice(t,0,e),this.updateElement(e,t,!0)},buildOrUpdateElements:function(){var t,e,i=this,n=i.getDataset(),a=n.data||(n.data=[]);i._data!==a&&(i._data&&kt(i._data,i),a&&Object.isExtensible(a)&&(e=i,(t=a)._chartjs?t._chartjs.listeners.push(e):(Object.defineProperty(t,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),yt.forEach(function(e){var i="onData"+e.charAt(0).toUpperCase()+e.slice(1),n=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:function(){var e=Array.prototype.slice.call(arguments),a=n.apply(this,e);return ut.each(t._chartjs.listeners,function(t){"function"==typeof t[i]&&t[i].apply(t,e)}),a}})}))),i._data=a),i.resyncElements()},update:ut.noop,transition:function(t){for(var e=this.getMeta(),i=e.data||[],n=i.length,a=0;a<n;++a)i[a].transition(t);e.dataset&&e.dataset.transition(t)},draw:function(){var t=this.getMeta(),e=t.data||[],i=e.length,n=0;for(t.dataset&&t.dataset.draw();n<i;++n)e[n].draw()},removeHoverStyle:function(t){ut.merge(t._model,t.$previousStyle||{}),delete t.$previousStyle},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],i=t._index,n=t.custom||{},a=t._model,o=ut.getHoverColor;t.$previousStyle={backgroundColor:a.backgroundColor,borderColor:a.borderColor,borderWidth:a.borderWidth},a.backgroundColor=xt([n.hoverBackgroundColor,e.hoverBackgroundColor,o(a.backgroundColor)],void 0,i),a.borderColor=xt([n.hoverBorderColor,e.hoverBorderColor,o(a.borderColor)],void 0,i),a.borderWidth=xt([n.hoverBorderWidth,e.hoverBorderWidth,a.borderWidth],void 0,i)},resyncElements:function(){var t=this.getMeta(),e=this.getDataset().data,i=t.data.length,n=e.length;n<i?t.data.splice(n,i-n):n>i&&this.insertElements(i,n-i)},insertElements:function(t,e){for(var i=0;i<e;++i)this.addElementAndReset(t+i)},onDataPush:function(){var t=arguments.length;this.insertElements(this.getDataset().data.length-t,t)},onDataPop:function(){this.getMeta().data.pop()},onDataShift:function(){this.getMeta().data.shift()},onDataSplice:function(t,e){this.getMeta().data.splice(t,e),this.insertElements(t,arguments.length-2)},onDataUnshift:function(){this.insertElements(0,arguments.length)}}),wt.extend=ut.inherits;var Mt=wt;st._set("global",{elements:{arc:{backgroundColor:st.global.defaultColor,borderColor:"#fff",borderWidth:2,borderAlign:"center"}}});var _t=pt.extend({inLabelRange:function(t){var e=this._view;return!!e&&Math.pow(t-e.x,2)<Math.pow(e.radius+e.hoverRadius,2)},inRange:function(t,e){var i=this._view;if(i){for(var n=ut.getAngleFromPoint(i,{x:t,y:e}),a=n.angle,o=n.distance,r=i.startAngle,s=i.endAngle;s<r;)s+=2*Math.PI;for(;a>s;)a-=2*Math.PI;for(;a<r;)a+=2*Math.PI;var l=a>=r&&a<=s,d=o>=i.innerRadius&&o<=i.outerRadius;return l&&d}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,i=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*i,y:t.y+Math.sin(e)*i}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,i=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*i,y:t.y+Math.sin(e)*i}},draw:function(){var t,e=this._chart.ctx,i=this._view,n=i.startAngle,a=i.endAngle,o="inner"===i.borderAlign?.33:0;e.save(),e.beginPath(),e.arc(i.x,i.y,Math.max(i.outerRadius-o,0),n,a),e.arc(i.x,i.y,i.innerRadius,a,n,!0),e.closePath(),e.fillStyle=i.backgroundColor,e.fill(),i.borderWidth&&("inner"===i.borderAlign?(e.beginPath(),t=o/i.outerRadius,e.arc(i.x,i.y,i.outerRadius,n-t,a+t),i.innerRadius>o?(t=o/i.innerRadius,e.arc(i.x,i.y,i.innerRadius-o,a+t,n-t,!0)):e.arc(i.x,i.y,o,a+Math.PI/2,n-Math.PI/2),e.closePath(),e.clip(),e.beginPath(),e.arc(i.x,i.y,i.outerRadius,n,a),e.arc(i.x,i.y,i.innerRadius,a,n,!0),e.closePath(),e.lineWidth=2*i.borderWidth,e.lineJoin="round"):(e.lineWidth=i.borderWidth,e.lineJoin="bevel"),e.strokeStyle=i.borderColor,e.stroke()),e.restore()}}),Ct=ut.valueOrDefault,St=st.global.defaultColor;st._set("global",{elements:{line:{tension:.4,backgroundColor:St,borderWidth:3,borderColor:St,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}});var Pt=pt.extend({draw:function(){var t,e,i,n,a=this._view,o=this._chart.ctx,r=a.spanGaps,s=this._children.slice(),l=st.global,d=l.elements.line,u=-1;for(this._loop&&s.length&&s.push(s[0]),o.save(),o.lineCap=a.borderCapStyle||d.borderCapStyle,o.setLineDash&&o.setLineDash(a.borderDash||d.borderDash),o.lineDashOffset=Ct(a.borderDashOffset,d.borderDashOffset),o.lineJoin=a.borderJoinStyle||d.borderJoinStyle,o.lineWidth=Ct(a.borderWidth,d.borderWidth),o.strokeStyle=a.borderColor||l.defaultColor,o.beginPath(),u=-1,t=0;t<s.length;++t)e=s[t],i=ut.previousItem(s,t),n=e._view,0===t?n.skip||(o.moveTo(n.x,n.y),u=t):(i=-1===u?i:s[u],n.skip||(u!==t-1&&!r||-1===u?o.moveTo(n.x,n.y):ut.canvas.lineTo(o,i._view,e._view),u=t));o.stroke(),o.restore()}}),It=ut.valueOrDefault,At=st.global.defaultColor;function Dt(t){var e=this._view;return!!e&&Math.abs(t-e.x)<e.radius+e.hitRadius}st._set("global",{elements:{point:{radius:3,pointStyle:"circle",backgroundColor:At,borderColor:At,borderWidth:1,hitRadius:1,hoverRadius:4,hoverBorderWidth:1}}});var Tt=pt.extend({inRange:function(t,e){var i=this._view;return!!i&&Math.pow(t-i.x,2)+Math.pow(e-i.y,2)<Math.pow(i.hitRadius+i.radius,2)},inLabelRange:Dt,inXRange:Dt,inYRange:function(t){var e=this._view;return!!e&&Math.abs(t-e.y)<e.radius+e.hitRadius},getCenterPoint:function(){var t=this._view;return{x:t.x,y:t.y}},getArea:function(){return Math.PI*Math.pow(this._view.radius,2)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y,padding:t.radius+t.borderWidth}},draw:function(t){var e=this._view,i=this._chart.ctx,n=e.pointStyle,a=e.rotation,o=e.radius,r=e.x,s=e.y,l=st.global,d=l.defaultColor;e.skip||(void 0===t||ut.canvas._isPointInArea(e,t))&&(i.strokeStyle=e.borderColor||d,i.lineWidth=It(e.borderWidth,l.elements.point.borderWidth),i.fillStyle=e.backgroundColor||d,ut.canvas.drawPoint(i,n,o,r,s,a))}}),Ft=st.global.defaultColor;function Lt(t){return t&&void 0!==t.width}function Rt(t){var e,i,n,a,o;return Lt(t)?(o=t.width/2,e=t.x-o,i=t.x+o,n=Math.min(t.y,t.base),a=Math.max(t.y,t.base)):(o=t.height/2,e=Math.min(t.x,t.base),i=Math.max(t.x,t.base),n=t.y-o,a=t.y+o),{left:e,top:n,right:i,bottom:a}}function Ot(t,e,i){return t===e?i:t===i?e:t}function zt(t,e,i){var n,a,o,r,s=t.borderWidth,l=function(t){var e=t.borderSkipped,i={};return e?(t.horizontal?t.base>t.x&&(e=Ot(e,"left","right")):t.base<t.y&&(e=Ot(e,"bottom","top")),i[e]=!0,i):i}(t);return ut.isObject(s)?(n=+s.top||0,a=+s.right||0,o=+s.bottom||0,r=+s.left||0):n=a=o=r=+s||0,{t:l.top||n<0?0:n>i?i:n,r:l.right||a<0?0:a>e?e:a,b:l.bottom||o<0?0:o>i?i:o,l:l.left||r<0?0:r>e?e:r}}function Bt(t,e,i){var n=null===e,a=null===i,o=!(!t||n&&a)&&Rt(t);return o&&(n||e>=o.left&&e<=o.right)&&(a||i>=o.top&&i<=o.bottom)}st._set("global",{elements:{rectangle:{backgroundColor:Ft,borderColor:Ft,borderSkipped:"bottom",borderWidth:0}}});var Nt=pt.extend({draw:function(){var t=this._chart.ctx,e=this._view,i=function(t){var e=Rt(t),i=e.right-e.left,n=e.bottom-e.top,a=zt(t,i/2,n/2);return{outer:{x:e.left,y:e.top,w:i,h:n},inner:{x:e.left+a.l,y:e.top+a.t,w:i-a.l-a.r,h:n-a.t-a.b}}}(e),n=i.outer,a=i.inner;t.fillStyle=e.backgroundColor,t.fillRect(n.x,n.y,n.w,n.h),n.w===a.w&&n.h===a.h||(t.save(),t.beginPath(),t.rect(n.x,n.y,n.w,n.h),t.clip(),t.fillStyle=e.borderColor,t.rect(a.x,a.y,a.w,a.h),t.fill("evenodd"),t.restore())},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){return Bt(this._view,t,e)},inLabelRange:function(t,e){var i=this._view;return Lt(i)?Bt(i,t,null):Bt(i,null,e)},inXRange:function(t){return Bt(this._view,t,null)},inYRange:function(t){return Bt(this._view,null,t)},getCenterPoint:function(){var t,e,i=this._view;return Lt(i)?(t=i.x,e=(i.y+i.base)/2):(t=(i.x+i.base)/2,e=i.y),{x:t,y:e}},getArea:function(){var t=this._view;return Lt(t)?t.width*Math.abs(t.y-t.base):t.height*Math.abs(t.x-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}}),Wt={},Vt=_t,Et=Pt,Ht=Tt,jt=Nt;Wt.Arc=Vt,Wt.Line=Et,Wt.Point=Ht,Wt.Rectangle=jt;var qt=ut.options.resolve;st._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}});var Yt=Mt.extend({dataElementType:Wt.Rectangle,initialize:function(){var t;Mt.prototype.initialize.apply(this,arguments),(t=this.getMeta()).stack=this.getDataset().stack,t.bar=!0},update:function(t){var e,i,n=this.getMeta().data;for(this._ruler=this.getRuler(),e=0,i=n.length;e<i;++e)this.updateElement(n[e],e,t)},updateElement:function(t,e,i){var n=this,a=n.getMeta(),o=n.getDataset(),r=n._resolveElementOptions(t,e);t._xScale=n.getScaleForId(a.xAxisID),t._yScale=n.getScaleForId(a.yAxisID),t._datasetIndex=n.index,t._index=e,t._model={backgroundColor:r.backgroundColor,borderColor:r.borderColor,borderSkipped:r.borderSkipped,borderWidth:r.borderWidth,datasetLabel:o.label,label:n.chart.data.labels[e]},n._updateElementGeometry(t,e,i),t.pivot()},_updateElementGeometry:function(t,e,i){var n=this,a=t._model,o=n._getValueScale(),r=o.getBasePixel(),s=o.isHorizontal(),l=n._ruler||n.getRuler(),d=n.calculateBarValuePixels(n.index,e),u=n.calculateBarIndexPixels(n.index,e,l);a.horizontal=s,a.base=i?r:d.base,a.x=s?i?r:d.head:u.center,a.y=s?u.center:i?r:d.head,a.height=s?u.size:void 0,a.width=s?void 0:u.size},_getStacks:function(t){var e,i,n=this.chart,a=this._getIndexScale().options.stacked,o=void 0===t?n.data.datasets.length:t+1,r=[];for(e=0;e<o;++e)(i=n.getDatasetMeta(e)).bar&&n.isDatasetVisible(e)&&(!1===a||!0===a&&-1===r.indexOf(i.stack)||void 0===a&&(void 0===i.stack||-1===r.indexOf(i.stack)))&&r.push(i.stack);return r},getStackCount:function(){return this._getStacks().length},getStackIndex:function(t,e){var i=this._getStacks(t),n=void 0!==e?i.indexOf(e):-1;return-1===n?i.length-1:n},getRuler:function(){var t,e,i=this._getIndexScale(),n=this.getStackCount(),a=this.index,o=i.isHorizontal(),r=o?i.left:i.top,s=r+(o?i.width:i.height),l=[];for(t=0,e=this.getMeta().data.length;t<e;++t)l.push(i.getPixelForValue(null,t,a));return{min:ut.isNullOrUndef(i.options.barThickness)?function(t,e){var i,n,a,o,r=t.isHorizontal()?t.width:t.height,s=t.getTicks();for(a=1,o=e.length;a<o;++a)r=Math.min(r,Math.abs(e[a]-e[a-1]));for(a=0,o=s.length;a<o;++a)n=t.getPixelForTick(a),r=a>0?Math.min(r,n-i):r,i=n;return r}(i,l):-1,pixels:l,start:r,end:s,stackCount:n,scale:i}},calculateBarValuePixels:function(t,e){var i,n,a,o,r,s,l=this.chart,d=this.getMeta(),u=this._getValueScale(),h=u.isHorizontal(),c=l.data.datasets,f=+u.getRightValue(c[t].data[e]),g=u.options.minBarLength,p=u.options.stacked,m=d.stack,v=0;if(p||void 0===p&&void 0!==m)for(i=0;i<t;++i)(n=l.getDatasetMeta(i)).bar&&n.stack===m&&n.controller._getValueScaleId()===u.id&&l.isDatasetVisible(i)&&(a=+u.getRightValue(c[i].data[e]),(f<0&&a<0||f>=0&&a>0)&&(v+=a));return o=u.getPixelForValue(v),s=(r=u.getPixelForValue(v+f))-o,void 0!==g&&Math.abs(s)<g&&(s=g,r=f>=0&&!h||f<0&&h?o-g:o+g),{size:s,base:o,head:r,center:r+s/2}},calculateBarIndexPixels:function(t,e,i){var n=i.scale.options,a="flex"===n.barThickness?function(t,e,i){var n,a=e.pixels,o=a[t],r=t>0?a[t-1]:null,s=t<a.length-1?a[t+1]:null,l=i.categoryPercentage;return null===r&&(r=o-(null===s?e.end-e.start:s-o)),null===s&&(s=o+o-r),n=o-(o-Math.min(r,s))/2*l,{chunk:Math.abs(s-r)/2*l/e.stackCount,ratio:i.barPercentage,start:n}}(e,i,n):function(t,e,i){var n,a,o=i.barThickness,r=e.stackCount,s=e.pixels[t];return ut.isNullOrUndef(o)?(n=e.min*i.categoryPercentage,a=i.barPercentage):(n=o*r,a=1),{chunk:n/r,ratio:a,start:s-n/2}}(e,i,n),o=this.getStackIndex(t,this.getMeta().stack),r=a.start+a.chunk*o+a.chunk/2,s=Math.min(ut.valueOrDefault(n.maxBarThickness,1/0),a.chunk*a.ratio);return{base:r-s/2,head:r+s/2,center:r,size:s}},draw:function(){var t=this.chart,e=this._getValueScale(),i=this.getMeta().data,n=this.getDataset(),a=i.length,o=0;for(ut.canvas.clipArea(t.ctx,t.chartArea);o<a;++o)isNaN(e.getRightValue(n.data[o]))||i[o].draw();ut.canvas.unclipArea(t.ctx)},_resolveElementOptions:function(t,e){var i,n,a,o=this.chart,r=o.data.datasets[this.index],s=t.custom||{},l=o.options.elements.rectangle,d={},u={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},h=["backgroundColor","borderColor","borderSkipped","borderWidth"];for(i=0,n=h.length;i<n;++i)d[a=h[i]]=qt([s[a],r[a],l[a]],u,e);return d}}),Ut=ut.valueOrDefault,Xt=ut.options.resolve;st._set("bubble",{hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-0"}],yAxes:[{type:"linear",position:"left",id:"y-axis-0"}]},tooltips:{callbacks:{title:function(){return""},label:function(t,e){var i=e.datasets[t.datasetIndex].label||"",n=e.datasets[t.datasetIndex].data[t.index];return i+": ("+t.xLabel+", "+t.yLabel+", "+n.r+")"}}}});var Kt=Mt.extend({dataElementType:Wt.Point,update:function(t){var e=this,i=e.getMeta().data;ut.each(i,function(i,n){e.updateElement(i,n,t)})},updateElement:function(t,e,i){var n=this,a=n.getMeta(),o=t.custom||{},r=n.getScaleForId(a.xAxisID),s=n.getScaleForId(a.yAxisID),l=n._resolveElementOptions(t,e),d=n.getDataset().data[e],u=n.index,h=i?r.getPixelForDecimal(.5):r.getPixelForValue("object"==typeof d?d:NaN,e,u),c=i?s.getBasePixel():s.getPixelForValue(d,e,u);t._xScale=r,t._yScale=s,t._options=l,t._datasetIndex=u,t._index=e,t._model={backgroundColor:l.backgroundColor,borderColor:l.borderColor,borderWidth:l.borderWidth,hitRadius:l.hitRadius,pointStyle:l.pointStyle,rotation:l.rotation,radius:i?0:l.radius,skip:o.skip||isNaN(h)||isNaN(c),x:h,y:c},t.pivot()},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth,radius:e.radius},e.backgroundColor=Ut(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=Ut(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=Ut(i.hoverBorderWidth,i.borderWidth),e.radius=i.radius+i.hoverRadius},_resolveElementOptions:function(t,e){var i,n,a,o=this.chart,r=o.data.datasets[this.index],s=t.custom||{},l=o.options.elements.point,d=r.data[e],u={},h={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},c=["backgroundColor","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","hoverRadius","hitRadius","pointStyle","rotation"];for(i=0,n=c.length;i<n;++i)u[a=c[i]]=Xt([s[a],r[a],l[a]],h,e);return u.radius=Xt([s.radius,d?d.r:void 0,r.radius,l.radius],h,e),u}}),Gt=ut.options.resolve,Zt=ut.valueOrDefault;st._set("doughnut",{animation:{animateRotate:!0,animateScale:!1},hover:{mode:"single"},legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var i=t.data,n=i.datasets,a=i.labels;if(n.length)for(var o=0;o<n[0].data.length;++o)e.push('<li><span style="background-color:'+n[0].backgroundColor[o]+'"></span>'),a[o]&&e.push(a[o]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(i,n){var a=t.getDatasetMeta(0),o=e.datasets[0],r=a.data[n],s=r&&r.custom||{},l=t.options.elements.arc;return{text:i,fillStyle:Gt([s.backgroundColor,o.backgroundColor,l.backgroundColor],void 0,n),strokeStyle:Gt([s.borderColor,o.borderColor,l.borderColor],void 0,n),lineWidth:Gt([s.borderWidth,o.borderWidth,l.borderWidth],void 0,n),hidden:isNaN(o.data[n])||a.data[n].hidden,index:n}}):[]}},onClick:function(t,e){var i,n,a,o=e.index,r=this.chart;for(i=0,n=(r.data.datasets||[]).length;i<n;++i)(a=r.getDatasetMeta(i)).data[o]&&(a.data[o].hidden=!a.data[o].hidden);r.update()}},cutoutPercentage:50,rotation:-.5*Math.PI,circumference:2*Math.PI,tooltips:{callbacks:{title:function(){return""},label:function(t,e){var i=e.labels[t.index],n=": "+e.datasets[t.datasetIndex].data[t.index];return ut.isArray(i)?(i=i.slice())[0]+=n:i+=n,i}}}});var $t=Mt.extend({dataElementType:Wt.Arc,linkScales:ut.noop,getRingIndex:function(t){for(var e=0,i=0;i<t;++i)this.chart.isDatasetVisible(i)&&++e;return e},update:function(t){var e,i,n=this,a=n.chart,o=a.chartArea,r=a.options,s=o.right-o.left,l=o.bottom-o.top,d=Math.min(s,l),u={x:0,y:0},h=n.getMeta(),c=h.data,f=r.cutoutPercentage,g=r.circumference,p=n._getRingWeight(n.index);if(g<2*Math.PI){var m=r.rotation%(2*Math.PI),v=(m+=2*Math.PI*(m>=Math.PI?-1:m<-Math.PI?1:0))+g,b={x:Math.cos(m),y:Math.sin(m)},x={x:Math.cos(v),y:Math.sin(v)},y=m<=0&&v>=0||m<=2*Math.PI&&2*Math.PI<=v,k=m<=.5*Math.PI&&.5*Math.PI<=v||m<=2.5*Math.PI&&2.5*Math.PI<=v,w=m<=-Math.PI&&-Math.PI<=v||m<=Math.PI&&Math.PI<=v,M=m<=.5*-Math.PI&&.5*-Math.PI<=v||m<=1.5*Math.PI&&1.5*Math.PI<=v,_=f/100,C={x:w?-1:Math.min(b.x*(b.x<0?1:_),x.x*(x.x<0?1:_)),y:M?-1:Math.min(b.y*(b.y<0?1:_),x.y*(x.y<0?1:_))},S={x:y?1:Math.max(b.x*(b.x>0?1:_),x.x*(x.x>0?1:_)),y:k?1:Math.max(b.y*(b.y>0?1:_),x.y*(x.y>0?1:_))},P={width:.5*(S.x-C.x),height:.5*(S.y-C.y)};d=Math.min(s/P.width,l/P.height),u={x:-.5*(S.x+C.x),y:-.5*(S.y+C.y)}}for(e=0,i=c.length;e<i;++e)c[e]._options=n._resolveElementOptions(c[e],e);for(a.borderWidth=n.getMaxBorderWidth(),a.outerRadius=Math.max((d-a.borderWidth)/2,0),a.innerRadius=Math.max(f?a.outerRadius/100*f:0,0),a.radiusLength=(a.outerRadius-a.innerRadius)/(n._getVisibleDatasetWeightTotal()||1),a.offsetX=u.x*a.outerRadius,a.offsetY=u.y*a.outerRadius,h.total=n.calculateTotal(),n.outerRadius=a.outerRadius-a.radiusLength*n._getRingWeightOffset(n.index),n.innerRadius=Math.max(n.outerRadius-a.radiusLength*p,0),e=0,i=c.length;e<i;++e)n.updateElement(c[e],e,t)},updateElement:function(t,e,i){var n=this,a=n.chart,o=a.chartArea,r=a.options,s=r.animation,l=(o.left+o.right)/2,d=(o.top+o.bottom)/2,u=r.rotation,h=r.rotation,c=n.getDataset(),f=i&&s.animateRotate?0:t.hidden?0:n.calculateCircumference(c.data[e])*(r.circumference/(2*Math.PI)),g=i&&s.animateScale?0:n.innerRadius,p=i&&s.animateScale?0:n.outerRadius,m=t._options||{};ut.extend(t,{_datasetIndex:n.index,_index:e,_model:{backgroundColor:m.backgroundColor,borderColor:m.borderColor,borderWidth:m.borderWidth,borderAlign:m.borderAlign,x:l+a.offsetX,y:d+a.offsetY,startAngle:u,endAngle:h,circumference:f,outerRadius:p,innerRadius:g,label:ut.valueAtIndexOrDefault(c.label,e,a.data.labels[e])}});var v=t._model;i&&s.animateRotate||(v.startAngle=0===e?r.rotation:n.getMeta().data[e-1]._model.endAngle,v.endAngle=v.startAngle+v.circumference),t.pivot()},calculateTotal:function(){var t,e=this.getDataset(),i=this.getMeta(),n=0;return ut.each(i.data,function(i,a){t=e.data[a],isNaN(t)||i.hidden||(n+=Math.abs(t))}),n},calculateCircumference:function(t){var e=this.getMeta().total;return e>0&&!isNaN(t)?2*Math.PI*(Math.abs(t)/e):0},getMaxBorderWidth:function(t){var e,i,n,a,o,r,s,l,d=0,u=this.chart;if(!t)for(e=0,i=u.data.datasets.length;e<i;++e)if(u.isDatasetVisible(e)){t=(n=u.getDatasetMeta(e)).data,e!==this.index&&(o=n.controller);break}if(!t)return 0;for(e=0,i=t.length;e<i;++e)a=t[e],"inner"!==(r=o?o._resolveElementOptions(a,e):a._options).borderAlign&&(s=r.borderWidth,d=(l=r.hoverBorderWidth)>(d=s>d?s:d)?l:d);return d},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth},e.backgroundColor=Zt(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=Zt(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=Zt(i.hoverBorderWidth,i.borderWidth)},_resolveElementOptions:function(t,e){var i,n,a,o=this.chart,r=this.getDataset(),s=t.custom||{},l=o.options.elements.arc,d={},u={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},h=["backgroundColor","borderColor","borderWidth","borderAlign","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth"];for(i=0,n=h.length;i<n;++i)d[a=h[i]]=Gt([s[a],r[a],l[a]],u,e);return d},_getRingWeightOffset:function(t){for(var e=0,i=0;i<t;++i)this.chart.isDatasetVisible(i)&&(e+=this._getRingWeight(i));return e},_getRingWeight:function(t){return Math.max(Zt(this.chart.data.datasets[t].weight,1),0)},_getVisibleDatasetWeightTotal:function(){return this._getRingWeightOffset(this.chart.data.datasets.length)}});st._set("horizontalBar",{hover:{mode:"index",axis:"y"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{type:"category",position:"left",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{mode:"index",axis:"y"}});var Jt=Yt.extend({_getValueScaleId:function(){return this.getMeta().xAxisID},_getIndexScaleId:function(){return this.getMeta().yAxisID}}),Qt=ut.valueOrDefault,te=ut.options.resolve,ee=ut.canvas._isPointInArea;function ie(t,e){return Qt(t.showLine,e.showLines)}st._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}});var ne=Mt.extend({datasetElementType:Wt.Line,dataElementType:Wt.Point,update:function(t){var e,i,n=this,a=n.getMeta(),o=a.dataset,r=a.data||[],s=n.getScaleForId(a.yAxisID),l=n.getDataset(),d=ie(l,n.chart.options);for(d&&(void 0!==l.tension&&void 0===l.lineTension&&(l.lineTension=l.tension),o._scale=s,o._datasetIndex=n.index,o._children=r,o._model=n._resolveLineOptions(o),o.pivot()),e=0,i=r.length;e<i;++e)n.updateElement(r[e],e,t);for(d&&0!==o._model.tension&&n.updateBezierControlPoints(),e=0,i=r.length;e<i;++e)r[e].pivot()},updateElement:function(t,e,i){var n,a,o=this,r=o.getMeta(),s=t.custom||{},l=o.getDataset(),d=o.index,u=l.data[e],h=o.getScaleForId(r.yAxisID),c=o.getScaleForId(r.xAxisID),f=r.dataset._model,g=o._resolvePointOptions(t,e);n=c.getPixelForValue("object"==typeof u?u:NaN,e,d),a=i?h.getBasePixel():o.calculatePointY(u,e,d),t._xScale=c,t._yScale=h,t._options=g,t._datasetIndex=d,t._index=e,t._model={x:n,y:a,skip:s.skip||isNaN(n)||isNaN(a),radius:g.radius,pointStyle:g.pointStyle,rotation:g.rotation,backgroundColor:g.backgroundColor,borderColor:g.borderColor,borderWidth:g.borderWidth,tension:Qt(s.tension,f?f.tension:0),steppedLine:!!f&&f.steppedLine,hitRadius:g.hitRadius}},_resolvePointOptions:function(t,e){var i,n,a,o=this.chart,r=o.data.datasets[this.index],s=t.custom||{},l=o.options.elements.point,d={},u={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},h={backgroundColor:"pointBackgroundColor",borderColor:"pointBorderColor",borderWidth:"pointBorderWidth",hitRadius:"pointHitRadius",hoverBackgroundColor:"pointHoverBackgroundColor",hoverBorderColor:"pointHoverBorderColor",hoverBorderWidth:"pointHoverBorderWidth",hoverRadius:"pointHoverRadius",pointStyle:"pointStyle",radius:"pointRadius",rotation:"pointRotation"},c=Object.keys(h);for(i=0,n=c.length;i<n;++i)d[a=c[i]]=te([s[a],r[h[a]],r[a],l[a]],u,e);return d},_resolveLineOptions:function(t){var e,i,n,a=this.chart,o=a.data.datasets[this.index],r=t.custom||{},s=a.options,l=s.elements.line,d={},u=["backgroundColor","borderWidth","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","fill","cubicInterpolationMode"];for(e=0,i=u.length;e<i;++e)d[n=u[e]]=te([r[n],o[n],l[n]]);return d.spanGaps=Qt(o.spanGaps,s.spanGaps),d.tension=Qt(o.lineTension,l.tension),d.steppedLine=te([r.steppedLine,o.steppedLine,l.stepped]),d},calculatePointY:function(t,e,i){var n,a,o,r=this.chart,s=this.getMeta(),l=this.getScaleForId(s.yAxisID),d=0,u=0;if(l.options.stacked){for(n=0;n<i;n++)if(a=r.data.datasets[n],"line"===(o=r.getDatasetMeta(n)).type&&o.yAxisID===l.id&&r.isDatasetVisible(n)){var h=Number(l.getRightValue(a.data[e]));h<0?u+=h||0:d+=h||0}var c=Number(l.getRightValue(t));return c<0?l.getPixelForValue(u+c):l.getPixelForValue(d+c)}return l.getPixelForValue(t)},updateBezierControlPoints:function(){var t,e,i,n,a=this.chart,o=this.getMeta(),r=o.dataset._model,s=a.chartArea,l=o.data||[];function d(t,e,i){return Math.max(Math.min(t,i),e)}if(r.spanGaps&&(l=l.filter(function(t){return!t._model.skip})),"monotone"===r.cubicInterpolationMode)ut.splineCurveMonotone(l);else for(t=0,e=l.length;t<e;++t)i=l[t]._model,n=ut.splineCurve(ut.previousItem(l,t)._model,i,ut.nextItem(l,t)._model,r.tension),i.controlPointPreviousX=n.previous.x,i.controlPointPreviousY=n.previous.y,i.controlPointNextX=n.next.x,i.controlPointNextY=n.next.y;if(a.options.elements.line.capBezierPoints)for(t=0,e=l.length;t<e;++t)i=l[t]._model,ee(i,s)&&(t>0&&ee(l[t-1]._model,s)&&(i.controlPointPreviousX=d(i.controlPointPreviousX,s.left,s.right),i.controlPointPreviousY=d(i.controlPointPreviousY,s.top,s.bottom)),t<l.length-1&&ee(l[t+1]._model,s)&&(i.controlPointNextX=d(i.controlPointNextX,s.left,s.right),i.controlPointNextY=d(i.controlPointNextY,s.top,s.bottom)))},draw:function(){var t,e=this.chart,i=this.getMeta(),n=i.data||[],a=e.chartArea,o=n.length,r=0;for(ie(this.getDataset(),e.options)&&(t=(i.dataset._model.borderWidth||0)/2,ut.canvas.clipArea(e.ctx,{left:a.left,right:a.right,top:a.top-t,bottom:a.bottom+t}),i.dataset.draw(),ut.canvas.unclipArea(e.ctx));r<o;++r)n[r].draw(a)},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth,radius:e.radius},e.backgroundColor=Qt(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=Qt(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=Qt(i.hoverBorderWidth,i.borderWidth),e.radius=Qt(i.hoverRadius,i.radius)}}),ae=ut.options.resolve;st._set("polarArea",{scale:{type:"radialLinear",angleLines:{display:!1},gridLines:{circular:!0},pointLabels:{display:!1},ticks:{beginAtZero:!0}},animation:{animateRotate:!0,animateScale:!0},startAngle:-.5*Math.PI,legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var i=t.data,n=i.datasets,a=i.labels;if(n.length)for(var o=0;o<n[0].data.length;++o)e.push('<li><span style="background-color:'+n[0].backgroundColor[o]+'"></span>'),a[o]&&e.push(a[o]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(i,n){var a=t.getDatasetMeta(0),o=e.datasets[0],r=a.data[n].custom||{},s=t.options.elements.arc;return{text:i,fillStyle:ae([r.backgroundColor,o.backgroundColor,s.backgroundColor],void 0,n),strokeStyle:ae([r.borderColor,o.borderColor,s.borderColor],void 0,n),lineWidth:ae([r.borderWidth,o.borderWidth,s.borderWidth],void 0,n),hidden:isNaN(o.data[n])||a.data[n].hidden,index:n}}):[]}},onClick:function(t,e){var i,n,a,o=e.index,r=this.chart;for(i=0,n=(r.data.datasets||[]).length;i<n;++i)(a=r.getDatasetMeta(i)).data[o].hidden=!a.data[o].hidden;r.update()}},tooltips:{callbacks:{title:function(){return""},label:function(t,e){return e.labels[t.index]+": "+t.yLabel}}}});var oe=Mt.extend({dataElementType:Wt.Arc,linkScales:ut.noop,update:function(t){var e,i,n,a=this,o=a.getDataset(),r=a.getMeta(),s=a.chart.options.startAngle||0,l=a._starts=[],d=a._angles=[],u=r.data;for(a._updateRadius(),r.count=a.countVisibleElements(),e=0,i=o.data.length;e<i;e++)l[e]=s,n=a._computeAngle(e),d[e]=n,s+=n;for(e=0,i=u.length;e<i;++e)u[e]._options=a._resolveElementOptions(u[e],e),a.updateElement(u[e],e,t)},_updateRadius:function(){var t=this,e=t.chart,i=e.chartArea,n=e.options,a=Math.min(i.right-i.left,i.bottom-i.top);e.outerRadius=Math.max(a/2,0),e.innerRadius=Math.max(n.cutoutPercentage?e.outerRadius/100*n.cutoutPercentage:1,0),e.radiusLength=(e.outerRadius-e.innerRadius)/e.getVisibleDatasetCount(),t.outerRadius=e.outerRadius-e.radiusLength*t.index,t.innerRadius=t.outerRadius-e.radiusLength},updateElement:function(t,e,i){var n=this,a=n.chart,o=n.getDataset(),r=a.options,s=r.animation,l=a.scale,d=a.data.labels,u=l.xCenter,h=l.yCenter,c=r.startAngle,f=t.hidden?0:l.getDistanceFromCenterForValue(o.data[e]),g=n._starts[e],p=g+(t.hidden?0:n._angles[e]),m=s.animateScale?0:l.getDistanceFromCenterForValue(o.data[e]),v=t._options||{};ut.extend(t,{_datasetIndex:n.index,_index:e,_scale:l,_model:{backgroundColor:v.backgroundColor,borderColor:v.borderColor,borderWidth:v.borderWidth,borderAlign:v.borderAlign,x:u,y:h,innerRadius:0,outerRadius:i?m:f,startAngle:i&&s.animateRotate?c:g,endAngle:i&&s.animateRotate?c:p,label:ut.valueAtIndexOrDefault(d,e,d[e])}}),t.pivot()},countVisibleElements:function(){var t=this.getDataset(),e=this.getMeta(),i=0;return ut.each(e.data,function(e,n){isNaN(t.data[n])||e.hidden||i++}),i},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor,a=ut.valueOrDefault;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth},e.backgroundColor=a(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=a(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=a(i.hoverBorderWidth,i.borderWidth)},_resolveElementOptions:function(t,e){var i,n,a,o=this.chart,r=this.getDataset(),s=t.custom||{},l=o.options.elements.arc,d={},u={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},h=["backgroundColor","borderColor","borderWidth","borderAlign","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth"];for(i=0,n=h.length;i<n;++i)d[a=h[i]]=ae([s[a],r[a],l[a]],u,e);return d},_computeAngle:function(t){var e=this,i=this.getMeta().count,n=e.getDataset(),a=e.getMeta();if(isNaN(n.data[t])||a.data[t].hidden)return 0;var o={chart:e.chart,dataIndex:t,dataset:n,datasetIndex:e.index};return ae([e.chart.options.elements.arc.angle,2*Math.PI/i],o,t)}});st._set("pie",ut.clone(st.doughnut)),st._set("pie",{cutoutPercentage:0});var re=$t,se=ut.valueOrDefault,le=ut.options.resolve;st._set("radar",{scale:{type:"radialLinear"},elements:{line:{tension:0}}});var de=Mt.extend({datasetElementType:Wt.Line,dataElementType:Wt.Point,linkScales:ut.noop,update:function(t){var e,i,n=this,a=n.getMeta(),o=a.dataset,r=a.data||[],s=n.chart.scale,l=n.getDataset();for(void 0!==l.tension&&void 0===l.lineTension&&(l.lineTension=l.tension),o._scale=s,o._datasetIndex=n.index,o._children=r,o._loop=!0,o._model=n._resolveLineOptions(o),o.pivot(),e=0,i=r.length;e<i;++e)n.updateElement(r[e],e,t);for(n.updateBezierControlPoints(),e=0,i=r.length;e<i;++e)r[e].pivot()},updateElement:function(t,e,i){var n=this,a=t.custom||{},o=n.getDataset(),r=n.chart.scale,s=r.getPointPositionForValue(e,o.data[e]),l=n._resolvePointOptions(t,e),d=n.getMeta().dataset._model,u=i?r.xCenter:s.x,h=i?r.yCenter:s.y;t._scale=r,t._options=l,t._datasetIndex=n.index,t._index=e,t._model={x:u,y:h,skip:a.skip||isNaN(u)||isNaN(h),radius:l.radius,pointStyle:l.pointStyle,rotation:l.rotation,backgroundColor:l.backgroundColor,borderColor:l.borderColor,borderWidth:l.borderWidth,tension:se(a.tension,d?d.tension:0),hitRadius:l.hitRadius}},_resolvePointOptions:function(t,e){var i,n,a,o=this.chart,r=o.data.datasets[this.index],s=t.custom||{},l=o.options.elements.point,d={},u={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},h={backgroundColor:"pointBackgroundColor",borderColor:"pointBorderColor",borderWidth:"pointBorderWidth",hitRadius:"pointHitRadius",hoverBackgroundColor:"pointHoverBackgroundColor",hoverBorderColor:"pointHoverBorderColor",hoverBorderWidth:"pointHoverBorderWidth",hoverRadius:"pointHoverRadius",pointStyle:"pointStyle",radius:"pointRadius",rotation:"pointRotation"},c=Object.keys(h);for(i=0,n=c.length;i<n;++i)d[a=c[i]]=le([s[a],r[h[a]],r[a],l[a]],u,e);return d},_resolveLineOptions:function(t){var e,i,n,a=this.chart,o=a.data.datasets[this.index],r=t.custom||{},s=a.options.elements.line,l={},d=["backgroundColor","borderWidth","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","fill"];for(e=0,i=d.length;e<i;++e)l[n=d[e]]=le([r[n],o[n],s[n]]);return l.tension=se(o.lineTension,s.tension),l},updateBezierControlPoints:function(){var t,e,i,n,a=this.getMeta(),o=this.chart.chartArea,r=a.data||[];function s(t,e,i){return Math.max(Math.min(t,i),e)}for(t=0,e=r.length;t<e;++t)i=r[t]._model,n=ut.splineCurve(ut.previousItem(r,t,!0)._model,i,ut.nextItem(r,t,!0)._model,i.tension),i.controlPointPreviousX=s(n.previous.x,o.left,o.right),i.controlPointPreviousY=s(n.previous.y,o.top,o.bottom),i.controlPointNextX=s(n.next.x,o.left,o.right),i.controlPointNextY=s(n.next.y,o.top,o.bottom)},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth,radius:e.radius},e.backgroundColor=se(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=se(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=se(i.hoverBorderWidth,i.borderWidth),e.radius=se(i.hoverRadius,i.radius)}});st._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},showLines:!1,tooltips:{callbacks:{title:function(){return""},label:function(t){return"("+t.xLabel+", "+t.yLabel+")"}}}});var ue={bar:Yt,bubble:Kt,doughnut:$t,horizontalBar:Jt,line:ne,polarArea:oe,pie:re,radar:de,scatter:ne};function he(t,e){return t.native?{x:t.x,y:t.y}:ut.getRelativePosition(t,e)}function ce(t,e){var i,n,a,o,r;for(n=0,o=t.data.datasets.length;n<o;++n)if(t.isDatasetVisible(n))for(a=0,r=(i=t.getDatasetMeta(n)).data.length;a<r;++a){var s=i.data[a];s._view.skip||e(s)}}function fe(t,e){var i=[];return ce(t,function(t){t.inRange(e.x,e.y)&&i.push(t)}),i}function ge(t,e,i,n){var a=Number.POSITIVE_INFINITY,o=[];return ce(t,function(t){if(!i||t.inRange(e.x,e.y)){var r=t.getCenterPoint(),s=n(e,r);s<a?(o=[t],a=s):s===a&&o.push(t)}}),o}function pe(t){var e=-1!==t.indexOf("x"),i=-1!==t.indexOf("y");return function(t,n){var a=e?Math.abs(t.x-n.x):0,o=i?Math.abs(t.y-n.y):0;return Math.sqrt(Math.pow(a,2)+Math.pow(o,2))}}function me(t,e,i){var n=he(e,t);i.axis=i.axis||"x";var a=pe(i.axis),o=i.intersect?fe(t,n):ge(t,n,!1,a),r=[];return o.length?(t.data.datasets.forEach(function(e,i){if(t.isDatasetVisible(i)){var n=t.getDatasetMeta(i).data[o[0]._index];n&&!n._view.skip&&r.push(n)}}),r):[]}var ve={modes:{single:function(t,e){var i=he(e,t),n=[];return ce(t,function(t){if(t.inRange(i.x,i.y))return n.push(t),n}),n.slice(0,1)},label:me,index:me,dataset:function(t,e,i){var n=he(e,t);i.axis=i.axis||"xy";var a=pe(i.axis),o=i.intersect?fe(t,n):ge(t,n,!1,a);return o.length>0&&(o=t.getDatasetMeta(o[0]._datasetIndex).data),o},"x-axis":function(t,e){return me(t,e,{intersect:!1})},point:function(t,e){return fe(t,he(e,t))},nearest:function(t,e,i){var n=he(e,t);i.axis=i.axis||"xy";var a=pe(i.axis);return ge(t,n,i.intersect,a)},x:function(t,e,i){var n=he(e,t),a=[],o=!1;return ce(t,function(t){t.inXRange(n.x)&&a.push(t),t.inRange(n.x,n.y)&&(o=!0)}),i.intersect&&!o&&(a=[]),a},y:function(t,e,i){var n=he(e,t),a=[],o=!1;return ce(t,function(t){t.inYRange(n.y)&&a.push(t),t.inRange(n.x,n.y)&&(o=!0)}),i.intersect&&!o&&(a=[]),a}}};function be(t,e){return ut.where(t,function(t){return t.position===e})}function xe(t,e){t.forEach(function(t,e){return t._tmpIndex_=e,t}),t.sort(function(t,i){var n=e?i:t,a=e?t:i;return n.weight===a.weight?n._tmpIndex_-a._tmpIndex_:n.weight-a.weight}),t.forEach(function(t){delete t._tmpIndex_})}function ye(t,e){ut.each(t,function(t){e[t.position]+=t.isHorizontal()?t.height:t.width})}st._set("global",{layout:{padding:{top:0,right:0,bottom:0,left:0}}});var ke={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),e.fullWidth=e.fullWidth||!1,e.position=e.position||"top",e.weight=e.weight||0,t.boxes.push(e)},removeBox:function(t,e){var i=t.boxes?t.boxes.indexOf(e):-1;-1!==i&&t.boxes.splice(i,1)},configure:function(t,e,i){for(var n,a=["fullWidth","position","weight"],o=a.length,r=0;r<o;++r)n=a[r],i.hasOwnProperty(n)&&(e[n]=i[n])},update:function(t,e,i){if(t){var n=t.options.layout||{},a=ut.options.toPadding(n.padding),o=a.left,r=a.right,s=a.top,l=a.bottom,d=be(t.boxes,"left"),u=be(t.boxes,"right"),h=be(t.boxes,"top"),c=be(t.boxes,"bottom"),f=be(t.boxes,"chartArea");xe(d,!0),xe(u,!1),xe(h,!0),xe(c,!1);var g,p=d.concat(u),m=h.concat(c),v=p.concat(m),b=e-o-r,x=i-s-l,y=(e-b/2)/p.length,k=b,w=x,M={top:s,left:o,bottom:l,right:r},_=[];ut.each(v,function(t){var e,i=t.isHorizontal();i?(e=t.update(t.fullWidth?b:k,x/2),w-=e.height):(e=t.update(y,w),k-=e.width),_.push({horizontal:i,width:e.width,box:t})}),g=function(t){var e=0,i=0,n=0,a=0;return ut.each(t,function(t){if(t.getPadding){var o=t.getPadding();e=Math.max(e,o.top),i=Math.max(i,o.left),n=Math.max(n,o.bottom),a=Math.max(a,o.right)}}),{top:e,left:i,bottom:n,right:a}}(v),ut.each(p,T),ye(p,M),ut.each(m,T),ye(m,M),ut.each(p,function(t){var e=ut.findNextWhere(_,function(e){return e.box===t}),i={left:0,right:0,top:M.top,bottom:M.bottom};e&&t.update(e.width,w,i)}),ye(v,M={top:s,left:o,bottom:l,right:r});var C=Math.max(g.left-M.left,0);M.left+=C,M.right+=Math.max(g.right-M.right,0);var S=Math.max(g.top-M.top,0);M.top+=S,M.bottom+=Math.max(g.bottom-M.bottom,0);var P=i-M.top-M.bottom,I=e-M.left-M.right;I===k&&P===w||(ut.each(p,function(t){t.height=P}),ut.each(m,function(t){t.fullWidth||(t.width=I)}),w=P,k=I);var A=o+C,D=s+S;ut.each(d.concat(h),F),A+=k,D+=w,ut.each(u,F),ut.each(c,F),t.chartArea={left:M.left,top:M.top,right:M.left+k,bottom:M.top+w},ut.each(f,function(e){e.left=t.chartArea.left,e.top=t.chartArea.top,e.right=t.chartArea.right,e.bottom=t.chartArea.bottom,e.update(k,w)})}function T(t){var e=ut.findNextWhere(_,function(e){return e.box===t});if(e)if(e.horizontal){var i={left:Math.max(M.left,g.left),right:Math.max(M.right,g.right),top:0,bottom:0};t.update(t.fullWidth?b:k,x/2,i)}else t.update(e.width,w)}function F(t){t.isHorizontal()?(t.left=t.fullWidth?o:M.left,t.right=t.fullWidth?e-r:M.left+k,t.top=D,t.bottom=D+t.height,D=t.bottom):(t.left=A,t.right=A+t.width,t.top=M.top,t.bottom=M.top+w,A=t.right)}}};var we,Me=(we=Object.freeze({default:"@keyframes chartjs-render-animation{from{opacity:.99}to{opacity:1}}.chartjs-render-monitor{animation:chartjs-render-animation 1ms}.chartjs-size-monitor,.chartjs-size-monitor-expand,.chartjs-size-monitor-shrink{position:absolute;direction:ltr;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1}.chartjs-size-monitor-expand>div{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0}"}))&&we.default||we,_e="$chartjs",Ce="chartjs-size-monitor",Se="chartjs-render-monitor",Pe="chartjs-render-animation",Ie=["animationstart","webkitAnimationStart"],Ae={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function De(t,e){var i=ut.getStyle(t,e),n=i&&i.match(/^(\d+)(\.\d+)?px$/);return n?Number(n[1]):void 0}var Te=!!function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("e",null,e)}catch(t){}return t}()&&{passive:!0};function Fe(t,e,i){t.addEventListener(e,i,Te)}function Le(t,e,i){t.removeEventListener(e,i,Te)}function Re(t,e,i,n,a){return{type:t,chart:e,native:a||null,x:void 0!==i?i:null,y:void 0!==n?n:null}}function Oe(t){var e=document.createElement("div");return e.className=t||"",e}function ze(t,e,i){var n,a,o,r,s=t[_e]||(t[_e]={}),l=s.resizer=function(t){var e=Oe(Ce),i=Oe(Ce+"-expand"),n=Oe(Ce+"-shrink");i.appendChild(Oe()),n.appendChild(Oe()),e.appendChild(i),e.appendChild(n),e._reset=function(){i.scrollLeft=1e6,i.scrollTop=1e6,n.scrollLeft=1e6,n.scrollTop=1e6};var a=function(){e._reset(),t()};return Fe(i,"scroll",a.bind(i,"expand")),Fe(n,"scroll",a.bind(n,"shrink")),e}((n=function(){if(s.resizer){var n=i.options.maintainAspectRatio&&t.parentNode,a=n?n.clientWidth:0;e(Re("resize",i)),n&&n.clientWidth<a&&i.canvas&&e(Re("resize",i))}},o=!1,r=[],function(){r=Array.prototype.slice.call(arguments),a=a||this,o||(o=!0,ut.requestAnimFrame.call(window,function(){o=!1,n.apply(a,r)}))}));!function(t,e){var i=t[_e]||(t[_e]={}),n=i.renderProxy=function(t){t.animationName===Pe&&e()};ut.each(Ie,function(e){Fe(t,e,n)}),i.reflow=!!t.offsetParent,t.classList.add(Se)}(t,function(){if(s.resizer){var e=t.parentNode;e&&e!==l.parentNode&&e.insertBefore(l,e.firstChild),l._reset()}})}function Be(t){var e=t[_e]||{},i=e.resizer;delete e.resizer,function(t){var e=t[_e]||{},i=e.renderProxy;i&&(ut.each(Ie,function(e){Le(t,e,i)}),delete e.renderProxy),t.classList.remove(Se)}(t),i&&i.parentNode&&i.parentNode.removeChild(i)}var Ne={disableCSSInjection:!1,_enabled:"undefined"!=typeof window&&"undefined"!=typeof document,_ensureLoaded:function(){var t,e,i;this._loaded||(this._loaded=!0,this.disableCSSInjection||(e=Me,i=(t=this)._style||document.createElement("style"),t._style||(t._style=i,e="/* Chart.js */\n"+e,i.setAttribute("type","text/css"),document.getElementsByTagName("head")[0].appendChild(i)),i.appendChild(document.createTextNode(e))))},acquireContext:function(t,e){"string"==typeof t?t=document.getElementById(t):t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas);var i=t&&t.getContext&&t.getContext("2d");return this._ensureLoaded(),i&&i.canvas===t?(function(t,e){var i=t.style,n=t.getAttribute("height"),a=t.getAttribute("width");if(t[_e]={initial:{height:n,width:a,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||"block",null===a||""===a){var o=De(t,"width");void 0!==o&&(t.width=o)}if(null===n||""===n)if(""===t.style.height)t.height=t.width/(e.options.aspectRatio||2);else{var r=De(t,"height");void 0!==o&&(t.height=r)}}(t,e),i):null},releaseContext:function(t){var e=t.canvas;if(e[_e]){var i=e[_e].initial;["height","width"].forEach(function(t){var n=i[t];ut.isNullOrUndef(n)?e.removeAttribute(t):e.setAttribute(t,n)}),ut.each(i.style||{},function(t,i){e.style[i]=t}),e.width=e.width,delete e[_e]}},addEventListener:function(t,e,i){var n=t.canvas;if("resize"!==e){var a=i[_e]||(i[_e]={});Fe(n,e,(a.proxies||(a.proxies={}))[t.id+"_"+e]=function(e){i(function(t,e){var i=Ae[t.type]||t.type,n=ut.getRelativePosition(t,e);return Re(i,e,n.x,n.y,t)}(e,t))})}else ze(n,i,t)},removeEventListener:function(t,e,i){var n=t.canvas;if("resize"!==e){var a=((i[_e]||{}).proxies||{})[t.id+"_"+e];a&&Le(n,e,a)}else Be(n)}};ut.addEvent=Fe,ut.removeEvent=Le;var We=Ne._enabled?Ne:{acquireContext:function(t){return t&&t.canvas&&(t=t.canvas),t&&t.getContext("2d")||null}},Ve=ut.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},We);st._set("global",{plugins:{}});var Ee={_plugins:[],_cacheId:0,register:function(t){var e=this._plugins;[].concat(t).forEach(function(t){-1===e.indexOf(t)&&e.push(t)}),this._cacheId++},unregister:function(t){var e=this._plugins;[].concat(t).forEach(function(t){var i=e.indexOf(t);-1!==i&&e.splice(i,1)}),this._cacheId++},clear:function(){this._plugins=[],this._cacheId++},count:function(){return this._plugins.length},getAll:function(){return this._plugins},notify:function(t,e,i){var n,a,o,r,s,l=this.descriptors(t),d=l.length;for(n=0;n<d;++n)if("function"==typeof(s=(o=(a=l[n]).plugin)[e])&&((r=[t].concat(i||[])).push(a.options),!1===s.apply(o,r)))return!1;return!0},descriptors:function(t){var e=t.$plugins||(t.$plugins={});if(e.id===this._cacheId)return e.descriptors;var i=[],n=[],a=t&&t.config||{},o=a.options&&a.options.plugins||{};return this._plugins.concat(a.plugins||[]).forEach(function(t){if(-1===i.indexOf(t)){var e=t.id,a=o[e];!1!==a&&(!0===a&&(a=ut.clone(st.global.plugins[e])),i.push(t),n.push({plugin:t,options:a||{}}))}}),e.descriptors=n,e.id=this._cacheId,n},_invalidate:function(t){delete t.$plugins}},He={constructors:{},defaults:{},registerScaleType:function(t,e,i){this.constructors[t]=e,this.defaults[t]=ut.clone(i)},getScaleConstructor:function(t){return this.constructors.hasOwnProperty(t)?this.constructors[t]:void 0},getScaleDefaults:function(t){return this.defaults.hasOwnProperty(t)?ut.merge({},[st.scale,this.defaults[t]]):{}},updateScaleDefaults:function(t,e){this.defaults.hasOwnProperty(t)&&(this.defaults[t]=ut.extend(this.defaults[t],e))},addScalesToLayout:function(t){ut.each(t.scales,function(e){e.fullWidth=e.options.fullWidth,e.position=e.options.position,e.weight=e.options.weight,ke.addBox(t,e)})}},je=ut.valueOrDefault;st._set("global",{tooltips:{enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,borderColor:"rgba(0,0,0,0)",borderWidth:0,callbacks:{beforeTitle:ut.noop,title:function(t,e){var i="",n=e.labels,a=n?n.length:0;if(t.length>0){var o=t[0];o.label?i=o.label:o.xLabel?i=o.xLabel:a>0&&o.index<a&&(i=n[o.index])}return i},afterTitle:ut.noop,beforeBody:ut.noop,beforeLabel:ut.noop,label:function(t,e){var i=e.datasets[t.datasetIndex].label||"";return i&&(i+=": "),ut.isNullOrUndef(t.value)?i+=t.yLabel:i+=t.value,i},labelColor:function(t,e){var i=e.getDatasetMeta(t.datasetIndex).data[t.index]._view;return{borderColor:i.borderColor,backgroundColor:i.backgroundColor}},labelTextColor:function(){return this._options.bodyFontColor},afterLabel:ut.noop,afterBody:ut.noop,beforeFooter:ut.noop,footer:ut.noop,afterFooter:ut.noop}}});var qe={average:function(t){if(!t.length)return!1;var e,i,n=0,a=0,o=0;for(e=0,i=t.length;e<i;++e){var r=t[e];if(r&&r.hasValue()){var s=r.tooltipPosition();n+=s.x,a+=s.y,++o}}return{x:n/o,y:a/o}},nearest:function(t,e){var i,n,a,o=e.x,r=e.y,s=Number.POSITIVE_INFINITY;for(i=0,n=t.length;i<n;++i){var l=t[i];if(l&&l.hasValue()){var d=l.getCenterPoint(),u=ut.distanceBetweenPoints(e,d);u<s&&(s=u,a=l)}}if(a){var h=a.tooltipPosition();o=h.x,r=h.y}return{x:o,y:r}}};function Ye(t,e){return e&&(ut.isArray(e)?Array.prototype.push.apply(t,e):t.push(e)),t}function Ue(t){return("string"==typeof t||t instanceof String)&&t.indexOf("\n")>-1?t.split("\n"):t}function Xe(t){var e=st.global;return{xPadding:t.xPadding,yPadding:t.yPadding,xAlign:t.xAlign,yAlign:t.yAlign,bodyFontColor:t.bodyFontColor,_bodyFontFamily:je(t.bodyFontFamily,e.defaultFontFamily),_bodyFontStyle:je(t.bodyFontStyle,e.defaultFontStyle),_bodyAlign:t.bodyAlign,bodyFontSize:je(t.bodyFontSize,e.defaultFontSize),bodySpacing:t.bodySpacing,titleFontColor:t.titleFontColor,_titleFontFamily:je(t.titleFontFamily,e.defaultFontFamily),_titleFontStyle:je(t.titleFontStyle,e.defaultFontStyle),titleFontSize:je(t.titleFontSize,e.defaultFontSize),_titleAlign:t.titleAlign,titleSpacing:t.titleSpacing,titleMarginBottom:t.titleMarginBottom,footerFontColor:t.footerFontColor,_footerFontFamily:je(t.footerFontFamily,e.defaultFontFamily),_footerFontStyle:je(t.footerFontStyle,e.defaultFontStyle),footerFontSize:je(t.footerFontSize,e.defaultFontSize),_footerAlign:t.footerAlign,footerSpacing:t.footerSpacing,footerMarginTop:t.footerMarginTop,caretSize:t.caretSize,cornerRadius:t.cornerRadius,backgroundColor:t.backgroundColor,opacity:0,legendColorBackground:t.multiKeyBackground,displayColors:t.displayColors,borderColor:t.borderColor,borderWidth:t.borderWidth}}function Ke(t,e){return"center"===e?t.x+t.width/2:"right"===e?t.x+t.width-t.xPadding:t.x+t.xPadding}function Ge(t){return Ye([],Ue(t))}var Ze=pt.extend({initialize:function(){this._model=Xe(this._options),this._lastActive=[]},getTitle:function(){var t=this._options.callbacks,e=t.beforeTitle.apply(this,arguments),i=t.title.apply(this,arguments),n=t.afterTitle.apply(this,arguments),a=[];return a=Ye(a,Ue(e)),a=Ye(a,Ue(i)),a=Ye(a,Ue(n))},getBeforeBody:function(){return Ge(this._options.callbacks.beforeBody.apply(this,arguments))},getBody:function(t,e){var i=this,n=i._options.callbacks,a=[];return ut.each(t,function(t){var o={before:[],lines:[],after:[]};Ye(o.before,Ue(n.beforeLabel.call(i,t,e))),Ye(o.lines,n.label.call(i,t,e)),Ye(o.after,Ue(n.afterLabel.call(i,t,e))),a.push(o)}),a},getAfterBody:function(){return Ge(this._options.callbacks.afterBody.apply(this,arguments))},getFooter:function(){var t=this._options.callbacks,e=t.beforeFooter.apply(this,arguments),i=t.footer.apply(this,arguments),n=t.afterFooter.apply(this,arguments),a=[];return a=Ye(a,Ue(e)),a=Ye(a,Ue(i)),a=Ye(a,Ue(n))},update:function(t){var e,i,n,a,o,r,s,l,d,u,h=this,c=h._options,f=h._model,g=h._model=Xe(c),p=h._active,m=h._data,v={xAlign:f.xAlign,yAlign:f.yAlign},b={x:f.x,y:f.y},x={width:f.width,height:f.height},y={x:f.caretX,y:f.caretY};if(p.length){g.opacity=1;var k=[],w=[];y=qe[c.position].call(h,p,h._eventPosition);var M=[];for(e=0,i=p.length;e<i;++e)M.push((n=p[e],a=void 0,o=void 0,r=void 0,s=void 0,l=void 0,d=void 0,u=void 0,a=n._xScale,o=n._yScale||n._scale,r=n._index,s=n._datasetIndex,l=n._chart.getDatasetMeta(s).controller,d=l._getIndexScale(),u=l._getValueScale(),{xLabel:a?a.getLabelForIndex(r,s):"",yLabel:o?o.getLabelForIndex(r,s):"",label:d?""+d.getLabelForIndex(r,s):"",value:u?""+u.getLabelForIndex(r,s):"",index:r,datasetIndex:s,x:n._model.x,y:n._model.y}));c.filter&&(M=M.filter(function(t){return c.filter(t,m)})),c.itemSort&&(M=M.sort(function(t,e){return c.itemSort(t,e,m)})),ut.each(M,function(t){k.push(c.callbacks.labelColor.call(h,t,h._chart)),w.push(c.callbacks.labelTextColor.call(h,t,h._chart))}),g.title=h.getTitle(M,m),g.beforeBody=h.getBeforeBody(M,m),g.body=h.getBody(M,m),g.afterBody=h.getAfterBody(M,m),g.footer=h.getFooter(M,m),g.x=y.x,g.y=y.y,g.caretPadding=c.caretPadding,g.labelColors=k,g.labelTextColors=w,g.dataPoints=M,x=function(t,e){var i=t._chart.ctx,n=2*e.yPadding,a=0,o=e.body,r=o.reduce(function(t,e){return t+e.before.length+e.lines.length+e.after.length},0);r+=e.beforeBody.length+e.afterBody.length;var s=e.title.length,l=e.footer.length,d=e.titleFontSize,u=e.bodyFontSize,h=e.footerFontSize;n+=s*d,n+=s?(s-1)*e.titleSpacing:0,n+=s?e.titleMarginBottom:0,n+=r*u,n+=r?(r-1)*e.bodySpacing:0,n+=l?e.footerMarginTop:0,n+=l*h,n+=l?(l-1)*e.footerSpacing:0;var c=0,f=function(t){a=Math.max(a,i.measureText(t).width+c)};return i.font=ut.fontString(d,e._titleFontStyle,e._titleFontFamily),ut.each(e.title,f),i.font=ut.fontString(u,e._bodyFontStyle,e._bodyFontFamily),ut.each(e.beforeBody.concat(e.afterBody),f),c=e.displayColors?u+2:0,ut.each(o,function(t){ut.each(t.before,f),ut.each(t.lines,f),ut.each(t.after,f)}),c=0,i.font=ut.fontString(h,e._footerFontStyle,e._footerFontFamily),ut.each(e.footer,f),{width:a+=2*e.xPadding,height:n}}(this,g),b=function(t,e,i,n){var a=t.x,o=t.y,r=t.caretSize,s=t.caretPadding,l=t.cornerRadius,d=i.xAlign,u=i.yAlign,h=r+s,c=l+s;return"right"===d?a-=e.width:"center"===d&&((a-=e.width/2)+e.width>n.width&&(a=n.width-e.width),a<0&&(a=0)),"top"===u?o+=h:o-="bottom"===u?e.height+h:e.height/2,"center"===u?"left"===d?a+=h:"right"===d&&(a-=h):"left"===d?a-=c:"right"===d&&(a+=c),{x:a,y:o}}(g,x,v=function(t,e){var i,n,a,o,r,s=t._model,l=t._chart,d=t._chart.chartArea,u="center",h="center";s.y<e.height?h="top":s.y>l.height-e.height&&(h="bottom");var c=(d.left+d.right)/2,f=(d.top+d.bottom)/2;"center"===h?(i=function(t){return t<=c},n=function(t){return t>c}):(i=function(t){return t<=e.width/2},n=function(t){return t>=l.width-e.width/2}),a=function(t){return t+e.width+s.caretSize+s.caretPadding>l.width},o=function(t){return t-e.width-s.caretSize-s.caretPadding<0},r=function(t){return t<=f?"top":"bottom"},i(s.x)?(u="left",a(s.x)&&(u="center",h=r(s.y))):n(s.x)&&(u="right",o(s.x)&&(u="center",h=r(s.y)));var g=t._options;return{xAlign:g.xAlign?g.xAlign:u,yAlign:g.yAlign?g.yAlign:h}}(this,x),h._chart)}else g.opacity=0;return g.xAlign=v.xAlign,g.yAlign=v.yAlign,g.x=b.x,g.y=b.y,g.width=x.width,g.height=x.height,g.caretX=y.x,g.caretY=y.y,h._model=g,t&&c.custom&&c.custom.call(h,g),h},drawCaret:function(t,e){var i=this._chart.ctx,n=this._view,a=this.getCaretPosition(t,e,n);i.lineTo(a.x1,a.y1),i.lineTo(a.x2,a.y2),i.lineTo(a.x3,a.y3)},getCaretPosition:function(t,e,i){var n,a,o,r,s,l,d=i.caretSize,u=i.cornerRadius,h=i.xAlign,c=i.yAlign,f=t.x,g=t.y,p=e.width,m=e.height;if("center"===c)s=g+m/2,"left"===h?(a=(n=f)-d,o=n,r=s+d,l=s-d):(a=(n=f+p)+d,o=n,r=s-d,l=s+d);else if("left"===h?(n=(a=f+u+d)-d,o=a+d):"right"===h?(n=(a=f+p-u-d)-d,o=a+d):(n=(a=i.caretX)-d,o=a+d),"top"===c)s=(r=g)-d,l=r;else{s=(r=g+m)+d,l=r;var v=o;o=n,n=v}return{x1:n,x2:a,x3:o,y1:r,y2:s,y3:l}},drawTitle:function(t,e,i){var n=e.title;if(n.length){t.x=Ke(e,e._titleAlign),i.textAlign=e._titleAlign,i.textBaseline="top";var a,o,r=e.titleFontSize,s=e.titleSpacing;for(i.fillStyle=e.titleFontColor,i.font=ut.fontString(r,e._titleFontStyle,e._titleFontFamily),a=0,o=n.length;a<o;++a)i.fillText(n[a],t.x,t.y),t.y+=r+s,a+1===n.length&&(t.y+=e.titleMarginBottom-s)}},drawBody:function(t,e,i){var n,a=e.bodyFontSize,o=e.bodySpacing,r=e._bodyAlign,s=e.body,l=e.displayColors,d=e.labelColors,u=0,h=l?Ke(e,"left"):0;i.textAlign=r,i.textBaseline="top",i.font=ut.fontString(a,e._bodyFontStyle,e._bodyFontFamily),t.x=Ke(e,r);var c=function(e){i.fillText(e,t.x+u,t.y),t.y+=a+o};i.fillStyle=e.bodyFontColor,ut.each(e.beforeBody,c),u=l&&"right"!==r?"center"===r?a/2+1:a+2:0,ut.each(s,function(o,r){n=e.labelTextColors[r],i.fillStyle=n,ut.each(o.before,c),ut.each(o.lines,function(o){l&&(i.fillStyle=e.legendColorBackground,i.fillRect(h,t.y,a,a),i.lineWidth=1,i.strokeStyle=d[r].borderColor,i.strokeRect(h,t.y,a,a),i.fillStyle=d[r].backgroundColor,i.fillRect(h+1,t.y+1,a-2,a-2),i.fillStyle=n),c(o)}),ut.each(o.after,c)}),u=0,ut.each(e.afterBody,c),t.y-=o},drawFooter:function(t,e,i){var n=e.footer;n.length&&(t.x=Ke(e,e._footerAlign),t.y+=e.footerMarginTop,i.textAlign=e._footerAlign,i.textBaseline="top",i.fillStyle=e.footerFontColor,i.font=ut.fontString(e.footerFontSize,e._footerFontStyle,e._footerFontFamily),ut.each(n,function(n){i.fillText(n,t.x,t.y),t.y+=e.footerFontSize+e.footerSpacing}))},drawBackground:function(t,e,i,n){i.fillStyle=e.backgroundColor,i.strokeStyle=e.borderColor,i.lineWidth=e.borderWidth;var a=e.xAlign,o=e.yAlign,r=t.x,s=t.y,l=n.width,d=n.height,u=e.cornerRadius;i.beginPath(),i.moveTo(r+u,s),"top"===o&&this.drawCaret(t,n),i.lineTo(r+l-u,s),i.quadraticCurveTo(r+l,s,r+l,s+u),"center"===o&&"right"===a&&this.drawCaret(t,n),i.lineTo(r+l,s+d-u),i.quadraticCurveTo(r+l,s+d,r+l-u,s+d),"bottom"===o&&this.drawCaret(t,n),i.lineTo(r+u,s+d),i.quadraticCurveTo(r,s+d,r,s+d-u),"center"===o&&"left"===a&&this.drawCaret(t,n),i.lineTo(r,s+u),i.quadraticCurveTo(r,s,r+u,s),i.closePath(),i.fill(),e.borderWidth>0&&i.stroke()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var i={width:e.width,height:e.height},n={x:e.x,y:e.y},a=Math.abs(e.opacity<.001)?0:e.opacity,o=e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length;this._options.enabled&&o&&(t.save(),t.globalAlpha=a,this.drawBackground(n,e,t,i),n.y+=e.yPadding,this.drawTitle(n,e,t),this.drawBody(n,e,t),this.drawFooter(n,e,t),t.restore())}},handleEvent:function(t){var e,i=this,n=i._options;return i._lastActive=i._lastActive||[],"mouseout"===t.type?i._active=[]:i._active=i._chart.getElementsAtEventForMode(t,n.mode,n),(e=!ut.arrayEquals(i._active,i._lastActive))&&(i._lastActive=i._active,(n.enabled||n.custom)&&(i._eventPosition={x:t.x,y:t.y},i.update(!0),i.pivot())),e}}),$e=qe,Je=Ze;Je.positioners=$e;var Qe=ut.valueOrDefault;function ti(){return ut.merge({},[].slice.call(arguments),{merger:function(t,e,i,n){if("xAxes"===t||"yAxes"===t){var a,o,r,s=i[t].length;for(e[t]||(e[t]=[]),a=0;a<s;++a)r=i[t][a],o=Qe(r.type,"xAxes"===t?"category":"linear"),a>=e[t].length&&e[t].push({}),!e[t][a].type||r.type&&r.type!==e[t][a].type?ut.merge(e[t][a],[He.getScaleDefaults(o),r]):ut.merge(e[t][a],r)}else ut._merger(t,e,i,n)}})}function ei(){return ut.merge({},[].slice.call(arguments),{merger:function(t,e,i,n){var a=e[t]||{},o=i[t];"scales"===t?e[t]=ti(a,o):"scale"===t?e[t]=ut.merge(a,[He.getScaleDefaults(o.type),o]):ut._merger(t,e,i,n)}})}function ii(t){return"top"===t||"bottom"===t}st._set("global",{elements:{},events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,maintainAspectRatio:!0,responsive:!0,responsiveAnimationDuration:0});var ni=function(t,e){return this.construct(t,e),this};ut.extend(ni.prototype,{construct:function(t,e){var i=this;e=function(t){var e=(t=t||{}).data=t.data||{};return e.datasets=e.datasets||[],e.labels=e.labels||[],t.options=ei(st.global,st[t.type],t.options||{}),t}(e);var n=Ve.acquireContext(t,e),a=n&&n.canvas,o=a&&a.height,r=a&&a.width;i.id=ut.uid(),i.ctx=n,i.canvas=a,i.config=e,i.width=r,i.height=o,i.aspectRatio=o?r/o:null,i.options=e.options,i._bufferedRender=!1,i.chart=i,i.controller=i,ni.instances[i.id]=i,Object.defineProperty(i,"data",{get:function(){return i.config.data},set:function(t){i.config.data=t}}),n&&a?(i.initialize(),i.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var t=this;return Ee.notify(t,"beforeInit"),ut.retinaScale(t,t.options.devicePixelRatio),t.bindEvents(),t.options.responsive&&t.resize(!0),t.ensureScalesHaveIDs(),t.buildOrUpdateScales(),t.initToolTip(),Ee.notify(t,"afterInit"),t},clear:function(){return ut.canvas.clear(this),this},stop:function(){return bt.cancelAnimation(this),this},resize:function(t){var e=this,i=e.options,n=e.canvas,a=i.maintainAspectRatio&&e.aspectRatio||null,o=Math.max(0,Math.floor(ut.getMaximumWidth(n))),r=Math.max(0,Math.floor(a?o/a:ut.getMaximumHeight(n)));if((e.width!==o||e.height!==r)&&(n.width=e.width=o,n.height=e.height=r,n.style.width=o+"px",n.style.height=r+"px",ut.retinaScale(e,i.devicePixelRatio),!t)){var s={width:o,height:r};Ee.notify(e,"resize",[s]),i.onResize&&i.onResize(e,s),e.stop(),e.update({duration:i.responsiveAnimationDuration})}},ensureScalesHaveIDs:function(){var t=this.options,e=t.scales||{},i=t.scale;ut.each(e.xAxes,function(t,e){t.id=t.id||"x-axis-"+e}),ut.each(e.yAxes,function(t,e){t.id=t.id||"y-axis-"+e}),i&&(i.id=i.id||"scale")},buildOrUpdateScales:function(){var t=this,e=t.options,i=t.scales||{},n=[],a=Object.keys(i).reduce(function(t,e){return t[e]=!1,t},{});e.scales&&(n=n.concat((e.scales.xAxes||[]).map(function(t){return{options:t,dtype:"category",dposition:"bottom"}}),(e.scales.yAxes||[]).map(function(t){return{options:t,dtype:"linear",dposition:"left"}}))),e.scale&&n.push({options:e.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),ut.each(n,function(e){var n=e.options,o=n.id,r=Qe(n.type,e.dtype);ii(n.position)!==ii(e.dposition)&&(n.position=e.dposition),a[o]=!0;var s=null;if(o in i&&i[o].type===r)(s=i[o]).options=n,s.ctx=t.ctx,s.chart=t;else{var l=He.getScaleConstructor(r);if(!l)return;s=new l({id:o,type:r,options:n,ctx:t.ctx,chart:t}),i[s.id]=s}s.mergeTicksOptions(),e.isDefault&&(t.scale=s)}),ut.each(a,function(t,e){t||delete i[e]}),t.scales=i,He.addScalesToLayout(this)},buildOrUpdateControllers:function(){var t=this,e=[];return ut.each(t.data.datasets,function(i,n){var a=t.getDatasetMeta(n),o=i.type||t.config.type;if(a.type&&a.type!==o&&(t.destroyDatasetMeta(n),a=t.getDatasetMeta(n)),a.type=o,a.controller)a.controller.updateIndex(n),a.controller.linkScales();else{var r=ue[a.type];if(void 0===r)throw new Error('"'+a.type+'" is not a chart type.');a.controller=new r(t,n),e.push(a.controller)}},t),e},resetElements:function(){var t=this;ut.each(t.data.datasets,function(e,i){t.getDatasetMeta(i).controller.reset()},t)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(t){var e,i,n=this;if(t&&"object"==typeof t||(t={duration:t,lazy:arguments[1]}),i=(e=n).options,ut.each(e.scales,function(t){ke.removeBox(e,t)}),i=ei(st.global,st[e.config.type],i),e.options=e.config.options=i,e.ensureScalesHaveIDs(),e.buildOrUpdateScales(),e.tooltip._options=i.tooltips,e.tooltip.initialize(),Ee._invalidate(n),!1!==Ee.notify(n,"beforeUpdate")){n.tooltip._data=n.data;var a=n.buildOrUpdateControllers();ut.each(n.data.datasets,function(t,e){n.getDatasetMeta(e).controller.buildOrUpdateElements()},n),n.updateLayout(),n.options.animation&&n.options.animation.duration&&ut.each(a,function(t){t.reset()}),n.updateDatasets(),n.tooltip.initialize(),n.lastActive=[],Ee.notify(n,"afterUpdate"),n._bufferedRender?n._bufferedRequest={duration:t.duration,easing:t.easing,lazy:t.lazy}:n.render(t)}},updateLayout:function(){!1!==Ee.notify(this,"beforeLayout")&&(ke.update(this,this.width,this.height),Ee.notify(this,"afterScaleUpdate"),Ee.notify(this,"afterLayout"))},updateDatasets:function(){if(!1!==Ee.notify(this,"beforeDatasetsUpdate")){for(var t=0,e=this.data.datasets.length;t<e;++t)this.updateDataset(t);Ee.notify(this,"afterDatasetsUpdate")}},updateDataset:function(t){var e=this.getDatasetMeta(t),i={meta:e,index:t};!1!==Ee.notify(this,"beforeDatasetUpdate",[i])&&(e.controller.update(),Ee.notify(this,"afterDatasetUpdate",[i]))},render:function(t){var e=this;t&&"object"==typeof t||(t={duration:t,lazy:arguments[1]});var i=e.options.animation,n=Qe(t.duration,i&&i.duration),a=t.lazy;if(!1!==Ee.notify(e,"beforeRender")){var o=function(t){Ee.notify(e,"afterRender"),ut.callback(i&&i.onComplete,[t],e)};if(i&&n){var r=new vt({numSteps:n/16.66,easing:t.easing||i.easing,render:function(t,e){var i=ut.easing.effects[e.easing],n=e.currentStep,a=n/e.numSteps;t.draw(i(a),a,n)},onAnimationProgress:i.onProgress,onAnimationComplete:o});bt.addAnimation(e,r,n,a)}else e.draw(),o(new vt({numSteps:0,chart:e}));return e}},draw:function(t){var e=this;e.clear(),ut.isNullOrUndef(t)&&(t=1),e.transition(t),e.width<=0||e.height<=0||!1!==Ee.notify(e,"beforeDraw",[t])&&(ut.each(e.boxes,function(t){t.draw(e.chartArea)},e),e.drawDatasets(t),e._drawTooltip(t),Ee.notify(e,"afterDraw",[t]))},transition:function(t){for(var e=0,i=(this.data.datasets||[]).length;e<i;++e)this.isDatasetVisible(e)&&this.getDatasetMeta(e).controller.transition(t);this.tooltip.transition(t)},drawDatasets:function(t){var e=this;if(!1!==Ee.notify(e,"beforeDatasetsDraw",[t])){for(var i=(e.data.datasets||[]).length-1;i>=0;--i)e.isDatasetVisible(i)&&e.drawDataset(i,t);Ee.notify(e,"afterDatasetsDraw",[t])}},drawDataset:function(t,e){var i=this.getDatasetMeta(t),n={meta:i,index:t,easingValue:e};!1!==Ee.notify(this,"beforeDatasetDraw",[n])&&(i.controller.draw(e),Ee.notify(this,"afterDatasetDraw",[n]))},_drawTooltip:function(t){var e=this.tooltip,i={tooltip:e,easingValue:t};!1!==Ee.notify(this,"beforeTooltipDraw",[i])&&(e.draw(),Ee.notify(this,"afterTooltipDraw",[i]))},getElementAtEvent:function(t){return ve.modes.single(this,t)},getElementsAtEvent:function(t){return ve.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return ve.modes["x-axis"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,i){var n=ve.modes[e];return"function"==typeof n?n(this,t,i):[]},getDatasetAtEvent:function(t){return ve.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var e=this.data.datasets[t];e._meta||(e._meta={});var i=e._meta[this.id];return i||(i=e._meta[this.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),i},getVisibleDatasetCount:function(){for(var t=0,e=0,i=this.data.datasets.length;e<i;++e)this.isDatasetVisible(e)&&t++;return t},isDatasetVisible:function(t){var e=this.getDatasetMeta(t);return"boolean"==typeof e.hidden?!e.hidden:!this.data.datasets[t].hidden},generateLegend:function(){return this.options.legendCallback(this)},destroyDatasetMeta:function(t){var e=this.id,i=this.data.datasets[t],n=i._meta&&i._meta[e];n&&(n.controller.destroy(),delete i._meta[e])},destroy:function(){var t,e,i=this,n=i.canvas;for(i.stop(),t=0,e=i.data.datasets.length;t<e;++t)i.destroyDatasetMeta(t);n&&(i.unbindEvents(),ut.canvas.clear(i),Ve.releaseContext(i.ctx),i.canvas=null,i.ctx=null),Ee.notify(i,"destroy"),delete ni.instances[i.id]},toBase64Image:function(){return this.canvas.toDataURL.apply(this.canvas,arguments)},initToolTip:function(){var t=this;t.tooltip=new Je({_chart:t,_chartInstance:t,_data:t.data,_options:t.options.tooltips},t)},bindEvents:function(){var t=this,e=t._listeners={},i=function(){t.eventHandler.apply(t,arguments)};ut.each(t.options.events,function(n){Ve.addEventListener(t,n,i),e[n]=i}),t.options.responsive&&(i=function(){t.resize()},Ve.addEventListener(t,"resize",i),e.resize=i)},unbindEvents:function(){var t=this,e=t._listeners;e&&(delete t._listeners,ut.each(e,function(e,i){Ve.removeEventListener(t,i,e)}))},updateHoverStyle:function(t,e,i){var n,a,o,r=i?"setHoverStyle":"removeHoverStyle";for(a=0,o=t.length;a<o;++a)(n=t[a])&&this.getDatasetMeta(n._datasetIndex).controller[r](n)},eventHandler:function(t){var e=this,i=e.tooltip;if(!1!==Ee.notify(e,"beforeEvent",[t])){e._bufferedRender=!0,e._bufferedRequest=null;var n=e.handleEvent(t);i&&(n=i._start?i.handleEvent(t):n|i.handleEvent(t)),Ee.notify(e,"afterEvent",[t]);var a=e._bufferedRequest;return a?e.render(a):n&&!e.animating&&(e.stop(),e.render({duration:e.options.hover.animationDuration,lazy:!0})),e._bufferedRender=!1,e._bufferedRequest=null,e}},handleEvent:function(t){var e,i=this,n=i.options||{},a=n.hover;return i.lastActive=i.lastActive||[],"mouseout"===t.type?i.active=[]:i.active=i.getElementsAtEventForMode(t,a.mode,a),ut.callback(n.onHover||n.hover.onHover,[t.native,i.active],i),"mouseup"!==t.type&&"click"!==t.type||n.onClick&&n.onClick.call(i,t.native,i.active),i.lastActive.length&&i.updateHoverStyle(i.lastActive,a.mode,!1),i.active.length&&a.mode&&i.updateHoverStyle(i.active,a.mode,!0),e=!ut.arrayEquals(i.active,i.lastActive),i.lastActive=i.active,e}}),ni.instances={};var ai=ni;ni.Controller=ni,ni.types={},ut.configMerge=ei,ut.scaleMerge=ti;function oi(){throw new Error("This method is not implemented: either no adapter can be found or an incomplete integration was provided.")}function ri(t){this.options=t||{}}ut.extend(ri.prototype,{formats:oi,parse:oi,format:oi,add:oi,diff:oi,startOf:oi,endOf:oi,_create:function(t){return t}}),ri.override=function(t){ut.extend(ri.prototype,t)};var si={_date:ri},li={formatters:{values:function(t){return ut.isArray(t)?t:""+t},linear:function(t,e,i){var n=i.length>3?i[2]-i[1]:i[1]-i[0];Math.abs(n)>1&&t!==Math.floor(t)&&(n=t-Math.floor(t));var a=ut.log10(Math.abs(n)),o="";if(0!==t)if(Math.max(Math.abs(i[0]),Math.abs(i[i.length-1]))<1e-4){var r=ut.log10(Math.abs(t));o=t.toExponential(Math.floor(r)-Math.floor(a))}else{var s=-1*Math.floor(a);s=Math.max(Math.min(s,20),0),o=t.toFixed(s)}else o="0";return o},logarithmic:function(t,e,i){var n=t/Math.pow(10,Math.floor(ut.log10(t)));return 0===t?"0":1===n||2===n||5===n||0===e||e===i.length-1?t.toExponential():""}}},di=ut.valueOrDefault,ui=ut.valueAtIndexOrDefault;function hi(t){var e,i,n=[];for(e=0,i=t.length;e<i;++e)n.push(t[e].label);return n}function ci(t,e,i){return ut.isArray(e)?ut.longestText(t,i,e):t.measureText(e).width}st._set("scale",{display:!0,position:"left",offset:!1,gridLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickMarkLength:10,zeroLineWidth:1,zeroLineColor:"rgba(0,0,0,0.25)",zeroLineBorderDash:[],zeroLineBorderDashOffset:0,offsetGridLines:!1,borderDash:[],borderDashOffset:0},scaleLabel:{display:!1,labelString:"",padding:{top:4,bottom:4}},ticks:{beginAtZero:!1,minRotation:0,maxRotation:50,mirror:!1,padding:0,reverse:!1,display:!0,autoSkip:!0,autoSkipPadding:0,labelOffset:0,callback:li.formatters.values,minor:{},major:{}}});var fi=pt.extend({getPadding:function(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}},getTicks:function(){return this._ticks},mergeTicksOptions:function(){var t=this.options.ticks;for(var e in!1===t.minor&&(t.minor={display:!1}),!1===t.major&&(t.major={display:!1}),t)"major"!==e&&"minor"!==e&&(void 0===t.minor[e]&&(t.minor[e]=t[e]),void 0===t.major[e]&&(t.major[e]=t[e]))},beforeUpdate:function(){ut.callback(this.options.beforeUpdate,[this])},update:function(t,e,i){var n,a,o,r,s,l,d=this;for(d.beforeUpdate(),d.maxWidth=t,d.maxHeight=e,d.margins=ut.extend({left:0,right:0,top:0,bottom:0},i),d._maxLabelLines=0,d.longestLabelWidth=0,d.longestTextCache=d.longestTextCache||{},d.beforeSetDimensions(),d.setDimensions(),d.afterSetDimensions(),d.beforeDataLimits(),d.determineDataLimits(),d.afterDataLimits(),d.beforeBuildTicks(),s=d.buildTicks()||[],s=d.afterBuildTicks(s)||s,d.beforeTickToLabelConversion(),o=d.convertTicksToLabels(s)||d.ticks,d.afterTickToLabelConversion(),d.ticks=o,n=0,a=o.length;n<a;++n)r=o[n],(l=s[n])?l.label=r:s.push(l={label:r,major:!1});return d._ticks=s,d.beforeCalculateTickRotation(),d.calculateTickRotation(),d.afterCalculateTickRotation(),d.beforeFit(),d.fit(),d.afterFit(),d.afterUpdate(),d.minSize},afterUpdate:function(){ut.callback(this.options.afterUpdate,[this])},beforeSetDimensions:function(){ut.callback(this.options.beforeSetDimensions,[this])},setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0},afterSetDimensions:function(){ut.callback(this.options.afterSetDimensions,[this])},beforeDataLimits:function(){ut.callback(this.options.beforeDataLimits,[this])},determineDataLimits:ut.noop,afterDataLimits:function(){ut.callback(this.options.afterDataLimits,[this])},beforeBuildTicks:function(){ut.callback(this.options.beforeBuildTicks,[this])},buildTicks:ut.noop,afterBuildTicks:function(t){var e=this;return ut.isArray(t)&&t.length?ut.callback(e.options.afterBuildTicks,[e,t]):(e.ticks=ut.callback(e.options.afterBuildTicks,[e,e.ticks])||e.ticks,t)},beforeTickToLabelConversion:function(){ut.callback(this.options.beforeTickToLabelConversion,[this])},convertTicksToLabels:function(){var t=this.options.ticks;this.ticks=this.ticks.map(t.userCallback||t.callback,this)},afterTickToLabelConversion:function(){ut.callback(this.options.afterTickToLabelConversion,[this])},beforeCalculateTickRotation:function(){ut.callback(this.options.beforeCalculateTickRotation,[this])},calculateTickRotation:function(){var t=this,e=t.ctx,i=t.options.ticks,n=hi(t._ticks),a=ut.options._parseFont(i);e.font=a.string;var o=i.minRotation||0;if(n.length&&t.options.display&&t.isHorizontal())for(var r,s=ut.longestText(e,a.string,n,t.longestTextCache),l=s,d=t.getPixelForTick(1)-t.getPixelForTick(0)-6;l>d&&o<i.maxRotation;){var u=ut.toRadians(o);if(r=Math.cos(u),Math.sin(u)*s>t.maxHeight){o--;break}o++,l=r*s}t.labelRotation=o},afterCalculateTickRotation:function(){ut.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){ut.callback(this.options.beforeFit,[this])},fit:function(){var t=this,e=t.minSize={width:0,height:0},i=hi(t._ticks),n=t.options,a=n.ticks,o=n.scaleLabel,r=n.gridLines,s=t._isVisible(),l=n.position,d=t.isHorizontal(),u=ut.options._parseFont,h=u(a),c=n.gridLines.tickMarkLength;if(e.width=d?t.isFullWidth()?t.maxWidth-t.margins.left-t.margins.right:t.maxWidth:s&&r.drawTicks?c:0,e.height=d?s&&r.drawTicks?c:0:t.maxHeight,o.display&&s){var f=u(o),g=ut.options.toPadding(o.padding),p=f.lineHeight+g.height;d?e.height+=p:e.width+=p}if(a.display&&s){var m=ut.longestText(t.ctx,h.string,i,t.longestTextCache),v=ut.numberOfLabelLines(i),b=.5*h.size,x=t.options.ticks.padding;if(t._maxLabelLines=v,t.longestLabelWidth=m,d){var y=ut.toRadians(t.labelRotation),k=Math.cos(y),w=Math.sin(y)*m+h.lineHeight*v+b;e.height=Math.min(t.maxHeight,e.height+w+x),t.ctx.font=h.string;var M,_,C=ci(t.ctx,i[0],h.string),S=ci(t.ctx,i[i.length-1],h.string),P=t.getPixelForTick(0)-t.left,I=t.right-t.getPixelForTick(i.length-1);0!==t.labelRotation?(M="bottom"===l?k*C:k*b,_="bottom"===l?k*b:k*S):(M=C/2,_=S/2),t.paddingLeft=Math.max(M-P,0)+3,t.paddingRight=Math.max(_-I,0)+3}else a.mirror?m=0:m+=x+b,e.width=Math.min(t.maxWidth,e.width+m),t.paddingTop=h.size/2,t.paddingBottom=h.size/2}t.handleMargins(),t.width=e.width,t.height=e.height},handleMargins:function(){var t=this;t.margins&&(t.paddingLeft=Math.max(t.paddingLeft-t.margins.left,0),t.paddingTop=Math.max(t.paddingTop-t.margins.top,0),t.paddingRight=Math.max(t.paddingRight-t.margins.right,0),t.paddingBottom=Math.max(t.paddingBottom-t.margins.bottom,0))},afterFit:function(){ut.callback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){if(ut.isNullOrUndef(t))return NaN;if(("number"==typeof t||t instanceof Number)&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t},getLabelForIndex:ut.noop,getPixelForValue:ut.noop,getValueForPixel:ut.noop,getPixelForTick:function(t){var e=this,i=e.options.offset;if(e.isHorizontal()){var n=(e.width-(e.paddingLeft+e.paddingRight))/Math.max(e._ticks.length-(i?0:1),1),a=n*t+e.paddingLeft;i&&(a+=n/2);var o=e.left+a;return o+=e.isFullWidth()?e.margins.left:0}var r=e.height-(e.paddingTop+e.paddingBottom);return e.top+t*(r/(e._ticks.length-1))},getPixelForDecimal:function(t){var e=this;if(e.isHorizontal()){var i=(e.width-(e.paddingLeft+e.paddingRight))*t+e.paddingLeft,n=e.left+i;return n+=e.isFullWidth()?e.margins.left:0}return e.top+t*e.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this.min,e=this.max;return this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0},_autoSkip:function(t){var e,i,n=this,a=n.isHorizontal(),o=n.options.ticks.minor,r=t.length,s=!1,l=o.maxTicksLimit,d=n._tickSize()*(r-1),u=a?n.width-(n.paddingLeft+n.paddingRight):n.height-(n.paddingTop+n.PaddingBottom),h=[];for(d>u&&(s=1+Math.floor(d/u)),r>l&&(s=Math.max(s,1+Math.floor(r/l))),e=0;e<r;e++)i=t[e],s>1&&e%s>0&&delete i.label,h.push(i);return h},_tickSize:function(){var t=this,e=t.isHorizontal(),i=t.options.ticks.minor,n=ut.toRadians(t.labelRotation),a=Math.abs(Math.cos(n)),o=Math.abs(Math.sin(n)),r=i.autoSkipPadding||0,s=t.longestLabelWidth+r||0,l=ut.options._parseFont(i),d=t._maxLabelLines*l.lineHeight+r||0;return e?d*a>s*o?s/a:d/o:d*o<s*a?d/a:s/o},_isVisible:function(){var t,e,i,n=this.chart,a=this.options.display;if("auto"!==a)return!!a;for(t=0,e=n.data.datasets.length;t<e;++t)if(n.isDatasetVisible(t)&&((i=n.getDatasetMeta(t)).xAxisID===this.id||i.yAxisID===this.id))return!0;return!1},draw:function(t){var e=this,i=e.options;if(e._isVisible()){var n,a,o,r=e.chart,s=e.ctx,l=st.global.defaultFontColor,d=i.ticks.minor,u=i.ticks.major||d,h=i.gridLines,c=i.scaleLabel,f=i.position,g=0!==e.labelRotation,p=d.mirror,m=e.isHorizontal(),v=ut.options._parseFont,b=d.display&&d.autoSkip?e._autoSkip(e.getTicks()):e.getTicks(),x=di(d.fontColor,l),y=v(d),k=y.lineHeight,w=di(u.fontColor,l),M=v(u),_=d.padding,C=d.labelOffset,S=h.drawTicks?h.tickMarkLength:0,P=di(c.fontColor,l),I=v(c),A=ut.options.toPadding(c.padding),D=ut.toRadians(e.labelRotation),T=[],F=h.drawBorder?ui(h.lineWidth,0,0):0,L=ut._alignPixel;"top"===f?(n=L(r,e.bottom,F),a=e.bottom-S,o=n-F/2):"bottom"===f?(n=L(r,e.top,F),a=n+F/2,o=e.top+S):"left"===f?(n=L(r,e.right,F),a=e.right-S,o=n-F/2):(n=L(r,e.left,F),a=n+F/2,o=e.left+S);if(ut.each(b,function(n,s){if(!ut.isNullOrUndef(n.label)){var l,d,u,c,v,b,x,y,w,M,P,I,A,R,O,z,B=n.label;s===e.zeroLineIndex&&i.offset===h.offsetGridLines?(l=h.zeroLineWidth,d=h.zeroLineColor,u=h.zeroLineBorderDash||[],c=h.zeroLineBorderDashOffset||0):(l=ui(h.lineWidth,s),d=ui(h.color,s),u=h.borderDash||[],c=h.borderDashOffset||0);var N=ut.isArray(B)?B.length:1,W=function(t,e,i){var n=t.getPixelForTick(e);return i&&(1===t.getTicks().length?n-=t.isHorizontal()?Math.max(n-t.left,t.right-n):Math.max(n-t.top,t.bottom-n):n-=0===e?(t.getPixelForTick(1)-n)/2:(n-t.getPixelForTick(e-1))/2),n}(e,s,h.offsetGridLines);if(m){var V=S+_;W<e.left-1e-7&&(d="rgba(0,0,0,0)"),v=x=w=P=L(r,W,l),b=a,y=o,A=e.getPixelForTick(s)+C,"top"===f?(M=L(r,t.top,F)+F/2,I=t.bottom,O=((g?1:.5)-N)*k,z=g?"left":"center",R=e.bottom-V):(M=t.top,I=L(r,t.bottom,F)-F/2,O=(g?0:.5)*k,z=g?"right":"center",R=e.top+V)}else{var E=(p?0:S)+_;W<e.top-1e-7&&(d="rgba(0,0,0,0)"),v=a,x=o,b=y=M=I=L(r,W,l),R=e.getPixelForTick(s)+C,O=(1-N)*k/2,"left"===f?(w=L(r,t.left,F)+F/2,P=t.right,z=p?"left":"right",A=e.right-E):(w=t.left,P=L(r,t.right,F)-F/2,z=p?"right":"left",A=e.left+E)}T.push({tx1:v,ty1:b,tx2:x,ty2:y,x1:w,y1:M,x2:P,y2:I,labelX:A,labelY:R,glWidth:l,glColor:d,glBorderDash:u,glBorderDashOffset:c,rotation:-1*D,label:B,major:n.major,textOffset:O,textAlign:z})}}),ut.each(T,function(t){var e=t.glWidth,i=t.glColor;if(h.display&&e&&i&&(s.save(),s.lineWidth=e,s.strokeStyle=i,s.setLineDash&&(s.setLineDash(t.glBorderDash),s.lineDashOffset=t.glBorderDashOffset),s.beginPath(),h.drawTicks&&(s.moveTo(t.tx1,t.ty1),s.lineTo(t.tx2,t.ty2)),h.drawOnChartArea&&(s.moveTo(t.x1,t.y1),s.lineTo(t.x2,t.y2)),s.stroke(),s.restore()),d.display){s.save(),s.translate(t.labelX,t.labelY),s.rotate(t.rotation),s.font=t.major?M.string:y.string,s.fillStyle=t.major?w:x,s.textBaseline="middle",s.textAlign=t.textAlign;var n=t.label,a=t.textOffset;if(ut.isArray(n))for(var o=0;o<n.length;++o)s.fillText(""+n[o],0,a),a+=k;else s.fillText(n,0,a);s.restore()}}),c.display){var R,O,z=0,B=I.lineHeight/2;if(m)R=e.left+(e.right-e.left)/2,O="bottom"===f?e.bottom-B-A.bottom:e.top+B+A.top;else{var N="left"===f;R=N?e.left+B+A.top:e.right-B-A.top,O=e.top+(e.bottom-e.top)/2,z=N?-.5*Math.PI:.5*Math.PI}s.save(),s.translate(R,O),s.rotate(z),s.textAlign="center",s.textBaseline="middle",s.fillStyle=P,s.font=I.string,s.fillText(c.labelString,0,0),s.restore()}if(F){var W,V,E,H,j=F,q=ui(h.lineWidth,b.length-1,0);m?(W=L(r,e.left,j)-j/2,V=L(r,e.right,q)+q/2,E=H=n):(E=L(r,e.top,j)-j/2,H=L(r,e.bottom,q)+q/2,W=V=n),s.lineWidth=F,s.strokeStyle=ui(h.color,0),s.beginPath(),s.moveTo(W,E),s.lineTo(V,H),s.stroke()}}}}),gi=fi.extend({getLabels:function(){var t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels},determineDataLimits:function(){var t,e=this,i=e.getLabels();e.minIndex=0,e.maxIndex=i.length-1,void 0!==e.options.ticks.min&&(t=i.indexOf(e.options.ticks.min),e.minIndex=-1!==t?t:e.minIndex),void 0!==e.options.ticks.max&&(t=i.indexOf(e.options.ticks.max),e.maxIndex=-1!==t?t:e.maxIndex),e.min=i[e.minIndex],e.max=i[e.maxIndex]},buildTicks:function(){var t=this,e=t.getLabels();t.ticks=0===t.minIndex&&t.maxIndex===e.length-1?e:e.slice(t.minIndex,t.maxIndex+1)},getLabelForIndex:function(t,e){var i=this,n=i.chart;return n.getDatasetMeta(e).controller._getValueScaleId()===i.id?i.getRightValue(n.data.datasets[e].data[t]):i.ticks[t-i.minIndex]},getPixelForValue:function(t,e){var i,n=this,a=n.options.offset,o=Math.max(n.maxIndex+1-n.minIndex-(a?0:1),1);if(null!=t&&(i=n.isHorizontal()?t.x:t.y),void 0!==i||void 0!==t&&isNaN(e)){t=i||t;var r=n.getLabels().indexOf(t);e=-1!==r?r:e}if(n.isHorizontal()){var s=n.width/o,l=s*(e-n.minIndex);return a&&(l+=s/2),n.left+l}var d=n.height/o,u=d*(e-n.minIndex);return a&&(u+=d/2),n.top+u},getPixelForTick:function(t){return this.getPixelForValue(this.ticks[t],t+this.minIndex,null)},getValueForPixel:function(t){var e=this,i=e.options.offset,n=Math.max(e._ticks.length-(i?0:1),1),a=e.isHorizontal(),o=(a?e.width:e.height)/n;return t-=a?e.left:e.top,i&&(t-=o/2),(t<=0?0:Math.round(t/o))+e.minIndex},getBasePixel:function(){return this.bottom}}),pi={position:"bottom"};gi._defaults=pi;var mi=ut.noop,vi=ut.isNullOrUndef;var bi=fi.extend({getRightValue:function(t){return"string"==typeof t?+t:fi.prototype.getRightValue.call(this,t)},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;if(e.beginAtZero){var i=ut.sign(t.min),n=ut.sign(t.max);i<0&&n<0?t.max=0:i>0&&n>0&&(t.min=0)}var a=void 0!==e.min||void 0!==e.suggestedMin,o=void 0!==e.max||void 0!==e.suggestedMax;void 0!==e.min?t.min=e.min:void 0!==e.suggestedMin&&(null===t.min?t.min=e.suggestedMin:t.min=Math.min(t.min,e.suggestedMin)),void 0!==e.max?t.max=e.max:void 0!==e.suggestedMax&&(null===t.max?t.max=e.suggestedMax:t.max=Math.max(t.max,e.suggestedMax)),a!==o&&t.min>=t.max&&(a?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,e.beginAtZero||t.min--)},getTickLimit:function(){var t,e=this.options.ticks,i=e.stepSize,n=e.maxTicksLimit;return i?t=Math.ceil(this.max/i)-Math.floor(this.min/i)+1:(t=this._computeTickLimit(),n=n||11),n&&(t=Math.min(n,t)),t},_computeTickLimit:function(){return Number.POSITIVE_INFINITY},handleDirectionalChanges:mi,buildTicks:function(){var t=this,e=t.options.ticks,i=t.getTickLimit(),n={maxTicks:i=Math.max(2,i),min:e.min,max:e.max,precision:e.precision,stepSize:ut.valueOrDefault(e.fixedStepSize,e.stepSize)},a=t.ticks=function(t,e){var i,n,a,o,r=[],s=t.stepSize,l=s||1,d=t.maxTicks-1,u=t.min,h=t.max,c=t.precision,f=e.min,g=e.max,p=ut.niceNum((g-f)/d/l)*l;if(p<1e-14&&vi(u)&&vi(h))return[f,g];(o=Math.ceil(g/p)-Math.floor(f/p))>d&&(p=ut.niceNum(o*p/d/l)*l),s||vi(c)?i=Math.pow(10,ut._decimalPlaces(p)):(i=Math.pow(10,c),p=Math.ceil(p*i)/i),n=Math.floor(f/p)*p,a=Math.ceil(g/p)*p,s&&(!vi(u)&&ut.almostWhole(u/p,p/1e3)&&(n=u),!vi(h)&&ut.almostWhole(h/p,p/1e3)&&(a=h)),o=(a-n)/p,o=ut.almostEquals(o,Math.round(o),p/1e3)?Math.round(o):Math.ceil(o),n=Math.round(n*i)/i,a=Math.round(a*i)/i,r.push(vi(u)?n:u);for(var m=1;m<o;++m)r.push(Math.round((n+m*p)*i)/i);return r.push(vi(h)?a:h),r}(n,t);t.handleDirectionalChanges(),t.max=ut.max(a),t.min=ut.min(a),e.reverse?(a.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){var t=this;t.ticksAsNumbers=t.ticks.slice(),t.zeroLineIndex=t.ticks.indexOf(0),fi.prototype.convertTicksToLabels.call(t)}}),xi={position:"left",ticks:{callback:li.formatters.linear}},yi=bi.extend({determineDataLimits:function(){var t=this,e=t.options,i=t.chart,n=i.data.datasets,a=t.isHorizontal();function o(e){return a?e.xAxisID===t.id:e.yAxisID===t.id}t.min=null,t.max=null;var r=e.stacked;if(void 0===r&&ut.each(n,function(t,e){if(!r){var n=i.getDatasetMeta(e);i.isDatasetVisible(e)&&o(n)&&void 0!==n.stack&&(r=!0)}}),e.stacked||r){var s={};ut.each(n,function(n,a){var r=i.getDatasetMeta(a),l=[r.type,void 0===e.stacked&&void 0===r.stack?a:"",r.stack].join(".");void 0===s[l]&&(s[l]={positiveValues:[],negativeValues:[]});var d=s[l].positiveValues,u=s[l].negativeValues;i.isDatasetVisible(a)&&o(r)&&ut.each(n.data,function(i,n){var a=+t.getRightValue(i);isNaN(a)||r.data[n].hidden||(d[n]=d[n]||0,u[n]=u[n]||0,e.relativePoints?d[n]=100:a<0?u[n]+=a:d[n]+=a)})}),ut.each(s,function(e){var i=e.positiveValues.concat(e.negativeValues),n=ut.min(i),a=ut.max(i);t.min=null===t.min?n:Math.min(t.min,n),t.max=null===t.max?a:Math.max(t.max,a)})}else ut.each(n,function(e,n){var a=i.getDatasetMeta(n);i.isDatasetVisible(n)&&o(a)&&ut.each(e.data,function(e,i){var n=+t.getRightValue(e);isNaN(n)||a.data[i].hidden||(null===t.min?t.min=n:n<t.min&&(t.min=n),null===t.max?t.max=n:n>t.max&&(t.max=n))})});t.min=isFinite(t.min)&&!isNaN(t.min)?t.min:0,t.max=isFinite(t.max)&&!isNaN(t.max)?t.max:1,this.handleTickRangeOptions()},_computeTickLimit:function(){var t;return this.isHorizontal()?Math.ceil(this.width/40):(t=ut.options._parseFont(this.options.ticks),Math.ceil(this.height/t.lineHeight))},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForValue:function(t){var e=this,i=e.start,n=+e.getRightValue(t),a=e.end-i;return e.isHorizontal()?e.left+e.width/a*(n-i):e.bottom-e.height/a*(n-i)},getValueForPixel:function(t){var e=this,i=e.isHorizontal(),n=i?e.width:e.height,a=(i?t-e.left:e.bottom-t)/n;return e.start+(e.end-e.start)*a},getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}}),ki=xi;yi._defaults=ki;var wi=ut.valueOrDefault;var Mi={position:"left",ticks:{callback:li.formatters.logarithmic}};function _i(t,e){return ut.isFinite(t)&&t>=0?t:e}var Ci=fi.extend({determineDataLimits:function(){var t=this,e=t.options,i=t.chart,n=i.data.datasets,a=t.isHorizontal();function o(e){return a?e.xAxisID===t.id:e.yAxisID===t.id}t.min=null,t.max=null,t.minNotZero=null;var r=e.stacked;if(void 0===r&&ut.each(n,function(t,e){if(!r){var n=i.getDatasetMeta(e);i.isDatasetVisible(e)&&o(n)&&void 0!==n.stack&&(r=!0)}}),e.stacked||r){var s={};ut.each(n,function(n,a){var r=i.getDatasetMeta(a),l=[r.type,void 0===e.stacked&&void 0===r.stack?a:"",r.stack].join(".");i.isDatasetVisible(a)&&o(r)&&(void 0===s[l]&&(s[l]=[]),ut.each(n.data,function(e,i){var n=s[l],a=+t.getRightValue(e);isNaN(a)||r.data[i].hidden||a<0||(n[i]=n[i]||0,n[i]+=a)}))}),ut.each(s,function(e){if(e.length>0){var i=ut.min(e),n=ut.max(e);t.min=null===t.min?i:Math.min(t.min,i),t.max=null===t.max?n:Math.max(t.max,n)}})}else ut.each(n,function(e,n){var a=i.getDatasetMeta(n);i.isDatasetVisible(n)&&o(a)&&ut.each(e.data,function(e,i){var n=+t.getRightValue(e);isNaN(n)||a.data[i].hidden||n<0||(null===t.min?t.min=n:n<t.min&&(t.min=n),null===t.max?t.max=n:n>t.max&&(t.max=n),0!==n&&(null===t.minNotZero||n<t.minNotZero)&&(t.minNotZero=n))})});this.handleTickRangeOptions()},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;t.min=_i(e.min,t.min),t.max=_i(e.max,t.max),t.min===t.max&&(0!==t.min&&null!==t.min?(t.min=Math.pow(10,Math.floor(ut.log10(t.min))-1),t.max=Math.pow(10,Math.floor(ut.log10(t.max))+1)):(t.min=1,t.max=10)),null===t.min&&(t.min=Math.pow(10,Math.floor(ut.log10(t.max))-1)),null===t.max&&(t.max=0!==t.min?Math.pow(10,Math.floor(ut.log10(t.min))+1):10),null===t.minNotZero&&(t.min>0?t.minNotZero=t.min:t.max<1?t.minNotZero=Math.pow(10,Math.floor(ut.log10(t.max))):t.minNotZero=1)},buildTicks:function(){var t=this,e=t.options.ticks,i=!t.isHorizontal(),n={min:_i(e.min),max:_i(e.max)},a=t.ticks=function(t,e){var i,n,a=[],o=wi(t.min,Math.pow(10,Math.floor(ut.log10(e.min)))),r=Math.floor(ut.log10(e.max)),s=Math.ceil(e.max/Math.pow(10,r));0===o?(i=Math.floor(ut.log10(e.minNotZero)),n=Math.floor(e.minNotZero/Math.pow(10,i)),a.push(o),o=n*Math.pow(10,i)):(i=Math.floor(ut.log10(o)),n=Math.floor(o/Math.pow(10,i)));var l=i<0?Math.pow(10,Math.abs(i)):1;do{a.push(o),10==++n&&(n=1,l=++i>=0?1:l),o=Math.round(n*Math.pow(10,i)*l)/l}while(i<r||i===r&&n<s);var d=wi(t.max,o);return a.push(d),a}(n,t);t.max=ut.max(a),t.min=ut.min(a),e.reverse?(i=!i,t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max),i&&a.reverse()},convertTicksToLabels:function(){this.tickValues=this.ticks.slice(),fi.prototype.convertTicksToLabels.call(this)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForTick:function(t){return this.getPixelForValue(this.tickValues[t])},_getFirstTickValue:function(t){var e=Math.floor(ut.log10(t));return Math.floor(t/Math.pow(10,e))*Math.pow(10,e)},getPixelForValue:function(t){var e,i,n,a,o,r=this,s=r.options.ticks,l=s.reverse,d=ut.log10,u=r._getFirstTickValue(r.minNotZero),h=0;return t=+r.getRightValue(t),l?(n=r.end,a=r.start,o=-1):(n=r.start,a=r.end,o=1),r.isHorizontal()?(e=r.width,i=l?r.right:r.left):(e=r.height,o*=-1,i=l?r.top:r.bottom),t!==n&&(0===n&&(e-=h=wi(s.fontSize,st.global.defaultFontSize),n=u),0!==t&&(h+=e/(d(a)-d(n))*(d(t)-d(n))),i+=o*h),i},getValueForPixel:function(t){var e,i,n,a,o=this,r=o.options.ticks,s=r.reverse,l=ut.log10,d=o._getFirstTickValue(o.minNotZero);if(s?(i=o.end,n=o.start):(i=o.start,n=o.end),o.isHorizontal()?(e=o.width,a=s?o.right-t:t-o.left):(e=o.height,a=s?t-o.top:o.bottom-t),a!==i){if(0===i){var u=wi(r.fontSize,st.global.defaultFontSize);a-=u,e-=u,i=d}a*=l(n)-l(i),a/=e,a=Math.pow(10,l(i)+a)}return a}}),Si=Mi;Ci._defaults=Si;var Pi=ut.valueOrDefault,Ii=ut.valueAtIndexOrDefault,Ai=ut.options.resolve,Di={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1,borderDash:[],borderDashOffset:0},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:li.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(t){return t}}};function Ti(t){var e=t.options;return e.angleLines.display||e.pointLabels.display?t.chart.data.labels.length:0}function Fi(t){var e=t.ticks;return e.display&&t.display?Pi(e.fontSize,st.global.defaultFontSize)+2*e.backdropPaddingY:0}function Li(t,e,i,n,a){return t===n||t===a?{start:e-i/2,end:e+i/2}:t<n||t>a?{start:e-i,end:e}:{start:e,end:e+i}}function Ri(t){return 0===t||180===t?"center":t<180?"left":"right"}function Oi(t,e,i,n){var a,o,r=i.y+n/2;if(ut.isArray(e))for(a=0,o=e.length;a<o;++a)t.fillText(e[a],i.x,r),r+=n;else t.fillText(e,i.x,r)}function zi(t,e,i){90===t||270===t?i.y-=e.h/2:(t>270||t<90)&&(i.y-=e.h)}function Bi(t){return ut.isNumber(t)?t:0}var Ni=bi.extend({setDimensions:function(){var t=this;t.width=t.maxWidth,t.height=t.maxHeight,t.paddingTop=Fi(t.options)/2,t.xCenter=Math.floor(t.width/2),t.yCenter=Math.floor((t.height-t.paddingTop)/2),t.drawingArea=Math.min(t.height-t.paddingTop,t.width)/2},determineDataLimits:function(){var t=this,e=t.chart,i=Number.POSITIVE_INFINITY,n=Number.NEGATIVE_INFINITY;ut.each(e.data.datasets,function(a,o){if(e.isDatasetVisible(o)){var r=e.getDatasetMeta(o);ut.each(a.data,function(e,a){var o=+t.getRightValue(e);isNaN(o)||r.data[a].hidden||(i=Math.min(o,i),n=Math.max(o,n))})}}),t.min=i===Number.POSITIVE_INFINITY?0:i,t.max=n===Number.NEGATIVE_INFINITY?0:n,t.handleTickRangeOptions()},_computeTickLimit:function(){return Math.ceil(this.drawingArea/Fi(this.options))},convertTicksToLabels:function(){var t=this;bi.prototype.convertTicksToLabels.call(t),t.pointLabels=t.chart.data.labels.map(t.options.pointLabels.callback,t)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},fit:function(){var t=this.options;t.display&&t.pointLabels.display?function(t){var e,i,n,a=ut.options._parseFont(t.options.pointLabels),o={l:0,r:t.width,t:0,b:t.height-t.paddingTop},r={};t.ctx.font=a.string,t._pointLabelSizes=[];var s,l,d,u=Ti(t);for(e=0;e<u;e++){n=t.getPointPosition(e,t.drawingArea+5),s=t.ctx,l=a.lineHeight,d=t.pointLabels[e]||"",i=ut.isArray(d)?{w:ut.longestText(s,s.font,d),h:d.length*l}:{w:s.measureText(d).width,h:l},t._pointLabelSizes[e]=i;var h=t.getIndexAngle(e),c=ut.toDegrees(h)%360,f=Li(c,n.x,i.w,0,180),g=Li(c,n.y,i.h,90,270);f.start<o.l&&(o.l=f.start,r.l=h),f.end>o.r&&(o.r=f.end,r.r=h),g.start<o.t&&(o.t=g.start,r.t=h),g.end>o.b&&(o.b=g.end,r.b=h)}t.setReductions(t.drawingArea,o,r)}(this):this.setCenterPoint(0,0,0,0)},setReductions:function(t,e,i){var n=this,a=e.l/Math.sin(i.l),o=Math.max(e.r-n.width,0)/Math.sin(i.r),r=-e.t/Math.cos(i.t),s=-Math.max(e.b-(n.height-n.paddingTop),0)/Math.cos(i.b);a=Bi(a),o=Bi(o),r=Bi(r),s=Bi(s),n.drawingArea=Math.min(Math.floor(t-(a+o)/2),Math.floor(t-(r+s)/2)),n.setCenterPoint(a,o,r,s)},setCenterPoint:function(t,e,i,n){var a=this,o=a.width-e-a.drawingArea,r=t+a.drawingArea,s=i+a.drawingArea,l=a.height-a.paddingTop-n-a.drawingArea;a.xCenter=Math.floor((r+o)/2+a.left),a.yCenter=Math.floor((s+l)/2+a.top+a.paddingTop)},getIndexAngle:function(t){return t*(2*Math.PI/Ti(this))+(this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0)*Math.PI*2/360},getDistanceFromCenterForValue:function(t){var e=this;if(null===t)return 0;var i=e.drawingArea/(e.max-e.min);return e.options.ticks.reverse?(e.max-t)*i:(t-e.min)*i},getPointPosition:function(t,e){var i=this.getIndexAngle(t)-Math.PI/2;return{x:Math.cos(i)*e+this.xCenter,y:Math.sin(i)*e+this.yCenter}},getPointPositionForValue:function(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))},getBasePosition:function(){var t=this.min,e=this.max;return this.getPointPositionForValue(0,this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0)},draw:function(){var t=this,e=t.options,i=e.gridLines,n=e.ticks;if(e.display){var a=t.ctx,o=this.getIndexAngle(0),r=ut.options._parseFont(n);(e.angleLines.display||e.pointLabels.display)&&function(t){var e=t.ctx,i=t.options,n=i.angleLines,a=i.gridLines,o=i.pointLabels,r=Pi(n.lineWidth,a.lineWidth),s=Pi(n.color,a.color),l=Fi(i);e.save(),e.lineWidth=r,e.strokeStyle=s,e.setLineDash&&(e.setLineDash(Ai([n.borderDash,a.borderDash,[]])),e.lineDashOffset=Ai([n.borderDashOffset,a.borderDashOffset,0]));var d=t.getDistanceFromCenterForValue(i.ticks.reverse?t.min:t.max),u=ut.options._parseFont(o);e.font=u.string,e.textBaseline="middle";for(var h=Ti(t)-1;h>=0;h--){if(n.display&&r&&s){var c=t.getPointPosition(h,d);e.beginPath(),e.moveTo(t.xCenter,t.yCenter),e.lineTo(c.x,c.y),e.stroke()}if(o.display){var f=0===h?l/2:0,g=t.getPointPosition(h,d+f+5),p=Ii(o.fontColor,h,st.global.defaultFontColor);e.fillStyle=p;var m=t.getIndexAngle(h),v=ut.toDegrees(m);e.textAlign=Ri(v),zi(v,t._pointLabelSizes[h],g),Oi(e,t.pointLabels[h]||"",g,u.lineHeight)}}e.restore()}(t),ut.each(t.ticks,function(e,s){if(s>0||n.reverse){var l=t.getDistanceFromCenterForValue(t.ticksAsNumbers[s]);if(i.display&&0!==s&&function(t,e,i,n){var a,o=t.ctx,r=e.circular,s=Ti(t),l=Ii(e.color,n-1),d=Ii(e.lineWidth,n-1);if((r||s)&&l&&d){if(o.save(),o.strokeStyle=l,o.lineWidth=d,o.setLineDash&&(o.setLineDash(e.borderDash||[]),o.lineDashOffset=e.borderDashOffset||0),o.beginPath(),r)o.arc(t.xCenter,t.yCenter,i,0,2*Math.PI);else{a=t.getPointPosition(0,i),o.moveTo(a.x,a.y);for(var u=1;u<s;u++)a=t.getPointPosition(u,i),o.lineTo(a.x,a.y)}o.closePath(),o.stroke(),o.restore()}}(t,i,l,s),n.display){var d=Pi(n.fontColor,st.global.defaultFontColor);if(a.font=r.string,a.save(),a.translate(t.xCenter,t.yCenter),a.rotate(o),n.showLabelBackdrop){var u=a.measureText(e).width;a.fillStyle=n.backdropColor,a.fillRect(-u/2-n.backdropPaddingX,-l-r.size/2-n.backdropPaddingY,u+2*n.backdropPaddingX,r.size+2*n.backdropPaddingY)}a.textAlign="center",a.textBaseline="middle",a.fillStyle=d,a.fillText(e,0,-l),a.restore()}}})}}}),Wi=Di;Ni._defaults=Wi;var Vi=ut.valueOrDefault,Ei=Number.MIN_SAFE_INTEGER||-9007199254740991,Hi=Number.MAX_SAFE_INTEGER||9007199254740991,ji={millisecond:{common:!0,size:1,steps:[1,2,5,10,20,50,100,250,500]},second:{common:!0,size:1e3,steps:[1,2,5,10,15,30]},minute:{common:!0,size:6e4,steps:[1,2,5,10,15,30]},hour:{common:!0,size:36e5,steps:[1,2,3,6,12]},day:{common:!0,size:864e5,steps:[1,2,5]},week:{common:!1,size:6048e5,steps:[1,2,3,4]},month:{common:!0,size:2628e6,steps:[1,2,3]},quarter:{common:!1,size:7884e6,steps:[1,2,3,4]},year:{common:!0,size:3154e7}},qi=Object.keys(ji);function Yi(t,e){return t-e}function Ui(t){var e,i,n,a={},o=[];for(e=0,i=t.length;e<i;++e)a[n=t[e]]||(a[n]=!0,o.push(n));return o}function Xi(t,e,i,n){var a=function(t,e,i){for(var n,a,o,r=0,s=t.length-1;r>=0&&r<=s;){if(a=t[(n=r+s>>1)-1]||null,o=t[n],!a)return{lo:null,hi:o};if(o[e]<i)r=n+1;else{if(!(a[e]>i))return{lo:a,hi:o};s=n-1}}return{lo:o,hi:null}}(t,e,i),o=a.lo?a.hi?a.lo:t[t.length-2]:t[0],r=a.lo?a.hi?a.hi:t[t.length-1]:t[1],s=r[e]-o[e],l=s?(i-o[e])/s:0,d=(r[n]-o[n])*l;return o[n]+d}function Ki(t,e){var i=t._adapter,n=t.options.time,a=n.parser,o=a||n.format,r=e;return"function"==typeof a&&(r=a(r)),ut.isFinite(r)||(r="string"==typeof o?i.parse(r,o):i.parse(r)),null!==r?+r:(a||"function"!=typeof o||(r=o(e),ut.isFinite(r)||(r=i.parse(r))),r)}function Gi(t,e){if(ut.isNullOrUndef(e))return null;var i=t.options.time,n=Ki(t,t.getRightValue(e));return null===n?n:(i.round&&(n=+t._adapter.startOf(n,i.round)),n)}function Zi(t){for(var e=qi.indexOf(t)+1,i=qi.length;e<i;++e)if(ji[qi[e]].common)return qi[e]}function $i(t,e,i,n){var a,o=t._adapter,r=t.options,s=r.time,l=s.unit||function(t,e,i,n){var a,o,r,s=qi.length;for(a=qi.indexOf(t);a<s-1;++a)if(r=(o=ji[qi[a]]).steps?o.steps[o.steps.length-1]:Hi,o.common&&Math.ceil((i-e)/(r*o.size))<=n)return qi[a];return qi[s-1]}(s.minUnit,e,i,n),d=Zi(l),u=Vi(s.stepSize,s.unitStepSize),h="week"===l&&s.isoWeekday,c=r.ticks.major.enabled,f=ji[l],g=e,p=i,m=[];for(u||(u=function(t,e,i,n){var a,o,r,s=e-t,l=ji[i],d=l.size,u=l.steps;if(!u)return Math.ceil(s/(n*d));for(a=0,o=u.length;a<o&&(r=u[a],!(Math.ceil(s/(d*r))<=n));++a);return r}(e,i,l,n)),h&&(g=+o.startOf(g,"isoWeek",h),p=+o.startOf(p,"isoWeek",h)),g=+o.startOf(g,h?"day":l),(p=+o.startOf(p,h?"day":l))<i&&(p=+o.add(p,1,l)),a=g,c&&d&&!h&&!s.round&&(a=+o.startOf(a,d),a=+o.add(a,~~((g-a)/(f.size*u))*u,l));a<p;a=+o.add(a,u,l))m.push(+a);return m.push(+a),m}var Ji=fi.extend({initialize:function(){this.mergeTicksOptions(),fi.prototype.initialize.call(this)},update:function(){var t=this.options,e=t.time||(t.time={}),i=this._adapter=new si._date(t.adapters.date);return e.format&&console.warn("options.time.format is deprecated and replaced by options.time.parser."),ut.mergeIf(e.displayFormats,i.formats()),fi.prototype.update.apply(this,arguments)},getRightValue:function(t){return t&&void 0!==t.t&&(t=t.t),fi.prototype.getRightValue.call(this,t)},determineDataLimits:function(){var t,e,i,n,a,o,r=this,s=r.chart,l=r._adapter,d=r.options.time,u=d.unit||"day",h=Hi,c=Ei,f=[],g=[],p=[],m=s.data.labels||[];for(t=0,i=m.length;t<i;++t)p.push(Gi(r,m[t]));for(t=0,i=(s.data.datasets||[]).length;t<i;++t)if(s.isDatasetVisible(t))if(a=s.data.datasets[t].data,ut.isObject(a[0]))for(g[t]=[],e=0,n=a.length;e<n;++e)o=Gi(r,a[e]),f.push(o),g[t][e]=o;else{for(e=0,n=p.length;e<n;++e)f.push(p[e]);g[t]=p.slice(0)}else g[t]=[];p.length&&(p=Ui(p).sort(Yi),h=Math.min(h,p[0]),c=Math.max(c,p[p.length-1])),f.length&&(f=Ui(f).sort(Yi),h=Math.min(h,f[0]),c=Math.max(c,f[f.length-1])),h=Gi(r,d.min)||h,c=Gi(r,d.max)||c,h=h===Hi?+l.startOf(Date.now(),u):h,c=c===Ei?+l.endOf(Date.now(),u)+1:c,r.min=Math.min(h,c),r.max=Math.max(h+1,c),r._horizontal=r.isHorizontal(),r._table=[],r._timestamps={data:f,datasets:g,labels:p}},buildTicks:function(){var t,e,i,n=this,a=n.min,o=n.max,r=n.options,s=r.time,l=[],d=[];switch(r.ticks.source){case"data":l=n._timestamps.data;break;case"labels":l=n._timestamps.labels;break;case"auto":default:l=$i(n,a,o,n.getLabelCapacity(a))}for("ticks"===r.bounds&&l.length&&(a=l[0],o=l[l.length-1]),a=Gi(n,s.min)||a,o=Gi(n,s.max)||o,t=0,e=l.length;t<e;++t)(i=l[t])>=a&&i<=o&&d.push(i);return n.min=a,n.max=o,n._unit=s.unit||function(t,e,i,n,a){var o,r;for(o=qi.length-1;o>=qi.indexOf(i);o--)if(r=qi[o],ji[r].common&&t._adapter.diff(a,n,r)>=e.length)return r;return qi[i?qi.indexOf(i):0]}(n,d,s.minUnit,n.min,n.max),n._majorUnit=Zi(n._unit),n._table=function(t,e,i,n){if("linear"===n||!t.length)return[{time:e,pos:0},{time:i,pos:1}];var a,o,r,s,l,d=[],u=[e];for(a=0,o=t.length;a<o;++a)(s=t[a])>e&&s<i&&u.push(s);for(u.push(i),a=0,o=u.length;a<o;++a)l=u[a+1],r=u[a-1],s=u[a],void 0!==r&&void 0!==l&&Math.round((l+r)/2)===s||d.push({time:s,pos:a/(o-1)});return d}(n._timestamps.data,a,o,r.distribution),n._offsets=function(t,e,i,n,a){var o,r,s=0,l=0;return a.offset&&e.length&&(a.time.min||(o=Xi(t,"time",e[0],"pos"),s=1===e.length?1-o:(Xi(t,"time",e[1],"pos")-o)/2),a.time.max||(r=Xi(t,"time",e[e.length-1],"pos"),l=1===e.length?r:(r-Xi(t,"time",e[e.length-2],"pos"))/2)),{start:s,end:l}}(n._table,d,0,0,r),r.ticks.reverse&&d.reverse(),function(t,e,i){var n,a,o,r,s=[];for(n=0,a=e.length;n<a;++n)o=e[n],r=!!i&&o===+t._adapter.startOf(o,i),s.push({value:o,major:r});return s}(n,d,n._majorUnit)},getLabelForIndex:function(t,e){var i=this,n=i._adapter,a=i.chart.data,o=i.options.time,r=a.labels&&t<a.labels.length?a.labels[t]:"",s=a.datasets[e].data[t];return ut.isObject(s)&&(r=i.getRightValue(s)),o.tooltipFormat?n.format(Ki(i,r),o.tooltipFormat):"string"==typeof r?r:n.format(Ki(i,r),o.displayFormats.datetime)},tickFormatFunction:function(t,e,i,n){var a=this._adapter,o=this.options,r=o.time.displayFormats,s=r[this._unit],l=this._majorUnit,d=r[l],u=+a.startOf(t,l),h=o.ticks.major,c=h.enabled&&l&&d&&t===u,f=a.format(t,n||(c?d:s)),g=c?h:o.ticks.minor,p=Vi(g.callback,g.userCallback);return p?p(f,e,i):f},convertTicksToLabels:function(t){var e,i,n=[];for(e=0,i=t.length;e<i;++e)n.push(this.tickFormatFunction(t[e].value,e,t));return n},getPixelForOffset:function(t){var e=this,i=e.options.ticks.reverse,n=e._horizontal?e.width:e.height,a=e._horizontal?i?e.right:e.left:i?e.bottom:e.top,o=Xi(e._table,"time",t,"pos"),r=n*(e._offsets.start+o)/(e._offsets.start+1+e._offsets.end);return i?a-r:a+r},getPixelForValue:function(t,e,i){var n=null;if(void 0!==e&&void 0!==i&&(n=this._timestamps.datasets[i][e]),null===n&&(n=Gi(this,t)),null!==n)return this.getPixelForOffset(n)},getPixelForTick:function(t){var e=this.getTicks();return t>=0&&t<e.length?this.getPixelForOffset(e[t].value):null},getValueForPixel:function(t){var e=this,i=e._horizontal?e.width:e.height,n=e._horizontal?e.left:e.top,a=(i?(t-n)/i:0)*(e._offsets.start+1+e._offsets.start)-e._offsets.end,o=Xi(e._table,"pos",a,"time");return e._adapter._create(o)},getLabelWidth:function(t){var e=this.options.ticks,i=this.ctx.measureText(t).width,n=ut.toRadians(e.maxRotation),a=Math.cos(n),o=Math.sin(n);return i*a+Vi(e.fontSize,st.global.defaultFontSize)*o},getLabelCapacity:function(t){var e=this,i=e.options.time.displayFormats.millisecond,n=e.tickFormatFunction(t,0,[],i),a=e.getLabelWidth(n),o=e.isHorizontal()?e.width:e.height,r=Math.floor(o/a);return r>0?r:1}}),Qi={position:"bottom",distribution:"linear",bounds:"data",adapters:{},time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}};Ji._defaults=Qi;var tn={category:gi,linear:yi,logarithmic:Ci,radialLinear:Ni,time:Ji},en={datetime:"MMM D, YYYY, h:mm:ss a",millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"};si._date.override("function"==typeof t?{_id:"moment",formats:function(){return en},parse:function(e,i){return"string"==typeof e&&"string"==typeof i?e=t(e,i):e instanceof t||(e=t(e)),e.isValid()?e.valueOf():null},format:function(e,i){return t(e).format(i)},add:function(e,i,n){return t(e).add(i,n).valueOf()},diff:function(e,i,n){return t.duration(t(e).diff(t(i))).as(n)},startOf:function(e,i,n){return e=t(e),"isoWeek"===i?e.isoWeekday(n).valueOf():e.startOf(i).valueOf()},endOf:function(e,i){return t(e).endOf(i).valueOf()},_create:function(e){return t(e)}}:{}),st._set("global",{plugins:{filler:{propagate:!0}}});var nn={dataset:function(t){var e=t.fill,i=t.chart,n=i.getDatasetMeta(e),a=n&&i.isDatasetVisible(e)&&n.dataset._children||[],o=a.length||0;return o?function(t,e){return e<o&&a[e]._view||null}:null},boundary:function(t){var e=t.boundary,i=e?e.x:null,n=e?e.y:null;return function(t){return{x:null===i?t.x:i,y:null===n?t.y:n}}}};function an(t,e,i){var n,a=t._model||{},o=a.fill;if(void 0===o&&(o=!!a.backgroundColor),!1===o||null===o)return!1;if(!0===o)return"origin";if(n=parseFloat(o,10),isFinite(n)&&Math.floor(n)===n)return"-"!==o[0]&&"+"!==o[0]||(n=e+n),!(n===e||n<0||n>=i)&&n;switch(o){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return o;default:return!1}}function on(t){var e,i=t.el._model||{},n=t.el._scale||{},a=t.fill,o=null;if(isFinite(a))return null;if("start"===a?o=void 0===i.scaleBottom?n.bottom:i.scaleBottom:"end"===a?o=void 0===i.scaleTop?n.top:i.scaleTop:void 0!==i.scaleZero?o=i.scaleZero:n.getBasePosition?o=n.getBasePosition():n.getBasePixel&&(o=n.getBasePixel()),null!=o){if(void 0!==o.x&&void 0!==o.y)return o;if(ut.isFinite(o))return{x:(e=n.isHorizontal())?o:null,y:e?null:o}}return null}function rn(t,e,i){var n,a=t[e].fill,o=[e];if(!i)return a;for(;!1!==a&&-1===o.indexOf(a);){if(!isFinite(a))return a;if(!(n=t[a]))return!1;if(n.visible)return a;o.push(a),a=n.fill}return!1}function sn(t){var e=t.fill,i="dataset";return!1===e?null:(isFinite(e)||(i="boundary"),nn[i](t))}function ln(t){return t&&!t.skip}function dn(t,e,i,n,a){var o;if(n&&a){for(t.moveTo(e[0].x,e[0].y),o=1;o<n;++o)ut.canvas.lineTo(t,e[o-1],e[o]);for(t.lineTo(i[a-1].x,i[a-1].y),o=a-1;o>0;--o)ut.canvas.lineTo(t,i[o],i[o-1],!0)}}var un={id:"filler",afterDatasetsUpdate:function(t,e){var i,n,a,o,r=(t.data.datasets||[]).length,s=e.propagate,l=[];for(n=0;n<r;++n)o=null,(a=(i=t.getDatasetMeta(n)).dataset)&&a._model&&a instanceof Wt.Line&&(o={visible:t.isDatasetVisible(n),fill:an(a,n,r),chart:t,el:a}),i.$filler=o,l.push(o);for(n=0;n<r;++n)(o=l[n])&&(o.fill=rn(l,n,s),o.boundary=on(o),o.mapper=sn(o))},beforeDatasetDraw:function(t,e){var i=e.meta.$filler;if(i){var n=t.ctx,a=i.el,o=a._view,r=a._children||[],s=i.mapper,l=o.backgroundColor||st.global.defaultColor;s&&l&&r.length&&(ut.canvas.clipArea(n,t.chartArea),function(t,e,i,n,a,o){var r,s,l,d,u,h,c,f=e.length,g=n.spanGaps,p=[],m=[],v=0,b=0;for(t.beginPath(),r=0,s=f+!!o;r<s;++r)u=i(d=e[l=r%f]._view,l,n),h=ln(d),c=ln(u),h&&c?(v=p.push(d),b=m.push(u)):v&&b&&(g?(h&&p.push(d),c&&m.push(u)):(dn(t,p,m,v,b),v=b=0,p=[],m=[]));dn(t,p,m,v,b),t.closePath(),t.fillStyle=a,t.fill()}(n,r,s,o,l,a._loop),ut.canvas.unclipArea(n))}}},hn=ut.noop,cn=ut.valueOrDefault;function fn(t,e){return t.usePointStyle&&t.boxWidth>e?e:t.boxWidth}st._set("global",{legend:{display:!0,position:"top",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(t,e){var i=e.datasetIndex,n=this.chart,a=n.getDatasetMeta(i);a.hidden=null===a.hidden?!n.data.datasets[i].hidden:null,n.update()},onHover:null,onLeave:null,labels:{boxWidth:40,padding:10,generateLabels:function(t){var e=t.data;return ut.isArray(e.datasets)?e.datasets.map(function(e,i){return{text:e.label,fillStyle:ut.isArray(e.backgroundColor)?e.backgroundColor[0]:e.backgroundColor,hidden:!t.isDatasetVisible(i),lineCap:e.borderCapStyle,lineDash:e.borderDash,lineDashOffset:e.borderDashOffset,lineJoin:e.borderJoinStyle,lineWidth:e.borderWidth,strokeStyle:e.borderColor,pointStyle:e.pointStyle,datasetIndex:i}},this):[]}}},legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');for(var i=0;i<t.data.datasets.length;i++)e.push('<li><span style="background-color:'+t.data.datasets[i].backgroundColor+'"></span>'),t.data.datasets[i].label&&e.push(t.data.datasets[i].label),e.push("</li>");return e.push("</ul>"),e.join("")}});var gn=pt.extend({initialize:function(t){ut.extend(this,t),this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1},beforeUpdate:hn,update:function(t,e,i){var n=this;return n.beforeUpdate(),n.maxWidth=t,n.maxHeight=e,n.margins=i,n.beforeSetDimensions(),n.setDimensions(),n.afterSetDimensions(),n.beforeBuildLabels(),n.buildLabels(),n.afterBuildLabels(),n.beforeFit(),n.fit(),n.afterFit(),n.afterUpdate(),n.minSize},afterUpdate:hn,beforeSetDimensions:hn,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:hn,beforeBuildLabels:hn,buildLabels:function(){var t=this,e=t.options.labels||{},i=ut.callback(e.generateLabels,[t.chart],t)||[];e.filter&&(i=i.filter(function(i){return e.filter(i,t.chart.data)})),t.options.reverse&&i.reverse(),t.legendItems=i},afterBuildLabels:hn,beforeFit:hn,fit:function(){var t=this,e=t.options,i=e.labels,n=e.display,a=t.ctx,o=ut.options._parseFont(i),r=o.size,s=t.legendHitBoxes=[],l=t.minSize,d=t.isHorizontal();if(d?(l.width=t.maxWidth,l.height=n?10:0):(l.width=n?10:0,l.height=t.maxHeight),n)if(a.font=o.string,d){var u=t.lineWidths=[0],h=0;a.textAlign="left",a.textBaseline="top",ut.each(t.legendItems,function(t,e){var n=fn(i,r)+r/2+a.measureText(t.text).width;(0===e||u[u.length-1]+n+i.padding>l.width)&&(h+=r+i.padding,u[u.length-(e>0?0:1)]=i.padding),s[e]={left:0,top:0,width:n,height:r},u[u.length-1]+=n+i.padding}),l.height+=h}else{var c=i.padding,f=t.columnWidths=[],g=i.padding,p=0,m=0,v=r+c;ut.each(t.legendItems,function(t,e){var n=fn(i,r)+r/2+a.measureText(t.text).width;e>0&&m+v>l.height-c&&(g+=p+i.padding,f.push(p),p=0,m=0),p=Math.max(p,n),m+=v,s[e]={left:0,top:0,width:n,height:r}}),g+=p,f.push(p),l.width+=g}t.width=l.width,t.height=l.height},afterFit:hn,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var t=this,e=t.options,i=e.labels,n=st.global,a=n.defaultColor,o=n.elements.line,r=t.width,s=t.lineWidths;if(e.display){var l,d=t.ctx,u=cn(i.fontColor,n.defaultFontColor),h=ut.options._parseFont(i),c=h.size;d.textAlign="left",d.textBaseline="middle",d.lineWidth=.5,d.strokeStyle=u,d.fillStyle=u,d.font=h.string;var f=fn(i,c),g=t.legendHitBoxes,p=t.isHorizontal();l=p?{x:t.left+(r-s[0])/2+i.padding,y:t.top+i.padding,line:0}:{x:t.left+i.padding,y:t.top+i.padding,line:0};var m=c+i.padding;ut.each(t.legendItems,function(n,u){var h=d.measureText(n.text).width,v=f+c/2+h,b=l.x,x=l.y;p?u>0&&b+v+i.padding>t.left+t.minSize.width&&(x=l.y+=m,l.line++,b=l.x=t.left+(r-s[l.line])/2+i.padding):u>0&&x+m>t.top+t.minSize.height&&(b=l.x=b+t.columnWidths[l.line]+i.padding,x=l.y=t.top+i.padding,l.line++),function(t,i,n){if(!(isNaN(f)||f<=0)){d.save();var r=cn(n.lineWidth,o.borderWidth);if(d.fillStyle=cn(n.fillStyle,a),d.lineCap=cn(n.lineCap,o.borderCapStyle),d.lineDashOffset=cn(n.lineDashOffset,o.borderDashOffset),d.lineJoin=cn(n.lineJoin,o.borderJoinStyle),d.lineWidth=r,d.strokeStyle=cn(n.strokeStyle,a),d.setLineDash&&d.setLineDash(cn(n.lineDash,o.borderDash)),e.labels&&e.labels.usePointStyle){var s=f*Math.SQRT2/2,l=t+f/2,u=i+c/2;ut.canvas.drawPoint(d,n.pointStyle,s,l,u)}else 0!==r&&d.strokeRect(t,i,f,c),d.fillRect(t,i,f,c);d.restore()}}(b,x,n),g[u].left=b,g[u].top=x,function(t,e,i,n){var a=c/2,o=f+a+t,r=e+a;d.fillText(i.text,o,r),i.hidden&&(d.beginPath(),d.lineWidth=2,d.moveTo(o,r),d.lineTo(o+n,r),d.stroke())}(b,x,n,h),p?l.x+=v+i.padding:l.y+=m})}},_getLegendItemAt:function(t,e){var i,n,a,o=this;if(t>=o.left&&t<=o.right&&e>=o.top&&e<=o.bottom)for(a=o.legendHitBoxes,i=0;i<a.length;++i)if(t>=(n=a[i]).left&&t<=n.left+n.width&&e>=n.top&&e<=n.top+n.height)return o.legendItems[i];return null},handleEvent:function(t){var e,i=this,n=i.options,a="mouseup"===t.type?"click":t.type;if("mousemove"===a){if(!n.onHover&&!n.onLeave)return}else{if("click"!==a)return;if(!n.onClick)return}e=i._getLegendItemAt(t.x,t.y),"click"===a?e&&n.onClick&&n.onClick.call(i,t.native,e):(n.onLeave&&e!==i._hoveredItem&&(i._hoveredItem&&n.onLeave.call(i,t.native,i._hoveredItem),i._hoveredItem=e),n.onHover&&e&&n.onHover.call(i,t.native,e))}});function pn(t,e){var i=new gn({ctx:t.ctx,options:e,chart:t});ke.configure(t,i,e),ke.addBox(t,i),t.legend=i}var mn={id:"legend",_element:gn,beforeInit:function(t){var e=t.options.legend;e&&pn(t,e)},beforeUpdate:function(t){var e=t.options.legend,i=t.legend;e?(ut.mergeIf(e,st.global.legend),i?(ke.configure(t,i,e),i.options=e):pn(t,e)):i&&(ke.removeBox(t,i),delete t.legend)},afterEvent:function(t,e){var i=t.legend;i&&i.handleEvent(e)}},vn=ut.noop;st._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,padding:10,position:"top",text:"",weight:2e3}});var bn=pt.extend({initialize:function(t){ut.extend(this,t),this.legendHitBoxes=[]},beforeUpdate:vn,update:function(t,e,i){var n=this;return n.beforeUpdate(),n.maxWidth=t,n.maxHeight=e,n.margins=i,n.beforeSetDimensions(),n.setDimensions(),n.afterSetDimensions(),n.beforeBuildLabels(),n.buildLabels(),n.afterBuildLabels(),n.beforeFit(),n.fit(),n.afterFit(),n.afterUpdate(),n.minSize},afterUpdate:vn,beforeSetDimensions:vn,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:vn,beforeBuildLabels:vn,buildLabels:vn,afterBuildLabels:vn,beforeFit:vn,fit:function(){var t=this,e=t.options,i=e.display,n=t.minSize,a=ut.isArray(e.text)?e.text.length:1,o=ut.options._parseFont(e),r=i?a*o.lineHeight+2*e.padding:0;t.isHorizontal()?(n.width=t.maxWidth,n.height=r):(n.width=r,n.height=t.maxHeight),t.width=n.width,t.height=n.height},afterFit:vn,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var t=this,e=t.ctx,i=t.options;if(i.display){var n,a,o,r=ut.options._parseFont(i),s=r.lineHeight,l=s/2+i.padding,d=0,u=t.top,h=t.left,c=t.bottom,f=t.right;e.fillStyle=ut.valueOrDefault(i.fontColor,st.global.defaultFontColor),e.font=r.string,t.isHorizontal()?(a=h+(f-h)/2,o=u+l,n=f-h):(a="left"===i.position?h+l:f-l,o=u+(c-u)/2,n=c-u,d=Math.PI*("left"===i.position?-.5:.5)),e.save(),e.translate(a,o),e.rotate(d),e.textAlign="center",e.textBaseline="middle";var g=i.text;if(ut.isArray(g))for(var p=0,m=0;m<g.length;++m)e.fillText(g[m],0,p,n),p+=s;else e.fillText(g,0,0,n);e.restore()}}});function xn(t,e){var i=new bn({ctx:t.ctx,options:e,chart:t});ke.configure(t,i,e),ke.addBox(t,i),t.titleBlock=i}var yn={},kn=un,wn=mn,Mn={id:"title",_element:bn,beforeInit:function(t){var e=t.options.title;e&&xn(t,e)},beforeUpdate:function(t){var e=t.options.title,i=t.titleBlock;e?(ut.mergeIf(e,st.global.title),i?(ke.configure(t,i,e),i.options=e):xn(t,e)):i&&(ke.removeBox(t,i),delete t.titleBlock)}};for(var _n in yn.filler=kn,yn.legend=wn,yn.title=Mn,ai.helpers=ut,function(){function t(t,e,i){var n;return"string"==typeof t?(n=parseInt(t,10),-1!==t.indexOf("%")&&(n=n/100*e.parentNode[i])):n=t,n}function e(t){return null!=t&&"none"!==t}function i(i,n,a){var o=document.defaultView,r=ut._getParentNode(i),s=o.getComputedStyle(i)[n],l=o.getComputedStyle(r)[n],d=e(s),u=e(l),h=Number.POSITIVE_INFINITY;return d||u?Math.min(d?t(s,i,a):h,u?t(l,r,a):h):"none"}ut.where=function(t,e){if(ut.isArray(t)&&Array.prototype.filter)return t.filter(e);var i=[];return ut.each(t,function(t){e(t)&&i.push(t)}),i},ut.findIndex=Array.prototype.findIndex?function(t,e,i){return t.findIndex(e,i)}:function(t,e,i){i=void 0===i?t:i;for(var n=0,a=t.length;n<a;++n)if(e.call(i,t[n],n,t))return n;return-1},ut.findNextWhere=function(t,e,i){ut.isNullOrUndef(i)&&(i=-1);for(var n=i+1;n<t.length;n++){var a=t[n];if(e(a))return a}},ut.findPreviousWhere=function(t,e,i){ut.isNullOrUndef(i)&&(i=t.length);for(var n=i-1;n>=0;n--){var a=t[n];if(e(a))return a}},ut.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},ut.almostEquals=function(t,e,i){return Math.abs(t-e)<i},ut.almostWhole=function(t,e){var i=Math.round(t);return i-e<t&&i+e>t},ut.max=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.max(t,e)},Number.NEGATIVE_INFINITY)},ut.min=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.min(t,e)},Number.POSITIVE_INFINITY)},ut.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return 0==(t=+t)||isNaN(t)?t:t>0?1:-1},ut.log10=Math.log10?function(t){return Math.log10(t)}:function(t){var e=Math.log(t)*Math.LOG10E,i=Math.round(e);return t===Math.pow(10,i)?i:e},ut.toRadians=function(t){return t*(Math.PI/180)},ut.toDegrees=function(t){return t*(180/Math.PI)},ut._decimalPlaces=function(t){if(ut.isFinite(t)){for(var e=1,i=0;Math.round(t*e)/e!==t;)e*=10,i++;return i}},ut.getAngleFromPoint=function(t,e){var i=e.x-t.x,n=e.y-t.y,a=Math.sqrt(i*i+n*n),o=Math.atan2(n,i);return o<-.5*Math.PI&&(o+=2*Math.PI),{angle:o,distance:a}},ut.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},ut.aliasPixel=function(t){return t%2==0?0:.5},ut._alignPixel=function(t,e,i){var n=t.currentDevicePixelRatio,a=i/2;return Math.round((e-a)*n)/n+a},ut.splineCurve=function(t,e,i,n){var a=t.skip?e:t,o=e,r=i.skip?e:i,s=Math.sqrt(Math.pow(o.x-a.x,2)+Math.pow(o.y-a.y,2)),l=Math.sqrt(Math.pow(r.x-o.x,2)+Math.pow(r.y-o.y,2)),d=s/(s+l),u=l/(s+l),h=n*(d=isNaN(d)?0:d),c=n*(u=isNaN(u)?0:u);return{previous:{x:o.x-h*(r.x-a.x),y:o.y-h*(r.y-a.y)},next:{x:o.x+c*(r.x-a.x),y:o.y+c*(r.y-a.y)}}},ut.EPSILON=Number.EPSILON||1e-14,ut.splineCurveMonotone=function(t){var e,i,n,a,o,r,s,l,d,u=(t||[]).map(function(t){return{model:t._model,deltaK:0,mK:0}}),h=u.length;for(e=0;e<h;++e)if(!(n=u[e]).model.skip){if(i=e>0?u[e-1]:null,(a=e<h-1?u[e+1]:null)&&!a.model.skip){var c=a.model.x-n.model.x;n.deltaK=0!==c?(a.model.y-n.model.y)/c:0}!i||i.model.skip?n.mK=n.deltaK:!a||a.model.skip?n.mK=i.deltaK:this.sign(i.deltaK)!==this.sign(n.deltaK)?n.mK=0:n.mK=(i.deltaK+n.deltaK)/2}for(e=0;e<h-1;++e)n=u[e],a=u[e+1],n.model.skip||a.model.skip||(ut.almostEquals(n.deltaK,0,this.EPSILON)?n.mK=a.mK=0:(o=n.mK/n.deltaK,r=a.mK/n.deltaK,(l=Math.pow(o,2)+Math.pow(r,2))<=9||(s=3/Math.sqrt(l),n.mK=o*s*n.deltaK,a.mK=r*s*n.deltaK)));for(e=0;e<h;++e)(n=u[e]).model.skip||(i=e>0?u[e-1]:null,a=e<h-1?u[e+1]:null,i&&!i.model.skip&&(d=(n.model.x-i.model.x)/3,n.model.controlPointPreviousX=n.model.x-d,n.model.controlPointPreviousY=n.model.y-d*n.mK),a&&!a.model.skip&&(d=(a.model.x-n.model.x)/3,n.model.controlPointNextX=n.model.x+d,n.model.controlPointNextY=n.model.y+d*n.mK))},ut.nextItem=function(t,e,i){return i?e>=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},ut.previousItem=function(t,e,i){return i?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},ut.niceNum=function(t,e){var i=Math.floor(ut.log10(t)),n=t/Math.pow(10,i);return(e?n<1.5?1:n<3?2:n<7?5:10:n<=1?1:n<=2?2:n<=5?5:10)*Math.pow(10,i)},ut.requestAnimFrame="undefined"==typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)},ut.getRelativePosition=function(t,e){var i,n,a=t.originalEvent||t,o=t.target||t.srcElement,r=o.getBoundingClientRect(),s=a.touches;s&&s.length>0?(i=s[0].clientX,n=s[0].clientY):(i=a.clientX,n=a.clientY);var l=parseFloat(ut.getStyle(o,"padding-left")),d=parseFloat(ut.getStyle(o,"padding-top")),u=parseFloat(ut.getStyle(o,"padding-right")),h=parseFloat(ut.getStyle(o,"padding-bottom")),c=r.right-r.left-l-u,f=r.bottom-r.top-d-h;return{x:i=Math.round((i-r.left-l)/c*o.width/e.currentDevicePixelRatio),y:n=Math.round((n-r.top-d)/f*o.height/e.currentDevicePixelRatio)}},ut.getConstraintWidth=function(t){return i(t,"max-width","clientWidth")},ut.getConstraintHeight=function(t){return i(t,"max-height","clientHeight")},ut._calculatePadding=function(t,e,i){return(e=ut.getStyle(t,e)).indexOf("%")>-1?i*parseInt(e,10)/100:parseInt(e,10)},ut._getParentNode=function(t){var e=t.parentNode;return e&&"[object ShadowRoot]"===e.toString()&&(e=e.host),e},ut.getMaximumWidth=function(t){var e=ut._getParentNode(t);if(!e)return t.clientWidth;var i=e.clientWidth,n=i-ut._calculatePadding(e,"padding-left",i)-ut._calculatePadding(e,"padding-right",i),a=ut.getConstraintWidth(t);return isNaN(a)?n:Math.min(n,a)},ut.getMaximumHeight=function(t){var e=ut._getParentNode(t);if(!e)return t.clientHeight;var i=e.clientHeight,n=i-ut._calculatePadding(e,"padding-top",i)-ut._calculatePadding(e,"padding-bottom",i),a=ut.getConstraintHeight(t);return isNaN(a)?n:Math.min(n,a)},ut.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},ut.retinaScale=function(t,e){var i=t.currentDevicePixelRatio=e||"undefined"!=typeof window&&window.devicePixelRatio||1;if(1!==i){var n=t.canvas,a=t.height,o=t.width;n.height=a*i,n.width=o*i,t.ctx.scale(i,i),n.style.height||n.style.width||(n.style.height=a+"px",n.style.width=o+"px")}},ut.fontString=function(t,e,i){return e+" "+t+"px "+i},ut.longestText=function(t,e,i,n){var a=(n=n||{}).data=n.data||{},o=n.garbageCollect=n.garbageCollect||[];n.font!==e&&(a=n.data={},o=n.garbageCollect=[],n.font=e),t.font=e;var r=0;ut.each(i,function(e){null!=e&&!0!==ut.isArray(e)?r=ut.measureText(t,a,o,r,e):ut.isArray(e)&&ut.each(e,function(e){null==e||ut.isArray(e)||(r=ut.measureText(t,a,o,r,e))})});var s=o.length/2;if(s>i.length){for(var l=0;l<s;l++)delete a[o[l]];o.splice(0,s)}return r},ut.measureText=function(t,e,i,n,a){var o=e[a];return o||(o=e[a]=t.measureText(a).width,i.push(a)),o>n&&(n=o),n},ut.numberOfLabelLines=function(t){var e=1;return ut.each(t,function(t){ut.isArray(t)&&t.length>e&&(e=t.length)}),e},ut.color=X?function(t){return t instanceof CanvasGradient&&(t=st.global.defaultColor),X(t)}:function(t){return console.error("Color.js not found!"),t},ut.getHoverColor=function(t){return t instanceof CanvasPattern||t instanceof CanvasGradient?t:ut.color(t).saturate(.5).darken(.1).rgbString()}}(),ai._adapters=si,ai.Animation=vt,ai.animationService=bt,ai.controllers=ue,ai.DatasetController=Mt,ai.defaults=st,ai.Element=pt,ai.elements=Wt,ai.Interaction=ve,ai.layouts=ke,ai.platform=Ve,ai.plugins=Ee,ai.Scale=fi,ai.scaleService=He,ai.Ticks=li,ai.Tooltip=Je,ai.helpers.each(tn,function(t,e){ai.scaleService.registerScaleType(e,t,t._defaults)}),yn)yn.hasOwnProperty(_n)&&ai.plugins.register(yn[_n]);ai.platform.initialize();var Cn=ai;return"undefined"!=typeof window&&(window.Chart=ai),ai.Chart=ai,ai.Legend=yn.legend._element,ai.Title=yn.title._element,ai.pluginService=ai.plugins,ai.PluginBase=ai.Element.extend({}),ai.canvasHelpers=ai.helpers.canvas,ai.layoutService=ai.layouts,ai.LinearScaleBase=bi,ai.helpers.each(["Bar","Bubble","Doughnut","Line","PolarArea","Radar","Scatter"],function(t){ai[t]=function(e,i){return new ai(e,ai.helpers.merge(i||{},{type:t.charAt(0).toLowerCase()+t.slice(1)}))}}),Cn}); diff --git a/base_accounting_kit/static/lib/bootstrap-toggle-master/Gruntfile.js b/base_accounting_kit/static/lib/bootstrap-toggle-master/Gruntfile.js new file mode 100644 index 0000000..9ac6fc5 --- /dev/null +++ b/base_accounting_kit/static/lib/bootstrap-toggle-master/Gruntfile.js @@ -0,0 +1,37 @@ +module.exports = function(grunt) { + 'use strict'; + + grunt.initConfig({ + clean: ['dist'], + uglify: { + options: { + preserveComments: 'some', + sourceMap: true + }, + build: { + expand: true, + cwd: 'js', + src: ['**/*.js', ['!**/*.min.js']], + dest: 'js', + ext: '.min.js', + } + }, + cssmin: { + options: { + keepBreaks: true + }, + build: { + expand: true, + cwd: 'css', + src: ['**/*.css', ['!**/*.min.css']], + dest: 'css', + ext: '.min.css', + } + } + }); + grunt.loadNpmTasks('grunt-contrib-clean'); + grunt.loadNpmTasks('grunt-contrib-uglify'); + grunt.loadNpmTasks('grunt-contrib-cssmin'); + grunt.registerTask('default', ['clean', 'uglify', 'cssmin']); + +};
\ No newline at end of file diff --git a/base_accounting_kit/static/lib/bootstrap-toggle-master/LICENSE b/base_accounting_kit/static/lib/bootstrap-toggle-master/LICENSE new file mode 100644 index 0000000..88bb5ab --- /dev/null +++ b/base_accounting_kit/static/lib/bootstrap-toggle-master/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2011-2014 Min Hur, The New York Times Company + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE.
\ No newline at end of file diff --git a/base_accounting_kit/static/lib/bootstrap-toggle-master/README.md b/base_accounting_kit/static/lib/bootstrap-toggle-master/README.md new file mode 100644 index 0000000..301ff03 --- /dev/null +++ b/base_accounting_kit/static/lib/bootstrap-toggle-master/README.md @@ -0,0 +1,175 @@ +# Bootstrap Toggle +Bootstrap Toggle is a highly flexible Bootstrap plugin that converts checkboxes into toggles. + +Visit http://www.bootstraptoggle.com for demos. + +## Getting Started + +### Installation +You can [download](https://github.com/minhur/bootstrap-toggle/archive/master.zip) the latest version of Bootstrap Toggle or use CDN to load the library. + +`Warning` If you are using Bootstrap v2.3.2, use `bootstrap2-toggle.min.js` and `bootstrap2-toggle.min.css` instead. + +```html +<link href="https://gitcdn.github.io/bootstrap-toggle/2.2.2/css/bootstrap-toggle.min.css" rel="stylesheet"> +<script src="https://gitcdn.github.io/bootstrap-toggle/2.2.2/js/bootstrap-toggle.min.js"></script> +``` + +### Bower Install +```bash +bower install bootstrap-toggle +``` + +## Usage + +### Basic example +Simply add `data-toggle="toggle"` to convert checkboxes into toggles. + +```html +<input type="checkbox" checked data-toggle="toggle"> +``` + +### Stacked checkboxes +Refer to Bootstrap Form Controls documentation to create stacked checkboxes. Simply add `data-toggle="toggle"` to convert checkboxes into toggles. + +```html +<div class="checkbox"> + <label> + <input type="checkbox" data-toggle="toggle"> + Option one is enabled + </label> +</div> +<div class="checkbox disabled"> + <label> + <input type="checkbox" disabled data-toggle="toggle"> + Option two is disabled + </label> +</div> +``` + +### Inline Checkboxes +Refer to Bootstrap Form Controls documentation to create inline checkboxes. Simply add `data-toggle="toggle"` to a convert checkboxes into toggles. + +```html +<label class="checkbox-inline"> + <input type="checkbox" checked data-toggle="toggle"> First +</label> +<label class="checkbox-inline"> + <input type="checkbox" data-toggle="toggle"> Second +</label> +<label class="checkbox-inline"> + <input type="checkbox" data-toggle="toggle"> Third +</label> +``` + +## API + +### Initialize by JavaScript +Initialize toggles with id `toggle-one` with a single line of JavaScript. + +```html +<input id="toggle-one" checked type="checkbox"> +<script> + $(function() { + $('#toggle-one').bootstrapToggle(); + }) +</script> +``` + +### Options +Options can be passed via data attributes or JavaScript. For data attributes, append the option name to `data-`, as in `data-on="Enabled"`. + +```html +<input type="checkbox" data-toggle="toggle" data-on="Enabled" data-off="Disabled"> +<input type="checkbox" id="toggle-two"> +<script> + $(function() { + $('#toggle-two').bootstrapToggle({ + on: 'Enabled', + off: 'Disabled' + }); + }) +</script> +``` + +Name|Type|Default|Description| +---|---|---|--- +on|string/html|"On"|Text of the on toggle +off|string/html|"Off"|Text of the off toggle +size|string|"normal"|Size of the toggle. Possible values are `large`, `normal`, `small`, `mini`. +onstyle|string|"primary"|Style of the on toggle. Possible values are `default`, `primary`, `success`, `info`, `warning`, `danger` +offstyle|string|"default"|Style of the off toggle. Possible values are `default`, `primary`, `success`, `info`, `warning`, `danger` +style|string| |Appends the value to the class attribute of the toggle. This can be used to apply custom styles. Refer to Custom Styles for reference. +width|integer|*null*|Sets the width of the toggle. if set to *null*, width will be calculated. +height|integer|*null*|Sets the height of the toggle. if set to *null*, height will be calculated. + +### Methods +Methods can be used to control toggles directly. + +```html +<input id="toggle-demo" type="checkbox" data-toggle="toggle"> +``` + +Method|Example|Description +---|---|--- +initialize|$('#toggle-demo').bootstrapToggle()|Initializes the toggle plugin with options +destroy|$('#toggle-demo').bootstrapToggle('destroy')|Destroys the toggle +on|$('#toggle-demo').bootstrapToggle('on')|Sets the toggle to 'On' state +off|$('#toggle-demo').bootstrapToggle('off')|Sets the toggle to 'Off' state +toggle|$('#toggle-demo').bootstrapToggle('toggle')|Toggles the state of the toggle +enable|$('#toggle-demo').bootstrapToggle('enable')|Enables the toggle +disable|$('#toggle-demo').bootstrapToggle('disable')|Disables the toggle + +## Events + +### Event Propagation +Note All events are propagated to and from input element to the toggle. + +You should listen to events from the `<input type="checkbox">` directly rather than look for custom events. + +```html +<input id="toggle-event" type="checkbox" data-toggle="toggle"> +<div id="console-event"></div> +<script> + $(function() { + $('#toggle-event').change(function() { + $('#console-event').html('Toggle: ' + $(this).prop('checked')) + }) + }) +</script> +``` + +### API vs Input +This also means that using the API or Input to trigger events will work both ways. + +```html +<input id="toggle-trigger" type="checkbox" data-toggle="toggle"> +<button class="btn btn-success" onclick="toggleOn()">On by API</button> +<button class="btn btn-danger" onclick="toggleOff()">Off by API</button> +<button class="btn btn-success" onclick="toggleOnByInput()">On by Input</button> +<button class="btn btn-danger" onclick="toggleOffByInput()">Off by Input</button> +<script> + function toggleOn() { + $('#toggle-trigger').bootstrapToggle('on') + } + function toggleOff() { + $('#toggle-trigger').bootstrapToggle('off') + } + function toggleOnByInput() { + $('#toggle-trigger').prop('checked', true).change() + } + function toggleOffByInput() { + $('#toggle-trigger').prop('checked', false).change() + } +</script> +``` + +### Integration + +#### [KnockoutJS](http://knockoutjs.com) + +A binding for knockout is available here: [aAXEe/knockout-bootstrap-toggle](https://github.com/aAXEe/knockout-bootstrap-toggle) + +## Demos + +Visit http://www.bootstraptoggle.com for demos. diff --git a/base_accounting_kit/static/lib/bootstrap-toggle-master/_gitignore b/base_accounting_kit/static/lib/bootstrap-toggle-master/_gitignore new file mode 100644 index 0000000..91dfed8 --- /dev/null +++ b/base_accounting_kit/static/lib/bootstrap-toggle-master/_gitignore @@ -0,0 +1,2 @@ +.DS_Store +node_modules
\ No newline at end of file diff --git a/base_accounting_kit/static/lib/bootstrap-toggle-master/bower.json b/base_accounting_kit/static/lib/bootstrap-toggle-master/bower.json new file mode 100644 index 0000000..9d941df --- /dev/null +++ b/base_accounting_kit/static/lib/bootstrap-toggle-master/bower.json @@ -0,0 +1,32 @@ +{ + "name": "bootstrap-toggle", + "description": "Bootstrap Toggle is a highly flexible Bootstrap plugin that converts checkboxes into toggles", + "version": "2.2.1", + "keywords": [ + "bootstrap", + "toggle", + "bootstrap-toggle", + "switch", + "bootstrap-switch" + ], + "homepage": "http://www.bootstraptoggle.com", + "repository": { + "type": "git", + "url": "https://github.com/minhur/bootstrap-toggle.git" + }, + "license": "MIT", + "authors": [ + "Min Hur <min.hur@gmail.com>" + ], + "main": [ + "./js/bootstrap-toggle.min.js", + "./css/bootstrap-toggle.min.css" + ], + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "tests" + ] +} diff --git a/base_accounting_kit/static/lib/bootstrap-toggle-master/css/bootstrap-toggle.css b/base_accounting_kit/static/lib/bootstrap-toggle-master/css/bootstrap-toggle.css new file mode 100644 index 0000000..057d08b --- /dev/null +++ b/base_accounting_kit/static/lib/bootstrap-toggle-master/css/bootstrap-toggle.css @@ -0,0 +1,83 @@ +/*! ======================================================================== + * Bootstrap Toggle: bootstrap-toggle.css v2.2.0 + * http://www.bootstraptoggle.com + * ======================================================================== + * Copyright 2014 Min Hur, The New York Times Company + * Licensed under MIT + * ======================================================================== */ + + +.checkbox label .toggle, +.checkbox-inline .toggle { + margin-left: -20px; + margin-right: 5px; +} + +.toggle { + position: relative; + overflow: hidden; +} +.toggle input[type="checkbox"] { + display: none; +} +.toggle-group { + position: absolute; + width: 200%; + top: 0; + bottom: 0; + left: 0; + transition: left 0.35s; + -webkit-transition: left 0.35s; + -moz-user-select: none; + -webkit-user-select: none; +} +.toggle.off .toggle-group { + left: -100%; +} +.toggle-on { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 50%; + margin: 0; + border: 0; + border-radius: 0; +} +.toggle-off { + position: absolute; + top: 0; + bottom: 0; + left: 50%; + right: 0; + margin: 0; + border: 0; + border-radius: 0; +} +.toggle-handle { + position: relative; + margin: 0 auto; + padding-top: 0px; + padding-bottom: 0px; + height: 100%; + width: 0px; + border-width: 0 1px; +} + +.toggle.btn { min-width: 59px; min-height: 34px; } +.toggle-on.btn { padding-right: 24px; } +.toggle-off.btn { padding-left: 24px; } + +.toggle.btn-lg { min-width: 79px; min-height: 45px; } +.toggle-on.btn-lg { padding-right: 31px; } +.toggle-off.btn-lg { padding-left: 31px; } +.toggle-handle.btn-lg { width: 40px; } + +.toggle.btn-sm { min-width: 50px; min-height: 30px;} +.toggle-on.btn-sm { padding-right: 20px; } +.toggle-off.btn-sm { padding-left: 20px; } + +.toggle.btn-xs { min-width: 35px; min-height: 22px;} +.toggle-on.btn-xs { padding-right: 12px; } +.toggle-off.btn-xs { padding-left: 12px; } + diff --git a/base_accounting_kit/static/lib/bootstrap-toggle-master/css/bootstrap-toggle.min.css b/base_accounting_kit/static/lib/bootstrap-toggle-master/css/bootstrap-toggle.min.css new file mode 100644 index 0000000..0d42ed0 --- /dev/null +++ b/base_accounting_kit/static/lib/bootstrap-toggle-master/css/bootstrap-toggle.min.css @@ -0,0 +1,28 @@ +/*! ======================================================================== + * Bootstrap Toggle: bootstrap-toggle.css v2.2.0 + * http://www.bootstraptoggle.com + * ======================================================================== + * Copyright 2014 Min Hur, The New York Times Company + * Licensed under MIT + * ======================================================================== */ +.checkbox label .toggle,.checkbox-inline .toggle{margin-left:-20px;margin-right:5px} +.toggle{position:relative;overflow:hidden} +.toggle input[type=checkbox]{display:none} +.toggle-group{position:absolute;width:200%;top:0;bottom:0;left:0;transition:left .35s;-webkit-transition:left .35s;-moz-user-select:none;-webkit-user-select:none} +.toggle.off .toggle-group{left:-100%} +.toggle-on{position:absolute;top:0;bottom:0;left:0;right:50%;margin:0;border:0;border-radius:0} +.toggle-off{position:absolute;top:0;bottom:0;left:50%;right:0;margin:0;border:0;border-radius:0} +.toggle-handle{position:relative;margin:0 auto;padding-top:0;padding-bottom:0;height:100%;width:0;border-width:0 1px} +.toggle.btn{min-width:59px;min-height:34px} +.toggle-on.btn{padding-right:24px} +.toggle-off.btn{padding-left:24px} +.toggle.btn-lg{min-width:79px;min-height:45px} +.toggle-on.btn-lg{padding-right:31px} +.toggle-off.btn-lg{padding-left:31px} +.toggle-handle.btn-lg{width:40px} +.toggle.btn-sm{min-width:50px;min-height:30px} +.toggle-on.btn-sm{padding-right:20px} +.toggle-off.btn-sm{padding-left:20px} +.toggle.btn-xs{min-width:35px;min-height:22px} +.toggle-on.btn-xs{padding-right:12px} +.toggle-off.btn-xs{padding-left:12px}
\ No newline at end of file diff --git a/base_accounting_kit/static/lib/bootstrap-toggle-master/css/bootstrap2-toggle.css b/base_accounting_kit/static/lib/bootstrap-toggle-master/css/bootstrap2-toggle.css new file mode 100644 index 0000000..3f48927 --- /dev/null +++ b/base_accounting_kit/static/lib/bootstrap-toggle-master/css/bootstrap2-toggle.css @@ -0,0 +1,85 @@ +/*! ======================================================================== + * Bootstrap Toggle: bootstrap2-toggle.css v2.2.0 + * http://www.bootstraptoggle.com + * ======================================================================== + * Copyright 2014 Min Hur, The New York Times Company + * Licensed under MIT + * ======================================================================== */ + + +label.checkbox .toggle, +label.checkbox.inline .toggle { + margin-left: -20px; + margin-right: 5px; +} +.toggle { + min-width: 40px; + height: 20px; + position: relative; + overflow: hidden; +} +.toggle input[type="checkbox"] { + display: none; +} +.toggle-group { + position: absolute; + width: 200%; + top: 0; + bottom: 0; + left: 0; + transition: left 0.35s; + -webkit-transition: left 0.35s; + -moz-user-select: none; + -webkit-user-select: none; +} +.toggle.off .toggle-group { + left: -100%; +} +.toggle-on { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 50%; + margin: 0; + border: 0; + border-radius: 0; +} +.toggle-off { + position: absolute; + top: 0; + bottom: 0; + left: 50%; + right: 0; + margin: 0; + border: 0; + border-radius: 0; +} +.toggle-handle { + position: relative; + margin: 0 auto; + padding-top: 0px; + padding-bottom: 0px; + height: 100%; + width: 0px; + border-width: 0 1px; +} +.toggle-handle.btn-mini { + top: -1px; +} +.toggle.btn { min-width: 30px; } +.toggle-on.btn { padding-right: 24px; } +.toggle-off.btn { padding-left: 24px; } + +.toggle.btn-large { min-width: 40px; } +.toggle-on.btn-large { padding-right: 35px; } +.toggle-off.btn-large { padding-left: 35px; } + +.toggle.btn-small { min-width: 25px; } +.toggle-on.btn-small { padding-right: 20px; } +.toggle-off.btn-small { padding-left: 20px; } + +.toggle.btn-mini { min-width: 20px; } +.toggle-on.btn-mini { padding-right: 12px; } +.toggle-off.btn-mini { padding-left: 12px; } + diff --git a/base_accounting_kit/static/lib/bootstrap-toggle-master/css/bootstrap2-toggle.min.css b/base_accounting_kit/static/lib/bootstrap-toggle-master/css/bootstrap2-toggle.min.css new file mode 100644 index 0000000..1509c57 --- /dev/null +++ b/base_accounting_kit/static/lib/bootstrap-toggle-master/css/bootstrap2-toggle.min.css @@ -0,0 +1,28 @@ +/*! ======================================================================== + * Bootstrap Toggle: bootstrap2-toggle.css v2.2.0 + * http://www.bootstraptoggle.com + * ======================================================================== + * Copyright 2014 Min Hur, The New York Times Company + * Licensed under MIT + * ======================================================================== */ +label.checkbox .toggle,label.checkbox.inline .toggle{margin-left:-20px;margin-right:5px} +.toggle{min-width:40px;height:20px;position:relative;overflow:hidden} +.toggle input[type=checkbox]{display:none} +.toggle-group{position:absolute;width:200%;top:0;bottom:0;left:0;transition:left .35s;-webkit-transition:left .35s;-moz-user-select:none;-webkit-user-select:none} +.toggle.off .toggle-group{left:-100%} +.toggle-on{position:absolute;top:0;bottom:0;left:0;right:50%;margin:0;border:0;border-radius:0} +.toggle-off{position:absolute;top:0;bottom:0;left:50%;right:0;margin:0;border:0;border-radius:0} +.toggle-handle{position:relative;margin:0 auto;padding-top:0;padding-bottom:0;height:100%;width:0;border-width:0 1px} +.toggle-handle.btn-mini{top:-1px} +.toggle.btn{min-width:30px} +.toggle-on.btn{padding-right:24px} +.toggle-off.btn{padding-left:24px} +.toggle.btn-large{min-width:40px} +.toggle-on.btn-large{padding-right:35px} +.toggle-off.btn-large{padding-left:35px} +.toggle.btn-small{min-width:25px} +.toggle-on.btn-small{padding-right:20px} +.toggle-off.btn-small{padding-left:20px} +.toggle.btn-mini{min-width:20px} +.toggle-on.btn-mini{padding-right:12px} +.toggle-off.btn-mini{padding-left:12px}
\ No newline at end of file diff --git a/base_accounting_kit/static/lib/bootstrap-toggle-master/doc/header.png b/base_accounting_kit/static/lib/bootstrap-toggle-master/doc/header.png Binary files differnew file mode 100644 index 0000000..eb8d58b --- /dev/null +++ b/base_accounting_kit/static/lib/bootstrap-toggle-master/doc/header.png diff --git a/base_accounting_kit/static/lib/bootstrap-toggle-master/doc/nyt.png b/base_accounting_kit/static/lib/bootstrap-toggle-master/doc/nyt.png Binary files differnew file mode 100644 index 0000000..4025f26 --- /dev/null +++ b/base_accounting_kit/static/lib/bootstrap-toggle-master/doc/nyt.png diff --git a/base_accounting_kit/static/lib/bootstrap-toggle-master/doc/nytdev.svg b/base_accounting_kit/static/lib/bootstrap-toggle-master/doc/nytdev.svg new file mode 100644 index 0000000..39669ee --- /dev/null +++ b/base_accounting_kit/static/lib/bootstrap-toggle-master/doc/nytdev.svg @@ -0,0 +1,239 @@ +<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="868.575px" height="186.426px" viewBox="0 0 868.575 186.426" enable-background="new 0 0 868.575 186.426"
+ xml:space="preserve">
+<g>
+ <path fill="#63BB46" d="M20.116,151.421c-4.572-4.576-5.988-10.257-5.988-22.211v-25.691c0-11.028-1.255-12.916-11.19-16.393
+ v-4.877c4.892-1.419,7.096-2.684,8.983-5.025c1.896-2.703,2.207-4.421,2.207-11.518V40.188c0-8.038,0.472-11.508,2.046-15.771
+ c1.89-5.187,6.14-9.44,11.189-11.03c4.876-1.574,8.82-2.03,21.738-2.362v8.366c-10.238,1.888-12.13,4.558-12.13,17.64v27.094
+ c0,4.407-0.621,9.775-1.423,13.235c-0.94,3.469-2.354,5.363-5.664,7.41c3.31,2.355,4.724,4.097,5.516,7.249
+ c0.95,3.622,1.571,8.501,1.571,13.234v27.573c0,12.758,1.739,15.122,12.13,17.173v8.351
+ C30.193,157.873,25.162,156.772,20.116,151.421z"/>
+</g>
+<g>
+ <path fill="#63BB46" d="M173.762,158.35v-8.351c10.403-2.051,12.136-4.415,12.136-17.173v-27.573c0-4.733,0.634-9.612,1.573-13.234
+ c0.791-3.152,2.21-4.893,5.52-7.249c-3.309-2.047-4.729-3.94-5.673-7.41c-0.786-3.459-1.419-8.828-1.419-13.235V37.031
+ c0-13.082-1.891-15.752-12.136-17.64v-8.366c12.919,0.332,16.867,0.788,21.742,2.362c5.04,1.59,9.294,5.843,11.189,11.03
+ c1.575,4.263,2.056,7.733,2.056,15.771v25.517c0,7.097,0.301,8.815,2.199,11.518c1.897,2.342,4.096,3.606,8.981,5.025v4.877
+ c-9.928,3.478-11.18,5.365-11.18,16.393v25.691c0,11.954-1.426,17.636-5.989,22.211
+ C197.712,156.772,192.675,157.873,173.762,158.35z"/>
+</g>
+<g>
+ <path d="M140.865,22.474c3.434,0.283,8.858,2.001,12.916,5.565c4.331,4.19,5.312,10.578,3.803,16.346
+ c-1.354,5.181-2.864,7.862-8.135,11.416c-5.315,3.62-11.768,3.331-11.768,3.331v22.344l10.886,8.806l-10.886,8.786v30.473
+ c0,0,10.92-6.273,17.669-20.237c0,0,0.292-0.774,0.924-2.24c0.605,3.788,0.247,11.379-3.995,21.077
+ c-3.197,7.353-8.994,14.436-16.294,18.47c-12.915,7.137-22.612,7.835-32.986,5.671c-12.148-2.514-23.206-9.305-30.76-21.241
+ c-5.276-8.391-7.649-18.15-7.435-28.684c0.432-20.613,15.759-38.37,33.463-45.043c2.173-0.801,3.036-1.331,6.077-1.594
+ c-1.404,0.952-3.025,2.161-5.025,3.49C93.611,63,88.712,70.446,86.645,76.187l34.372-15.319v48.066l-27.714,13.847
+ c3.158,4.43,12.744,11.035,20.967,11.959c13.941,1.547,22.152-4.545,22.152-4.545l-0.014-31.129l-10.81-8.786l10.824-8.784V59.131
+ c-5.909-0.708-13.078-2.662-17.276-3.696c-6.167-1.528-26.713-7.286-29.936-7.761c-3.244-0.478-7.222-0.329-9.637,1.809
+ c-2.418,2.188-3.91,6.007-2.871,9.454c0.573,1.95,1.918,3.096,2.945,4.195c0,0-1.188-0.095-3.364-1.387
+ c-3.859-2.325-6.821-6.907-7.176-12.535c-0.442-7.318,2.582-13.968,8.649-18.439c5.281-3.378,11.25-5.543,18.193-4.584
+ c10.116,1.449,23.722,7.205,35.851,10.104c4.693,1.125,8.347,1.497,11.641-0.417c1.542-1.087,4.24-3.943,2.041-7.788
+ c-2.575-4.436-7.534-4.328-11.731-5.129C137.346,22.212,138.165,22.212,140.865,22.474z M99.996,117.999V71.608l-13.955,6.245
+ c0,0-3.576,7.958-2.955,19.531c0.48,9.016,5.542,19.823,9.43,24.345L99.996,117.999z"/>
+</g>
+<g>
+ <g>
+ <path d="M264.396,13.138c1.104,0.087,2.844,0.643,4.145,1.792c1.39,1.336,1.708,3.392,1.226,5.247
+ c-0.439,1.658-0.918,2.527-2.613,3.661c-1.712,1.163-3.779,1.07-3.779,1.07v7.172l3.498,2.827l-3.498,2.827v9.778
+ c0,0,3.504-2.01,5.674-6.495c0,0,0.092-0.247,0.292-0.717c0.197,1.209,0.083,3.651-1.283,6.764
+ c-1.019,2.367-2.883,4.638-5.23,5.935c-4.147,2.293-7.259,2.511-10.589,1.817c-3.902-0.81-7.455-2.993-9.877-6.814
+ c-1.692-2.704-2.459-5.837-2.386-9.217c0.137-6.615,5.058-12.32,10.749-14.464c0.692-0.259,0.971-0.431,1.951-0.509
+ c-0.452,0.308-0.973,0.697-1.616,1.122c-1.831,1.215-3.404,3.606-4.074,5.444l11.037-4.912v15.437l-8.893,4.444
+ c1.006,1.425,4.088,3.54,6.728,3.84c4.476,0.495,7.106-1.459,7.106-1.459v-9.993l-3.471-2.827l3.471-2.823v-7.176
+ c-1.891-0.224-4.192-0.857-5.538-1.186c-1.985-0.491-8.583-2.342-9.617-2.499c-1.037-0.149-2.317-0.103-3.09,0.586
+ c-0.774,0.702-1.254,1.933-0.925,3.041c0.185,0.621,0.619,0.985,0.947,1.339c0,0-0.379-0.023-1.078-0.435
+ c-1.237-0.754-2.191-2.225-2.306-4.026c-0.142-2.354,0.833-4.487,2.778-5.924c1.695-1.086,3.612-1.786,5.844-1.473
+ c3.243,0.468,7.615,2.312,11.514,3.243c1.505,0.365,2.673,0.482,3.735-0.132c0.494-0.35,1.363-1.269,0.65-2.5
+ c-0.826-1.422-2.416-1.387-3.766-1.647C263.274,13.057,263.533,13.057,264.396,13.138z M251.272,43.819V28.92l-4.479,2.003
+ c0,0-1.146,2.553-0.947,6.268c0.159,2.902,1.782,6.363,3.025,7.818L251.272,43.819z"/>
+ </g>
+ <g>
+ <path d="M307.204,28.187c0,0-3.373,2.064-5.655,3.409c-2.271,1.344-5.321,2.842-5.321,2.842V48.66l-2.035,1.621l0.272,0.329
+ l1.984-1.608l6.218,5.62l10.811-8.561l-0.261-0.312l-5.971,4.692l-4.915-4.601v-1.714l9.873-7.251L307.204,28.187z
+ M307.348,39.936l-5.017,3.668V31.396L307.348,39.936z"/>
+ </g>
+ <g>
+ <path d="M278.875,59.974c1.416,0.348,3.92,0.541,6.933-0.969c3.344-1.672,5.029-5.222,5.003-8.867l0.145-5.156V33.714l2.136-1.633
+ l-0.25-0.319l-2.104,1.596l-4.851-5.415l-6.226,5.349V15.128l-7.774,6.009c0.338,0.227,1.442,0.424,1.481,1.98v25.451
+ l-3.306,2.438l0.225,0.341l1.6-1.184l4.429,4.121l6.965-5.549l-0.243-0.325l-1.639,1.302l-1.738-1.716l0.018-14.185l2.03-1.732
+ l3.028,3.771c0,0-0.006,9.178,0.009,12.231c-0.033,3.243-0.038,7.296-1.741,9.258C281.293,59.314,280.608,59.455,278.875,59.974z"
+ />
+ </g>
+ <g>
+ <path d="M327.274,58.695c-2.784-0.33-3.96-2.003-3.925-3.339c0.023-0.865,0.797-2.529,2.489-2.765
+ c1.688-0.216,3.421,0.568,4.884,2.281l6.433-7.112l-0.307-0.28l-1.728,1.936c-1.758-1.994-4.249-3.25-6.725-3.617V24.126
+ l16.71,30.454c0,0,0.159,0.341,0.849,0.341c0.589,0.017,0.448-0.48,0.448-0.48l-0.003-30.638c1.362-0.051,3.43-0.805,4.438-1.832
+ c3.22-3.31,1.906-6.916,1.549-7.27c-0.194,1.586-1.398,3.165-3.425,3.169c-2.66,0.012-4.283-1.943-4.283-1.943l-6.423,7.319
+ l0.306,0.284l1.837-2.099c2.256,2.072,3.898,2.264,5.597,2.372v17.784l-12.403-22.53c-1.124-1.856-2.823-3.496-5.506-3.515
+ c-3.084-0.012-5.286,2.697-5.553,5.024c-0.298,2.653,0.041,3.256,0.041,3.256s0.448-2.946,2.268-2.907
+ c1.631,0.019,2.485,1.522,3.144,2.651v6.524c-1.693,0.126-6.073,0.309-6.35,4.876c-0.015,1.699,1.042,3.481,1.962,4.082
+ c1.186,0.784,2.11,0.766,2.11,0.766s-1.417-0.763-0.996-2.258c0.382-1.335,3.174-1.548,3.274-0.992v9.203
+ c-1.348-0.017-5.64,0.137-7.573,3.821c-1.172,2.215-1.1,4.705,0.146,6.464C321.573,57.484,323.667,59.314,327.274,58.695z"/>
+ </g>
+ <g>
+ <path d="M362.58,28.187c0,0-3.385,2.064-5.66,3.409c-2.282,1.344-5.325,2.842-5.325,2.842V48.66l-2.031,1.621l0.266,0.329
+ l1.99-1.608l6.213,5.62l10.818-8.561l-0.257-0.312l-5.978,4.692l-4.907-4.601v-1.714l9.866-7.251L362.58,28.187z M362.719,39.936
+ l-5.011,3.668V31.396L362.719,39.936z"/>
+ </g>
+ <g>
+ <path d="M377.687,54.733l-5.297-4.407l-2.331,1.689l-0.231-0.325l2.362-1.73V37.645c0.116-5.069-4.642-3.808-4.384-9.194
+ c0.115-2.364,2.401-4.154,3.562-4.734c1.228-0.631,2.572-0.631,2.572-0.631s-2.177,1.356-1.647,3.308
+ c0.812,3.008,5.952,3.272,6.044,7.273v13.976l3.801,3.039l1.001-0.783V34.77l-2.05-2.026l5.271-4.653l4.816,4.263l-1.838,1.981
+ v13.404l4.504,3.713l0.804-0.499V34.824l-2.058-1.923l5.291-4.827l4.934,4.071l1.976-1.736l0.264,0.304l-4.439,3.897v13.142
+ l-11.353,7.011l-5.814-4.598L377.687,54.733z"/>
+ </g>
+ <g>
+ <path d="M609.974,28.187c0,0-3.385,2.064-5.653,3.409c-2.271,1.344-5.323,2.842-5.323,2.842V48.66l-2.04,1.621l0.271,0.329
+ l1.991-1.608l6.214,5.62l10.815-8.561l-0.256-0.312l-5.975,4.692l-4.915-4.601v-1.714l9.87-7.251L609.974,28.187z M610.122,39.936
+ l-5.02,3.668V31.396L610.122,39.936z"/>
+ </g>
+ <g>
+ <polygon points="559.22,34.144 559.485,34.447 561.521,32.704 564.536,36.121 564.536,47.867 563.083,49.205 567.785,54.535
+ 572.613,49.77 570.631,47.71 570.631,33.497 571.827,32.536 575.18,36.44 575.18,48.155 573.923,49.41 578.358,54.404
+ 583.091,49.654 581.354,47.827 581.308,33.552 582.589,32.522 586.07,36.355 586.07,48.008 584.927,49.155 589.829,54.491
+ 596.401,48.418 596.121,48.118 594.522,49.59 592.073,46.872 592.073,33.569 594.436,31.78 594.187,31.458 591.825,33.248
+ 587.345,28.233 580.956,33.292 576.476,28.422 570.302,33.243 565.778,28.438 "/>
+ </g>
+ <g>
+ <polygon points="545.834,33.78 546.104,34.08 547.822,32.597 550.521,35.784 550.521,49.215 548.618,50.875 548.885,51.181
+ 550.875,49.48 555.219,54.491 561.487,48.888 561.22,48.582 559.375,50.209 556.778,47.222 556.778,34.084 558.972,32.188
+ 558.703,31.88 556.622,33.666 552.051,28.345 "/>
+ </g>
+ <g>
+ <polygon points="547.65,22.656 552.369,18.331 556.207,22.587 551.46,26.896 "/>
+ </g>
+ <g>
+ <path d="M541.291,13.138c1.113,0.087,2.844,0.643,4.153,1.792c1.392,1.336,1.709,3.392,1.217,5.247
+ c-0.428,1.658-0.919,2.527-2.607,3.661c-1.713,1.163-3.776,1.07-3.776,1.07v7.172l3.499,2.827l-3.499,2.827v9.778
+ c0,0,3.505-2.01,5.669-6.495c0,0,0.101-0.247,0.296-0.717c0.186,1.209,0.085,3.651-1.277,6.764
+ c-1.027,2.367-2.893,4.638-5.234,5.935c-4.149,2.293-7.263,2.511-10.595,1.817c-3.905-0.81-7.454-2.993-9.871-6.814
+ c-1.701-2.704-2.458-5.837-2.393-9.217c0.139-6.615,5.069-12.32,10.759-14.464c0.682-0.259,0.968-0.431,1.947-0.509
+ c-0.459,0.308-0.967,0.697-1.624,1.122c-1.825,1.215-3.398,3.606-4.064,5.444l11.036-4.912v15.437l-8.902,4.444
+ c1.011,1.425,4.092,3.54,6.728,3.84c4.485,0.495,7.121-1.459,7.121-1.459v-9.993l-3.478-2.827l3.478-2.823v-7.176
+ c-1.895-0.224-4.197-0.857-5.548-1.186c-1.984-0.491-8.578-2.342-9.612-2.499c-1.046-0.149-2.32-0.103-3.093,0.586
+ c-0.778,0.702-1.254,1.933-0.924,3.041c0.186,0.621,0.621,0.985,0.935,1.339c0,0-0.375-0.023-1.058-0.435
+ c-1.253-0.754-2.212-2.225-2.314-4.026c-0.15-2.354,0.828-4.487,2.776-5.924c1.695-1.086,3.612-1.786,5.843-1.473
+ c3.245,0.468,7.614,2.312,11.513,3.243c1.513,0.365,2.681,0.482,3.731-0.132c0.5-0.35,1.363-1.269,0.656-2.5
+ c-0.829-1.422-2.415-1.387-3.763-1.647C540.171,13.057,540.429,13.057,541.291,13.138z M528.174,43.819V28.92l-4.482,2.003
+ c0,0-1.143,2.553-0.945,6.268c0.157,2.902,1.781,6.363,3.025,7.818L528.174,43.819z"/>
+ </g>
+ <g>
+ <path d="M622.005,56.467c-0.725,0.211-3.821-0.552-4.575-3.781c-0.729-3.128,1.464-5.264,4.749-8.619l-3.894-3.554v-6.796
+ c0,0,2.866-1.432,5.105-2.827c2.231-1.41,4.536-2.92,4.536-2.92s1.675,2.101,3.56,1.945c2.967-0.261,2.823-2.596,2.738-3.152
+ c0.509,0.907,1.853,3.587-3.346,9.586l4.235,3.415v8.822c0,0-4.91,2.56-9.569,5.967c0,0-2.601-3.26-4.853-1.701
+ C619.159,53.905,619.866,55.677,622.005,56.467z M618.344,49.654c0,0,2.231-3.691,6.074-2.892c3.688,0.751,4.964,4.65,4.964,4.65
+ v-8.962l-2.564-2.232C623.993,43.06,618.972,47.167,618.344,49.654z M624.037,30.947v7.049l2.361,2.06
+ c0,0,5.103-4.094,6.956-7.878c0,0-2.299,3.116-5.378,2.157C625.386,33.542,624.037,30.947,624.037,30.947z"/>
+ </g>
+ <g>
+ <path d="M463.025,34.058l1.91-1.757l0.272,0.308l-1.859,1.726v14.029c0,0-3.521,1.884-5.983,3.26
+ c-2.455,1.401-5.102,3.023-5.102,3.023l-6.465-5.46l-1.709,1.505l-0.283-0.321l1.805-1.562V33.718h0.019
+ c0,0,3.052-1.376,5.635-2.827c2.303-1.298,4.879-2.813,4.879-2.813L463.025,34.058z M451.752,46.418l5.469,4.966V36.222
+ l-5.469-5.052V46.418z"/>
+ </g>
+ <g>
+ <path d="M475.748,32.644l4.12-4.207c0,0,0.565,0.493,1.101,0.76c0.292,0.143,1.546,0.78,2.685,0.161
+ c0.623-0.343,0.702-0.435,1.386-1.072c0.138,3.272-1.43,5.563-3.39,6.512c-0.801,0.394-3.134,1.143-5.584-1.848v15.11l2.603,2.291
+ l2.171-1.794l0.249,0.312l-6.805,5.684l-5.173-4.723l-1.856,1.764l-0.314-0.319l2.836-2.565l0.022-13.029l-2.177-2.884
+ l-1.865,1.642l-0.271-0.294l6.587-5.934L475.748,32.644z"/>
+ </g>
+ <g>
+ <path d="M493.101,38.941l7.599-11.066c0,0,1.001,1.185,2.752,1.638c2.366,0.623,4.446-1.671,4.446-1.671
+ c-0.398,2.954-1.903,6.323-4.995,6.83c-2.731,0.453-5.267-1.667-5.267-1.667l-0.487,0.761l10.548,15.94l2.108-1.847l0.286,0.304
+ l-7.251,6.328L493.101,38.941z"/>
+ </g>
+ <g>
+ <path d="M486.817,24.163c0-2.386-0.977-3.864-2.259-3.766l8.289-5.811v32.969l0,0l2.19,2.308l1.654-1.438l0.271,0.312
+ l-6.681,5.837l-4.536-4.258l-1.797,1.596l-0.296-0.313l3.164-2.754V24.163z"/>
+ </g>
+ <g>
+ <path d="M417.487,23.613c0-2.215-0.904-3.471-2.371-3.497c-2.104-0.043-2.61,2.929-2.61,2.929s-0.387-2.291,1.539-4.375
+ c1.076-1.169,3.088-2.79,6.229-2.037c3.251,0.787,4.182,3.302,4.182,5.533v30.677c0,0,1.224,0.151,2.069,0.325
+ c0.964,0.216,1.894,0.476,1.894,0.476V16.65h0.399v4.99l6.669-5.362l4.873,4.336l2.279-1.977l0.258,0.314l-2.378,2.047v28.52
+ c-0.12,1.874-0.415,3.768-2.17,4.844c-3.92,2.33-8.652-0.354-12.864-0.965c-3.132-0.463-8.037-1.055-9.254,1.816
+ c-0.418,0.942-0.387,2.405,1.037,3.34c2.839,1.911,15.508-3.189,19.865-1.16c3.958,1.848,3.941,4.769,3.332,6.757
+ c-1.032,3.767-5.778,4.419-5.778,4.419s2.32-1.337,1.658-3.568c-0.336-1.139-1.105-1.449-3.592-1.172
+ c-5.431,0.612-11.92,3.245-16.29,1.422c-2.241-0.94-3.833-3.753-3.681-6.506c0.109-3.979,4.705-5.547,4.705-5.547V38.5
+ c-0.137-0.583-2.586-0.424-3.122,0.65c-0.811,1.629,1.011,2.393,1.011,2.393s-1.504,0.209-2.779-1.255
+ c-0.618-0.709-1.907-3.211-0.231-5.526c1.382-1.904,3.03-2.239,5.122-2.476V23.613z M428.817,53.744c0,0,1.944,0.52,3.352-0.638
+ c1.568-1.293,1.401-3.102,1.401-3.102V38.576c0,0-0.907-1.158-2.354-1.158c-1.438,0-2.399,1.194-2.399,1.194V53.744z
+ M433.57,23.758l-3.203-2.817l-1.55,1.225v10.588c0,0,0.962,1.204,2.399,1.204c1.446,0,2.354-1.159,2.354-1.159V23.758z
+ M433.57,33.431c0,0-0.911,1.041-2.362,1.041c-1.435,0-2.391-1.041-2.391-1.041v4.508c0,0,0.956-1.05,2.391-1.05
+ c1.451,0,2.362,0.998,2.362,0.998V33.431z"/>
+ </g>
+</g>
+<g>
+ <path d="M326.983,117.85c0,5.348-0.836,10.25-2.507,14.707c-1.671,4.457-4.011,8.338-7.019,11.643
+ c-3.008,3.306-6.648,5.96-10.918,7.966c-4.271,2.005-9.007,3.231-14.205,3.676c-1.709,0.15-3.064,0.261-4.066,0.334
+ c-1.003,0.075-1.727,0.111-2.173,0.111H243.09v-17.157h7.464V95.345h-7.464V78.188h42.113c3.713,0,7.019,0.242,9.916,0.724
+ c2.896,0.484,5.719,1.281,8.467,2.396c7.501,2.971,13.275,7.614,17.324,13.926C324.958,101.547,326.983,109.086,326.983,117.85z
+ M297.459,116.958c0-4.233-0.465-7.78-1.393-10.64c-0.93-2.858-2.47-5.365-4.624-7.521c-1.337-1.41-2.896-2.357-4.679-2.841
+ c-1.782-0.482-4.233-0.686-7.353-0.613v43.785c3.045,0.075,5.421-0.148,7.13-0.668c1.708-0.519,3.342-1.485,4.902-2.897
+ C295.454,131.999,297.459,125.798,297.459,116.958z"/>
+ <path d="M391.6,135.007h-35.094c0.891,6.016,3.972,9.024,9.247,9.024c1.708,0,3.212-0.352,4.512-1.058
+ c1.298-0.705,2.58-1.912,3.844-3.621H391.6c-1.041,2.601-2.005,4.643-2.896,6.128c-0.891,1.486-1.969,2.86-3.231,4.122
+ c-2.451,2.451-5.571,4.364-9.358,5.738c-3.788,1.373-7.91,2.061-12.367,2.061c-10.25,0-17.976-2.413-23.174-7.242
+ c-2.896-2.674-5.163-5.849-6.796-9.526c-1.635-3.676-2.451-7.445-2.451-11.308c0-4.084,0.742-7.816,2.229-11.197
+ c1.485-3.379,3.583-6.295,6.294-8.746c2.71-2.451,5.941-4.345,9.693-5.682c3.75-1.337,7.854-2.005,12.311-2.005
+ c3.788,0,7.242,0.501,10.361,1.504c3.119,1.003,6.089,2.582,8.913,4.735c1.633,1.189,3.137,2.637,4.512,4.345
+ c1.374,1.709,2.543,3.584,3.51,5.626c0.964,2.044,1.688,4.197,2.172,6.462c0.482,2.267,0.649,4.551,0.501,6.852L391.6,135.007z
+ M369.652,125.426c0-6.164-2.192-9.247-6.573-9.247c-2.972,0-4.977,1.412-6.016,4.233c-0.223,0.596-0.373,1.245-0.446,1.95
+ c-0.075,0.707-0.111,1.877-0.111,3.51v0.891h13.146V125.426z"/>
+ <path d="M448.865,117.293l-18.049,38.994h-18.939l-15.709-38.994h-3.676v-14.484h32.866v14.484h-3.676l6.238,16.154l7.02-16.154
+ h-4.123v-14.484h20.834v14.484H448.865z"/>
+ <path d="M512.48,135.007h-35.096c0.893,6.016,3.973,9.024,9.248,9.024c1.707,0,3.211-0.352,4.512-1.058
+ c1.299-0.705,2.58-1.912,3.844-3.621h17.492c-1.041,2.601-2.006,4.643-2.898,6.128c-0.891,1.486-1.969,2.86-3.23,4.122
+ c-2.451,2.451-5.57,4.364-9.357,5.738c-3.789,1.373-7.91,2.061-12.367,2.061c-10.25,0-17.975-2.413-23.174-7.242
+ c-2.896-2.674-5.162-5.849-6.795-9.526c-1.635-3.676-2.451-7.445-2.451-11.308c0-4.084,0.74-7.816,2.227-11.197
+ c1.486-3.379,3.584-6.295,6.295-8.746c2.711-2.451,5.941-4.345,9.693-5.682c3.75-1.337,7.855-2.005,12.311-2.005
+ c3.789,0,7.242,0.501,10.361,1.504c3.119,1.003,6.09,2.582,8.914,4.735c1.633,1.189,3.137,2.637,4.512,4.345
+ c1.373,1.709,2.543,3.584,3.51,5.626c0.963,2.044,1.688,4.197,2.172,6.462c0.482,2.267,0.648,4.551,0.502,6.852L512.48,135.007z
+ M490.531,125.426c0-6.164-2.191-9.247-6.572-9.247c-2.973,0-4.977,1.412-6.018,4.233c-0.223,0.596-0.371,1.245-0.445,1.95
+ c-0.074,0.707-0.111,1.877-0.111,3.51v0.891h13.146V125.426z"/>
+ <path d="M516.379,156.287v-14.483h4.457V92.671h-4.457V78.188h29.635v63.616h4.568v14.483H516.379z"/>
+ <path d="M618.654,129.771c0,4.085-0.779,7.818-2.34,11.197c-1.561,3.38-3.77,6.294-6.629,8.746s-6.258,4.345-10.193,5.682
+ c-3.938,1.337-8.244,2.005-12.924,2.005s-8.988-0.707-12.924-2.117c-3.938-1.41-7.354-3.342-10.25-5.793
+ c-2.896-2.451-5.164-5.365-6.797-8.746c-1.635-3.379-2.451-7.074-2.451-11.085c0-4.011,0.816-7.724,2.451-11.141
+ c1.633-3.415,3.9-6.368,6.797-8.857c2.896-2.488,6.312-4.438,10.25-5.849c3.936-1.41,8.205-2.117,12.812-2.117
+ c4.752,0,9.115,0.688,13.09,2.061c3.973,1.375,7.371,3.287,10.195,5.738c2.82,2.451,5.012,5.403,6.572,8.857
+ S618.654,125.612,618.654,129.771z M593.475,129.994c0-4.159-0.297-7.056-0.891-8.69c-0.596-1.56-1.449-2.803-2.562-3.732
+ c-1.113-0.928-2.377-1.393-3.787-1.393c-2.229,0-3.938,1.041-5.125,3.12c-1.189,2.08-1.783,5.125-1.783,9.136
+ c0,4.456,0.613,7.874,1.838,10.25c1.227,2.378,2.99,3.565,5.293,3.565c1.262,0,2.469-0.463,3.621-1.393
+ c1.15-0.928,2.021-2.134,2.617-3.621C593.215,135.75,593.475,133.336,593.475,129.994z"/>
+ <path d="M691.406,129.548c0,4.011-0.613,7.743-1.84,11.197c-1.225,3.454-2.99,6.406-5.291,8.857
+ c-2.229,2.451-4.83,4.364-7.799,5.738c-2.973,1.373-5.904,2.061-8.803,2.061c-2.377,0-4.809-0.428-7.297-1.281
+ s-5.441-2.321-8.857-4.401v10.138h6.018v14.484h-35.652v-14.484h4.457v-44.564h-4.457v-14.484h29.635v5.014
+ c3.268-2.228,6.201-3.805,8.803-4.735c2.598-0.928,5.309-1.393,8.133-1.393c5.496,0,10.174,1.821,14.037,5.459
+ c2.748,2.601,4.92,5.905,6.518,9.916C690.605,121.081,691.406,125.241,691.406,129.548z M666.227,129.994
+ c0-1.931-0.074-3.657-0.223-5.181c-0.15-1.521-0.373-2.691-0.668-3.509c-0.596-1.56-1.469-2.803-2.619-3.732
+ c-1.152-0.928-2.471-1.393-3.955-1.393c-4.828,0-7.242,4.161-7.242,12.478c0,9.062,2.414,13.592,7.242,13.592
+ c1.484,0,2.822-0.463,4.012-1.393c1.186-0.928,2.078-2.134,2.674-3.621C665.965,135.75,666.227,133.336,666.227,129.994z"/>
+ <path d="M754.799,135.007h-35.096c0.893,6.016,3.973,9.024,9.248,9.024c1.707,0,3.211-0.352,4.512-1.058
+ c1.299-0.705,2.58-1.912,3.844-3.621h17.492c-1.041,2.601-2.006,4.643-2.898,6.128c-0.891,1.486-1.969,2.86-3.23,4.122
+ c-2.451,2.451-5.57,4.364-9.357,5.738c-3.789,1.373-7.91,2.061-12.367,2.061c-10.25,0-17.975-2.413-23.174-7.242
+ c-2.896-2.674-5.162-5.849-6.795-9.526c-1.635-3.676-2.451-7.445-2.451-11.308c0-4.084,0.74-7.816,2.227-11.197
+ c1.486-3.379,3.584-6.295,6.295-8.746c2.711-2.451,5.941-4.345,9.693-5.682c3.75-1.337,7.855-2.005,12.311-2.005
+ c3.789,0,7.242,0.501,10.361,1.504c3.119,1.003,6.09,2.582,8.914,4.735c1.633,1.189,3.137,2.637,4.512,4.345
+ c1.373,1.709,2.543,3.584,3.51,5.626c0.963,2.044,1.688,4.197,2.172,6.462c0.482,2.267,0.648,4.551,0.502,6.852L754.799,135.007z
+ M732.85,125.426c0-6.164-2.191-9.247-6.572-9.247c-2.973,0-4.977,1.412-6.018,4.233c-0.223,0.596-0.371,1.245-0.445,1.95
+ c-0.074,0.707-0.111,1.877-0.111,3.51v0.891h13.146V125.426z"/>
+ <path d="M802.258,120.356c-1.635,0.111-3.232,0.354-4.791,0.724c-3.418,0.818-5.906,2.526-7.465,5.125
+ c-0.521,0.966-0.875,2.155-1.059,3.565c-0.186,1.412-0.279,3.64-0.279,6.685v5.348h6.018v14.483h-35.652v-14.483h4.457v-24.51
+ h-4.457v-14.484h29.635v8.245c3.121-3.342,6.146-5.811,9.08-7.409c2.934-1.597,6.184-2.284,9.75-2.061l1.893,0.111v18.494
+ C806.268,120.189,803.891,120.245,802.258,120.356z"/>
+ <path d="M862.309,139.241c0,2.601-0.521,4.996-1.561,7.186c-1.041,2.191-2.488,4.105-4.346,5.738
+ c-1.857,1.634-4.104,2.916-6.74,3.844c-2.637,0.928-5.514,1.393-8.633,1.393c-1.412,0-2.73-0.056-3.955-0.167
+ c-1.227-0.111-2.508-0.316-3.844-0.612c-1.338-0.298-2.77-0.686-4.291-1.17c-1.521-0.482-3.285-1.095-5.291-1.838v2.674h-12.033
+ v-17.826h11.922c0.742,2.378,1.672,4.161,2.785,5.348c1.113,1.189,2.822,1.783,5.125,1.783c1.707,0,3.064-0.352,4.066-1.059
+ c1.002-0.705,1.504-1.727,1.504-3.064c0-1.855-1.189-3.304-3.564-4.345l-11.588-4.902c-2.971-1.262-5.219-3.1-6.74-5.515
+ c-1.523-2.413-2.283-5.031-2.283-7.854c0-2.301,0.518-4.493,1.559-6.573c1.041-2.079,2.488-3.899,4.346-5.459
+ c1.855-1.56,4.029-2.803,6.518-3.732c2.488-0.928,5.143-1.393,7.967-1.393c2.375,0,4.623,0.261,6.74,0.78
+ c2.115,0.521,4.473,1.375,7.074,2.562v-2.229h12.143v17.158h-11.141c-0.52-2.674-1.318-4.716-2.395-6.128
+ c-1.078-1.41-2.619-2.117-4.623-2.117c-1.488,0-2.713,0.39-3.678,1.17c-0.967,0.78-1.447,1.765-1.447,2.952
+ c0,2.081,1.373,3.677,4.121,4.791l11.365,4.456C858.668,127.915,862.309,132.631,862.309,139.241z"/>
+</g>
+</svg>
diff --git a/base_accounting_kit/static/lib/bootstrap-toggle-master/doc/script.js b/base_accounting_kit/static/lib/bootstrap-toggle-master/doc/script.js new file mode 100644 index 0000000..863728a --- /dev/null +++ b/base_accounting_kit/static/lib/bootstrap-toggle-master/doc/script.js @@ -0,0 +1,49 @@ ++function ($) { + 'use strict'; + + $('.example:not(.skip)').each(function() { + // fetch & encode html + var html = $('<div>').text($(this).html()).html() + // find number of space/tabs on first line (minus line break) + var count = html.match(/^(\s+)/)[0].length - 1 + // replace tabs/spaces on each lines with + var regex = new RegExp('\\n\\s{'+count+'}', 'g') + var code = html.replace(regex, '\n').replace(/\t/g, ' ').trim() + // other cleanup + code = code.replace(/=""/g,'') + // add code block to dom + $(this).after( $('<code class="highlight html">').html(code) ) + }); + + $('code.highlight').each(function() { + hljs.highlightBlock(this) + }); + +}(jQuery); + +var Demo = function () {} + +Demo.prototype.init = function(selector) { + $(selector).bootstrapToggle(selector) +} +Demo.prototype.destroy = function(selector) { + $(selector).bootstrapToggle('destroy') +} +Demo.prototype.on = function(selector) { + $(selector).bootstrapToggle('on') +} +Demo.prototype.off = function(selector) { + $(selector).bootstrapToggle('off') +} +Demo.prototype.toggle = function(selector) { + $(selector).bootstrapToggle('toggle') +} +Demo.prototype.enable = function(selector) { + $(selector).bootstrapToggle('enable') +} +Demo.prototype.disable = function(selector) { + $(selector).bootstrapToggle('disable') +} + + +demo = new Demo() diff --git a/base_accounting_kit/static/lib/bootstrap-toggle-master/doc/stylesheet.css b/base_accounting_kit/static/lib/bootstrap-toggle-master/doc/stylesheet.css new file mode 100644 index 0000000..fe7a444 --- /dev/null +++ b/base_accounting_kit/static/lib/bootstrap-toggle-master/doc/stylesheet.css @@ -0,0 +1,112 @@ +header, footer { + padding: 20px; + background-image: url('header.png'); + background-size: 256px 256px; +} +footer { + color: #fff; + text-align: center; +} +.nyt-logo { + max-height: 40px; + margin-top: 5px; + margin-right: 5px; +} + +nav.navbar { + margin-bottom: 10px; + background-color: #fff; + border: 0px; + border-radius: 2px; +} +#navbar { + margin: 0px; +} +#navbar .navbar-nav li iframe { + margin-top: 15px; +} +#navbar .navbar-nav li:last-child iframe { + margin-right: 15px; +} + +@media screen and (max-width: 767px) { + #navbar .navbar-nav li iframe { + display: none; + } +} + +.mast-head { + margin: 10px 0; +} +.mast-head h1 { + margin-bottom: 15px; + color: #fff; +} +.mast-head p { + color: #fff; +} + +.mast-links { + padding-top: 10px; +} + +.mast-links > * { + vertical-align: middle; + margin-bottom: 10px; +} + +.mast-links > .btn { + margin-right: 30px; +} +main { + margin: 10px 20px; +} +main .container { + margin-bottom: 40px; +} + +code.hljs { + border: 1px solid #ccc; + padding: 1em; + white-space: pre; + margin-bottom: 10px; +} + +.example { + position: relative; + border: 1px solid #ccc; + padding: 1em 1em 0.5em 1em; + border-radius: 4px 4px 0 0; +} + +.example:after { + content: "Example"; + position: absolute; + top: 0px; + right: 0px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + background-color: #f5f5f5; + border: 1px solid #ccc; + color: #9da0a4; + border-radius: 0px 4px 0px 4px; + border-width: 0px 0px 1px 1px; +} + +.example + code.hljs { + border-top: 0; + border-radius: 0px 0px 4px 4px; +} + +.example > * { + margin-bottom: 10px; +} + +.example > div.toggle { + margin-right: 10px; +} + +.table-striped code { + background-color: inherit; +}
\ No newline at end of file diff --git a/base_accounting_kit/static/lib/bootstrap-toggle-master/index.html b/base_accounting_kit/static/lib/bootstrap-toggle-master/index.html new file mode 100644 index 0000000..c255754 --- /dev/null +++ b/base_accounting_kit/static/lib/bootstrap-toggle-master/index.html @@ -0,0 +1,449 @@ +<!DOCTYPE html> +<html> +<head> + <script> if (window.location.href.indexOf('minhur.github.io') > 0) window.location.replace('http://www.bootstraptoggle.com') </script> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <meta name="msvalidate.01" content="3638AEFC99423BA5CB586805286C39AA" /> + <meta name="description" content="Bootstrap Toggle is a highly flexible Bootstrap plugin that converts checkboxes into toggles." /> + <meta name="keywords" content="bootstrap, toggle, switch, bootstrap-toggle, bootstrap-switch" /> + <meta name="author" content="metatags generator"> + <meta name="robots" content="index, follow"> + <meta name="revisit-after" content="1 month"> + <title>Bootstrap Toggle</title> + <link rel="canonical" href="http://www.bootstraptoggle.com"> + <link href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.3/styles/github.min.css" rel="stylesheet" > + <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet"> + <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet"> + <link href="css/bootstrap-toggle.css" rel="stylesheet"> + <link href="doc/stylesheet.css" rel="stylesheet"> + <script src="https://code.jquery.com/jquery-2.1.1.min.js"></script> +</head> +<body> + <header> + <nav class="navbar navbar-default container" role="navigation"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="#">Bootstrap Toggle</a> + </div> + <div id="navbar" class="collapse navbar-collapse"> + <ul class="nav navbar-nav navbar-right"> + <li><a href="#usage">Usage</a></li> + <li><a href="#api">API</a></li> + <li><a href="#events">Events</a></li> + <li><a href="#demos">Demos</a></li> + <li><a href="https://github.com/minhur/bootstrap-toggle/issues">Issues</a></li> + <li><a href="https://github.com/minhur/bootstrap-toggle/archive/master.zip">Download</a></li> + <li> + <iframe src="https://mdo.github.io/github-buttons/github-btn.html?user=minhur&repo=bootstrap-toggle&type=watch" allowtransparency="true" frameborder="0" scrolling="0" width="62" height="20"></iframe> + </li> + <li> + <iframe src="https://mdo.github.io/github-buttons/github-btn.html?user=minhur&repo=bootstrap-toggle&type=fork" allowtransparency="true" frameborder="0" scrolling="0" width="53" height="20"></iframe> + </li> + </ul> + </div> + </div> + </nav> + <div class="mast-head"> + <div class="container"> + <h1>Bootstrap Toggle</h1> + <p>Bootstrap Toggle is a highly flexible Bootstrap plugin that converts checkboxes into toggles</p> + <div class="mast-links"> + <iframe src="https://mdo.github.io/github-buttons/github-btn.html?user=minhur&repo=bootstrap-toggle&type=watch&count=true&size=large" allowtransparency="true" frameborder="0" scrolling="0" width="150" height="30"></iframe> + <iframe src="https://mdo.github.io/github-buttons/github-btn.html?user=minhur&repo=bootstrap-toggle&type=fork&count=true&size=large" allowtransparency="true" frameborder="0" scrolling="0" width="150" height="30"></iframe> + </div> + </div> + </div> + </header> + + <main> + <div class="container"> + <h2>Getting Started</h2> + <hr> + <h3>Installation</h3> + <p>You can <a href="https://github.com/minhur/bootstrap-toggle/archive/master.zip">download</a> the latest version of Bootstrap Toggle or use CDN to load the library.</p> + <p><span class="label label-warning">Warning</span> If you are using Bootstrap v2.3.2, use <code>bootstrap2-toggle.min.js</code> and <code>bootstrap2-toggle.min.css</code> instead.</p> + <code class="highlight"><link href="https://gitcdn.github.io/bootstrap-toggle/2.2.2/css/bootstrap-toggle.min.css" rel="stylesheet"> +<script src="https://gitcdn.github.io/bootstrap-toggle/2.2.2/js/bootstrap-toggle.min.js"></script></code> + + <h3>Bower Install</h3> + <p></p> + <code class="highlight bash">bower install bootstrap-toggle</code> + </div> + <div id="usage" class="container"> + <h2>Usage</h2> + <hr> + + <h3>Basic example</h3> + <p>Simply add <code>data-toggle="toggle"</code> to convert checkboxes into toggles.</p> + <div class="example"> + <input type="checkbox" checked data-toggle="toggle"> + </div> + + <h3>Stacked checkboxes</h3> + <p>Refer to Bootstrap <a href="http://getbootstrap.com/css/#forms-controls" target="_blank">Form Controls</a> documentation to create stacked checkboxes. Simply add <code>data-toggle="toggle"</code> to convert checkboxes into toggles.</p> + <div class="example"> + <div class="checkbox"> + <label> + <input type="checkbox" data-toggle="toggle"> + Option one is enabled + </label> + </div> + <div class="checkbox disabled"> + <label> + <input type="checkbox" disabled data-toggle="toggle"> + Option two is disabled + </label> + </div> + </div> + + <h3>Inline Checkboxes</h3> + <p>Refer to Bootstrap <a href="http://getbootstrap.com/css/#forms-controls" target="_blank">Form Controls</a> documentation to create inline checkboxes. Simply add <code>data-toggle="toggle"</code> to a convert checkboxes into toggles.</p> + <div class="example"> + <label class="checkbox-inline"> + <input type="checkbox" checked data-toggle="toggle"> First + </label> + <label class="checkbox-inline"> + <input type="checkbox" data-toggle="toggle"> Second + </label> + <label class="checkbox-inline"> + <input type="checkbox" data-toggle="toggle"> Third + </label> + </div> + </div> + + <div id="api" class="container"> + <h2>API</h2> + <hr> + + <h3>Initialize by JavaScript</h3> + <p>Initialize toggles with id <code>toggle-one</code> with a single line of JavaScript.</p> + <div class="example"> + <input id="toggle-one" checked type="checkbox"> + <script> + $(function() { + $('#toggle-one').bootstrapToggle(); + }) + </script> + </div> + + <h3>Options</h3> + <p>Options can be passed via data attributes or JavaScript. For data attributes, append the option name to <code>data-</code>, as in <code>data-on="Enabled"</code>.</p> + <div class="example"> + <input type="checkbox" data-toggle="toggle" data-on="Enabled" data-off="Disabled"> + <input type="checkbox" id="toggle-two"> + <script> + $(function() { + $('#toggle-two').bootstrapToggle({ + on: 'Enabled', + off: 'Disabled' + }); + }) + </script> + </div> + <div class="table-responsive"> + <table class="table table-striped table-condensed"> + <thead> + <tr> + <th>Name</th> + <th>Type</th> + <th>Default</th> + <th>Description</th> + </tr> + </thead> + <tbody> + <tr> + <td>on</td> + <td>string | html</td> + <td><code>"On"</code></td> + <td>Text of the <em>on</em> toggle</td> + </tr> + <tr> + <td>off</td> + <td>string | html</td> + <td><code>"Off"</code></td> + <td>Text of the <em>off</em> toggle</td> + </tr> + <tr> + <td>size</td> + <td>string</td> + <td><code>"normal"</code></td> + <td> + Size of the toggle. Possible values are:<code>large</code>,<code>normal</code>,<code>small</code>,<code>mini</code><br> + Refer to Bootstrap <a href="http://getbootstrap.com/css/#buttons-sizes" target="_blank">Button Sizes</a> documentation for more information. + </td> + </tr> + <tr> + <td>onstyle</td> + <td>string</td> + <td><code>"primary"</code></td> + <td> + Style of the <em>on</em> toggle.<br>Possible values are:<code>default</code>,<code>primary</code>,<code>success</code>,<code>info</code>,<code>warning</code>,<code>danger</code><br> + Refer to Bootstrap <a href="http://getbootstrap.com/css/#buttons-options" target="_blank">Button Options</a> documentation for more information. + </td> + </tr> + <tr> + <td>offstyle</td> + <td>string</td> + <td><code>"default"</code></td> + <td> + Style of the <em>off</em> toggle.<br>Possible values are:<code>default</code>,<code>primary</code>,<code>success</code>,<code>info</code>,<code>warning</code>,<code>danger</code><br> + Refer to Bootstrap <a href="http://getbootstrap.com/css/#buttons-options" target="_blank">Button Options</a> documentation for more information. + </td> + </tr> + <tr> + <td>style</td> + <td>string</td> + <td></td> + <td> + Appends the value to the class attribute of the toggle. This can be used to apply custom styles. Refer to Custom Styles for reference. + </td> + </tr> + <tr> + <td>width</td> + <td>integer</td> + <td><em>null</em></td> + <td> + Sets the width of the toggle. if set to <em>null</em>, width will be calculated. + </td> + </tr> + <tr> + <td>height</td> + <td>integer</td> + <td><em>null</em></td> + <td> + Sets the height of the toggle. if set to <em>null</em>, height will be calculated. + </td> + </tr> + </tbody> + </table> + </div> + + <h3>Methods</h3> + <p>Methods can be used to control toggles directly.</p> + <div class="example"> + <input id="toggle-demo" type="checkbox" data-toggle="toggle"> + </div> + <div class="table-responsive"> + <table class="table table-striped table-condensed"> + <thead> + <tr> + <th>Method</th> + <th>Example</th> + <th>Description</th> + <th>Demo</th> + </tr> + </thead> + <tbody> + <tr> + <td><em>initialize</em></td> + <td><code>$('#toggle-demo').bootstrapToggle()</code></td> + <td>Initializes the toggle plugin with options</td> + <td><button class="btn btn-default btn-xs" onclick="demo.init('#toggle-demo')">Initialize</button></td> + </tr> + <tr> + <td>destroy</td> + <td><code>$('#toggle-demo').bootstrapToggle('destroy')</code></td> + <td>Destroys the toggle</td> + <td><button class="btn btn-default btn-xs" onclick="demo.destroy('#toggle-demo')">Destroy</button></td> + </tr> + <tr> + <td>on</td> + <td><code>$('#toggle-demo').bootstrapToggle('on')</code></td> + <td>Sets the toggle to 'On' state</td> + <td><button class="btn btn-default btn-xs" onclick="demo.on('#toggle-demo')">On</button></td> + </tr> + <tr> + <td>off</td> + <td><code>$('#toggle-demo').bootstrapToggle('off')</code></td> + <td>Sets the toggle to 'Off' state</td> + <td><button class="btn btn-default btn-xs" onclick="demo.off('#toggle-demo')">Off</button></td> + </tr> + <tr> + <td>toggle</td> + <td><code>$('#toggle-demo').bootstrapToggle('toggle')</code></td> + <td>Toggles the state of the toggle</td> + <td><button class="btn btn-default btn-xs" onclick="demo.toggle('#toggle-demo')">Toggle</button></td> + </tr> + <tr> + <td>enable</td> + <td><code>$('#toggle-demo').bootstrapToggle('enable')</code></td> + <td>Enables the toggle</td> + <td><button class="btn btn-default btn-xs" onclick="demo.enable('#toggle-demo')">Enable</button></td> + </tr> + <tr> + <td>disable</td> + <td><code>$('#toggle-demo').bootstrapToggle('disable')</code></td> + <td>Disables the toggle</td> + <td><button class="btn btn-default btn-xs" onclick="demo.disable('#toggle-demo')">Disable</button></td> + </tr> + </tbody> + </table> + </div> + </div> + + + <div id="events" class="container"> + <h2>Events</h2> + <hr> + + <h3>Event Propagation</h3> + <p><span class="label label-primary">Note</span> All events are propagated to and from input element to the toggle. </p> + <p>You should listen to events from the <code><input type="checkbox"></code> directly rather than look for custom events.</p> + <div class="example"> + <input id="toggle-event" type="checkbox" data-toggle="toggle"> + <div id="console-event"></div> + <script> + $(function() { + $('#toggle-event').change(function() { + $('#console-event').html('Toggle: ' + $(this).prop('checked')) + }) + }) + </script> + </div> + + <h3>API vs Input</h3> + <p>This also means that using the API or Input to trigger events will work both ways.</p> + <div class="example"> + <input id="toggle-trigger" type="checkbox" data-toggle="toggle"> + <button class="btn btn-success" onclick="toggleOn()">On by API</button> + <button class="btn btn-danger" onclick="toggleOff()">Off by API</button> + <button class="btn btn-success" onclick="toggleOnByInput()">On by Input</button> + <button class="btn btn-danger" onclick="toggleOffByInput()">Off by Input</button> + <script> + function toggleOn() { + $('#toggle-trigger').bootstrapToggle('on') + } + function toggleOff() { + $('#toggle-trigger').bootstrapToggle('off') + } + function toggleOnByInput() { + $('#toggle-trigger').prop('checked', true).change() + } + function toggleOffByInput() { + $('#toggle-trigger').prop('checked', false).change() + } + </script> + </div> + </div> + + <div id="demos" class="container"> + <h2>Demos</h2> + <hr> + + <h3>Sizes</h3> + <p>Bootstrap toggle is available in different sizes. Refer to Bootstrap <a href="http://getbootstrap.com/css/#buttons-sizes" target="_blank">Button Sizes</a> documentation for more information.</p> + <div class="example"> + <input type="checkbox" checked data-toggle="toggle" data-size="large"> + <input type="checkbox" checked data-toggle="toggle" data-size="normal"> + <input type="checkbox" checked data-toggle="toggle" data-size="small"> + <input type="checkbox" checked data-toggle="toggle" data-size="mini"> + </div> + + <h3>Custom Sizes</h3> + <p>Bootstrap toggle can handle custom sizes by <code>data-width</code> and <code>data-height</code> options.</p> + <div class="example"> + <input type="checkbox" checked data-toggle="toggle" data-width="100" data-height="75"> + <input type="checkbox" checked data-toggle="toggle" data-height="75"> + <input type="checkbox" checked data-toggle="toggle" data-width="100"> + </div> + + <h3>Colors</h3> + <p>Bootstrap Toggle supports various colors. Refer to Bootstrap <a href="http://getbootstrap.com/css/#buttons-options" target="_blank">Button Options</a> documentation for more information.</p> + <div class="example"> + <input type="checkbox" checked data-toggle="toggle" data-onstyle="primary"> + <input type="checkbox" checked data-toggle="toggle" data-onstyle="success"> + <input type="checkbox" checked data-toggle="toggle" data-onstyle="info"> + <input type="checkbox" checked data-toggle="toggle" data-onstyle="warning"> + <input type="checkbox" checked data-toggle="toggle" data-onstyle="danger"> + <input type="checkbox" checked data-toggle="toggle" data-onstyle="default"> + </div> + + <h3>Colors Mix</h3> + <p>You can style on state as well as the off state.</p> + <div class="example"> + <input type="checkbox" checked data-toggle="toggle" data-onstyle="success" data-offstyle="danger"> + <input type="checkbox" checked data-toggle="toggle" data-onstyle="warning" data-offstyle="info"> + </div> + + <h3>Custom Style</h3> + <p>Customized styles can be applied as easily.</p> + <div class="example"> + <style> + .toggle.ios, .toggle-on.ios, .toggle-off.ios { border-radius: 20px; } + .toggle.ios .toggle-handle { border-radius: 20px; } + </style> + <input type="checkbox" checked data-toggle="toggle" data-style="ios"> + <style> + .toggle.android { border-radius: 0px;} + .toggle.android .toggle-handle { border-radius: 0px; } + </style> + <input type="checkbox" checked data-toggle="toggle" data-style="android" data-onstyle="info"> + </div> + + <h3>Custom Text</h3> + <p>The text can be changed easily with attributes or options.</p> + <div class="example"> + <input type="checkbox" checked data-toggle="toggle" data-on="Ready" data-off="Not Ready" data-onstyle="success" data-offstyle="danger"> + </div> + + <h3>Icons/Html Text</h3> + <p>You can easily add icons or images since html is supported for on/off text.</p> + <div class="example"> + <input type="checkbox" checked data-toggle="toggle" data-on="<i class='fa fa-play'></i> Play" data-off="<i class='fa fa-pause'></i> Pause"> + </div> + + <h3>Multiple Lines of Text</h3> + <p>Toggles with multiple lines will adjust its heights.</p> + <div class="example"> + <input type="checkbox" checked data-toggle="toggle" data-on="Hello<br>World" data-off="Goodbye<br>World"> + </div> + + <h3>Animation Speed</h3> + <p>Transition speed can be easily controlled with css <code>transition</code> property on <code>.toggle-group</code>. You can also turn animation off completely.</p> + <div class="example"> + <style> + .slow .toggle-group { transition: left 0.7s; -webkit-transition: left 0.7s; } + .fast .toggle-group { transition: left 0.1s; -webkit-transition: left 0.1s; } + .quick .toggle-group { transition: none; -webkit-transition: none; } + </style> + <input type="checkbox" checked data-toggle="toggle" data-style="slow"> + <input type="checkbox" checked data-toggle="toggle" data-class="fast"> + <input type="checkbox" checked data-toggle="toggle" data-style="quick"> + </div> + <div> + </main> + <footer> + <div class="container"> + <p> + <img class="nyt-logo" src="doc/nyt.png"> + <img class="nyt-logo" src="doc/nytdev.svg"> + </p> + <p>Designed and built by <a href="https://github.com/minhur" target="_blank">Min Hur</a> for <a href="http://developers.nytimes.com" target="_blank">The New York Times Company</a></p> + <p>Latest Version: 2.2.0 | Code licensed under MIT</p> + <p> + <iframe src="https://mdo.github.io/github-buttons/github-btn.html?user=minhur&repo=bootstrap-toggle&type=watch&count=true" allowtransparency="true" frameborder="0" scrolling="0" width="110" height="20"></iframe> + <iframe src="https://mdo.github.io/github-buttons/github-btn.html?user=minhur&repo=bootstrap-toggle&type=fork&count=true" allowtransparency="true" frameborder="0" scrolling="0" width="95" height="20"></iframe> + </p> + </div> + </footer> + <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.3/highlight.min.js"></script> + <script src="doc/script.js"></script> + <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script> + <script src="js/bootstrap-toggle.js"></script> + <script> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + ga('create', 'UA-55669452-1', 'auto'); + ga('send', 'pageview'); + </script> +</body> +</html>
\ No newline at end of file diff --git a/base_accounting_kit/static/lib/bootstrap-toggle-master/js/bootstrap-toggle.js b/base_accounting_kit/static/lib/bootstrap-toggle-master/js/bootstrap-toggle.js new file mode 100644 index 0000000..533914e --- /dev/null +++ b/base_accounting_kit/static/lib/bootstrap-toggle-master/js/bootstrap-toggle.js @@ -0,0 +1,180 @@ +/*! ======================================================================== + * Bootstrap Toggle: bootstrap-toggle.js v2.2.0 + * http://www.bootstraptoggle.com + * ======================================================================== + * Copyright 2014 Min Hur, The New York Times Company + * Licensed under MIT + * ======================================================================== */ + + + +function ($) { + 'use strict'; + + // TOGGLE PUBLIC CLASS DEFINITION + // ============================== + + var Toggle = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, this.defaults(), options) + this.render() + } + + Toggle.VERSION = '2.2.0' + + Toggle.DEFAULTS = { + on: 'On', + off: 'Off', + onstyle: 'primary', + offstyle: 'default', + size: 'normal', + style: '', + width: null, + height: null + } + + Toggle.prototype.defaults = function() { + return { + on: this.$element.attr('data-on') || Toggle.DEFAULTS.on, + off: this.$element.attr('data-off') || Toggle.DEFAULTS.off, + onstyle: this.$element.attr('data-onstyle') || Toggle.DEFAULTS.onstyle, + offstyle: this.$element.attr('data-offstyle') || Toggle.DEFAULTS.offstyle, + size: this.$element.attr('data-size') || Toggle.DEFAULTS.size, + style: this.$element.attr('data-style') || Toggle.DEFAULTS.style, + width: this.$element.attr('data-width') || Toggle.DEFAULTS.width, + height: this.$element.attr('data-height') || Toggle.DEFAULTS.height + } + } + + Toggle.prototype.render = function () { + this._onstyle = 'btn-' + this.options.onstyle + this._offstyle = 'btn-' + this.options.offstyle + var size = this.options.size === 'large' ? 'btn-lg' + : this.options.size === 'small' ? 'btn-sm' + : this.options.size === 'mini' ? 'btn-xs' + : '' + var $toggleOn = $('<label class="btn">').html(this.options.on) + .addClass(this._onstyle + ' ' + size) + var $toggleOff = $('<label class="btn">').html(this.options.off) + .addClass(this._offstyle + ' ' + size + ' active') + var $toggleHandle = $('<span class="toggle-handle btn btn-default">') + .addClass(size) + var $toggleGroup = $('<div class="toggle-group">') + .append($toggleOn, $toggleOff, $toggleHandle) + var $toggle = $('<div class="toggle btn" data-toggle="toggle">') + .addClass( this.$element.prop('checked') ? this._onstyle : this._offstyle+' off' ) + .addClass(size).addClass(this.options.style) + + this.$element.wrap($toggle) + $.extend(this, { + $toggle: this.$element.parent(), + $toggleOn: $toggleOn, + $toggleOff: $toggleOff, + $toggleGroup: $toggleGroup + }) + this.$toggle.append($toggleGroup) + + var width = this.options.width || Math.max($toggleOn.outerWidth(), $toggleOff.outerWidth())+($toggleHandle.outerWidth()/2) + var height = this.options.height || Math.max($toggleOn.outerHeight(), $toggleOff.outerHeight()) + $toggleOn.addClass('toggle-on') + $toggleOff.addClass('toggle-off') + this.$toggle.css({ width: width, height: height }) + if (this.options.height) { + $toggleOn.css('line-height', $toggleOn.height() + 'px') + $toggleOff.css('line-height', $toggleOff.height() + 'px') + } + this.update(true) + this.trigger(true) + } + + Toggle.prototype.toggle = function () { + if (this.$element.prop('checked')) this.off() + else this.on() + } + + Toggle.prototype.on = function (silent) { + if (this.$element.prop('disabled')) return false + this.$toggle.removeClass(this._offstyle + ' off').addClass(this._onstyle) + this.$element.prop('checked', true) + if (!silent) this.trigger() + } + + Toggle.prototype.off = function (silent) { + if (this.$element.prop('disabled')) return false + this.$toggle.removeClass(this._onstyle).addClass(this._offstyle + ' off') + this.$element.prop('checked', false) + if (!silent) this.trigger() + } + + Toggle.prototype.enable = function () { + this.$toggle.removeAttr('disabled') + this.$element.prop('disabled', false) + } + + Toggle.prototype.disable = function () { + this.$toggle.attr('disabled', 'disabled') + this.$element.prop('disabled', true) + } + + Toggle.prototype.update = function (silent) { + if (this.$element.prop('disabled')) this.disable() + else this.enable() + if (this.$element.prop('checked')) this.on(silent) + else this.off(silent) + } + + Toggle.prototype.trigger = function (silent) { + this.$element.off('change.bs.toggle') + if (!silent) this.$element.change() + this.$element.on('change.bs.toggle', $.proxy(function() { + this.update() + }, this)) + } + + Toggle.prototype.destroy = function() { + this.$element.off('change.bs.toggle') + this.$toggleGroup.remove() + this.$element.removeData('bs.toggle') + this.$element.unwrap() + } + + // TOGGLE PLUGIN DEFINITION + // ======================== + + function Plugin(option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.toggle') + var options = typeof option == 'object' && option + + if (!data) $this.data('bs.toggle', (data = new Toggle(this, options))) + if (typeof option == 'string' && data[option]) data[option]() + }) + } + + var old = $.fn.bootstrapToggle + + $.fn.bootstrapToggle = Plugin + $.fn.bootstrapToggle.Constructor = Toggle + + // TOGGLE NO CONFLICT + // ================== + + $.fn.toggle.noConflict = function () { + $.fn.bootstrapToggle = old + return this + } + + // TOGGLE DATA-API + // =============== + + $(function() { + $('input[type=checkbox][data-toggle^=toggle]').bootstrapToggle() + }) + + $(document).on('click.bs.toggle', 'div[data-toggle^=toggle]', function(e) { + var $checkbox = $(this).find('input[type=checkbox]') + $checkbox.bootstrapToggle('toggle') + e.preventDefault() + }) + +}(jQuery); diff --git a/base_accounting_kit/static/lib/bootstrap-toggle-master/js/bootstrap-toggle.min.js b/base_accounting_kit/static/lib/bootstrap-toggle-master/js/bootstrap-toggle.min.js new file mode 100644 index 0000000..3711320 --- /dev/null +++ b/base_accounting_kit/static/lib/bootstrap-toggle-master/js/bootstrap-toggle.min.js @@ -0,0 +1,9 @@ +/*! ======================================================================== + * Bootstrap Toggle: bootstrap-toggle.js v2.2.0 + * http://www.bootstraptoggle.com + * ======================================================================== + * Copyright 2014 Min Hur, The New York Times Company + * Licensed under MIT + * ======================================================================== */ ++function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.toggle"),f="object"==typeof b&&b;e||d.data("bs.toggle",e=new c(this,f)),"string"==typeof b&&e[b]&&e[b]()})}var c=function(b,c){this.$element=a(b),this.options=a.extend({},this.defaults(),c),this.render()};c.VERSION="2.2.0",c.DEFAULTS={on:"On",off:"Off",onstyle:"primary",offstyle:"default",size:"normal",style:"",width:null,height:null},c.prototype.defaults=function(){return{on:this.$element.attr("data-on")||c.DEFAULTS.on,off:this.$element.attr("data-off")||c.DEFAULTS.off,onstyle:this.$element.attr("data-onstyle")||c.DEFAULTS.onstyle,offstyle:this.$element.attr("data-offstyle")||c.DEFAULTS.offstyle,size:this.$element.attr("data-size")||c.DEFAULTS.size,style:this.$element.attr("data-style")||c.DEFAULTS.style,width:this.$element.attr("data-width")||c.DEFAULTS.width,height:this.$element.attr("data-height")||c.DEFAULTS.height}},c.prototype.render=function(){this._onstyle="btn-"+this.options.onstyle,this._offstyle="btn-"+this.options.offstyle;var b="large"===this.options.size?"btn-lg":"small"===this.options.size?"btn-sm":"mini"===this.options.size?"btn-xs":"",c=a('<label class="btn">').html(this.options.on).addClass(this._onstyle+" "+b),d=a('<label class="btn">').html(this.options.off).addClass(this._offstyle+" "+b+" active"),e=a('<span class="toggle-handle btn btn-default">').addClass(b),f=a('<div class="toggle-group">').append(c,d,e),g=a('<div class="toggle btn" data-toggle="toggle">').addClass(this.$element.prop("checked")?this._onstyle:this._offstyle+" off").addClass(b).addClass(this.options.style);this.$element.wrap(g),a.extend(this,{$toggle:this.$element.parent(),$toggleOn:c,$toggleOff:d,$toggleGroup:f}),this.$toggle.append(f);var h=this.options.width||Math.max(c.outerWidth(),d.outerWidth())+e.outerWidth()/2,i=this.options.height||Math.max(c.outerHeight(),d.outerHeight());c.addClass("toggle-on"),d.addClass("toggle-off"),this.$toggle.css({width:h,height:i}),this.options.height&&(c.css("line-height",c.height()+"px"),d.css("line-height",d.height()+"px")),this.update(!0),this.trigger(!0)},c.prototype.toggle=function(){this.$element.prop("checked")?this.off():this.on()},c.prototype.on=function(a){return this.$element.prop("disabled")?!1:(this.$toggle.removeClass(this._offstyle+" off").addClass(this._onstyle),this.$element.prop("checked",!0),void(a||this.trigger()))},c.prototype.off=function(a){return this.$element.prop("disabled")?!1:(this.$toggle.removeClass(this._onstyle).addClass(this._offstyle+" off"),this.$element.prop("checked",!1),void(a||this.trigger()))},c.prototype.enable=function(){this.$toggle.removeAttr("disabled"),this.$element.prop("disabled",!1)},c.prototype.disable=function(){this.$toggle.attr("disabled","disabled"),this.$element.prop("disabled",!0)},c.prototype.update=function(a){this.$element.prop("disabled")?this.disable():this.enable(),this.$element.prop("checked")?this.on(a):this.off(a)},c.prototype.trigger=function(b){this.$element.off("change.bs.toggle"),b||this.$element.change(),this.$element.on("change.bs.toggle",a.proxy(function(){this.update()},this))},c.prototype.destroy=function(){this.$element.off("change.bs.toggle"),this.$toggleGroup.remove(),this.$element.removeData("bs.toggle"),this.$element.unwrap()};var d=a.fn.bootstrapToggle;a.fn.bootstrapToggle=b,a.fn.bootstrapToggle.Constructor=c,a.fn.toggle.noConflict=function(){return a.fn.bootstrapToggle=d,this},a(function(){a("input[type=checkbox][data-toggle^=toggle]").bootstrapToggle()}),a(document).on("click.bs.toggle","div[data-toggle^=toggle]",function(b){var c=a(this).find("input[type=checkbox]");c.bootstrapToggle("toggle"),b.preventDefault()})}(jQuery); +//# sourceMappingURL=bootstrap-toggle.min.js.map
\ No newline at end of file diff --git a/base_accounting_kit/static/lib/bootstrap-toggle-master/js/bootstrap-toggle.min.js.map b/base_accounting_kit/static/lib/bootstrap-toggle-master/js/bootstrap-toggle.min.js.map new file mode 100644 index 0000000..ac388af --- /dev/null +++ b/base_accounting_kit/static/lib/bootstrap-toggle-master/js/bootstrap-toggle.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bootstrap-toggle.min.js","sources":["bootstrap-toggle.js"],"names":["$","Plugin","option","this","each","$this","data","options","Toggle","element","$element","extend","defaults","render","VERSION","DEFAULTS","on","off","onstyle","offstyle","size","style","width","height","prototype","attr","_onstyle","_offstyle","$toggleOn","html","addClass","$toggleOff","$toggleHandle","$toggleGroup","append","$toggle","prop","wrap","parent","Math","max","outerWidth","outerHeight","css","update","trigger","toggle","silent","removeClass","enable","removeAttr","disable","change","proxy","destroy","remove","removeData","unwrap","old","fn","bootstrapToggle","Constructor","noConflict","document","e","$checkbox","find","preventDefault","jQuery"],"mappings":";;;;;;;CASE,SAAUA,GACV,YAoID,SAASC,GAAOC,GACf,MAAOC,MAAKC,KAAK,WAChB,GAAIC,GAAUL,EAAEG,MACZG,EAAUD,EAAMC,KAAK,aACrBC,EAA2B,gBAAVL,IAAsBA,CAEtCI,IAAMD,EAAMC,KAAK,YAAcA,EAAO,GAAIE,GAAOL,KAAMI,IACvC,gBAAVL,IAAsBI,EAAKJ,IAASI,EAAKJ,OAtItD,GAAIM,GAAS,SAAUC,EAASF,GAC/BJ,KAAKO,SAAYV,EAAES,GACnBN,KAAKI,QAAYP,EAAEW,UAAWR,KAAKS,WAAYL,GAC/CJ,KAAKU,SAGNL,GAAOM,QAAW,QAElBN,EAAOO,UACNC,GAAI,KACJC,IAAK,MACLC,QAAS,UACTC,SAAU,UACVC,KAAM,SACNC,MAAO,GACPC,MAAO,KACPC,OAAQ,MAGTf,EAAOgB,UAAUZ,SAAW,WAC3B,OACCI,GAAIb,KAAKO,SAASe,KAAK,YAAcjB,EAAOO,SAASC,GACrDC,IAAKd,KAAKO,SAASe,KAAK,aAAejB,EAAOO,SAASE,IACvDC,QAASf,KAAKO,SAASe,KAAK,iBAAmBjB,EAAOO,SAASG,QAC/DC,SAAUhB,KAAKO,SAASe,KAAK,kBAAoBjB,EAAOO,SAASI,SACjEC,KAAMjB,KAAKO,SAASe,KAAK,cAAgBjB,EAAOO,SAASK,KACzDC,MAAOlB,KAAKO,SAASe,KAAK,eAAiBjB,EAAOO,SAASM,MAC3DC,MAAOnB,KAAKO,SAASe,KAAK,eAAiBjB,EAAOO,SAASO,MAC3DC,OAAQpB,KAAKO,SAASe,KAAK,gBAAkBjB,EAAOO,SAASQ,SAI/Df,EAAOgB,UAAUX,OAAS,WACzBV,KAAKuB,SAAW,OAASvB,KAAKI,QAAQW,QACtCf,KAAKwB,UAAY,OAASxB,KAAKI,QAAQY,QACvC,IAAIC,GAA6B,UAAtBjB,KAAKI,QAAQa,KAAmB,SAClB,UAAtBjB,KAAKI,QAAQa,KAAmB,SACV,SAAtBjB,KAAKI,QAAQa,KAAkB,SAC/B,GACCQ,EAAY5B,EAAE,uBAAuB6B,KAAK1B,KAAKI,QAAQS,IACzDc,SAAS3B,KAAKuB,SAAW,IAAMN,GAC7BW,EAAa/B,EAAE,uBAAuB6B,KAAK1B,KAAKI,QAAQU,KAC1Da,SAAS3B,KAAKwB,UAAY,IAAMP,EAAO,WACrCY,EAAgBhC,EAAE,gDACpB8B,SAASV,GACPa,EAAejC,EAAE,8BACnBkC,OAAON,EAAWG,EAAYC,GAC5BG,EAAUnC,EAAE,iDACd8B,SAAU3B,KAAKO,SAAS0B,KAAK,WAAajC,KAAKuB,SAAWvB,KAAKwB,UAAU,QACzEG,SAASV,GAAMU,SAAS3B,KAAKI,QAAQc,MAEvClB,MAAKO,SAAS2B,KAAKF,GACnBnC,EAAEW,OAAOR,MACRgC,QAAShC,KAAKO,SAAS4B,SACvBV,UAAWA,EACXG,WAAYA,EACZE,aAAcA,IAEf9B,KAAKgC,QAAQD,OAAOD,EAEpB,IAAIX,GAAQnB,KAAKI,QAAQe,OAASiB,KAAKC,IAAIZ,EAAUa,aAAcV,EAAWU,cAAeT,EAAcS,aAAa,EACpHlB,EAASpB,KAAKI,QAAQgB,QAAUgB,KAAKC,IAAIZ,EAAUc,cAAeX,EAAWW,cACjFd,GAAUE,SAAS,aACnBC,EAAWD,SAAS,cACpB3B,KAAKgC,QAAQQ,KAAMrB,MAAOA,EAAOC,OAAQA,IACrCpB,KAAKI,QAAQgB,SAChBK,EAAUe,IAAI,cAAef,EAAUL,SAAW,MAClDQ,EAAWY,IAAI,cAAeZ,EAAWR,SAAW,OAErDpB,KAAKyC,QAAO,GACZzC,KAAK0C,SAAQ,IAGdrC,EAAOgB,UAAUsB,OAAS,WACrB3C,KAAKO,SAAS0B,KAAK,WAAYjC,KAAKc,MACnCd,KAAKa,MAGXR,EAAOgB,UAAUR,GAAK,SAAU+B,GAC/B,MAAI5C,MAAKO,SAAS0B,KAAK,aAAoB,GAC3CjC,KAAKgC,QAAQa,YAAY7C,KAAKwB,UAAY,QAAQG,SAAS3B,KAAKuB,UAChEvB,KAAKO,SAAS0B,KAAK,WAAW,QACzBW,GAAQ5C,KAAK0C,aAGnBrC,EAAOgB,UAAUP,IAAM,SAAU8B,GAChC,MAAI5C,MAAKO,SAAS0B,KAAK,aAAoB,GAC3CjC,KAAKgC,QAAQa,YAAY7C,KAAKuB,UAAUI,SAAS3B,KAAKwB,UAAY,QAClExB,KAAKO,SAAS0B,KAAK,WAAW,QACzBW,GAAQ5C,KAAK0C,aAGnBrC,EAAOgB,UAAUyB,OAAS,WACzB9C,KAAKgC,QAAQe,WAAW,YACxB/C,KAAKO,SAAS0B,KAAK,YAAY,IAGhC5B,EAAOgB,UAAU2B,QAAU,WAC1BhD,KAAKgC,QAAQV,KAAK,WAAY,YAC9BtB,KAAKO,SAAS0B,KAAK,YAAY,IAGhC5B,EAAOgB,UAAUoB,OAAS,SAAUG,GAC/B5C,KAAKO,SAAS0B,KAAK,YAAajC,KAAKgD,UACpChD,KAAK8C,SACN9C,KAAKO,SAAS0B,KAAK,WAAYjC,KAAKa,GAAG+B,GACtC5C,KAAKc,IAAI8B,IAGfvC,EAAOgB,UAAUqB,QAAU,SAAUE,GACpC5C,KAAKO,SAASO,IAAI,oBACb8B,GAAQ5C,KAAKO,SAAS0C,SAC3BjD,KAAKO,SAASM,GAAG,mBAAoBhB,EAAEqD,MAAM,WAC5ClD,KAAKyC,UACHzC,QAGJK,EAAOgB,UAAU8B,QAAU,WAC1BnD,KAAKO,SAASO,IAAI,oBAClBd,KAAK8B,aAAasB,SAClBpD,KAAKO,SAAS8C,WAAW,aACzBrD,KAAKO,SAAS+C,SAiBf,IAAIC,GAAM1D,EAAE2D,GAAGC,eAEf5D,GAAE2D,GAAGC,gBAA8B3D,EACnCD,EAAE2D,GAAGC,gBAAgBC,YAAcrD,EAKnCR,EAAE2D,GAAGb,OAAOgB,WAAa,WAExB,MADA9D,GAAE2D,GAAGC,gBAAkBF,EAChBvD,MAMRH,EAAE,WACDA,EAAE,6CAA6C4D,oBAGhD5D,EAAE+D,UAAU/C,GAAG,kBAAmB,2BAA4B,SAASgD,GACtE,GAAIC,GAAYjE,EAAEG,MAAM+D,KAAK,uBAC7BD,GAAUL,gBAAgB,UAC1BI,EAAEG,oBAGFC"}
\ No newline at end of file diff --git a/base_accounting_kit/static/lib/bootstrap-toggle-master/js/bootstrap2-toggle.js b/base_accounting_kit/static/lib/bootstrap-toggle-master/js/bootstrap2-toggle.js new file mode 100644 index 0000000..93a541c --- /dev/null +++ b/base_accounting_kit/static/lib/bootstrap-toggle-master/js/bootstrap2-toggle.js @@ -0,0 +1,180 @@ +/*! ======================================================================== + * Bootstrap Toggle: bootstrap2-toggle.js v2.2.0 + * http://www.bootstraptoggle.com + * ======================================================================== + * Copyright 2014 Min Hur, The New York Times Company + * Licensed under MIT + * ======================================================================== */ + + + +function ($) { + 'use strict'; + + // TOGGLE PUBLIC CLASS DEFINITION + // ============================== + + var Toggle = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, this.defaults(), options) + this.render() + } + + Toggle.VERSION = '2.2.0' + + Toggle.DEFAULTS = { + on: 'On', + off: 'Off', + onstyle: 'primary', + offstyle: 'default', + size: 'normal', + style: '', + width: null, + height: null + } + + Toggle.prototype.defaults = function() { + return { + on: this.$element.attr('data-on') || Toggle.DEFAULTS.on, + off: this.$element.attr('data-off') || Toggle.DEFAULTS.off, + onstyle: this.$element.attr('data-onstyle') || Toggle.DEFAULTS.onstyle, + offstyle: this.$element.attr('data-offstyle') || Toggle.DEFAULTS.offstyle, + size: this.$element.attr('data-size') || Toggle.DEFAULTS.size, + style: this.$element.attr('data-style') || Toggle.DEFAULTS.style, + width: this.$element.attr('data-width') || Toggle.DEFAULTS.width, + height: this.$element.attr('data-height') || Toggle.DEFAULTS.height + } + } + + Toggle.prototype.render = function () { + this._onstyle = 'btn-' + this.options.onstyle + this._offstyle = 'btn-' + this.options.offstyle + var size = this.options.size === 'large' ? 'btn-large' + : this.options.size === 'small' ? 'btn-small' + : this.options.size === 'mini' ? 'btn-mini' + : '' + var $toggleOn = $('<label class="btn">').html(this.options.on) + .addClass(this._onstyle + ' ' + size) + var $toggleOff = $('<label class="btn">').html(this.options.off) + .addClass(this._offstyle + ' ' + size + ' active') + var $toggleHandle = $('<span class="toggle-handle btn btn-default">') + .addClass(size) + var $toggleGroup = $('<div class="toggle-group">') + .append($toggleOn, $toggleOff, $toggleHandle) + var $toggle = $('<div class="toggle btn" data-toggle="toggle">') + .addClass( this.$element.prop('checked') ? this._onstyle : this._offstyle+' off' ) + .addClass(size).addClass(this.options.style) + + this.$element.wrap($toggle) + $.extend(this, { + $toggle: this.$element.parent(), + $toggleOn: $toggleOn, + $toggleOff: $toggleOff, + $toggleGroup: $toggleGroup + }) + this.$toggle.append($toggleGroup) + + var width = this.options.width || Math.max($toggleOn.width(), $toggleOff.width())+($toggleHandle.outerWidth()/2) + var height = this.options.height || Math.max($toggleOn.height(), $toggleOff.height()) + $toggleOn.addClass('toggle-on') + $toggleOff.addClass('toggle-off') + this.$toggle.css({ width: width, height: height }) + if (this.options.height) { + $toggleOn.css('line-height', $toggleOn.height() + 'px') + $toggleOff.css('line-height', $toggleOff.height() + 'px') + } + this.update(true) + this.trigger(true) + } + + Toggle.prototype.toggle = function () { + if (this.$element.prop('checked')) this.off() + else this.on() + } + + Toggle.prototype.on = function (silent) { + if (this.$element.prop('disabled')) return false + this.$toggle.removeClass(this._offstyle + ' off').addClass(this._onstyle) + this.$element.prop('checked', true) + if (!silent) this.trigger() + } + + Toggle.prototype.off = function (silent) { + if (this.$element.prop('disabled')) return false + this.$toggle.removeClass(this._onstyle).addClass(this._offstyle + ' off') + this.$element.prop('checked', false) + if (!silent) this.trigger() + } + + Toggle.prototype.enable = function () { + this.$toggle.removeAttr('disabled') + this.$element.prop('disabled', false) + } + + Toggle.prototype.disable = function () { + this.$toggle.attr('disabled', 'disabled') + this.$element.prop('disabled', true) + } + + Toggle.prototype.update = function (silent) { + if (this.$element.prop('disabled')) this.disable() + else this.enable() + if (this.$element.prop('checked')) this.on(silent) + else this.off(silent) + } + + Toggle.prototype.trigger = function (silent) { + this.$element.off('change.bs.toggle') + if (!silent) this.$element.change() + this.$element.on('change.bs.toggle', $.proxy(function() { + this.update() + }, this)) + } + + Toggle.prototype.destroy = function() { + this.$element.off('change.bs.toggle') + this.$toggleGroup.remove() + this.$element.removeData('bs.toggle') + this.$element.unwrap() + } + + // TOGGLE PLUGIN DEFINITION + // ======================== + + function Plugin(option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.toggle') + var options = typeof option == 'object' && option + + if (!data) $this.data('bs.toggle', (data = new Toggle(this, options))) + if (typeof option == 'string' && data[option]) data[option]() + }) + } + + var old = $.fn.bootstrapToggle + + $.fn.bootstrapToggle = Plugin + $.fn.bootstrapToggle.Constructor = Toggle + + // TOGGLE NO CONFLICT + // ================== + + $.fn.toggle.noConflict = function () { + $.fn.bootstrapToggle = old + return this + } + + // TOGGLE DATA-API + // =============== + + $(function() { + $('input[type=checkbox][data-toggle^=toggle]').bootstrapToggle() + }) + + $(document).on('click.bs.toggle', 'div[data-toggle^=toggle]', function(e) { + var $checkbox = $(this).find('input[type=checkbox]') + $checkbox.bootstrapToggle('toggle') + e.preventDefault() + }) + +}(jQuery); diff --git a/base_accounting_kit/static/lib/bootstrap-toggle-master/js/bootstrap2-toggle.min.js b/base_accounting_kit/static/lib/bootstrap-toggle-master/js/bootstrap2-toggle.min.js new file mode 100644 index 0000000..2aa60aa --- /dev/null +++ b/base_accounting_kit/static/lib/bootstrap-toggle-master/js/bootstrap2-toggle.min.js @@ -0,0 +1,9 @@ +/*! ======================================================================== + * Bootstrap Toggle: bootstrap2-toggle.js v2.2.0 + * http://www.bootstraptoggle.com + * ======================================================================== + * Copyright 2014 Min Hur, The New York Times Company + * Licensed under MIT + * ======================================================================== */ ++function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.toggle"),f="object"==typeof b&&b;e||d.data("bs.toggle",e=new c(this,f)),"string"==typeof b&&e[b]&&e[b]()})}var c=function(b,c){this.$element=a(b),this.options=a.extend({},this.defaults(),c),this.render()};c.VERSION="2.2.0",c.DEFAULTS={on:"On",off:"Off",onstyle:"primary",offstyle:"default",size:"normal",style:"",width:null,height:null},c.prototype.defaults=function(){return{on:this.$element.attr("data-on")||c.DEFAULTS.on,off:this.$element.attr("data-off")||c.DEFAULTS.off,onstyle:this.$element.attr("data-onstyle")||c.DEFAULTS.onstyle,offstyle:this.$element.attr("data-offstyle")||c.DEFAULTS.offstyle,size:this.$element.attr("data-size")||c.DEFAULTS.size,style:this.$element.attr("data-style")||c.DEFAULTS.style,width:this.$element.attr("data-width")||c.DEFAULTS.width,height:this.$element.attr("data-height")||c.DEFAULTS.height}},c.prototype.render=function(){this._onstyle="btn-"+this.options.onstyle,this._offstyle="btn-"+this.options.offstyle;var b="large"===this.options.size?"btn-large":"small"===this.options.size?"btn-small":"mini"===this.options.size?"btn-mini":"",c=a('<label class="btn">').html(this.options.on).addClass(this._onstyle+" "+b),d=a('<label class="btn">').html(this.options.off).addClass(this._offstyle+" "+b+" active"),e=a('<span class="toggle-handle btn btn-default">').addClass(b),f=a('<div class="toggle-group">').append(c,d,e),g=a('<div class="toggle btn" data-toggle="toggle">').addClass(this.$element.prop("checked")?this._onstyle:this._offstyle+" off").addClass(b).addClass(this.options.style);this.$element.wrap(g),a.extend(this,{$toggle:this.$element.parent(),$toggleOn:c,$toggleOff:d,$toggleGroup:f}),this.$toggle.append(f);var h=this.options.width||Math.max(c.width(),d.width())+e.outerWidth()/2,i=this.options.height||Math.max(c.height(),d.height());c.addClass("toggle-on"),d.addClass("toggle-off"),this.$toggle.css({width:h,height:i}),this.options.height&&(c.css("line-height",c.height()+"px"),d.css("line-height",d.height()+"px")),this.update(!0),this.trigger(!0)},c.prototype.toggle=function(){this.$element.prop("checked")?this.off():this.on()},c.prototype.on=function(a){return this.$element.prop("disabled")?!1:(this.$toggle.removeClass(this._offstyle+" off").addClass(this._onstyle),this.$element.prop("checked",!0),void(a||this.trigger()))},c.prototype.off=function(a){return this.$element.prop("disabled")?!1:(this.$toggle.removeClass(this._onstyle).addClass(this._offstyle+" off"),this.$element.prop("checked",!1),void(a||this.trigger()))},c.prototype.enable=function(){this.$toggle.removeAttr("disabled"),this.$element.prop("disabled",!1)},c.prototype.disable=function(){this.$toggle.attr("disabled","disabled"),this.$element.prop("disabled",!0)},c.prototype.update=function(a){this.$element.prop("disabled")?this.disable():this.enable(),this.$element.prop("checked")?this.on(a):this.off(a)},c.prototype.trigger=function(b){this.$element.off("change.bs.toggle"),b||this.$element.change(),this.$element.on("change.bs.toggle",a.proxy(function(){this.update()},this))},c.prototype.destroy=function(){this.$element.off("change.bs.toggle"),this.$toggleGroup.remove(),this.$element.removeData("bs.toggle"),this.$element.unwrap()};var d=a.fn.bootstrapToggle;a.fn.bootstrapToggle=b,a.fn.bootstrapToggle.Constructor=c,a.fn.toggle.noConflict=function(){return a.fn.bootstrapToggle=d,this},a(function(){a("input[type=checkbox][data-toggle^=toggle]").bootstrapToggle()}),a(document).on("click.bs.toggle","div[data-toggle^=toggle]",function(b){var c=a(this).find("input[type=checkbox]");c.bootstrapToggle("toggle"),b.preventDefault()})}(jQuery); +//# sourceMappingURL=bootstrap2-toggle.min.js.map
\ No newline at end of file diff --git a/base_accounting_kit/static/lib/bootstrap-toggle-master/js/bootstrap2-toggle.min.js.map b/base_accounting_kit/static/lib/bootstrap-toggle-master/js/bootstrap2-toggle.min.js.map new file mode 100644 index 0000000..9160909 --- /dev/null +++ b/base_accounting_kit/static/lib/bootstrap-toggle-master/js/bootstrap2-toggle.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bootstrap2-toggle.min.js","sources":["bootstrap2-toggle.js"],"names":["$","Plugin","option","this","each","$this","data","options","Toggle","element","$element","extend","defaults","render","VERSION","DEFAULTS","on","off","onstyle","offstyle","size","style","width","height","prototype","attr","_onstyle","_offstyle","$toggleOn","html","addClass","$toggleOff","$toggleHandle","$toggleGroup","append","$toggle","prop","wrap","parent","Math","max","outerWidth","css","update","trigger","toggle","silent","removeClass","enable","removeAttr","disable","change","proxy","destroy","remove","removeData","unwrap","old","fn","bootstrapToggle","Constructor","noConflict","document","e","$checkbox","find","preventDefault","jQuery"],"mappings":";;;;;;;CASE,SAAUA,GACV,YAoID,SAASC,GAAOC,GACf,MAAOC,MAAKC,KAAK,WAChB,GAAIC,GAAUL,EAAEG,MACZG,EAAUD,EAAMC,KAAK,aACrBC,EAA2B,gBAAVL,IAAsBA,CAEtCI,IAAMD,EAAMC,KAAK,YAAcA,EAAO,GAAIE,GAAOL,KAAMI,IACvC,gBAAVL,IAAsBI,EAAKJ,IAASI,EAAKJ,OAtItD,GAAIM,GAAS,SAAUC,EAASF,GAC/BJ,KAAKO,SAAYV,EAAES,GACnBN,KAAKI,QAAYP,EAAEW,UAAWR,KAAKS,WAAYL,GAC/CJ,KAAKU,SAGNL,GAAOM,QAAW,QAElBN,EAAOO,UACNC,GAAI,KACJC,IAAK,MACLC,QAAS,UACTC,SAAU,UACVC,KAAM,SACNC,MAAO,GACPC,MAAO,KACPC,OAAQ,MAGTf,EAAOgB,UAAUZ,SAAW,WAC3B,OACCI,GAAIb,KAAKO,SAASe,KAAK,YAAcjB,EAAOO,SAASC,GACrDC,IAAKd,KAAKO,SAASe,KAAK,aAAejB,EAAOO,SAASE,IACvDC,QAASf,KAAKO,SAASe,KAAK,iBAAmBjB,EAAOO,SAASG,QAC/DC,SAAUhB,KAAKO,SAASe,KAAK,kBAAoBjB,EAAOO,SAASI,SACjEC,KAAMjB,KAAKO,SAASe,KAAK,cAAgBjB,EAAOO,SAASK,KACzDC,MAAOlB,KAAKO,SAASe,KAAK,eAAiBjB,EAAOO,SAASM,MAC3DC,MAAOnB,KAAKO,SAASe,KAAK,eAAiBjB,EAAOO,SAASO,MAC3DC,OAAQpB,KAAKO,SAASe,KAAK,gBAAkBjB,EAAOO,SAASQ,SAI/Df,EAAOgB,UAAUX,OAAS,WACzBV,KAAKuB,SAAW,OAASvB,KAAKI,QAAQW,QACtCf,KAAKwB,UAAY,OAASxB,KAAKI,QAAQY,QACvC,IAAIC,GAA6B,UAAtBjB,KAAKI,QAAQa,KAAmB,YAClB,UAAtBjB,KAAKI,QAAQa,KAAmB,YACV,SAAtBjB,KAAKI,QAAQa,KAAkB,WAC/B,GACCQ,EAAY5B,EAAE,uBAAuB6B,KAAK1B,KAAKI,QAAQS,IACzDc,SAAS3B,KAAKuB,SAAW,IAAMN,GAC7BW,EAAa/B,EAAE,uBAAuB6B,KAAK1B,KAAKI,QAAQU,KAC1Da,SAAS3B,KAAKwB,UAAY,IAAMP,EAAO,WACrCY,EAAgBhC,EAAE,gDACpB8B,SAASV,GACPa,EAAejC,EAAE,8BACnBkC,OAAON,EAAWG,EAAYC,GAC5BG,EAAUnC,EAAE,iDACd8B,SAAU3B,KAAKO,SAAS0B,KAAK,WAAajC,KAAKuB,SAAWvB,KAAKwB,UAAU,QACzEG,SAASV,GAAMU,SAAS3B,KAAKI,QAAQc,MAEvClB,MAAKO,SAAS2B,KAAKF,GACnBnC,EAAEW,OAAOR,MACRgC,QAAShC,KAAKO,SAAS4B,SACvBV,UAAWA,EACXG,WAAYA,EACZE,aAAcA,IAEf9B,KAAKgC,QAAQD,OAAOD,EAEpB,IAAIX,GAAQnB,KAAKI,QAAQe,OAASiB,KAAKC,IAAIZ,EAAUN,QAASS,EAAWT,SAAUU,EAAcS,aAAa,EAC1GlB,EAASpB,KAAKI,QAAQgB,QAAUgB,KAAKC,IAAIZ,EAAUL,SAAUQ,EAAWR,SAC5EK,GAAUE,SAAS,aACnBC,EAAWD,SAAS,cACpB3B,KAAKgC,QAAQO,KAAMpB,MAAOA,EAAOC,OAAQA,IACrCpB,KAAKI,QAAQgB,SAChBK,EAAUc,IAAI,cAAed,EAAUL,SAAW,MAClDQ,EAAWW,IAAI,cAAeX,EAAWR,SAAW,OAErDpB,KAAKwC,QAAO,GACZxC,KAAKyC,SAAQ,IAGdpC,EAAOgB,UAAUqB,OAAS,WACrB1C,KAAKO,SAAS0B,KAAK,WAAYjC,KAAKc,MACnCd,KAAKa,MAGXR,EAAOgB,UAAUR,GAAK,SAAU8B,GAC/B,MAAI3C,MAAKO,SAAS0B,KAAK,aAAoB,GAC3CjC,KAAKgC,QAAQY,YAAY5C,KAAKwB,UAAY,QAAQG,SAAS3B,KAAKuB,UAChEvB,KAAKO,SAAS0B,KAAK,WAAW,QACzBU,GAAQ3C,KAAKyC,aAGnBpC,EAAOgB,UAAUP,IAAM,SAAU6B,GAChC,MAAI3C,MAAKO,SAAS0B,KAAK,aAAoB,GAC3CjC,KAAKgC,QAAQY,YAAY5C,KAAKuB,UAAUI,SAAS3B,KAAKwB,UAAY,QAClExB,KAAKO,SAAS0B,KAAK,WAAW,QACzBU,GAAQ3C,KAAKyC,aAGnBpC,EAAOgB,UAAUwB,OAAS,WACzB7C,KAAKgC,QAAQc,WAAW,YACxB9C,KAAKO,SAAS0B,KAAK,YAAY,IAGhC5B,EAAOgB,UAAU0B,QAAU,WAC1B/C,KAAKgC,QAAQV,KAAK,WAAY,YAC9BtB,KAAKO,SAAS0B,KAAK,YAAY,IAGhC5B,EAAOgB,UAAUmB,OAAS,SAAUG,GAC/B3C,KAAKO,SAAS0B,KAAK,YAAajC,KAAK+C,UACpC/C,KAAK6C,SACN7C,KAAKO,SAAS0B,KAAK,WAAYjC,KAAKa,GAAG8B,GACtC3C,KAAKc,IAAI6B,IAGftC,EAAOgB,UAAUoB,QAAU,SAAUE,GACpC3C,KAAKO,SAASO,IAAI,oBACb6B,GAAQ3C,KAAKO,SAASyC,SAC3BhD,KAAKO,SAASM,GAAG,mBAAoBhB,EAAEoD,MAAM,WAC5CjD,KAAKwC,UACHxC,QAGJK,EAAOgB,UAAU6B,QAAU,WAC1BlD,KAAKO,SAASO,IAAI,oBAClBd,KAAK8B,aAAaqB,SAClBnD,KAAKO,SAAS6C,WAAW,aACzBpD,KAAKO,SAAS8C,SAiBf,IAAIC,GAAMzD,EAAE0D,GAAGC,eAEf3D,GAAE0D,GAAGC,gBAA8B1D,EACnCD,EAAE0D,GAAGC,gBAAgBC,YAAcpD,EAKnCR,EAAE0D,GAAGb,OAAOgB,WAAa,WAExB,MADA7D,GAAE0D,GAAGC,gBAAkBF,EAChBtD,MAMRH,EAAE,WACDA,EAAE,6CAA6C2D,oBAGhD3D,EAAE8D,UAAU9C,GAAG,kBAAmB,2BAA4B,SAAS+C,GACtE,GAAIC,GAAYhE,EAAEG,MAAM8D,KAAK,uBAC7BD,GAAUL,gBAAgB,UAC1BI,EAAEG,oBAGFC"}
\ No newline at end of file diff --git a/base_accounting_kit/static/lib/bootstrap-toggle-master/package.json b/base_accounting_kit/static/lib/bootstrap-toggle-master/package.json new file mode 100644 index 0000000..b67456b --- /dev/null +++ b/base_accounting_kit/static/lib/bootstrap-toggle-master/package.json @@ -0,0 +1,28 @@ +{ + "name": "bootstrap-toggle", + "description": "Bootstrap Toggle is a highly flexible Bootstrap plugin that converts checkboxes into toggles", + "version": "2.2.2", + "main": "js/bootstrap-toggle.js", + "keywords": [ + "bootstrap", + "toggle", + "bootstrap-toggle", + "switch", + "bootstrap-switch" + ], + "homepage": "http://www.bootstraptoggle.com", + "repository": { + "type": "git", + "url": "https://github.com/minhur/bootstrap-toggle.git" + }, + "license": "MIT", + "author": "Min Hur <min.hur@gmail.com>", + "bugs": { + "url": "https://github.com/minhur/bootstrap-toggle/issues" + }, + "devDependencies": { + "grunt-contrib-clean": "^0.6.0", + "grunt-contrib-cssmin": "^0.10.0", + "grunt-contrib-uglify": "^0.6.0" + } +} diff --git a/base_accounting_kit/static/lib/chartist.min.css b/base_accounting_kit/static/lib/chartist.min.css new file mode 100644 index 0000000..028805a --- /dev/null +++ b/base_accounting_kit/static/lib/chartist.min.css @@ -0,0 +1,886 @@ +.ct-double-octave:after,.ct-golden-section:after,.ct-major-eleventh:after,.ct-major-second:after,.ct-major-seventh:after,.ct-major-sixth:after,.ct-major-tenth:after,.ct-major-third:after,.ct-major-twelfth:after,.ct-minor-second:after,.ct-minor-seventh:after,.ct-minor-sixth:after,.ct-minor-third:after,.ct-octave:after,.ct-perfect-fifth:after,.ct-perfect-fourth:after,.ct-square:after{content:"";clear:both}.ct-label{fill:rgba(0,0,0,.4);color:rgba(0,0,0,.4);font-size:.75rem;line-height:1}.ct-chart-bar .ct-label,.ct-chart-line .ct-label{display:block;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.ct-chart-donut .ct-label,.ct-chart-pie .ct-label{dominant-baseline:central}.ct-label.ct-horizontal.ct-start{-webkit-box-align:flex-end;-webkit-align-items:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:start}.ct-label.ct-horizontal.ct-end{-webkit-box-align:flex-start;-webkit-align-items:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:start}.ct-label.ct-vertical.ct-start{-webkit-box-align:flex-end;-webkit-align-items:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-box-pack:flex-end;-webkit-justify-content:flex-end;-ms-flex-pack:flex-end;justify-content:flex-end;text-align:right;text-anchor:end}.ct-label.ct-vertical.ct-end{-webkit-box-align:flex-end;-webkit-align-items:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:start}.ct-chart-bar .ct-label.ct-horizontal.ct-start{-webkit-box-align:flex-end;-webkit-align-items:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center;text-anchor:start}.ct-chart-bar .ct-label.ct-horizontal.ct-end{-webkit-box-align:flex-start;-webkit-align-items:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center;text-anchor:start}.ct-chart-bar.ct-horizontal-bars .ct-label.ct-horizontal.ct-start{-webkit-box-align:flex-end;-webkit-align-items:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:start}.ct-chart-bar.ct-horizontal-bars .ct-label.ct-horizontal.ct-end{-webkit-box-align:flex-start;-webkit-align-items:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:start}.ct-chart-bar.ct-horizontal-bars .ct-label.ct-vertical.ct-start{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:flex-end;-webkit-justify-content:flex-end;-ms-flex-pack:flex-end;justify-content:flex-end;text-align:right;text-anchor:end}.ct-chart-bar.ct-horizontal-bars .ct-label.ct-vertical.ct-end{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:end}.ct-grid{stroke:rgba(0,0,0,.2);stroke-width:1px;stroke-dasharray:2px}.ct-grid-background{fill:none}.ct-point{stroke-width:10px;stroke-linecap:round}.ct-line{fill:none;stroke-width:4px}.ct-area{stroke:none;fill-opacity:.1}.ct-bar{fill:none;stroke-width:10px}.ct-slice-donut{fill:none;stroke-width:60px}.ct-series-a .ct-bar,.ct-series-a .ct-line,.ct-series-a .ct-point,.ct-series-a .ct-slice-donut{stroke:#d70206}.ct-series-a .ct-area,.ct-series-a .ct-slice-donut-solid,.ct-series-a .ct-slice-pie{fill:#d70206}.ct-series-b .ct-bar,.ct-series-b .ct-line,.ct-series-b .ct-point,.ct-series-b .ct-slice-donut{stroke:#f05b4f}.ct-series-b .ct-area,.ct-series-b .ct-slice-donut-solid,.ct-series-b .ct-slice-pie{fill:#f05b4f}.ct-series-c .ct-bar,.ct-series-c .ct-line,.ct-series-c .ct-point,.ct-series-c .ct-slice-donut{stroke:#f4c63d}.ct-series-c .ct-area,.ct-series-c .ct-slice-donut-solid,.ct-series-c .ct-slice-pie{fill:#f4c63d}.ct-series-d .ct-bar,.ct-series-d .ct-line,.ct-series-d .ct-point,.ct-series-d .ct-slice-donut{stroke:#d17905}.ct-series-d .ct-area,.ct-series-d .ct-slice-donut-solid,.ct-series-d .ct-slice-pie{fill:#d17905}.ct-series-e .ct-bar,.ct-series-e .ct-line,.ct-series-e .ct-point,.ct-series-e .ct-slice-donut{stroke:#453d3f}.ct-series-e .ct-area,.ct-series-e .ct-slice-donut-solid,.ct-series-e .ct-slice-pie{fill:#453d3f}.ct-series-f .ct-bar,.ct-series-f .ct-line,.ct-series-f .ct-point,.ct-series-f .ct-slice-donut{stroke:#59922b}.ct-series-f .ct-area,.ct-series-f .ct-slice-donut-solid,.ct-series-f .ct-slice-pie{fill:#59922b}.ct-series-g .ct-bar,.ct-series-g .ct-line,.ct-series-g .ct-point,.ct-series-g .ct-slice-donut{stroke:#0544d3}.ct-series-g .ct-area,.ct-series-g .ct-slice-donut-solid,.ct-series-g .ct-slice-pie{fill:#0544d3}.ct-series-h .ct-bar,.ct-series-h .ct-line,.ct-series-h .ct-point,.ct-series-h .ct-slice-donut{stroke:#6b0392}.ct-series-h .ct-area,.ct-series-h .ct-slice-donut-solid,.ct-series-h .ct-slice-pie{fill:#6b0392}.ct-series-i .ct-bar,.ct-series-i .ct-line,.ct-series-i .ct-point,.ct-series-i .ct-slice-donut{stroke:#f05b4f}.ct-series-i .ct-area,.ct-series-i .ct-slice-donut-solid,.ct-series-i .ct-slice-pie{fill:#f05b4f}.ct-series-j .ct-bar,.ct-series-j .ct-line,.ct-series-j .ct-point,.ct-series-j .ct-slice-donut{stroke:#dda458}.ct-series-j .ct-area,.ct-series-j .ct-slice-donut-solid,.ct-series-j .ct-slice-pie{fill:#dda458}.ct-series-k .ct-bar,.ct-series-k .ct-line,.ct-series-k .ct-point,.ct-series-k .ct-slice-donut{stroke:#eacf7d}.ct-series-k .ct-area,.ct-series-k .ct-slice-donut-solid,.ct-series-k .ct-slice-pie{fill:#eacf7d}.ct-series-l .ct-bar,.ct-series-l .ct-line,.ct-series-l .ct-point,.ct-series-l .ct-slice-donut{stroke:#86797d}.ct-series-l .ct-area,.ct-series-l .ct-slice-donut-solid,.ct-series-l .ct-slice-pie{fill:#86797d}.ct-series-m .ct-bar,.ct-series-m .ct-line,.ct-series-m .ct-point,.ct-series-m .ct-slice-donut{stroke:#b2c326}.ct-series-m .ct-area,.ct-series-m .ct-slice-donut-solid,.ct-series-m .ct-slice-pie{fill:#b2c326}.ct-series-n .ct-bar,.ct-series-n .ct-line,.ct-series-n .ct-point,.ct-series-n .ct-slice-donut{stroke:#6188e2}.ct-series-n .ct-area,.ct-series-n .ct-slice-donut-solid,.ct-series-n .ct-slice-pie{fill:#6188e2}.ct-series-o .ct-bar,.ct-series-o .ct-line,.ct-series-o .ct-point,.ct-series-o .ct-slice-donut{stroke:#a748ca}.ct-series-o .ct-area,.ct-series-o .ct-slice-donut-solid,.ct-series-o .ct-slice-pie{fill:#a748ca}.ct-square{display:block;position:relative;width:100%}.ct-square:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:100%}.ct-square:after{display:table}.ct-square>svg{display:block;position:absolute;top:0;left:0}.ct-minor-second{display:block;position:relative;width:100%}.ct-minor-second:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:93.75%}.ct-minor-second:after{display:table}.ct-minor-second>svg{display:block;position:absolute;top:0;left:0}.ct-major-second{display:block;position:relative;width:100%}.ct-major-second:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:88.8888888889%}.ct-major-second:after{display:table}.ct-major-second>svg{display:block;position:absolute;top:0;left:0}.ct-minor-third{display:block;position:relative;width:100%}.ct-minor-third:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:83.3333333333%}.ct-minor-third:after{display:table}.ct-minor-third>svg{display:block;position:absolute;top:0;left:0}.ct-major-third{display:block;position:relative;width:100%}.ct-major-third:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:80%}.ct-major-third:after{display:table}.ct-major-third>svg{display:block;position:absolute;top:0;left:0}.ct-perfect-fourth{display:block;position:relative;width:100%}.ct-perfect-fourth:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:75%}.ct-perfect-fourth:after{display:table}.ct-perfect-fourth>svg{display:block;position:absolute;top:0;left:0}.ct-perfect-fifth{display:block;position:relative;width:100%}.ct-perfect-fifth:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:66.6666666667%}.ct-perfect-fifth:after{display:table}.ct-perfect-fifth>svg{display:block;position:absolute;top:0;left:0}.ct-minor-sixth{display:block;position:relative;width:100%}.ct-minor-sixth:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:62.5%}.ct-minor-sixth:after{display:table}.ct-minor-sixth>svg{display:block;position:absolute;top:0;left:0}.ct-golden-section{display:block;position:relative;width:100%}.ct-golden-section:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:61.804697157%}.ct-golden-section:after{display:table}.ct-golden-section>svg{display:block;position:absolute;top:0;left:0}.ct-major-sixth{display:block;position:relative;width:100%}.ct-major-sixth:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:60%}.ct-major-sixth:after{display:table}.ct-major-sixth>svg{display:block;position:absolute;top:0;left:0}.ct-minor-seventh{display:block;position:relative;width:100%}.ct-minor-seventh:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:56.25%}.ct-minor-seventh:after{display:table}.ct-minor-seventh>svg{display:block;position:absolute;top:0;left:0}.ct-major-seventh{display:block;position:relative;width:100%}.ct-major-seventh:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:53.3333333333%}.ct-major-seventh:after{display:table}.ct-major-seventh>svg{display:block;position:absolute;top:0;left:0}.ct-octave{display:block;position:relative;width:100%}.ct-octave:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:50%}.ct-octave:after{display:table}.ct-octave>svg{display:block;position:absolute;top:0;left:0}.ct-major-tenth{display:block;position:relative;width:100%}.ct-major-tenth:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:40%}.ct-major-tenth:after{display:table}.ct-major-tenth>svg{display:block;position:absolute;top:0;left:0}.ct-major-eleventh{display:block;position:relative;width:100%}.ct-major-eleventh:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:37.5%}.ct-major-eleventh:after{display:table}.ct-major-eleventh>svg{display:block;position:absolute;top:0;left:0}.ct-major-twelfth{display:block;position:relative;width:100%}.ct-major-twelfth:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:33.3333333333%}.ct-major-twelfth:after{display:table}.ct-major-twelfth>svg{display:block;position:absolute;top:0;left:0}.ct-double-octave{display:block;position:relative;width:100%}.ct-double-octave:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:25%}.ct-double-octave:after{display:table}.ct-double-octave>svg{display:block;position:absolute;top:0;left:0} + + + + + + + +.ct-double-octave:after, +.ct-golden-section:after, +.ct-major-eleventh:after, +.ct-major-second:after, +.ct-major-seventh:after, +.ct-major-sixth:after, +.ct-major-tenth:after, +.ct-major-third:after, +.ct-major-twelfth:after, +.ct-minor-second:after, +.ct-minor-seventh:after, +.ct-minor-sixth:after, +.ct-minor-third:after, +.ct-octave:after, +.ct-perfect-fifth:after, +.ct-perfect-fourth:after, +.ct-square:after { + content: ""; + clear: both +} + +.ct-label { + fill: rgba(0, 0, 0, .4); + color: rgba(0, 0, 0, .4); + font-size: .75rem; + line-height: 1 +} + +.ct-chart-bar .ct-label, +.ct-chart-line .ct-label { + display: block; + display: -webkit-box; + display: -moz-box; + display: -ms-flexbox; + display: -webkit-flex; + display: flex +} + +.ct-chart-donut .ct-label, +.ct-chart-pie .ct-label { + dominant-baseline: central +} + +.ct-label.ct-horizontal.ct-start { + -webkit-box-align: flex-end; + -webkit-align-items: flex-end; + -ms-flex-align: flex-end; + align-items: flex-end; + -webkit-box-pack: flex-start; + -webkit-justify-content: flex-start; + -ms-flex-pack: flex-start; + justify-content: flex-start; + text-align: left; + text-anchor: start +} + +.ct-label.ct-horizontal.ct-end { + -webkit-box-align: flex-start; + -webkit-align-items: flex-start; + -ms-flex-align: flex-start; + align-items: flex-start; + -webkit-box-pack: flex-start; + -webkit-justify-content: flex-start; + -ms-flex-pack: flex-start; + justify-content: flex-start; + text-align: left; + text-anchor: start +} + +.ct-label.ct-vertical.ct-start { + -webkit-box-align: flex-end; + -webkit-align-items: flex-end; + -ms-flex-align: flex-end; + align-items: flex-end; + -webkit-box-pack: flex-end; + -webkit-justify-content: flex-end; + -ms-flex-pack: flex-end; + justify-content: flex-end; + text-align: right; + text-anchor: end +} + +.ct-label.ct-vertical.ct-end { + -webkit-box-align: flex-end; + -webkit-align-items: flex-end; + -ms-flex-align: flex-end; + align-items: flex-end; + -webkit-box-pack: flex-start; + -webkit-justify-content: flex-start; + -ms-flex-pack: flex-start; + justify-content: flex-start; + text-align: left; + text-anchor: start +} + +.ct-chart-bar .ct-label.ct-horizontal.ct-start { + -webkit-box-align: flex-end; + -webkit-align-items: flex-end; + -ms-flex-align: flex-end; + align-items: flex-end; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + text-align: center; + text-anchor: start +} + +.ct-chart-bar .ct-label.ct-horizontal.ct-end { + -webkit-box-align: flex-start; + -webkit-align-items: flex-start; + -ms-flex-align: flex-start; + align-items: flex-start; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + text-align: center; + text-anchor: start +} + +.ct-chart-bar.ct-horizontal-bars .ct-label.ct-horizontal.ct-start { + -webkit-box-align: flex-end; + -webkit-align-items: flex-end; + -ms-flex-align: flex-end; + align-items: flex-end; + -webkit-box-pack: flex-start; + -webkit-justify-content: flex-start; + -ms-flex-pack: flex-start; + justify-content: flex-start; + text-align: left; + text-anchor: start +} + +.ct-chart-bar.ct-horizontal-bars .ct-label.ct-horizontal.ct-end { + -webkit-box-align: flex-start; + -webkit-align-items: flex-start; + -ms-flex-align: flex-start; + align-items: flex-start; + -webkit-box-pack: flex-start; + -webkit-justify-content: flex-start; + -ms-flex-pack: flex-start; + justify-content: flex-start; + text-align: left; + text-anchor: start +} + +.ct-chart-bar.ct-horizontal-bars .ct-label.ct-vertical.ct-start { + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: flex-end; + -webkit-justify-content: flex-end; + -ms-flex-pack: flex-end; + justify-content: flex-end; + text-align: right; + text-anchor: end +} + +.ct-chart-bar.ct-horizontal-bars .ct-label.ct-vertical.ct-end { + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: flex-start; + -webkit-justify-content: flex-start; + -ms-flex-pack: flex-start; + justify-content: flex-start; + text-align: left; + text-anchor: end +} + +.ct-grid { + stroke: rgba(0, 0, 0, .2); + stroke-width: 1px; + stroke-dasharray: 2px +} + +.ct-grid-background { + fill: none +} + +.ct-point { + stroke-width: 10px; + stroke-linecap: round +} + +.ct-line { + fill: none; + stroke-width: 4px +} + +.ct-area { + stroke: none; + fill-opacity: .1 +} + +.ct-bar { + fill: none; + stroke-width: 10px +} + +.ct-slice-donut { + fill: none; + stroke-width: 60px +} + +.ct-series-a .ct-bar, +.ct-series-a .ct-line, +.ct-series-a .ct-point, +.ct-series-a .ct-slice-donut { + stroke: #d70206 +} + +.ct-series-a .ct-area, +.ct-series-a .ct-slice-donut-solid, +.ct-series-a .ct-slice-pie { + fill: #d70206 +} + +.ct-series-b .ct-bar, +.ct-series-b .ct-line, +.ct-series-b .ct-point, +.ct-series-b .ct-slice-donut { + stroke: #f05b4f +} + +.ct-series-b .ct-area, +.ct-series-b .ct-slice-donut-solid, +.ct-series-b .ct-slice-pie { + fill: #f05b4f +} + +.ct-series-c .ct-bar, +.ct-series-c .ct-line, +.ct-series-c .ct-point, +.ct-series-c .ct-slice-donut { + stroke: #f4c63d +} + +.ct-series-c .ct-area, +.ct-series-c .ct-slice-donut-solid, +.ct-series-c .ct-slice-pie { + fill: #f4c63d +} + +.ct-series-d .ct-bar, +.ct-series-d .ct-line, +.ct-series-d .ct-point, +.ct-series-d .ct-slice-donut { + stroke: #d17905 +} + +.ct-series-d .ct-area, +.ct-series-d .ct-slice-donut-solid, +.ct-series-d .ct-slice-pie { + fill: #d17905 +} + +.ct-series-e .ct-bar, +.ct-series-e .ct-line, +.ct-series-e .ct-point, +.ct-series-e .ct-slice-donut { + stroke: #453d3f +} + +.ct-series-e .ct-area, +.ct-series-e .ct-slice-donut-solid, +.ct-series-e .ct-slice-pie { + fill: #453d3f +} + +.ct-series-f .ct-bar, +.ct-series-f .ct-line, +.ct-series-f .ct-point, +.ct-series-f .ct-slice-donut { + stroke: #59922b +} + +.ct-series-f .ct-area, +.ct-series-f .ct-slice-donut-solid, +.ct-series-f .ct-slice-pie { + fill: #59922b +} + +.ct-series-g .ct-bar, +.ct-series-g .ct-line, +.ct-series-g .ct-point, +.ct-series-g .ct-slice-donut { + stroke: #0544d3 +} + +.ct-series-g .ct-area, +.ct-series-g .ct-slice-donut-solid, +.ct-series-g .ct-slice-pie { + fill: #0544d3 +} + +.ct-series-h .ct-bar, +.ct-series-h .ct-line, +.ct-series-h .ct-point, +.ct-series-h .ct-slice-donut { + stroke: #6b0392 +} + +.ct-series-h .ct-area, +.ct-series-h .ct-slice-donut-solid, +.ct-series-h .ct-slice-pie { + fill: #6b0392 +} + +.ct-series-i .ct-bar, +.ct-series-i .ct-line, +.ct-series-i .ct-point, +.ct-series-i .ct-slice-donut { + stroke: #f05b4f +} + +.ct-series-i .ct-area, +.ct-series-i .ct-slice-donut-solid, +.ct-series-i .ct-slice-pie { + fill: #f05b4f +} + +.ct-series-j .ct-bar, +.ct-series-j .ct-line, +.ct-series-j .ct-point, +.ct-series-j .ct-slice-donut { + stroke: #dda458 +} + +.ct-series-j .ct-area, +.ct-series-j .ct-slice-donut-solid, +.ct-series-j .ct-slice-pie { + fill: #dda458 +} + +.ct-series-k .ct-bar, +.ct-series-k .ct-line, +.ct-series-k .ct-point, +.ct-series-k .ct-slice-donut { + stroke: #eacf7d +} + +.ct-series-k .ct-area, +.ct-series-k .ct-slice-donut-solid, +.ct-series-k .ct-slice-pie { + fill: #eacf7d +} + +.ct-series-l .ct-bar, +.ct-series-l .ct-line, +.ct-series-l .ct-point, +.ct-series-l .ct-slice-donut { + stroke: #86797d +} + +.ct-series-l .ct-area, +.ct-series-l .ct-slice-donut-solid, +.ct-series-l .ct-slice-pie { + fill: #86797d +} + +.ct-series-m .ct-bar, +.ct-series-m .ct-line, +.ct-series-m .ct-point, +.ct-series-m .ct-slice-donut { + stroke: #b2c326 +} + +.ct-series-m .ct-area, +.ct-series-m .ct-slice-donut-solid, +.ct-series-m .ct-slice-pie { + fill: #b2c326 +} + +.ct-series-n .ct-bar, +.ct-series-n .ct-line, +.ct-series-n .ct-point, +.ct-series-n .ct-slice-donut { + stroke: #6188e2 +} + +.ct-series-n .ct-area, +.ct-series-n .ct-slice-donut-solid, +.ct-series-n .ct-slice-pie { + fill: #6188e2 +} + +.ct-series-o .ct-bar, +.ct-series-o .ct-line, +.ct-series-o .ct-point, +.ct-series-o .ct-slice-donut { + stroke: #a748ca +} + +.ct-series-o .ct-area, +.ct-series-o .ct-slice-donut-solid, +.ct-series-o .ct-slice-pie { + fill: #a748ca +} + +.ct-square { + display: block; + position: relative; + width: 100% +} + +.ct-square:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 100% +} + +.ct-square:after { + display: table +} + +.ct-square>svg { + display: block; + position: absolute; + top: 0; + left: 0 +} + +.ct-minor-second { + display: block; + position: relative; + width: 100% +} + +.ct-minor-second:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 93.75% +} + +.ct-minor-second:after { + display: table +} + +.ct-minor-second>svg { + display: block; + position: absolute; + top: 0; + left: 0 +} + +.ct-major-second { + display: block; + position: relative; + width: 100% +} + +.ct-major-second:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 88.8888888889% +} + +.ct-major-second:after { + display: table +} + +.ct-major-second>svg { + display: block; + position: absolute; + top: 0; + left: 0 +} + +.ct-minor-third { + display: block; + position: relative; + width: 100% +} + +.ct-minor-third:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 83.3333333333% +} + +.ct-minor-third:after { + display: table +} + +.ct-minor-third>svg { + display: block; + position: absolute; + top: 0; + left: 0 +} + +.ct-major-third { + display: block; + position: relative; + width: 100% +} + +.ct-major-third:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 80% +} + +.ct-major-third:after { + display: table +} + +.ct-major-third>svg { + display: block; + position: absolute; + top: 0; + left: 0 +} + +.ct-perfect-fourth { + display: block; + position: relative; + width: 100% +} + +.ct-perfect-fourth:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 75% +} + +.ct-perfect-fourth:after { + display: table +} + +.ct-perfect-fourth>svg { + display: block; + position: absolute; + top: 0; + left: 0 +} + +.ct-perfect-fifth { + display: block; + position: relative; + width: 100% +} + +.ct-perfect-fifth:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 66.6666666667% +} + +.ct-perfect-fifth:after { + display: table +} + +.ct-perfect-fifth>svg { + display: block; + position: absolute; + top: 0; + left: 0 +} + +.ct-minor-sixth { + display: block; + position: relative; + width: 100% +} + +.ct-minor-sixth:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 62.5% +} + +.ct-minor-sixth:after { + display: table +} + +.ct-minor-sixth>svg { + display: block; + position: absolute; + top: 0; + left: 0 +} + +.ct-golden-section { + display: block; + position: relative; + width: 100% +} + +.ct-golden-section:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 61.804697157% +} + +.ct-golden-section:after { + display: table +} + +.ct-golden-section>svg { + display: block; + position: absolute; + top: 0; + left: 0 +} + +.ct-major-sixth { + display: block; + position: relative; + width: 100% +} + +.ct-major-sixth:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 60% +} + +.ct-major-sixth:after { + display: table +} + +.ct-major-sixth>svg { + display: block; + position: absolute; + top: 0; + left: 0 +} + +.ct-minor-seventh { + display: block; + position: relative; + width: 100% +} + +.ct-minor-seventh:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 56.25% +} + +.ct-minor-seventh:after { + display: table +} + +.ct-minor-seventh>svg { + display: block; + position: absolute; + top: 0; + left: 0 +} + +.ct-major-seventh { + display: block; + position: relative; + width: 100% +} + +.ct-major-seventh:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 53.3333333333% +} + +.ct-major-seventh:after { + display: table +} + +.ct-major-seventh>svg { + display: block; + position: absolute; + top: 0; + left: 0 +} + +.ct-octave { + display: block; + position: relative; + width: 100% +} + +.ct-octave:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 50% +} + +.ct-octave:after { + display: table +} + +.ct-octave>svg { + display: block; + position: absolute; + top: 0; + left: 0 +} + +.ct-major-tenth { + display: block; + position: relative; + width: 100% +} + +.ct-major-tenth:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 40% +} + +.ct-major-tenth:after { + display: table +} + +.ct-major-tenth>svg { + display: block; + position: absolute; + top: 0; + left: 0 +} + +.ct-major-eleventh { + display: block; + position: relative; + width: 100% +} + +.ct-major-eleventh:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 37.5% +} + +.ct-major-eleventh:after { + display: table +} + +.ct-major-eleventh>svg { + display: block; + position: absolute; + top: 0; + left: 0 +} + +.ct-major-twelfth { + display: block; + position: relative; + width: 100% +} + +.ct-major-twelfth:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 33.3333333333% +} + +.ct-major-twelfth:after { + display: table +} + +.ct-major-twelfth>svg { + display: block; + position: absolute; + top: 0; + left: 0 +} + +.ct-double-octave { + display: block; + position: relative; + width: 100% +} + +.ct-double-octave:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 25% +} + +.ct-double-octave:after { + display: table +} + +.ct-double-octave>svg { + display: block; + position: absolute; + top: 0; + left: 0 +} +.ct-series-a .ct-slice-pie { + fill: #a748ca !important; +} +.ct-series-b .ct-slice-pie { + fill: #4465c7 !important; +} +.ct-series-c .ct-slice-pie { + fill: #47a5fd !important; +} +.ct-series-d .ct-slice-pie { + fill: #159e93 !important; +} +.ct-series-e .ct-slice-pie { + fill: #8cc73f !important; +} +.ct-series-f .ct-slice-pie { + fill: #faa306 !important; +} +.ct-series-g .ct-slice-pie { + fill: #f23551 !important; +} +.ct-series-h .ct-slice-pie { + fill: #f25c03 !important; +} +.ct-series-l .ct-slice-pie { + fill: #ddd !important; +} +text[dy="40.92399913254952"],text[dy="73.30816676090323"] { + display: none !important; +} +.ct-label { + fill: rgb(0, 0, 0) !important; + color: rgb(0, 0, 0) !important; +}
\ No newline at end of file diff --git a/base_accounting_kit/static/lib/chartist.min.js b/base_accounting_kit/static/lib/chartist.min.js new file mode 100644 index 0000000..a0521e6 --- /dev/null +++ b/base_accounting_kit/static/lib/chartist.min.js @@ -0,0 +1,1589 @@ +/* Chartist.js 0.11.4 + * Copyright © 2019 Gion Kunz + * Free to use under either the WTFPL license or the MIT license. + * https://raw.githubusercontent.com/gionkunz/chartist-js/master/LICENSE-WTFPL + * https://raw.githubusercontent.com/gionkunz/chartist-js/master/LICENSE-MIT + */ + +!function(a,b){"function"==typeof define&&define.amd?define("Chartist",[],function(){return a.Chartist=b()}):"object"==typeof module&&module.exports?module.exports=b():a.Chartist=b()}(this,function(){var a={version:"0.11.4"};return function(a,b){"use strict";var c=a.window,d=a.document;b.namespaces={svg:"http://www.w3.org/2000/svg",xmlns:"http://www.w3.org/2000/xmlns/",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",ct:"http://gionkunz.github.com/chartist-js/ct"},b.noop=function(a){return a},b.alphaNumerate=function(a){return String.fromCharCode(97+a%26)},b.extend=function(a){var c,d,e;for(a=a||{},c=1;c<arguments.length;c++){d=arguments[c];for(var f in d)e=d[f],"object"!=typeof e||null===e||e instanceof Array?a[f]=e:a[f]=b.extend(a[f],e)}return a},b.replaceAll=function(a,b,c){return a.replace(new RegExp(b,"g"),c)},b.ensureUnit=function(a,b){return"number"==typeof a&&(a+=b),a},b.quantity=function(a){if("string"==typeof a){var b=/^(\d+)\s*(.*)$/g.exec(a);return{value:+b[1],unit:b[2]||void 0}}return{value:a}},b.querySelector=function(a){return a instanceof Node?a:d.querySelector(a)},b.times=function(a){return Array.apply(null,new Array(a))},b.sum=function(a,b){return a+(b?b:0)},b.mapMultiply=function(a){return function(b){return b*a}},b.mapAdd=function(a){return function(b){return b+a}},b.serialMap=function(a,c){var d=[],e=Math.max.apply(null,a.map(function(a){return a.length}));return b.times(e).forEach(function(b,e){var f=a.map(function(a){return a[e]});d[e]=c.apply(null,f)}),d},b.roundWithPrecision=function(a,c){var d=Math.pow(10,c||b.precision);return Math.round(a*d)/d},b.precision=8,b.escapingMap={"&":"&","<":"<",">":">",'"':""","'":"'"},b.serialize=function(a){return null===a||void 0===a?a:("number"==typeof a?a=""+a:"object"==typeof a&&(a=JSON.stringify({data:a})),Object.keys(b.escapingMap).reduce(function(a,c){return b.replaceAll(a,c,b.escapingMap[c])},a))},b.deserialize=function(a){if("string"!=typeof a)return a;a=Object.keys(b.escapingMap).reduce(function(a,c){return b.replaceAll(a,b.escapingMap[c],c)},a);try{a=JSON.parse(a),a=void 0!==a.data?a.data:a}catch(c){}return a},b.createSvg=function(a,c,d,e){var f;return c=c||"100%",d=d||"100%",Array.prototype.slice.call(a.querySelectorAll("svg")).filter(function(a){return a.getAttributeNS(b.namespaces.xmlns,"ct")}).forEach(function(b){a.removeChild(b)}),f=new b.Svg("svg").attr({width:c,height:d}).addClass(e),f._node.style.width=c,f._node.style.height=d,a.appendChild(f._node),f},b.normalizeData=function(a,c,d){var e,f={raw:a,normalized:{}};return f.normalized.series=b.getDataArray({series:a.series||[]},c,d),e=f.normalized.series.every(function(a){return a instanceof Array})?Math.max.apply(null,f.normalized.series.map(function(a){return a.length})):f.normalized.series.length,f.normalized.labels=(a.labels||[]).slice(),Array.prototype.push.apply(f.normalized.labels,b.times(Math.max(0,e-f.normalized.labels.length)).map(function(){return""})),c&&b.reverseData(f.normalized),f},b.safeHasProperty=function(a,b){return null!==a&&"object"==typeof a&&a.hasOwnProperty(b)},b.isDataHoleValue=function(a){return null===a||void 0===a||"number"==typeof a&&isNaN(a)},b.reverseData=function(a){a.labels.reverse(),a.series.reverse();for(var b=0;b<a.series.length;b++)"object"==typeof a.series[b]&&void 0!==a.series[b].data?a.series[b].data.reverse():a.series[b]instanceof Array&&a.series[b].reverse()},b.getDataArray=function(a,c,d){function e(a){if(b.safeHasProperty(a,"value"))return e(a.value);if(b.safeHasProperty(a,"data"))return e(a.data);if(a instanceof Array)return a.map(e);if(!b.isDataHoleValue(a)){if(d){var c={};return"string"==typeof d?c[d]=b.getNumberOrUndefined(a):c.y=b.getNumberOrUndefined(a),c.x=a.hasOwnProperty("x")?b.getNumberOrUndefined(a.x):c.x,c.y=a.hasOwnProperty("y")?b.getNumberOrUndefined(a.y):c.y,c}return b.getNumberOrUndefined(a)}}return a.series.map(e)},b.normalizePadding=function(a,b){return b=b||0,"number"==typeof a?{top:a,right:a,bottom:a,left:a}:{top:"number"==typeof a.top?a.top:b,right:"number"==typeof a.right?a.right:b,bottom:"number"==typeof a.bottom?a.bottom:b,left:"number"==typeof a.left?a.left:b}},b.getMetaData=function(a,b){var c=a.data?a.data[b]:a[b];return c?c.meta:void 0},b.orderOfMagnitude=function(a){return Math.floor(Math.log(Math.abs(a))/Math.LN10)},b.projectLength=function(a,b,c){return b/c.range*a},b.getAvailableHeight=function(a,c){return Math.max((b.quantity(c.height).value||a.height())-(c.chartPadding.top+c.chartPadding.bottom)-c.axisX.offset,0)},b.getHighLow=function(a,c,d){function e(a){if(void 0!==a)if(a instanceof Array)for(var b=0;b<a.length;b++)e(a[b]);else{var c=d?+a[d]:+a;g&&c>f.high&&(f.high=c),h&&c<f.low&&(f.low=c)}}c=b.extend({},c,d?c["axis"+d.toUpperCase()]:{});var f={high:void 0===c.high?-Number.MAX_VALUE:+c.high,low:void 0===c.low?Number.MAX_VALUE:+c.low},g=void 0===c.high,h=void 0===c.low;return(g||h)&&e(a),(c.referenceValue||0===c.referenceValue)&&(f.high=Math.max(c.referenceValue,f.high),f.low=Math.min(c.referenceValue,f.low)),f.high<=f.low&&(0===f.low?f.high=1:f.low<0?f.high=0:f.high>0?f.low=0:(f.high=1,f.low=0)),f},b.isNumeric=function(a){return null!==a&&isFinite(a)},b.isFalseyButZero=function(a){return!a&&0!==a},b.getNumberOrUndefined=function(a){return b.isNumeric(a)?+a:void 0},b.isMultiValue=function(a){return"object"==typeof a&&("x"in a||"y"in a)},b.getMultiValue=function(a,c){return b.isMultiValue(a)?b.getNumberOrUndefined(a[c||"y"]):b.getNumberOrUndefined(a)},b.rho=function(a){function b(a,c){return a%c===0?c:b(c,a%c)}function c(a){return a*a+1}if(1===a)return a;var d,e=2,f=2;if(a%2===0)return 2;do e=c(e)%a,f=c(c(f))%a,d=b(Math.abs(e-f),a);while(1===d);return d},b.getBounds=function(a,c,d,e){function f(a,b){return a===(a+=b)&&(a*=1+(b>0?o:-o)),a}var g,h,i,j=0,k={high:c.high,low:c.low};k.valueRange=k.high-k.low,k.oom=b.orderOfMagnitude(k.valueRange),k.step=Math.pow(10,k.oom),k.min=Math.floor(k.low/k.step)*k.step,k.max=Math.ceil(k.high/k.step)*k.step,k.range=k.max-k.min,k.numberOfSteps=Math.round(k.range/k.step);var l=b.projectLength(a,k.step,k),m=l<d,n=e?b.rho(k.range):0;if(e&&b.projectLength(a,1,k)>=d)k.step=1;else if(e&&n<k.step&&b.projectLength(a,n,k)>=d)k.step=n;else for(;;){if(m&&b.projectLength(a,k.step,k)<=d)k.step*=2;else{if(m||!(b.projectLength(a,k.step/2,k)>=d))break;if(k.step/=2,e&&k.step%1!==0){k.step*=2;break}}if(j++>1e3)throw new Error("Exceeded maximum number of iterations while optimizing scale step!")}var o=2.221e-16;for(k.step=Math.max(k.step,o),h=k.min,i=k.max;h+k.step<=k.low;)h=f(h,k.step);for(;i-k.step>=k.high;)i=f(i,-k.step);k.min=h,k.max=i,k.range=k.max-k.min;var p=[];for(g=k.min;g<=k.max;g=f(g,k.step)){var q=b.roundWithPrecision(g);q!==p[p.length-1]&&p.push(q)}return k.values=p,k},b.polarToCartesian=function(a,b,c,d){var e=(d-90)*Math.PI/180;return{x:a+c*Math.cos(e),y:b+c*Math.sin(e)}},b.createChartRect=function(a,c,d){var e=!(!c.axisX&&!c.axisY),f=e?c.axisY.offset:0,g=e?c.axisX.offset:0,h=a.width()||b.quantity(c.width).value||0,i=a.height()||b.quantity(c.height).value||0,j=b.normalizePadding(c.chartPadding,d);h=Math.max(h,f+j.left+j.right),i=Math.max(i,g+j.top+j.bottom);var k={padding:j,width:function(){return this.x2-this.x1},height:function(){return this.y1-this.y2}};return e?("start"===c.axisX.position?(k.y2=j.top+g,k.y1=Math.max(i-j.bottom,k.y2+1)):(k.y2=j.top,k.y1=Math.max(i-j.bottom-g,k.y2+1)),"start"===c.axisY.position?(k.x1=j.left+f,k.x2=Math.max(h-j.right,k.x1+1)):(k.x1=j.left,k.x2=Math.max(h-j.right-f,k.x1+1))):(k.x1=j.left,k.x2=Math.max(h-j.right,k.x1+1),k.y2=j.top,k.y1=Math.max(i-j.bottom,k.y2+1)),k},b.createGrid=function(a,c,d,e,f,g,h,i){var j={};j[d.units.pos+"1"]=a,j[d.units.pos+"2"]=a,j[d.counterUnits.pos+"1"]=e,j[d.counterUnits.pos+"2"]=e+f;var k=g.elem("line",j,h.join(" "));i.emit("draw",b.extend({type:"grid",axis:d,index:c,group:g,element:k},j))},b.createGridBackground=function(a,b,c,d){var e=a.elem("rect",{x:b.x1,y:b.y2,width:b.width(),height:b.height()},c,!0);d.emit("draw",{type:"gridBackground",group:a,element:e})},b.createLabel=function(a,c,e,f,g,h,i,j,k,l,m){var n,o={};if(o[g.units.pos]=a+i[g.units.pos],o[g.counterUnits.pos]=i[g.counterUnits.pos],o[g.units.len]=c,o[g.counterUnits.len]=Math.max(0,h-10),l){var p=d.createElement("span");p.className=k.join(" "),p.setAttribute("xmlns",b.namespaces.xhtml),p.innerText=f[e],p.style[g.units.len]=Math.round(o[g.units.len])+"px",p.style[g.counterUnits.len]=Math.round(o[g.counterUnits.len])+"px",n=j.foreignObject(p,b.extend({style:"overflow: visible;"},o))}else n=j.elem("text",o,k.join(" ")).text(f[e]);m.emit("draw",b.extend({type:"label",axis:g,index:e,group:j,element:n,text:f[e]},o))},b.getSeriesOption=function(a,b,c){if(a.name&&b.series&&b.series[a.name]){var d=b.series[a.name];return d.hasOwnProperty(c)?d[c]:b[c]}return b[c]},b.optionsProvider=function(a,d,e){function f(a){var f=h;if(h=b.extend({},j),d)for(i=0;i<d.length;i++){var g=c.matchMedia(d[i][0]);g.matches&&(h=b.extend(h,d[i][1]))}e&&a&&e.emit("optionsChanged",{previousOptions:f,currentOptions:h})}function g(){k.forEach(function(a){a.removeListener(f)})}var h,i,j=b.extend({},a),k=[];if(!c.matchMedia)throw"window.matchMedia not found! Make sure you're using a polyfill.";if(d)for(i=0;i<d.length;i++){var l=c.matchMedia(d[i][0]);l.addListener(f),k.push(l)}return f(),{removeMediaQueryListeners:g,getCurrentOptions:function(){return b.extend({},h)}}},b.splitIntoSegments=function(a,c,d){var e={increasingX:!1,fillHoles:!1};d=b.extend({},e,d);for(var f=[],g=!0,h=0;h<a.length;h+=2)void 0===b.getMultiValue(c[h/2].value)?d.fillHoles||(g=!0):(d.increasingX&&h>=2&&a[h]<=a[h-2]&&(g=!0),g&&(f.push({pathCoordinates:[],valueData:[]}),g=!1),f[f.length-1].pathCoordinates.push(a[h],a[h+1]),f[f.length-1].valueData.push(c[h/2]));return f}}(this||global,a),function(a,b){"use strict";b.Interpolation={},b.Interpolation.none=function(a){var c={fillHoles:!1};return a=b.extend({},c,a),function(c,d){for(var e=new b.Svg.Path,f=!0,g=0;g<c.length;g+=2){var h=c[g],i=c[g+1],j=d[g/2];void 0!==b.getMultiValue(j.value)?(f?e.move(h,i,!1,j):e.line(h,i,!1,j),f=!1):a.fillHoles||(f=!0)}return e}},b.Interpolation.simple=function(a){var c={divisor:2,fillHoles:!1};a=b.extend({},c,a);var d=1/Math.max(1,a.divisor);return function(c,e){for(var f,g,h,i=new b.Svg.Path,j=0;j<c.length;j+=2){var k=c[j],l=c[j+1],m=(k-f)*d,n=e[j/2];void 0!==n.value?(void 0===h?i.move(k,l,!1,n):i.curve(f+m,g,k-m,l,k,l,!1,n),f=k,g=l,h=n):a.fillHoles||(f=k=h=void 0)}return i}},b.Interpolation.cardinal=function(a){var c={tension:1,fillHoles:!1};a=b.extend({},c,a);var d=Math.min(1,Math.max(0,a.tension)),e=1-d;return function f(c,g){var h=b.splitIntoSegments(c,g,{fillHoles:a.fillHoles});if(h.length){if(h.length>1){var i=[];return h.forEach(function(a){i.push(f(a.pathCoordinates,a.valueData))}),b.Svg.Path.join(i)}if(c=h[0].pathCoordinates,g=h[0].valueData,c.length<=4)return b.Interpolation.none()(c,g);for(var j,k=(new b.Svg.Path).move(c[0],c[1],!1,g[0]),l=0,m=c.length;m-2*!j>l;l+=2){var n=[{x:+c[l-2],y:+c[l-1]},{x:+c[l],y:+c[l+1]},{x:+c[l+2],y:+c[l+3]},{x:+c[l+4],y:+c[l+5]}];j?l?m-4===l?n[3]={x:+c[0],y:+c[1]}:m-2===l&&(n[2]={x:+c[0],y:+c[1]},n[3]={x:+c[2],y:+c[3]}):n[0]={x:+c[m-2],y:+c[m-1]}:m-4===l?n[3]=n[2]:l||(n[0]={x:+c[l],y:+c[l+1]}),k.curve(d*(-n[0].x+6*n[1].x+n[2].x)/6+e*n[2].x,d*(-n[0].y+6*n[1].y+n[2].y)/6+e*n[2].y,d*(n[1].x+6*n[2].x-n[3].x)/6+e*n[2].x,d*(n[1].y+6*n[2].y-n[3].y)/6+e*n[2].y,n[2].x,n[2].y,!1,g[(l+2)/2])}return k}return b.Interpolation.none()([])}},b.Interpolation.monotoneCubic=function(a){var c={fillHoles:!1};return a=b.extend({},c,a),function d(c,e){var f=b.splitIntoSegments(c,e,{fillHoles:a.fillHoles,increasingX:!0});if(f.length){if(f.length>1){var g=[];return f.forEach(function(a){g.push(d(a.pathCoordinates,a.valueData))}),b.Svg.Path.join(g)}if(c=f[0].pathCoordinates,e=f[0].valueData,c.length<=4)return b.Interpolation.none()(c,e);var h,i,j=[],k=[],l=c.length/2,m=[],n=[],o=[],p=[];for(h=0;h<l;h++)j[h]=c[2*h],k[h]=c[2*h+1];for(h=0;h<l-1;h++)o[h]=k[h+1]-k[h],p[h]=j[h+1]-j[h],n[h]=o[h]/p[h];for(m[0]=n[0],m[l-1]=n[l-2],h=1;h<l-1;h++)0===n[h]||0===n[h-1]||n[h-1]>0!=n[h]>0?m[h]=0:(m[h]=3*(p[h-1]+p[h])/((2*p[h]+p[h-1])/n[h-1]+(p[h]+2*p[h-1])/n[h]),isFinite(m[h])||(m[h]=0));for(i=(new b.Svg.Path).move(j[0],k[0],!1,e[0]),h=0;h<l-1;h++)i.curve(j[h]+p[h]/3,k[h]+m[h]*p[h]/3,j[h+1]-p[h]/3,k[h+1]-m[h+1]*p[h]/3,j[h+1],k[h+1],!1,e[h+1]);return i}return b.Interpolation.none()([])}},b.Interpolation.step=function(a){var c={postpone:!0,fillHoles:!1};return a=b.extend({},c,a),function(c,d){for(var e,f,g,h=new b.Svg.Path,i=0;i<c.length;i+=2){var j=c[i],k=c[i+1],l=d[i/2];void 0!==l.value?(void 0===g?h.move(j,k,!1,l):(a.postpone?h.line(j,f,!1,g):h.line(e,k,!1,l),h.line(j,k,!1,l)),e=j,f=k,g=l):a.fillHoles||(e=f=g=void 0)}return h}}}(this||global,a),function(a,b){"use strict";b.EventEmitter=function(){function a(a,b){d[a]=d[a]||[],d[a].push(b)}function b(a,b){d[a]&&(b?(d[a].splice(d[a].indexOf(b),1),0===d[a].length&&delete d[a]):delete d[a])}function c(a,b){d[a]&&d[a].forEach(function(a){a(b)}),d["*"]&&d["*"].forEach(function(c){c(a,b)})}var d=[];return{addEventHandler:a,removeEventHandler:b,emit:c}}}(this||global,a),function(a,b){"use strict";function c(a){var b=[];if(a.length)for(var c=0;c<a.length;c++)b.push(a[c]);return b}function d(a,c){var d=c||this.prototype||b.Class,e=Object.create(d);b.Class.cloneDefinitions(e,a);var f=function(){var a,c=e.constructor||function(){};return a=this===b?Object.create(e):this,c.apply(a,Array.prototype.slice.call(arguments,0)),a};return f.prototype=e,f["super"]=d,f.extend=this.extend,f}function e(){var a=c(arguments),b=a[0];return a.splice(1,a.length-1).forEach(function(a){Object.getOwnPropertyNames(a).forEach(function(c){delete b[c],Object.defineProperty(b,c,Object.getOwnPropertyDescriptor(a,c))})}),b}b.Class={extend:d,cloneDefinitions:e}}(this||global,a),function(a,b){"use strict";function c(a,c,d){return a&&(this.data=a||{},this.data.labels=this.data.labels||[],this.data.series=this.data.series||[],this.eventEmitter.emit("data",{type:"update",data:this.data})),c&&(this.options=b.extend({},d?this.options:this.defaultOptions,c),this.initializeTimeoutId||(this.optionsProvider.removeMediaQueryListeners(),this.optionsProvider=b.optionsProvider(this.options,this.responsiveOptions,this.eventEmitter))),this.initializeTimeoutId||this.createChart(this.optionsProvider.getCurrentOptions()),this}function d(){return this.initializeTimeoutId?i.clearTimeout(this.initializeTimeoutId):(i.removeEventListener("resize",this.resizeListener),this.optionsProvider.removeMediaQueryListeners()),this}function e(a,b){return this.eventEmitter.addEventHandler(a,b),this}function f(a,b){return this.eventEmitter.removeEventHandler(a,b),this}function g(){i.addEventListener("resize",this.resizeListener),this.optionsProvider=b.optionsProvider(this.options,this.responsiveOptions,this.eventEmitter),this.eventEmitter.addEventHandler("optionsChanged",function(){this.update()}.bind(this)),this.options.plugins&&this.options.plugins.forEach(function(a){a instanceof Array?a[0](this,a[1]):a(this)}.bind(this)),this.eventEmitter.emit("data",{type:"initial",data:this.data}),this.createChart(this.optionsProvider.getCurrentOptions()),this.initializeTimeoutId=void 0}function h(a,c,d,e,f){this.container=b.querySelector(a),this.data=c||{},this.data.labels=this.data.labels||[],this.data.series=this.data.series||[],this.defaultOptions=d,this.options=e,this.responsiveOptions=f,this.eventEmitter=b.EventEmitter(),this.supportsForeignObject=b.Svg.isSupported("Extensibility"),this.supportsAnimations=b.Svg.isSupported("AnimationEventsAttribute"),this.resizeListener=function(){this.update()}.bind(this),this.container&&(this.container.__chartist__&&this.container.__chartist__.detach(),this.container.__chartist__=this),this.initializeTimeoutId=setTimeout(g.bind(this),0)}var i=a.window;b.Base=b.Class.extend({constructor:h,optionsProvider:void 0,container:void 0,svg:void 0,eventEmitter:void 0,createChart:function(){throw new Error("Base chart type can't be instantiated!")},update:c,detach:d,on:e,off:f,version:b.version,supportsForeignObject:!1})}(this||global,a),function(a,b){"use strict";function c(a,c,d,e,f){a instanceof Element?this._node=a:(this._node=y.createElementNS(b.namespaces.svg,a),"svg"===a&&this.attr({"xmlns:ct":b.namespaces.ct})),c&&this.attr(c),d&&this.addClass(d),e&&(f&&e._node.firstChild?e._node.insertBefore(this._node,e._node.firstChild):e._node.appendChild(this._node))}function d(a,c){return"string"==typeof a?c?this._node.getAttributeNS(c,a):this._node.getAttribute(a):(Object.keys(a).forEach(function(c){if(void 0!==a[c])if(c.indexOf(":")!==-1){var d=c.split(":");this._node.setAttributeNS(b.namespaces[d[0]],c,a[c])}else this._node.setAttribute(c,a[c])}.bind(this)),this)}function e(a,c,d,e){return new b.Svg(a,c,d,this,e)}function f(){return this._node.parentNode instanceof SVGElement?new b.Svg(this._node.parentNode):null}function g(){for(var a=this._node;"svg"!==a.nodeName;)a=a.parentNode;return new b.Svg(a)}function h(a){var c=this._node.querySelector(a);return c?new b.Svg(c):null}function i(a){var c=this._node.querySelectorAll(a);return c.length?new b.Svg.List(c):null}function j(){return this._node}function k(a,c,d,e){if("string"==typeof a){var f=y.createElement("div");f.innerHTML=a,a=f.firstChild}a.setAttribute("xmlns",b.namespaces.xmlns);var g=this.elem("foreignObject",c,d,e);return g._node.appendChild(a),g}function l(a){return this._node.appendChild(y.createTextNode(a)),this}function m(){for(;this._node.firstChild;)this._node.removeChild(this._node.firstChild);return this}function n(){return this._node.parentNode.removeChild(this._node),this.parent()}function o(a){return this._node.parentNode.replaceChild(a._node,this._node),a}function p(a,b){return b&&this._node.firstChild?this._node.insertBefore(a._node,this._node.firstChild):this._node.appendChild(a._node),this}function q(){return this._node.getAttribute("class")?this._node.getAttribute("class").trim().split(/\s+/):[]}function r(a){return this._node.setAttribute("class",this.classes(this._node).concat(a.trim().split(/\s+/)).filter(function(a,b,c){return c.indexOf(a)===b}).join(" ")),this}function s(a){var b=a.trim().split(/\s+/);return this._node.setAttribute("class",this.classes(this._node).filter(function(a){return b.indexOf(a)===-1}).join(" ")),this}function t(){return this._node.setAttribute("class",""),this}function u(){return this._node.getBoundingClientRect().height}function v(){return this._node.getBoundingClientRect().width}function w(a,c,d){return void 0===c&&(c=!0),Object.keys(a).forEach(function(e){function f(a,c){var f,g,h,i={};a.easing&&(h=a.easing instanceof Array?a.easing:b.Svg.Easing[a.easing],delete a.easing),a.begin=b.ensureUnit(a.begin,"ms"),a.dur=b.ensureUnit(a.dur,"ms"),h&&(a.calcMode="spline",a.keySplines=h.join(" "),a.keyTimes="0;1"),c&&(a.fill="freeze",i[e]=a.from,this.attr(i),g=b.quantity(a.begin||0).value,a.begin="indefinite"),f=this.elem("animate",b.extend({attributeName:e},a)),c&&setTimeout(function(){try{f._node.beginElement()}catch(b){i[e]=a.to,this.attr(i),f.remove()}}.bind(this),g),d&&f._node.addEventListener("beginEvent",function(){d.emit("animationBegin",{element:this,animate:f._node,params:a})}.bind(this)),f._node.addEventListener("endEvent",function(){d&&d.emit("animationEnd",{element:this,animate:f._node,params:a}),c&&(i[e]=a.to,this.attr(i),f.remove())}.bind(this))}a[e]instanceof Array?a[e].forEach(function(a){f.bind(this)(a,!1)}.bind(this)):f.bind(this)(a[e],c)}.bind(this)),this}function x(a){var c=this;this.svgElements=[];for(var d=0;d<a.length;d++)this.svgElements.push(new b.Svg(a[d]));Object.keys(b.Svg.prototype).filter(function(a){return["constructor","parent","querySelector","querySelectorAll","replace","append","classes","height","width"].indexOf(a)===-1}).forEach(function(a){c[a]=function(){var d=Array.prototype.slice.call(arguments,0);return c.svgElements.forEach(function(c){b.Svg.prototype[a].apply(c,d)}),c}})}var y=a.document;b.Svg=b.Class.extend({constructor:c,attr:d,elem:e,parent:f,root:g,querySelector:h,querySelectorAll:i,getNode:j,foreignObject:k,text:l,empty:m,remove:n,replace:o,append:p,classes:q,addClass:r,removeClass:s,removeAllClasses:t,height:u,width:v,animate:w}),b.Svg.isSupported=function(a){return y.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#"+a,"1.1")};var z={easeInSine:[.47,0,.745,.715],easeOutSine:[.39,.575,.565,1],easeInOutSine:[.445,.05,.55,.95],easeInQuad:[.55,.085,.68,.53],easeOutQuad:[.25,.46,.45,.94],easeInOutQuad:[.455,.03,.515,.955],easeInCubic:[.55,.055,.675,.19],easeOutCubic:[.215,.61,.355,1],easeInOutCubic:[.645,.045,.355,1],easeInQuart:[.895,.03,.685,.22],easeOutQuart:[.165,.84,.44,1],easeInOutQuart:[.77,0,.175,1],easeInQuint:[.755,.05,.855,.06],easeOutQuint:[.23,1,.32,1],easeInOutQuint:[.86,0,.07,1],easeInExpo:[.95,.05,.795,.035],easeOutExpo:[.19,1,.22,1],easeInOutExpo:[1,0,0,1],easeInCirc:[.6,.04,.98,.335],easeOutCirc:[.075,.82,.165,1],easeInOutCirc:[.785,.135,.15,.86],easeInBack:[.6,-.28,.735,.045],easeOutBack:[.175,.885,.32,1.275],easeInOutBack:[.68,-.55,.265,1.55]};b.Svg.Easing=z,b.Svg.List=b.Class.extend({constructor:x})}(this||global,a),function(a,b){"use strict";function c(a,c,d,e,f,g){var h=b.extend({command:f?a.toLowerCase():a.toUpperCase()},c,g?{data:g}:{});d.splice(e,0,h)}function d(a,b){a.forEach(function(c,d){t[c.command.toLowerCase()].forEach(function(e,f){b(c,e,d,f,a)})})}function e(a,c){this.pathElements=[],this.pos=0,this.close=a,this.options=b.extend({},u,c)}function f(a){return void 0!==a?(this.pos=Math.max(0,Math.min(this.pathElements.length,a)),this):this.pos}function g(a){return this.pathElements.splice(this.pos,a),this}function h(a,b,d,e){return c("M",{x:+a,y:+b},this.pathElements,this.pos++,d,e),this}function i(a,b,d,e){return c("L",{x:+a,y:+b},this.pathElements,this.pos++,d,e),this}function j(a,b,d,e,f,g,h,i){return c("C",{x1:+a,y1:+b,x2:+d,y2:+e,x:+f,y:+g},this.pathElements,this.pos++,h,i),this}function k(a,b,d,e,f,g,h,i,j){return c("A",{rx:+a,ry:+b,xAr:+d,lAf:+e,sf:+f,x:+g,y:+h},this.pathElements,this.pos++,i,j),this}function l(a){var c=a.replace(/([A-Za-z])([0-9])/g,"$1 $2").replace(/([0-9])([A-Za-z])/g,"$1 $2").split(/[\s,]+/).reduce(function(a,b){return b.match(/[A-Za-z]/)&&a.push([]),a[a.length-1].push(b),a},[]);"Z"===c[c.length-1][0].toUpperCase()&&c.pop();var d=c.map(function(a){var c=a.shift(),d=t[c.toLowerCase()];return b.extend({command:c},d.reduce(function(b,c,d){return b[c]=+a[d],b},{}))}),e=[this.pos,0];return Array.prototype.push.apply(e,d),Array.prototype.splice.apply(this.pathElements,e),this.pos+=d.length,this}function m(){var a=Math.pow(10,this.options.accuracy);return this.pathElements.reduce(function(b,c){var d=t[c.command.toLowerCase()].map(function(b){return this.options.accuracy?Math.round(c[b]*a)/a:c[b]}.bind(this));return b+c.command+d.join(",")}.bind(this),"")+(this.close?"Z":"")}function n(a,b){return d(this.pathElements,function(c,d){c[d]*="x"===d[0]?a:b}),this}function o(a,b){return d(this.pathElements,function(c,d){c[d]+="x"===d[0]?a:b}),this}function p(a){return d(this.pathElements,function(b,c,d,e,f){var g=a(b,c,d,e,f);(g||0===g)&&(b[c]=g)}),this}function q(a){var c=new b.Svg.Path(a||this.close);return c.pos=this.pos,c.pathElements=this.pathElements.slice().map(function(a){return b.extend({},a)}),c.options=b.extend({},this.options),c}function r(a){var c=[new b.Svg.Path];return this.pathElements.forEach(function(d){d.command===a.toUpperCase()&&0!==c[c.length-1].pathElements.length&&c.push(new b.Svg.Path),c[c.length-1].pathElements.push(d)}),c}function s(a,c,d){for(var e=new b.Svg.Path(c,d),f=0;f<a.length;f++)for(var g=a[f],h=0;h<g.pathElements.length;h++)e.pathElements.push(g.pathElements[h]);return e}var t={m:["x","y"],l:["x","y"],c:["x1","y1","x2","y2","x","y"],a:["rx","ry","xAr","lAf","sf","x","y"]},u={accuracy:3};b.Svg.Path=b.Class.extend({constructor:e,position:f,remove:g,move:h,line:i,curve:j,arc:k,scale:n,translate:o,transform:p,parse:l,stringify:m,clone:q,splitByCommand:r}),b.Svg.Path.elementDescriptions=t,b.Svg.Path.join=s}(this||global,a),function(a,b){"use strict";function c(a,b,c,d){this.units=a,this.counterUnits=a===e.x?e.y:e.x,this.chartRect=b,this.axisLength=b[a.rectEnd]-b[a.rectStart],this.gridOffset=b[a.rectOffset],this.ticks=c,this.options=d}function d(a,c,d,e,f){var g=e["axis"+this.units.pos.toUpperCase()],h=this.ticks.map(this.projectValue.bind(this)),i=this.ticks.map(g.labelInterpolationFnc);h.forEach(function(j,k){var l,m={x:0,y:0};l=h[k+1]?h[k+1]-j:Math.max(this.axisLength-j,30),b.isFalseyButZero(i[k])&&""!==i[k]||("x"===this.units.pos?(j=this.chartRect.x1+j,m.x=e.axisX.labelOffset.x,"start"===e.axisX.position?m.y=this.chartRect.padding.top+e.axisX.labelOffset.y+(d?5:20):m.y=this.chartRect.y1+e.axisX.labelOffset.y+(d?5:20)):(j=this.chartRect.y1-j,m.y=e.axisY.labelOffset.y-(d?l:0),"start"===e.axisY.position?m.x=d?this.chartRect.padding.left+e.axisY.labelOffset.x:this.chartRect.x1-10:m.x=this.chartRect.x2+e.axisY.labelOffset.x+10),g.showGrid&&b.createGrid(j,k,this,this.gridOffset,this.chartRect[this.counterUnits.len](),a,[e.classNames.grid,e.classNames[this.units.dir]],f),g.showLabel&&b.createLabel(j,l,k,i,this,g.offset,m,c,[e.classNames.label,e.classNames[this.units.dir],"start"===g.position?e.classNames[g.position]:e.classNames.end],d,f))}.bind(this))}var e=(a.window,a.document,{x:{pos:"x",len:"width",dir:"horizontal",rectStart:"x1",rectEnd:"x2",rectOffset:"y2"},y:{pos:"y",len:"height",dir:"vertical",rectStart:"y2",rectEnd:"y1",rectOffset:"x1"}});b.Axis=b.Class.extend({constructor:c,createGridAndLabels:d,projectValue:function(a,b,c){throw new Error("Base axis can't be instantiated!")}}),b.Axis.units=e}(this||global,a),function(a,b){"use strict";function c(a,c,d,e){var f=e.highLow||b.getHighLow(c,e,a.pos);this.bounds=b.getBounds(d[a.rectEnd]-d[a.rectStart],f,e.scaleMinSpace||20,e.onlyInteger),this.range={min:this.bounds.min,max:this.bounds.max},b.AutoScaleAxis["super"].constructor.call(this,a,d,this.bounds.values,e)}function d(a){return this.axisLength*(+b.getMultiValue(a,this.units.pos)-this.bounds.min)/this.bounds.range}a.window,a.document;b.AutoScaleAxis=b.Axis.extend({constructor:c,projectValue:d})}(this||global,a),function(a,b){"use strict";function c(a,c,d,e){var f=e.highLow||b.getHighLow(c,e,a.pos);this.divisor=e.divisor||1,this.ticks=e.ticks||b.times(this.divisor).map(function(a,b){return f.low+(f.high-f.low)/this.divisor*b}.bind(this)),this.ticks.sort(function(a,b){return a-b}),this.range={min:f.low,max:f.high},b.FixedScaleAxis["super"].constructor.call(this,a,d,this.ticks,e),this.stepLength=this.axisLength/this.divisor}function d(a){return this.axisLength*(+b.getMultiValue(a,this.units.pos)-this.range.min)/(this.range.max-this.range.min)}a.window,a.document;b.FixedScaleAxis=b.Axis.extend({constructor:c,projectValue:d})}(this||global,a),function(a,b){"use strict";function c(a,c,d,e){b.StepAxis["super"].constructor.call(this,a,d,e.ticks,e);var f=Math.max(1,e.ticks.length-(e.stretch?1:0));this.stepLength=this.axisLength/f}function d(a,b){return this.stepLength*b}a.window,a.document;b.StepAxis=b.Axis.extend({constructor:c,projectValue:d})}(this||global,a),function(a,b){"use strict";function c(a){var c=b.normalizeData(this.data,a.reverseData,!0);this.svg=b.createSvg(this.container,a.width,a.height,a.classNames.chart);var d,f,g=this.svg.elem("g").addClass(a.classNames.gridGroup),h=this.svg.elem("g"),i=this.svg.elem("g").addClass(a.classNames.labelGroup),j=b.createChartRect(this.svg,a,e.padding);d=void 0===a.axisX.type?new b.StepAxis(b.Axis.units.x,c.normalized.series,j,b.extend({},a.axisX,{ticks:c.normalized.labels,stretch:a.fullWidth})):a.axisX.type.call(b,b.Axis.units.x,c.normalized.series,j,a.axisX),f=void 0===a.axisY.type?new b.AutoScaleAxis(b.Axis.units.y,c.normalized.series,j,b.extend({},a.axisY,{high:b.isNumeric(a.high)?a.high:a.axisY.high,low:b.isNumeric(a.low)?a.low:a.axisY.low})):a.axisY.type.call(b,b.Axis.units.y,c.normalized.series,j,a.axisY),d.createGridAndLabels(g,i,this.supportsForeignObject,a,this.eventEmitter),f.createGridAndLabels(g,i,this.supportsForeignObject,a,this.eventEmitter),a.showGridBackground&&b.createGridBackground(g,j,a.classNames.gridBackground,this.eventEmitter),c.raw.series.forEach(function(e,g){var i=h.elem("g");i.attr({"ct:series-name":e.name,"ct:meta":b.serialize(e.meta)}),i.addClass([a.classNames.series,e.className||a.classNames.series+"-"+b.alphaNumerate(g)].join(" "));var k=[],l=[];c.normalized.series[g].forEach(function(a,h){var i={x:j.x1+d.projectValue(a,h,c.normalized.series[g]),y:j.y1-f.projectValue(a,h,c.normalized.series[g])};k.push(i.x,i.y),l.push({value:a,valueIndex:h,meta:b.getMetaData(e,h)})}.bind(this));var m={lineSmooth:b.getSeriesOption(e,a,"lineSmooth"),showPoint:b.getSeriesOption(e,a,"showPoint"),showLine:b.getSeriesOption(e,a,"showLine"),showArea:b.getSeriesOption(e,a,"showArea"),areaBase:b.getSeriesOption(e,a,"areaBase")},n="function"==typeof m.lineSmooth?m.lineSmooth:m.lineSmooth?b.Interpolation.monotoneCubic():b.Interpolation.none(),o=n(k,l);if(m.showPoint&&o.pathElements.forEach(function(c){var h=i.elem("line",{x1:c.x,y1:c.y,x2:c.x+.01,y2:c.y},a.classNames.point).attr({"ct:value":[c.data.value.x,c.data.value.y].filter(b.isNumeric).join(","),"ct:meta":b.serialize(c.data.meta)});this.eventEmitter.emit("draw",{type:"point",value:c.data.value,index:c.data.valueIndex,meta:c.data.meta,series:e,seriesIndex:g,axisX:d,axisY:f,group:i,element:h,x:c.x,y:c.y})}.bind(this)),m.showLine){var p=i.elem("path",{d:o.stringify()},a.classNames.line,!0);this.eventEmitter.emit("draw",{type:"line",values:c.normalized.series[g],path:o.clone(),chartRect:j,index:g,series:e,seriesIndex:g,seriesMeta:e.meta,axisX:d,axisY:f,group:i,element:p})}if(m.showArea&&f.range){var q=Math.max(Math.min(m.areaBase,f.range.max),f.range.min),r=j.y1-f.projectValue(q);o.splitByCommand("M").filter(function(a){return a.pathElements.length>1}).map(function(a){var b=a.pathElements[0],c=a.pathElements[a.pathElements.length-1];return a.clone(!0).position(0).remove(1).move(b.x,r).line(b.x,b.y).position(a.pathElements.length+1).line(c.x,r)}).forEach(function(b){var h=i.elem("path",{d:b.stringify()},a.classNames.area,!0);this.eventEmitter.emit("draw",{type:"area",values:c.normalized.series[g],path:b.clone(),series:e,seriesIndex:g,axisX:d,axisY:f,chartRect:j,index:g,group:i,element:h})}.bind(this))}}.bind(this)),this.eventEmitter.emit("created",{bounds:f.bounds,chartRect:j,axisX:d,axisY:f,svg:this.svg,options:a})}function d(a,c,d,f){b.Line["super"].constructor.call(this,a,c,e,b.extend({},e,d),f)}var e=(a.window,a.document,{axisX:{offset:30,position:"end",labelOffset:{x:0,y:0},showLabel:!0,showGrid:!0,labelInterpolationFnc:b.noop,type:void 0},axisY:{offset:40,position:"start",labelOffset:{x:0,y:0},showLabel:!0,showGrid:!0,labelInterpolationFnc:b.noop,type:void 0,scaleMinSpace:20,onlyInteger:!1},width:void 0,height:void 0,showLine:!0,showPoint:!0,showArea:!1,areaBase:0,lineSmooth:!0,showGridBackground:!1,low:void 0,high:void 0,chartPadding:{top:15,right:15,bottom:5,left:10},fullWidth:!1,reverseData:!1,classNames:{chart:"ct-chart-line",label:"ct-label",labelGroup:"ct-labels",series:"ct-series",line:"ct-line",point:"ct-point",area:"ct-area",grid:"ct-grid",gridGroup:"ct-grids",gridBackground:"ct-grid-background",vertical:"ct-vertical",horizontal:"ct-horizontal",start:"ct-start",end:"ct-end"}});b.Line=b.Base.extend({constructor:d,createChart:c})}(this||global,a),function(a,b){"use strict";function c(a){var c,d;a.distributeSeries?(c=b.normalizeData(this.data,a.reverseData,a.horizontalBars?"x":"y"),c.normalized.series=c.normalized.series.map(function(a){return[a]})):c=b.normalizeData(this.data,a.reverseData,a.horizontalBars?"x":"y"),this.svg=b.createSvg(this.container,a.width,a.height,a.classNames.chart+(a.horizontalBars?" "+a.classNames.horizontalBars:""));var f=this.svg.elem("g").addClass(a.classNames.gridGroup),g=this.svg.elem("g"),h=this.svg.elem("g").addClass(a.classNames.labelGroup); +if(a.stackBars&&0!==c.normalized.series.length){var i=b.serialMap(c.normalized.series,function(){return Array.prototype.slice.call(arguments).map(function(a){return a}).reduce(function(a,b){return{x:a.x+(b&&b.x)||0,y:a.y+(b&&b.y)||0}},{x:0,y:0})});d=b.getHighLow([i],a,a.horizontalBars?"x":"y")}else d=b.getHighLow(c.normalized.series,a,a.horizontalBars?"x":"y");d.high=+a.high||(0===a.high?0:d.high),d.low=+a.low||(0===a.low?0:d.low);var j,k,l,m,n,o=b.createChartRect(this.svg,a,e.padding);k=a.distributeSeries&&a.stackBars?c.normalized.labels.slice(0,1):c.normalized.labels,a.horizontalBars?(j=m=void 0===a.axisX.type?new b.AutoScaleAxis(b.Axis.units.x,c.normalized.series,o,b.extend({},a.axisX,{highLow:d,referenceValue:0})):a.axisX.type.call(b,b.Axis.units.x,c.normalized.series,o,b.extend({},a.axisX,{highLow:d,referenceValue:0})),l=n=void 0===a.axisY.type?new b.StepAxis(b.Axis.units.y,c.normalized.series,o,{ticks:k}):a.axisY.type.call(b,b.Axis.units.y,c.normalized.series,o,a.axisY)):(l=m=void 0===a.axisX.type?new b.StepAxis(b.Axis.units.x,c.normalized.series,o,{ticks:k}):a.axisX.type.call(b,b.Axis.units.x,c.normalized.series,o,a.axisX),j=n=void 0===a.axisY.type?new b.AutoScaleAxis(b.Axis.units.y,c.normalized.series,o,b.extend({},a.axisY,{highLow:d,referenceValue:0})):a.axisY.type.call(b,b.Axis.units.y,c.normalized.series,o,b.extend({},a.axisY,{highLow:d,referenceValue:0})));var p=a.horizontalBars?o.x1+j.projectValue(0):o.y1-j.projectValue(0),q=[];l.createGridAndLabels(f,h,this.supportsForeignObject,a,this.eventEmitter),j.createGridAndLabels(f,h,this.supportsForeignObject,a,this.eventEmitter),a.showGridBackground&&b.createGridBackground(f,o,a.classNames.gridBackground,this.eventEmitter),c.raw.series.forEach(function(d,e){var f,h,i=e-(c.raw.series.length-1)/2;f=a.distributeSeries&&!a.stackBars?l.axisLength/c.normalized.series.length/2:a.distributeSeries&&a.stackBars?l.axisLength/2:l.axisLength/c.normalized.series[e].length/2,h=g.elem("g"),h.attr({"ct:series-name":d.name,"ct:meta":b.serialize(d.meta)}),h.addClass([a.classNames.series,d.className||a.classNames.series+"-"+b.alphaNumerate(e)].join(" ")),c.normalized.series[e].forEach(function(g,k){var r,s,t,u;if(u=a.distributeSeries&&!a.stackBars?e:a.distributeSeries&&a.stackBars?0:k,r=a.horizontalBars?{x:o.x1+j.projectValue(g&&g.x?g.x:0,k,c.normalized.series[e]),y:o.y1-l.projectValue(g&&g.y?g.y:0,u,c.normalized.series[e])}:{x:o.x1+l.projectValue(g&&g.x?g.x:0,u,c.normalized.series[e]),y:o.y1-j.projectValue(g&&g.y?g.y:0,k,c.normalized.series[e])},l instanceof b.StepAxis&&(l.options.stretch||(r[l.units.pos]+=f*(a.horizontalBars?-1:1)),r[l.units.pos]+=a.stackBars||a.distributeSeries?0:i*a.seriesBarDistance*(a.horizontalBars?-1:1)),t=q[k]||p,q[k]=t-(p-r[l.counterUnits.pos]),void 0!==g){var v={};v[l.units.pos+"1"]=r[l.units.pos],v[l.units.pos+"2"]=r[l.units.pos],!a.stackBars||"accumulate"!==a.stackMode&&a.stackMode?(v[l.counterUnits.pos+"1"]=p,v[l.counterUnits.pos+"2"]=r[l.counterUnits.pos]):(v[l.counterUnits.pos+"1"]=t,v[l.counterUnits.pos+"2"]=q[k]),v.x1=Math.min(Math.max(v.x1,o.x1),o.x2),v.x2=Math.min(Math.max(v.x2,o.x1),o.x2),v.y1=Math.min(Math.max(v.y1,o.y2),o.y1),v.y2=Math.min(Math.max(v.y2,o.y2),o.y1);var w=b.getMetaData(d,k);s=h.elem("line",v,a.classNames.bar).attr({"ct:value":[g.x,g.y].filter(b.isNumeric).join(","),"ct:meta":b.serialize(w)}),this.eventEmitter.emit("draw",b.extend({type:"bar",value:g,index:k,meta:w,series:d,seriesIndex:e,axisX:m,axisY:n,chartRect:o,group:h,element:s},v))}}.bind(this))}.bind(this)),this.eventEmitter.emit("created",{bounds:j.bounds,chartRect:o,axisX:m,axisY:n,svg:this.svg,options:a})}function d(a,c,d,f){b.Bar["super"].constructor.call(this,a,c,e,b.extend({},e,d),f)}var e=(a.window,a.document,{axisX:{offset:30,position:"end",labelOffset:{x:0,y:0},showLabel:!0,showGrid:!0,labelInterpolationFnc:b.noop,scaleMinSpace:30,onlyInteger:!1},axisY:{offset:40,position:"start",labelOffset:{x:0,y:0},showLabel:!0,showGrid:!0,labelInterpolationFnc:b.noop,scaleMinSpace:20,onlyInteger:!1},width:void 0,height:void 0,high:void 0,low:void 0,referenceValue:0,chartPadding:{top:15,right:15,bottom:5,left:10},seriesBarDistance:15,stackBars:!1,stackMode:"accumulate",horizontalBars:!1,distributeSeries:!1,reverseData:!1,showGridBackground:!1,classNames:{chart:"ct-chart-bar",horizontalBars:"ct-horizontal-bars",label:"ct-label",labelGroup:"ct-labels",series:"ct-series",bar:"ct-bar",grid:"ct-grid",gridGroup:"ct-grids",gridBackground:"ct-grid-background",vertical:"ct-vertical",horizontal:"ct-horizontal",start:"ct-start",end:"ct-end"}});b.Bar=b.Base.extend({constructor:d,createChart:c})}(this||global,a),function(a,b){"use strict";function c(a,b,c){var d=b.x>a.x;return d&&"explode"===c||!d&&"implode"===c?"start":d&&"implode"===c||!d&&"explode"===c?"end":"middle"}function d(a){var d,e,g,h,i,j=b.normalizeData(this.data),k=[],l=a.startAngle;this.svg=b.createSvg(this.container,a.width,a.height,a.donut?a.classNames.chartDonut:a.classNames.chartPie),e=b.createChartRect(this.svg,a,f.padding),g=Math.min(e.width()/2,e.height()/2),i=a.total||j.normalized.series.reduce(function(a,b){return a+b},0);var m=b.quantity(a.donutWidth);"%"===m.unit&&(m.value*=g/100),g-=a.donut&&!a.donutSolid?m.value/2:0,h="outside"===a.labelPosition||a.donut&&!a.donutSolid?g:"center"===a.labelPosition?0:a.donutSolid?g-m.value/2:g/2,h+=a.labelOffset;var n={x:e.x1+e.width()/2,y:e.y2+e.height()/2},o=1===j.raw.series.filter(function(a){return a.hasOwnProperty("value")?0!==a.value:0!==a}).length;j.raw.series.forEach(function(a,b){k[b]=this.svg.elem("g",null,null)}.bind(this)),a.showLabel&&(d=this.svg.elem("g",null,null)),j.raw.series.forEach(function(e,f){if(0!==j.normalized.series[f]||!a.ignoreEmptyValues){k[f].attr({"ct:series-name":e.name}),k[f].addClass([a.classNames.series,e.className||a.classNames.series+"-"+b.alphaNumerate(f)].join(" "));var p=i>0?l+j.normalized.series[f]/i*360:0,q=Math.max(0,l-(0===f||o?0:.2));p-q>=359.99&&(p=q+359.99);var r,s,t,u=b.polarToCartesian(n.x,n.y,g,q),v=b.polarToCartesian(n.x,n.y,g,p),w=new b.Svg.Path(!a.donut||a.donutSolid).move(v.x,v.y).arc(g,g,0,p-l>180,0,u.x,u.y);a.donut?a.donutSolid&&(t=g-m.value,r=b.polarToCartesian(n.x,n.y,t,l-(0===f||o?0:.2)),s=b.polarToCartesian(n.x,n.y,t,p),w.line(r.x,r.y),w.arc(t,t,0,p-l>180,1,s.x,s.y)):w.line(n.x,n.y);var x=a.classNames.slicePie;a.donut&&(x=a.classNames.sliceDonut,a.donutSolid&&(x=a.classNames.sliceDonutSolid));var y=k[f].elem("path",{d:w.stringify()},x);if(y.attr({"ct:value":j.normalized.series[f],"ct:meta":b.serialize(e.meta)}),a.donut&&!a.donutSolid&&(y._node.style.strokeWidth=m.value+"px"),this.eventEmitter.emit("draw",{type:"slice",value:j.normalized.series[f],totalDataSum:i,index:f,meta:e.meta,series:e,group:k[f],element:y,path:w.clone(),center:n,radius:g,startAngle:l,endAngle:p}),a.showLabel){var z;z=1===j.raw.series.length?{x:n.x,y:n.y}:b.polarToCartesian(n.x,n.y,h,l+(p-l)/2);var A;A=j.normalized.labels&&!b.isFalseyButZero(j.normalized.labels[f])?j.normalized.labels[f]:j.normalized.series[f];var B=a.labelInterpolationFnc(A,f);if(B||0===B){var C=d.elem("text",{dx:z.x,dy:z.y,"text-anchor":c(n,z,a.labelDirection)},a.classNames.label).text(""+B);this.eventEmitter.emit("draw",{type:"label",index:f,group:d,element:C,text:""+B,x:z.x,y:z.y})}}l=p}}.bind(this)),this.eventEmitter.emit("created",{chartRect:e,svg:this.svg,options:a})}function e(a,c,d,e){b.Pie["super"].constructor.call(this,a,c,f,b.extend({},f,d),e)}var f=(a.window,a.document,{width:void 0,height:void 0,chartPadding:5,classNames:{chartPie:"ct-chart-pie",chartDonut:"ct-chart-donut",series:"ct-series",slicePie:"ct-slice-pie",sliceDonut:"ct-slice-donut",sliceDonutSolid:"ct-slice-donut-solid",label:"ct-label"},startAngle:0,total:void 0,donut:!1,donutSolid:!1,donutWidth:60,showLabel:!0,labelOffset:0,labelPosition:"inside",labelInterpolationFnc:b.noop,labelDirection:"neutral",reverseData:!1,ignoreEmptyValues:!1});b.Pie=b.Base.extend({constructor:e,createChart:d,determineAnchorPosition:c})}(this||global,a),a}); +//# sourceMappingURL=chartist.min.js.map + + + + + +! function(a, b) { + "function" == typeof define && define.amd ? define("Chartist", [], function() { + return a.Chartist = b() + }) : "object" == typeof module && module.exports ? module.exports = b() : a.Chartist = b() +}(this, function() { + var a = { + version: "0.11.4" + }; + return function(a, b) { + "use strict"; + var c = a.window, + d = a.document; + b.namespaces = { + svg: "http://www.w3.org/2000/svg", + xmlns: "http://www.w3.org/2000/xmlns/", + xhtml: "http://www.w3.org/1999/xhtml", + xlink: "http://www.w3.org/1999/xlink", + ct: "http://gionkunz.github.com/chartist-js/ct" + }, b.noop = function(a) { + return a + }, b.alphaNumerate = function(a) { + return String.fromCharCode(97 + a % 26) + }, b.extend = function(a) { + var c, d, e; + for (a = a || {}, c = 1; c < arguments.length; c++) { + d = arguments[c]; + for (var f in d) e = d[f], "object" != typeof e || null === e || e instanceof Array ? a[f] = e : a[f] = b.extend(a[f], e) + } + return a + }, b.replaceAll = function(a, b, c) { + return a.replace(new RegExp(b, "g"), c) + }, b.ensureUnit = function(a, b) { + return "number" == typeof a && (a += b), a + }, b.quantity = function(a) { + if ("string" == typeof a) { + var b = /^(\d+)\s*(.*)$/g.exec(a); + return { + value: +b[1], + unit: b[2] || void 0 + } + } + return { + value: a + } + }, b.querySelector = function(a) { + return a instanceof Node ? a : d.querySelector(a) + }, b.times = function(a) { + return Array.apply(null, new Array(a)) + }, b.sum = function(a, b) { + return a + (b ? b : 0) + }, b.mapMultiply = function(a) { + return function(b) { + return b * a + } + }, b.mapAdd = function(a) { + return function(b) { + return b + a + } + }, b.serialMap = function(a, c) { + var d = [], + e = Math.max.apply(null, a.map(function(a) { + return a.length + })); + return b.times(e).forEach(function(b, e) { + var f = a.map(function(a) { + return a[e] + }); + d[e] = c.apply(null, f) + }), d + }, b.roundWithPrecision = function(a, c) { + var d = Math.pow(10, c || b.precision); + return Math.round(a * d) / d + }, b.precision = 8, b.escapingMap = { + "&": "&", + "<": "<", + ">": ">", + '"': """, + "'": "'" + }, b.serialize = function(a) { + return null === a || void 0 === a ? a : ("number" == typeof a ? a = "" + a : "object" == typeof a && (a = JSON.stringify({ + data: a + })), Object.keys(b.escapingMap).reduce(function(a, c) { + return b.replaceAll(a, c, b.escapingMap[c]) + }, a)) + }, b.deserialize = function(a) { + if ("string" != typeof a) return a; + a = Object.keys(b.escapingMap).reduce(function(a, c) { + return b.replaceAll(a, b.escapingMap[c], c) + }, a); + try { + a = JSON.parse(a), a = void 0 !== a.data ? a.data : a + } catch (c) {} + return a + }, b.createSvg = function(a, c, d, e) { + var f; + return c = c || "100%", d = d || "100%", Array.prototype.slice.call(a.querySelectorAll("svg")).filter(function(a) { + return a.getAttributeNS(b.namespaces.xmlns, "ct") + }).forEach(function(b) { + a.removeChild(b) + }), f = new b.Svg("svg").attr({ + width: c, + height: d + }).addClass(e), f._node.style.width = c, f._node.style.height = d, a.appendChild(f._node), f + }, b.normalizeData = function(a, c, d) { + var e, f = { + raw: a, + normalized: {} + }; + return f.normalized.series = b.getDataArray({ + series: a.series || [] + }, c, d), e = f.normalized.series.every(function(a) { + return a instanceof Array + }) ? Math.max.apply(null, f.normalized.series.map(function(a) { + return a.length + })) : f.normalized.series.length, f.normalized.labels = (a.labels || []).slice(), Array.prototype.push.apply(f.normalized.labels, b.times(Math.max(0, e - f.normalized.labels.length)).map(function() { + return "" + })), c && b.reverseData(f.normalized), f + }, b.safeHasProperty = function(a, b) { + return null !== a && "object" == typeof a && a.hasOwnProperty(b) + }, b.isDataHoleValue = function(a) { + return null === a || void 0 === a || "number" == typeof a && isNaN(a) + }, b.reverseData = function(a) { + a.labels.reverse(), a.series.reverse(); + for (var b = 0; b < a.series.length; b++) "object" == typeof a.series[b] && void 0 !== a.series[b].data ? a.series[b].data.reverse() : a.series[b] instanceof Array && a.series[b].reverse() + }, b.getDataArray = function(a, c, d) { + function e(a) { + if (b.safeHasProperty(a, "value")) return e(a.value); + if (b.safeHasProperty(a, "data")) return e(a.data); + if (a instanceof Array) return a.map(e); + if (!b.isDataHoleValue(a)) { + if (d) { + var c = {}; + return "string" == typeof d ? c[d] = b.getNumberOrUndefined(a) : c.y = b.getNumberOrUndefined(a), c.x = a.hasOwnProperty("x") ? b.getNumberOrUndefined(a.x) : c.x, c.y = a.hasOwnProperty("y") ? b.getNumberOrUndefined(a.y) : c.y, c + } + return b.getNumberOrUndefined(a) + } + } + return a.series.map(e) + }, b.normalizePadding = function(a, b) { + return b = b || 0, "number" == typeof a ? { + top: a, + right: a, + bottom: a, + left: a + } : { + top: "number" == typeof a.top ? a.top : b, + right: "number" == typeof a.right ? a.right : b, + bottom: "number" == typeof a.bottom ? a.bottom : b, + left: "number" == typeof a.left ? a.left : b + } + }, b.getMetaData = function(a, b) { + var c = a.data ? a.data[b] : a[b]; + return c ? c.meta : void 0 + }, b.orderOfMagnitude = function(a) { + return Math.floor(Math.log(Math.abs(a)) / Math.LN10) + }, b.projectLength = function(a, b, c) { + return b / c.range * a + }, b.getAvailableHeight = function(a, c) { + return Math.max((b.quantity(c.height).value || a.height()) - (c.chartPadding.top + c.chartPadding.bottom) - c.axisX.offset, 0) + }, b.getHighLow = function(a, c, d) { + function e(a) { + if (void 0 !== a) + if (a instanceof Array) + for (var b = 0; b < a.length; b++) e(a[b]); + else { + var c = d ? +a[d] : +a; + g && c > f.high && (f.high = c), h && c < f.low && (f.low = c) + } + } + c = b.extend({}, c, d ? c["axis" + d.toUpperCase()] : {}); + var f = { + high: void 0 === c.high ? -Number.MAX_VALUE : +c.high, + low: void 0 === c.low ? Number.MAX_VALUE : +c.low + }, + g = void 0 === c.high, + h = void 0 === c.low; + return (g || h) && e(a), (c.referenceValue || 0 === c.referenceValue) && (f.high = Math.max(c.referenceValue, f.high), f.low = Math.min(c.referenceValue, f.low)), f.high <= f.low && (0 === f.low ? f.high = 1 : f.low < 0 ? f.high = 0 : f.high > 0 ? f.low = 0 : (f.high = 1, f.low = 0)), f + }, b.isNumeric = function(a) { + return null !== a && isFinite(a) + }, b.isFalseyButZero = function(a) { + return !a && 0 !== a + }, b.getNumberOrUndefined = function(a) { + return b.isNumeric(a) ? +a : void 0 + }, b.isMultiValue = function(a) { + return "object" == typeof a && ("x" in a || "y" in a) + }, b.getMultiValue = function(a, c) { + return b.isMultiValue(a) ? b.getNumberOrUndefined(a[c || "y"]) : b.getNumberOrUndefined(a) + }, b.rho = function(a) { + function b(a, c) { + return a % c === 0 ? c : b(c, a % c) + } + + function c(a) { + return a * a + 1 + } + if (1 === a) return a; + var d, e = 2, + f = 2; + if (a % 2 === 0) return 2; + do e = c(e) % a, f = c(c(f)) % a, d = b(Math.abs(e - f), a); while (1 === d); + return d + }, b.getBounds = function(a, c, d, e) { + function f(a, b) { + return a === (a += b) && (a *= 1 + (b > 0 ? o : -o)), a + } + var g, h, i, j = 0, + k = { + high: c.high, + low: c.low + }; + k.valueRange = k.high - k.low, k.oom = b.orderOfMagnitude(k.valueRange), k.step = Math.pow(10, k.oom), k.min = Math.floor(k.low / k.step) * k.step, k.max = Math.ceil(k.high / k.step) * k.step, k.range = k.max - k.min, k.numberOfSteps = Math.round(k.range / k.step); + var l = b.projectLength(a, k.step, k), + m = l < d, + n = e ? b.rho(k.range) : 0; + if (e && b.projectLength(a, 1, k) >= d) k.step = 1; + else if (e && n < k.step && b.projectLength(a, n, k) >= d) k.step = n; + else + for (;;) { + if (m && b.projectLength(a, k.step, k) <= d) k.step *= 2; + else { + if (m || !(b.projectLength(a, k.step / 2, k) >= d)) break; + if (k.step /= 2, e && k.step % 1 !== 0) { + k.step *= 2; + break + } + } + if (j++ > 1e3) throw new Error("Exceeded maximum number of iterations while optimizing scale step!") + } + var o = 2.221e-16; + for (k.step = Math.max(k.step, o), h = k.min, i = k.max; h + k.step <= k.low;) h = f(h, k.step); + for (; i - k.step >= k.high;) i = f(i, -k.step); + k.min = h, k.max = i, k.range = k.max - k.min; + var p = []; + for (g = k.min; g <= k.max; g = f(g, k.step)) { + var q = b.roundWithPrecision(g); + q !== p[p.length - 1] && p.push(q) + } + return k.values = p, k + }, b.polarToCartesian = function(a, b, c, d) { + var e = (d - 90) * Math.PI / 180; + return { + x: a + c * Math.cos(e), + y: b + c * Math.sin(e) + } + }, b.createChartRect = function(a, c, d) { + var e = !(!c.axisX && !c.axisY), + f = e ? c.axisY.offset : 0, + g = e ? c.axisX.offset : 0, + h = a.width() || b.quantity(c.width).value || 0, + i = a.height() || b.quantity(c.height).value || 0, + j = b.normalizePadding(c.chartPadding, d); + h = Math.max(h, f + j.left + j.right), i = Math.max(i, g + j.top + j.bottom); + var k = { + padding: j, + width: function() { + return this.x2 - this.x1 + }, + height: function() { + return this.y1 - this.y2 + } + }; + return e ? ("start" === c.axisX.position ? (k.y2 = j.top + g, k.y1 = Math.max(i - j.bottom, k.y2 + 1)) : (k.y2 = j.top, k.y1 = Math.max(i - j.bottom - g, k.y2 + 1)), "start" === c.axisY.position ? (k.x1 = j.left + f, k.x2 = Math.max(h - j.right, k.x1 + 1)) : (k.x1 = j.left, k.x2 = Math.max(h - j.right - f, k.x1 + 1))) : (k.x1 = j.left, k.x2 = Math.max(h - j.right, k.x1 + 1), k.y2 = j.top, k.y1 = Math.max(i - j.bottom, k.y2 + 1)), k + }, b.createGrid = function(a, c, d, e, f, g, h, i) { + var j = {}; + j[d.units.pos + "1"] = a, j[d.units.pos + "2"] = a, j[d.counterUnits.pos + "1"] = e, j[d.counterUnits.pos + "2"] = e + f; + var k = g.elem("line", j, h.join(" ")); + i.emit("draw", b.extend({ + type: "grid", + axis: d, + index: c, + group: g, + element: k + }, j)) + }, b.createGridBackground = function(a, b, c, d) { + var e = a.elem("rect", { + x: b.x1, + y: b.y2, + width: b.width(), + height: b.height() + }, c, !0); + d.emit("draw", { + type: "gridBackground", + group: a, + element: e + }) + }, b.createLabel = function(a, c, e, f, g, h, i, j, k, l, m) { + var n, o = {}; + if (o[g.units.pos] = a + i[g.units.pos], o[g.counterUnits.pos] = i[g.counterUnits.pos], o[g.units.len] = c, o[g.counterUnits.len] = Math.max(0, h - 10), l) { + var p = d.createElement("span"); + p.className = k.join(" "), p.setAttribute("xmlns", b.namespaces.xhtml), p.innerText = f[e], p.style[g.units.len] = Math.round(o[g.units.len]) + "px", p.style[g.counterUnits.len] = Math.round(o[g.counterUnits.len]) + "px", n = j.foreignObject(p, b.extend({ + style: "overflow: visible;" + }, o)) + } else n = j.elem("text", o, k.join(" ")).text(f[e]); + m.emit("draw", b.extend({ + type: "label", + axis: g, + index: e, + group: j, + element: n, + text: f[e] + }, o)) + }, b.getSeriesOption = function(a, b, c) { + if (a.name && b.series && b.series[a.name]) { + var d = b.series[a.name]; + return d.hasOwnProperty(c) ? d[c] : b[c] + } + return b[c] + }, b.optionsProvider = function(a, d, e) { + function f(a) { + var f = h; + if (h = b.extend({}, j), d) + for (i = 0; i < d.length; i++) { + var g = c.matchMedia(d[i][0]); + g.matches && (h = b.extend(h, d[i][1])) + } + e && a && e.emit("optionsChanged", { + previousOptions: f, + currentOptions: h + }) + } + + function g() { + k.forEach(function(a) { + a.removeListener(f) + }) + } + var h, i, j = b.extend({}, a), + k = []; + if (!c.matchMedia) throw "window.matchMedia not found! Make sure you're using a polyfill."; + if (d) + for (i = 0; i < d.length; i++) { + var l = c.matchMedia(d[i][0]); + l.addListener(f), k.push(l) + } + return f(), { + removeMediaQueryListeners: g, + getCurrentOptions: function() { + return b.extend({}, h) + } + } + }, b.splitIntoSegments = function(a, c, d) { + var e = { + increasingX: !1, + fillHoles: !1 + }; + d = b.extend({}, e, d); + for (var f = [], g = !0, h = 0; h < a.length; h += 2) void 0 === b.getMultiValue(c[h / 2].value) ? d.fillHoles || (g = !0) : (d.increasingX && h >= 2 && a[h] <= a[h - 2] && (g = !0), g && (f.push({ + pathCoordinates: [], + valueData: [] + }), g = !1), f[f.length - 1].pathCoordinates.push(a[h], a[h + 1]), f[f.length - 1].valueData.push(c[h / 2])); + return f + } + }(this || global, a), + function(a, b) { + "use strict"; + b.Interpolation = {}, b.Interpolation.none = function(a) { + var c = { + fillHoles: !1 + }; + return a = b.extend({}, c, a), + function(c, d) { + for (var e = new b.Svg.Path, f = !0, g = 0; g < c.length; g += 2) { + var h = c[g], + i = c[g + 1], + j = d[g / 2]; + void 0 !== b.getMultiValue(j.value) ? (f ? e.move(h, i, !1, j) : e.line(h, i, !1, j), f = !1) : a.fillHoles || (f = !0) + } + return e + } + }, b.Interpolation.simple = function(a) { + var c = { + divisor: 2, + fillHoles: !1 + }; + a = b.extend({}, c, a); + var d = 1 / Math.max(1, a.divisor); + return function(c, e) { + for (var f, g, h, i = new b.Svg.Path, j = 0; j < c.length; j += 2) { + var k = c[j], + l = c[j + 1], + m = (k - f) * d, + n = e[j / 2]; + void 0 !== n.value ? (void 0 === h ? i.move(k, l, !1, n) : i.curve(f + m, g, k - m, l, k, l, !1, n), f = k, g = l, h = n) : a.fillHoles || (f = k = h = void 0) + } + return i + } + }, b.Interpolation.cardinal = function(a) { + var c = { + tension: 1, + fillHoles: !1 + }; + a = b.extend({}, c, a); + var d = Math.min(1, Math.max(0, a.tension)), + e = 1 - d; + return function f(c, g) { + var h = b.splitIntoSegments(c, g, { + fillHoles: a.fillHoles + }); + if (h.length) { + if (h.length > 1) { + var i = []; + return h.forEach(function(a) { + i.push(f(a.pathCoordinates, a.valueData)) + }), b.Svg.Path.join(i) + } + if (c = h[0].pathCoordinates, g = h[0].valueData, c.length <= 4) return b.Interpolation.none()(c, g); + for (var j, k = (new b.Svg.Path).move(c[0], c[1], !1, g[0]), l = 0, m = c.length; m - 2 * !j > l; l += 2) { + var n = [{ + x: +c[l - 2], + y: +c[l - 1] + }, { + x: +c[l], + y: +c[l + 1] + }, { + x: +c[l + 2], + y: +c[l + 3] + }, { + x: +c[l + 4], + y: +c[l + 5] + }]; + j ? l ? m - 4 === l ? n[3] = { + x: +c[0], + y: +c[1] + } : m - 2 === l && (n[2] = { + x: +c[0], + y: +c[1] + }, n[3] = { + x: +c[2], + y: +c[3] + }) : n[0] = { + x: +c[m - 2], + y: +c[m - 1] + } : m - 4 === l ? n[3] = n[2] : l || (n[0] = { + x: +c[l], + y: +c[l + 1] + }), k.curve(d * (-n[0].x + 6 * n[1].x + n[2].x) / 6 + e * n[2].x, d * (-n[0].y + 6 * n[1].y + n[2].y) / 6 + e * n[2].y, d * (n[1].x + 6 * n[2].x - n[3].x) / 6 + e * n[2].x, d * (n[1].y + 6 * n[2].y - n[3].y) / 6 + e * n[2].y, n[2].x, n[2].y, !1, g[(l + 2) / 2]) + } + return k + } + return b.Interpolation.none()([]) + } + }, b.Interpolation.monotoneCubic = function(a) { + var c = { + fillHoles: !1 + }; + return a = b.extend({}, c, a), + function d(c, e) { + var f = b.splitIntoSegments(c, e, { + fillHoles: a.fillHoles, + increasingX: !0 + }); + if (f.length) { + if (f.length > 1) { + var g = []; + return f.forEach(function(a) { + g.push(d(a.pathCoordinates, a.valueData)) + }), b.Svg.Path.join(g) + } + if (c = f[0].pathCoordinates, e = f[0].valueData, c.length <= 4) return b.Interpolation.none()(c, e); + var h, i, j = [], + k = [], + l = c.length / 2, + m = [], + n = [], + o = [], + p = []; + for (h = 0; h < l; h++) j[h] = c[2 * h], k[h] = c[2 * h + 1]; + for (h = 0; h < l - 1; h++) o[h] = k[h + 1] - k[h], p[h] = j[h + 1] - j[h], n[h] = o[h] / p[h]; + for (m[0] = n[0], m[l - 1] = n[l - 2], h = 1; h < l - 1; h++) 0 === n[h] || 0 === n[h - 1] || n[h - 1] > 0 != n[h] > 0 ? m[h] = 0 : (m[h] = 3 * (p[h - 1] + p[h]) / ((2 * p[h] + p[h - 1]) / n[h - 1] + (p[h] + 2 * p[h - 1]) / n[h]), isFinite(m[h]) || (m[h] = 0)); + for (i = (new b.Svg.Path).move(j[0], k[0], !1, e[0]), h = 0; h < l - 1; h++) i.curve(j[h] + p[h] / 3, k[h] + m[h] * p[h] / 3, j[h + 1] - p[h] / 3, k[h + 1] - m[h + 1] * p[h] / 3, j[h + 1], k[h + 1], !1, e[h + 1]); + return i + } + return b.Interpolation.none()([]) + } + }, b.Interpolation.step = function(a) { + var c = { + postpone: !0, + fillHoles: !1 + }; + return a = b.extend({}, c, a), + function(c, d) { + for (var e, f, g, h = new b.Svg.Path, i = 0; i < c.length; i += 2) { + var j = c[i], + k = c[i + 1], + l = d[i / 2]; + void 0 !== l.value ? (void 0 === g ? h.move(j, k, !1, l) : (a.postpone ? h.line(j, f, !1, g) : h.line(e, k, !1, l), h.line(j, k, !1, l)), e = j, f = k, g = l) : a.fillHoles || (e = f = g = void 0) + } + return h + } + } + }(this || global, a), + function(a, b) { + "use strict"; + b.EventEmitter = function() { + function a(a, b) { + d[a] = d[a] || [], d[a].push(b) + } + + function b(a, b) { + d[a] && (b ? (d[a].splice(d[a].indexOf(b), 1), 0 === d[a].length && delete d[a]) : delete d[a]) + } + + function c(a, b) { + d[a] && d[a].forEach(function(a) { + a(b) + }), d["*"] && d["*"].forEach(function(c) { + c(a, b) + }) + } + var d = []; + return { + addEventHandler: a, + removeEventHandler: b, + emit: c + } + } + }(this || global, a), + function(a, b) { + "use strict"; + + function c(a) { + var b = []; + if (a.length) + for (var c = 0; c < a.length; c++) b.push(a[c]); + return b + } + + function d(a, c) { + var d = c || this.prototype || b.Class, + e = Object.create(d); + b.Class.cloneDefinitions(e, a); + var f = function() { + var a, c = e.constructor || function() {}; + return a = this === b ? Object.create(e) : this, c.apply(a, Array.prototype.slice.call(arguments, 0)), a + }; + return f.prototype = e, f["super"] = d, f.extend = this.extend, f + } + + function e() { + var a = c(arguments), + b = a[0]; + return a.splice(1, a.length - 1).forEach(function(a) { + Object.getOwnPropertyNames(a).forEach(function(c) { + delete b[c], Object.defineProperty(b, c, Object.getOwnPropertyDescriptor(a, c)) + }) + }), b + } + b.Class = { + extend: d, + cloneDefinitions: e + } + }(this || global, a), + function(a, b) { + "use strict"; + + function c(a, c, d) { + return a && (this.data = a || {}, this.data.labels = this.data.labels || [], this.data.series = this.data.series || [], this.eventEmitter.emit("data", { + type: "update", + data: this.data + })), c && (this.options = b.extend({}, d ? this.options : this.defaultOptions, c), this.initializeTimeoutId || (this.optionsProvider.removeMediaQueryListeners(), this.optionsProvider = b.optionsProvider(this.options, this.responsiveOptions, this.eventEmitter))), this.initializeTimeoutId || this.createChart(this.optionsProvider.getCurrentOptions()), this + } + + function d() { + return this.initializeTimeoutId ? i.clearTimeout(this.initializeTimeoutId) : (i.removeEventListener("resize", this.resizeListener), this.optionsProvider.removeMediaQueryListeners()), this + } + + function e(a, b) { + return this.eventEmitter.addEventHandler(a, b), this + } + + function f(a, b) { + return this.eventEmitter.removeEventHandler(a, b), this + } + + function g() { + i.addEventListener("resize", this.resizeListener), this.optionsProvider = b.optionsProvider(this.options, this.responsiveOptions, this.eventEmitter), this.eventEmitter.addEventHandler("optionsChanged", function() { + this.update() + }.bind(this)), this.options.plugins && this.options.plugins.forEach(function(a) { + a instanceof Array ? a[0](this, a[1]) : a(this) + }.bind(this)), this.eventEmitter.emit("data", { + type: "initial", + data: this.data + }), this.createChart(this.optionsProvider.getCurrentOptions()), this.initializeTimeoutId = void 0 + } + + function h(a, c, d, e, f) { + this.container = b.querySelector(a), this.data = c || {}, this.data.labels = this.data.labels || [], this.data.series = this.data.series || [], this.defaultOptions = d, this.options = e, this.responsiveOptions = f, this.eventEmitter = b.EventEmitter(), this.supportsForeignObject = b.Svg.isSupported("Extensibility"), this.supportsAnimations = b.Svg.isSupported("AnimationEventsAttribute"), this.resizeListener = function() { + this.update() + }.bind(this), this.container && (this.container.__chartist__ && this.container.__chartist__.detach(), this.container.__chartist__ = this), this.initializeTimeoutId = setTimeout(g.bind(this), 0) + } + var i = a.window; + b.Base = b.Class.extend({ + constructor: h, + optionsProvider: void 0, + container: void 0, + svg: void 0, + eventEmitter: void 0, + createChart: function() { + throw new Error("Base chart type can't be instantiated!") + }, + update: c, + detach: d, + on: e, + off: f, + version: b.version, + supportsForeignObject: !1 + }) + }(this || global, a), + function(a, b) { + "use strict"; + + function c(a, c, d, e, f) { + a instanceof Element ? this._node = a : (this._node = y.createElementNS(b.namespaces.svg, a), "svg" === a && this.attr({ + "xmlns:ct": b.namespaces.ct + })), c && this.attr(c), d && this.addClass(d), e && (f && e._node.firstChild ? e._node.insertBefore(this._node, e._node.firstChild) : e._node.appendChild(this._node)) + } + + function d(a, c) { + return "string" == typeof a ? c ? this._node.getAttributeNS(c, a) : this._node.getAttribute(a) : (Object.keys(a).forEach(function(c) { + if (void 0 !== a[c]) + if (c.indexOf(":") !== -1) { + var d = c.split(":"); + this._node.setAttributeNS(b.namespaces[d[0]], c, a[c]) + } else this._node.setAttribute(c, a[c]) + }.bind(this)), this) + } + + function e(a, c, d, e) { + return new b.Svg(a, c, d, this, e) + } + + function f() { + return this._node.parentNode instanceof SVGElement ? new b.Svg(this._node.parentNode) : null + } + + function g() { + for (var a = this._node; + "svg" !== a.nodeName;) a = a.parentNode; + return new b.Svg(a) + } + + function h(a) { + var c = this._node.querySelector(a); + return c ? new b.Svg(c) : null + } + + function i(a) { + var c = this._node.querySelectorAll(a); + return c.length ? new b.Svg.List(c) : null + } + + function j() { + return this._node + } + + function k(a, c, d, e) { + if ("string" == typeof a) { + var f = y.createElement("div"); + f.innerHTML = a, a = f.firstChild + } + a.setAttribute("xmlns", b.namespaces.xmlns); + var g = this.elem("foreignObject", c, d, e); + return g._node.appendChild(a), g + } + + function l(a) { + return this._node.appendChild(y.createTextNode(a)), this + } + + function m() { + for (; this._node.firstChild;) this._node.removeChild(this._node.firstChild); + return this + } + + function n() { + return this._node.parentNode.removeChild(this._node), this.parent() + } + + function o(a) { + return this._node.parentNode.replaceChild(a._node, this._node), a + } + + function p(a, b) { + return b && this._node.firstChild ? this._node.insertBefore(a._node, this._node.firstChild) : this._node.appendChild(a._node), this + } + + function q() { + return this._node.getAttribute("class") ? this._node.getAttribute("class").trim().split(/\s+/) : [] + } + + function r(a) { + return this._node.setAttribute("class", this.classes(this._node).concat(a.trim().split(/\s+/)).filter(function(a, b, c) { + return c.indexOf(a) === b + }).join(" ")), this + } + + function s(a) { + var b = a.trim().split(/\s+/); + return this._node.setAttribute("class", this.classes(this._node).filter(function(a) { + return b.indexOf(a) === -1 + }).join(" ")), this + } + + function t() { + return this._node.setAttribute("class", ""), this + } + + function u() { + return this._node.getBoundingClientRect().height + } + + function v() { + return this._node.getBoundingClientRect().width + } + + function w(a, c, d) { + return void 0 === c && (c = !0), Object.keys(a).forEach(function(e) { + function f(a, c) { + var f, g, h, i = {}; + a.easing && (h = a.easing instanceof Array ? a.easing : b.Svg.Easing[a.easing], delete a.easing), a.begin = b.ensureUnit(a.begin, "ms"), a.dur = b.ensureUnit(a.dur, "ms"), h && (a.calcMode = "spline", a.keySplines = h.join(" "), a.keyTimes = "0;1"), c && (a.fill = "freeze", i[e] = a.from, this.attr(i), g = b.quantity(a.begin || 0).value, a.begin = "indefinite"), f = this.elem("animate", b.extend({ + attributeName: e + }, a)), c && setTimeout(function() { + try { + f._node.beginElement() + } catch (b) { + i[e] = a.to, this.attr(i), f.remove() + } + }.bind(this), g), d && f._node.addEventListener("beginEvent", function() { + d.emit("animationBegin", { + element: this, + animate: f._node, + params: a + }) + }.bind(this)), f._node.addEventListener("endEvent", function() { + d && d.emit("animationEnd", { + element: this, + animate: f._node, + params: a + }), c && (i[e] = a.to, this.attr(i), f.remove()) + }.bind(this)) + } + a[e] instanceof Array ? a[e].forEach(function(a) { + f.bind(this)(a, !1) + }.bind(this)) : f.bind(this)(a[e], c) + }.bind(this)), this + } + + function x(a) { + var c = this; + this.svgElements = []; + for (var d = 0; d < a.length; d++) this.svgElements.push(new b.Svg(a[d])); + Object.keys(b.Svg.prototype).filter(function(a) { + return ["constructor", "parent", "querySelector", "querySelectorAll", "replace", "append", "classes", "height", "width"].indexOf(a) === -1 + }).forEach(function(a) { + c[a] = function() { + var d = Array.prototype.slice.call(arguments, 0); + return c.svgElements.forEach(function(c) { + b.Svg.prototype[a].apply(c, d) + }), c + } + }) + } + var y = a.document; + b.Svg = b.Class.extend({ + constructor: c, + attr: d, + elem: e, + parent: f, + root: g, + querySelector: h, + querySelectorAll: i, + getNode: j, + foreignObject: k, + text: l, + empty: m, + remove: n, + replace: o, + append: p, + classes: q, + addClass: r, + removeClass: s, + removeAllClasses: t, + height: u, + width: v, + animate: w + }), b.Svg.isSupported = function(a) { + return y.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#" + a, "1.1") + }; + var z = { + easeInSine: [.47, 0, .745, .715], + easeOutSine: [.39, .575, .565, 1], + easeInOutSine: [.445, .05, .55, .95], + easeInQuad: [.55, .085, .68, .53], + easeOutQuad: [.25, .46, .45, .94], + easeInOutQuad: [.455, .03, .515, .955], + easeInCubic: [.55, .055, .675, .19], + easeOutCubic: [.215, .61, .355, 1], + easeInOutCubic: [.645, .045, .355, 1], + easeInQuart: [.895, .03, .685, .22], + easeOutQuart: [.165, .84, .44, 1], + easeInOutQuart: [.77, 0, .175, 1], + easeInQuint: [.755, .05, .855, .06], + easeOutQuint: [.23, 1, .32, 1], + easeInOutQuint: [.86, 0, .07, 1], + easeInExpo: [.95, .05, .795, .035], + easeOutExpo: [.19, 1, .22, 1], + easeInOutExpo: [1, 0, 0, 1], + easeInCirc: [.6, .04, .98, .335], + easeOutCirc: [.075, .82, .165, 1], + easeInOutCirc: [.785, .135, .15, .86], + easeInBack: [.6, -.28, .735, .045], + easeOutBack: [.175, .885, .32, 1.275], + easeInOutBack: [.68, -.55, .265, 1.55] + }; + b.Svg.Easing = z, b.Svg.List = b.Class.extend({ + constructor: x + }) + }(this || global, a), + function(a, b) { + "use strict"; + + function c(a, c, d, e, f, g) { + var h = b.extend({ + command: f ? a.toLowerCase() : a.toUpperCase() + }, c, g ? { + data: g + } : {}); + d.splice(e, 0, h) + } + + function d(a, b) { + a.forEach(function(c, d) { + t[c.command.toLowerCase()].forEach(function(e, f) { + b(c, e, d, f, a) + }) + }) + } + + function e(a, c) { + this.pathElements = [], this.pos = 0, this.close = a, this.options = b.extend({}, u, c) + } + + function f(a) { + return void 0 !== a ? (this.pos = Math.max(0, Math.min(this.pathElements.length, a)), this) : this.pos + } + + function g(a) { + return this.pathElements.splice(this.pos, a), this + } + + function h(a, b, d, e) { + return c("M", { + x: +a, + y: +b + }, this.pathElements, this.pos++, d, e), this + } + + function i(a, b, d, e) { + return c("L", { + x: +a, + y: +b + }, this.pathElements, this.pos++, d, e), this + } + + function j(a, b, d, e, f, g, h, i) { + return c("C", { + x1: +a, + y1: +b, + x2: +d, + y2: +e, + x: +f, + y: +g + }, this.pathElements, this.pos++, h, i), this + } + + function k(a, b, d, e, f, g, h, i, j) { + return c("A", { + rx: +a, + ry: +b, + xAr: +d, + lAf: +e, + sf: +f, + x: +g, + y: +h + }, this.pathElements, this.pos++, i, j), this + } + + function l(a) { + var c = a.replace(/([A-Za-z])([0-9])/g, "$1 $2").replace(/([0-9])([A-Za-z])/g, "$1 $2").split(/[\s,]+/).reduce(function(a, b) { + return b.match(/[A-Za-z]/) && a.push([]), a[a.length - 1].push(b), a + }, []); + "Z" === c[c.length - 1][0].toUpperCase() && c.pop(); + var d = c.map(function(a) { + var c = a.shift(), + d = t[c.toLowerCase()]; + return b.extend({ + command: c + }, d.reduce(function(b, c, d) { + return b[c] = +a[d], b + }, {})) + }), + e = [this.pos, 0]; + return Array.prototype.push.apply(e, d), Array.prototype.splice.apply(this.pathElements, e), this.pos += d.length, this + } + + function m() { + var a = Math.pow(10, this.options.accuracy); + return this.pathElements.reduce(function(b, c) { + var d = t[c.command.toLowerCase()].map(function(b) { + return this.options.accuracy ? Math.round(c[b] * a) / a : c[b] + }.bind(this)); + return b + c.command + d.join(",") + }.bind(this), "") + (this.close ? "Z" : "") + } + + function n(a, b) { + return d(this.pathElements, function(c, d) { + c[d] *= "x" === d[0] ? a : b + }), this + } + + function o(a, b) { + return d(this.pathElements, function(c, d) { + c[d] += "x" === d[0] ? a : b + }), this + } + + function p(a) { + return d(this.pathElements, function(b, c, d, e, f) { + var g = a(b, c, d, e, f); + (g || 0 === g) && (b[c] = g) + }), this + } + + function q(a) { + var c = new b.Svg.Path(a || this.close); + return c.pos = this.pos, c.pathElements = this.pathElements.slice().map(function(a) { + return b.extend({}, a) + }), c.options = b.extend({}, this.options), c + } + + function r(a) { + var c = [new b.Svg.Path]; + return this.pathElements.forEach(function(d) { + d.command === a.toUpperCase() && 0 !== c[c.length - 1].pathElements.length && c.push(new b.Svg.Path), c[c.length - 1].pathElements.push(d) + }), c + } + + function s(a, c, d) { + for (var e = new b.Svg.Path(c, d), f = 0; f < a.length; f++) + for (var g = a[f], h = 0; h < g.pathElements.length; h++) e.pathElements.push(g.pathElements[h]); + return e + } + var t = { + m: ["x", "y"], + l: ["x", "y"], + c: ["x1", "y1", "x2", "y2", "x", "y"], + a: ["rx", "ry", "xAr", "lAf", "sf", "x", "y"] + }, + u = { + accuracy: 3 + }; + b.Svg.Path = b.Class.extend({ + constructor: e, + position: f, + remove: g, + move: h, + line: i, + curve: j, + arc: k, + scale: n, + translate: o, + transform: p, + parse: l, + stringify: m, + clone: q, + splitByCommand: r + }), b.Svg.Path.elementDescriptions = t, b.Svg.Path.join = s + }(this || global, a), + function(a, b) { + "use strict"; + + function c(a, b, c, d) { + this.units = a, this.counterUnits = a === e.x ? e.y : e.x, this.chartRect = b, this.axisLength = b[a.rectEnd] - b[a.rectStart], this.gridOffset = b[a.rectOffset], this.ticks = c, this.options = d + } + + function d(a, c, d, e, f) { + var g = e["axis" + this.units.pos.toUpperCase()], + h = this.ticks.map(this.projectValue.bind(this)), + i = this.ticks.map(g.labelInterpolationFnc); + h.forEach(function(j, k) { + var l, m = { + x: 0, + y: 0 + }; + l = h[k + 1] ? h[k + 1] - j : Math.max(this.axisLength - j, 30), b.isFalseyButZero(i[k]) && "" !== i[k] || ("x" === this.units.pos ? (j = this.chartRect.x1 + j, m.x = e.axisX.labelOffset.x, "start" === e.axisX.position ? m.y = this.chartRect.padding.top + e.axisX.labelOffset.y + (d ? 5 : 20) : m.y = this.chartRect.y1 + e.axisX.labelOffset.y + (d ? 5 : 20)) : (j = this.chartRect.y1 - j, m.y = e.axisY.labelOffset.y - (d ? l : 0), "start" === e.axisY.position ? m.x = d ? this.chartRect.padding.left + e.axisY.labelOffset.x : this.chartRect.x1 - 10 : m.x = this.chartRect.x2 + e.axisY.labelOffset.x + 10), g.showGrid && b.createGrid(j, k, this, this.gridOffset, this.chartRect[this.counterUnits.len](), a, [e.classNames.grid, e.classNames[this.units.dir]], f), g.showLabel && b.createLabel(j, l, k, i, this, g.offset, m, c, [e.classNames.label, e.classNames[this.units.dir], "start" === g.position ? e.classNames[g.position] : e.classNames.end], d, f)) + }.bind(this)) + } + var e = (a.window, a.document, { + x: { + pos: "x", + len: "width", + dir: "horizontal", + rectStart: "x1", + rectEnd: "x2", + rectOffset: "y2" + }, + y: { + pos: "y", + len: "height", + dir: "vertical", + rectStart: "y2", + rectEnd: "y1", + rectOffset: "x1" + } + }); + b.Axis = b.Class.extend({ + constructor: c, + createGridAndLabels: d, + projectValue: function(a, b, c) { + throw new Error("Base axis can't be instantiated!") + } + }), b.Axis.units = e + }(this || global, a), + function(a, b) { + "use strict"; + + function c(a, c, d, e) { + var f = e.highLow || b.getHighLow(c, e, a.pos); + this.bounds = b.getBounds(d[a.rectEnd] - d[a.rectStart], f, e.scaleMinSpace || 20, e.onlyInteger), this.range = { + min: this.bounds.min, + max: this.bounds.max + }, b.AutoScaleAxis["super"].constructor.call(this, a, d, this.bounds.values, e) + } + + function d(a) { + return this.axisLength * (+b.getMultiValue(a, this.units.pos) - this.bounds.min) / this.bounds.range + } + a.window, a.document; + b.AutoScaleAxis = b.Axis.extend({ + constructor: c, + projectValue: d + }) + }(this || global, a), + function(a, b) { + "use strict"; + + function c(a, c, d, e) { + var f = e.highLow || b.getHighLow(c, e, a.pos); + this.divisor = e.divisor || 1, this.ticks = e.ticks || b.times(this.divisor).map(function(a, b) { + return f.low + (f.high - f.low) / this.divisor * b + }.bind(this)), this.ticks.sort(function(a, b) { + return a - b + }), this.range = { + min: f.low, + max: f.high + }, b.FixedScaleAxis["super"].constructor.call(this, a, d, this.ticks, e), this.stepLength = this.axisLength / this.divisor + } + + function d(a) { + return this.axisLength * (+b.getMultiValue(a, this.units.pos) - this.range.min) / (this.range.max - this.range.min) + } + a.window, a.document; + b.FixedScaleAxis = b.Axis.extend({ + constructor: c, + projectValue: d + }) + }(this || global, a), + function(a, b) { + "use strict"; + + function c(a, c, d, e) { + b.StepAxis["super"].constructor.call(this, a, d, e.ticks, e); + var f = Math.max(1, e.ticks.length - (e.stretch ? 1 : 0)); + this.stepLength = this.axisLength / f + } + + function d(a, b) { + return this.stepLength * b + } + a.window, a.document; + b.StepAxis = b.Axis.extend({ + constructor: c, + projectValue: d + }) + }(this || global, a), + function(a, b) { + "use strict"; + + function c(a) { + var c = b.normalizeData(this.data, a.reverseData, !0); + this.svg = b.createSvg(this.container, a.width, a.height, a.classNames.chart); + var d, f, g = this.svg.elem("g").addClass(a.classNames.gridGroup), + h = this.svg.elem("g"), + i = this.svg.elem("g").addClass(a.classNames.labelGroup), + j = b.createChartRect(this.svg, a, e.padding); + d = void 0 === a.axisX.type ? new b.StepAxis(b.Axis.units.x, c.normalized.series, j, b.extend({}, a.axisX, { + ticks: c.normalized.labels, + stretch: a.fullWidth + })) : a.axisX.type.call(b, b.Axis.units.x, c.normalized.series, j, a.axisX), f = void 0 === a.axisY.type ? new b.AutoScaleAxis(b.Axis.units.y, c.normalized.series, j, b.extend({}, a.axisY, { + high: b.isNumeric(a.high) ? a.high : a.axisY.high, + low: b.isNumeric(a.low) ? a.low : a.axisY.low + })) : a.axisY.type.call(b, b.Axis.units.y, c.normalized.series, j, a.axisY), d.createGridAndLabels(g, i, this.supportsForeignObject, a, this.eventEmitter), f.createGridAndLabels(g, i, this.supportsForeignObject, a, this.eventEmitter), a.showGridBackground && b.createGridBackground(g, j, a.classNames.gridBackground, this.eventEmitter), c.raw.series.forEach(function(e, g) { + var i = h.elem("g"); + i.attr({ + "ct:series-name": e.name, + "ct:meta": b.serialize(e.meta) + }), i.addClass([a.classNames.series, e.className || a.classNames.series + "-" + b.alphaNumerate(g)].join(" ")); + var k = [], + l = []; + c.normalized.series[g].forEach(function(a, h) { + var i = { + x: j.x1 + d.projectValue(a, h, c.normalized.series[g]), + y: j.y1 - f.projectValue(a, h, c.normalized.series[g]) + }; + k.push(i.x, i.y), l.push({ + value: a, + valueIndex: h, + meta: b.getMetaData(e, h) + }) + }.bind(this)); + var m = { + lineSmooth: b.getSeriesOption(e, a, "lineSmooth"), + showPoint: b.getSeriesOption(e, a, "showPoint"), + showLine: b.getSeriesOption(e, a, "showLine"), + showArea: b.getSeriesOption(e, a, "showArea"), + areaBase: b.getSeriesOption(e, a, "areaBase") + }, + n = "function" == typeof m.lineSmooth ? m.lineSmooth : m.lineSmooth ? b.Interpolation.monotoneCubic() : b.Interpolation.none(), + o = n(k, l); + if (m.showPoint && o.pathElements.forEach(function(c) { + var h = i.elem("line", { + x1: c.x, + y1: c.y, + x2: c.x + .01, + y2: c.y + }, a.classNames.point).attr({ + "ct:value": [c.data.value.x, c.data.value.y].filter(b.isNumeric).join(","), + "ct:meta": b.serialize(c.data.meta) + }); + this.eventEmitter.emit("draw", { + type: "point", + value: c.data.value, + index: c.data.valueIndex, + meta: c.data.meta, + series: e, + seriesIndex: g, + axisX: d, + axisY: f, + group: i, + element: h, + x: c.x, + y: c.y + }) + }.bind(this)), m.showLine) { + var p = i.elem("path", { + d: o.stringify() + }, a.classNames.line, !0); + this.eventEmitter.emit("draw", { + type: "line", + values: c.normalized.series[g], + path: o.clone(), + chartRect: j, + index: g, + series: e, + seriesIndex: g, + seriesMeta: e.meta, + axisX: d, + axisY: f, + group: i, + element: p + }) + } + if (m.showArea && f.range) { + var q = Math.max(Math.min(m.areaBase, f.range.max), f.range.min), + r = j.y1 - f.projectValue(q); + o.splitByCommand("M").filter(function(a) { + return a.pathElements.length > 1 + }).map(function(a) { + var b = a.pathElements[0], + c = a.pathElements[a.pathElements.length - 1]; + return a.clone(!0).position(0).remove(1).move(b.x, r).line(b.x, b.y).position(a.pathElements.length + 1).line(c.x, r) + }).forEach(function(b) { + var h = i.elem("path", { + d: b.stringify() + }, a.classNames.area, !0); + this.eventEmitter.emit("draw", { + type: "area", + values: c.normalized.series[g], + path: b.clone(), + series: e, + seriesIndex: g, + axisX: d, + axisY: f, + chartRect: j, + index: g, + group: i, + element: h + }) + }.bind(this)) + } + }.bind(this)), this.eventEmitter.emit("created", { + bounds: f.bounds, + chartRect: j, + axisX: d, + axisY: f, + svg: this.svg, + options: a + }) + } + + function d(a, c, d, f) { + b.Line["super"].constructor.call(this, a, c, e, b.extend({}, e, d), f) + } + var e = (a.window, a.document, { + axisX: { + offset: 30, + position: "end", + labelOffset: { + x: 0, + y: 0 + }, + showLabel: !0, + showGrid: !0, + labelInterpolationFnc: b.noop, + type: void 0 + }, + axisY: { + offset: 40, + position: "start", + labelOffset: { + x: 0, + y: 0 + }, + showLabel: !0, + showGrid: !0, + labelInterpolationFnc: b.noop, + type: void 0, + scaleMinSpace: 20, + onlyInteger: !1 + }, + width: void 0, + height: void 0, + showLine: !0, + showPoint: !0, + showArea: !1, + areaBase: 0, + lineSmooth: !0, + showGridBackground: !1, + low: void 0, + high: void 0, + chartPadding: { + top: 15, + right: 15, + bottom: 5, + left: 10 + }, + fullWidth: !1, + reverseData: !1, + classNames: { + chart: "ct-chart-line", + label: "ct-label", + labelGroup: "ct-labels", + series: "ct-series", + line: "ct-line", + point: "ct-point", + area: "ct-area", + grid: "ct-grid", + gridGroup: "ct-grids", + gridBackground: "ct-grid-background", + vertical: "ct-vertical", + horizontal: "ct-horizontal", + start: "ct-start", + end: "ct-end" + } + }); + b.Line = b.Base.extend({ + constructor: d, + createChart: c + }) + }(this || global, a), + function(a, b) { + "use strict"; + + function c(a) { + var c, d; + a.distributeSeries ? (c = b.normalizeData(this.data, a.reverseData, a.horizontalBars ? "x" : "y"), c.normalized.series = c.normalized.series.map(function(a) { + return [a] + })) : c = b.normalizeData(this.data, a.reverseData, a.horizontalBars ? "x" : "y"), this.svg = b.createSvg(this.container, a.width, a.height, a.classNames.chart + (a.horizontalBars ? " " + a.classNames.horizontalBars : "")); + var f = this.svg.elem("g").addClass(a.classNames.gridGroup), + g = this.svg.elem("g"), + h = this.svg.elem("g").addClass(a.classNames.labelGroup); + if (a.stackBars && 0 !== c.normalized.series.length) { + var i = b.serialMap(c.normalized.series, function() { + return Array.prototype.slice.call(arguments).map(function(a) { + return a + }).reduce(function(a, b) { + return { + x: a.x + (b && b.x) || 0, + y: a.y + (b && b.y) || 0 + } + }, { + x: 0, + y: 0 + }) + }); + d = b.getHighLow([i], a, a.horizontalBars ? "x" : "y") + } else d = b.getHighLow(c.normalized.series, a, a.horizontalBars ? "x" : "y"); + d.high = +a.high || (0 === a.high ? 0 : d.high), d.low = +a.low || (0 === a.low ? 0 : d.low); + var j, k, l, m, n, o = b.createChartRect(this.svg, a, e.padding); + k = a.distributeSeries && a.stackBars ? c.normalized.labels.slice(0, 1) : c.normalized.labels, a.horizontalBars ? (j = m = void 0 === a.axisX.type ? new b.AutoScaleAxis(b.Axis.units.x, c.normalized.series, o, b.extend({}, a.axisX, { + highLow: d, + referenceValue: 0 + })) : a.axisX.type.call(b, b.Axis.units.x, c.normalized.series, o, b.extend({}, a.axisX, { + highLow: d, + referenceValue: 0 + })), l = n = void 0 === a.axisY.type ? new b.StepAxis(b.Axis.units.y, c.normalized.series, o, { + ticks: k + }) : a.axisY.type.call(b, b.Axis.units.y, c.normalized.series, o, a.axisY)) : (l = m = void 0 === a.axisX.type ? new b.StepAxis(b.Axis.units.x, c.normalized.series, o, { + ticks: k + }) : a.axisX.type.call(b, b.Axis.units.x, c.normalized.series, o, a.axisX), j = n = void 0 === a.axisY.type ? new b.AutoScaleAxis(b.Axis.units.y, c.normalized.series, o, b.extend({}, a.axisY, { + highLow: d, + referenceValue: 0 + })) : a.axisY.type.call(b, b.Axis.units.y, c.normalized.series, o, b.extend({}, a.axisY, { + highLow: d, + referenceValue: 0 + }))); + var p = a.horizontalBars ? o.x1 + j.projectValue(0) : o.y1 - j.projectValue(0), + q = []; + l.createGridAndLabels(f, h, this.supportsForeignObject, a, this.eventEmitter), j.createGridAndLabels(f, h, this.supportsForeignObject, a, this.eventEmitter), a.showGridBackground && b.createGridBackground(f, o, a.classNames.gridBackground, this.eventEmitter), c.raw.series.forEach(function(d, e) { + var f, h, i = e - (c.raw.series.length - 1) / 2; + f = a.distributeSeries && !a.stackBars ? l.axisLength / c.normalized.series.length / 2 : a.distributeSeries && a.stackBars ? l.axisLength / 2 : l.axisLength / c.normalized.series[e].length / 2, h = g.elem("g"), h.attr({ + "ct:series-name": d.name, + "ct:meta": b.serialize(d.meta) + }), h.addClass([a.classNames.series, d.className || a.classNames.series + "-" + b.alphaNumerate(e)].join(" ")), c.normalized.series[e].forEach(function(g, k) { + var r, s, t, u; + if (u = a.distributeSeries && !a.stackBars ? e : a.distributeSeries && a.stackBars ? 0 : k, r = a.horizontalBars ? { + x: o.x1 + j.projectValue(g && g.x ? g.x : 0, k, c.normalized.series[e]), + y: o.y1 - l.projectValue(g && g.y ? g.y : 0, u, c.normalized.series[e]) + } : { + x: o.x1 + l.projectValue(g && g.x ? g.x : 0, u, c.normalized.series[e]), + y: o.y1 - j.projectValue(g && g.y ? g.y : 0, k, c.normalized.series[e]) + }, l instanceof b.StepAxis && (l.options.stretch || (r[l.units.pos] += f * (a.horizontalBars ? -1 : 1)), r[l.units.pos] += a.stackBars || a.distributeSeries ? 0 : i * a.seriesBarDistance * (a.horizontalBars ? -1 : 1)), t = q[k] || p, q[k] = t - (p - r[l.counterUnits.pos]), void 0 !== g) { + var v = {}; + v[l.units.pos + "1"] = r[l.units.pos], v[l.units.pos + "2"] = r[l.units.pos], !a.stackBars || "accumulate" !== a.stackMode && a.stackMode ? (v[l.counterUnits.pos + "1"] = p, v[l.counterUnits.pos + "2"] = r[l.counterUnits.pos]) : (v[l.counterUnits.pos + "1"] = t, v[l.counterUnits.pos + "2"] = q[k]), v.x1 = Math.min(Math.max(v.x1, o.x1), o.x2), v.x2 = Math.min(Math.max(v.x2, o.x1), o.x2), v.y1 = Math.min(Math.max(v.y1, o.y2), o.y1), v.y2 = Math.min(Math.max(v.y2, o.y2), o.y1); + var w = b.getMetaData(d, k); + s = h.elem("line", v, a.classNames.bar).attr({ + "ct:value": [g.x, g.y].filter(b.isNumeric).join(","), + "ct:meta": b.serialize(w) + }), this.eventEmitter.emit("draw", b.extend({ + type: "bar", + value: g, + index: k, + meta: w, + series: d, + seriesIndex: e, + axisX: m, + axisY: n, + chartRect: o, + group: h, + element: s + }, v)) + } + }.bind(this)) + }.bind(this)), this.eventEmitter.emit("created", { + bounds: j.bounds, + chartRect: o, + axisX: m, + axisY: n, + svg: this.svg, + options: a + }) + } + + function d(a, c, d, f) { + b.Bar["super"].constructor.call(this, a, c, e, b.extend({}, e, d), f) + } + var e = (a.window, a.document, { + axisX: { + offset: 30, + position: "end", + labelOffset: { + x: 0, + y: 0 + }, + showLabel: !0, + showGrid: !0, + labelInterpolationFnc: b.noop, + scaleMinSpace: 30, + onlyInteger: !1 + }, + axisY: { + offset: 40, + position: "start", + labelOffset: { + x: 0, + y: 0 + }, + showLabel: !0, + showGrid: !0, + labelInterpolationFnc: b.noop, + scaleMinSpace: 20, + onlyInteger: !1 + }, + width: void 0, + height: void 0, + high: void 0, + low: void 0, + referenceValue: 0, + chartPadding: { + top: 15, + right: 15, + bottom: 5, + left: 10 + }, + seriesBarDistance: 15, + stackBars: !1, + stackMode: "accumulate", + horizontalBars: !1, + distributeSeries: !1, + reverseData: !1, + showGridBackground: !1, + classNames: { + chart: "ct-chart-bar", + horizontalBars: "ct-horizontal-bars", + label: "ct-label", + labelGroup: "ct-labels", + series: "ct-series", + bar: "ct-bar", + grid: "ct-grid", + gridGroup: "ct-grids", + gridBackground: "ct-grid-background", + vertical: "ct-vertical", + horizontal: "ct-horizontal", + start: "ct-start", + end: "ct-end" + } + }); + b.Bar = b.Base.extend({ + constructor: d, + createChart: c + }) + }(this || global, a), + function(a, b) { + "use strict"; + + function c(a, b, c) { + var d = b.x > a.x; + return d && "explode" === c || !d && "implode" === c ? "start" : d && "implode" === c || !d && "explode" === c ? "end" : "middle" + } + + function d(a) { + var d, e, g, h, i, j = b.normalizeData(this.data), + k = [], + l = a.startAngle; + this.svg = b.createSvg(this.container, a.width, a.height, a.donut ? a.classNames.chartDonut : a.classNames.chartPie), e = b.createChartRect(this.svg, a, f.padding), g = Math.min(e.width() / 2, e.height() / 2), i = a.total || j.normalized.series.reduce(function(a, b) { + return a + b + }, 0); + var m = b.quantity(a.donutWidth); + "%" === m.unit && (m.value *= g / 100), g -= a.donut && !a.donutSolid ? m.value / 2 : 0, h = "outside" === a.labelPosition || a.donut && !a.donutSolid ? g : "center" === a.labelPosition ? 0 : a.donutSolid ? g - m.value / 2 : g / 2, h += a.labelOffset; + var n = { + x: e.x1 + e.width() / 2, + y: e.y2 + e.height() / 2 + }, + o = 1 === j.raw.series.filter(function(a) { + return a.hasOwnProperty("value") ? 0 !== a.value : 0 !== a + }).length; + j.raw.series.forEach(function(a, b) { + k[b] = this.svg.elem("g", null, null) + }.bind(this)), a.showLabel && (d = this.svg.elem("g", null, null)), j.raw.series.forEach(function(e, f) { + if (0 !== j.normalized.series[f] || !a.ignoreEmptyValues) { + k[f].attr({ + "ct:series-name": e.name + }), k[f].addClass([a.classNames.series, e.className || a.classNames.series + "-" + b.alphaNumerate(f)].join(" ")); + var p = i > 0 ? l + j.normalized.series[f] / i * 360 : 0, + q = Math.max(0, l - (0 === f || o ? 0 : .2)); + p - q >= 359.99 && (p = q + 359.99); + var r, s, t, u = b.polarToCartesian(n.x, n.y, g, q), + v = b.polarToCartesian(n.x, n.y, g, p), + w = new b.Svg.Path(!a.donut || a.donutSolid).move(v.x, v.y).arc(g, g, 0, p - l > 180, 0, u.x, u.y); + a.donut ? a.donutSolid && (t = g - m.value, r = b.polarToCartesian(n.x, n.y, t, l - (0 === f || o ? 0 : .2)), s = b.polarToCartesian(n.x, n.y, t, p), w.line(r.x, r.y), w.arc(t, t, 0, p - l > 180, 1, s.x, s.y)) : w.line(n.x, n.y); + var x = a.classNames.slicePie; + a.donut && (x = a.classNames.sliceDonut, a.donutSolid && (x = a.classNames.sliceDonutSolid)); + var y = k[f].elem("path", { + d: w.stringify() + }, x); + if (y.attr({ + "ct:value": j.normalized.series[f], + "ct:meta": b.serialize(e.meta) + }), a.donut && !a.donutSolid && (y._node.style.strokeWidth = m.value + "px"), this.eventEmitter.emit("draw", { + type: "slice", + value: j.normalized.series[f], + totalDataSum: i, + index: f, + meta: e.meta, + series: e, + group: k[f], + element: y, + path: w.clone(), + center: n, + radius: g, + startAngle: l, + endAngle: p + }), a.showLabel) { + var z; + z = 1 === j.raw.series.length ? { + x: n.x, + y: n.y + } : b.polarToCartesian(n.x, n.y, h, l + (p - l) / 2); + var A; + A = j.normalized.labels && !b.isFalseyButZero(j.normalized.labels[f]) ? j.normalized.labels[f] : j.normalized.series[f]; + var B = a.labelInterpolationFnc(A, f); + if (B || 0 === B) { + var C = d.elem("text", { + dx: z.x, + dy: z.y, + "text-anchor": c(n, z, a.labelDirection) + }, a.classNames.label).text("" + B); + this.eventEmitter.emit("draw", { + type: "label", + index: f, + group: d, + element: C, + text: "" + B, + x: z.x, + y: z.y + }) + } + } + l = p + } + }.bind(this)), this.eventEmitter.emit("created", { + chartRect: e, + svg: this.svg, + options: a + }) + } + + function e(a, c, d, e) { + b.Pie["super"].constructor.call(this, a, c, f, b.extend({}, f, d), e) + } + var f = (a.window, a.document, { + width: void 0, + height: void 0, + chartPadding: 5, + classNames: { + chartPie: "ct-chart-pie", + chartDonut: "ct-chart-donut", + series: "ct-series", + slicePie: "ct-slice-pie", + sliceDonut: "ct-slice-donut", + sliceDonutSolid: "ct-slice-donut-solid", + label: "ct-label" + }, + startAngle: 0, + total: void 0, + donut: !1, + donutSolid: !1, + donutWidth: 60, + showLabel: !0, + labelOffset: 0, + labelPosition: "inside", + labelInterpolationFnc: b.noop, + labelDirection: "neutral", + reverseData: !1, + ignoreEmptyValues: !1 + }); + b.Pie = b.Base.extend({ + constructor: e, + createChart: d, + determineAnchorPosition: c + }) + }(this || global, a), a +});
\ No newline at end of file diff --git a/base_accounting_kit/static/lib/font-awesome-animation.min.css b/base_accounting_kit/static/lib/font-awesome-animation.min.css new file mode 100644 index 0000000..e83f318 --- /dev/null +++ b/base_accounting_kit/static/lib/font-awesome-animation.min.css @@ -0,0 +1 @@ +@-webkit-keyframes wrench{0%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}8%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}10%{-webkit-transform:rotate(24deg);transform:rotate(24deg)}18%{-webkit-transform:rotate(-24deg);transform:rotate(-24deg)}20%{-webkit-transform:rotate(-24deg);transform:rotate(-24deg)}28%{-webkit-transform:rotate(24deg);transform:rotate(24deg)}30%{-webkit-transform:rotate(24deg);transform:rotate(24deg)}38%{-webkit-transform:rotate(-24deg);transform:rotate(-24deg)}40%{-webkit-transform:rotate(-24deg);transform:rotate(-24deg)}48%{-webkit-transform:rotate(24deg);transform:rotate(24deg)}50%{-webkit-transform:rotate(24deg);transform:rotate(24deg)}58%{-webkit-transform:rotate(-24deg);transform:rotate(-24deg)}60%{-webkit-transform:rotate(-24deg);transform:rotate(-24deg)}68%{-webkit-transform:rotate(24deg);transform:rotate(24deg)}100%,75%{-webkit-transform:rotate(0);transform:rotate(0)}}@keyframes wrench{0%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}8%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}10%{-webkit-transform:rotate(24deg);transform:rotate(24deg)}18%{-webkit-transform:rotate(-24deg);transform:rotate(-24deg)}20%{-webkit-transform:rotate(-24deg);transform:rotate(-24deg)}28%{-webkit-transform:rotate(24deg);transform:rotate(24deg)}30%{-webkit-transform:rotate(24deg);transform:rotate(24deg)}38%{-webkit-transform:rotate(-24deg);transform:rotate(-24deg)}40%{-webkit-transform:rotate(-24deg);transform:rotate(-24deg)}48%{-webkit-transform:rotate(24deg);transform:rotate(24deg)}50%{-webkit-transform:rotate(24deg);transform:rotate(24deg)}58%{-webkit-transform:rotate(-24deg);transform:rotate(-24deg)}60%{-webkit-transform:rotate(-24deg);transform:rotate(-24deg)}68%{-webkit-transform:rotate(24deg);transform:rotate(24deg)}100%,75%{-webkit-transform:rotate(0);transform:rotate(0)}}.faa-parent.animated-hover:hover>.faa-wrench,.faa-wrench.animated,.faa-wrench.animated-hover:hover{-webkit-animation:wrench 2.5s ease infinite;animation:wrench 2.5s ease infinite;transform-origin-x:90%;transform-origin-y:35%;transform-origin-z:initial}.faa-parent.animated-hover:hover>.faa-wrench.faa-fast,.faa-wrench.animated-hover.faa-fast:hover,.faa-wrench.animated.faa-fast{-webkit-animation:wrench 1.2s ease infinite;animation:wrench 1.2s ease infinite}.faa-parent.animated-hover:hover>.faa-wrench.faa-slow,.faa-wrench.animated-hover.faa-slow:hover,.faa-wrench.animated.faa-slow{-webkit-animation:wrench 3.7s ease infinite;animation:wrench 3.7s ease infinite}@-webkit-keyframes ring{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}2%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}4%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}6%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}8%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}10%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}12%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}14%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}18%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}100%,20%{-webkit-transform:rotate(0);transform:rotate(0)}}@keyframes ring{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}2%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}4%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}6%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}8%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}10%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}12%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}14%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}18%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}100%,20%{-webkit-transform:rotate(0);transform:rotate(0)}}.faa-parent.animated-hover:hover>.faa-ring,.faa-ring.animated,.faa-ring.animated-hover:hover{-webkit-animation:ring 2s ease infinite;animation:ring 2s ease infinite;transform-origin-x:50%;transform-origin-y:0;transform-origin-z:initial}.faa-parent.animated-hover:hover>.faa-ring.faa-fast,.faa-ring.animated-hover.faa-fast:hover,.faa-ring.animated.faa-fast{-webkit-animation:ring 1s ease infinite;animation:ring 1s ease infinite}.faa-parent.animated-hover:hover>.faa-ring.faa-slow,.faa-ring.animated-hover.faa-slow:hover,.faa-ring.animated.faa-slow{-webkit-animation:ring 3s ease infinite;animation:ring 3s ease infinite}@-webkit-keyframes vertical{0%{-webkit-transform:translate(0,-3px);transform:translate(0,-3px)}4%{-webkit-transform:translate(0,3px);transform:translate(0,3px)}8%{-webkit-transform:translate(0,-3px);transform:translate(0,-3px)}12%{-webkit-transform:translate(0,3px);transform:translate(0,3px)}16%{-webkit-transform:translate(0,-3px);transform:translate(0,-3px)}20%{-webkit-transform:translate(0,3px);transform:translate(0,3px)}100%,22%{-webkit-transform:translate(0,0);transform:translate(0,0)}}@keyframes vertical{0%{-webkit-transform:translate(0,-3px);transform:translate(0,-3px)}4%{-webkit-transform:translate(0,3px);transform:translate(0,3px)}8%{-webkit-transform:translate(0,-3px);transform:translate(0,-3px)}12%{-webkit-transform:translate(0,3px);transform:translate(0,3px)}16%{-webkit-transform:translate(0,-3px);transform:translate(0,-3px)}20%{-webkit-transform:translate(0,3px);transform:translate(0,3px)}100%,22%{-webkit-transform:translate(0,0);transform:translate(0,0)}}.faa-parent.animated-hover:hover>.faa-vertical,.faa-vertical.animated,.faa-vertical.animated-hover:hover{-webkit-animation:vertical 2s ease infinite;animation:vertical 2s ease infinite}.faa-parent.animated-hover:hover>.faa-vertical.faa-fast,.faa-vertical.animated-hover.faa-fast:hover,.faa-vertical.animated.faa-fast{-webkit-animation:vertical 1s ease infinite;animation:vertical 1s ease infinite}.faa-parent.animated-hover:hover>.faa-vertical.faa-slow,.faa-vertical.animated-hover.faa-slow:hover,.faa-vertical.animated.faa-slow{-webkit-animation:vertical 4s ease infinite;animation:vertical 4s ease infinite}@-webkit-keyframes horizontal{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}6%{-webkit-transform:translate(5px,0);transform:translate(5px,0)}12%{-webkit-transform:translate(0,0);transform:translate(0,0)}18%{-webkit-transform:translate(5px,0);transform:translate(5px,0)}24%{-webkit-transform:translate(0,0);transform:translate(0,0)}30%{-webkit-transform:translate(5px,0);transform:translate(5px,0)}100%,36%{-webkit-transform:translate(0,0);transform:translate(0,0)}}@keyframes horizontal{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}6%{-webkit-transform:translate(5px,0);transform:translate(5px,0)}12%{-webkit-transform:translate(0,0);transform:translate(0,0)}18%{-webkit-transform:translate(5px,0);transform:translate(5px,0)}24%{-webkit-transform:translate(0,0);transform:translate(0,0)}30%{-webkit-transform:translate(5px,0);transform:translate(5px,0)}100%,36%{-webkit-transform:translate(0,0);transform:translate(0,0)}}.faa-horizontal.animated,.faa-horizontal.animated-hover:hover,.faa-parent.animated-hover:hover>.faa-horizontal{-webkit-animation:horizontal 2s ease infinite;animation:horizontal 2s ease infinite}.faa-horizontal.animated-hover.faa-fast:hover,.faa-horizontal.animated.faa-fast,.faa-parent.animated-hover:hover>.faa-horizontal.faa-fast{-webkit-animation:horizontal 1s ease infinite;animation:horizontal 1s ease infinite}.faa-horizontal.animated-hover.faa-slow:hover,.faa-horizontal.animated.faa-slow,.faa-parent.animated-hover:hover>.faa-horizontal.faa-slow{-webkit-animation:horizontal 3s ease infinite;animation:horizontal 3s ease infinite}@-webkit-keyframes flash{0%,100%,50%{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,100%,50%{opacity:1}25%,75%{opacity:0}}.faa-flash.animated,.faa-flash.animated-hover:hover,.faa-parent.animated-hover:hover>.faa-flash{-webkit-animation:flash 2s ease infinite;animation:flash 2s ease infinite}.faa-flash.animated-hover.faa-fast:hover,.faa-flash.animated.faa-fast,.faa-parent.animated-hover:hover>.faa-flash.faa-fast{-webkit-animation:flash 1s ease infinite;animation:flash 1s ease infinite}.faa-flash.animated-hover.faa-slow:hover,.faa-flash.animated.faa-slow,.faa-parent.animated-hover:hover>.faa-flash.faa-slow{-webkit-animation:flash 3s ease infinite;animation:flash 3s ease infinite}@-webkit-keyframes bounce{0%,10%,100%,20%,50%,80%{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,10%,100%,20%,50%,80%{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}.faa-bounce.animated,.faa-bounce.animated-hover:hover,.faa-parent.animated-hover:hover>.faa-bounce{-webkit-animation:bounce 2s ease infinite;animation:bounce 2s ease infinite}.faa-bounce.animated-hover.faa-fast:hover,.faa-bounce.animated.faa-fast,.faa-parent.animated-hover:hover>.faa-bounce.faa-fast{-webkit-animation:bounce 1s ease infinite;animation:bounce 1s ease infinite}.faa-bounce.animated-hover.faa-slow:hover,.faa-bounce.animated.faa-slow,.faa-parent.animated-hover:hover>.faa-bounce.faa-slow{-webkit-animation:bounce 3s ease infinite;animation:bounce 3s ease infinite}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.faa-parent.animated-hover:hover>.faa-spin,.faa-spin.animated,.faa-spin.animated-hover:hover{-webkit-animation:spin 1.5s linear infinite;animation:spin 1.5s linear infinite}.faa-parent.animated-hover:hover>.faa-spin.faa-fast,.faa-spin.animated-hover.faa-fast:hover,.faa-spin.animated.faa-fast{-webkit-animation:spin .7s linear infinite;animation:spin .7s linear infinite}.faa-parent.animated-hover:hover>.faa-spin.faa-slow,.faa-spin.animated-hover.faa-slow:hover,.faa-spin.animated.faa-slow{-webkit-animation:spin 2.2s linear infinite;animation:spin 2.2s linear infinite}@-webkit-keyframes float{0%{-webkit-transform:translateY(0);transform:translateY(0)}50%{-webkit-transform:translateY(-6px);transform:translateY(-6px)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes float{0%{-webkit-transform:translateY(0);transform:translateY(0)}50%{-webkit-transform:translateY(-6px);transform:translateY(-6px)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}.faa-float.animated,.faa-float.animated-hover:hover,.faa-parent.animated-hover:hover>.faa-float{-webkit-animation:float 2s linear infinite;animation:float 2s linear infinite}.faa-float.animated-hover.faa-fast:hover,.faa-float.animated.faa-fast,.faa-parent.animated-hover:hover>.faa-float.faa-fast{-webkit-animation:float 1s linear infinite;animation:float 1s linear infinite}.faa-float.animated-hover.faa-slow:hover,.faa-float.animated.faa-slow,.faa-parent.animated-hover:hover>.faa-float.faa-slow{-webkit-animation:float 3s linear infinite;animation:float 3s linear infinite}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1.1);transform:scale(1.1)}50%{-webkit-transform:scale(.8);transform:scale(.8)}100%{-webkit-transform:scale(1.1);transform:scale(1.1)}}@keyframes pulse{0%{-webkit-transform:scale(1.1);transform:scale(1.1)}50%{-webkit-transform:scale(.8);transform:scale(.8)}100%{-webkit-transform:scale(1.1);transform:scale(1.1)}}.faa-parent.animated-hover:hover>.faa-pulse,.faa-pulse.animated,.faa-pulse.animated-hover:hover{-webkit-animation:pulse 2s linear infinite;animation:pulse 2s linear infinite}.faa-parent.animated-hover:hover>.faa-pulse.faa-fast,.faa-pulse.animated-hover.faa-fast:hover,.faa-pulse.animated.faa-fast{-webkit-animation:pulse 1s linear infinite;animation:pulse 1s linear infinite}.faa-parent.animated-hover:hover>.faa-pulse.faa-slow,.faa-pulse.animated-hover.faa-slow:hover,.faa-pulse.animated.faa-slow{-webkit-animation:pulse 3s linear infinite;animation:pulse 3s linear infinite}.faa-parent.animated-hover:hover>.faa-shake,.faa-shake.animated,.faa-shake.animated-hover:hover{-webkit-animation:wrench 2.5s ease infinite;animation:wrench 2.5s ease infinite}.faa-parent.animated-hover:hover>.faa-shake.faa-fast,.faa-shake.animated-hover.faa-fast:hover,.faa-shake.animated.faa-fast{-webkit-animation:wrench 1.2s ease infinite;animation:wrench 1.2s ease infinite}.faa-parent.animated-hover:hover>.faa-shake.faa-slow,.faa-shake.animated-hover.faa-slow:hover,.faa-shake.animated.faa-slow{-webkit-animation:wrench 3.7s ease infinite;animation:wrench 3.7s ease infinite}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-8deg);transform:scale(.9) rotate(-8deg)}30%,50%,70%{-webkit-transform:scale(1.3) rotate(8deg);transform:scale(1.3) rotate(8deg)}40%,60%{-webkit-transform:scale(1.3) rotate(-8deg);transform:scale(1.3) rotate(-8deg)}100%,80%{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(.9) rotate(-8deg);transform:scale(.9) rotate(-8deg)}30%,50%,70%{-webkit-transform:scale(1.3) rotate(8deg);transform:scale(1.3) rotate(8deg)}40%,60%{-webkit-transform:scale(1.3) rotate(-8deg);transform:scale(1.3) rotate(-8deg)}100%,80%{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}.faa-parent.animated-hover:hover>.faa-tada,.faa-tada.animated,.faa-tada.animated-hover:hover{-webkit-animation:tada 2s linear infinite;animation:tada 2s linear infinite}.faa-parent.animated-hover:hover>.faa-tada.faa-fast,.faa-tada.animated-hover.faa-fast:hover,.faa-tada.animated.faa-fast{-webkit-animation:tada 1s linear infinite;animation:tada 1s linear infinite}.faa-parent.animated-hover:hover>.faa-tada.faa-slow,.faa-tada.animated-hover.faa-slow:hover,.faa-tada.animated.faa-slow{-webkit-animation:tada 3s linear infinite;animation:tada 3s linear infinite}@-webkit-keyframes passing{0%{-webkit-transform:translateX(-50%);transform:translateX(-50%);opacity:0}50%{-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform:translateX(50%);transform:translateX(50%);opacity:0}}@keyframes passing{0%{-webkit-transform:translateX(-50%);transform:translateX(-50%);opacity:0}50%{-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform:translateX(50%);transform:translateX(50%);opacity:0}}.faa-parent.animated-hover:hover>.faa-passing,.faa-passing.animated,.faa-passing.animated-hover:hover{-webkit-animation:passing 2s linear infinite;animation:passing 2s linear infinite}.faa-parent.animated-hover:hover>.faa-passing.faa-fast,.faa-passing.animated-hover.faa-fast:hover,.faa-passing.animated.faa-fast{-webkit-animation:passing 1s linear infinite;animation:passing 1s linear infinite}.faa-parent.animated-hover:hover>.faa-passing.faa-slow,.faa-passing.animated-hover.faa-slow:hover,.faa-passing.animated.faa-slow{-webkit-animation:passing 3s linear infinite;animation:passing 3s linear infinite}@-webkit-keyframes passing-reverse{0%{-webkit-transform:translateX(50%);transform:translateX(50%);opacity:0}50%{-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform:translateX(-50%);transform:translateX(-50%);opacity:0}}@keyframes passing-reverse{0%{-webkit-transform:translateX(50%);transform:translateX(50%);opacity:0}50%{-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform:translateX(-50%);transform:translateX(-50%);opacity:0}}.faa-parent.animated-hover:hover>.faa-passing-reverse,.faa-passing-reverse.animated,.faa-passing-reverse.animated-hover:hover{-webkit-animation:passing-reverse 2s linear infinite;animation:passing-reverse 2s linear infinite}.faa-parent.animated-hover:hover>.faa-passing-reverse.faa-fast,.faa-passing-reverse.animated-hover.faa-fast:hover,.faa-passing-reverse.animated.faa-fast{-webkit-animation:passing-reverse 1s linear infinite;animation:passing-reverse 1s linear infinite}.faa-parent.animated-hover:hover>.faa-passing-reverse.faa-slow,.faa-passing-reverse.animated-hover.faa-slow:hover,.faa-passing-reverse.animated.faa-slow{-webkit-animation:passing-reverse 3s linear infinite;animation:passing-reverse 3s linear infinite}@-webkit-keyframes burst{0%{opacity:.6}50%{-webkit-transform:scale(1.8);transform:scale(1.8);opacity:0}100%{opacity:0}}@keyframes burst{0%{opacity:.6}50%{-webkit-transform:scale(1.8);transform:scale(1.8);opacity:0}100%{opacity:0}}.faa-burst.animated,.faa-burst.animated-hover:hover,.faa-parent.animated-hover:hover>.faa-burst{-webkit-animation:burst 2s infinite linear;animation:burst 2s infinite linear}.faa-burst.animated-hover.faa-fast:hover,.faa-burst.animated.faa-fast,.faa-parent.animated-hover:hover>.faa-burst.faa-fast{-webkit-animation:burst 1s infinite linear;animation:burst 1s infinite linear}.faa-burst.animated-hover.faa-slow:hover,.faa-burst.animated.faa-slow,.faa-parent.animated-hover:hover>.faa-burst.faa-slow{-webkit-animation:burst 3s infinite linear;animation:burst 3s infinite linear}@-webkit-keyframes falling{0%{-webkit-transform:translateY(-50%);transform:translateY(-50%);opacity:0}50%{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}100%{-webkit-transform:translateY(50%);transform:translateY(50%);opacity:0}}@keyframes falling{0%{-webkit-transform:translateY(-50%);transform:translateY(-50%);opacity:0}50%{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}100%{-webkit-transform:translateY(50%);transform:translateY(50%);opacity:0}}.faa-falling.animated,.faa-falling.animated-hover:hover,.faa-parent.animated-hover:hover>.faa-falling{-webkit-animation:falling 2s linear infinite;animation:falling 2s linear infinite}.faa-falling.animated-hover.faa-fast:hover,.faa-falling.animated.faa-fast,.faa-parent.animated-hover:hover>.faa-falling.faa-fast{-webkit-animation:falling 1s linear infinite;animation:falling 1s linear infinite}.faa-falling.animated-hover.faa-slow:hover,.faa-falling.animated.faa-slow,.faa-parent.animated-hover:hover>.faa-falling.faa-slow{-webkit-animation:falling 3s linear infinite;animation:falling 3s linear infinite}
\ No newline at end of file diff --git a/base_accounting_kit/static/lib/font-awesome.min.css b/base_accounting_kit/static/lib/font-awesome.min.css new file mode 100644 index 0000000..a6ae9d0 --- /dev/null +++ b/base_accounting_kit/static/lib/font-awesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
\ No newline at end of file diff --git a/base_accounting_kit/static/lib/fusioncharts.charts.js b/base_accounting_kit/static/lib/fusioncharts.charts.js new file mode 100644 index 0000000..e55bc5f --- /dev/null +++ b/base_accounting_kit/static/lib/fusioncharts.charts.js @@ -0,0 +1,6 @@ +"function"!=typeof Object.assign&&(Object.assign=function(e){"use strict";var t,r,n,a;if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(t=Object(e),r=1;r<arguments.length;r++)if(null!=(n=arguments[r]))for(a in n)Object.prototype.hasOwnProperty.call(n,a)&&(t[a]=n[a]);return t}),Function.prototype.bind||(Function.prototype.bind=function(e){"use strict";var t,r,n,a;if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");return t=Array.prototype.slice.call(arguments,1),r=this,n=function(){},a=function(){return r.apply(this instanceof n?this:e,t.concat(Array.prototype.slice.call(arguments)))},this.prototype&&(n.prototype=this.prototype),a.prototype=new n,a}),!document.head&&(document.head=document.getElementsByTagName("head")[0]),function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.FusionCharts=t():e.FusionCharts=t()}(window,(function(){return function(e){function t(t){for(var r,a,i=t[0],o=t[1],s=0,c=[];s<i.length;s++)a=i[s],Object.prototype.hasOwnProperty.call(n,a)&&n[a]&&c.push(n[a][0]),n[a]=0;for(r in o)Object.prototype.hasOwnProperty.call(o,r)&&(e[r]=o[r]);for(l&&l(t);c.length;)c.shift()()}var r={},n={0:0};function a(t){if(r[t])return r[t].exports;var n=r[t]={i:t,l:!1,exports:{}};return e[t].call(n.exports,n,n.exports,a),n.l=!0,n.exports}a.e=function(e){var t=[],r=n[e];if(0!==r)if(r)t.push(r[2]);else{var i=new Promise((function(t,a){r=n[e]=[t,a]}));t.push(r[2]=i);var o,s=document.createElement("script");s.charset="utf-8",s.timeout=120,a.nc&&s.setAttribute("nonce",a.nc),s.src=function(e){return a.p+""+({1:"fusioncharts.charts",2:"fusioncharts.common",3:"fusioncharts.timeseries",4:"fusioncharts.powercharts",5:"fusioncharts.widgets",6:"fusioncharts.zoomline",7:"fusioncharts.gantt",8:"fusioncharts.treemap",9:"fusioncharts.zoomscatter",10:"fusioncharts.msstackedcolumn2dsplinedy",11:"fusioncharts.overlappedbar2d",12:"fusioncharts.overlappedcolumn2d",13:"fusioncharts.excelexport",14:"fusioncharts.maps",15:"fusioncharts.vml"}[e]||e)+".js"}(e);var l=new Error;o=function(t){s.onerror=s.onload=null,clearTimeout(c);var r=n[e];if(0!==r){if(r){var a=t&&("load"===t.type?"missing":t.type),i=t&&t.target&&t.target.src;l.message="Loading chunk "+e+" failed.\n("+a+": "+i+")",l.name="ChunkLoadError",l.type=a,l.request=i,r[1](l)}n[e]=undefined}};var c=setTimeout((function(){o({type:"timeout",target:s})}),12e4);s.onerror=s.onload=o,document.head.appendChild(s)}return Promise.all(t)},a.m=e,a.c=r,a.d=function(e,t,r){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(a.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)a.d(r,n,function(t){return e[t]}.bind(null,n));return r},a.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a.oe=function(e){throw console.error(e),e};var i=window.webpackJsonpFusionCharts=window.webpackJsonpFusionCharts||[],o=i.push.bind(i);i.push=t,i=i.slice();for(var s=0;s<i.length;s++)t(i[s]);var l=o;return a(a.s=0)}([function(e,t,r){r(1),r(91),r(173),e.exports=r(177)},function(e,t,r){"use strict";r(2),r(49),r(51),r(53),r(59),r(62),r(68),r(76),r(81),r(83),r(86),r(88),r(90);window.getComputedStyle||(window.getComputedStyle=function(e){return this.el=e,this.getPropertyValue=function(t){var r=/(\-([a-z]){1})/g,n=t;return"float"===n&&(n="styleFloat"),r.test(n)&&(n=n.replace(r,(function(){return arguments[2].toUpperCase()}))),e.currentStyle[n]?e.currentStyle[n]:null},this}),Event.prototype.stopPropagation||(Event.prototype.stopPropagation=function(){this.cancelBubble=!0})},function(e,t,r){r(3);var n=r(38).Object;e.exports=function(e){return n.getOwnPropertyNames(e)}},function(e,t,r){var n=r(4),a=r(9),i=r(48).f;n({target:"Object",stat:!0,forced:a((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})},function(e,t,r){var n=r(5),a=r(7).f,i=r(21),o=r(24),s=r(28),l=r(35),c=r(47);e.exports=function(e,t){var r,u,d,h,f,g=e.target,p=e.global,m=e.stat;if(r=p?n:m?n[g]||s(g,{}):(n[g]||{}).prototype)for(u in t){if(h=t[u],d=e.noTargetGet?(f=a(r,u))&&f.value:r[u],!c(p?u:g+(m?".":"#")+u,e.forced)&&d!==undefined){if(typeof h==typeof d)continue;l(h,d)}(e.sham||d&&d.sham)&&i(h,"sham",!0),o(r,u,h,e)}}},function(e,t,r){(function(t){var r=function(e){return e&&e.Math==Math&&e};e.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof t&&t)||Function("return this")()}).call(this,r(6))},function(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(n){"object"==typeof window&&(r=window)}e.exports=r},function(e,t,r){var n=r(8),a=r(10),i=r(11),o=r(12),s=r(16),l=r(18),c=r(19),u=Object.getOwnPropertyDescriptor;t.f=n?u:function(e,t){if(e=o(e),t=s(t,!0),c)try{return u(e,t)}catch(r){}if(l(e,t))return i(!a.f.call(e,t),e[t])}},function(e,t,r){var n=r(9);e.exports=!n((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(e,t){e.exports=function(e){try{return!!e()}catch(t){return!0}}},function(e,t,r){"use strict";var n={}.propertyIsEnumerable,a=Object.getOwnPropertyDescriptor,i=a&&!n.call({1:2},1);t.f=i?function(e){var t=a(this,e);return!!t&&t.enumerable}:n},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,r){var n=r(13),a=r(15);e.exports=function(e){return n(a(e))}},function(e,t,r){var n=r(9),a=r(14),i="".split;e.exports=n((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==a(e)?i.call(e,""):Object(e)}:Object},function(e,t){var r={}.toString;e.exports=function(e){return r.call(e).slice(8,-1)}},function(e,t){e.exports=function(e){if(e==undefined)throw TypeError("Can't call method on "+e);return e}},function(e,t,r){var n=r(17);e.exports=function(e,t){if(!n(e))return e;var r,a;if(t&&"function"==typeof(r=e.toString)&&!n(a=r.call(e)))return a;if("function"==typeof(r=e.valueOf)&&!n(a=r.call(e)))return a;if(!t&&"function"==typeof(r=e.toString)&&!n(a=r.call(e)))return a;throw TypeError("Can't convert object to primitive value")}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t){var r={}.hasOwnProperty;e.exports=function(e,t){return r.call(e,t)}},function(e,t,r){var n=r(8),a=r(9),i=r(20);e.exports=!n&&!a((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},function(e,t,r){var n=r(5),a=r(17),i=n.document,o=a(i)&&a(i.createElement);e.exports=function(e){return o?i.createElement(e):{}}},function(e,t,r){var n=r(8),a=r(22),i=r(11);e.exports=n?function(e,t,r){return a.f(e,t,i(1,r))}:function(e,t,r){return e[t]=r,e}},function(e,t,r){var n=r(8),a=r(19),i=r(23),o=r(16),s=Object.defineProperty;t.f=n?s:function(e,t,r){if(i(e),t=o(t,!0),i(r),a)try{return s(e,t,r)}catch(n){}if("get"in r||"set"in r)throw TypeError("Accessors not supported");return"value"in r&&(e[t]=r.value),e}},function(e,t,r){var n=r(17);e.exports=function(e){if(!n(e))throw TypeError(String(e)+" is not an object");return e}},function(e,t,r){var n=r(5),a=r(25),i=r(21),o=r(18),s=r(28),l=r(29),c=r(30),u=c.get,d=c.enforce,h=String(l).split("toString");a("inspectSource",(function(e){return l.call(e)})),(e.exports=function(e,t,r,a){var l=!!a&&!!a.unsafe,c=!!a&&!!a.enumerable,u=!!a&&!!a.noTargetGet;"function"==typeof r&&("string"!=typeof t||o(r,"name")||i(r,"name",t),d(r).source=h.join("string"==typeof t?t:"")),e!==n?(l?!u&&e[t]&&(c=!0):delete e[t],c?e[t]=r:i(e,t,r)):c?e[t]=r:s(t,r)})(Function.prototype,"toString",(function(){return"function"==typeof this&&u(this).source||l.call(this)}))},function(e,t,r){var n=r(26),a=r(27);(e.exports=function(e,t){return a[e]||(a[e]=t!==undefined?t:{})})("versions",[]).push({version:"3.4.0",mode:n?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports=!1},function(e,t,r){var n=r(5),a=r(28),i=n["__core-js_shared__"]||a("__core-js_shared__",{});e.exports=i},function(e,t,r){var n=r(5),a=r(21);e.exports=function(e,t){try{a(n,e,t)}catch(r){n[e]=t}return t}},function(e,t,r){var n=r(25);e.exports=n("native-function-to-string",Function.toString)},function(e,t,r){var n,a,i,o=r(31),s=r(5),l=r(17),c=r(21),u=r(18),d=r(32),h=r(34),f=s.WeakMap;if(o){var g=new f,p=g.get,m=g.has,v=g.set;n=function(e,t){return v.call(g,e,t),t},a=function(e){return p.call(g,e)||{}},i=function(e){return m.call(g,e)}}else{var b=d("state");h[b]=!0,n=function(e,t){return c(e,b,t),t},a=function(e){return u(e,b)?e[b]:{}},i=function(e){return u(e,b)}}e.exports={set:n,get:a,has:i,enforce:function(e){return i(e)?a(e):n(e,{})},getterFor:function(e){return function(t){var r;if(!l(t)||(r=a(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return r}}}},function(e,t,r){var n=r(5),a=r(29),i=n.WeakMap;e.exports="function"==typeof i&&/native code/.test(a.call(i))},function(e,t,r){var n=r(25),a=r(33),i=n("keys");e.exports=function(e){return i[e]||(i[e]=a(e))}},function(e,t){var r=0,n=Math.random();e.exports=function(e){return"Symbol("+String(e===undefined?"":e)+")_"+(++r+n).toString(36)}},function(e,t){e.exports={}},function(e,t,r){var n=r(18),a=r(36),i=r(7),o=r(22);e.exports=function(e,t){for(var r=a(t),s=o.f,l=i.f,c=0;c<r.length;c++){var u=r[c];n(e,u)||s(e,u,l(t,u))}}},function(e,t,r){var n=r(37),a=r(39),i=r(46),o=r(23);e.exports=n("Reflect","ownKeys")||function(e){var t=a.f(o(e)),r=i.f;return r?t.concat(r(e)):t}},function(e,t,r){var n=r(38),a=r(5),i=function(e){return"function"==typeof e?e:undefined};e.exports=function(e,t){return arguments.length<2?i(n[e])||i(a[e]):n[e]&&n[e][t]||a[e]&&a[e][t]}},function(e,t,r){e.exports=r(5)},function(e,t,r){var n=r(40),a=r(45).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return n(e,a)}},function(e,t,r){var n=r(18),a=r(12),i=r(41).indexOf,o=r(34);e.exports=function(e,t){var r,s=a(e),l=0,c=[];for(r in s)!n(o,r)&&n(s,r)&&c.push(r);for(;t.length>l;)n(s,r=t[l++])&&(~i(c,r)||c.push(r));return c}},function(e,t,r){var n=r(12),a=r(42),i=r(44),o=function(e){return function(t,r,o){var s,l=n(t),c=a(l.length),u=i(o,c);if(e&&r!=r){for(;c>u;)if((s=l[u++])!=s)return!0}else for(;c>u;u++)if((e||u in l)&&l[u]===r)return e||u||0;return!e&&-1}};e.exports={includes:o(!0),indexOf:o(!1)}},function(e,t,r){var n=r(43),a=Math.min;e.exports=function(e){return e>0?a(n(e),9007199254740991):0}},function(e,t){var r=Math.ceil,n=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?n:r)(e)}},function(e,t,r){var n=r(43),a=Math.max,i=Math.min;e.exports=function(e,t){var r=n(e);return r<0?a(r+t,0):i(r,t)}},function(e,t){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,r){var n=r(9),a=/#|\.prototype\./,i=function(e,t){var r=s[o(e)];return r==c||r!=l&&("function"==typeof t?n(t):!!t)},o=i.normalize=function(e){return String(e).replace(a,".").toLowerCase()},s=i.data={},l=i.NATIVE="N",c=i.POLYFILL="P";e.exports=i},function(e,t,r){var n=r(12),a=r(39).f,i={}.toString,o="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return o&&"[object Window]"==i.call(e)?function(e){try{return a(e)}catch(t){return o.slice()}}(e):a(n(e))}},function(e,t,r){r(50);var n=r(38).Object,a=e.exports=function(e,t){return n.getOwnPropertyDescriptor(e,t)};n.getOwnPropertyDescriptor.sham&&(a.sham=!0)},function(e,t,r){var n=r(4),a=r(9),i=r(12),o=r(7).f,s=r(8),l=a((function(){o(1)}));n({target:"Object",stat:!0,forced:!s||l,sham:!s},{getOwnPropertyDescriptor:function(e,t){return o(i(e),t)}})},function(e,t,r){r(52);var n=r(38).Object,a=e.exports=function(e,t,r){return n.defineProperty(e,t,r)};n.defineProperty.sham&&(a.sham=!0)},function(e,t,r){var n=r(4),a=r(8);n({target:"Object",stat:!0,forced:!a,sham:!a},{defineProperty:r(22).f})},function(e,t,r){r(54);var n=r(38).Object;e.exports=function(e,t){return n.create(e,t)}},function(e,t,r){r(4)({target:"Object",stat:!0,sham:!r(8)},{create:r(55)})},function(e,t,r){var n=r(23),a=r(56),i=r(45),o=r(34),s=r(58),l=r(20),c=r(32)("IE_PROTO"),u=function(){},d=function(){var e,t=l("iframe"),r=i.length;for(t.style.display="none",s.appendChild(t),t.src=String("javascript:"),(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),d=e.F;r--;)delete d.prototype[i[r]];return d()};e.exports=Object.create||function(e,t){var r;return null!==e?(u.prototype=n(e),r=new u,u.prototype=null,r[c]=e):r=d(),t===undefined?r:a(r,t)},o[c]=!0},function(e,t,r){var n=r(8),a=r(22),i=r(23),o=r(57);e.exports=n?Object.defineProperties:function(e,t){i(e);for(var r,n=o(t),s=n.length,l=0;s>l;)a.f(e,r=n[l++],t[r]);return e}},function(e,t,r){var n=r(40),a=r(45);e.exports=Object.keys||function(e){return n(e,a)}},function(e,t,r){var n=r(37);e.exports=n("document","documentElement")},function(e,t,r){r(60);var n=r(38);e.exports=n.Object.keys},function(e,t,r){var n=r(4),a=r(61),i=r(57);n({target:"Object",stat:!0,forced:r(9)((function(){i(1)}))},{keys:function(e){return i(a(e))}})},function(e,t,r){var n=r(15);e.exports=function(e){return Object(n(e))}},function(e,t,r){r(63);var n=r(65);e.exports=n("Array","indexOf")},function(e,t,r){"use strict";var n=r(4),a=r(41).indexOf,i=r(64),o=[].indexOf,s=!!o&&1/[1].indexOf(1,-0)<0,l=i("indexOf");n({target:"Array",proto:!0,forced:s||l},{indexOf:function(e){return s?o.apply(this,arguments)||0:a(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,r){"use strict";var n=r(9);e.exports=function(e,t){var r=[][e];return!r||!n((function(){r.call(null,t||function(){throw 1},1)}))}},function(e,t,r){var n=r(5),a=r(66),i=Function.call;e.exports=function(e,t,r){return a(i,n[e].prototype[t],r)}},function(e,t,r){var n=r(67);e.exports=function(e,t,r){if(n(e),t===undefined)return e;switch(r){case 0:return function(){return e.call(t)};case 1:return function(r){return e.call(t,r)};case 2:return function(r,n){return e.call(t,r,n)};case 3:return function(r,n,a){return e.call(t,r,n,a)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},function(e,t,r){r(69);var n=r(65);e.exports=n("Array","forEach")},function(e,t,r){"use strict";var n=r(4),a=r(70);n({target:"Array",proto:!0,forced:[].forEach!=a},{forEach:a})},function(e,t,r){"use strict";var n=r(71).forEach,a=r(64);e.exports=a("forEach")?function(e){return n(this,e,arguments.length>1?arguments[1]:undefined)}:[].forEach},function(e,t,r){var n=r(66),a=r(13),i=r(61),o=r(42),s=r(72),l=[].push,c=function(e){var t=1==e,r=2==e,c=3==e,u=4==e,d=6==e,h=5==e||d;return function(f,g,p,m){for(var v,b,y=i(f),x=a(y),C=n(g,p,3),w=o(x.length),_=0,k=m||s,S=t?k(f,w):r?k(f,0):undefined;w>_;_++)if((h||_ in x)&&(b=C(v=x[_],_,y),e))if(t)S[_]=b;else if(b)switch(e){case 3:return!0;case 5:return v;case 6:return _;case 2:l.call(S,v)}else if(u)return!1;return d?-1:c||u?u:S}};e.exports={forEach:c(0),map:c(1),filter:c(2),some:c(3),every:c(4),find:c(5),findIndex:c(6)}},function(e,t,r){var n=r(17),a=r(73),i=r(74)("species");e.exports=function(e,t){var r;return a(e)&&("function"!=typeof(r=e.constructor)||r!==Array&&!a(r.prototype)?n(r)&&null===(r=r[i])&&(r=undefined):r=undefined),new(r===undefined?Array:r)(0===t?0:t)}},function(e,t,r){var n=r(14);e.exports=Array.isArray||function(e){return"Array"==n(e)}},function(e,t,r){var n=r(5),a=r(25),i=r(33),o=r(75),s=n.Symbol,l=a("wks");e.exports=function(e){return l[e]||(l[e]=o&&s[e]||(o?s:i)("Symbol."+e))}},function(e,t,r){var n=r(9);e.exports=!!Object.getOwnPropertySymbols&&!n((function(){return!String(Symbol())}))},function(e,t,r){r(77);var n=r(65);e.exports=n("Array","map")},function(e,t,r){"use strict";var n=r(4),a=r(71).map;n({target:"Array",proto:!0,forced:!r(78)("map")},{map:function(e){return a(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,r){var n=r(9),a=r(74),i=r(79),o=a("species");e.exports=function(e){return i>=51||!n((function(){var t=[];return(t.constructor={})[o]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},function(e,t,r){var n,a,i=r(5),o=r(80),s=i.process,l=s&&s.versions,c=l&&l.v8;c?a=(n=c.split("."))[0]+n[1]:o&&(!(n=o.match(/Edge\/(\d+)/))||n[1]>=74)&&(n=o.match(/Chrome\/(\d+)/))&&(a=n[1]),e.exports=a&&+a},function(e,t,r){var n=r(37);e.exports=n("navigator","userAgent")||""},function(e,t,r){r(82);var n=r(65);e.exports=n("Array","filter")},function(e,t,r){"use strict";var n=r(4),a=r(71).filter;n({target:"Array",proto:!0,forced:!r(78)("filter")},{filter:function(e){return a(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,r){r(84);var n=r(65);e.exports=n("Array","reduce")},function(e,t,r){"use strict";var n=r(4),a=r(85).left;n({target:"Array",proto:!0,forced:r(64)("reduce")},{reduce:function(e){return a(this,e,arguments.length,arguments.length>1?arguments[1]:undefined)}})},function(e,t,r){var n=r(67),a=r(61),i=r(13),o=r(42),s=function(e){return function(t,r,s,l){n(r);var c=a(t),u=i(c),d=o(c.length),h=e?d-1:0,f=e?-1:1;if(s<2)for(;;){if(h in u){l=u[h],h+=f;break}if(h+=f,e?h<0:d<=h)throw TypeError("Reduce of empty array with no initial value")}for(;e?h>=0:d>h;h+=f)h in u&&(l=r(l,u[h],h,c));return l}};e.exports={left:s(!1),right:s(!0)}},function(e,t,r){r(87);var n=r(38);e.exports=n.Array.isArray},function(e,t,r){r(4)({target:"Array",stat:!0},{isArray:r(73)})},function(e,t,r){r(89);var n=r(65);e.exports=n("Array","some")},function(e,t,r){"use strict";var n=r(4),a=r(71).some;n({target:"Array",proto:!0,forced:r(64)("some")},{some:function(e){return a(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t){window.MutationObserver=window.MutationObserver||function(e){function t(e){this.i=[],this.m=e}function r(t){var r,n={type:null,target:null,addedNodes:[],removedNodes:[],previousSibling:null,nextSibling:null,attributeName:null,attributeNamespace:null,oldValue:null};for(r in t)n[r]!==e&&t[r]!==e&&(n[r]=t[r]);return n}function n(t,n){var s=i(t,n);return function(c){var u,d=c.length;n.a&&3===t.nodeType&&t.nodeValue!==s.a&&c.push(new r({type:"characterData",target:t,oldValue:s.a})),n.b&&s.b&&a(c,t,s.b,n.f),(n.c||n.g)&&(u=function(t,n,i,s){function c(e,n,i,o,l){var c,d,h,f=e.length-1;for(l=-~((f-l)/2);h=e.pop();)c=i[h.j],d=o[h.l],s.c&&l&&Math.abs(h.j-h.l)>=f&&(t.push(r({type:"childList",target:n,addedNodes:[c],removedNodes:[c],nextSibling:c.nextSibling,previousSibling:c.previousSibling})),l--),s.b&&d.b&&a(t,c,d.b,s.f),s.a&&3===c.nodeType&&c.nodeValue!==d.a&&t.push(r({type:"characterData",target:c,oldValue:d.a})),s.g&&u(c,d)}function u(n,i){for(var h,f,g,p,m,v=n.childNodes,b=i.c,y=v.length,x=b?b.length:0,C=0,w=0,_=0;w<y||_<x;)(p=v[w])===(m=(g=b[_])&&g.node)?(s.b&&g.b&&a(t,p,g.b,s.f),s.a&&g.a!==e&&p.nodeValue!==g.a&&t.push(r({type:"characterData",target:p,oldValue:g.a})),f&&c(f,n,v,b,C),s.g&&(p.childNodes.length||g.c&&g.c.length)&&u(p,g),w++,_++):(d=!0,h||(h={},f=[]),p&&(h[g=o(p)]||(h[g]=!0,-1===(g=l(b,p,_,"node"))?s.c&&(t.push(r({type:"childList",target:n,addedNodes:[p],nextSibling:p.nextSibling,previousSibling:p.previousSibling})),C++):f.push({j:w,l:g})),w++),m&&m!==v[w]&&(h[g=o(m)]||(h[g]=!0,-1===(g=l(v,m,w))?s.c&&(t.push(r({type:"childList",target:i.node,removedNodes:[m],nextSibling:b[_+1],previousSibling:b[_-1]})),C--):f.push({j:g,l:_})),_++));f&&c(f,n,v,b,C)}var d;return u(n,i),d}(c,t,s,n)),(u||c.length!==d)&&(s=i(t,n))}}function a(t,n,a,i){for(var o,s,l={},c=n.attributes,d=c.length;d--;)s=(o=c[d]).name,i&&i[s]===e||(u(n,o)!==a[s]&&t.push(r({type:"attributes",target:n,attributeName:s,oldValue:a[s],attributeNamespace:o.namespaceURI})),l[s]=!0);for(s in a)l[s]||t.push(r({target:n,type:"attributes",attributeName:s,oldValue:a[s]}))}function i(e,t){var r=!0;return function n(e){var a={node:e};return!t.a||3!==e.nodeType&&8!==e.nodeType?(t.b&&r&&1===e.nodeType&&(a.b=s(e.attributes,(function(r,n){return t.f&&!t.f[n.name]||(r[n.name]=u(e,n)),r}))),r&&(t.c||t.a||t.b&&t.g)&&(a.c=function(e,t){for(var r=[],n=0;n<e.length;n++)r[n]=t(e[n],n,e);return r}(e.childNodes,n)),r=t.g):a.a=e.nodeValue,a}(e)}function o(e){try{return e.id||(e.mo_id=e.mo_id||d++)}catch(t){try{return e.nodeValue}catch(r){return d++}}}function s(e,t){for(var r={},n=0;n<e.length;n++)r=t(r,e[n],n,e);return r}function l(e,t,r,n){for(;r<e.length;r++)if((n?e[r][n]:e[r])===t)return r;return-1}t._period=30,t.prototype={observe:function(e,r){for(var a={b:!!(r.attributes||r.attributeFilter||r.attributeOldValue),c:!!r.childList,g:!!r.subtree,a:!(!r.characterData&&!r.characterDataOldValue)},i=this.i,o=0;o<i.length;o++)i[o].s===e&&i.splice(o,1);r.attributeFilter&&(a.f=s(r.attributeFilter,(function(e,t){return e[t]=!0,e}))),i.push({s:e,o:n(e,a)}),this.h||function(e){!function r(){var n=e.takeRecords();n.length&&e.m(n,e),e.h=setTimeout(r,t._period)}()}(this)},takeRecords:function(){for(var e=[],t=this.i,r=0;r<t.length;r++)t[r].o(e);return e},disconnect:function(){this.i=[],clearTimeout(this.h),this.h=null}};var c=document.createElement("i");c.style.top=0;var u=(c="null"!=c.attributes.style.value)?function(e,t){return t.value}:function(e,t){return"style"!==t.name?t.value:e.style.cssText},d=1;return t}(void 0)},function(e,t,r){"use strict";r(92),r(95),r(114),r(116),r(119),r(121),r(123),r(129),r(132),r(134),r(136),r(141),r(144),r(146),r(148),r(151),r(153),r(167),r(169),Element.prototype.remove||(Element.prototype.remove=function(){this.parentNode&&this.parentNode.removeChild(this)})},function(e,t,r){r(93);var n=r(38);e.exports=n.Object.entries},function(e,t,r){var n=r(4),a=r(94).entries;n({target:"Object",stat:!0},{entries:function(e){return a(e)}})},function(e,t,r){var n=r(8),a=r(57),i=r(12),o=r(10).f,s=function(e){return function(t){for(var r,s=i(t),l=a(s),c=l.length,u=0,d=[];c>u;)r=l[u++],n&&!o.call(s,r)||d.push(e?[r,s[r]]:s[r]);return d}};e.exports={entries:s(!0),values:s(!1)}},function(e,t,r){r(96),r(107);var n=r(38);e.exports=n.Object.fromEntries},function(e,t,r){"use strict";var n=r(12),a=r(97),i=r(98),o=r(30),s=r(99),l=o.set,c=o.getterFor("Array Iterator");e.exports=s(Array,"Array",(function(e,t){l(this,{type:"Array Iterator",target:n(e),index:0,kind:t})}),(function(){var e=c(this),t=e.target,r=e.kind,n=e.index++;return!t||n>=t.length?(e.target=undefined,{value:undefined,done:!0}):"keys"==r?{value:n,done:!1}:"values"==r?{value:t[n],done:!1}:{value:[n,t[n]],done:!1}}),"values"),i.Arguments=i.Array,a("keys"),a("values"),a("entries")},function(e,t,r){var n=r(74),a=r(55),i=r(21),o=n("unscopables"),s=Array.prototype;s[o]==undefined&&i(s,o,a(null)),e.exports=function(e){s[o][e]=!0}},function(e,t){e.exports={}},function(e,t,r){"use strict";var n=r(4),a=r(100),i=r(102),o=r(105),s=r(104),l=r(21),c=r(24),u=r(74),d=r(26),h=r(98),f=r(101),g=f.IteratorPrototype,p=f.BUGGY_SAFARI_ITERATORS,m=u("iterator"),v=function(){return this};e.exports=function(e,t,r,u,f,b,y){a(r,t,u);var x,C,w,_=function(e){if(e===f&&T)return T;if(!p&&e in E)return E[e];switch(e){case"keys":case"values":case"entries":return function(){return new r(this,e)}}return function(){return new r(this)}},k=t+" Iterator",S=!1,E=e.prototype,A=E[m]||E["@@iterator"]||f&&E[f],T=!p&&A||_(f),M="Array"==t&&E.entries||A;if(M&&(x=i(M.call(new e)),g!==Object.prototype&&x.next&&(d||i(x)===g||(o?o(x,g):"function"!=typeof x[m]&&l(x,m,v)),s(x,k,!0,!0),d&&(h[k]=v))),"values"==f&&A&&"values"!==A.name&&(S=!0,T=function(){return A.call(this)}),d&&!y||E[m]===T||l(E,m,T),h[t]=T,f)if(C={values:_("values"),keys:b?T:_("keys"),entries:_("entries")},y)for(w in C)!p&&!S&&w in E||c(E,w,C[w]);else n({target:t,proto:!0,forced:p||S},C);return C}},function(e,t,r){"use strict";var n=r(101).IteratorPrototype,a=r(55),i=r(11),o=r(104),s=r(98),l=function(){return this};e.exports=function(e,t,r){var c=t+" Iterator";return e.prototype=a(n,{next:i(1,r)}),o(e,c,!1,!0),s[c]=l,e}},function(e,t,r){"use strict";var n,a,i,o=r(102),s=r(21),l=r(18),c=r(74),u=r(26),d=c("iterator"),h=!1;[].keys&&("next"in(i=[].keys())?(a=o(o(i)))!==Object.prototype&&(n=a):h=!0),n==undefined&&(n={}),u||l(n,d)||s(n,d,(function(){return this})),e.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:h}},function(e,t,r){var n=r(18),a=r(61),i=r(32),o=r(103),s=i("IE_PROTO"),l=Object.prototype;e.exports=o?Object.getPrototypeOf:function(e){return e=a(e),n(e,s)?e[s]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?l:null}},function(e,t,r){var n=r(9);e.exports=!n((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},function(e,t,r){var n=r(22).f,a=r(18),i=r(74)("toStringTag");e.exports=function(e,t,r){e&&!a(e=r?e:e.prototype,i)&&n(e,i,{configurable:!0,value:t})}},function(e,t,r){var n=r(23),a=r(106);e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,r={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(r,[]),t=r instanceof Array}catch(i){}return function(r,i){return n(r),a(i),t?e.call(r,i):r.__proto__=i,r}}():undefined)},function(e,t,r){var n=r(17);e.exports=function(e){if(!n(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},function(e,t,r){var n=r(4),a=r(108),i=r(113);n({target:"Object",stat:!0},{fromEntries:function(e){var t={};return a(e,(function(e,r){i(t,e,r)}),undefined,!0),t}})},function(e,t,r){var n=r(23),a=r(109),i=r(42),o=r(66),s=r(110),l=r(112),c=function(e,t){this.stopped=e,this.result=t};(e.exports=function(e,t,r,u,d){var h,f,g,p,m,v,b,y=o(t,r,u?2:1);if(d)h=e;else{if("function"!=typeof(f=s(e)))throw TypeError("Target is not iterable");if(a(f)){for(g=0,p=i(e.length);p>g;g++)if((m=u?y(n(b=e[g])[0],b[1]):y(e[g]))&&m instanceof c)return m;return new c(!1)}h=f.call(e)}for(v=h.next;!(b=v.call(h)).done;)if("object"==typeof(m=l(h,y,b.value,u))&&m&&m instanceof c)return m;return new c(!1)}).stop=function(e){return new c(!0,e)}},function(e,t,r){var n=r(74),a=r(98),i=n("iterator"),o=Array.prototype;e.exports=function(e){return e!==undefined&&(a.Array===e||o[i]===e)}},function(e,t,r){var n=r(111),a=r(98),i=r(74)("iterator");e.exports=function(e){if(e!=undefined)return e[i]||e["@@iterator"]||a[n(e)]}},function(e,t,r){var n=r(14),a=r(74)("toStringTag"),i="Arguments"==n(function(){return arguments}());e.exports=function(e){var t,r,o;return e===undefined?"Undefined":null===e?"Null":"string"==typeof(r=function(e,t){try{return e[t]}catch(r){}}(t=Object(e),a))?r:i?n(t):"Object"==(o=n(t))&&"function"==typeof t.callee?"Arguments":o}},function(e,t,r){var n=r(23);e.exports=function(e,t,r,a){try{return a?t(n(r)[0],r[1]):t(r)}catch(o){var i=e["return"];throw i!==undefined&&n(i.call(e)),o}}},function(e,t,r){"use strict";var n=r(16),a=r(22),i=r(11);e.exports=function(e,t,r){var o=n(t);o in e?a.f(e,o,i(0,r)):e[o]=r}},function(e,t,r){r(115);var n=r(38);e.exports=n.Object.values},function(e,t,r){var n=r(4),a=r(94).values;n({target:"Object",stat:!0},{values:function(e){return a(e)}})},function(e,t,r){r(117);var n=r(38);e.exports=n.Math.sign},function(e,t,r){r(4)({target:"Math",stat:!0},{sign:r(118)})},function(e,t){e.exports=Math.sign||function(e){return 0==(e=+e)||e!=e?e:e<0?-1:1}},function(e,t,r){r(120);var n=r(65);e.exports=n("Array","findIndex")},function(e,t,r){"use strict";var n=r(4),a=r(71).findIndex,i=r(97),o=!0;"findIndex"in[]&&Array(1).findIndex((function(){o=!1})),n({target:"Array",proto:!0,forced:o},{findIndex:function(e){return a(this,e,arguments.length>1?arguments[1]:undefined)}}),i("findIndex")},function(e,t,r){r(122);var n=r(65);e.exports=n("Array","find")},function(e,t,r){"use strict";var n=r(4),a=r(71).find,i=r(97),o=!0;"find"in[]&&Array(1).find((function(){o=!1})),n({target:"Array",proto:!0,forced:o},{find:function(e){return a(this,e,arguments.length>1?arguments[1]:undefined)}}),i("find")},function(e,t,r){r(124),r(126);var n=r(38);e.exports=n.Array.from},function(e,t,r){"use strict";var n=r(125).charAt,a=r(30),i=r(99),o=a.set,s=a.getterFor("String Iterator");i(String,"String",(function(e){o(this,{type:"String Iterator",string:String(e),index:0})}),(function(){var e,t=s(this),r=t.string,a=t.index;return a>=r.length?{value:undefined,done:!0}:(e=n(r,a),t.index+=e.length,{value:e,done:!1})}))},function(e,t,r){var n=r(43),a=r(15),i=function(e){return function(t,r){var i,o,s=String(a(t)),l=n(r),c=s.length;return l<0||l>=c?e?"":undefined:(i=s.charCodeAt(l))<55296||i>56319||l+1===c||(o=s.charCodeAt(l+1))<56320||o>57343?e?s.charAt(l):i:e?s.slice(l,l+2):o-56320+(i-55296<<10)+65536}};e.exports={codeAt:i(!1),charAt:i(!0)}},function(e,t,r){var n=r(4),a=r(127);n({target:"Array",stat:!0,forced:!r(128)((function(e){Array.from(e)}))},{from:a})},function(e,t,r){"use strict";var n=r(66),a=r(61),i=r(112),o=r(109),s=r(42),l=r(113),c=r(110);e.exports=function(e){var t,r,u,d,h,f=a(e),g="function"==typeof this?this:Array,p=arguments.length,m=p>1?arguments[1]:undefined,v=m!==undefined,b=0,y=c(f);if(v&&(m=n(m,p>2?arguments[2]:undefined,2)),y==undefined||g==Array&&o(y))for(r=new g(t=s(f.length));t>b;b++)l(r,b,v?m(f[b],b):f[b]);else for(h=(d=y.call(f)).next,r=new g;!(u=h.call(d)).done;b++)l(r,b,v?i(d,m,[u.value,b],!0):u.value);return r.length=b,r}},function(e,t,r){var n=r(74)("iterator"),a=!1;try{var i=0,o={next:function(){return{done:!!i++}},"return":function(){a=!0}};o[n]=function(){return this},Array.from(o,(function(){throw 2}))}catch(s){}e.exports=function(e,t){if(!t&&!a)return!1;var r=!1;try{var i={};i[n]=function(){return{next:function(){return{done:r=!0}}}},e(i)}catch(s){}return r}},function(e,t,r){r(130);var n=r(65);e.exports=n("Array","fill")},function(e,t,r){var n=r(4),a=r(131),i=r(97);n({target:"Array",proto:!0},{fill:a}),i("fill")},function(e,t,r){"use strict";var n=r(61),a=r(44),i=r(42);e.exports=function(e){for(var t=n(this),r=i(t.length),o=arguments.length,s=a(o>1?arguments[1]:undefined,r),l=o>2?arguments[2]:undefined,c=l===undefined?r:a(l,r);c>s;)t[s++]=e;return t}},function(e,t,r){r(133);var n=r(65);e.exports=n("Array","includes")},function(e,t,r){"use strict";var n=r(4),a=r(41).includes,i=r(97);n({target:"Array",proto:!0},{includes:function(e){return a(this,e,arguments.length>1?arguments[1]:undefined)}}),i("includes")},function(e,t,r){r(135),e.exports=Math.pow(2,-52)},function(e,t,r){r(4)({target:"Number",stat:!0},{EPSILON:Math.pow(2,-52)})},function(e,t,r){r(137);var n=r(38);e.exports=n.Number.parseFloat},function(e,t,r){var n=r(4),a=r(138);n({target:"Number",stat:!0,forced:Number.parseFloat!=a},{parseFloat:a})},function(e,t,r){var n=r(5),a=r(139).trim,i=r(140),o=n.parseFloat,s=1/o(i+"-0")!=-Infinity;e.exports=s?function(e){var t=a(String(e)),r=o(t);return 0===r&&"-"==t.charAt(0)?-0:r}:o},function(e,t,r){var n=r(15),a="["+r(140)+"]",i=RegExp("^"+a+a+"*"),o=RegExp(a+a+"*$"),s=function(e){return function(t){var r=String(n(t));return 1&e&&(r=r.replace(i,"")),2&e&&(r=r.replace(o,"")),r}};e.exports={start:s(1),end:s(2),trim:s(3)}},function(e,t){e.exports="\t\n\x0B\f\r \u2028\u2029\ufeff"},function(e,t,r){r(142);var n=r(38);e.exports=n.Number.parseInt},function(e,t,r){var n=r(4),a=r(143);n({target:"Number",stat:!0,forced:Number.parseInt!=a},{parseInt:a})},function(e,t,r){var n=r(5),a=r(139).trim,i=r(140),o=n.parseInt,s=/^[+-]?0[Xx]/,l=8!==o(i+"08")||22!==o(i+"0x16");e.exports=l?function(e,t){var r=a(String(e));return o(r,t>>>0||(s.test(r)?16:10))}:o},function(e,t,r){r(145),e.exports=-9007199254740991},function(e,t,r){r(4)({target:"Number",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},function(e,t,r){r(147),e.exports=9007199254740991},function(e,t,r){r(4)({target:"Number",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},function(e,t,r){r(149);var n=r(38);e.exports=n.Number.isFinite},function(e,t,r){r(4)({target:"Number",stat:!0},{isFinite:r(150)})},function(e,t,r){var n=r(5).isFinite;e.exports=Number.isFinite||function(e){return"number"==typeof e&&n(e)}},function(e,t,r){r(152);var n=r(38);e.exports=n.Number.isNaN},function(e,t,r){r(4)({target:"Number",stat:!0},{isNaN:function(e){return e!=e}})},function(e,t,r){r(154),r(163),r(124),r(165);var n=r(38);e.exports=n.Set},function(e,t,r){"use strict";var n=r(155),a=r(160);e.exports=n("Set",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),a)},function(e,t,r){"use strict";var n=r(4),a=r(5),i=r(47),o=r(24),s=r(156),l=r(108),c=r(158),u=r(17),d=r(9),h=r(128),f=r(104),g=r(159);e.exports=function(e,t,r,p,m){var v=a[e],b=v&&v.prototype,y=v,x=p?"set":"add",C={},w=function(e){var t=b[e];o(b,e,"add"==e?function(e){return t.call(this,0===e?0:e),this}:"delete"==e?function(e){return!(m&&!u(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return m&&!u(e)?undefined:t.call(this,0===e?0:e)}:"has"==e?function(e){return!(m&&!u(e))&&t.call(this,0===e?0:e)}:function(e,r){return t.call(this,0===e?0:e,r),this})};if(i(e,"function"!=typeof v||!(m||b.forEach&&!d((function(){(new v).entries().next()})))))y=r.getConstructor(t,e,p,x),s.REQUIRED=!0;else if(i(e,!0)){var _=new y,k=_[x](m?{}:-0,1)!=_,S=d((function(){_.has(1)})),E=h((function(e){new v(e)})),A=!m&&d((function(){for(var e=new v,t=5;t--;)e[x](t,t);return!e.has(-0)}));E||((y=t((function(t,r){c(t,y,e);var n=g(new v,t,y);return r!=undefined&&l(r,n[x],n,p),n}))).prototype=b,b.constructor=y),(S||A)&&(w("delete"),w("has"),p&&w("get")),(A||k)&&w(x),m&&b.clear&&delete b.clear}return C[e]=y,n({global:!0,forced:y!=v},C),f(y,e),m||r.setStrong(y,e,p),y}},function(e,t,r){var n=r(34),a=r(17),i=r(18),o=r(22).f,s=r(33),l=r(157),c=s("meta"),u=0,d=Object.isExtensible||function(){return!0},h=function(e){o(e,c,{value:{objectID:"O"+ ++u,weakData:{}}})},f=e.exports={REQUIRED:!1,fastKey:function(e,t){if(!a(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!i(e,c)){if(!d(e))return"F";if(!t)return"E";h(e)}return e[c].objectID},getWeakData:function(e,t){if(!i(e,c)){if(!d(e))return!0;if(!t)return!1;h(e)}return e[c].weakData},onFreeze:function(e){return l&&f.REQUIRED&&d(e)&&!i(e,c)&&h(e),e}};n[c]=!0},function(e,t,r){var n=r(9);e.exports=!n((function(){return Object.isExtensible(Object.preventExtensions({}))}))},function(e,t){e.exports=function(e,t,r){if(!(e instanceof t))throw TypeError("Incorrect "+(r?r+" ":"")+"invocation");return e}},function(e,t,r){var n=r(17),a=r(105);e.exports=function(e,t,r){var i,o;return a&&"function"==typeof(i=t.constructor)&&i!==r&&n(o=i.prototype)&&o!==r.prototype&&a(e,o),e}},function(e,t,r){"use strict";var n=r(22).f,a=r(55),i=r(161),o=r(66),s=r(158),l=r(108),c=r(99),u=r(162),d=r(8),h=r(156).fastKey,f=r(30),g=f.set,p=f.getterFor;e.exports={getConstructor:function(e,t,r,c){var u=e((function(e,n){s(e,u,t),g(e,{type:t,index:a(null),first:undefined,last:undefined,size:0}),d||(e.size=0),n!=undefined&&l(n,e[c],e,r)})),f=p(t),m=function(e,t,r){var n,a,i=f(e),o=v(e,t);return o?o.value=r:(i.last=o={index:a=h(t,!0),key:t,value:r,previous:n=i.last,next:undefined,removed:!1},i.first||(i.first=o),n&&(n.next=o),d?i.size++:e.size++,"F"!==a&&(i.index[a]=o)),e},v=function(e,t){var r,n=f(e),a=h(t);if("F"!==a)return n.index[a];for(r=n.first;r;r=r.next)if(r.key==t)return r};return i(u.prototype,{clear:function(){for(var e=f(this),t=e.index,r=e.first;r;)r.removed=!0,r.previous&&(r.previous=r.previous.next=undefined),delete t[r.index],r=r.next;e.first=e.last=undefined,d?e.size=0:this.size=0},"delete":function(e){var t=f(this),r=v(this,e);if(r){var n=r.next,a=r.previous;delete t.index[r.index],r.removed=!0,a&&(a.next=n),n&&(n.previous=a),t.first==r&&(t.first=n),t.last==r&&(t.last=a),d?t.size--:this.size--}return!!r},forEach:function(e){for(var t,r=f(this),n=o(e,arguments.length>1?arguments[1]:undefined,3);t=t?t.next:r.first;)for(n(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!v(this,e)}}),i(u.prototype,r?{get:function(e){var t=v(this,e);return t&&t.value},set:function(e,t){return m(this,0===e?0:e,t)}}:{add:function(e){return m(this,e=0===e?0:e,e)}}),d&&n(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(e,t,r){var n=t+" Iterator",a=p(t),i=p(n);c(e,t,(function(e,t){g(this,{type:n,target:e,state:a(e),kind:t,last:undefined})}),(function(){for(var e=i(this),t=e.kind,r=e.last;r&&r.removed;)r=r.previous;return e.target&&(e.last=r=r?r.next:e.state.first)?"keys"==t?{value:r.key,done:!1}:"values"==t?{value:r.value,done:!1}:{value:[r.key,r.value],done:!1}:(e.target=undefined,{value:undefined,done:!0})}),r?"entries":"values",!r,!0),u(t)}}},function(e,t,r){var n=r(24);e.exports=function(e,t,r){for(var a in t)n(e,a,t[a],r);return e}},function(e,t,r){"use strict";var n=r(37),a=r(22),i=r(74),o=r(8),s=i("species");e.exports=function(e){var t=n(e),r=a.f;o&&t&&!t[s]&&r(t,s,{configurable:!0,get:function(){return this}})}},function(e,t,r){var n=r(24),a=r(164),i=Object.prototype;a!==i.toString&&n(i,"toString",a,{unsafe:!0})},function(e,t,r){"use strict";var n=r(111),a={};a[r(74)("toStringTag")]="z",e.exports="[object z]"!==String(a)?function(){return"[object "+n(this)+"]"}:a.toString},function(e,t,r){var n=r(5),a=r(166),i=r(96),o=r(21),s=r(74),l=s("iterator"),c=s("toStringTag"),u=i.values;for(var d in a){var h=n[d],f=h&&h.prototype;if(f){if(f[l]!==u)try{o(f,l,u)}catch(p){f[l]=u}if(f[c]||o(f,c,d),a[d])for(var g in i)if(f[g]!==i[g])try{o(f,g,i[g])}catch(p){f[g]=i[g]}}}},function(e,t){e.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},function(e,t,r){r(168),r(163),r(124),r(165);var n=r(38);e.exports=n.Map},function(e,t,r){"use strict";var n=r(155),a=r(160);e.exports=n("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),a,!0)},function(e,t,r){r(170),r(172);var n=r(65);e.exports=n("Array","flat")},function(e,t,r){"use strict";var n=r(4),a=r(171),i=r(61),o=r(42),s=r(43),l=r(72);n({target:"Array",proto:!0},{flat:function(){var e=arguments.length?arguments[0]:undefined,t=i(this),r=o(t.length),n=l(t,0);return n.length=a(n,t,t,r,0,e===undefined?1:s(e)),n}})},function(e,t,r){"use strict";var n=r(73),a=r(42),i=r(66),o=function(e,t,r,s,l,c,u,d){for(var h,f=l,g=0,p=!!u&&i(u,d,3);g<s;){if(g in r){if(h=p?p(r[g],g,t):r[g],c>0&&n(h))f=o(e,t,h,a(h.length),f,c-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[f]=h}f++}g++}return f};e.exports=o},function(e,t,r){r(97)("flat")},function(e,t,r){(function(e,t){!function(){"use strict";function r(e){var t=this.constructor;return this.then((function(r){return t.resolve(e()).then((function(){return r}))}),(function(r){return t.resolve(e()).then((function(){return t.reject(r)}))}))}function n(e){return!(!e||"undefined"==typeof e.length)}function a(){}function i(e){if(!(this instanceof i))throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=undefined,this._deferreds=[],u(e,this)}function o(e,t){for(;3===e._state;)e=e._value;0!==e._state?(e._handled=!0,i._immediateFn((function(){var r=1===e._state?t.onFulfilled:t.onRejected;if(null!==r){var n;try{n=r(e._value)}catch(o){return void l(t.promise,o)}s(t.promise,n)}else(1===e._state?s:l)(t.promise,e._value)}))):e._deferreds.push(t)}function s(e,t){try{if(t===e)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"==typeof t||"function"==typeof t)){var r=t.then;if(t instanceof i)return e._state=3,e._value=t,void c(e);if("function"==typeof r)return void u(function(e,t){return function(){e.apply(t,arguments)}}(r,t),e)}e._state=1,e._value=t,c(e)}catch(o){l(e,o)}}function l(e,t){e._state=2,e._value=t,c(e)}function c(e){2===e._state&&0===e._deferreds.length&&i._immediateFn((function(){e._handled||i._unhandledRejectionFn(e._value)}));for(var t=0,r=e._deferreds.length;r>t;t++)o(e,e._deferreds[t]);e._deferreds=null}function u(e,t){var r=!1;try{e((function(e){r||(r=!0,s(t,e))}),(function(e){r||(r=!0,l(t,e))}))}catch(i){if(r)return;r=!0,l(t,i)}}var d=setTimeout;i.prototype["catch"]=function(e){return this.then(null,e)},i.prototype.then=function(e,t){var r=new this.constructor(a);return o(this,new function(e,t,r){this.onFulfilled="function"==typeof e?e:null,this.onRejected="function"==typeof t?t:null,this.promise=r}(e,t,r)),r},i.prototype["finally"]=r,i.all=function(e){return new i((function(t,r){function a(e,n){try{if(n&&("object"==typeof n||"function"==typeof n)){var s=n.then;if("function"==typeof s)return void s.call(n,(function(t){a(e,t)}),r)}i[e]=n,0==--o&&t(i)}catch(u){r(u)}}if(!n(e))return r(new TypeError("Promise.all accepts an array"));var i=Array.prototype.slice.call(e);if(0===i.length)return t([]);for(var o=i.length,s=0;i.length>s;s++)a(s,i[s])}))},i.resolve=function(e){return e&&"object"==typeof e&&e.constructor===i?e:new i((function(t){t(e)}))},i.reject=function(e){return new i((function(t,r){r(e)}))},i.race=function(e){return new i((function(t,r){if(!n(e))return r(new TypeError("Promise.race accepts an array"));for(var a=0,o=e.length;o>a;a++)i.resolve(e[a]).then(t,r)}))},i._immediateFn="function"==typeof e&&function(t){e(t)}||function(e){d(e,0)},i._unhandledRejectionFn=function(e){void 0!==console&&console&&console.warn("Possible Unhandled Promise Rejection:",e)};var h=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==t)return t;throw Error("unable to locate global object")}();"Promise"in h?h.Promise.prototype["finally"]||(h.Promise.prototype["finally"]=r):h.Promise=i}()}).call(this,r(174).setImmediate,r(6))},function(e,t,r){(function(e){var n=void 0!==e&&e||"undefined"!=typeof self&&self||window,a=Function.prototype.apply;function i(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new i(a.call(setTimeout,n,arguments),clearTimeout)},t.setInterval=function(){return new i(a.call(setInterval,n,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(n,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},r(175),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,r(6))},function(e,t,r){(function(e,t){!function(e,r){"use strict";if(!e.setImmediate){var n,a,i,o,s,l=1,c={},u=!1,d=e.document,h=Object.getPrototypeOf&&Object.getPrototypeOf(e);h=h&&h.setTimeout?h:e,"[object process]"==={}.toString.call(e.process)?n=function(e){t.nextTick((function(){g(e)}))}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,r=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=r,t}}()?e.MessageChannel?((i=new MessageChannel).port1.onmessage=function(e){g(e.data)},n=function(e){i.port2.postMessage(e)}):d&&"onreadystatechange"in d.createElement("script")?(a=d.documentElement,n=function(e){var t=d.createElement("script");t.onreadystatechange=function(){g(e),t.onreadystatechange=null,a.removeChild(t),t=null},a.appendChild(t)}):n=function(e){setTimeout(g,0,e)}:(o="setImmediate$"+Math.random()+"$",s=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(o)&&g(+t.data.slice(o.length))},e.addEventListener?e.addEventListener("message",s,!1):e.attachEvent("onmessage",s),n=function(t){e.postMessage(o+t,"*")}),h.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),r=0;r<t.length;r++)t[r]=arguments[r+1];var a={callback:e,args:t};return c[l]=a,n(l),l++},h.clearImmediate=f}function f(e){delete c[e]}function g(e){if(u)setTimeout(g,0,e);else{var t=c[e];if(t){u=!0;try{!function(e){var t=e.callback,n=e.args;switch(n.length){case 0:t();break;case 1:t(n[0]);break;case 2:t(n[0],n[1]);break;case 3:t(n[0],n[1],n[2]);break;default:t.apply(r,n)}}(t)}finally{f(e),u=!1}}}}}("undefined"==typeof self?void 0===e?this:e:self)}).call(this,r(6),r(176))},function(e,t){var r,n,a=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function s(e){if(r===setTimeout)return setTimeout(e,0);if((r===i||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:i}catch(e){r=i}try{n="function"==typeof clearTimeout?clearTimeout:o}catch(e){n=o}}();var l,c=[],u=!1,d=-1;function h(){u&&l&&(u=!1,l.length?c=l.concat(c):d=-1,c.length&&f())}function f(){if(!u){var e=s(h);u=!0;for(var t=c.length;t;){for(l=c,c=[];++d<t;)l&&l[d].run();d=-1,t=c.length}l=null,u=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===o||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}(e)}}function g(e,t){this.fun=e,this.array=t}function p(){}a.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];c.push(new g(e,t)),1!==c.length||u||s(f)},g.prototype.run=function(){this.fun.apply(null,this.array)},a.title="browser",a.browser=!0,a.env={},a.argv=[],a.version="",a.versions={},a.on=p,a.addListener=p,a.once=p,a.off=p,a.removeListener=p,a.removeAllListeners=p,a.emit=p,a.prependListener=p,a.prependOnceListener=p,a.listeners=function(e){return[]},a.binding=function(e){throw new Error("process.binding is not supported")},a.cwd=function(){return"/"},a.chdir=function(e){throw new Error("process.chdir is not supported")},a.umask=function(){return 0}},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(179)),i=n(r(398)),o=n(r(399)),s=n(r(232)),l=r(184);a["default"].addDep(s["default"]);var c,u=(c={},function(e){var t=e;return t=t&&t.replace(/(^\s*)|(\s*$)/g,"")||"",c[t]||(c[t]={key:t,subject:t.replace(/[^\/]*?$/gi,""),predicate:t.replace(/^.*\//gi,"")})});function d(e){switch(i["default"][e]){case"charts":return Promise.all([r.e(2),r.e(1)]).then(r.t.bind(null,401,7));case"timeseries":return Promise.all([r.e(2),r.e(3)]).then(r.t.bind(null,674,7));case"powercharts":return Promise.all([r.e(2),r.e(4)]).then(r.t.bind(null,852,7));case"widgets":return Promise.all([r.e(2),r.e(5)]).then(r.t.bind(null,1017,7));case"zoomline":return Promise.all([r.e(2),r.e(6)]).then(r.t.bind(null,1111,7));case"gantt":return Promise.all([r.e(2),r.e(7)]).then(r.t.bind(null,1122,7));case"treemap":return Promise.all([r.e(2),r.e(8)]).then(r.t.bind(null,1140,7));case"zoomscatter":return Promise.all([r.e(2),r.e(9)]).then(r.t.bind(null,1146,7));case"msstackedcolumn2dsplinedy":return Promise.all([r.e(2),r.e(10)]).then(r.t.bind(null,1150,7));case"overlappedbar2d":return Promise.all([r.e(2),r.e(11)]).then(r.t.bind(null,1154,7));case"overlappedcolumn2d":return Promise.all([r.e(2),r.e(12)]).then(r.t.bind(null,1159,7));default:return(0,o["default"])(""+a["default"].getScriptBaseURI()+function(e){var t,r=a["default"].options,n=e;return n=function(e){return void 0===e&&(e=""),""===e?e:e.replace(/^[\s\S]*\//gi,"").replace(/\?/g,"%3F").replace(/\#/g,"%23").replace(/\:/g,"%3A")}((t=u(n)).predicate),t.subject+r.html5ScriptNamePrefix+n+r.html5ScriptNameSuffix}(e))}}a["default"].addEventListener("resourceRequested",(function(e){var t=e.sender,r=t.chartType(),n=t.options.chartTypeSourcePath||"";a["default"].getDep(r,"chartapi")||a["default"].getDep(r,"maps")||a["default"].addDep({name:r,type:"dependency",extension:d(n+r)})})),a["default"].addEventListener("preconfigure",(function(e){var t=e.sender;if("chartAPI"===t.getType()){var n=t.getFromEnv("dataSource");n&&n.chart&&(0,l.pluck)(n.chart.exportenabled,0)&&!a["default"].getDep("ExcelExport")&&a["default"].addDep({name:"ExcelExport",extension:Promise.all([r.e(2),r.e(13)]).then(r.t.bind(null,1163,7)).then((function(e){var t=e["default"];a["default"].addDep(t)}))})}})),window&&r(400)&&(window.FusionCharts=a["default"]);var h=a["default"];t["default"]=h},function(e,t){e.exports=function(e){return e&&e.__esModule?e:{"default":e}}},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(180)),i=r(191),o=n(r(339)),s=r(365),l=r(394),c=r(395);a["default"].DataStore=o["default"],a["default"].DataStore.Operators={between:s.between,equals:s.equals,less:s.less,lessEquals:s.lessEquals,greater:s.greater,greaterEquals:s.greaterEquals,filter:s.filter,select:s.select,groupBy:s.groupBy,pipe:s.pipe,sort:s.sort,pivot:s.pivot},a["default"].Utils={duration:c.duration,before:c.before,after:c.after,parseDate:c.parseDate,formatDate:c.formatDate,DatetimeUnits:c.DatetimeUnits,Weekdays:c.Weekdays},a["default"].DataStore.Aggregators={aggregatorStore:l.aggregatorStore};var u=["type","id","width","height","debugMode","registerWithJS","backgroundColor","scaleMode","lang","detectFlashVersion","autoInstallRedirect"],d=function(e,t){var r,n;for(r=0,n=u.length;r<n;r++)"object"==typeof t[r]?Object.assign(e,t[r]):e[u[r]]=t[r];return e};function h(e){var t=e;return this instanceof h?(1===arguments.length&&"object"==typeof t||(t=d({},arguments)),new(Function.prototype.bind.apply(a["default"],[null].concat(t)))):1===arguments.length&&t instanceof Array&&"private"===t[0]?a["default"].register("module",t):1===arguments.length&&"string"==typeof t?a["default"].getChartFromId(t):void(0,i.raiseError)(h,"25081840","run","",new SyntaxError('Use the "new" keyword while creating a new FusionCharts object'))}Object.getOwnPropertyNames(a["default"]).filter((function(e){return!0===Object.getOwnPropertyDescriptor(a["default"],e).writable})).forEach((function(e){h[e]=a["default"][e]}));var f=h;t["default"]=f},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(181)),i=n(r(232));a["default"].addDep(i["default"]);var o=a["default"];t["default"]=o},function(e,t,r){"use strict";var n=r(182),a=r(178);t.__esModule=!0,t["default"]=void 0;var i,o,s,l,c,u,d=a(r(183)),h=r(184),f=r(191),g=r(192),p=r(193),m=a(r(194)),v=n(r(195)),b=a(r(204)),y=r(196),x=a(r(207)),C=a(r(208)),w=a(r(209)),_=a(r(210)),k=a(r(213)),S=a(r(215)),E=a(r(216)),A=a(r(227)),T=a(r(231)),M="json",F="3.15.0-sr.1",I=/(^|[\/\\])(fusioncharts\.js)([\?#].*)?$/gi,L=/^(FusionCharts|FusionWidgets|FusionMaps)/,N=/[^\%\d]*$/gi,D=/url$/i,O=!0,R="url",P={position:"relative",textAlign:"left",lineHeight:"normal",display:"inline-block",zoom:"1",vAlign:"middle",fontWeight:"normal",fontVariant:"normal",fontStyle:"normal",textDecoration:"none",ieSevenDisplay:"inline",padding:"0",margin:"0",border:"none",direction:"ltr",transform:"none"},V=function(e){return e.toString().toLowerCase()},B=function(){return{state:2}},j=(o={},s=function fe(){var e,t,r,n,a,s=0,l=parseInt(de.options.visibilityTrackingInterval,10)||300;for(e in o)if(s+=1,t=o[e].chart,r=o[e].container,n=o[e].insertMode,a=o[e].callback,t.disposed||!G(r)){if(delete o[e],s-=1,delete t.containerHidden,t.disposed)return;t.renderOpts={containerElement:r,insertMode:n,callback:a},t._addChartDependency("chartContainer",{scopeOf:t,opts:{containerElement:r,insertMode:n,callback:a},resolve:ce}),t._setState()}else o[e]&&o[e].chart&&(o[e].chart.containerHidden=!0,o[e].chart._addChartDependency("chartContainer",{resolve:B}),o[e].chart._setState());i=s?setTimeout(fe,l):clearTimeout(i)},function(e,t,r,n){o[e.id]={chart:e,container:t,insertMode:r,callback:n},i||(i=setTimeout(s,parseInt(de.options.visibilityTrackingInterval,10)||300))}),G=function ge(e){var t=e.parentNode;return!!t&&9!==t.nodeType&&("none"===function(e,t){var r=t;return window.getComputedStyle?r=window.getComputedStyle(e).getPropertyValue(r):e.currentStyle&&(r=e.currentStyle[r]),r}(e,"display")||!!t&&ge(t))},H=0,z=!1,U=["disposed","error","waiting","ready","initialized"],X={},W="https://www.fusioncharts.com/dev/migration/deprecated-functionalities?version=3.13.0",$='You are using incompatible files or deprecated "register" API of FusionCharts, please go through the docs to know more at '+W;function Y(){return this.state}function q(){return this.msg}function K(){return this.msgStyle}function J(){return"chartobject-"+(J.lastId+=1)}function Z(e){var t,r={};for(t in e)r[t.toLowerCase()]=e[t];return r}function Q(e){var t,r=[];for(t in e)r.push(t+"_"+e[t]);return r.sort(),r.join(",")}function ee(e){var t,r,n=e.options,a=e.args;return t={imageHAlign:a.loadMessageImageHAlign||n.baseChartMessageImageHAlign,imageVAlign:a.loadMessageImageVAlign||n.baseChartMessageImageVAlign,imageAlpha:a.loadMessageImageAlpha||n.baseChartMessageImageAlpha,imageScale:a.loadMessageImageScale||n.baseChartMessageImageScale},r={color:a.loadMessageColor||n.baseChartMessageColor,fontFamily:a.loadMessageFont||n.baseChartMessageFont,fontSize:a.loadMessageFontSize||n.baseChartMessageFontSize},{msg:e.options.showChartLoadingMessage?n.PBarLoadingText||n.loadMessage:"",msgStyle:{message:r,image:t}}}function te(e){var t,r,n=e.args,a=e.options;return t={imageHAlign:n.typeNotSupportedMessageImageHAlign||a.baseChartMessageImageHAlign,imageVAlign:n.typeNotSupportedMessageImageVAlign||a.baseChartMessageImageVAlign,imageAlpha:n.typeNotSupportedMessageImageAlpha||a.baseChartMessageImageAlpha,imageScale:n.typeNotSupportedMessageImageScale||a.baseChartMessageImageScale},r={color:n.typeNotSupportedMessageColor||a.baseChartMessageColor,fontFamily:n.typeNotSupportedMessageFont||a.baseChartMessageFont,fontSize:n.typeNotSupportedMessageFontSize||a.baseChartMessageFontSize},z&&(a.messageURL=W),{msg:z?$:a.typeNotSupportedMessage,msgStyle:{image:t,message:r}}}function re(e){var t,r,n=e.args,a=e.options;return t={imageHAlign:n.browserNotSupportedMessageImageHAlign||a.baseChartMessageImageHAlign,imageVAlign:n.browserNotSupportedMessageImageVAlign||a.baseChartMessageImageVAlign,imageAlpha:n.browserNotSupportedMessageImageAlpha||a.baseChartMessageImageAlpha,imageScale:n.browserNotSupportedMessageImageScale||a.baseChartMessageImageScale},r={color:n.browserNotSupportedMessageColor||a.baseChartMessageColor,fontFamily:n.browserNotSupportedMessageFont||a.baseChartMessageFont,fontSize:n.browserNotSupportedMessageFontSize||a.baseChartMessageFontSize},{msg:a.browserNotSupportedMessage,msgStyle:{image:t,message:r}}}function ne(){z=!0}function ae(e){var t,r,n,a=this.opts,i=a.data,o=a.sanitisedFormat,s=a.silent,l=(0,g.getDepsByType)("transcoder"),u=l[o]&&l[o](),d=e.options,m=function(e){var t,r,n=e.options,a=e.args;return t={imageHAlign:(0,h.pluck)(a.dataInvalidMessageImageHAlign,n.baseChartMessageImageHAlign).toLowerCase(),imageVAlign:(0,h.pluck)(a.dataInvalidMessageImageVAlign,n.baseChartMessageImageVAlign).toLowerCase(),imageAlpha:(0,h.pluckNumber)(a.dataInvalidMessageImageAlpha,n.baseChartMessageImageAlpha),imageScale:(0,h.pluckNumber)(a.dataInvalidMessageImageScale,n.baseChartMessageImageScale)},r={fontFamily:a.dataInvalidMessageFont||n.baseChartMessageFont,fontSize:a.dataInvalidMessageFontSize||n.baseChartMessageFontSize,color:a.dataInvalidMessageColor||n.baseChartMessageColor},{msg:n.dataInvalidMessage,msgStyle:{image:t,message:r}}}(e),v=m.msg,b=m.msgStyle;return e.__state.newDataArrived=!0,u&&u.toJSON?n=(r=u.toJSON(i,e)).error?{state:1,msg:v,msgStyle:b}:{state:3}:(r={error:new Error("Unable to convert data.")},n={state:1,msg:v,msgStyle:b}),t=r.error?r:r.data,d.dataErroneous=d.error=r.error,d.dataSource=t,d.dataFormat=o,d.dataErroneous||(0,f.triggerEvent)("beforeDataUpdate",e,function(e,t,r,n){var a={};return a.native=r===M,a.dataFormat=r,a.format=M,a.data=t,a.dataSource=e,a.silent=!!n,a}(i,t,o,s),c,p.onDataUpdateSuccess,p.onDataUpdateCancel),n}function ie(e){var t,r,n,a,i,o,s,l=this.opts,c=l.url,u=void 0===c?"":c,d=l.format,p=l.config,m=l.callback,v=l.silent,b=(0,g.getDepsByType)("transcoder"),y=(o=(n=e).options,s=n.args,a={imageHAlign:(0,h.pluck)(s.dataLoadStartMessageImageHAlign,o.baseChartMessageImageHAlign).toLowerCase(),imageVAlign:(0,h.pluck)(s.dataLoadStartMessageImageVAlign,o.baseChartMessageImageVAlign).toLowerCase(),imageAlpha:(0,h.pluckNumber)(s.dataLoadStartMessageImageAlpha,o.baseChartMessageImageAlpha),imageScale:(0,h.pluckNumber)(s.dataLoadStartMessageImageScale,o.baseChartMessageImageScale)},i={fontFamily:s.dataLoadStartMessageFont||o.baseChartMessageFont,fontSize:s.dataLoadStartMessageFontSize||o.baseChartMessageFontSize,color:s.dataLoadStartMessageColor||o.baseChartMessageColor},{msg:o.dataLoadStartMessage,msgStyle:{image:a,message:i}}),x=y.msg,C=y.msgStyle;return null!=d&&"function"==typeof d.toString||(d=e.options.dataFormat,(0,f.raiseWarning)(e,"03091609","param","FusionCharts#setChartDataUrl","Invalid Data Format. Reverting to current data format - "+d)),t=V(d),D.test(t)||(t+=R),r=b[t]&&b[t](),e.jsVars.stallLoad=!0,r&&r.toJSON?(r.toJSON(u,p,m,v,e),{state:2,msg:x,msgStyle:C}):{state:1,error:new Error("Unable to fetch data.")}}function oe(e){var t,r,n=e.__state,a=e.chartType(),i=e.apiInstance&&e.apiInstance.getFromEnv("toolTipController")&&e.apiInstance.getFromEnv("toolTipController").toolTips,o=(0,g.getDep)(n.lastRenderedType,"chartapi")||(0,g.getDep)(n.lastRenderedType,"maps");if(i&&(0,h.removeAllTooltipOnChart)(i,n.lastRenderedType===a),o&&n.lastRenderedType!==a&&((0,f.triggerEvent)("chartTypeChanged",e,{previousType:n.lastRenderedType,newType:a}),t=o))for(r in t)delete e[r];n.lastRenderedType=a}function se(e){var t=ee(e),n=t.msgStyle,a=t.msg;return Promise.all([r.e(2),r.e(14)]).then(r.t.bind(null,1172,7)).then((function(t){de.addDep(t["default"]),oe(e),e._addChartDependency("mapModuleLoad",{resolve:function(){return{state:3}}}),(0,f.triggerEvent)("loaded",e,{type:e.chartType(),renderer:"javascript"},[e.id]),e._setState()}))["catch"]((function(){var t=te(e),r=t.msgStyle,n=t.msg;e._addChartDependency("mapModuleLoad",{resolve:function(){return{state:1,msgStyle:r,msg:n}}}),(0,f.raiseError)(de,"12052314141","run","JavaScriptRenderer~Maps",new Error("FusionCharts' maps file is required to render the visualization.")),e._setState(),(0,f.triggerEvent)("charttypeinvalid",e,{},[e.id])})),{state:2,msgStyle:n,msg:a}}function le(e){var t=this.opts.value,r=de.getDep(t,"dependency")||de.getDep(t,"chartapi")||de.getDep(t,"maps"),n=te(e),a=n.msgStyle,i=n.msg;return z=!1,r?r.then?(de.addEventListener("register",ne),r.then((function(r){if(!e.disposed){if(r.__esModule){var n=(0,g.getDep)(t,"maps");de.addDep(r["default"]),(!n||!O)&&oe(e),e._addChartDependency("chartModuleLoad",{resolve:function(){return n&&O?e._addChartDependency("mapModuleLoad",{scopeOf:e,resolve:se}):(0,f.triggerEvent)("loaded",e,{type:t,renderer:"javascript"},[e.id]),{state:3}}})}else e._addChartDependency("chartModuleLoad",{resolve:function(){return(0,g.getDep)(t,"maps")&&O?e._addChartDependency("mapModuleLoad",{scopeOf:e,resolve:se}):(oe(e),(0,f.triggerEvent)("loaded",e,{type:t,renderer:"javascript"},[e.id])),{state:3}}});e._setState()}}))["catch"]((function(t){if(!e.disposed){if(!(t instanceof Event))throw new Error(t.stack);e._addChartDependency("chartModuleLoad",{resolve:function(){return(0,d["default"])({state:1},te(e))}}),e._setState(),(0,f.triggerEvent)("charttypeinvalid",e,{},[e.id])}})),(0,d["default"])({state:2},ee(e))):((0,g.getDep)(t,"maps")&&O?(e._addChartDependency("mapModuleLoad",{scopeOf:e,resolve:se}),e._setState()):(oe(e),(0,f.triggerEvent)("loaded",e,{type:t,renderer:"javascript"},[e.id])),{state:3}):((0,f.triggerEvent)("charttypeinvalid",this,{},[this.id]),{state:1,msgStyle:a,msg:i})}function ce(e){var t,r,n,a,i=this.opts,o=i.containerElement,s=i.insertMode,l=i.callback;if(l?"function"!=typeof l&&(l=c):"function"==typeof s?(l=s,s=c):s||"function"!=typeof o||(l=o,o=c),s=(s||e.options.insertMode).toLowerCase()||h.domInsertModes.REPLACE,void 0===o&&(o=e.options.containerElementId||e.options.containerElement),"string"==typeof o&&(o=document.getElementById(o)),null==o)return(0,f.raiseError)(e,"03091456","run",".render()",new Error("Unable to find the container DOM element.")),(0,f.triggerEvent)("containernotfound",e,{},[e.id]),{state:1};if(function(e,t){var r,n,a,i=document.getElementById(e),o=t.id||t.getAttribute("id");if(null===i)return!1;if(e===o)return!0;for(n=0,a=(r=t.getElementsByTagName("*")).length;n<a;n++)if(r[n]===i)return!1;return!0}(e.id,o))return(0,f.raiseError)(e,"05102109","run",".render()",new Error("A duplicate object already exists with the specific Id: "+e.id)),{state:1};if(G(o))return e.containerHidden=!0,j(e,o,s,l),{state:2};if(delete e.containerHidden,((r=window[e.id])&&r.FusionCharts&&r.FusionCharts===e||(r=e.ref)&&r.FusionCharts&&r.FusionCharts===e)&&(e._dispose(),r===window[e.id]&&(window[e.id]=c)),"undefined"!=typeof window[e.id])return(0,f.raiseError)(e,"25081843","comp",".render",new Error("#25081843:IECompatibility() Chart Id is same as a JavaScript variable name. Variable naming error. Please use unique name for chart JS variable, chart-id and container id.")),{state:1};if((t=document.createElement(e.options.containerElementType||"span")).setAttribute("id",e.id),"append"!==s&&"prepend"!==s)for(;o.hasChildNodes();)o.removeChild(o.firstChild);return"prepend"===s&&o.firstChild?o.insertBefore(t,o.firstChild):o.appendChild(t),e.options.containerElement=o,e.options.containerElementId=o.id,(a=t.style)&&(a.position=P.position,a.textAlign=P.textAlign,a.lineHeight=P.lineHeight,a.display=P.display,a.zoom=P.zoom,a["vertical-align"]=P.vAlign,a.fontWeight=P.fontWeight,a.fontVariant=P.fontVariant,a.fontStyle=P.fontStyle,a.textDecoration=P.textDecoration,a["*DISPLAY"]=P.ieSevenDisplay,a.padding=P.padding,a.margin=P.margin,a.border=P.border,a.direction=P.direction,a.transform=P.transform),e.options.containerClassName&&(t.className=e.options.containerClassName),n=(0,h.normalizeCSSDimension)(e.width,e.height,t),e.__state.renderedWidth=n.pixelWidth,e.__state.renderedHeight=n.pixelHeight,e.__state.rendering=!0,e.renderOpts={containerElement:t,insertMode:s,callback:l},{state:3}}J.lastId=0;var ue,de=function(){function e(){var t,n,a=this,i={},o=e.getDep("vml","dependency");(this.__state={},this.id=h.BLANKSTRING,this._deps={},this.__state._unresolvedDeps={},this.__state.state=4,1===arguments.length&&"object"==typeof(arguments.length<=0?undefined:arguments[0])&&(i=arguments.length<=0?undefined:arguments[0]),arguments.length>1&&"object"==typeof((t=arguments.length-1)<0||arguments.length<=t?undefined:arguments[t]))&&(0,h.extend2)(i,(n=arguments.length-1)<0||arguments.length<=n?undefined:arguments[n],!1,!0);this.id="undefined"==typeof i.id?J():i.id,this.args=i,this._parsePolicies(C["default"]),this._attachDefaultEventListeners(),this.jsVars.fcObj=this,(0,f.triggerEvent)("beforeInitialize",this,i),e.items[this.id]instanceof e&&(0,f.raiseWarning)(this,"06091847","param","",new Error('A FusionCharts object with the specified id "'+this.id+'" already exists.Renaming it to '+(this.id=J()))),this.attributes.id=this.id,r.p=e.getScriptBaseURI(),o&&(this._addChartDependency("chartVmlRendererLoad",{resolve:function(){return o.then((function(t){var r=t["default"];e.addDep(r),a._addChartDependency("chartVmlRendererLoad",{resolve:function(){return{state:3}}}),a._setState()}))["catch"]((function(){(0,f.raiseError)(e,"162162788","run",">RendererError~VMLRendererLoad","Unable to load FusionCharts VML renderer."),a._addChartDependency("chartVmlRendererLoad",{resolve:function(){return{state:1}}}),a._setState()})),{state:2}}}),this._setState()),this.chartType&&this.chartType(i.type||i.swfUrl||""),this.setChartData(this.args.dataSource,this.args.dataFormat,c,c,!0),e.items[this.id]=this,e.defaultOptions=e.options,(0,f.triggerEvent)("initialized",this,i),this._setState()}e.getObjectReference=function(t){return void 0===t&&(t=""),e.items[t]&&e.items[t].ref},e.register=function(){(0,f.triggerEvent)("register",e,arguments,c,(function(){(0,f.raiseError)(this,"0604111219","run",".register()",new Error($))}))},e.render=function(t,r){return t instanceof e?(t.render(r),t):new e(t).render(r)},e.addDep=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return g.addDep.call.apply(g.addDep,[this].concat(t))},e.getDep=function(e,t){return g.getDep.call(this,e,t)},e.addEventListener=function(e,t){return(0,f.addListener)(e,t)},e.on=function(t,r){return e.addEventListener(t,r)},e.removeEventListener=function(e,t){return(0,f.removeListener)(e,t)},e.ready=function(t,r,n){void 0===r&&(r=e),void 0===n&&(n=e);var a=function(){t.call(n,r)};"function"==typeof t&&(l?setTimeout(a,0):e.addEventListener("ready",a))},e.formatNumber=function(e,t,r){void 0===t&&(t={});var n,a=Z(t),i=Q(a);return X[i]?n=X[i]:X[i]=n=new w["default"](a,{useScaleRecursively:!0}),n.configure(a),n.dataLabels(e,r)},e.transcodeData=function(e,t,r,n){var a,i,o,s=(0,g.getDepsByType)("transcoder"),l=V(r),c=V(t);if(c&&"function"==typeof c.toString&&l&&"function"==typeof l.toString&&"undefined"!=typeof s[l]&&"undefined"!=typeof s[c])return(o=s[c]()).toJSON&&(a=o.toJSON(e,this),i=s[l]().fromJSON(a.data,this)),a.error instanceof Error||(i.error=a.error),n?i:i.data;(0,f.raiseError)(this,"14090217","param",".transcodeData()","Unrecognized data-format specified during transcoding.")},e.setAnimation=function(t){!e.options._globalAnimationRule&&(e.options._globalAnimationRule=[]),e.options._globalAnimationRule.push(t)},e.setEasingEffect=function(t,r){e.getDep("redraphael","plugin").easing_formulas[t]=r},e.getScriptBaseURI=function(){return e.options.scriptBaseUri},e.setScriptBaseURI=function(t){e.options.scriptBaseUri=t,r.p=t},e.getChartFromId=function(t){return e.items[t]},e.getVersion=function(e){var t={fcs:F,"fcs-xt":{fc:"3.15.0",fw:"3.15.0",pc:"3.15.0-sr.1",fm:"3.15.0"},ft:"2.0.0"};return t[e]||t["fcs-xt"][e]||t};var t=e.prototype;return t._attachDefaultEventListeners=function(){var e,t,r=this.options.events;if(r)for(e in r)"function"==typeof r[e]&&this.addEventListener(e,r[e]);for(t in this.options.renderer="javascript",m["default"])this.addEventListener(t,m["default"][t])},t._setState=function(){var e,t,r=this._deps,n=this.__state.state,a=4;for(var i in r)r.hasOwnProperty(i)&&(a>(t=(e=r[i]).getState())&&(a=t,this.__state.currChartMsg=e.getMsg(),this.__state.currChartMsgStyle=e.getMsgStyle()),3===t&&this._removeChartDependency(i));if(this.__state.prevState=n,this.__state.state=a,n!==a&&(0,f.triggerEvent)("stateChanged",this,{prevState:U[n],state:U[a]},[this.id]),!this.containerHidden)if(3===a&&this.__state.renderInvoked){var o=this.renderOpts,s=o.containerElement,l=o.callback;this._renderChart(s,c,l),this._clearPrevContext(),delete this.renderOpts.callback}else if((2===a||1===a)&&this.__state.renderInvoked&&this._contextChanged()&&(!this.__state.renderComplete||2!==a)){var u=this.renderOpts,d=u.containerElement,h=u.callback;this._renderChart(d,"base",1===a&&h,this.__state.currChartMsg,this.__state.currChartMsgStyle),this._clearPrevContext(),1===a&&delete this.renderOpts.callback}},t._clearPrevContext=function(){this.__state.prevChartMsg=h.BLANKSTRING,this.__state.prevChartMsgStyle={}},t._contextChanged=function(){if(this.__state.currChartMsg!==this.__state.prevChartMsg)return this.__state.prevChartMsg=this.__state.currChartMsg,this.__state.prevChartMsgStyle=this.__state.currChartMsgStyle,!0;var e=this.__state.prevChartMsgStyle&&this.__state.prevChartMsgStyle.image,t=this.__state.currChartMsgStyle&&this.__state.currChartMsgStyle.image,r=this.__state.prevChartMsgStyle&&this.__state.prevChartMsgStyle.message,n=this.__state.currChartMsgStyle&&this.__state.currChartMsgStyle.message;return!(!e||e.imageHAlign===t.imageHAlign&&e.imageVAlign===t.imageVAlign&&e.imageAlpha===t.imageAlpha&&e.imageScale===t.imageScale&&r.color===n.color&&r.fontFamily===n.fontFamily&&r.fontSize===n.fontSize)&&(this.__state.prevChartMsg=this.__state.currChartMsg,this.__state.prevChartMsgStyle=this.__state.currChartMsgStyle,!0)},t._sudoSetState=function(e){this.__state.prevState=this.__state.state,this.__state.state=e,(0,f.triggerEvent)("stateChanged",this,{prevState:U[this.__state.prevState],state:U[this.__state.state]},[this.id])},t._getState=function(){return U[this.__state.state]},t._addChartDependency=function(e,t){this._deps&&this._deps[e]&&this._removeChartDependency(e),this._deps[e]=t,t.getState=Y,t.getMsg=q,t.getMsgStyle=K,Object.assign(t,t.resolve(t.scopeOf))},t._removeChartDependency=function(e){this._deps[e]&&(this._deps[e].removed=!0,delete this._deps[e])},t._parsePolicies=function(e){var t,r,n,a=this.args;for(t in e)if(C["default"][t]instanceof Array)r=a[e[t][0]],this[t]=void 0===r?e[t][1]:r;else for(n in"object"!=typeof this[t]&&(this[t]={}),e[t])r=a[e[t][n][0]],this[t][n]=void 0===r?e[t][n][1]:r},t.hasRendered=function(){return!(!this.jsVars.hcObj||!this.jsVars.hcObj.hasRendered)},t.setTransparent=function(e){var t,r=e;(t=this.jsVars)&&("boolean"!=typeof r&&null!==r&&(r=!0),t.transparent=null!==r&&!0===r)},t.addEventListener=function(e,t){return(0,f.addListener)(e,t,this)},t.on=function(e,t){return this.addEventListener(e,t)},t.removeEventListener=function(e,t){return(0,f.removeListener)(e,t,this)},t.formatNumber=function(e,t,r,n){var a,i,o,s,l,c=this.apiInstance||{},u=c.numberFormatter,d=r;switch(i=Q(d),d=d&&Z(d)||{},""===i?u?s=u:(o=Q(a=this.options.dataSource.chart||{}),X[o]?s=X[o]:X[o]=s=new w["default"](c,a)):(a=this.options.dataSource.chart||{},o=Q(a=(0,h.extend2)((0,h.extend2)({},a),d)),X[o]?s=X[o]:X[o]=s=new w["default"](c,a)),(t&&t.toLowerCase?t:"").toLowerCase()){case"yaxisvalues":l=s.yAxis(e,n);break;case"xaxisvalues":l=s.xAxis(e);break;case"scale":l=s.scale(e);break;default:l=s.dataLabels(e,n)}return l},t.clone=function(t,r){var n=typeof t,a={},i=r,o=(0,h.extend2)({},this.args,!1,!0);switch(function(e,t,r){var n,a;for(n in e)if(e[n]instanceof Array)t[e[n][0]]=r[n];else for(a in e[n])t[e[n][a][0]]=r[n][a]}(C["default"],o,this),delete o.id,delete o.animate,delete o.stallLoad,a.link=o.link,(o=(0,h.extend2)({},o,!1,!0)).link=a.link,n){case"object":(0,h.extend2)(o,t,!1,!0);break;case"boolean":i=t}return i?o:new e(o)},t.isActive=function(){if(!this.ref||window.document.getElementById(this.id)!==this.ref)return!1;try{return L.test("FusionCharts")}catch(e){return!1}},t.chartType=function(t,r){var n,a=r,i=this.options;if("string"==typeof t&&""!==t){if(a="object"==typeof a?a:{},n=t.replace(/[\?\#][\s\S]*$/g,""),i.chartType=n.replace(/^[\s\S]*\//gi,""),i.chartTypeSourcePath=-1===n.indexOf("/")?a.chartTypeSourcePath||e.options.chartTypeSourcePath||"":n.replace(/[^\/]*?$/gi,""),"zoomscatter"===i.chartType&&!document.createElement("canvas").getContext){var o=re(this),s=o.msgStyle,l=o.msg;return this._addChartDependency("chartModuleLoad",{scopeOf:this,opts:{value:i.chartType},resolve:function(){return{state:1,msgStyle:s,msg:l}}}),void this._setState()}if(("timeseries"===i.chartType||"chord"===i.chartType||"sankey"===i.chartType)&&h.isIE){var u=re(this),d=u.msgStyle,g=u.msg;return this._addChartDependency("chartModuleLoad",{scopeOf:this,opts:{value:i.chartType},resolve:function(){return{state:1,msgStyle:d,msg:g}}}),void this._setState()}(0,f.triggerEvent)("resourceRequested",this),this._addChartDependency("chartModuleLoad",{scopeOf:this,opts:{value:i.chartType},resolve:le}),"undefined"!=typeof a.dataSource&&null!==a.dataSource&&this.setChartData(a.dataSource,a.dataFormat,a.dataConfiguration),this._setState()}else if(t!==c){var p=te(this),m=p.msgStyle,v=p.msg;return this._addChartDependency("chartModuleLoad",{resolve:function(){return{state:1,msgStyle:m,msg:v}}}),this._setState(),void(0,f.triggerEvent)("charttypeinvalid",this,{},[this.id])}return(i.chartType||"").toLowerCase()},t.setChartDataUrl=function(e,t,r,n,a){void 0===e&&(e=""),this._addChartDependency("data",{scopeOf:this,opts:{url:e,format:t,config:r,callback:n,silent:a},resolve:ie}),this._setState()},t.setChartData=function(e,t,r,n,a){void 0===a&&(a=!0);var i,o=e,s=t;if(null!=o){if("string"!=typeof s)switch(typeof o){case"function":o=o.call(this,this.options.dataConfiguration),s=this.args.dataFormat="JSON";break;case"string":s=this.args.dataFormat=/^\s*?\{[\s\S]*\}\s*?$/g.test(s)?"JSON":"XML";break;case"object":s=this.args.dataFormat="JSON"}}else s=M;"xml"===(i=V(s))&&this.apiInstance&&this.apiInstance.config&&this.apiInstance.config.isXMLUnsupported||(D.test(i)?this.setChartDataUrl(o,i,r,n,a):(this._addChartDependency("data",{opts:{data:o,sanitisedFormat:i,config:r,callback:n,silent:a},scopeOf:this,resolve:ae}),!this.disposed&&this._setState()))},t.getChartData=function(e,t,r){void 0===e&&(e=M);var n,a,i=V(e),o=(0,g.getDepsByType)("transcoder")[i](),s=this.options,l=this.apiInstance,c=!r&&(n=l&&l.getCollatedData&&l.getCollatedData(s.dataSource))?n:s.dataSource;return"xml"===i&&l&&l.config&&l.config.isXMLUnsupported?h.BLANKSTRING:(!(a=o?o.fromJSON?o.fromJSON(c,this):{error:new Error("Unable to convert data.")}:{error:new Error("Data format not recognized.")}).error&&s.error&&(a.error=s.error),t?a:a.data)},t.dataReady=function(e){return e?this.__state.dataAvailable:this.__state.dataReady},t.setChartAttribute=function(e,t){var r,n,a,i,o=e;if("string"==typeof o)(o={})[arguments[0]]=t;else if(null===o||"object"!=typeof o)return;for(n in i=0,(a=(r=this.getChartData(M)).chart||r.graph||r.map)||(a={},r=Object.assign({chart:a},r)),o)i+=1,null!==o[n]?a[n.toLowerCase()]=o[n]:delete a[n.toLowerCase()];i>0&&("undefined"==typeof a.animation&&(a.animation=h.ZEROSTRING),this.setChartData(r,M))},t.getChartAttribute=function(e){var t,r,n=this.getChartData(M),a=n&&(n.chart||n.graph||n.map);if(0===arguments.length||void 0===e||void 0===a)return a;if("string"==typeof e)t=a[e.toString().toLowerCase()];else if(e instanceof Array)for(t={},r=0;r<e.length;r+=1)t[e[r]]=a[e[r].toString().toLowerCase()];else(0,f.raiseError)(this,"25081429","param","~getChartAttribute()",'Unexpected value of "attribute"');return t},t.render=function(e,t,r){return this.disposed||(this.__state.beforeRenderFired=!1,this._addChartDependency("chartContainer",{scopeOf:this,opts:{containerElement:e,insertMode:t,callback:r},resolve:ce}),this.__state.renderInvoked=!0),this._setState(),this},t._renderChart=function(e,t,r,n,a,i){if(void 0===i&&(i=!1),!this.disposed){var o,s=this,l=function(){!0!==s.disposed&&s._render(e,t,r&&function(){if(r)try{r.call(s,s.options.containerElement)}catch(e){setTimeout((function(){throw e}))}},n,a)};return i||this.__state.beforeRenderFired?l():(this.__state.beforeRenderFired=!0,(0,f.triggerEvent)("beforeRender",this,o={container:s.options.containerElement,width:this.width,height:this.height,renderer:this.options.renderer},c,l,(function(){(0,f.triggerEvent)("renderCancelled",s,o),this.__state.renderInvoked=!1}))),this}},t._render=function(t,r,n,a,i){var o=this;o.apiInstance&&o.apiInstance.removeJob("resizeScheduled"),o.__state.beforedrawFired?((0,v["default"])(e,o,t,r,n,a,i),o.__state.beforedrawFired=!0):(0,f.triggerEvent)("beforedraw",o,{},c,(function(){(0,v["default"])(e,o,t,r,n,a,i)}),(function(){(0,f.triggerEvent)("drawCancelled",o)}))},t.resizeTo=function(e,t,r){var n=this,a=n.width,i=n.height,o=n.__state,s=r,l=t,u=e;return(n.apiInstance&&n.apiInstance.config||{}).resize=!0,"object"==typeof u&&(s=l,l=u.h,u=u.w),u=null==u?a:u.toString().replace(N,""),l=null==l?i:l.toString().replace(N,""),!0!==s&&(0,f.triggerEvent)("beforeresize",n,{currentWidth:a,currentHeight:i,newWidth:u,newHeight:l},c,(function(){n.width=u,n.height=l,n.scheduleResize({width:u,height:l}),n.apiInstance&&n.apiInstance.addJob("resized"+H++,(function(){(0,f.triggerEvent)("resized",n,{id:n.id,width:n.width,height:n.height,prevWidth:a,prevHeight:i,pixelWidth:n.ref&&n.ref.offsetWidth||0,pixelHeight:n.ref&&n.ref.offsetHeight||0,originalWidth:o.renderedWidth,originalHeight:o.renderedHeight})}),y.priorityList.postRender)}),(function(){(0,f.triggerEvent)("resizecancelled",n,{currentWidth:a,currentHeight:i,cancelledTargetWidth:u,cancelledTargetHeight:l})})),this},t.dispose=function(){var t=this,r={},n=function(t){for(var n in t._dispose(),t._addChartDependency("dispose",{resolve:function(){return{state:0}}}),t._setState(),(0,f.triggerEvent)("disposed",t,r),(0,f.disposeEvents)(t),delete e.items[t.id],t)t.hasOwnProperty(n)&&delete t[n];return t.disposed=!0,{state:0}};(0,f.triggerEvent)("beforeDispose",t,r,c,(function(){t._addChartDependency("dispose",{scopeOf:t,resolve:n})}),(function(){(0,f.triggerEvent)("disposeCancelled",t,r)}))},t._dispose=function(){var e,t=this.jsVars;this.apiInstance&&(this.apiInstance.removeJob("resizeScheduled"),this.apiInstance.remove({instant:!0}),delete this.apiInstance,delete t.instanceAPI),(e=window[this.id])&&(!function r(e){var t,n,a,i=e.attributes;if(i)for(t=i.length-1;t>=0;t-=1)"function"==typeof e[a=i[t].name]&&(e[a]=null);if(i=e.childNodes)for(n=i.length,t=0;t<n;t+=1)r(e.childNodes[t])}(e),e.parentNode&&e.parentNode.removeChild(e)),t.container=null},t._config=function(e,t){var r,n,a=e,i=this,o=i.jsVars,s=o.msgStore,l=o.cfgStore,c=i.options;for(r in n={LoadingText:"loadMessage",ChartNotSupported:"typeNotSupportedMessage",RenderChartErrorText:"renderErrorMessage",XMLLoadingText:"dataLoadStartMessage",ChartNoDataText:"dataEmptyMessage",LoadDataErrorText:"dataLoadErrorMessage",InvalidXMLText:"dataInvalidMessage"},"string"==typeof a&&arguments.length>1&&(r=a,(a={})[r]=t),a)"undefined"!=typeof s[r]?s[r]=a[r]:l[r.toLowerCase()]=a[r],n[r]?c[n[r]]=a[r]:c[r]=a[r]},t.configure=function(e,t){var r;e&&("string"==typeof e?(r={})[e]=t:r=e,this._config(r))},t.print=function(e){var t=this.apiInstance,r=(0,h.extend2)({},e);if(t.config.isPrinting||!t.config.hasRendered)return!1;(0,f.triggerEvent)("BeforePrint",this,r,c,(function(){var e,n,a,i,o=t.getFromEnv("chart-container"),s=[],l=o.parentNode,c=document.body||document.getElementsByTagName("body")[0],u=c.childNodes;if(t.config.isPrinting=!0,(0,h.fcEach)(u,(function(e,t){1===e.nodeType&&(s[t]=e.style.display,e.style.display="none")})),!1!==r.hideButtons&&(i=t.getChildren("chartMenuBar")))for(a=0,e=(n=i[0].getChildren("tool")).length;a<e;a++)n[0].getChildren("listContainer")[0].hide();c.appendChild(o),window.print(),setTimeout((function(){l.appendChild(o),(0,h.fcEach)(u,(function(e,t){1===e.nodeType&&(e.style.display=s[t])})),r.hideButtons,t.config.isPrinting=!1,(0,f.triggerEvent)("PrintComplete",t.getFromEnv("chartInstance"),r)}),1e3)}),(function(){(0,f.triggerEvent)("PrintCancelled",t.getFromEnv("chartInstance"),r)}))},t.getSVGString=function(e,t){var r,n=this.apiInstance,a=n&&n.getFromEnv("paper");if(t&&t.keepImages&&(r=!0),"function"!=typeof e)return a&&a.toSVG?a.toSVG(r):"<svg></svg>";n.addJob("getSVG",(function(){e(a&&a.toSVG&&a.toSVG(r))}),y.priorityList.postRender)},t.lockResize=function(e){return"boolean"!=typeof e?!!this.jsVars.resizeLocked:this.jsVars.resizeLocked=e},t.showChartMessage=function(e,t,r,n){void 0===n&&(n={});var a=this,i=a.apiInstance,o=function(){a._showChartMessage(e,t,r,n)};return i&&("base"===i.getName()?a.addEventListener("renderComplete",o):o()),e},t._showChartMessage=function(e,t,r,n){void 0===n&&(n={});var a,i=this,o=e,s=i.jsVars,l=i.apiInstance,c=i.options;l._hideChartMessage(),void 0!==o?(a={fontFamily:(0,h.pluck)(n.font,c.baseChartMessageFont,"Verdana,sans"),fontSize:(0,h.pluck)(n.fontSize,c.baseChartMessageFontSize,10),color:(0,h.pluck)(n.color&&(0,h.convertColor)(n.color,n.alpha),c.baseChartMessageColor)},s.msgStore[o]&&(o=s.msgStore[o]),l.addJob("showMsg",(function(){t&&l&&l.config.hasRendered?(l._show&&l._show(),i.showMessage(o,a,r)):(l._hide&&l._hide(),l.setChartMessage(o,{_chartMessageStyle:a}),l.drawChartMessage())}),y.priorityList.postRender)):i.hideChartMessage()},t._resize=function(){var e=this.apiInstance,t=this.jsVars.container;this.__state.resize=!0,e?(e.config.elScroll=!1,e.getFromEnv("animationManager").setAnimationState("resize"),e.addToEnv("chartWidth",t.offsetWidth),e.addToEnv("chartHeight",t.offsetHeight),this._addChartDependency("resize",{resolve:function(){return{state:3}}})):this._addChartDependency("resize",{resolve:function(){return{state:1}}}),this._setState(),this.__state.resize=!1},t.hideChartMessage=function(){var e=this.apiInstance;e._hideChartMessage(),e._show&&e._show()},t.showMessage=function(e,t,r){void 0===e&&(e="");var n,a,i,o=this.apiInstance,s=o.config,l=o.getFromEnv("paper"),c=o.getFromEnv("smartLabel"),u=o.getFromEnv("animationManager"),d=o.getGraphicalElement("messageText"),f=o.getGraphicalElement("messageVeil"),g=l.width,p=l.height;a=o.getChildContainer("messageGroup"),u.setAnimationState("showmessage"),(n=u.setAnimation({el:a||"group",attr:{name:"messageGroup"},component:o,label:"group"})).show().toFront(),a||o.addChildContainer("messageGroup",n),(f=u.setAnimation({el:f||"rect",attr:{x:0,y:0,width:g,height:p,fill:"rgba(0,0,0,0.2)",stroke:"none"},container:n,component:o,label:"rect"})).off("fc-click",n.hide),f.show().toFront().attr("cursor",r?h.POINTER:"default"),r&&f.on("fc-click",o._hideChartMessage,o),o.addGraphicalElement("messageVeil",f),c.setStyle(t),i=c.getSmartText(e,g-(s.marginRight||0)-(s.marginLeft||0),p-(s.marginTop||0)-(s.marginBotton||0)),(d=u.setAnimation({el:d||"text",attr:{"font-size":t.fontSize,"font-family":t.fontFamily,fill:t.color,text:i.text,"line-height":14,x:g/2,y:p/2},container:n,component:o,label:"text"})).attr("cursor",r?h.POINTER:"default")[r?"click":"unclick"](o._hideChartMessage,o).show().toFront(),o.addGraphicalElement("messageText",d)},t.scheduleResize=function(e){var t,r=this,n=r.ref;n&&(r._addChartDependency("resize",{resolve:function(){return{state:2}}}),r.apiInstance.addJob("resizeScheduled",(function(){t=(0,h.normalizeCSSDimension)(e.width,e.height,n),"undefined"!=typeof e.width&&(n.style.width=t.width),"undefined"!==e.height&&(n.style.height=t.height),r._resize()}),y.priorityList.instant))},e}();de.id="FusionCharts",de.options={html5ScriptNameSuffix:".js",html5ScriptNamePrefix:"fusioncharts.","export":{useCanvas:!1},scriptBaseUri:(ue=function(e){var t,r,n=window.document.getElementsByTagName("script"),a=n.length;for(r=0;r<a;r+=1)if(null!=(t=n[r].getAttribute("src"))&&null!==t.match(e))return t.replace(e,"$1")}(I),void 0===ue?((0,f.raiseError)(de,"1603111624","run",">GenericRuntime~scriptBaseUri","Unable to locate FusionCharts script source location (URL)."),""):ue)},r.p=de.getScriptBaseURI(),de.version=F.split(/[\.\-]/g),de.items={},(0,f.setRootSender)(de),l=!1,h.hasSVG||de.addDep({name:"vml",type:"dependency",extension:r.e(15).then(r.t.bind(null,1179,7))}),setTimeout((function(){l=!0,(0,f.triggerEvent)("ready",de,{version:de.version,now:!0})}),1),de.addEventListener("dependencyAdded",(function(e,t){if("maps"===t.type){var r={};r[t.name]=["fusioncharts.maps.js"],de.getDep("dependency")||de.addDep({name:"dependency",extension:r})}})),de.addEventListener("initialized",(function pe(){de.removeEventListener("initialized",pe),u=new b["default"](document.body||document.getElementsByTagName("body")[0]),v.globalStore.addToEnv("smartLabel",u)})),de.addDep(x["default"]),de.addDep(_["default"]),de.addDep(T["default"]),de.addDep(k["default"]),de.addDep(S["default"]),de.addDep(E["default"]),de.addDep(A["default"]);var he=de;t["default"]=he},function(e,t){e.exports=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){var n=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,r):{};n.get||n.set?Object.defineProperty(t,r,n):t[r]=e[r]}return t["default"]=e,t}},function(e,t){function r(){return e.exports=r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},r.apply(this,arguments)}e.exports=r},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t.isInterActiveEvt=function(e){return!!Ae[e]},t.addInterActiveEvtName=function(e){e&&e.toLowerCase&&(Ae[e.toLowerCase()]=!0)},t.getMouseCoordinate=function(e,t,r){var n,a,i,o,s,l=F.webkitIsFullScreen||F.mozFullScreen||F.msFullscreenElement||F.fullscreenElement,u={scaleX:1,scaleY:1},d=xe(Ne(t)),g=l?d.clientX:d.pageX,p=l?d.clientY:d.pageY,m=r&&r.config||{},v=t.type,b=m&&m.itemFixed,y=(0,c["default"])(m.applycsstransform,0),x=b?S.pageYOffset||S.scrollY||F.documentElement.scrollTop:0,C=b?S.pageXOffset||S.scrollX||F.documentElement.scrollLeft:0;m.elScroll&&m.posOb&&!y?s=m.posOb:(m.elScroll=!0,s=Ie(e),m.posOb=s);"touchend"===v?(isNaN(g)&&(g=h),isNaN(p)&&(p=f)):"touchmove"!==v&&"touchstart"!==v||(h=g,f=p);n=g-s.left-C,a=p-s.top-x,y&&(u=Le(r.getFromEnv("chart-container")),i=u.scaleX,o=u.scaleY,i&&(n/=i),o&&(a/=o));return{chartX:n,chartY:a,pageX:g,pageY:p,clientX:d.clientX,clientY:d.clientY}},t.getScalingValue=Le,t.getTouchEvent=Ne,t.imprint=function(e,t,r){var n,a=e;if("object"!=typeof a||null===a)return a=t,t;if("object"!=typeof t||null===t)return a;for(n in t)(a[n]===d||!r&&null===a[n])&&(a[n]=t[n]);return a},t.pluck=Be,t.getFirstDefinedValue=function(){var e,t,r;for(t=0,r=arguments.length;t<r;t+=1)if((e=arguments[t])||!1===e||0===e||e===H)return e;return d},t.hashify=function(e){return e&&e.replace(/^#?([a-f0-9]+)/gi,"#$1")||"none"},t.dehashify=function(e){return e&&e.replace(/^#?([a-f0-9]+)/gi,"$1")||"none"},t.getComparatorFN=function(e,t){if(e)return t?function(e,r){return e[t]-r[t]}:Xe;return t?function(e,r){return r[t]-e[t]}:We},t.pluckFontSize=function(){var e,t,r;for(t=0,r=arguments.length;t<r;t+=1)if(((e=arguments[t])||!1===e||0===e)&&!isNaN(e=Number(e)))return e<1?1:e;return 1},t.getValidValue=Ve,t.getPosition=Ie,t.bindSelectionEvent=function(e,t){var r=t||{},n=e.config,a=e.getFromEnv("chart-container"),s=n.zoomType,l=(0,o["default"])({},r.attr||{}),u=l["stroke-width"]=(0,c["default"])(l.strokeWidth,l["stroke-width"],1),d=e.eventListeners||(e.eventListeners=[]),h=Ie(a);r=(0,o["default"])({chart:e,zoomX:/x/.test(s),zoomY:/y/.test(s),canvasY:n.canvasTop,canvasX:n.canvasLeft,canvasW:n.canvasWidth,canvasH:n.canvasHeight,canvasX2:n.canvasLeft+n.canvasWidth,canvasY2:n.canvasTop+n.canvasHeight,strokeWidth:u,chartPosLeft:h.left,chartPosTop:h.top,attr:l},r),l.stroke=Re(l.stroke,"rgba(51,153,255,0.8)"),l.fill=Re(l.fill,"rgba(185,213,241,0.3)"),a&&(i["default"].unlisten(a,"pointerdrag",De),d.push(i["default"].listen(a,"pointerdrag",De,r)));n.link&&(i["default"].unlisten(e.getFromEnv("chart-container"),"mouseup mousedown",Oe),d.push(i["default"].listen(e.getFromEnv("chart-container"),"mouseup mousedown",Oe,r)))},t.fcEach=function(e,t,r,n){var a,i=r,o=n;i||(i=e);o||(o={});if(ye(e)){for(a=0;a<e.length;a+=1)if(!1===t.call(i,e[a],a,e,o))return a}else if(null!==e&&e!==d)for(a in e)if(!1===t.call(i,e[a],a,e,o))return a},t.getDefinedColor=function(e,t){return e||0===e||e===H?e:t},t.getFirstValue=Re,t.getColorCodeString=function(e,t){var r,n,a=z,i=0,o=t.split(U);for(n=o.length;i<n;i+=1)2===(r=o[i].split("-")).length?"-1"!==r[0].indexOf("dark")?a+=(0,s.getLightColor)(e,100-parseInt(r[1],10))+U:a+=(0,s.getDarkColor)(e,100-parseInt(r[1],10))+U:a+=o[i]+U;return a.substring(0,a.length-1)},t.clampNumber=function(e,t,r){void 0===t&&(t=-Infinity);void 0===r&&(r=Infinity);if(e<=t)return t;if(e>=r)return r;return e},t.fastTrim=function(e){var t=e.replace(/^\s\s*/,""),r=t.length;for(;/\s/.test(t.charAt(r-=1)););return t.slice(0,r+1)},t.parseUnsafeString=function(e){if("string"==typeof e)return e.replace(J,G);return H},t.toPrecision=He,t.regescape=function(e){return e&&e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},t.regReplaceEscape=Pe,t.getImageURL=function(e){var t={image:!1},r=e;r!==d&&(r=r.replace(/^\s+/,H).replace(/\s+$/,H),/^i\s*[\-]\s*/i.test(r)?(t.image=!0,t.string=r.replace(/^i\s*[\-]\s*/i,H)):t.string=r.replace(/^\\/,H));return t},t.getCripValues=t.getCrispValue=function(e,t,r){var n=r%2/2,a=ne(e+n)-n,i=ne(e+t+n)-n-a;return{position:a,distance:i}},t.stableSort=function(e,t){var r,n=e.length;for(r=0;r<n;r++)e[r].ssI=r;for(e.sort((function(e,r){var n=t(e,r);return 0===n?e.ssI-r.ssI:n})),r=0;r<n;r++)delete e[r].ssI},t.getLinkAction=function(e,t){var r=function(e){return e};return function(n){if(!n||!t.config.clickURLOverridesPlotLinks){var a,i,o,s,l,u,h,f,g,p,m=e.chart||e.map||{},v=(0,c["default"])(m.unescapelinks,1),b=this.entity||d,y=this.entityBox||d,x=this.link,C=x;if(x!==d){switch(v&&(x=S.decodeURIComponent?S.decodeURIComponent(x):S.unescape(x)),-1!==(x=x.replace(/^\s+/,H).replace(/\s+$/,H)).search(/^[a-z]*\s*[\-\:]\s*/i)&&(p=(l=x.split(/\s*[\-\:]\s*/)[0].toLowerCase()).length),n&&(t.config.hotElemClicked=!0),l){case"j":case"javascript":Ge(x);break;case"n":x.replace(/^n\s*\-/i,"n-"),S.open(r(x.slice(2)));break;case"f":-1!==(a=(x=x.replace(/^f\s*\-/i,"f-")).indexOf("-",2))?(i=x.substr(2,a-2))&&S.frames[i]?S.frames[i].location=r(x.slice(a+1)):S.open(r(x.slice(a+1)),i):S.open(r(x.slice(2)));break;case"p":a=(x=x.replace(/p\s*\-/i,"p-")).indexOf("-",2),o=x.indexOf(U,2),-1===a&&(a=1),s=r(x.slice(a+1)),(g=S.open(s,x.substr(2,o-2),x.substr(o+1,a-o-1)))&&g.focus();break;case"newchart":case"newmap":switch(":"===x.charAt(p)&&(a=x.indexOf("-",p+1),f=x.substring(p+1,a),p=a),a=x.indexOf("-",p+1),u=x.substring(p+1,a).toLowerCase()){case"xmlurl":case"jsonurl":h=x.substring(a+1,x.length);break;case"xml":case"json":h=function(e,t){var r,n={chart:{}},a=t,i=e.toLowerCase();if(a.linkeddata)for(r=0;r<a.linkeddata.length;r+=1)a.linkeddata[r].id.toLowerCase()===i&&(n=a.linkeddata[r].linkedchart||a.linkeddata[r].linkedmap);return n}(x.substring(a+1,x.length),e),u="json"}t.fireChartInstanceEvent("linkedChartInvoked",{alias:f,linkType:u.toUpperCase(),data:h,clickedEntity:b,clickedEntityBox:y});break;default:S.location.href=r(x)}t.fireChartInstanceEvent("linkClicked",{linkProvided:C,linkInvoked:x,linkAction:l&&l.toLowerCase()})}}}},t.setImageDisplayMode=function(e,t,r,n,a,i,o,s){var c=s.width*(n/100),u=s.height*(n/100),d=i-2*a,h=o-2*a;return(0,l.getAlignImage)(t,r,e,c,u,i,o,a,d,h)},t.setLineHeight=Ue,t.parsexAxisStyles=function(e,t,r,n,a){var i,o=Re(e.labelbordercolor,t.bordercolor,r.labelbordercolor,H),l=Be(e.labelbgcolor,t.bgcolor,r.labelbgcolor),u=(0,c["default"])(e.labelborderthickness,t.borderthickness,r.labelborderthickness,1),d=(0,c["default"])(r.usedataplotcolorforlabels,0)&&a||n.color;return o=o?(0,s.convertColor)(o,(0,c["default"])(e.labelborderalpha,t.borderalpha,r.labelborderalpha,e.labelalpha,t.alpha,r.labelalpha,100)):H,(i={fontFamily:Be(e.labelfont,t.font,r.labelfont,n.fontFamily),fontSize:Be(e.labelfontsize,t.fontsize,r.labelfontsize,parseInt(n.fontSize,10))+W,color:(0,s.convertColor)(Be(e.labelfontcolor,t.fontcolor,r.labelfontcolor,d),(0,c["default"])(e.labelfontalpha,t.fontalpha,r.labelfontalpha,e.labelalpha,t.alpha,r.labelalpha,100)),fontWeight:(0,c["default"])(e.labelfontbold,t.fontbold,r.labelfontbold)?"bold":"normal",fontStyle:(0,c["default"])(e.labelfontitalic,t.fontitalic,r.labelfontitalic)?"italic":"normal",border:o||l?u+"px solid":H,borderColor:o,borderThickness:u,borderPadding:(0,c["default"])(e.labelborderpadding,t.borderpadding,r.labelborderpadding,2),borderRadius:(0,c["default"])(e.labelborderradius,t.borderradius,r.labelborderradius,0),backgroundColor:l?(0,s.convertColor)(l,(0,c["default"])(e.labelbgalpha,t.bgalpha,r.labelbgalpha,e.labelalpha,t.alpha,r.labelalpha,100)):H,borderDash:(0,c["default"])(e.labelborderdashed,t.borderdashed,r.labelborderdashed,0)?ze((0,c["default"])(e.labelborderdashlen,t.borderdashlen,r.labelborderdashlen,4),(0,c["default"])(e.labelborderdashgap,t.borderdashgap,r.labelborderdashgap,2)):E}).lineHeight=Ue(i),i},t.getDashStyle=ze,t.componentDispose=function $e(){var e,t,r,n,a,i,o,s,l,c,u,d;if(this&&this!==S){if(this.disposing=!0,e=this.components)for(r in e)if((t=e[r])instanceof Array)for(n=t.length,a=0;a<n;a++)(d=t[a])&&!this.disposing&&(d.dispose?d.dispose():$e.call(d));else t&&!t.disposing&&(t.dispose?t.dispose():$e.call(t));for(s in i=this.graphics)if(o=i[s])if(o.hide)o.hide(),o.followers&&o.followers[0]&&(u=o.followers[0].el)&&u.hide&&u.hide();else for(l in o)(c=o[l]).hide&&c.hide();for(r in this)delete this[r]}},t.executeJS=je,t.pseudoEval=Ge,t.getContainerBackgroundColor=function(e){var t=e.options,r=t.containerBackgroundColor,n=t.containerBackgroundOpacity;Fe(e.jsVars.transparent)?n=e.jsVars.transparent?0:1:(n=parseFloat(n))<0?n=0:n>1&&(n=1);r||(r="#"+j);if(D&&!L)return n?r:"transparent";return r=r.replace(/^#?([a-f0-9]+)/gi,"$1"),(r=(0,s.HEXtoRGB)(r))[3]=n.toString(),"rgba("+r.join(",")+")"},t.capitalizeString=function(e,t){return e?e.replace(t?/(^|\s)([a-z])/g:/(^|\s)([a-z])/,(function(e,t,r){return t+r.toUpperCase()})):e},t.pInt=function(e,t){return parseInt(e,t||10)},t.defined=Fe,t.trimString=function(e){var t=e.replace(/^\s\s*/,""),r=t.length;for(;/\s/.test(t.charAt(r-=1)););return t.slice(0,r+1)},t.getSuggestiveRotation=function(){var e,t,r,n;e=arguments[0],1===arguments.length?(t=e.angle,r=e.x,n=e.y):(t=e,r=arguments[1],n=arguments[2]);return X+(t=t||0)+U+r+U+n},t.normalizeCSSDimension=function(e,t,r){var n,a=void 0===e?r.offsetWidth||parseFloat(r.style.width):e,i=void 0===t?r.offsetHeight||parseFloat(r.style.height):t,o={},s=r.style;if(s.width=a=a.toString?a.toString():"0",s.height=i=i.toString?i.toString():"0",(o.widthIsRelative=a.match(/^\s*\d*\.?\d*\%\s*$/)&&!a.match(/^\s*0\%\s*$/))&&0===r.offsetWidth)for(n=r;n=n.offsetParent;)if(n.offsetWidth>0){a=(n.offsetWidth*parseFloat(a.match(/\d*/)[0])/100).toString();break}if((o.heightIsRelative=i.match(/^\s*\d*\.?\d*\%\s*$/)&&!i.match(/^\s*0\%\s*$/))&&r.offsetHeight<=20)for(n=r;n=n.offsetParent;)if(n.offsetHeight>0){i=(n.offsetHeight*parseFloat(i.match(/\d*/)[0])/100).toString();break}return o.width=a.replace?a.replace(/^\s*(\d*\.?\d*)\s*$/gi,"$1px"):a,o.height=i.replace?i.replace(/^\s*(\d*\.?\d*)\s*$/gi,"$1px"):i,s.width=o.width,s.height=o.height,o.pixelWidth=o.widthIsRelative?r.offsetWidth:parseInt(o.width,10)||0,o.pixelHeight=o.heightIsRelative?r.offsetHeight:parseInt(o.height,10)||0,o},t._manageInteractiveSpace=function(){var e,t,r,n,a,i,o=this.config,s=this.getChildren(),l=s.xAxis[0],c=s.yAxis[0],u=s.canvas&&s.canvas[0],d=u.config,h=d.canvasBorderWidth,f=d.canvasPaddingTop,g=d.canvasPadding||0,p=d.canvasPaddingLeft,m=o.xAxisSpaceAllocation,v=o.yAxisSpaceAllocation[0].spaceTaken;t=o.xAxisSpaceAllocation=l.placeAxis(o.availableHeight+m.bottom),r=o.yAxisSpaceAllocation[0].spaceTaken=c.placeAxis(o.availableWidth+v.left),e=t.bottom-m.bottom,a=t.top-m.top,n=r.left-v.left,i=r.right-v.right,e&&this._allocateSpace({top:a,bottom:e}),(n||i)&&this._allocateSpace({left:n,right:i}),l&&l.setAxisDimention({x:o.canvasLeft+Math.max(p,g),y:l.config.isOpposit?o.canvasTop-h:o.canvasBottom+h,opposite:l.config.isOpposit?o.canvasBottom+h:o.canvasTop-h,axisLength:o.canvasWidth-Math.max(p,g)-Math.max(d.canvasPaddingRight,g)}),c&&c.setAxisDimention({x:c.config.isOpposit?o.canvasRight+h:o.canvasLeft-h,y:o.canvasTop+f,opposite:c.config.isOpposit?o.canvasLeft-h:o.canvasRight+h,axisLength:o.canvasHeight-f-d.canvasPaddingBottom}),(a||e||n||i)&&u.asyncDraw()},t.removeAllTooltipOnChart=function(e,t){for(var r=e.implicit,n=e.explicit,a=0;a<r.length;a++){var i=r[a];t?i.hide():i.element&&i.element.remove()}for(var o=0;o<n.length;o++){var s=n[o];t?s.hide():s.element&&s.element.remove()}},t.configureDataLabelStyle=function(e,t){void 0===e&&(e={});var r,n,a=t||this.config.JSONData,i=this.getFromEnv("chartConfig");return r=Be(e.valuebordercolor,a.valuebordercolor,i.valueBorderColor),n=Be(e.valuebgcolor,a.valuebgcolor,i.valueBgColor),{color:(0,s.convertColor)(Be(e.valuefontcolor,a.valuefontcolor,i.valueFontColor),i.valueFontAlpha),borderColor:r?(0,s.convertColor)(r,i.valueBorderAlpha):H,backgroundColor:n?(0,s.convertColor)(n,i.valueBgAlpha):H}},t.MOUSEMOVE=t.MOUSEOUT=t.FIT=t.FILL=t.TILE=t.COMMA=t.animationObjStr=t.configStr=t.ROUND=t.BLANK=t.POINTER=t.HAND=t.BOLD=t.NORMAL=t.mathRound=t.mathAbs=t.animHelperFN=t.xssEncode=t.MathExt=t.defaultGaugePaletteOptions=t.crispBound=t.canvasBorderColorStr=t.attrTypeBool=t.canvasBGAlphaStr=t.attrTypeNum=t.DASH_DEF=t.chartPaletteStr=t.TRACKER_FILL=t.appliedCSS=t.validhexcolor=t.chartAPI=t.getAxisLimits=t.supportedStyle=t.lineHeightFactor=t.isEdge=t.isIE9=t.isIE11=t.isIE=t.TXT_REGEX=t.hasSVG=t.stubFN=t.preDefStr=t.isArray=t.TXT_STRING=t.TXT_HREF=t.txtLabel=t.hasTouch=t.parseTooltext=t.gradientify=t.rgbaToHex=t.toRaphaelColor=t.getViewPortDimension=t.polyPathToPath=t.createElement=t.getEventCoordinate=t.regex=t.CLICK_THRESHOLD_PIXELS=t.TOUCH_THRESHOLD_PIXELS=t.cleanColorCode=t.startsRGBA=t.visibleStr=t.hiddenStr=t.TEXTANCHOR=t.COMMASPACE=t.PXSTRING=t.HUNDREDSTRING=t.SHAPE_RECT=t.FC_CONFIG_STRING=t.INITIALSTR=t.FINALSTR=t.POSITION_END=t.POSITION_START=t.MIDDLESTR=t.POSITION_MIDDLE=t.POSITION_CENTER=t.POSITION_LEFT=t.POSITION_BOTTOM=t.POSITION_RIGHT=t.POSITION_TOP=t.STRINGUNDEFINED=t.DECIMALSTRING=t.ONESTRING=t.TESTSTR=t.SAMPLESTRING=t.ZEROSTRING=t.COMMASTRING=t.OBJECTSTRING=t.STRINGSTRING=t.BREAKSTRING=t.HASHSTRING=t.COLOR_TRANSPARENT=t.COLOR_WHITE=t.COLOR_GLASS=t.COLOR_BLACK=t.BLANKSTRING=t.UNDERSCORE=t.UNDEF=t.isFirefox=t.BLANKSTRINGPLACEHOLDER=t.getEmptyConstractor=void 0,t.removeHtmlAttrs=t.isSimilarObject=t.snapPoint=t.DEFAULT_FT_FONT=t.isIpad=t.domInsertModes=t.isXSSSafe=t.normalizeAngle=t.LINE_HEIGHT_FACTOR=t.PROJECT_VERSION=t.datasetFactory=t.componentFactory=t.dropHash=t.BGRATIOSTRING=t.VISIBLE=t.touchEnabled=void 0;var a=r(185);t.attribDefs=a.attribDefs,t.parseConfiguration=a.parseConfiguration,t.setAttribDefs=a.setAttribDefs,t.hasAttribDefs=a.hasAttribDefs;var i=n(r(186)),o=n(r(187));t.extend2=o["default"];var s=r(188);t.convertColor=s.convertColor,t.getDarkColor=s.getDarkColor,t.getLightColor=s.getLightColor,t.mapSymbolName=s.mapSymbolName,t.getColumnColor=s.getColumnColor,t.getPointColor=s.getPointColor,t.getAngle=s.getAngle,t.parseColor=s.parseColor,t.getValidColor=s.getValidColor,t.RGBtoHex=s.RGBtoHex,t.rawRGBtoHEX=s.rawRGBtoHEX,t.HEXtoRGB=s.HEXtoRGB,t.parsePointValue=s.parsePointValue,t.getFirstColor=s.getFirstColor,t.getFirstAlpha=s.getFirstAlpha;var l=r(189),c=n(r(190));t.pluckNumber=c["default"];var u=1.2;t.LINE_HEIGHT_FACTOR=u,t.PROJECT_VERSION="3.15.0-sr.1";var d,h,f,g,p,m,v,b,y,x,C,w,_,k,S=window,E="none",A=function(){},T=(k=S.navigator.userAgent.toLowerCase(),!(!(_=-1!==k.indexOf("msie")&&S.parseInt(k.split("msie")[1]))||9!==_)),M=/Firefox/i.test(S.navigator.userAgent),F=S.document,I=S.navigator,L=Boolean(S.SVGAngle||F.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")),N=/trident/i.test(I.userAgent)&&/rv:11/i.test(I.userAgent)&&!window.opera,D=/msie/i.test(I.userAgent)&&!S.opera,O=/Edge/.test(I.userAgent),R=!!I.platform&&/iPad|iPhone|iPod/.test(I.platform),P=/[\\\"<>;&]/,V=/^[^\S]*?(sf|f|ht)(tp|tps):\/\//i,B="rgba(192,192,192,"+(D?.002:1e-6)+")",j="FFFFFF",G="<br />",H="",z=H,U=",",X="r",W="px",$="http://www.fusioncharts.com?BS=FCHSEvalMark&utm_source=FCS_trial&pver="+escape("3.15.0-sr.1"),Y="70|117|115|105|111|110|67|104|97|114|116|115|32|84|114|105|97|108".split("|").map((function(e){return String.fromCharCode(+e)})).join(""),q=parseFloat,K=/fusioncharts\.com|fusioncharts\.github\.io$/i,J=/\{br\}\s*/gi,Z=/^#?/,Q=/^rgba/i,ee=/[#\s]/gi,te=Math.abs,re=Math.pow,ne=Math.round,ae=re(2,-24),ie="ontouchstart"in F,oe=ie&&!(I.maxTouchPoints||I.msMaxTouchPoints),se=!K.test(S.location.hostname),le=Math,ce=le.max,ue=le.min,de={pageX:0,pageY:0},he=["8BBA00","F6BD0F","FF654F","AFD8F8","FDB398","CDC309","B1D0D2","FAD1B9","B8A79E","D7CEA5","C4B3CE","E9D3BE","EFE9AD","CEA7A2","B2D9BA"],fe={paletteColors:[he,he,he,he,he],bgColor:["CBCBCB,E9E9E9","CFD4BE,F3F5DD","C5DADD,EDFBFE","A86402,FDC16D","FF7CA0,FFD1DD"],bgAngle:[270,270,270,270,270],bgRatio:["0,100","0,100","0,100","0,100","0,100"],bgAlpha:["50,50","60,50","40,20","20,10","30,30"],toolTipBgColor:["FFFFFF","FFFFFF","FFFFFF","FFFFFF","FFFFFF"],toolTipBorderColor:["545454","545454","415D6F","845001","68001B"],baseFontColor:["555555","60634E","025B6A","A15E01","68001B"],tickColor:["333333","60634E","025B6A","A15E01","68001B"],trendDarkColor:["333333","60634E","025B6A","A15E01","68001B"],trendLightColor:["f1f1f1","F3F5DD","EDFBFE","FFF5E8","FFD1DD"],pointerBorderColor:["545454","60634E","415D6F","845001","68001B"],pointerBgColor:["545454","60634E","415D6F","845001","68001B"],canvasBgColor:["FFFFFF","FFFFFF","FFFFFF","FFFFFF","FFFFFF"],canvasBgAngle:[0,0,0,0,0],canvasBgAlpha:["100","100","100","100","100"],canvasBgRatio:["","","","",""],canvasBorderColor:["545454","545454","415D6F","845001","68001B"],canvasBorderAlpha:[100,100,100,90,100],altHGridColor:["EEEEEE","D8DCC5","99C4CD","DEC49C","FEC1D0"],altHGridAlpha:[50,35,10,20,15],altVGridColor:["767575","D8DCC5","99C4CD","DEC49C","FEC1D0"],altVGridAlpha:[10,20,10,15,10],borderColor:["767575","545454","415D6F","845001","68001B"],borderAlpha:[50,50,50,50,50],legendBgColor:["ffffff","ffffff","ffffff","ffffff","ffffff"],legendBorderColor:["545454","545454","415D6F","845001","D55979"],plotFillColor:["767575","D8DCC5","99C4CD","DEC49C","FEC1D0"],plotBorderColor:["999999","8A8A8A","6BA9B6","C1934D","FC819F"],msgLogColor:["717170","7B7D6D","92CDD6","965B01","68001B"],TrendLightShadeOffset:30},ge={numDecimals:function(e){var t=e;t=He(t,10);var r=He((t=Math.abs(t))-Math.floor(t),10),n=String(r).length-2;return n=n<0?0:n,n},toRadians:function(e){return e/180*Math.PI},toDegrees:function(e){return e/Math.PI*180},flashToStandardAngle:function(e){return-1*e},standardToFlashAngle:function(e){return-1*e},flash180ToStandardAngle:function(e){var t=e,r=360-((t%=360)<0?t+360:t);return 360===r?0:r},getAngularPoint:function(e,t,r,n){var a=n*(Math.PI/180);return{x:e+r*Math.cos(a),y:t-r*Math.sin(a)}},remainderOf:function(e,t){return Math.ceil(e%t)},boundAngle:function(e){return e>=0?ge.prototype.remainderOf(e,360):360-ge.prototype.remainderOf(Math.abs(e),360)},toNearestTwip:function(e){var t=e,r=t<0?-1:1,n=Math.abs(t),a=Math.round(100*n),i=Math.floor(a/5);return r*((Number(String(a-5*i))>2?5*i+5:5*i)/100)},roundUp:function(e,t){var r=e,n=t;n=n||2;var a=Math.pow(10,n);return r*=a,r=Math.round(Number(String(r))),r/=a}},pe=2*le.PI,me={chart2D:{bgColor:"bgColor",bgAlpha:"bgAlpha",bgAngle:"bgAngle",bgRatio:"bgRatio",canvasBgColor:"canvasBgColor",canvasBaseColor:"canvasBaseColor",divLineColor:"divLineColor",legendBgColor:"legendBgColor",legendBorderColor:"legendBorderColor",toolTipbgColor:"toolTipbgColor",toolTipBorderColor:"toolTipBorderColor",baseFontColor:"baseFontColor",anchorBgColor:"anchorBgColor"},chart3D:{bgColor:"bgColor3D",bgAlpha:"bgAlpha3D",bgAngle:"bgAngle3D",bgRatio:"bgRatio3D",canvasBgColor:"canvasBgColor3D",canvasBaseColor:"canvasBaseColor3D",divLineColor:"divLineColor3D",divLineAlpha:"divLineAlpha3D",legendBgColor:"legendBgColor3D",legendBorderColor:"legendBorderColor3D",toolTipbgColor:"toolTipbgColor3D",toolTipBorderColor:"toolTipBorderColor3D",baseFontColor:"baseFontColor3D",anchorBgColor:"anchorBgColor3D"}},ve=L?0:.5,be=["color"],ye=function(){if(Array.isArray)return Array.isArray;var e=Object.prototype.toString;return function(t){return e.call(t)===e.call([])}}(),xe=function(e){return e.pageX===d&&(e.pageX=e.clientX+F.body.scrollLeft+F.documentElement.scrollLeft,e.pageY=e.clientY+F.body.scrollTop+F.documentElement.scrollTop),e},Ce=(y="innerWidth",x="innerHeight",C=F.documentElement||F.body,w=C,"innerWidth"in S?w=S:(y="clientWidth",x="clientHeight"),function(){return{width:w[y],height:w[x],scrollTop:C.scrollTop,scrollLeft:C.scrollLeft}}),we=(b=/^@window_/g,function(e,t,r){var n,a,i,o,s=e.replace(/\[[\'\"]/g,".").replace(/[\'\"]\]/g,H).replace(/\[/g,".@window_").replace(/\]/g,H).split("."),l=S,c=H;for(i=s.length,o=0;o<i;o+=1){if(n=l,(a=s[o]).match(b))l=l[S[a.replace(b,H)]];else{if(l===d||null===l)throw(c||a).replace(b,H)+" is not defined";l=l[a]}c=a}if(!l||"function"!=typeof l.call&&l!==S.alert){if("void"===c)return;setTimeout((function(){throw a.replace(b,H)+"() is not a function"}),0)}else l===S.alert?l(t):r?l.apply(n,t.split("__FC_ARG_SEP__")):l.call(n,t)}),_e=(v={},function(e){var t,r,n,a,i,o=e||this,l=o&&o.FCcolor||o,c=l.color,u=l.ratio,h=l.angle,f=l.alpha,g=l.r,p=l.cx,m=l.cy,b=l.fx,y=l.fy,x=l.gradientUnits,C=l.x1,w=l.y1,_=l.x2,k=l.y2,S=1;if("string"==typeof o)return v[i="~"+o]||(v[i]=o.replace(/^#?([a-f0-9]{3,6})/gi,"#$1"));if(!(c=c||H))return t;if(i=[c,f,u,h,g,p,m,x,b,y,C,_,w,k,l.radialGradient].join("_").replace(/[\(\)\s,\xb0#]/g,"_"),v[i])return v[i];if(u=u&&(u+H).split(U)||[],f=(f||0===f)&&(f+H).split(U)||[],c=c.split(U))if(t=H,1===c.length)a=c[0].replace(/^#?([a-f0-9]{3,6})/gi,"$1"),t=f.length?"rgba("+(0,s.HEXtoRGB)(a).join(U)+","+.01*q(f[0])+")":a.replace(/^#?([a-f0-9]{3,6})/gi,"#$1");else{for(r=0,n=c.length;r<n;r++)a=c[r].replace(/^#?([a-f0-9]{3,6})/gi,"$1"),isNaN(u[r])||(u[r]=q(u[r]),a+=":"+u[r],isNaN(u[r+1])||(u[r+1]=q(u[r+1])+u[r])),isNaN(f[r])||f[r]===H||(S=.01*f[r]),c[r]="rgba("+(0,s.HEXtoRGB)(a).join(U)+","+S+")",isNaN(u[r])||(u[r]===u[r-1]&&(u[r]+=.001),c[r]=c[r]+":"+u[r]);t+=c.join("-"),g!==d||b!==d||p!==d||l.radialGradient?t="xr("+[b,y,g,p,m,x].join(",")+")"+t:(t="-"+t,C===d&&w===d&&_===d&&k===d||(t="("+[C,w,_,k,x].join(",")+")"+t),h===d&&(h=0),t=360-q(h)%360+t)}return v[i]=t,t}),ke=function(){return z},Se=function(){var e,t=[{regex:/((^|[^\\])((\\)\\)*\$cleanvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$cleanvalue))/gi,argIndex:2,argKey:"cleanvalue"},{regex:/((^|[^\\])((\\)\\)*\$datavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$datavalue))/gi,argIndex:2,argKey:"formattedValue"},{regex:/((^|[^\\])((\\)\\)*\$value)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$value))/gi,argIndex:3,argKey:"value"},{regex:/((^|[^\\])((\\)\\)*\$label)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$label))/gi,argIndex:2,argKey:"label"},{regex:/((^|[^\\])((\\)\\)*\$seriesname)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$seriesname))/gi,argIndex:5,argKey:"seriesname"},{regex:/((^|[^\\])((\\)\\)*\$yaxisname)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$yaxisname))/gi,argIndex:2,argKey:"yaxisName"},{regex:/((^|[^\\])((\\)\\)*\$xaxisname)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$xaxisname))/gi,argIndex:2,argKey:"xaxisName"},{regex:/((^|[^\\])((\\)\\)*\$displayvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$displayvalue))/gi,argIndex:3,argKey:"displayvalue"},{regex:/((^|[^\\])((\\)\\)*\$xdatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$xdatavalue))/gi,argIndex:2,argKey:"xDataValue"},{regex:/((^|[^\\])((\\)\\)*\$ydatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$ydatavalue))/gi,argIndex:2,argKey:"yDataValue"},{regex:/((^|[^\\])((\\)\\)*\$xvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$xvalue))/gi,argIndex:3,argKey:"x"},{regex:/((^|[^\\])((\\)\\)*\$yvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$yvalue))/gi,argIndex:3,argKey:"y"},{regex:/((^|[^\\])((\\)\\)*\$zvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$zvalue))/gi,argIndex:3,argKey:"z"},{regex:/((^|[^\\])((\\)\\)*\$name)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$name))/gi,argIndex:3,argKey:"name"},{regex:/((^|[^\\])((\\)\\)*\$percentValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$percentValue))/gi,argIndex:2,argKey:"percentValue"},{regex:/((^|[^\\])((\\)\\)*\$startValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$startValue))/gi,argIndex:2,argKey:"startValue"},{regex:/((^|[^\\])((\\)\\)*\$startDataValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$startDataValue))/gi,argIndex:2,argKey:"startDataValue"},{regex:/((^|[^\\])((\\)\\)*\$endValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$endValue))/gi,argIndex:2,argKey:"endValue"},{regex:/((^|[^\\])((\\)\\)*\$endDataValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$endDataValue))/gi,argIndex:2,argKey:"endDataValue"},{regex:/((^|[^\\])((\\)\\)*\$axisName)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$axisName))/gi,argIndex:2,argKey:"axisName"},{regex:/((^|[^\\])((\\)\\)*\$cumulativevalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$cumulativevalue))/gi,argIndex:2,argKey:"cumulativeValue"},{regex:/((^|[^\\])((\\)\\)*\$cumulativedatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$cumulativedatavalue))/gi,argIndex:2,argKey:"cumulativeDataValue"},{regex:/((^|[^\\])((\\)\\)*\$cumulativePercentValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$cumulativePercentValue))/gi,argIndex:2,argKey:"cumulativePercentValue"},{regex:/((^|[^\\])((\\)\\)*\$cumulativepercentdatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$cumulativepercentdatavalue))/gi,argIndex:2,argKey:"cumulativePercentDataValue"},{regex:/((^|[^\\])((\\)\\)*\$sum)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$sum))/gi,argIndex:2,argKey:"sum"},{regex:/((^|[^\\])((\\)\\)*\$unformattedsum)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$unformattedsum))/gi,argIndex:2,argKey:"unformattedSum"},{regex:/((^|[^\\])((\\)\\)*\$targetvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$targetvalue))/gi,argIndex:2,argKey:"targetValue"},{regex:/((^|[^\\])((\\)\\)*\$targetdatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$targetdatavalue))/gi,argIndex:2,argKey:"targetDataValue"},{regex:/((^|[^\\])((\\)\\)*\$processname)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$processname))/gi,argIndex:2,argKey:"processName"},{regex:/((^|[^\\])((\\)\\)*\$start)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$start))/gi,argIndex:2,argKey:"start"},{regex:/((^|[^\\])((\\)\\)*\$end)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$end))/gi,argIndex:2,argKey:"end"},{regex:/((^|[^\\])((\\)\\)*\$percentcomplete)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$percentcomplete))/gi,argIndex:2,argKey:"percentComplete"},{regex:/((^|[^\\])((\\)\\)*\$taskpercentcomplete)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$taskpercentcomplete))/gi,argIndex:2,argKey:"taskPercentComplete"},{regex:/((^|[^\\])((\\)\\)*\$taskstartdate)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$taskstartdate))/gi,argIndex:2,argKey:"taskStartDate"},{regex:/((^|[^\\])((\\)\\)*\$taskenddate)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$taskenddate))/gi,argIndex:2,argKey:"taskEndDate"},{regex:/((^|[^\\])((\\)\\)*\$tasklabel)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$tasklabel))/gi,argIndex:2,argKey:"taskLabel"},{regex:/((^|[^\\])((\\)\\)*\$date)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$date))/gi,argIndex:2,argKey:"date"},{regex:/((^|[^\\])((\\)\\)*\$percentofprevvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$percentofprevvalue))/gi,argIndex:2,argKey:"percentOfPrevValue"},{regex:/((^|[^\\])((\\)\\)*\$sname)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$sname))/gi,argIndex:2,argKey:"sName"},{regex:/((^|[^\\])((\\)\\)*\$lname)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$lname))/gi,argIndex:2,argKey:"lName"},{regex:/((^|[^\\])((\\)\\)*\$fromid)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$fromid))/gi,argIndex:2,argKey:"fromId"},{regex:/((^|[^\\])((\\)\\)*\$fromlabel)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$fromlabel))/gi,argIndex:2,argKey:"fromLabel"},{regex:/((^|[^\\])((\\)\\)*\$toid)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$toid))/gi,argIndex:2,argKey:"toId"},{regex:/((^|[^\\])((\\)\\)*\$tolabel)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$tolabel))/gi,argIndex:2,argKey:"toLabel"},{regex:/((^|[^\\])((\\)\\)*\$fromxvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$fromxvalue))/gi,argIndex:2,argKey:"fromXValue"},{regex:/((^|[^\\])((\\)\\)*\$fromyvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$fromyvalue))/gi,argIndex:2,argKey:"fromYValue"},{regex:/((^|[^\\])((\\)\\)*\$fromxdatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$fromxdatavalue))/gi,argIndex:2,argKey:"fromXDataValue"},{regex:/((^|[^\\])((\\)\\)*\$fromydatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$fromydatavalue))/gi,argIndex:2,argKey:"fromYDataValue"},{regex:/((^|[^\\])((\\)\\)*\$fromlabel)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$fromlabel))/gi,argIndex:2,argKey:"fromLabel"},{regex:/((^|[^\\])((\\)\\)*\$toxvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$toxvalue))/gi,argIndex:2,argKey:"toXValue"},{regex:/((^|[^\\])((\\)\\)*\$toyvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$toyvalue))/gi,argIndex:2,argKey:"toYValue"},{regex:/((^|[^\\])((\\)\\)*\$toxdatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$toxdatavalue))/gi,argIndex:2,argKey:"toXDataValue"},{regex:/((^|[^\\])((\\)\\)*\$toydatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$toydatavalue))/gi,argIndex:2,argKey:"toYDataValue"},{regex:/((^|[^\\])((\\)\\)*\$tolabel)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$tolabel))/gi,argIndex:2,argKey:"toLabel"},{regex:/((^|[^\\])((\\)\\)*\$openvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$openvalue))/gi,argIndex:2,argKey:"openValue"},{regex:/((^|[^\\])((\\)\\)*\$closevalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$closevalue))/gi,argIndex:2,argKey:"closeValue"},{regex:/((^|[^\\])((\\)\\)*\$highvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$highvalue))/gi,argIndex:2,argKey:"highValue"},{regex:/((^|[^\\])((\\)\\)*\$lowvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$lowvalue))/gi,argIndex:2,argKey:"lowValue"},{regex:/((^|[^\\])((\\)\\)*\$opendatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$opendatavalue))/gi,argIndex:2,argKey:"openDataValue"},{regex:/((^|[^\\])((\\)\\)*\$closedatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$closedatavalue))/gi,argIndex:2,argKey:"closeDataValue"},{regex:/((^|[^\\])((\\)\\)*\$highdatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$highdatavalue))/gi,argIndex:2,argKey:"highDataValue"},{regex:/((^|[^\\])((\\)\\)*\$lowdatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$lowdatavalue))/gi,argIndex:2,argKey:"lowDataValue"},{regex:/((^|[^\\])((\\)\\)*\$maxvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$maxvalue))/gi,argIndex:2,argKey:"maxValue"},{regex:/((^|[^\\])((\\)\\)*\$maxdatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$maxdatavalue))/gi,argIndex:2,argKey:"maxDataValue"},{regex:/((^|[^\\])((\\)\\)*\$minvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$minvalue))/gi,argIndex:2,argKey:"minValue"},{regex:/((^|[^\\])((\\)\\)*\$mindatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$mindatavalue))/gi,argIndex:2,argKey:"minDataValue"},{regex:/((^|[^\\])((\\)\\)*\$q1)/gi,argIndex:2,argKey:"Q1"},{regex:/((^|[^\\])((\\)\\)*\$unformattedQ1)/gi,argIndex:2,argKey:"unformattedQ1"},{regex:/((^|[^\\])((\\)\\)*\$q3)/gi,argIndex:2,argKey:"Q3"},{regex:/((^|[^\\])((\\)\\)*\$unformattedQ3)/gi,argIndex:2,argKey:"unformattedQ3"},{regex:/((^|[^\\])((\\)\\)*\$median)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$median))/gi,argIndex:2,argKey:"median"},{regex:/((^|[^\\])((\\)\\)*\$unformattedMedian)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$unformattedMedian))/gi,argIndex:2,argKey:"unformattedMedian"},{regex:/((^|[^\\])((\\)\\)*\$SD)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$SD))/gi,argIndex:2,argKey:"SD"},{regex:/((^|[^\\])((\\)\\)*\$unformattedsd)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$unformattedsd))/gi,argIndex:2,argKey:"unformattedsd"},{regex:/((^|[^\\])((\\)\\)*\$QD)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$QD))/gi,argIndex:2,argKey:"QD"},{regex:/((^|[^\\])((\\)\\)*\$unformattedQD)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$unformattedQD))/gi,argIndex:2,argKey:"unformattedQD"},{regex:/((^|[^\\])((\\)\\)*\$MD)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$MD))/gi,argIndex:2,argKey:"MD"},{regex:/((^|[^\\])((\\)\\)*\$unformattedMD)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$unformattedMD))/gi,argIndex:2,argKey:"unformattedMD"},{regex:/((^|[^\\])((\\)\\)*\$mean)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$mean))/gi,argIndex:2,argKey:"mean"},{regex:/((^|[^\\])((\\)\\)*\$unformattedMean)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$unformattedMean))/gi,argIndex:2,argKey:"unformattedMean"},{regex:/((^|[^\\])((\\)\\)*\$unformattedMean)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$unformattedMean))/gi,argIndex:2,argKey:"unformattedMean"},{regex:/((^|[^\\])((\\)\\)*\$volumeValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$volumeValue))/gi,argIndex:2,argKey:"volumeValue"},{regex:/((^|[^\\])((\\)\\)*\$volumeDataValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$volumeDataValue))/gi,argIndex:2,argKey:"volumeDataValue"},{regex:/((^|[^\\])((\\)\\)*\$fromXValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$fromXValue))/gi,argIndex:2,argKey:"fromXValue"},{regex:/((^|[^\\])((\\)\\)*\$fromYValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$fromYValue))/gi,argIndex:2,argKey:"fromYValue"},{regex:/((^|[^\\])((\\)\\)*\$fromXDataValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$fromXDataValue))/gi,argIndex:2,argKey:"fromXDataValue"},{regex:/((^|[^\\])((\\)\\)*\$fromYDataValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$fromYDataValue))/gi,argIndex:2,argKey:"fromYDataValue"},{regex:/((^|[^\\])((\\)\\)*\$fromLabel)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$fromLabel))/gi,argIndex:2,argKey:"fromLabel"},{regex:/((^|[^\\])((\\)\\)*\$toXValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$toXValue))/gi,argIndex:2,argKey:"toXValue"},{regex:/((^|[^\\])((\\)\\)*\$toYValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$toYValue))/gi,argIndex:2,argKey:"toYValue"},{regex:/((^|[^\\])((\\)\\)*\$toXDataValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$toXDataValue))/gi,argIndex:2,argKey:"toXDataValue"},{regex:/((^|[^\\])((\\)\\)*\$toYDataValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$toYDataValue))/gi,argIndex:2,argKey:"toYDataValue"},{regex:/((^|[^\\])((\\)\\)*\$tolabel)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$tolabel))/gi,argIndex:2,argKey:"toLabel"},{regex:/((^|[^\\])((\\)\\)*\$tlLabel)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$tlLabel))/gi,argIndex:5,argKey:"tlLabel"},{regex:/((^|[^\\])((\\)\\)*\$trlabel)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$trlabel))/gi,argIndex:5,argKey:"trLabel"},{regex:/((^|[^\\])((\\)\\)*\$bllabel)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$bllabel))/gi,argIndex:5,argKey:"blLabel"},{regex:/((^|[^\\])((\\)\\)*\$brlabel)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$brlabel))/gi,argIndex:5,argKey:"brLabel"},{regex:/((^|[^\\])((\\)\\)*\$rowlabel)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$rowlabel))/gi,argIndex:5,argKey:"rowLabel"},{regex:/((^|[^\\])((\\)\\)*\$columnlabel)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$columnlabel))/gi,argIndex:5,argKey:"columnLabel"},{regex:/((^|[^\\])((\\)\\)*\$errorvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$errorvalue))/gi,argIndex:2,argKey:"errorValue"},{regex:/((^|[^\\])((\\)\\)*\$errordatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$errordatavalue))/gi,argIndex:2,argKey:"errorDataValue"},{regex:/((^|[^\\])((\\)\\)*\$errorpercentvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$errorpercentvalue))/gi,argIndex:2,argKey:"errorPercentValue"},{regex:/((^|[^\\])((\\)\\)*\$errorpercentdatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$errorpercentdatavalue))/gi,argIndex:2,argKey:"errorPercentDataValue"},{regex:/((^|[^\\])((\\)\\)*\$horizontalErrorValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$horizontalErrorValue))/gi,argIndex:2,argKey:"horizontalErrorValue"},{regex:/((^|[^\\])((\\)\\)*\$horizontalErrorDataValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$horizontalErrorDataValue))/gi,argIndex:2,argKey:"horizontalErrorDataValue"},{regex:/((^|[^\\])((\\)\\)*\$verticalErrorValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$verticalErrorValue))/gi,argIndex:2,argKey:"verticalErrorValue"},{regex:/((^|[^\\])((\\)\\)*\$verticalErrorDataValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$verticalErrorDataValue))/gi,argIndex:2,argKey:"verticalErrorDataValue"},{regex:/((^|[^\\])((\\)\\)*\$horizontalErrorPercent)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$horizontalErrorPercentValue))/gi,argIndex:2,argKey:"horizontalErrorPercentValue"},{regex:/((^|[^\\])((\\)\\)*\$horizontalErrorPercentDataValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$horizontalErrorPercentDataValue))/gi,argIndex:2,argKey:"horizontalErrorPercentDataValue"},{regex:/((^|[^\\])((\\)\\)*\$verticalErrorPercent)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$verticalErrorPercentValue))/gi,argIndex:2,argKey:"verticalErrorPercentValue"},{regex:/((^|[^\\])((\\)\\)*\$verticalErrorPercentDataValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$verticalErrorPercentDataValue))/gi,argIndex:2,argKey:"verticalErrorPercentDataValue"},{regex:/((^|[^\\])((\\)\\)*\$xaxispercentvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$xaxispercentvalue))/gi,argIndex:2,argKey:"xAxisPercentValue"},{regex:/((^|[^\\])((\\)\\)*\$percentdatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$percentdatavalue))/gi,argIndex:2,argKey:"percentDataValue"},{regex:/((^|[^\\])((\\)\\)*\$trType)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$trType))/gi,argIndex:4,argKey:"trtype"},{regex:/((^|[^\\])((\\)\\)*\$tlType)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$tlType))/gi,argIndex:4,argKey:"tltype"},{regex:/((^|[^\\])((\\)\\)*\$brType)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$brType))/gi,argIndex:4,argKey:"brtype"},{regex:/((^|[^\\])((\\)\\)*\$blType)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$blType))/gi,argIndex:4,argKey:"bltype"},{regex:/((^|[^\\])((\\)\\)*\$colorRangeLabel)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$colorRangeLabel))/gi,argIndex:5,argKey:"colorRangeLabel"},{regex:/((^|[^\\])((\\)\\)*\$zdatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$zdatavalue))/gi,argIndex:2,argKey:"zDataValue"},{regex:/((^|[^\\])((\\)\\)*\$svalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$svalue))/gi,argIndex:3,argKey:"svalue"},{regex:/((^|[^\\])((\\)\\)*\$positiveErrorValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$positiveErrorValue))/gi,argIndex:2,argKey:"positiveErrorValue"},{regex:/((^|[^\\])((\\)\\)*\$negativeErrorValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$negativeErrorValue))/gi,argIndex:2,argKey:"negativeErrorValue"},{regex:/((^|[^\\])((\\)\\)*\$datasvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$datasvalue))/gi,argIndex:2,argKey:"formattedsValue"}],r=[],n=t.length;for(e=0;e<n;e+=1)r.push(e);return function(){var e,n,a,i,o,s=arguments[0],l=arguments[1];if(ye(l)||(l=r),s)for(o=l.length,i=0;i<o;i+=1)(a=t[l[i]])&&(e=Pe(Ve((n=arguments[a.argIndex])&&n[a.argKey],H)+H),s=(s=s.replace(a.regex,"$2$4"+(a.parsingMethod?a.parsingMethod(e):e))).replace(a.escapeRegex,"$2$4$5"));return s}}(),Ee=(g=function(e,t,r,n,a){var i,o=Math.abs(t-e),s=o/(r+1),l=n;return m(o,r,l)||(a&&(i=l>1?2:.5,Number(s)/Number(l)<i&&(l/=10)),o=(s=(Math.floor(s/l)+1)*l)*(r+1)),o},p=function(e){var t=Math.abs(e),r=String(t),n=0,a=r.indexOf(".");return-1!==a&&(n=r.length-a-1),n},m=function(e,t,r){return!(p(e/(t+1))>p(r))},function(e,t,r,n,a,i,o,s){var l,c,u,h,f,p,v,b,y,x,C,w,_,k,S,E,A,T,M,F,I,L,N,D,O,R,P,V=0,B=e,j=t,G=a,H=i,z=o;if((B=!0===isNaN(B)||B===d?.1:B)===(j=!0===isNaN(j)||j===d?0:j)&&0===B&&(B=.1),G=void 0===G||G,H=void 0===H||H,v=Math.floor(Math.log(Math.abs(B))/Math.LN10),b=Math.floor(Math.log(Math.abs(j))/Math.LN10),y=Math.max(b,v),x=Math.pow(10,y),Math.abs(B)/x<2&&Math.abs(j)/x<2&&(y--,x=Math.pow(10,y)),C=Math.floor(Math.log(B-j)/Math.LN10),w=Math.pow(10,C),B-j>0&&x/w>=10&&(x=w,y=C),_=(Math.floor(B/x)+1)*x,k=j<0?(Math.floor(Math.abs(j/x))+1)*x*-1:H?0:(k=Math.floor(Math.abs(j/x)-1)*x)<0?0:k,G&&B<=0&&(_=0),c=!(!n&&0!==n),u=!1==(l=!(!r&&0!==r))||!0===l&&Number(r)<B&&B-Number(r)>ae?_:Number(r),h=!1===c||!0===c&&Number(n)>j&&Number(n)-j>ae?k:Number(n),f=Math.abs(u-h),p=x,!1===c&&!1===l&&s)if(u>0&&h<0){for(E=!1,T=g(h,u,z,A=p>10?p/10:p,!1)-(z+1)*A;!1===E;)if(m(T+=(z+1)*A,z,A))if(S=T-f,M=T/(z+1),F=(I=Math.min(Math.abs(h),u))===Math.abs(h)?-1:1,0===z)E=!0;else for(N=1;N<=Math.floor((z+1)/2);N++)(L=M*N)-I>S||L>I&&(R=T-L)/M===Math.floor(R/M)&&L/M===Math.floor(L/M)&&(f=T,u=-1===F?R:L,h=-1===F?-L:-R,E=!0)}else S=(D=g(h,u,z,p,!0))-f,f=D,u>0?u+=S:h-=S;else s&&(P=function(e,t,r){for(var n,a=0,i=1;!m(t,n=0===(n=e+a*i)?1:n,r);){if((a=-1===i||a>e?++a:a)>25){n=0;break}i=a<=e?-1*i:1}return n},z>0&&(0===(O=P(z,f,p))&&(O=P(z,f+1,p),V=1),z=O));return{Max:u,Min:h,Range:f,interval:p,divGap:(u-h+V)/(z+1)}}),Ae={keyup:!0,blur:!0,click:!0,load:!0,dragstart:!0,dragmove:!0,dragend:!0,dblclick:!0,mousedown:!0,mousemove:!0,mouseout:!0,mouseover:!0,mouseup:!0,"fc-wheel":!0,"fc-click":!0,"fc-dragstart":!0,"fc-dragmove":!0,"fc-dragend":!0,"fc-dbclick":!0,"fc-mousedown":!0,"fc-mousemove":!0,"fc-mouseout":!0,"fc-mouseover":!0,"fc-mouseup":!0,"fc-pinchstart":ie||oe,"fc-pinchmove":ie||oe,"fc-pinchend":ie||oe,touchstart:ie||oe,touchmove:ie||oe,touchend:ie||oe,touchcancel:ie||oe},Te={stripWhitespace:/\s+/g,dropHash:Z,startsRGBA:Q,cleanColorCode:ee,breakPlaceholder:J,hexcode:/^#?[0-9a-f]{6}/i},Me={colors:{B90000:"B90000",FFFFFF:"FFFFFF",AAAAAA:"AAAAAA",c000000:"000000"},BLANK:"",DATASET:"dataset",NORMALSTRING:"normal",PX:"px",INPUT:"input",LABEL:"label",BLANKSPACE:" ",COMMA:",",OBJECTBOUNDINGBOX:"objectBoundingBox",GROUPID:"groupId",EVENTARGS:"eventArgs",CIRCLE:"circle",POLYGON:"polygon",SPOKE:"spoke",RECTANGLE:"rectangle",ROLLOUT:"rollout",ROLLOVER:"rollover",DATAPLOTCLICK:"dataplotclick",defaultFontStr:"Verdana,sans",line:"line",bar:"bar",column:"column",volume:"volume",HUNDREDSTRING:"100",SEVENTYSTRING:"70",NINETYSTRING:"90",AUTOSTRING:"auto",configStr:"config",animationObjStr:"animationObj",showHoverEffectStr:"showHoverEffect",hiddenStr:"hidden",visibleStr:"visible",columnStr:"columns",barStr:"bars",barHotStr:"bar-hot",colHotStr:"col-hot",shadowStr:"shadow",dataLabelStr:"datalabel",errorBarStr:"errorBar",errorHotStr:"error-hot",errorShadowStr:"error-shadow",negativeValueStr:"negative-values",positiveValueStr:"positive-values",zeroPlaneStr:"zero-plane",categoryPlotsStr:"categoryplots",noneStr:"none",setRolloverAttrStr:"setRolloverAttr",setRolloutAttrStr:"setRolloutAttr",elementStr:"element",hotElementStr:"hotElement",strokeWidthStr:"stroke-width",strokeDashStr:"stroke-dasharray",strokeLineJoinStr:"stroke-linejoin",miterStr:"miter",visiblilityStr:"visibility",ROUND:"round",PERCENTAGESTRING:"%",pStr:"p",sStr:"s",divLineAlpha3DStr:"divLineAlpha3D",divLineAlphaStr:"divLineAlpha",altVGridColorStr:"altVGridColor",altVGridAlphaStr:"altVGridAlpha",altHGridColorStr:"altHGridColor",altHGridAlphaStr:"altHGridAlpha",PLOTFILLCOLOR_STR:"plotFillColor",UNDERSCORE:"_",gaugeFillColorStr:"gaugeFillColor",gaugeBorderColorStr:"gaugeBorderColor",NORMAL:"normal",BOLD:"bold",POINTER:"pointer",DEFAULT:"default",POSITION_MIDDLE:"middle",POSITION_START:"start",POSITION_TOP:"top",POSITION_BOTTOM:"bottom",POSITION_END:"end"};function Fe(e){return null!=e}function Ie(e){var t={},r=e.getBoundingClientRect();return t.left=r.left+(window.pageXOffset||document.documentElement.scrollLeft),t.top=r.top+(window.pageYOffset||document.documentElement.scrollTop),t}function Le(e){for(var t,r,n=e,a=1,i=1;n&&"BODY"!==n.tagName;)(r=(r=(t=window.getComputedStyle(n).getPropertyValue("transform"))&&"none"!==t&&-1!==t.indexOf("(")&&t.substring(t.indexOf("(")+1))&&r.replace(/\)/,"").split(/\,/))&&"none"!==r[0]&&(a*=+r[0]||1,i*=D||N||T?+r[5]||1:+r[3]||1),n=n.parentNode;return{scaleX:a,scaleY:i}}function Ne(e){var t=e&&(e.sourceEvent||e.originalEvent||e);return ie&&t&&(t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0])||t||de}function De(e){var t,r,n,a=e.data,i=a.chart,o=i.getFromEnv("animationManager"),s=xe(Ne(e.originalEvent)),l=i.getChildren("canvas")[0],u=t=l.getGraphicalElement("resizeBox"),d=a.layerX=s.pageX-a.chartPosLeft,h=a.layerY=s.pageY-a.chartPosTop,f=d-a.ox,g=h-a.oy,p=a.bBox,m={scaleX:1,scaleY:1},v=a.ox,b=a.oy,y=a.zoomX,x=a.zoomY,C=a.canvasY,w=a.canvasX,_=a.canvasX2,k=a.canvasY2,S=a.strokeWidth,E=a.attr,A=i.config&&(0,c["default"])(i.config.applycsstransform,0);switch(A&&(v/=(m=Le(i.getFromEnv("chart-container"))).scaleX,b/=m.scaleY),e.state){case"start":r=Ie(this),a.chartPosLeft=r.left,a.chartPosTop=r.top,d=s.pageX-a.chartPosLeft,h=s.pageY-a.chartPosTop,a.oy=h,a.ox=d,a.allowMove=!1,E.x=0,E.y=0,E.height=0,E.width=0,u=l.addGraphicalElement("resizeBox",o.setAnimation({el:t||"rect",attr:E,container:i.getChildContainer("trackerGroup")})).show(),t||l.addGraphicalElement("resizeBox",u),A&&(d/=m.scaleX,h/=m.scaleY),d>w&&d<_&&h>C&&h<k&&(a.allowMove=!0),e.target._isTrackerElem&&(a.allowMove=!1);break;case"end":n={chart:i,selectionLeft:(p=u.getBBox()).x,selectionTop:p.y,selectionHeight:p.height,selectionWidth:p.width,originalEvent:e.originalEvent},a.isDragged&&(a.selectionEnd&&a.selectionEnd(n),a.isDragged=0),u.hide(),delete a.oy,delete a.ox;break;default:if(!a.allowMove)return;f=d-a.ox,g=h-a.oy,p=a.bBox,v=a.ox,b=a.oy,A&&(v/=m.scaleX,b/=m.scaleY),a.isDragged||(n={chart:i,selectionLeft:(y?ue(v,v+f):w)+.5*S,selectionTop:(x?ue(b,b+g):C)+.5*S,selectionHeight:0,selectionWidth:0,originalEvent:e.originalEvent},a.selectionStart&&a.selectionStart(n),a.isDragged=1),A&&(f/=m.scaleX,g/=m.scaleY),f=-(v-ue(v-(v-ce(v+f,w)),_)),g=-(b-ue(b-(b-ce(b+g,C)),k)),o.setAnimation({el:u,attr:{x:(y?ue(v,v+f):w)+.5*S,y:(x?ue(b,b+g):C)+.5*S,width:y?te(f):a.canvasW,height:x?te(g):a.canvasH}})}}function Oe(e){var t=e.data,r=e.originalEvent,n=r.target||r.originalTarget||r.srcElement||r.relatedTarget||r.fromElement,a=r.type,i=r.layerX,o=r.layerY;i===d&&(i=r.pageX-t.chartPosLeft,o=r.pageY-t.chartPosTop),"mousedown"===a&&(n.ishot=i>t.canvasX&&i<t.canvasX2&&o>t.canvasY&&o<t.canvasY2),"mouseup"===a&&setTimeout((function(){n.ishot=!1}),1)}function Re(){var e,t,r;for(t=0,r=arguments.length;t<r;t+=1)if((e=arguments[t])||!1===e||0===e)return e;return H}function Pe(e){return e&&e.replace(/\$/g,"$$$$")}function Ve(e,t){return e||!1===e||0===e?e:t}function Be(){var e,t,r;for(t=0,r=arguments.length;t<r;t+=1)if((e=arguments[t])||!1===e||0===e)return e;return d}function je(e,t){we(e.substr(0,e.indexOf("__FC_ARG_SEP__")).replace(/\s/g,H),e.substr(e.indexOf("__FC_ARG_SEP__")).replace(/__FC_ARG_SEP__/,""),t)}function Ge(e){/^j\s*\-/.test(e)?je(e.replace(/^j\s*\-/,H).replace(/\-/,"__FC_ARG_SEP__")):je(e.replace(/^javascript\s*\:/i,H).replace(/[\'\"]?\s*\,\s*[\'\"]?/g,"__FC_ARG_SEP__").replace(/\(\s*[\'\"]?(.*)\)\;?/,"__FC_ARG_SEP__$1").replace(/[\'\"]?$/,""),!0)}function He(e,t){var r=re(10,t);return ne(e*r)/r}function ze(e,t,r){return r||r===d?[e,t]:E}function Ue(e,t){return"object"!=typeof e?H:((e.fontSize||e["font-size"])&&(!e.fontSize&&e["font-size"]&&(e.fontSize=e["font-size"],delete e["font-size"]),e.lineHeight=(parseFloat(e.fontSize)||t||10)*u+"px",delete e["line-height"]),!e.lineHeight&&e["line-height"]&&(e.lineHeight=e["line-height"],delete e["line-height"]),e.lineHeight)}function Xe(e,t){return e-t}function We(e,t){return t-e}t.appliedCSS=["fontFamily","fontSize","fontWeight","fontStyle"],t.preDefStr=Me,t.regex=Te,t.chartAPI=void 0,t.getAxisLimits=Ee,t.parseTooltext=Se,t.gradientify=ke,t.toRaphaelColor=_e,t.getViewPortDimension=Ce,t.getEventCoordinate=xe,t.isArray=ye,t.createElement=function(e,t,r){var n,a=F.createElement(e);for(n in t)a.setAttribute(n,t[n]);return r&&r.appendChild&&r.appendChild(a),a},t.animHelperFN={getTimeByValue:function(e,t,r){var n=(e.end-e.start)/(t.endPx-t.startPx);return{start:e.start+n*(r.startPx-t.startPx),end:e.start+n*(r.endPx-t.startPx)}},animByWeight:function(e,t,r,n,a){var i=n||1,o=t,s=a||0;return{start:e/--o*r*i+s,end:e/o*r*i+r+s}}},t.rgbaToHex=function(e){var t=e.replace("rgba(",z).split(",");return"#"+("000000"+(t[0]<<16|t[1]<<8|t[2]).toString(16)).slice(-6)},t.polyPathToPath=function(e){var t,r,n,a,i,o=e[0],s=e[1],l=e[2],c=e[3],u=e[4],d=e[5];if(t=[],o=S.parseInt(o,10)||0,s=q(s)||0,l=q(l)||0,c=q(c)||0,u=null===u||isNaN(u)?.5*Math.PI:u%360*(Math.PI/180),d=null===d||isNaN(d)?0:q(d),a=u,o>2)switch(r=2*Math.PI/o,d){case 0:for(n=0;n<o;n++)t.push("L",s+c*Math.cos(-a),l+c*Math.sin(-a)),a+=r;t[0]="M",t.push("Z");break;case 1:for(n=0;n<o;n++)t.push("M",s,l,"L",s+c*Math.cos(-a),l+c*Math.sin(-a)),a+=r;break;default:for(r*=.5,i=c*Math.cos(r)*(1-d),n=0;n<o;n++)t.push("L",s+c*Math.cos(-a),l+c*Math.sin(-a)),a+=r,t.push("L",s+i*Math.cos(-a),l+i*Math.sin(-a)),a+=r;t[0]="M",t.push("Z")}else 0===c?t.push("M",s,l,"L",s,l,"Z"):t.push("M",s-c,l,"A",c,c,0,0,0,s+c,l,"A",c,c,0,0,0,s-c,l,"Z");return t},t.removeHtmlAttrs=function(e){return void 0===e&&(e={}),be.forEach((function(t){return delete e[t]})),e},t.crispBound=function(e,t,r,n,a,i,o){void 0===e&&(e=0),void 0===t&&(t=0),void 0===r&&(r=0),void 0===n&&(n=0),void 0===a&&(a=0),void 0===i&&(i={});var s=a;if(n<1||r<1)return{x:e,y:t,width:r,height:n,"stroke-width":s};(s>=r||s>=n)&&(s=Math.floor(Math.min(r,n)/2)||s);var l=e,c=t,u=e+r,d=s/2,h=s%2,f=t+n;return c=i.top?Math.round(c)+d-ve:h?Math.floor(c)+.5-ve:Math.round(c)-ve,f=i.bottom?Math.round(f)-d-ve:o&&i.top?Math.round(f)+d-ve:h?Math.floor(f)+.5-ve:Math.round(f)-ve,l=i.left?Math.round(l)+d-ve:o&&i.right?Math.round(l)-d-ve:h?Math.floor(l)+.5-ve:Math.round(l)-ve,u=i.right?Math.round(u)-d-ve:h?Math.floor(u)+.5-ve:Math.round(u)-ve,{x:l,y:c,width:Math.abs(u-l),height:Math.abs(f-c),"stroke-width":s}},t.supportedStyle={font:"font",fontFamily:"font-family","font-family":"font-family",fontWeight:"font-weight","font-weight":"font-weight",fontSize:"font-size","font-size":"font-size",lineHeight:"line-height","line-height":"line-height",textDecoration:"text-decoration","text-decoration":"text-decoration",color:"color",whiteSpace:"white-space","white-space":"white-space",padding:"padding",margin:"margin",background:"background",backgroundColor:"background-color","background-color":"background-color",backgroundImage:"background-image","background-image":"background-image",backgroundPosition:"background-position","background-position":"background-position",backgroundPositionLeft:"background-position-left","background-position-left":"background-position-left",backgroundPositionTop:"background-position-top","background-position-top":"background-position-top",backgroundRepeat:"background-repeat","background-repeat":"background-repeat",border:"border",borderColor:"border-color","border-color":"border-color",borderStyle:"border-style","border-style":"border-style",borderThickness:"border-thickness","border-thickness":"border-thickness",borderTop:"border-top","border-top":"border-top",borderTopColor:"border-top-color","border-top-color":"border-top-color",borderTopStyle:"border-top-style","border-top-style":"border-top-style",borderTopThickness:"border-top-thickness","border-top-thickness":"border-top-thickness",borderRight:"border-right","border-right":"border-right",borderRightColor:"border-right-color","border-right-color":"border-right-color",borderRightStyle:"border-right-style","border-right-style":"border-right-style",borderRightThickness:"border-right-thickness","border-right-thickness":"border-right-thickness",borderBottom:"border-bottom","border-bottom":"border-bottom",borderBottomColor:"border-bottom-color","border-bottom-color":"border-bottom-color",borderBottomStyle:"border-bottom-style","border-bottom-style":"border-bottom-style",borderBottomThickness:"border-bottom-thickness","border-bottom-thickness":"border-bottom-thickness",borderLeft:"border-left","border-left":"border-left",borderLeftColor:"border-left-color","border-left-color":"border-left-color",borderLeftStyle:"border-left-style","border-left-Style":"border-left-style",borderLeftThickness:"border-left-thickness","border-left-thickness":"border-left-thickness"},t.chartPaletteStr=me,t.normalizeAngle=function(e,t){var r=t?360:pe,n=(e||0)%r;return n<0?r+n:n},t.MathExt=ge,t.xssEncode=function(e){var t=e;return null==t||"function"!=typeof t.toString?"":t=t.toString().replace(/&/g,"&").replace(/\'/g,"'").replace(/\"/g,""").replace(/</g,"<").replace(/>/g,">")},t.isXSSSafe=function(e,t){return(!t||null===V.exec(e))&&null===P.exec(e)},t.domInsertModes={REPLACE:"replace",APPEND:"append",PREPEND:"prepend"},t.defaultGaugePaletteOptions=fe,t.txtLabel=se,t.hasTouch=oe,t.touchEnabled=ie,t.mathRound=ne,t.mathAbs=te,t.validhexcolor=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i,t.cleanColorCode=ee,t.startsRGBA=Q,t.dropHash=Z,t.TXT_REGEX=K,t.visibleStr="visible",t.hiddenStr="hidden",t.animationObjStr="animationObj",t.configStr="config",t.lineHeightFactor=1.2,t.CLICK_THRESHOLD_PIXELS=5,t.TOUCH_THRESHOLD_PIXELS=15,t.canvasBorderColorStr="canvasBorderColor",t.TXT_STRING=Y,t.TXT_HREF=$,t.FIT="fit",t.FILL="fill",t.TILE="tile",t.HAND="pointer",t.POINTER="pointer",t.BOLD="bold",t.NORMAL="normal",t.UNDERSCORE="_",t.ROUND="round",t.canvasBGAlphaStr="canvasBgAlpha",t.TEXTANCHOR="text-anchor",t.COMMASPACE=", ",t.PXSTRING=W,t.VISIBLE="visible",t.INITIALSTR="initial",t.FINALSTR="final",t.HUNDREDSTRING="100",t.SHAPE_RECT="rect",t.FC_CONFIG_STRING="_FCconf",t.POSITION_END="end",t.POSITION_START="start",t.MIDDLESTR=t.POSITION_MIDDLE="middle",t.POSITION_BOTTOM="bottom",t.POSITION_TOP="top",t.STRINGUNDEFINED="undefined",t.DECIMALSTRING=".",t.ONESTRING="1",t.TESTSTR="Ag",t.MOUSEMOVE="fc-mousemove",t.MOUSEOUT="fc-mouseout",t.ZEROSTRING="0",t.COMMA=U,t.COMMASTRING=",",t.BLANKSTRING=z,t.BLANK=H,t.OBJECTSTRING="object",t.STRINGSTRING="string",t.BREAKSTRING=G,t.HASHSTRING="#",t.COLOR_TRANSPARENT="rgba(0,0,0,0)",t.COLOR_WHITE=j,t.COLOR_GLASS="rgba(255, 255, 255, 0.3)",t.COLOR_BLACK="000000",t.SAMPLESTRING="Ay0",t.BLANKSTRINGPLACEHOLDER="#BLANK#",t.UNDEF=d,t.POSITION_CENTER="center",t.POSITION_LEFT="left",t.POSITION_RIGHT="right",t.TRACKER_FILL=B,t.attrTypeBool=2,t.attrTypeNum=1,t.DEFAULT_FT_FONT="Helvetica, Arial, sans-serif",t.isIpad=R,t.isEdge=O,t.isIE=D,t.isIE11=N,t.hasSVG=L,t.isFirefox=M,t.isIE9=T,t.getEmptyConstractor=function(){return A},t.stubFN=A,t.DASH_DEF=E,t.BGRATIOSTRING=void 0;t.isSimilarObject=function(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;var r;for(r in e)if(e[r]!==t[r])return!1;return!0},t.snapPoint=function(e,t,r){for(var n=t.length,a=r.lastSnap,i=1,o=n,s=r.config.setValue;o--;)if(te(t[o]-s)<e.snapPixel){a!==o&&(r.lastSnap=e.datasetConf.snapToDivOnly?d:o,s=t[o]),i=0;break}return i&&(r.lastSnap=d),s},t.datasetFactory=function(e,t,r,n,a,i){if(void 0===n&&(n=1),void 0===i&&(i=[]),e&&t&&r){var o,s,l,c=e.getChildren(r)||[];for(o=0;o<n;o+=1)c&&c[o]&&!c[o].getState("removed")?l=c[o]:(l=new t,e.attachChild(l,r)),l.config._childIndex=o,l.setState("_total",n),l.setJSONIndex&&l.setJSONIndex(i[o]||o),a&&a.length>o&&l.configure&&l.configure(a[o]);if(o<(s=c&&c.length))for(;o<s;o+=1)c[o]&&c[o].remove&&c[o].remove()}},t.componentFactory=function(e,t,r,n,a){if(void 0===n&&(n=1),e&&t&&r){var i,o,s,l=e.getChildren(r)||[];for(i=0;i<n;i+=1)l&&l[i]&&!l[i].getState("removed")?s=l[i]:(s=new t,e.attachChild(s,r)),a&&a.length>i&&s.configure&&s.configure(a[i]);if(i<(o=l&&l.length))for(;i<o;i+=1)l[i]&&l[i].remove&&l[i].remove()}}},function(e,t,r){"use strict";t.__esModule=!0,t.parseConfiguration=function(e,r,l,c,u,d){var h,f,g,p=1,m=c,v=d,b=u;for(h in t.attribDefs=a=a||s,m=m||s,v=v||s,b=b||{},e)if(!m[h]&&((f=e[h])||!1===f||0===f))switch((g=v[h]||a[h])&&g.type){case i:f=Number(f),isNaN(f)||(r[h]=f);break;case o:f=Number(f),isNaN(f)||(r[h]=!!f);break;default:r[h]=f}if(l)for(h in r)r[h]===n&&(g=v[h]||a[h])&&g.pAttr&&(r[h]=l[g.pAttr]);for(;p;)for(h in p=0,r)r[h]===n&&(g=v[h]||a[h])&&(g.attr?(f=r[g.attr])!==n&&(r[h]=f,p+=1):g.parser&&(f=g.parser(r,l,b))!==n&&(r[h]=f,p+=1))},t.setAttribDefs=function(e,r){var n,i;t.attribDefs=a=a||{},"string"==typeof e?(n={})[e]=r:n=e;for(i in n)a[i]||(a[i]=n[i])},t.hasAttribDefs=function(e){return!!a[e]},t.attribDefs=void 0;var n,a,i=1,o=2,s={},l=Math.max;t.attribDefs=a,t.attribDefs=a={setBorderWidth:{type:i,pAttr:"plotborderthickness"},plotborderthickness:{type:i,pAttr:"plotborderthickness"},showBorderEffect:{parser:function(){var e=arguments[1],t=.1;return 1==+e.showplotborder&&e.plotborderthickness===t?1:0}},alphaanimation:{type:i},showplotborder:{type:i,pAttr:"showplotborder"},zeroplanethickness:{type:i},showzeroplaneontop:{type:i},stickytracking:{type:i},usemessagelog:{type:i},showtooltip:{type:i,pAttr:"showtooltip"},seriesnameintooltip:{type:i},plothovereffect:{type:i,attr:"anchorhovereffect"},anchorhovereffect:{type:i,attr:"showhovereffect"},showhovereffect:{type:i},linethickness:{type:i,pAttr:"linethickness"},dashed:{type:i,pAttr:"linedashed"},linedashed:{type:i,attr:"plotborderdashed"},plotborderdashed:{type:i,pAttr:"plotborderdashed"},linedashlen:{type:i,pAttr:"linedashlen"},linedashgap:{type:i,pAttr:"linedashgap"},anchoralpha:{pAttr:"anchoralpha"},anchorsides:{type:i,pAttr:"anchorsides"},anchorradius:{type:i,pAttr:"anchorradius"},anchorbgalpha:{pAttr:"anchorbgalpha"},anchorbgcolor:{pAttr:"anchorbgcolor"},anchorbordercolor:{pAttr:"anchorbordercolor"},anchorstartangle:{type:i,pAttr:"anchorstartangle"},anchorimageurl:{pAttr:"anchorimageurl"},anchorimagescale:{type:i,pAttr:"anchorimagescale"},anchorimagealpha:{pAttr:"anchorimagealpha"},anchorimagepadding:{type:i,pAttr:"anchorimagepadding"},anchorborderthickness:{type:i,pAttr:"anchorborderthickness"},anchorshadow:{type:i,pAttr:"anchorshadow"},valuepadding:{type:i,pAttr:"valuepadding"},valueposition:{pAttr:"valueposition"},plotfillangle:{type:i,pAttr:"plotfillangle"},useplotgradientcolor:{type:i},rotatevalues:{type:i,pAttr:"rotatevalues"},includeinlegend:{type:i},connectnulldata:{type:i},plotfillalpha:{pAttr:"plotfillalpha"},alpha:{pAttr:"linealpha"},linealpha:{pAttr:"plotfillalpha"},showvalues:{type:i,pAttr:"showvalues"},showpercentvalues:{type:i,parser:function(e){return e.isstacked&&e.stack100percent?1:0}},showpercentintooltip:{type:i,parser:function(e){return e.isstacked&&e.stack100percent?1:0}},stack100percent:{type:i,attr:"usepercentdistribution"},drawfullareaborder:{type:i},use3dlineshift:{type:i},parentyaxis:{type:i},radarborderthickness:{type:i},radarborderradius:{type:i},gaugeoriginx:{type:i},hasgaugeoriginx:{attr:"gaugeoriginx"},gaugeoriginy:{type:i},hasgaugeoriginy:{attr:"gaugeoriginy"},gaugeradius:{type:i},hasgaugeradius:{attr:"gaugeradius"},showgaugeborder:{type:i},setAdaptiveMin:{type:i},adjustDiv:{type:i},axisNameWidth:{type:i},rotateAxisName:{type:i},useEllipsesWhenOverflow:{type:i},showZeroPlane:{type:i},zeroPlaneAlpha:{type:i},showZeroPlaneValue:{type:i},zeroPlaneOnTop:{type:i},trendlineThickness:{type:i},showTrendlinesOnTop:{type:i},trendlinesAreDashed:{type:i},trendlinesDashLen:{type:i},trendlinesDashGap:{type:i},showTrendlines:{type:i},showTrendlineLabels:{type:i},showLabels:{type:i},rotateLabels:{type:i},slantLabel:{type:i},showAxisValues:{type:i},showTooltip:{type:i},maxLabelHeight:{type:i},useroundedges:{type:i,pAttr:"useroundedges"},placevaluesinside:{type:i},plotpaddingpercent:{type:i},use3dlighting:{type:i,pAttr:"use3dlighting"},usedataplotcolorforlabels:{type:i},plotspacepercent:{type:i,parser:function(e){return l(e.plotspacepercent%100,0)}},ratio:{pAttr:"plotfillratio"},base:{type:i},showMinorDivLineValues:{type:i},numMinorDivLines:{type:i},majorTMNumber:{type:i},majorTMHeight:{type:i},showTickMarks:{type:i},majorTMThickness:{type:i},adjustTM:{type:o},minorTMNumber:{type:i},minorTMThickness:{type:i},tickMarkDistance:{type:i},placeTicksInside:{type:i},placeValuesInside:{type:i},axisValuePadding:{type:i},gridLineWidth:{type:i},showRadarBorder:{type:i},radarBorderThickness:{type:i},maxcolwidth:{type:i,parser:function(e){return Math.abs(e.maxcolwidth)}},maxbarheight:{type:i,parser:function(e){return Math.abs(e.maxbarheight)}},plotborderalpha:{parser:function(e,t){return t.plotborderalpha||e.plotfillalpha}},autoscale:{type:i},plotborderdashlen:{type:i,pAttr:"plotborderdashlen"},plotborderdashgap:{type:i,pAttr:"plotborderdashgap"},plotfillratio:{pAttr:"plotfillratio"},drawverticaljoins:{type:i,pAttr:"drawverticaljoins"},useforwardsteps:{type:i,pAttr:"useforwardsteps"},minimizetendency:{type:i},usepercentdistribution:{type:i},stepatmiddle:{type:i}}},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a,i,o,s=n(r(187)),l=" ",c="start",u="end",d="on",h=window,f=h.document,g="ontouchstart"in h,p="click",m="touchstart",v="touchend",b="touchmove",y="mouseout",x="mouseover",C="keydown",w=((o={}).pointerdrag={start:["mousedown"],end:["mouseup"],onStart:["mousemove"],postHandlers:{},preHandlers:{}},o.pointerhover={start:[x],end:[y]},o.click={start:[p]},o.escape={start:[C],preHandlers:{start:function(e){var t=e||h.event;return!(!t.keyCode||27!==t.keyCode)}}},g&&((i=o.pointerdrag).start.push(m),i.end.push(v),i.onStart.push(b),i.postHandlers.onStart=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1}),o);a=(0,s["default"])({},w);var _=new function(){var e={},t={},r=f.addEventListener?function(e,t,r){e.addEventListener(t,r,!1)}:function(e,t,r){e.attachEvent("on"+t,r)},n=f.removeEventListener?function(e,t,r){e.removeEventListener(t,r,!1)}:function(e,t,r){e.detachEvent("on"+t,r)},i=function(e,t,a,i){var o=i||"closure";return r(e,t,a[o]),function(){n(e,t,a[o])}},o=function(e,t,r){var n,o,s,l,f=[];if(l=a[t],r.start=function(t){for(var n=l.onStart,a=l.end,o=[],s=[],u=n&&n.length||0,d=t||h.event;u--;)o.push(i(e,n[u],r,"onStart"));for(u=a&&a.length||0;u--;)s.push(i(e,a[u],r,"end"));r.startUn=r.startUn?r.startUn.concat(o):o,r.endUn=r.endUn?r.endUn.concat(s):s,r.state=c,r.closure(d)},r.onStart=function(e){var t=e||h.event;r.state=d,r.gDef&&r.gDef.preHandlers&&"function"==typeof r.gDef.preHandlers.onStart&&r.gDef.preHandlers.onStart(t),r.closure(t),r.gDef&&r.gDef.postHandlers&&"function"==typeof r.gDef.postHandlers.onStart&&r.gDef.postHandlers.onStart(t)},r.end=function(e){for(var t=r.startUn,n=r.endUn,a=t&&t.length||0,i=e||h.event;a--;)t[a]();for(delete r.startUn,r.startUn=[],a=n&&n.length||0;a--;)n[a]();delete r.endUn,r.endUn=[],r.state=u,r.closure(i)},l)for(s=(n=l.start).length;s--;)(o=n[s])&&f.push(i(e,o,r,"start"));return f},g=function(e,t,r){var i,o,s,l;if(l=a[t])for(s=(i=l.start).length;s--;)(o=i[s])&&n(e,o,r.start)},p=function(e){return function(t){var r=e.context||e.elem,n=t.originalEvent||t;n=n||h.event,e.handler.call(r,{data:e.data,type:e.type,state:e.state,isGesture:e.isGesture,target:n.target||n.srcElement,originalEvent:n})}};return{listen:function(r,n,s,c,u){var d,h,g,m,v,b=this,y="string"==typeof n?n.split(l):n,x=y.length,C=[],w=function(e,t,r){C.push((function(){b.unlisten(e,t,r)}))};if(r.ownerDocument&&r.ownerDocument===f)for(;x--;)h=y[x],m=Boolean(a[h]),(g={handler:v="function"==typeof s?s:s[x],elem:r,type:h,isGesture:m,gDef:m?a[h]:null,data:c,context:u,start:[],end:[],links:{prev:null,next:null}}).closure=p(g),m?((d=t[h])||(d=t[h]=[]),d.push(g),o(r,h,g)):((d=e[h])||(d=e[h]=[]),d.push(g),i(r,h,g)),w(r,h,v);else for(;x--;)h=y[x],(g={handler:v="function"==typeof s?s:s[x],elem:r,type:h,isGesture:m,data:c,context:u,start:[],end:[],links:{prev:null,next:null}}).closure=p(g),(d=e[h])||(d=e[h]=[]),d.push(g),i(r,h,g),w(r,h,v);return{unlisten:function(){for(var e=C.length;e--;)C[e]();C.length=0,C=null}}},unlisten:function(r,i,o){var s,l,c,u=!1;if(Boolean(a[i]))for(l=(s=t[i])&&s.length||0;l--;)(c=s[l]).handler===o&&c.elem===r&&(g(r,i,c),s.splice(l,1),u=!0);else for(l=(s=e[i])&&s.length||0;l--;)(c=s[l]).handler===o&&c.elem===r&&(n(r,i,c.closure),s.splice(l,1),u=!0);return u},fire:function(t,r,n,a){var i,o,l,c;if(t.ownerDocument&&t.ownerDocument===f)f.createEvent?((c=f.createEvent("HTMLEvents")).initEvent(r,!0,!0),n&&n.originalEvent&&(n.originalEvent=c),"function"==typeof t[r]&&t[r](),t.dispatchEvent(c),a&&!c.returnValue&&a(c)):((c=f.createEventObject()).eventType=r,n&&(n.originalEvent?n.originalEvent=c:(0,s["default"])(c,n)),"function"==typeof t[r]&&t[r](),t.fireEvent("on"+r,c),a&&!c.returnValue&&a(c));else for(o=(i=e[r])&&i.length||0;o--;)(l=i[o]).elem===t&&l.closure(n)}}};t["default"]=_},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=function(e,t,r,n){var a;if(typeof e!==o&&typeof t!==o)return null;if(typeof t!==o||null===t)return e;void 0===e&&(e=t instanceof Array?[]:{});if(n)for(a in t)e[a]=t[a];else c(e,t,r);return e},t.cacher=t.showRecursively=t.loadRefImage=t.dashedAttr2CSSMap=t.getArrayCopy=t.merge=void 0;var n="__blank",a="␀",i="",o="object",s=function(e,t){for(var r=t.length,n=-1;r--;)if(e===t[r])return n=r;return n},l=function(e){var t,r,n;for(t=0,r=e.length,n=new Array(r);t<r;t++)n[t]=e[t];return n},c=function u(e,t,r,n,a){var i,l,c,d,h;if(a?(n.push(e),a.push(t)):(n=[e],a=[t]),t instanceof Array)for(i=0;i<t.length;i+=1){try{l=e[i],c=t[i]}catch(f){continue}typeof c!==o?r&&void 0===c||(e[i]=c):(null!==l&&typeof l===o||(l=e[i]=c instanceof Array?[]:{}),-1!==(h=s(c,a))?l=e[i]=n[h]:u(l,c,r,n,a))}else for(i in t){try{l=e[i],c=t[i]}catch(f){continue}null!==c&&typeof c===o?"[object Object]"===(d=Object.prototype.toString.call(c))?(null!==l&&typeof l===o||(l=e[i]={}),-1!==(h=s(c,a))?l=e[i]=n[h]:u(l,c,r,n,a)):"[object Array]"===d?(null!==l&&l instanceof Array||(l=e[i]=[]),-1!==(h=s(c,a))?l=e[i]=n[h]:u(l,c,r,n,a)):e[i]=c:e[i]=c}return e};t.merge=c,t.getArrayCopy=l,t.showRecursively=function(e){for(var t={},r=e,n=t;r;)r.node&&r.node.style&&"none"===r.node.style.display&&(r.show(),n._doHide=!0),r=r.parent,n.parent={},n=n.parent;return function(){for(var r=e,n=t;r;)n._doHide&&r.hide(),r=r.parent,n=n.parent}},t.loadRefImage=function(e,t){var r=t.src,n=e._.RefImg;n||(n=e._.RefImg=new Image),t.src!==undefined&&(n.src=r,e._.RefImg=n)},t.dashedAttr2CSSMap={"font-family":"fontFamily","font-size":"fontSize","text-anchor":"textAnchor","font-weight":"fontWeight","letter-spacing":"letterSpacing","font-style":"fontStyle"};t.cacher=function(e,t,r,o,s,c,u){var d=c||{},h=0;return d.__start===undefined&&(d.__start=null),d.__end===undefined&&(d.__end=null),s=s||1e3,o=o||"item",function(c){var f,g,p,m=u?c:l(arguments).join(a);return(f=d[m=m===i?n:m])?f.__prev&&(d[f.__prev].__next=f.__next,f.__next?f.__next.__prev=f.__prev:d.__end=f.__prev):(f=d[m]={},e&&(d[m][o]=r?r(e.apply(t,arguments)):e.apply(t,arguments)),null===d.__end&&(d.__end=m),++h>s&&d.__end&&(g=d[d.__end],d[g.__prev].__next=null,delete d[d.__end],d.__end=g.__prev,h--)),(p=d.__start)!==f&&(f.__prev=null,f.__next=p,p&&(p.__prev=m),d.__start=f),d[m][o]}}},function(e,t,r){"use strict";t.__esModule=!0,t.convertColor=function(e,t,r){var n,a,i=0,o=0,l=0,c=t;r&&r.match(f)&&(a=r.split(h),i=a[0].slice(a[0].indexOf("(")+1),o=a[1],l=a[2],c||0===c||(c=parseInt(100*a[3].slice(0,a[3].indexOf(")")),10)));if(e)if(e.match(f))a=e.split(h),i=a[0].slice(a[0].indexOf("(")+1),o=a[1],l=a[2];else{switch((n=e.replace(g,p).split(h)[0]).length){case 3:n=n.charAt(0)+n.charAt(0)+n.charAt(1)+n.charAt(1)+n.charAt(2)+n.charAt(2);break;case 6:break;default:n=(n+s).slice(0,6)}i=parseInt(n.slice(0,2),16)||0,o=parseInt(n.slice(2,4),16)||0,l=parseInt(n.slice(4,6),16)||0}c||0===c||(c=100);"string"==typeof c&&(c=c.split(h)[0]);return c=parseInt(c,10)/100,"rgba("+i+h+o+h+l+h+c+")"},t.getDarkColor=C,t.getLightColor=w,t.mapSymbolName=function(e,t){var r=i.circle,n=e;(n=v(n))>=3&&(r=(t?i.spoke:i.poly)+n);return r},t.getColumnColor=function(e,t,r,a,i,o,s,l,c){var u,d,f,g,m,v,b,y=e,_=t;d=y.split(h),f=_.split(h),g=o.split(h),b=s.split(h),y=y.replace(/\s/g,p).replace(/\,$/,p),c?u={FCcolor:{color:d[0],alpha:f[0]}}:i?(m=d[0],v=f[0],u={FCcolor:{color:C(m,75)+h+w(m,10)+h+C(m,90)+h+w(m,55)+h+C(m,80),alpha:v+h+v+h+v+h+v+h+v,ratio:"0,11,14,57,18",angle:l?"90":"0"}},g=[C(m,70)]):(_=function(e,t,r){var a,i=e.split(h),o=r;o!==n&&(o=Number(o.split(h)[0]));for(o=isNaN(o)?n:o,i[0]=x(i[0],o),a=1;a<t;a+=1)i[a]=i[0]*x(i[a],o)/100;return i.join(h)}(_,d.length),u={FCcolor:{color:y,alpha:_,ratio:r,angle:l?-a:a}});return[u,{FCcolor:{color:g[0],alpha:b[0]}}]},t.getPointColor=function(e,t){var r=b(e),n=y(t);return{FCcolor:{gradientUnits:"objectBoundingBox",cx:.4,cy:.4,r:"100%",color:w(r,70)+h+C(r,50),alpha:n+h+n,ratio:a,radialGradient:!0}}},t.getAngle=function(e,t,r){var n=180*Math.atan(t/e)/Math.PI;2===r?n=180-n:3===r?n+=180:4===r&&(n=360-n);return n},t.parseColor=_,t.getValidColor=function(e){return d.test(_(e))&&e},t.RGBtoHex=function(e){return(o+(e[0]<<16|e[1]<<8|e[2]).toString(16)).slice(-6)},t.rawRGBtoHEX=function(e){var t;return t=e.match(/[\d+]+/g).splice(0,3),(o+(t[0]<<16|t[1]<<8|t[2]).toString(16)).slice(-6)},t.HEXtoRGB=function(e){var t=parseInt(e,16),r=Math.floor(t/65536),n=Math.floor((t-65536*r)/256),a=Math.floor(t-65536*r-256*n);return[r,n,a]},t.parsePointValue=v,t.getFirstColor=b,t.getFirstAlpha=y;var n,a,i={circle:"circle",triangle:"triangle",square:"square",diamond:"diamond",poly:"poly_",spoke:"spoke_"},o="000000",s="FFFFFF",l=Math.abs,c=/\s+/g,u=/^#?/,d=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i,h=",",f=/^rgba/i,g=/[#\s]/gi,p="",m="#";function v(e,t){var r=e;return r=r||!1===r||0===r?Number(r):NaN,isNaN(r)?null:t?l(r):r}function b(e,t){var r=e;return(r=(r=r.split(h)[t||0]).replace(c,p))===p&&(r=o),r.replace(u,m)}function y(e){var t=e;return t=parseInt(t,10),(isNaN(t)||t>100||t<0)&&(t=100),t}function x(e,t){var r=e;return r=Number(r),r=isNaN(r)?100:r,t!==n&&(r=r*t/100),r%101}function C(e,t){var r=e,n=t;n=n<0||n>100?100:n,n/=100,r=r.replace(g,p);var a=parseInt(r,16),i=Math.floor(a/65536),s=Math.floor((a-65536*i)/256);return(o+(i*n<<16|s*n<<8|(a-65536*i-256*s)*n).toString(16)).slice(-6)}function w(e,t){var r=e,n=t;n=n<0||n>100?100:n,n/=100,r=r.replace(g,p);var a=parseInt(r,16),i=Math.floor(a/65536),s=Math.floor((a-65536*i)/256);return(o+(256-(256-i)*n<<16|256-(256-s)*n<<8|256-(256-(a-65536*i-256*s))*n).toString(16)).slice(-6)}function _(e){return e.replace(g,p).replace(u,m)}},function(e,t,r){"use strict";function n(e,t,r,n,a,i,o){var s={};switch(t){case"top":s.y=e;break;case"bottom":s.y=o-a-e;break;case"middle":s.y=(o-a)/2}switch(r){case"left":s.x=e;break;case"right":s.x=i-n-e;break;case"middle":s.x=(i-n)/2}return s}t.__esModule=!0,t.getAlignImage=function(e,t,r,a,i,o,s,l,c,u){var d,h,f,g,p={};switch(r){case"center":p.width=a,p.height=i,p.y=s/2-i/2,p.x=o/2-a/2;break;case"stretch":p.width=o-2*l,p.height=s-2*l,p.y=l,p.x=l;break;case"tile":p.width=a,p.height=i,p.tileInfo={},p.tileInfo.xCount=h=Math.ceil(c/a),p.tileInfo.yCount=f=Math.ceil(u/i),g=n(l,e,t,a*h,i*f,o,s),p.y=g.y,p.x=g.x;break;case"fit":d=a/i>c/u?c/a:u/i,p.width=a*d,p.height=i*d,g=n(l,e,t,p.width,p.height,o,s),p.y=g.y,p.x=g.x;break;case"fill":d=a/i>c/u?u/i:c/a,p.width=a*d,p.height=i*d,g=n(l,e,t,p.width,p.height,o,s),p.y=g.y,p.x=g.x;break;default:g=n(l,e,t,a,i,o,s),p.width=a,p.height=i,p.y=g.y,p.x=g.x}return p}},function(e,t,r){"use strict";var n;t.__esModule=!0,t["default"]=function(){var e,t,r;for(t=0,r=arguments.length;t<r;t+=1)if(((e=arguments[t])||!1===e||0===e)&&!isNaN(e=Number(e)))return e;return n}},function(e,t,r){"use strict";t.__esModule=!0,t.setRootSender=t.raiseEventGroup=t.raiseError=t.raiseWarning=t.disposeEvents=t.getListeners=t.triggerEvent=t.removeListener=t.addListener=void 0;var n={},a={},i=function(e,t,r,n){try{e[0].call(t,r,n||{})}catch(a){setTimeout((function(){throw a}),0)}},o=function(e,t,r){var n,o=0;if(e instanceof Array&&!t.cancelled)for(;o<e.length;o+=1)if(!0!==e[o].removed){if(e[o][1]!==t.sender&&void 0!==e[o][1]||(n=e[o][1]===t.sender?t.sender:a,i(e[o],n,t,r),!0===t.detached&&(e.splice(o,1),o-=1,t.detached=!1)),!0===t.cancelled)break}else e.splice(o,1),o-=1},s=function(){this.originalEvent&&this.originalEvent.stopPropagation&&this.originalEvent.stopPropagation.call&&this.originalEvent.stopPropagation()},l=function(){this.cancelled=!0,this.originalEvent&&this.originalEvent.stopImmediatePropagation&&this.originalEvent.stopImmediatePropagation.call?this.originalEvent.stopImmediatePropagation():this.originalEvent&&this.originalEvent.stopPropagation&&this.originalEvent.stopPropagation.call&&this.originalEvent.stopPropagation()},c=function(){return!1==(this.detached=!0)},u=function(){this.defaultPrevented=!0,this.originalEvent&&this.originalEvent.preventDefault&&this.originalEvent.preventDefault.call&&this.originalEvent.preventDefault()},d={},h=0,f=function(e,t,r,n,a,i){if(!t||!t.disposed){var f,p,m,v,b,y=e;return y=y.toLowerCase(),p=g(y,t),m=g("*",t),v=d[y],b=d["*"],(p&&p.length||m&&m.length||v&&v.length||b&&b.length)&&(f={type:y,eventType:y,eventId:h+=1,sender:t||new Error("Orphan Event"),stopPropagation:s,stopImmediatePropagation:l,cancelled:!1,preventDefault:u,defaultPrevented:!1,originalEvent:n,detached:!1,data:r,detachHandler:c},o(b,f,r),o(v,f,r),t&&(o(g("*",t),f,r),o(g(y,t),f,r))),f&&f.defaultPrevented?i&&"function"==typeof i&&i.call(t,f,r||{}):a&&"function"==typeof a&&a.call(t,f,r||{}),!0}},g=function(e,t){var r=e;if("string"==typeof r)return r=r.toLowerCase(),t?t._evtListeners&&t._evtListeners[r]:d[r];v(t,"03091559","param","::removeListener",new Error("Unspecified Event Type"))},p={type:"TypeException",range:"ValueRangeException",impl:"NotImplementedException",param:"ParameterException",run:"RuntimeException",comp:"DesignTimeError",undefined:"UnspecifiedException"},m=function(e,t,r,n,a,i){var o="#"+t+" "+(e?e.id:"unknown-source")+n+" "+i+" >> ";a instanceof Error?(a.name=p[r],a.module="FusionCharts"+n,a.level=i,a.message=o+a.message,o=a.message,setTimeout((function(){throw a}),0)):o+=a,f(i,e,{id:t,nature:p[r],source:"FusionCharts"+n,message:o})},v=function(e,t,r,n,a){m(e,t,r,n,a,"Error")};t.setRootSender=function(e){void 0===e&&(e={}),a=e},t.raiseEventGroup=function(e,t,r,a,i,o,s){var l=a.id,c=e+l;n[c]?(clearTimeout(n[c]),delete n[c]):l&&c?n[c]=setTimeout((function(){f(t,a,r,i,o,s),delete n[c]}),0):f(t,a,r,i,o,s)},t.raiseWarning=function(e,t,r,n,a){m(e,t,r,n,a,"Warning")},t.raiseError=v,t.disposeEvents=function(e){var t,r=e?e._evtListeners:d;for(t in r)r[t].length&&(r[t].length=0)},t.getListeners=g,t.triggerEvent=f,t.removeListener=function b(e,t,r){var n,a;if("function"==typeof t){if(e instanceof Array)for(a=0;a<e.length;a+=1)b(e[a],t,r);else if((n=g(e,r))instanceof Array&&n.length)for(a=n.length-1;a>=0;a-=1)n[a][0]===t&&n[a][1]===r&&(n[a].removed=!0)}else v(r,"03091560","param","::removeListener",new Error("Invalid Event Listener"))},t.addListener=function y(e,t,r,n){var a,i,o,s=e;if(s instanceof Array){for(a=[],i=0;i<s.length;i+=1)a.push(y(s[i],t,r));return a}if("string"==typeof s){if("function"==typeof t)return s=s.toLowerCase(),r?(r._evtListeners||(r._evtListeners={}),r._evtListeners[s]instanceof Array||(r._evtListeners[s]=[]),o=r._evtListeners[s]):(d[s]instanceof Array||(d[s]=[]),o=d[s]),!function(e,t,r){var n,a=e.length;for(n=0;n<a;n+=1)if(e[n][0]===t&&e[n][1]===r&&!e[n].removed)return!0}(o,t,r)&&(n&&n.priority?o.unshift([t,r]):o.push([t,r]),t);v(r,"03091550","param","::addListener",new Error("Invalid Event Listener"))}else v(r,"03091549","param","::addListener",new Error("Unspecified Event Type"))}},function(e,t,r){"use strict";t.__esModule=!0,t.addDep=function(){for(var e=this,t=arguments.length,r=new Array(t),o=0;o<t;o++)r[o]=arguments[o];if(!r.length)return void(0,n.raiseError)({id:"Extension"},"90211","dependency","Extension",new Error("A FusionCharts extension must have a valid extension property."));r.forEach((function(t){var r,o,s,l,c,u;t?(o=t.extension?t.extension:t,r=function(e){void 0===e&&(e={});var t=e.getName&&e.getName()||e.name;void 0===t&&(0,n.raiseError)({id:"Extension"},"90211","extension","Name",new Error("A FusionCharts extension must have a getName API or a name property."));return t&&t.toLowerCase()}(t),s=function(e){void 0===e&&(e={});var t=e.getType&&e.getType()||e.type;return t&&t.toLowerCase()}(t),c=t.requiresFusionCharts,s?(!a[s]&&("string"==typeof(u=s)&&(a[u]={})),(l=a[s][r]!==o)&&(a[s][r]=o)):r&&(l=i[r]!==o)&&(i[r]=o),l&&(0,n.triggerEvent)("dependencyadded",e,{name:r,type:s}),l&&c&&o(e)):(0,n.raiseError)({id:"Extension"},"90211","dependency","Extension",new Error("A FusionCharts extension must have a valid extension property."))}))},t.getDep=function(e,t){var r,n=e&&e.toLowerCase();if(t&&a[t])return a[t][n];if(!t)for(var o in a)if(a.hasOwnProperty(o)&&(r=a[o][n]))return r;return i[n]},t.getDepsByType=function(e){void 0===e&&(e="");return""===e?a:a[e.toLowerCase()]};var n=r(191),a={},i={}},function(e,t,r){"use strict";t.__esModule=!0,t.onDataUpdateSuccess=function(e,t){var r=e.sender,i=r.__state;i.dataReady=n,i.dataAvailable=!0,!0!==t.silent?!0!==r.options.safeMode||!0!==i.rendering||r.isActive()?delete i.args:(i.updatePending=t,(0,a.raiseWarning)(r,"23091255","run","::DataHandler~update","Renderer update was postponed due to async loading.")):r.options.dataSource=t.data;(0,a.triggerEvent)("dataUpdated",r,t,n,t.successcallback)},t.onDataUpdateCancel=function(e,t){(0,a.triggerEvent)("dataUpdateCancelled",e.sender,t,n,t.failurecallback)};var n,a=r(191)},function(e,t,r){"use strict";function n(e){delete e.sender.jsVars._reflowData,e.sender.jsVars._reflowData={},delete e.sender.jsVars._reflowClean}t.__esModule=!0,t["default"]=void 0;var a={beforeInitialize:function(e){var t,r=e.sender,n=r.jsVars;n.fcObj=r,n.msgStore=n.msgStore||{LoadDataErrorText:"Error in loading data.",XMLLoadingText:"Retrieving data. Please wait",InvalidXMLText:"Invalid data.",ChartNoDataText:"No data to display.",ReadingDataText:"Reading data. Please wait",ChartNotSupported:"Chart type not supported.",PBarLoadingText:"",LoadingText:"Loading chart. Please wait",RenderChartErrorText:"Unable to render chart."},n.cfgStore=n.cfgStore||{},n.previousDrawCount=-1,n.drawCount=0,n._reflowData={},r.addEventListener("beforeRender",(function(e){return e.detachHandler()})),n.userModules instanceof Array||(t=n.userModules,n.userModules=[],"string"==typeof t&&(n.userModules=n.userModules.concat(t.split(","))))},beforeDataUpdate:n,beforeDispose:function(e){var t=e.sender.jsVars;t.smartLabel&&!t.smartLabel.disposed&&t.smartLabel.dispose(),n.apply(void 0,arguments)},beforeRender:function(e){delete e.sender.jsVars.drLoadAttempted,n.apply(void 0,arguments)},dataLoadRequested:function(e){var t=e.sender,r=t.jsVars;delete r.loadError,t.ref&&t.options.showDataLoadingMessage?r.hcObj&&!r.hasNativeMessage&&r.hcObj.showLoading?r.hcObj.showMessage(r.msgStore.XMLLoadingText):t.ref.showChartMessage?t.ref.showChartMessage("XMLLoadingText"):r.stallLoad=!0:r.stallLoad=!0},dataLoadRequestCompleted:function(e){delete e.sender.jsVars.stallLoad}};t["default"]=a},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=t.globalStore=void 0;var a,i,o,s,l=r(184),c=r(191),u=r(192),d=r(196),h=n(r(197)),f=/\%/,g=new h["default"],p=(o={},s=function y(){var e,t,r,n,s,l,c,u,d=0,h=parseInt(i.options.resizeTrackingInterval,10)||300,g={},p=function(){g.itemVar._containerOffsetW=g.parentEle.offsetWidth,g.itemVar._containerOffsetH=g.parentEle.offsetHeight};for(e in o)d+=1,r=(t=o[e]).jsVars,s=t.ref,!t.disposed&&(n=s&&s.parentNode)&&(l=s.style)&&(f.test(l.width)||f.test(l.height))?(c=n.offsetWidth,u=n.offsetHeight,!r.resizeLocked&&(c&&r._containerOffsetW!==c||u&&r._containerOffsetH!==u)&&(t.resizeTo&&t.resizeTo(),g.itemVar=r,g.parentEle=n,setTimeout(p,1))):(delete o[e],d-=1);a=d?setTimeout(y,h):clearTimeout(a)},function(e,t,r){var n=e.jsVars,l=t||e.ref&&e.ref.parentNode||{};i=r,n._containerOffsetW=l.parentNode.offsetWidth,n._containerOffsetH=l.parentNode.offsetHeight,o[e.id]=e,a||(a=setTimeout(s,parseInt(r.options.resizeTrackingInterval,10)||300))});function m(e,t,r){void 0===r&&(r=!1);var n,a=this.apiInstance,i=this.getChartData((0,u.getDepsByType)("transcoder").JSON,!0,!0).data;r||(0,c.triggerEvent)("dataloaded",this,{},[this.id]),this.__state&&(this.__state.newDataArrived=!1),a.addToEnv("dataSource",i),a.addToEnv("chart-attrib",i.chart||{}),n=(0,l.pluckNumber)(i.chart&&i.chart.applycsstransform,0),a._checkInvalidData()||a._checkInvalidSpecificData()?(a.getContainer("parentgroup")&&a.getContainer("parentgroup").hide(),a.createBaseComponent(),a.getFromEnv("animationManager").setAnimationState("chartmessage"),a.setChartMessage(),a.drawChartMessage(),this._sudoSetState(1),(0,c.triggerEvent)("nodatatodisplay",this,{},[this.id])):(a.config.hasChartMessage=!1,a.getFromEnv("toolTipController").setApplyScale(n),a.setData(Object.assign({},i)))}function v(e){var t=e.sender.args,r=l.BLANK,n=t.dataFormat||"json";"jsonurl"!==n.toLowerCase()&&"xmlurl"!==n.toLowerCase()||(r=t.dataSource),(0,c.triggerEvent)("dataloadcancelled",e,{url:r,dataFormat:n},[e.id]),e.__state&&(e.__state.newDataArrived=!1)}t.globalStore=g;var b=function(e,t,r,n,a,i,o,s){var h,b,y,x,C,w=n,_=t.apiInstance,k=t.jsVars,S=f.test(t.width)?r.offsetWidth:t.width,E=f.test(t.height)?r.offsetHeight:t.height;if(r.FusionCharts=e.items[t.id],t.__state.beforedrawFired=!0,w=w||t.chartType(),!(h=(0,u.getDep)(w,"chartapi"))&&(y=(0,u.getDep)(w,"maps"))&&(h=(0,u.getDep)("maps","chartapi"),x=!0),_&&_.getName().toLowerCase()!==w.toLowerCase()&&(_.remove({instant:!0}),_=l.UNDEF),_&&_.getName().toLowerCase()===w.toLowerCase()||(_=t.apiInstance=new h,g.attachChild(_,"chartAPI"),_.addToEnv("core-options",e.options),_.addToEnv("chartInstance",t),_.addToEnv("chart",_),_.addToEnv("chart-container",r),_.addToEnv("eventListeners",[])),x)for(var A in y=y[0])y.hasOwnProperty(A)&&(_.config[A]=y[A]);if(_.addToEnv("chartWidth",Math.max(0,S)),_.addToEnv("chartHeight",Math.max(0,E)),_._removeWaitingJobs(),_.setDummyEImethods(w),_.config.origRenderWidth=t.__state.renderedWidth,_.config.origRenderHeight=t.__state.renderedHeight,"base"===w||i)!function(e,t){void 0===t&&(t=!1);var r=e.options.dataErroneous;if(r)return e.__state.dataReady=!1,t||(0,c.triggerEvent)("dataInvalid",e,{error:r},l.UNDEF,(function(){(0,c.triggerEvent)("dataxmlinvalid",e,{},[e.id])})),!0}(t,s),function(e,t){void 0===t&&(t={});e._chartMessageImageStyle=t.image||{},e._chartMessageStyle=t.message||{}}(t,o),_.createBaseComponent(),_.getFromEnv("animationManager").setAnimationState("chartmessage"),_.setChartMessage(i,t,r);else if(t.__state.resize)_.asyncDraw();else{if(_.getFromEnv("toolTipController")||(C=new((0,u.getDep)("ToolTipController"))(r,_),_.addToEnv("toolTipController",C)),_.disposeChartStyleSheet(),r.jsVars=t.jsVars,b=_.eiMethods,t.ref=r,k.type=w,b&&"string"!=typeof b)for(var T in b)r[T]=b[T];!s&&t.__state.newDataArrived?(0,c.triggerEvent)("beforedataload",t,{data:t.getChartData((0,u.getDepsByType)("transcoder").JSON,!0,!0)},l.UNDEF,m,v):m.call(t,l.UNDEF,l.UNDEF,s)}!t.disposed&&function(e,t,r,n,a){var i=e.jsVars,o=e.apiInstance,s=i.fcObj,u=i.overlayButton;i.width=o.getFromEnv("chartWidth"),i.height=o.getFromEnv("chartHeight"),i.container=t,i.hcObj=e,i.hcObj.container=t,i.instanceAPI=o,e.hasRendered&&i.overlayButtonActive&&u&&(u.innerHTML=l.BLANK,u.appendChild(document.createTextNode(i.overlayButtonMessage)),e.container.appendChild(u));(/\%/g.test(s.width)||/\%/g.test(s.height))&&t&&t.parentNode&&!a.options.preventTrackResize&&p(e,t,a);!function(e,t,r){e.apiInstance.addJob("fire-rendered",(function(){if(e.apiInstance.config.hasRendered=r.hasRendered,"waiting"!==e._getState()&&"function"==typeof t&&t(r),"waiting"!==e._getState()&&((0,c.triggerEvent)("drawcomplete",e,{width:e.jsVars.width,height:e.jsVars.height,drawCount:e.jsVars.drawCount,displayingMessage:"waiting"===e._getState()||"error"===e._getState(),renderer:"javascript"},[e.id]),e.__state&&delete e.__state.beforedrawFired),!e.disposed&&"ready"===e._getState()){if(e.__state.rendering&&(0,c.triggerEvent)("rendered",e,{renderer:"javascript"},[e.id]),e.disposed)return;if((0,c.triggerEvent)("renderComplete",e,{width:e.jsVars.width,height:e.jsVars.height,drawCount:e.jsVars.drawCount,renderer:"javascript"}),e.disposed)return;e.__state&&delete e.__state.rendering,e.__state.renderComplete=!0}}),d.priorityList.postRender)}(e,r,n)}(t,r,a,{hasRendered:!0,container:r},e)};t["default"]=b},function(e,t,r){"use strict";t.__esModule=!0,t.priorityList=t["default"]=void 0;var n=[],a={},i=[],o={},s=0,l=window,c=l.navigator,u=/trident/i.test(c.userAgent)&&/rv:11/i.test(c.userAgent)&&!l.opera,d=/msie/i.test(c.userAgent)&&!l.opera,h=/Edge/.test(c.userAgent),f={},g=l.requestAnimationFrame||l.webkitRequestAnimationFrame||l.mozRequestAnimationFrame||l.oRequestAnimationFrame||l.msRequestAnimationFrame||function(e){setTimeout(e,16)},p=!1,m=function b(){var e,t,r,a=!0,s=(new Date).getTime();for(p=!0;a&&(e=n[0]);)t=(new Date).getTime(),e.OIAF&&r||e.executeAfter&&!(e.executeAfter<t)||!(t-s<16)?a=!1:(n.shift(),i[e.priority]-=1,o[e.jobID]&&!e.executed&&(e.executed=!0,delete o[e.jobID],e.job(),r=e.OIAF));n.length?g(b):p=!1};t.priorityList={instant:1,render:1,chartEvents:1,configure:2,chartClick:2,draw:3,entitydraw:4,label:4,animation:5,tracker:6,kdTree:6,postRender:7,verification:8},(u||d||h)&&(g=g.bind(window)),f.addJob=function(e,t,r){var a,l,c,u=0,d=r&&r.oneInAFrame,h=r&&r.addToTop?t-1:t;for("function"==typeof e?(l={job:e,priority:t,OIAF:d,jobID:a="JOB_"+ ++s+"_"+(t||1)},r&&r.executionDelay&&(l.executeAfter=(new Date).getTime()+r.executionDelay)):l=e,c=0;c<=h;c++)u+=i[c]||0;return n.splice(u,0,l),o[l.jobID]=l,i[t]=(i[t]||0)+1,p||1!==n.length||(d?g(m):setTimeout(m,0)),a},f.removeJob=function(e){o[e]&&delete o[e]},f.updateJob=function(e,t,r,n){return o[e]?(o[e].job=t,e):this.addJob(t,r,n)},f.pauseExecution=function(e){if(!o[e])return!1;a[e]=o[e],delete o[e]},f.resumeExecution=function(e){var t=a[e];if(!t)return!1;f.addJob(t,t.priority),delete a[e]};var v=f;t["default"]=v},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.getName=function(){return"globalStore"},r.getType=function(){return"globalStore"},t}(r(199).ComponentInterface);t["default"]=i},function(e,t){e.exports=function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,function(e,t){for(var r=Object.getOwnPropertyNames(t),n=0;n<r.length;n++){var a=r[n],i=Object.getOwnPropertyDescriptor(t,a);i&&i.configurable&&e[a]===undefined&&Object.defineProperty(e,a,i)}}(e,t)}},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0;var a=n(r(200));t.ComponentInterface=a["default"];var i=n(r(203));t.SmartRenderer=i["default"]},function(e,t,r){"use strict";var n=r(182),a=r(178);t.__esModule=!0,t["default"]=void 0;var i=a(r(201)),o=a(r(198)),s=n(r(202)),l=function(e){function t(){var t;t=e.call(this)||this;var r=(0,i["default"])(t);return r._components={},r._version=1,r.fireEvent("instantiated"),r.__setDefaultConfig(),t}(0,o["default"])(t,e);var r=t.prototype;return r.addGraphicalElement=function(e,t,r,n){void 0===r&&(r=!1);var a=this._graphics;return t&&(r?(void 0===a[e]&&(a[e]=[]),n?a[e][n]=t:a[e].push(t)):(a[e]=t,this.fireEvent("graphicalelementattached",{element:t})),(0,s.addAllEventsOnGraphic)(t,this._middleListeners,this)),t},r.removeGraphicalElement=function(e){var t,r=this,n=r._graphics;(0,s._mapSubFnForward)(n,(function(a,i,o){a===e&&(t=!0,(0,s.removeAllEventsFromGraphic)(a,r._middleListeners),r._setRemoveAnim(a,i),void 0!==o?n[i].splice(o,1):delete n[i])})),t&&this.fireEvent("graphicalelementremoved",{element:e})},r.getGraphicalElement=function(e){return void 0!==e?this._graphics[e]:this._graphics},r.addChildContainer=function(e,t){var r=this._childContainers;return t&&(void 0===r&&(r=this._childContainers={}),r[e]=t,(0,s.addAllEventsOnGraphic)(t,this._middleListeners,this)),t},r.removeChildContainer=function(e){var t=this._childContainers;t&&t[e]&&((0,s.removeAllEventsFromGraphic)(t[e],this._middleListeners),this._setRemoveAnim(t[e],e),delete t[e])},r.getChildContainer=function(e){return void 0===this._childContainers&&(this._childContainers={}),e?this._childContainers[e]:this._childContainers},r.addContainer=function(e,t){var r=this._containers;return t&&(void 0===r&&(r=this._containers={}),r[e]=t),t},r.removeContainer=function(e){var t=this._containers;t&&t[e]&&(this._setRemoveAnim(t[e],e),delete t[e])},r.getContainer=function(e){return void 0===this._containers&&(this._containers={}),e?this._containers[e]:this._containers},r.addEventListener=function(t,r,n){var a=e.prototype.addEventListener.call(this,t,r,n);return!0===a?(function(e,t,r){var n;t&&r&&(n=function(e){e.on&&e.on(t,r)},(0,s._mapSubFnForward)(e.getGraphicalElement(),n),(0,s._mapSubFnForward)(e.getChildContainer(),n))}(this,t,this._middleListeners[t]),r):!!a&&r},r.removeEventListener=function(t,r){e.prototype.removeEventListener.call(this,t,r)&&function(e,t,r){var n;t&&r&&(n=function(e){e.off&&e.off(t,r)},(0,s._mapSubFnForward)(e.getGraphicalElement(),n),(0,s._mapSubFnForward)(e.getChildContainer(),n))}(this,t,this._middleListeners[t])},r._dispose=function(){var t;if(e.prototype._dispose.call(this)){for(t in this.getFromEnv("paper")&&!this.getFromEnv("paper").removed&&((0,s._mapSubFnForward)(this.getChildContainer(),this.__instantRemoveFn),(0,s._mapSubFnForward)(this.getGraphicalElement(),this.__instantRemoveFn),(0,s._mapSubFnForward)(this.getContainer(),this.__instantRemoveFn)),this)this.hasOwnProperty(t)&&delete this[t];this.fireEvent("removed")}},r.removingDraw=function(){(0,s._mapSubFnForward)(this.getChildContainer(),this._setRemoveAnim),(0,s._mapSubFnForward)(this.getGraphicalElement(),this._setRemoveAnim),(0,s._mapSubFnForward)(this.getContainer(),this._setRemoveAnim)},r.attachChild=function(e,t,r){var n=t||e.getType(),a=this._components;return!1===r?a[n]=e:(a[n]&&a[n]instanceof Array||(a[n]=[]),a[n].push(e)),e._setLinkedParent(this),this.fireEvent("childattached",{attachedChild:e}),e},r.getChild=function(e){var t;return void 0===e?this._components:(this._searchChildren(e,(function(e){t=e})),t)},r._searchChildren=function(e,t){var r,n,a,i=this._components;for(n in i)if(i.hasOwnProperty(n))if((r=i[n]).constructor===Array){for(a=r.length-1;a>=0;a--)if(r[a].getId&&r[a].getId()===e)return t(r[a],a,r)}else if(r.getId&&r.getId()===e)return t(n,void 0,i)},r.getChildren=function(e){return e?this._components[e]:this._components},t}(s["default"]);t["default"]=l},function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},function(e,t,r){"use strict";var n=r(182);t.__esModule=!0,t._mapSubFnForward=t.addAllEventsOnGraphic=t.removeAllEventsFromGraphic=t["default"]=void 0;var a=r(184),i=r(191),o=n(r(196)),s=function(e){e&&e.draw&&e.syncDraw()},l=function(e){return e.setDefaults()},c=function(e){e.prepareAttributes&&e.prepareAttributes()},u={},d={executionDelay:16},h=function(e,t){var r,n,a,i;if(e&&e.hasOwnProperty&&t&&t.call)for(r in e)if(e.hasOwnProperty(r))if((n=e[r])instanceof Array)for(i=n.length,a=0;a<i;a++)t(n[a],r,a);else t(n,r)};t.removeAllEventsFromGraphic=function(e,t){var r,n;if(t&&t.hasOwnProperty)for(r in t)t.hasOwnProperty(r)&&(n=(0,i.getListeners)(r,this))&&n.length>=1&&e&&e.off(r,t[r])},t.addAllEventsOnGraphic=function(e,t,r){var n,a;if(t&&t.hasOwnProperty)for(n in t)t.hasOwnProperty(n)&&(a=(0,i.getListeners)(n,r))&&a.length>=1&&e&&e.on(n,t[n])},t._mapSubFnForward=h;var f=function(){function e(){var e=this;e.config={},e._jobList={},e._env={},e._extListeners={},e._state={},e._factories=[],e._factoriyNames={},e._graphics={},e.__drawJob=function(){e.updateVisual()},e.__remove=function(){e.getState("removed")&&e._dispose()},e._setRemoveAnim=function(t,r){var n=e.getFromEnv("animationManager");n.setAnimation({el:t,component:e,label:r,props:t.__props}),e._setRemoveAnim=function(t,r){n.setAnimation({el:t,component:e,label:r,props:t.__props})}},e.__instantRemoveFn=function(t){var r=e.getFromEnv("animationManager");r.removeElement(t,!0),e.__instantRemoveFn=function(e){return r.removeElement(e,!0)}}}var t=e.prototype;return t.configure=function(e){this.preConfigure(e),this.configureAttributes(e),this.postConfigure(e),this.invokeFactories()},t.preConfigure=function(e){this.fireEvent("preconfigure",e)},t.configureAttributes=function(){return this},t.postConfigure=function(e){this.fireEvent("postconfigure",e)},t.prepareAttributes=function(){this.fireEvent("beforeattributeprepared"),this.allocatePosition&&this.allocatePosition(),this._mapChildren(c),this.fireEvent("attributeprepared")},t.setDefaults=function(){this.__setDefaultConfig(),this._mapChildren(l)},t.__setDefaultConfig=function(){return this},t.setData=function(e,t){void 0===t&&(t=!1);var r,n=this.getLinkedParent();this.asyncDraw(),!t&&this.setDefaults(),this.configure&&this.configure(e),(r=this.getState("change-info"))&&r.hasNoExternalEffect||n&&n.childChange&&n.childChange(r,this.getId())},t.getName=function(){return"generic"},t.getType=function(){return"generic"},t.getComponentVersion=function(){return this._version},t.getId=function(){return this._id||this.setId(),this._id},t.setId=function(e){var t,r=e;r===a.UNDEF&&(t=this.getType()+a.UNDERSCORE+this.getName(),u[t]||(u[t]=1),r=t+a.UNDERSCORE+u[t],u[t]+=1),this._id=r},t.iterateComponents=function(e){this._mapChildren((function t(r,n,a){!1!==e(r,n,a)&&r._mapChildren&&r._mapChildren(t)}))},t.getFromEnv=function(e){return e?this._env[e]:this._env},t.addToEnv=function(e,t){e&&(this._env[e]=t)},t.deleteFromEnv=function(e){delete this._env[e]},t._updateParentEnv=function(){var e,t,r,n,a=this.getLinkedParent(),i=this._env;if(a){if(e=a.getFromEnv(),((t=function(){}).prototype=e).constructor=t,r=new t,i)for(n in i)i.hasOwnProperty(n)&&(r[n]=i[n]);this._env=r,this._mapChildren((function(e){e._updateParentEnv&&e._updateParentEnv()}))}},t.addJob=function(e,t,r,n){this._jobList[e]?this._jobList[e]=o["default"].updateJob(this._jobList[e],t,r,n):this._jobList[e]=o["default"].addJob(t,r,n)},t.removeJob=function(e){var t=this._jobList[e];t&&(o["default"].removeJob(t),delete this._jobList[e])},t.removeAllJobs=function(){var e,t=this._jobList;for(e in t)t.hasOwnProperty(e)&&(o["default"].removeJob(t[e]),delete t[name])},t.asyncDraw=function(){this.addJob("draw",this.__drawJob,o.priorityList&&o.priorityList.draw,d)},t.syncDraw=function(){var e=this;e.fireEvent("predraw"),e.removeJob("draw"),e.getState("removed")?e.removingDraw():e.draw&&e.draw(),e.addExtEventListener("animationComplete",e.__remove,e.getFromEnv("animationManager")),e.childrenSyncDraw(),e.setState("dirty",!1),e.setState("parentChanged",!1),e.addJob("draw-complete",(function(){e.fireEvent("drawn")}),o.priorityList.instant)},t.updateVisual=function(){this.fireEvent("beforevisualupdate"),this.removeJob("visualupdate"),this.manageSpace&&this.manageSpace(),this.prepareAttributes(),this.syncDraw(),this.fireEvent("visualupdated")},t.childrenSyncDraw=function(){this._mapChildren(s)},t.addEventListener=function(e,t,r){var n,o=this,s=e;return!!(s&&s.toLowerCase&&(s=s.toLowerCase(),(0,i.addListener)(s,t,o,r)))&&((0,a.isInterActiveEvt)(s)&&(n=(0,i.getListeners)(s,o))&&1===n.length?(o._middleListeners||(o._middleListeners={}),o._middleListeners[s]||(o._middleListeners[s]=function(e){o.fireEvent(s,a.UNDEF,a.UNDEF,a.UNDEF,e)}),!0):t)},t.removeEventListener=function(e,t){var r,n=e;if(n&&n.toLowerCase&&(n=n.toLowerCase(),(0,i.removeListener)(n,t,this),(0,a.isInterActiveEvt)(n)&&(r=(0,i.getListeners)(n,this))&&0===r.length&&this._middleListeners&&this._middleListeners[n]))return!0},t.fireEvent=function(e,t,r,n,a){(0,i.triggerEvent)(e,this,t,a,r,n)},t.showWarning=function(e,t,r,n){(0,i.raiseWarning)(this.getFromEnv("chartInstance"),e,t,r,n)},t.showError=function(e,t,r,n){(0,i.raiseError)(this.getFromEnv("chartInstance"),e,t,r,n)},t.addExtEventListener=function(e,t,r){return!!(r&&r.addEventListener&&r.addEventListener(e,t))&&(this._extListeners[e]||(this._extListeners[e]=[]),this._extListeners[e].push({fn:t,component:r}),t)},t.removeExtEventListener=function(e,t,r){var n,a;if(r&&r.addEventListener&&this._extListeners&&this._extListeners[e])for(n=(a=this._extListeners[e]).length-1;n>=0;n-=1)if(a[n]&&a[n].fn===t&&a[n].component===r)return r.removeEventListener(e,t),void a.splice(n,1)},t._setLinkedParent=function(e){var t=this._linkedParent;this._linkedParent=e,t&&t!==e&&(this.setState("parentChanged",!0),this.fireEvent("parentdetached",{oldParent:t}),e&&this.fireEvent("parentAttached",{newParent:e})),this._updateParentEnv&&this._updateParentEnv()},t.getLinkedParent=function(){return this._linkedParent},t.setLinkedItem=function(e,t){this.linkedItems||(this.linkedItems={}),e===a.UNDEF&&t===a.UNDEF||(this.linkedItems[e]=t)},t.getLinkedItem=function(e){if(this.linkedItems)return e!==a.UNDEF?this.linkedItems[e]:this.linkedItems},t.removeLinkedItem=function(e){this.linkedItems&&this.linkedItems[e]&&delete this.linkedItems[e]},t._detachChild=function(e){var t,r=e&&e.getId(),n=this;return r===a.UNDEF?a.UNDEF:(n._searchChildren(r,(function(e,r,i){i&&i.constructor===Array?t=i.splice(r,1)[0]:(t=i[e],delete i[e]),t._setLinkedParent(a.UNDEF),n.fireEvent("childdetached",{detachedChild:t})})),t)},t._mapChildren=function(e,t){t?function(e,t){var r,n,a;if(e&&e.hasOwnProperty&&t&&t.call)for(r in e)if(e.hasOwnProperty(r))if((n=e[r])instanceof Array)for(a=n.length-1;a>=0;a--)t(n[a],r,a);else t(n,r)}(this.getChildren(),e):h(this.getChildren(),e)},t._dispose=function(){var e,t,r,n;if(this&&this!==window&&!0!==this._disposing){if(this._disposing=!0,this.fireEvent("beforeremove"),(e=this.getLinkedParent())&&e._detachChild&&!e._disposing&&e._detachChild(this),this._extListeners)for(r in this._extListeners)for(t=(n=this._extListeners[r]).length-1;t>=0;t--)n[t].component&&n[t].component.addEventListener&&n[t].component.removeEventListener(r,n[t].fn);return this.removeAllJobs(),!0}},t.remove=function(e){this.setState("removed",!0),this.getChildren()&&this._mapChildren((function(t){t&&t.remove&&t.remove(e)}),!0),e&&e.instant&&this._dispose()},t.setState=function(e,t){this._state[e]=t},t.getState=function(e){return this._state&&this._state[e]},t.registerFactory=function(e,t,r){var n={name:e,factory:t,dep:r};if(this._factoriyNames[e])for(var a=0,i=this._factories.length,o=!1;a<i&&!o;a+=1)this._factories[a].name===e&&(this._factories.splice(a,1),o=!0);this._factories.push(n),this._factoriyNames[e]=!0},t.deregisterFactory=function(e){if(this._factoriyNames[e])return delete this._factoriyNames[e],this._factories.splice(this._factories.findIndex((function(t){return t.name===e})),1)[0].factory},t.invokeFactories=function(){for(var e,t=this,r=t._factoriyNames,n={},a=t._factories,i=a.length+1,o=function(a){var i;a.dep&&a.dep.length&&a.dep.forEach((function(e){i=r[e]&&!n[e]})),i?e.push(a):(a.factory(t),n[a.name]=!0)};a.length&&a.length<i;)e=[],a.forEach(o),i=a.length,a=e;a.length&&a.forEach((function(e){return e.factory(t)})),this.fireEvent("factoriesinvoked",{})},e}();t["default"]=f},function(e,t,r){"use strict";var n=r(182),a=r(178);t.__esModule=!0,t["default"]=void 0;var i=a(r(201)),o=a(r(198)),s=n(r(202)),l=r(184),c=r(196),u=function(e,t){var r,n,a;if(e&&e.hasOwnProperty&&t&&t.call)for(r in e)for(a=(n=e[r].elemStore)&&n.length-1;a>=0&&!t(n[a],r,a);a--);},d=function(e,t){var r,n,a,i;if(e&&e.hasOwnProperty&&t&&t.call)for(n in e)for(i=0,r=(a=e[n].elemStore)&&a.length;i<r&&!t(a[i],n,i);i++);},h=function(e,t,r){var n,a,i,o;for(o in void 0===r&&(r={}),e)a=e[o],(i=(0,l.pluck)(t[o],r[o]))!==l.UNDEF?a instanceof Array?"text-bound"===o?(n||(n={}),n[o]=a,n.x=e.x,n.y=e.y):a.toString().replace(/,/g,"")!==i.toString().replace(/,/g,"")&&(n||(n={}),n[o]=a):"string"==typeof a?a.replace(/,/g,"")!==i.toString().replace(/,/g,"")&&(n||(n={}),n[o]=a):a!==i&&(n||(n={}),n[o]=a):(n||(n={}),n[o]=a);return n},f=function(e){function t(t){var r;r=e.call(this,t)||this;var n=(0,i["default"])(r);return n._version=2,n._id=t,n._componentStore={},n._oldComponentStore=[],n.fireEvent("instantiated"),n.__setDefaultConfig(),r}(0,o["default"])(t,e);var r=t.prototype;return r.isDrawingRequired=function(){return this},r.syncDraw=function(){var e=this,t=e.getState("removed");(e.isDrawingRequired()||t)&&(e.fireEvent("predraw"),e.removeJob("draw"),e._resetGraphicalStore(),t?e.addJob("dispose-component",(function(){return e._dispose()}),c.priorityList.postRender):e.draw&&e.draw(),e.childrenSyncDraw(),e._removeUnusedGraphics(),e.fireEvent("drawn"))},r._remove=function(){this.onRemove&&this.onRemove(),this.setState("removed",!0),this.getChildren()&&this._mapChildren((function(e){e.onRemove&&e.onRemove(),e&&e.setState("removed",!0)}),!0)},r.setDimension=function(e,t){this.config.width=e,this.config.height=t},r.setTranslation=function(e,t){var r=this.config;r._translateX=e,r._translateY=t,r.translate="t"+e+","+t},r.getTranslation=function(){return{x:this.config._translateX,y:this.config._translateY}},r._resetGraphicalStore=function(){this._oldGraphicalStore=this._graphicalStore,this._graphicalStore={}},r._getLastUsedElem=function(){return this.config.lastElemUsed},r.addGraphicalElement=function(e,t){void 0===e&&(e={}),void 0===t&&(t=!1);var r,n,a,i,o,c=e.label,u=this._graphicalStore[c]||(this._graphicalStore[c]={elemStore:[],idMap:{},indexMap:{},lastIndexUsed:-1}),d=!0,f=this._oldGraphicalStore&&this._oldGraphicalStore[c],g=u.lastIndexUsed+=1,p=e.attr,m=e.id;f&&(m&&f.idMap[m]!==l.UNDEF?(i=f.idMap[m],o=f.elemStore[i],delete f.elemStore[i],delete f.indexMap[i],delete f.idMap[m]):f.elemStore[g]&&(f.indexMap[g]||(o=f.elemStore[g],delete f.elemStore[g]))),"text"===e.el&&e.css&&(0,l.removeHtmlAttrs)(e.css),o&&(e.el=o,d=!1,(p=h(e.attr,o.attrs))&&(e.attr=p),e.css&&(n=h(e.css,o.attrs,o.styles))&&(e.css=n)),(a=e.container)?(r=a.isParent?this.getLinkedParent():this,e.container=r.getGraphicalElement(a.id,a.label)||r.getChildContainer(a.id)):e.container=this.getFromEnv("chart-container"),(p||n)&&(o=this.getFromEnv("animationManager").setAnimation(e)),u.elemStore[g]=o,m&&(u.idMap[m]&&(delete u.indexMap[u.idMap[m]],delete u.idMap[m]),u.idMap[m]=g,u.indexMap[g]=m),this.fireEvent("graphicalelementattached",{element:o}),o._skipEvents=t,e.shadow&&o.shadow(e.shadow),e.outlineText!==l.UNDEF&&o.outlineText(e.outlineText,(0,l.convertColor)((0,l.pluck)(e.css.fill,e.attr.fill))),e.tooltext!==l.UNDEF&&this.getFromEnv("toolTipController").enableToolTip(o,e.tooltext),this.config.lastElemUsed=o,!t&&d&&(0,s.addAllEventsOnGraphic)(o,this._middleListeners,this)},r.removeGraphicalElement=function(e,t){var r,n,a=this,i=a._graphicalStore;u(i,"object"==typeof e?function(t,o,s){if(e===t)return n=!0,a._setRemoveAnim(t,o),(r=i[o]).elemStore.splice(s,1),delete r.idMap[r.indexMap[s]],delete r.indexMap[s],!0}:function(o,s,l){if((r=i[s]).indexMap[l]===e&&(!t||t===s))return n=!0,a._setRemoveAnim(o,s),r.elemStore.splice(l,1),delete r.idMap[r.indexMap[l]],delete r.indexMap[l],!0}),n&&this.fireEvent("graphicalelementremoved",{element:void 0})},r.getChildContainer=function(e){return this.getGraphicalElement(l.UNDEF,e)},r._removeUnusedGraphics=function(){var e,t=this,r=t._oldGraphicalStore;u(r,(function(n,a,i){n&&(t._setRemoveAnim(n,a),delete(e=r[a]).idMap[e.indexMap[i]],delete e.indexMap[i])}))},r.getGraphicalElement=function(e,t){var r,n,a,i,o=this._graphicalStore;return t||e?t?(r=o[t],e?r&&r.elemStore&&r.elemStore[r.idMap[e]]:r&&r.elemStore&&r.elemStore[0]):(d(o,(function(){if(i=arguments[2],(n=o[arguments[1]]).idMap[i]===e)return a=n.elemStore[i],!0})),a):o},r.addEventListener=function(t,r,n){var a=e.prototype.addEventListener.call(this,t,r,n);return!0===a?(function(e,t,r){var n;t&&r&&(n=function(e){!e._skipEvents&&e.on&&e.on(t,r)},d(e.getGraphicalElement(),n))}(this,t,this._middleListeners[t]),r):!!a&&r},r.removeEventListener=function(t,r){e.prototype.removeEventListener.call(this,t,r)&&function(e,t,r){var n;t&&r&&(n=function(e){!e._skipEvents&&e.off&&e.off(t,r)},d(e.getGraphicalElement(),n))}(this,t,this._middleListeners[t])},r._dispose=function(){var e,t,r,n;if(this&&this!==window&&!0!==this._disposing){if(this._disposing=!0,this.fireEvent("beforeremove"),this._extListeners)for(r in this._extListeners)for(t=(n=this._extListeners[r]).length-1;t>=0;t--)n[t].component&&n[t].component.addEventListener&&n[t].component.removeEventListener(r,n[t].fn);for(e in this.removeAllJobs(),this._linkedParent&&1===this._linkedParent.getComponentVersion()&&this._linkedParent._detachChild(this),this.getFromEnv("paper")&&!this.getFromEnv("paper").removed&&d(this.getGraphicalElement(),this.__instantRemoveFn),this)this.hasOwnProperty(e)&&delete this[e];this.fireEvent("removed")}},r.configure=function(t){this._resetComponentStore(),e.prototype.configure.call(this,t)},r._resetComponentStore=function(){this._oldComponentStore.push(this._componentStore),this._componentStore={}},r._mapChildren=function(e,t){t?u(this.getChildren(),e):d(this.getChildren(),e)},r.attachChild=function(e,t,r){var n,a,i=this._componentStore[t]||(this._componentStore[t]={elemStore:[],idMap:{},indexMap:{},lastIndexUsed:-1}),o=this._oldComponentStore&&this._oldComponentStore.length&&this._oldComponentStore[this._oldComponentStore.length-1][t],s=i.lastIndexUsed+=1;if(o){var c=o.elemStore,u=c[s];r&&o.idMap[r]!==l.UNDEF?(a=c[n=o.idMap[r]],delete c[n],delete o.indexMap[n],delete o.idMap[r]):u&&u.constructor===e&&(o.indexMap[s]||(a=u,delete c[s]))}return a||(a=new e(r)),i.elemStore[s]=a,r&&(i.idMap[r]=s,i.indexMap[s]=r),a._setLinkedParent(this),a},r.childrenSyncDraw=function(){this._mapChildren((function(e){e&&e.draw&&e.syncDraw()})),this._removeUnusedChildren()},r._removeUnusedChildren=function(){for(var e=this._oldComponentStore,t=e.length,r=0,n=function(e){e&&(e._remove(),e.syncDraw(),e._setLinkedParent(l.UNDEF))};r<t;r+=1)u(e[r],n);this._oldComponentStore.length=0},r.getChild=function(e,t){var r;return this._searchChildren(e,(function(e){r=e}),t),r},r._searchChildren=function(e,t,r){var n,a,i=this._componentStore,o=r;if(e?u(i,(function(t,r,s){if(i[r].indexMap[s]===e&&(!o||o===r))return a=t,n=s,o=r,!0})):a=i[o]&&i[o].elemStore,a)return t(a,n,o)},r.getChildren=function(e){return e?this._componentStore[e]&&this._componentStore[e].elemStore:this._componentStore},r._detachChild=function(){return this},t}(s["default"]);t["default"]=f},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(183)),i=n(r(205)),o=n(r(206)),s=i["default"].init(window),l=s.win.document,c=s.win.Math,u=c.max,d=c.round,h={" ":" "},f=s.getDocumentSupport(),g=f.isWebKit?0:4.5;function p(e,t,r){var n,a,i,c=!1,u=window.document.createElement("canvas");for(a in(r=r||{}).maxCacheLimit=isFinite(i=r.maxCacheLimit)?i:s.maxDefaultCacheLimit,"string"==typeof e&&(e=l.getElementById(e)),(n=s.createContainer(e)).innerHTML=s.testStrAvg,!f.isHeadLess&&(f.isIE||n.offsetHeight||n.offsetWidth)||(c=!0),n.innerHTML="",s.parentContainerStyle)n.style[a]=s.parentContainerStyle[a];this.parentContainer=n,this.ctx=u&&u.getContext&&u.getContext("2d"),this._containerManager=new o["default"](n,c,10),this._showNoEllipses=!t,this._init=!0,this.style={},this.oldStyle={},this.options=r,this.setStyle()}p.textToLines=function(e){return(e=e||{}).text?"string"!=typeof e.text&&(e.text=e.text.toString()):e.text="",e.lines=e.text.split(/\n|<br\s*?\/?>/gi),e},p.prototype._calCharDimWithCache=function(e,t,r){if(void 0===e&&(e=""),!this._init)return!1;var n,a,i,o,s,l,c,u,d,f=this.options.maxCacheLimit,g=this.style||{};return l=this._advancedCache=this._advancedCache||(this._advancedCache={}),c=this._advancedCacheKey||(this._advancedCacheKey=[]),u=e+g.fontSize+g.fontFamily+g.fontWeight+g.fontStyle,d=e+"init"+g.fontSize+g.fontFamily+g.fontWeight+g.fontStyle,!this.ctx&&h[e]&&(e=h[e]),t?(s=l[d])===undefined&&(a=this._getDimention(e.repeat?e.repeat(r):Array(r+1).join(e)).width,i=this._getDimention(e).width,s=l[d]=(a-r*i)/(r+1),c.push(d),c.length>f&&delete l[c.shift()]):s=0,(o=l[u])?{width:o.width,height:o.height}:((n=this._getDimention(e)).width+=s,l[u]={width:n.width,height:n.height},c.push(u),c.length>f&&delete l[c.shift()],n)},p.prototype._getDimention=function(e){return this.requireDiv||!this.ctx?s._getDimentionUsingDiv(e,this):s._getDimentionUsingCanvas(e,this)},p.prototype._getWidthFn=function(){var e=this,t=e._containerObj.svgText;return t?function(e){var r,n;return t.textContent=e,(n=(r=t.getBBox()).width-g)<1&&(n=r.width),n}:function(t){return e.requireDiv||!e.ctx?s._getDimentionUsingDiv(t,e).width:s._getDimentionUsingCanvas(t,e).width}},p.prototype._isSameStyle=function(){var e=this.oldStyle||{},t=this.style;return t.fontSize===e.fontSize&&t.fontFamily===e.fontFamily&&t.fontStyle===e.fontStyle&&t.fontWeight===e.fontWeight&&t.fontVariant===e.fontVariant},p.prototype._setStyleOfCanvas=function(){if(!this._isSameStyle()){var e,t,r=this.style,n=r.fontStyle,a=r.fontVariant,i=r.fontWeight,o=r.fontSize,l=r.fontFamily;e=n+" "+a+" "+i+" "+(o+=-1===o.indexOf("px")?"px":"")+" "+l,this.ctx.font=e,t=this._containerObj=this._containerManager.get(r),this._containerObj?(this._container=t.node,this._context=t.context,this._cache=t.charCache,this._lineHeight=t.lineHeight,this._styleNotSet=!1):this._styleNotSet=!0,t.ellipsesWidth=this._calCharDimWithCache("...",!1).width,t.dotWidth=this._calCharDimWithCache(".",!1).width,t.lineHeight=this._lineHeight=t.lineHeight||s._getCleanHeight(r.lineHeight),this.oldStyle=r}},p.prototype._setStyleOfDiv=function(){var e,t=this.style;this._containerObj=e=this._containerManager.get(t),e.node||this._containerManager._makeDivNode(this._containerObj),this._containerObj?(this._container=e.node,this._context=e.context,this._cache=e.charCache,this._lineHeight=e.lineHeight,this._styleNotSet=!1):this._styleNotSet=!0},p.prototype._updateStyle=function(){return this.requireDiv||!this.ctx?this._setStyleOfDiv():this._setStyleOfCanvas()},p.prototype.setStyle=function(e){return this.style=s.parseStyle(e),s.setLineHeight(this.style),this},p.prototype.useEllipsesOnOverflow=function(e){return this._init?(this._showNoEllipses=!e,this):this},p.prototype.getSmartText=function(e,t,r,n){if(!this._init)return!1;e===undefined||null===e?e="":"string"!=typeof e&&(e=e.toString());var a,i,o,c,d,h,g,p,m,v,b,y,x,C,w,_,k,S,E,A,T,M,F,I,L,N,D,O,R,P,V,B,j,G,H,z=0,U=-1,X=-1,W=-1,$=0,Y=0,q=[],K=0,J=this._showNoEllipses?"":"...",Z=this.ctx,Q=[],ee=-1,te=-1,re=-1,ne=function(e){for(var t=/\s/,r=(e=e.replace(/^\s\s*/,"")).length;t.test(e.charAt(r-=1)););return e.slice(0,r+1)},ae={text:e,maxWidth:t,maxHeight:r,width:null,height:null,oriTextWidth:null,oriTextHeight:null,oriText:e,isTruncated:!1};if(D=s.xmlTagRegEx.test(e)||s.nbspRegex.test(e),G=s._hasOnlyBRTag(e),this.requireDiv=D&&!G,this._updateStyle(),O=this._lineHeight,R=this._context,P=this._container,B=(V=this._containerObj).ellipsesWidth,j=V.dotWidth,h=e.replace(s.spanAdditionRegx,"$2"),y=this._getWidthFn(),O-r<=1&&O-r>=0&&(r*=1.2),Z||P){if(!f.isBrowserLess){if(D?G?(e=e.replace(s.brRegex,"<br />"),H=s._getDimentionOfMultiLineText(e,this),ae.oriTextWidth=g=H.width,ae.oriTextHeight=p=H.height):(P.innerHTML=e,ae.oriTextWidth=g=P.offsetWidth,ae.oriTextHeight=p=P.offsetHeight):(c=e=e.replace(s.ltgtRegex,(function(e){return"<"===e?"<":">"})),w=this.getSize(c,!0,{hasHTMLTag:D,hasOnlyBrTag:G,cleanText:!0}),ae.oriTextWidth=g=w.width,ae.oriTextHeight=p=w.height),p<=r&&g<=t)return ae.width=ae.oriTextWidth=g,ae.height=ae.oriTextHeight=p,ae;if(O>r)return ae.text="",ae.width=ae.oriTextWidth=0,ae.height=ae.oriTextHeight=0,ae}if(e=ne(e).replace(/(\s+)/g," "),d=this._showNoEllipses?t:t-B,!D||G){if(a=(q=s._getTextArray(e)).length,i="",o=[],b=q[0],this._cache[b]?E=this._cache[b].width:(E=y(b),this._cache[b]={width:E}),d>E&&!G)o=e.substr(0,s.getNearestBreakIndex(e,d,this)).split("");else{if(E>t)return ae.text="",ae.width=ae.oriTextWidth=ae.height=ae.oriTextHeight=0,ae;J&&((d=t-2*j)>E?J="..":(d=t-j)>E?J=".":(d=0,J=""))}if(K=o.length,$=y(o.join("")),Y=this._lineHeight,n){for(;K<a;K+=1)if(b=o[K]=q[K],"<br />"!==o[K]){if(this._cache[b]?E=this._cache[b].width:(w&&(E=w.detailObj[b])||(E=y(b)),this._cache[b]={width:E}),($+=E)>d&&(i||(i=o.slice(0,-1).join("")),$>t))return ae.text=ne(i)+J,ae.tooltext=ae.oriText,ae.width=u(z,$),ae.height=Y,ae}else Y+=this._lineHeight,W=K,z=u(z,$),$=0,i=null;return ae.text=o.join(""),ae.width=u(z,$),ae.height=Y,ae}for(;K<a;K+=1){if(" "!==(b=o[K]=q[K])||R||(b=this.ctx?" ":" "),"<br />"===o[K]){if(z=u(z,$),(Y+=this._lineHeight)<=r){W=K,$=0,i=null;continue}if(Y>r)return i=o.slice(0,-1).join(""),ae.text=ne(i)+J,ae.tooltext=h,ae.width=z,ae.height=Y-this._lineHeight,ae}if(this._cache[b]?E=this._cache[b].width:(w&&(E=w.detailObj[b])||(E=y(b)),this._cache[b]={width:E}),($+=E)>d&&(i||(i=o.slice(0,-1).join("")),$>t)){if("<br />"===q[K+1])continue;if(X=s._findLastIndex(q.slice(0,o.length)," "),U=s._findLastIndex(q.slice(0,o.length),"-"),X>W?($=y(o.slice(W+1,X).join("")),o.splice(X,1,"<br />"),W=X,m=X+1):U>W?(U===o.length-1?($=y(o.slice(W+1,X).join("")),o.splice(U,1,"<br />-")):($=y(o.slice(W+1,X).join("")),o.splice(U,1,"-<br />")),W=U,m=U+1):(o.splice(o.length-1,1,"<br />"+q[K]),re=o.length-2,$=y(o.slice(W+1,re+1).join("")),W=re,m=K),(Y+=this._lineHeight)>r)return ae.text=ne(i)+J,ae.tooltext=ae.oriText,ae.width=t,ae.height=Y-this._lineHeight,ae;z=u(z,$),i=null,G?$=s._getDimentionOfMultiLineText(o.slice(W+1).join(""),this).width:(v=s.getNearestBreakIndex(e.substr(m),d,this),$=y(e.substr(m,v||1)),o.length<m+v&&(K=(o=o.concat(e.substr(o.length,m+v-o.length).split(""))).length-1))}}return z=u(z,$),ae.text=o.join(""),ae.width=z,ae.height=Y,ae}for(h=e.replace(s.spanAdditionRegx,"$2"),e=(e=e.replace(s.spanAdditionRegx,s.spanAdditionReplacer)).replace(/(<br\s*\/*\>)/g,'<span class="'+[s.classNameWithTag," ",s.classNameWithTagBR].join("")+'">$1</span>'),P.innerHTML=e,k=0,S=(_=P[f.childRetriverFn](f.childRetriverString)).length;k<S;k+=1)A=_[k],(f.noClassTesting||s.classNameReg.test(A.className))&&""!==(T=A.innerHTML)&&(" "===T?te=Q.length:"-"===T&&(ee=Q.length),Q.push({spaceIdx:te,dashIdx:ee,elem:A}),q.push(T));if(K=0,(E=(a=Q.length)&&Q[0].elem.offsetWidth)>t||!a)return ae.text="",ae.width=ae.oriTextWidth=ae.height=ae.oriTextHeight=0,ae;if(E>d&&!this._showNoEllipses&&((d=t-2*j)>E?J="..":(d=t-j)>E?J=".":(d=0,J="")),x=Q[0].elem.offsetLeft,C=Q[0].elem.offsetTop,n)for(;K<a;K+=1)(M=(A=Q[K].elem).offsetLeft-x+A.offsetWidth)>d&&(N||(N=K),P.offsetWidth>t&&(L=K,K=a));else for(;K<a;K+=1)F=(A=Q[K].elem).offsetHeight+(A.offsetTop-C),I=null,(M=A.offsetLeft-x+A.offsetWidth)>d?(N||(N=K),M>t&&(X=Q[K].spaceIdx,U=Q[K].dashIdx,X>W?(Q[X].elem.innerHTML="<br/>",W=X):U>W?(Q[U].elem.innerHTML=U===K?"<br/>-":"-<br/>",W=U):A.parentNode.insertBefore(I=l.createElement("br"),A),A.offsetHeight+A.offsetTop>r?(I?I.parentNode.removeChild(I):W===U?Q[U].elem.innerHTML="-":Q[X].elem.innerHTML=" ",L=K,K=a):N=null)):F>r&&(L=K,K=a);if(L<a){for(ae.isTruncated=!0,N=N||L,K=a-1;K>=N;K-=1)(A=Q[K].elem).parentNode.removeChild(A);for(;K>=0;K-=1)A=Q[K].elem,s.classNameBrReg.test(A.className)?A.parentNode.removeChild(A):K=0}return ae.text=P.innerHTML.replace(s.spanRemovalRegx,"$1").replace(/\&\;/g,"&"),ae.isTruncated&&(ae.text+=J,ae.tooltext=h),ae.height=P.offsetHeight,ae.width=P.offsetWidth,ae}return ae.error=new Error("Body Tag Missing!"),ae},p.prototype.getSize=function(e,t,r){if(void 0===e&&(e=""),void 0===t&&(t=!0),void 0===r&&(r={}),!this._init)return!1;e===undefined||null===e?e="":"string"!=typeof e&&(e=e.toString());var n,i,o,l,c,h,f=0,g=0,p={},m=r.hasHTMLTag,v=r.hasOnlyBrTag;if(void 0===m&&(m=s.xmlTagRegEx.test(e)||s.nbspRegex.test(e)),void 0===v&&(v=s._hasOnlyBRTag(e)),this.requireDiv=m&&!v,r.cleanText||(e=e.replace(s.ltgtRegex,(function(e){return"<"===e?"<":">"}))),this._updateStyle(),h=this._container,!t)return this._calCharDimWithCache(e);for(l=0,c=(n=e.split("")).length;l<c;l++)i=n[l],o=this._calCharDimWithCache(i,!1,n.length),g=u(g,o.height),f+=o.width,p[i]=o.width;return v?(0,a["default"])({},s._getDimentionOfMultiLineText(e,this),{detailObj:p}):m?(h.innerHTML=e,{width:h.offsetWidth,height:h.offsetHeight,detailObj:p}):{width:d(f),height:g,detailObj:p}},p.prototype.getOriSize=function(e,t,r){return void 0===e&&(e=""),void 0===t&&(t=!0),void 0===r&&(r={}),this.getSize(e,t,r)},p.prototype.dispose=function(){return this._init?(this._containerManager&&this._containerManager.dispose&&this._containerManager.dispose(),delete this._container,delete this._context,delete this._cache,delete this._containerManager,delete this._containerObj,delete this.id,delete this.style,delete this.parentContainer,delete this._showNoEllipses,this):this};var m=p;t["default"]=m},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n={init:function(e){var t=e.document,r=e.navigator.userAgent,a=Math.ceil,i=Math.floor,o="fusioncharts-smartlabel-",s=o+"container",l=o+"tag";return n={win:e,containerClass:s,classNameWithTag:l,classNameWithTagBR:"fusioncharts-smartlabel-br",maxDefaultCacheLimit:1e3,classNameReg:/\bfusioncharts-smartlabel-tag\b/,classNameBrReg:/\bfusioncharts-smartlabel-br\b/,spanAdditionRegx:/(<[^<\>]+?\>)|(&(?:[a-z]+|#[0-9]+);|.)/gi,spanAdditionReplacer:'$1<span class="'+l+'">$2</span>',spanRemovalRegx:new RegExp("\\<span[^\\>]+?"+l+"[^\\>]{0,}\\>(.*?)\\<\\/span\\>","ig"),xmlTagRegEx:new RegExp("<[^>][^<]*[^>]+>","i"),brRegex:new RegExp("({br[ ]*})|(<br[ ]*>)|(<br[ ]*/>)|(<BR[ ]*/>)|(<br\\>)","g"),ltgtRegex:/<|>/g,nbspRegex:/ | | /g,htmlSpecialEntityRegex:/&|"|<|>/g,brReplaceRegex:/<br\/>/gi,testStrAvg:"WgI",parentContainerStyle:{position:"absolute",top:"-9999em",whiteSpace:"nowrap",padding:"0px",width:"1px",height:"1px",overflow:"hidden"},supportedStyle:{font:"font",fontFamily:"font-family","font-family":"font-family",fontWeight:"font-weight","font-weight":"font-weight",fontSize:"font-size","font-size":"font-size",lineHeight:"line-height","line-height":"line-height",fontStyle:"font-style","font-style":"font-style"},getDocumentSupport:function(){var n,a,i;return t.getElementsByClassName?(n="getElementsByClassName",a=l,i=!0):(n="getElementsByTagName",a="span",i=!1),{isIE:/msie/i.test(r)&&!e.opera,hasSVG:Boolean(e.SVGAngle||t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")),isHeadLess:new RegExp(" HtmlUnit").test(r),isWebKit:new RegExp(" AppleWebKit/").test(r),childRetriverFn:n,childRetriverString:a,noClassTesting:i}},createContainer:function(e){var r,n;if(e&&(e.offsetWidth||e.offsetHeight)){if(e.appendChild)return e.appendChild(n=t.createElement("DIV")),n.className=s,n.setAttribute("aria-hidden","true"),n.setAttribute("role","presentation"),n}else if((r=t.getElementsByTagName("body")[0])&&r.appendChild)return(n=t.createElement("DIV")).className=s,n.setAttribute("aria-hidden","true"),n.setAttribute("role","presentation"),r.appendChild(n),n},getNearestBreakIndex:function(e,t,r){if(!e||!e.length)return 0;var n,o=r._getWidthFn(),s=0,l=0,c=o(e),u=c/e.length;if(n=t,s=a(t/u),c<t)return e.length-1;for(s>e.length&&(n=t-c,s=e.length);n>0;){if(n=t-o(e.substr(0,s)),!(l=i(n/u)))return s;s+=l}for(;n<0;){if(n=t-o(e.substr(0,s)),!(l=i(n/u)))return s;s+=l}return s},parseStyle:function(e){void 0===e&&(e={});var t={};return t.fontSize=(e.fontSize||e["font-size"]||"12px")+"",t.fontVariant=e.fontVariant||e["font-variant"]||"normal",t.fontWeight=e.fontWeight||e["font-weight"]||"normal",t.fontStyle=e.fontStyle||e["font-style"]||"normal",t.fontFamily=e.fontFamily||e["font-family"]||"Verdana,sans",t},setLineHeight:function(e){var t=e.fontSize;return e.lineHeight=e.lineHeight||e["line-height"]||1.2*parseInt(t,10)+"px",e},_getCleanHeight:function(e){return e=e.replace(/px/g,""),Number(e)},_getDimentionUsingDiv:function(e,t){void 0===e&&(e="");var r=t._container;return e instanceof Array&&(e=e.join("")),r.innerHTML=e,{width:r.offsetWidth,height:r.offsetHeight}},_getDimentionUsingCanvas:function(e,t){void 0===e&&(e="");var r=t.ctx,a=t.style,i=n._getCleanHeight(a.lineHeight);return e=e instanceof Array?(e=e.join("")).replace(/<br \/>/g,""):e.replace(/<br \/>/g,""),{width:r.measureText(e).width,height:i}},_hasOnlyBRTag:function(e){return void 0===e&&(e=""),!n.xmlTagRegEx.test(e)&&n.brRegex.test(e)},_getDimentionOfMultiLineText:function(e,t){void 0===e&&(e="");var r,a,i,o=e.replace(n.brRegex,"<br />"),s=n._getTextArray(o),l=0,c=0,u=t._getWidthFn(),d=n._getCleanHeight(t.style.lineHeight),h=d,f={};for(r=0,a=s.length;r<a;r++)"<br />"===s[r]?(c=Math.max(c,l),l=0,h+=d):(l+=i=u(s[r]),f[s[r]]=i);return{height:h,width:c=Math.max(c,l),detailObj:f}},_getTextArray:function(e){void 0===e&&(e="");var t,r,n,a,i,o,s=[];for(n=(i=e.split("<br />")).length,t=0;t<n;t++){for(a=(o=i[t].split("")).length,r=0;r<a;r++)s.push(o[r]);t!==n-1&&s.push("<br />")}return s},_findLastIndex:function(e,t){var r;for(void 0===e&&(e=[]),r=e.length-1;r>=0;r--)if(e[r]===t)return r;return-1}}}},a=n;t["default"]=a},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(205))["default"].init(window),i=a.win.document,o=a.getDocumentSupport(),s=o.isWebKit?0:4.5;function l(e,t,r){var n;r=(r=r>5?r:5)<20?r:20,this.maxContainers=r,this.first=null,this.last=null,this.containers={},this.length=0,this.rootNode=e,t&&((n=i.createElementNS("http://www.w3.org/2000/svg","svg")).setAttributeNS("http://www.w3.org/2000/svg","xlink","http://www.w3.org/1999/xlink"),n.setAttributeNS("http://www.w3.org/2000/svg","height","0"),n.setAttributeNS("http://www.w3.org/2000/svg","width","0"),this.svgRoot=n,this.rootNode.appendChild(n))}l.prototype.get=function(e){var t,r,n,i=this.containers,o=this.length,s=this.maxContainers,l="";for(r in a.supportedStyle)e[r]!==undefined&&(l+=a.supportedStyle[r]+":"+e[r]+";");if(!l)return!1;if(n=i[l])this.first!==n&&(n.prev&&(n.prev.next=n.next),n.next&&(n.next.prev=n.prev),n.next=this.first,n.next.prev=n,this.last===n&&(this.last=n.prev),n.prev=null,this.first=n);else{if(o>=s)for(t=o-s+1;t--;)this.removeContainer(this.last);n=this.addContainer(l)}return n},l.prototype._makeDivNode=function(e){var t,r=e.keyStr;e.node||(e.node=i.createElement("div"),e.node.className="fusioncharts-div",this.rootNode.appendChild(e.node)),t=e.node,o.isIE&&!o.hasSVG?t.style.setAttribute("cssText",r):t.setAttribute("style",r),t.setAttribute("aria-hidden","true"),t.setAttribute("role","presentation"),t.style.display="inline-block",t.innerHTML=a.testStrAvg,e.lineHeight=t.offsetHeight,e.avgCharWidth=t.offsetWidth/3,o.isBrowserLess?(e.svgText||(e.svgText=i.createElementNS("http://www.w3.org/2000/svg","text"),this.svgRoot.appendChild(t)),(t=e.svgText).setAttribute("style",r),t.textContent=a.testStrAvg,e.lineHeight=t.getBBox().height,e.avgCharWidth=(t.getBBox().width-s)/3,t.textContent="...",e.ellipsesWidth=t.getBBox().width-s,t.textContent=".",e.dotWidth=t.getBBox().width-s):(t.innerHTML="...",e.ellipsesWidth=t.offsetWidth,t.innerHTML=".",e.dotWidth=t.offsetWidth,t.innerHTML="")},l.prototype.addContainer=function(e){var t;return this.containers[e]=t={next:null,prev:null,node:null,ellipsesWidth:0,lineHeight:0,dotWidth:0,avgCharWidth:4,keyStr:e,charCache:{}},t.next=this.first,t.next&&(t.next.prev=t),this.first=t,this.last||(this.last=t),this.length+=1,t},l.prototype.removeContainer=function(e){var t=e.keyStr;t&&this.length&&e&&(this.length-=1,e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),this.first===e&&(this.first=e.next),this.last===e&&(this.last=e.prev),e.node&&e.node.parentNode.removeChild(e.node),delete this.containers[t])},l.prototype.dispose=function(){var e,t=this.containers;for(e in this.maxContainers=null,t)this.removeContainer(t[e]);this.rootNode.parentNode.removeChild(this.rootNode),this.rootNode=null,this.first=null,this.last=null};var c=l;t["default"]=c},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=t.getFile=t.addFile=void 0;var n={},a=function(e){n[e]=!0},i=function(e){return n[e]};t.getFile=i,t.addFile=a;var o={extension:function(e){e.addFile=a,e.getFile=i},name:"fileStore",type:"plugin",requiresFusionCharts:!0};t["default"]=o},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]={options:{chartTypeSourcePath:["typeSourcePath",""],product:["product","v3"],insertMode:["insertMode","replace"],safeMode:["safeMode",!0],overlayButton:["overlayButton"],containerBackgroundColor:["containerBackgroundColor","#ffffff"],containerBackgroundOpacity:["containerBackgroundOpacity",1],containerClassName:["containerClassName","fusioncharts-container"],chartType:["type"],baseChartMessageFont:["baseChartMessageFont","Verdana,sans"],baseChartMessageFontSize:["baseChartMessageFontSize","10"],baseChartMessageColor:["baseChartMessageColor","#666666"],baseChartMessageImageHAlign:["baseChartMessageImageHAlign","middle"],baseChartMessageImageVAlign:["baseChartMessageImageVAlign","middle"],baseChartMessageImageAlpha:["baseChartMessageImageAlpha",100],baseChartMessageImageScale:["baseChartMessageImageScale",100],dataLoadStartMessage:["dataLoadStartMessage","Retrieving data. Please wait."],dataLoadErrorMessage:["dataLoadErrorMessage","Error in loading data."],dataInvalidMessage:["dataInvalidMessage","Invalid data."],dataEmptyMessage:["dataEmptyMessage","No data to display."],typeNotSupportedMessage:["typeNotSupportedMessage","Chart type not supported."],browserNotSupportedMessage:["browserNotSupportedMessage","This browser is not supported."],loadMessage:["loadMessage","Loading chart. Please wait."],renderErrorMessage:["renderErrorMessage","Unable to render chart."],messageURL:["messageURL",""],containerElementId:["renderAt"],renderer:["renderer"],containerElementType:["containerElementType"],showChartLoadingMessage:["showChartLoadingMessage",!0],visibilityTrackingInterval:300,events:["events",{}]},jsVars:{},attributes:{lang:["lang","EN"],id:["id"]},link:["link"],width:["width","400"],height:["height","300"]}},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n,a,i,o,s,l=r(184),c=Math.abs,u=Math.pow,d=Math.round,h={formatnumber:"1",formatnumberscale:"1",forcenumberscale:"0",defaultnumberscale:"",numberscaleunit:["K","M"],numberscalevalue:[1e3,1e3],numberprefix:"",numbersuffix:"",decimals:"",forcedecimals:"0",yaxisvaluedecimals:"2",decimalseparator:".",thousandseparator:",",thousandseparatorposition:[3],indecimalseparator:"",inthousandseparator:"",sformatnumber:"1",sformatnumberscale:"0",sforcenumberscale:"0",sdefaultnumberscale:"",snumberscaleunit:["K","M"],snumberscalevalue:[1e3,1e3],snumberprefix:"",snumbersuffix:"",sdecimals:"2",sforcedecimals:"0",syaxisvaluedecimals:"2",xFormatNumber:"0",xFormatNumberScale:"0",xforcenumberscale:"0",xDefaultNumberScale:"",xNumberScaleUnit:["K","M"],xNumberScaleValue:[1e3,1e3],xNumberPrefix:"",xNumberSuffix:""},f={mscombidy2d:{formatnumberscale:"1"}},g=function(){function e(e,t){var r=e.getName&&e.getName(),n=this.csConf=(0,l.extend2)({},h),a=f[r];this.cleaneValueCacheStore={},this.percentStrCacheStore={},a&&(n=(0,l.extend2)(n,a)),this.linkedItems={chart:e},this.configure(t)}var t=e.prototype;return t.setDefaults=function(){var e=this.linkedItems.chart,t=e.getName&&e.getName(),r=this.csConf=(0,l.extend2)({},h),n=f[t];n&&(0,l.extend2)(r,n)},t.configure=function(e){var t,r,n,a,i,o,s,c,u,d,f,g,p,m,v,b,y,x,C,w,_,k,S,E,A,T,M,F,I=this,L=I.linkedItems.chart,N=e||L.getFromEnv("chart-attrib"),D=L.getName&&L.getName(),O=L.config,R=I.csConf;if(O||(O=L),I.csConf=R,I.useScaleRecursively=O.useScaleRecursively,(0,l.getValidValue)(N.numberscaleunit)&&(t=N.numberscaleunit.split(",")),(r=(0,l.getValidValue)(N.snumberscaleunit,N.numberscaleunit))&&(r=r.split(",")),(n=(0,l.getValidValue)(N.xnumberscaleunit,N.numberscaleunit))&&(n=n.split(",")),(a=(0,l.getValidValue)(N.ticknumberscaleunit,N.numberscaleunit))&&(a=a.split(",")),(i=(0,l.getValidValue)(N.ynumberscaleunit,N.numberscaleunit))&&(i=i.split(",")),(0,l.getValidValue)(N.numberscalevalue)&&(o=N.numberscalevalue.split(",")),(f=(0,l.getValidValue)(N.snumberscalevalue,N.numberscalevalue))&&(f=f.split(",")),(s=(0,l.getValidValue)(N.xnumberscalevalue,N.numberscalevalue))&&(s=s.split(",")),(c=(0,l.getValidValue)(N.ticknumberscalevalue,N.numberscalevalue))&&(c=c.split(",")),(u=(0,l.getValidValue)(N.ynumberscalevalue,N.numberscalevalue))&&(u=u.split(",")),(0,l.getValidValue)(N.thousandseparatorposition))for(y=(d=N.thousandseparatorposition.split(",")).length,C=h.thousandseparatorposition[0];y--;)(x=parseInt(d[y],10))<=0&&(x=C),C=d[y]=x;w=(0,l.pluckNumber)(N.scalerecursively,0),_=(0,l.pluckNumber)(N.sscalerecursively,w),k=(0,l.pluckNumber)(N.xscalerecursively,w),S=(0,l.pluckNumber)(N.maxscalerecursion,-1),E=(0,l.pluckNumber)(N.smaxscalerecursion,S),A=(0,l.pluckNumber)(N.xmaxscalerecursion,S),T=(0,l.getValidValue)(N.scaleseparator," "),M=(0,l.getValidValue)(N.sscaleseparator,T),F=(0,l.getValidValue)(N.xscaleseparator,T),S||(S=-1),I.baseConf=b={cacheStore:[],formatnumber:(0,l.pluck)(N.formatnumber,R.formatnumber),formatnumberscale:(0,l.pluck)(N.formatnumberscale,O.formatnumberscale,R.formatnumberscale),forcenumberscale:(0,l.pluck)(N.forcenumberscale,R.forcenumberscale),defaultnumberscale:(0,l.getFirstValue)(N.defaultnumberscale,R.defaultnumberscale),numberscaleunit:(0,l.pluck)(t,R.numberscaleunit).concat(),numberscalevalue:(0,l.pluck)(o,R.numberscalevalue).concat(),numberprefix:(0,l.getFirstValue)(N.numberprefix,R.numberprefix),numbersuffix:(0,l.getFirstValue)(N.numbersuffix,R.numbersuffix),decimalprecision:parseInt("auto"===N.decimals?R.decimalprecision:(0,l.pluck)(N.decimals,N.decimalprecision,O.decimals,R.decimals,O.decimalprecision,R.decimalprecision),10),forcedecimals:(0,l.pluck)(N.forcedecimals,R.forcedecimals),decimalseparator:(0,l.pluck)(N.decimalseparator,R.decimalseparator),thousandseparator:(0,l.pluck)(N.thousandseparator,R.thousandseparator),thousandseparatorposition:(0,l.pluck)(d,R.thousandseparatorposition),indecimalseparator:(0,l.getFirstValue)(N.indecimalseparator,R.indecimalseparator),inthousandseparator:(0,l.getFirstValue)(N.inthousandseparator,R.inthousandseparator),scalerecursively:w,maxscalerecursion:S,scaleseparator:T},(0,l.getValidValue)(b.inthousandseparator)&&(I.baseConf._REGinthousandseparator=new RegExp((0,l.regescape)(b.inthousandseparator),"g")),(0,l.getValidValue)(b.indecimalseparator)&&(I.baseConf._REGindecimalseparator=new RegExp((0,l.regescape)(b.indecimalseparator))),I.Y=[],g={cacheStore:[],formatnumber:b.formatnumber,formatnumberscale:b.formatnumberscale,forcenumberscale:b.forcenumberscale,defaultnumberscale:b.defaultnumberscale,numberscaleunit:b.numberscaleunit.concat(),numberscalevalue:b.numberscalevalue.concat(),numberprefix:b.numberprefix,numbersuffix:b.numbersuffix,decimalprecision:b.decimalprecision,forcedecimals:b.forcedecimals,decimalseparator:b.decimalseparator,thousandseparator:b.thousandseparator,thousandseparatorposition:b.thousandseparatorposition,indecimalseparator:b.indecimalseparator,inthousandseparator:b.inthousandseparator,scalerecursively:w,maxscalerecursion:S,scaleseparator:T},O.useScaleRecursively&&(g.numberscalevalue&&g.numberscalevalue.length)===(g.numberscaleunit&&g.numberscaleunit.length)||(g.scalerecursively=w=0),m={cacheStore:[],formatnumber:g.formatnumber,formatnumberscale:g.formatnumberscale,forcenumberscale:g.forcenumberscale,defaultnumberscale:g.defaultnumberscale,numberscaleunit:g.numberscaleunit.concat(),numberscalevalue:g.numberscalevalue.concat(),numberprefix:g.numberprefix,numbersuffix:g.numbersuffix,decimalprecision:parseInt((0,l.pluck)(N.yaxisvaluedecimals,g.decimalprecision,2),10),forcedecimals:(0,l.pluck)(N.forceyaxisvaluedecimals,g.forcedecimals),decimalseparator:g.decimalseparator,thousandseparator:g.thousandseparator,thousandseparatorposition:g.thousandseparatorposition.concat(),indecimalseparator:g.indecimalseparator,inthousandseparator:g.inthousandseparator,scalerecursively:w,maxscalerecursion:S,scaleseparator:T},v={cacheStore:[],formatnumber:(0,l.pluck)(N.sformatnumber,h.sformatnumber),formatnumberscale:(0,l.pluck)(N.sformatnumberscale,h.sformatnumberscale),forcenumberscale:(0,l.pluck)(N.sforcenumberscale,h.sforcenumberscale),defaultnumberscale:(0,l.getFirstValue)(N.sdefaultnumberscale,g.defaultnumberscale),numberscaleunit:(0,l.pluck)(r,h.snumberscaleunit).concat(),numberscalevalue:(0,l.pluck)(f,h.snumberscalevalue).concat(),numberprefix:(0,l.getFirstValue)(N.snumberprefix,h.snumberprefix),numbersuffix:(0,l.getFirstValue)(N.snumbersuffix,h.snumbersuffix),decimalprecision:parseInt((0,l.pluck)(N.syaxisvaluedecimals,N.sdecimals,N.decimals,h.sdecimals),10),forcedecimals:(0,l.pluck)(N.forcesyaxisvaluedecimals,N.sforcedecimals,N.forcedecimals,h.sforcedecimals),decimalseparator:(0,l.pluck)(N.decimalseparator,h.decimalseparator),thousandseparator:(0,l.pluck)(N.thousandseparator,h.thousandseparator),thousandseparatorposition:g.thousandseparatorposition.concat(),indecimalseparator:(0,l.pluck)(N.indecimalseparator,h.indecimalseparator),inthousandseparator:(0,l.pluck)(N.inthousandseparator,h.inthousandseparator),scalerecursively:_,maxscalerecursion:E,scaleseparator:M},(p=(0,l.extend2)({},v)).decimalprecision=parseInt((0,l.pluck)(N.sdecimals,N.decimals,N.syaxisvaluedecimals,h.sdecimals),10),p.forcedecimals=(0,l.pluck)(N.sforcedecimals,N.forcedecimals,N.forcesyaxisvaluedecimals,h.sforcedecimals),p.cacheStore=[],O.useScaleRecursively&&(v.numberscalevalue&&v.numberscalevalue.length)===(v.numberscaleunit&&v.numberscaleunit.length)||(v.scalerecursively=_=0),/^(bubble|scatter|selectscatter|zoomscatter)$/gi.test(D)&&(m.formatnumber=(0,l.pluck)(N.yformatnumber,m.formatnumber),m.formatnumberscale=(0,l.pluck)(N.yformatnumberscale,m.formatnumberscale),m.forcenumberscale=(0,l.pluck)(N.yforcenumberscale,m.forcenumberscale),m.defaultnumberscale=(0,l.getFirstValue)(N.ydefaultnumberscale,m.defaultnumberscale),m.numberscaleunit=(0,l.pluck)(i,m.numberscaleunit),m.numberscalevalue=(0,l.pluck)(u,m.numberscalevalue),m.numberprefix=(0,l.pluck)(N.ynumberprefix,m.numberprefix),m.numbersuffix=(0,l.pluck)(N.ynumbersuffix,m.numbersuffix),g.formatnumber=(0,l.pluck)(N.yformatnumber,g.formatnumber),g.formatnumberscale=(0,l.pluck)(N.yformatnumberscale,g.formatnumberscale),g.forcenumberscale=(0,l.pluck)(N.yforcenumberscale,g.forcenumberscale),g.defaultnumberscale=(0,l.getFirstValue)(N.ydefaultnumberscale,g.defaultnumberscale),g.numberscaleunit=(0,l.pluck)(N.ynumberscaleunit,g.numberscaleunit.concat()),g.numberscalevalue=(0,l.pluck)(N.ynumberscalevalue,g.numberscalevalue.concat()),g.numberprefix=(0,l.pluck)(N.ynumberprefix,g.numberprefix),g.numbersuffix=(0,l.pluck)(N.ynumbersuffix,g.numbersuffix)),/^(pie2d|pie3d|doughnut2d|doughnut3d|marimekko|pareto2d|pareto3d)$/.test(D)&&(g.decimalprecision=(0,l.pluck)(N.decimals,"2")),w&&(g.numberscalevalue.push(1),g.numberscaleunit.unshift(g.defaultnumberscale),m.numberscalevalue.push(1),m.numberscaleunit.unshift(m.defaultnumberscale)),_&&(v.numberscalevalue.push(1),v.numberscaleunit.unshift(v.defaultnumberscale),p.numberscalevalue.push(1),p.numberscaleunit.unshift(p.defaultnumberscale)),I.Y[0]={yAxisLabelConf:m,dataLabelConf:g},I.Y[1]={yAxisLabelConf:v,dataLabelConf:p},I.paramLabels=g,I.param1=m,I.param2=v,I.paramLabels2=p,I.paramX={cacheStore:[],formatnumber:(0,l.pluck)(N.xformatnumber,b.formatnumber),formatnumberscale:(0,l.pluck)(N.xformatnumberscale,b.formatnumberscale),forcenumberscale:(0,l.pluck)(N.xforcenumberscale,b.forcenumberscale),defaultnumberscale:(0,l.getFirstValue)(N.xdefaultnumberscale,b.defaultnumberscale),numberscaleunit:(0,l.pluck)(n,b.numberscaleunit.concat()),numberscalevalue:(0,l.pluck)(s,b.numberscalevalue.concat()),numberprefix:(0,l.pluck)(N.xnumberprefix,b.numberprefix),numbersuffix:(0,l.pluck)(N.xnumbersuffix,b.numbersuffix),decimalprecision:parseInt((0,l.pluck)(N.xaxisvaluedecimals,N.xaxisvaluesdecimals,b.decimalprecision,2),10),forcedecimals:(0,l.pluck)(N.forcexaxisvaluedecimals,0),decimalseparator:b.decimalseparator,thousandseparator:b.thousandseparator,thousandseparatorposition:b.thousandseparatorposition.concat(),indecimalseparator:b.indecimalseparator,inthousandseparator:b.inthousandseparator,scalerecursively:k,maxscalerecursion:A,scaleseparator:F},I.paramLegend=(0,l.extend2)((0,l.extend2)({},b),{cacheStore:[],decimalprecision:parseInt((0,l.pluckNumber)(N.legendvaluedecimals,b.decimalprecision,2),10),forcedecimals:(0,l.pluckNumber)(N.legendvalueforcedecimals,b.forcedecimals,0),formatnumberscale:(0,l.pluck)(N.legendvalueformatnumberscale,b.formatnumberscale),forcenumberscale:(0,l.pluck)(N.legendvalueforcenumberscale,b.forcenumberscale),formatnumber:(0,l.pluck)(N.legendvalueformatnumber,b.formatnumber)}),w&&(I.paramLegend.numberscalevalue.push(1),I.paramLegend.numberscaleunit.unshift(I.paramLegend.defaultnumberscale)),O.useScaleRecursively&&(I.paramX.numberscalevalue&&I.paramX.numberscalevalue.length)===(I.paramX.numberscaleunit&&I.paramX.numberscaleunit.length)||(I.paramX.scalerecursively=k=0),k&&(I.paramX.numberscalevalue.push(1),I.paramX.numberscaleunit.unshift(I.paramX.defaultnumberscale)),I.paramScale={cacheStore:[],formatnumber:(0,l.pluck)(N.tickformatnumber,b.formatnumber),formatnumberscale:(0,l.pluck)(N.tickformatnumberscale,b.formatnumberscale),forcenumberscale:(0,l.pluck)(N.tickforcenumberscale,b.forcenumberscale),defaultnumberscale:(0,l.getFirstValue)(N.tickdefaultnumberscale,b.defaultnumberscale),numberscaleunit:(0,l.pluck)(a,b.numberscaleunit.concat()),numberscalevalue:(0,l.pluck)(c,b.numberscalevalue.concat()),numberprefix:(0,l.pluck)(N.ticknumberprefix,b.numberprefix),numbersuffix:(0,l.pluck)(N.ticknumbersuffix,b.numbersuffix),decimalprecision:parseInt((0,l.pluck)(N.tickvaluedecimals,b.decimalprecision,"2"),10),forcedecimals:(0,l.pluck)(N.forcetickvaluedecimals,b.forcedecimals,0),decimalseparator:b.decimalseparator,thousandseparator:b.thousandseparator,thousandseparatorposition:b.thousandseparatorposition.concat(),indecimalseparator:b.indecimalseparator,inthousandseparator:b.inthousandseparator,scalerecursively:w,maxscalerecursion:S,scaleseparator:T},w&&(I.paramScale.numberscalevalue.push(1),I.paramScale.numberscaleunit.unshift(I.paramScale.defaultnumberscale)),I.timeConf={inputDateFormat:(0,l.pluck)(N.inputdateformat,N.dateformat,"mm/dd/yyyy"),outputDateFormat:(0,l.pluck)(N.outputdateformat,N.inputdateformat,N.dateformat,"mm/dd/yyyy"),days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],daySuffix:["","st","nd","rd","th","th","th","th","th","th","th","th","th","th","th","th","th","th","th","th","th","st","nd","rd","th","th","th","th","th","th","th","st"]},I.cleaneValueCacheStore={},I.percentStrCacheStore={}},t.dispose=function(){var e=this;e.Y&&delete e.Y,e.cleaneValueCacheStore&&delete e.cleaneValueCacheStore,e.percentStrCacheStore&&delete e.percentStrCacheStore,e.paramLabels&&delete e.paramLabels,e.param1&&delete e.param1,e.param2&&delete e.param2,e.paramLabels2&&delete e.paramLabels2,e.csConf&&delete e.csConf,e.chart&&delete e.chart,e.baseConf&&delete e.baseConf,e.timeConf&&delete e.timeConf,e.paramX&&delete e.paramX,e.paramScale&&delete e.paramScale},t.parseMLAxisConf=function(e,t){var r,n,a,i,o,s,u,d,f=this.baseConf,g=this.csConf,p=(0,l.pluckNumber)(e.scalerecursively,f.scalerecursively),m=(0,l.pluckNumber)(e.maxscalerecursion,f.maxscalerecursion),v=(0,l.getValidValue)(e.scaleseparator,f.scaleseparator),b=(0,l.pluckNumber)(t,this.Y.length);if((0,l.getValidValue)(e.numberscaleunit)&&(n=e.numberscaleunit.split(",")),(0,l.getValidValue)(e.numberscalevalue)&&(a=e.numberscalevalue.split(",")),m||(m=-1),(0,l.getValidValue)(e.thousandseparatorposition))for(s=(o=e.thousandseparatorposition.split(",")).length,d=h.thousandseparatorposition[0];s--;)(u=(0,l.pluckNumber)(c(o[s])))?d=u:u=d,o[s]=u;r={cacheStore:[],formatnumber:(0,l.pluck)(e.formatnumber,f.formatnumber),formatnumberscale:(0,l.pluck)(e.formatnumberscale,f.formatnumberscale),forcenumberscale:(0,l.pluck)(e.forcenumberscale,f.forcenumberscale),defaultnumberscale:(0,l.getFirstValue)(e.defaultnumberscale,f.defaultnumberscale),numberscaleunit:(0,l.pluck)(n,f.numberscaleunit).concat(),numberscalevalue:(0,l.pluck)(a,f.numberscalevalue).concat(),numberprefix:(0,l.getFirstValue)(e.numberprefix,f.numberprefix),numbersuffix:(0,l.getFirstValue)(e.numbersuffix,f.numbersuffix),forcedecimals:(0,l.pluck)(e.forcedecimals,f.forcedecimals),decimalprecision:parseInt("auto"===e.decimals?g.decimalprecision:(0,l.pluck)(e.decimals,f.decimalprecision),10),decimalseparator:(0,l.pluck)(e.decimalseparator,f.decimalseparator),thousandseparator:(0,l.pluck)(e.thousandseparator,f.thousandseparator),thousandseparatorposition:(0,l.pluck)(o,f.thousandseparatorposition),indecimalseparator:(0,l.getFirstValue)(e.indecimalseparator,f.indecimalseparator),inthousandseparator:(0,l.getFirstValue)(e.inthousandseparator,f.inthousandseparator),scalerecursively:p,maxscalerecursion:m,scaleseparator:v},this.useScaleRecursively&&(r.numberscalevalue&&r.numberscalevalue.length)===(r.numberscaleunit&&r.numberscaleunit.length)||(r.scalerecursively=p=0),i={cacheStore:[],formatnumber:r.formatnumber,formatnumberscale:r.formatnumberscale,forcenumberscale:r.forcenumberscale,defaultnumberscale:r.defaultnumberscale,numberscaleunit:r.numberscaleunit.concat(),numberscalevalue:r.numberscalevalue.concat(),numberprefix:r.numberprefix,numbersuffix:r.numbersuffix,decimalprecision:parseInt((0,l.pluck)(e.yaxisvaluedecimals,r.decimalprecision,2),10),forcedecimals:(0,l.pluck)(e.forceyaxisvaluedecimals,r.forcedecimals),decimalseparator:r.decimalseparator,thousandseparator:r.thousandseparator,thousandseparatorposition:r.thousandseparatorposition.concat(),indecimalseparator:r.indecimalseparator,inthousandseparator:r.inthousandseparator,scalerecursively:p,maxscalerecursion:m,scaleseparator:v},p&&(r.numberscalevalue.push(1),r.numberscaleunit.unshift(r.defaultnumberscale),i.numberscalevalue.push(1),i.numberscaleunit.unshift(i.defaultnumberscale)),this.Y[b]={dataLabelConf:r,yAxisLabelConf:i}},t.percentValue=function(e){var t,r=this.percentStrCacheStore[e];return void 0===r&&(t=isNaN(this.paramLabels.decimalprecision)?"2":this.paramLabels.decimalprecision,r=this.percentStrCacheStore[e]=s(o(e,t,this.paramLabels.forcedecimals),this.paramLabels.decimalseparator,this.paramLabels.thousandseparator,this.paramLabels.thousandseparatorposition)+"%"),r},t.yAxisPercentValue=function(e,t){window.th=this;var r,n,a=this.Y[t]||(t?this.Y[1]:this.Y[0]);return void 0===(r=(a=a&&a.yAxisLabelConf||this.baseConf).cacheStore[e])&&(n=isNaN(a.decimalprecision)?"2":a.decimalprecision,r=a.cacheStore[e]=s(o(e,n,a.forcedecimals),a.decimalseparator,a.thousandseparator,a.thousandseparatorposition)+"%"),r},t.getCleanValue=function(e,t){var r,n=this.cleaneValueCacheStore[e];return(void 0===n||t)&&(r=i(e,this.baseConf),this.cleaneValueCacheStore[e]=n=isNaN(r)?null:t?c(r):r),n},t.dataLabels=function(e,t){var r,a=this.Y[t]||(t?this.Y[1]:this.Y[0]);return void 0===(r=(a=a&&a.dataLabelConf||this.baseConf).cacheStore[e])&&(r=a.cacheStore[e]=n(e,a)),r},t.formatValue=function(e){var t,r=this.baseConf;return void 0===(t=r.cacheStore[e])&&(t=r.cacheStore[e]=n(e,r)),t},t.yAxis=function(e,t){var r,a=this.Y[t]||(t?this.Y[1]:this.Y[0]);return void 0===(r=(a=a&&a.yAxisLabelConf||this.baseConf).cacheStore[e])&&(r=a.cacheStore[e]=n(e,a,!0)),r},t.xAxis=function(e){var t=this.paramX.cacheStore[e];return void 0===t&&(t=this.paramX.cacheStore[e]=n(e,this.paramX,!0)),t},t.sYAxis=function(e){var t,r=this.Y[1];return void 0===(t=(r=r&&r.yAxisLabelConf||this.baseConf).cacheStore[e])&&(t=r.cacheStore[e]=n(e,r)),t},t.scale=function(e){var t=this.paramScale.cacheStore[e];return void 0===t&&(t=this.paramScale.cacheStore[e]=n(e,this.paramScale)),t},t.legendValue=function(e){var t=this.paramLegend.cacheStore[e];return void 0===t&&(t=this.paramLegend.cacheStore[e]=n(e,this.paramLegend)),t},t.legendPercentValue=function(e){var t,r=this.percentStrCacheStore[e],n=this.paramLegend;return void 0===r&&(t=isNaN(n.decimalprecision)?"2":n.decimalprecision,r=this.percentStrCacheStore[e]=s(o(e,t,n.forcedecimals),n.decimalseparator,n.thousandseparator,n.thousandseparatorposition)+"%"),r},t.getDateValue=function(e){var t,r,n,a,i,o=e;return o&&!/\//.test(this.timeConf.inputDateFormat)&&(o=o.replace(new RegExp(this.timeConf.inputDateFormat.replace(/[a-z]/gi,"").slice(0,1),"g"),"/")),o=/^dd/.test(this.timeConf.inputDateFormat)&&o&&o.replace(/(\d{1,2})\/(\d{1,2})\/(\d{2,4})/,"$2/$1/$3")||o,/\s24:/.test(o)?(o=o.replace(/\s24:/," 00:"),(t=new Date(o)).setDate(t.getDate()+1)):t=new Date(o),!(i=t.getTime())&&o&&/\:/.test(o)&&(o=o.split(":"),r=(0,l.pluckNumber)(o[0],0),n=(0,l.pluckNumber)(o[1],0),a=(0,l.pluckNumber)(o[2],0),r=r>23?24===r&&0===n&&0===a?r:23:r,n=n>59?59:n,a=a>59?59:a,(t=new Date).setHours(r),t.setMinutes(n),t.setSeconds(a),i=t.getTime()),{ms:i,date:t}},t.getFormattedDate=function(e,t){var r="object"==typeof e&&e||new Date(e),n=this.timeConf,a=(0,l.pluck)(t,n.outputDateFormat),i=r.getFullYear(),o=r.getMonth(),s=r.getDate(),c=r.getDay(),u=r.getMinutes(),d=r.getSeconds(),h=r.getHours();return u=u>9?""+u:"0"+u,d=d>9?""+d:"0"+d,h=h>9?""+h:"0"+h,a.match(/dnl/)&&(a=a.replace(/dnl/gi,n.days[c])),a.match(/dns/)&&(a=a.replace(/dns/gi,n.days[c]&&n.days[c].substr(0,3))),a.match(/dd/)&&(a=a.replace(/dd/gi,s)),a.match(/mnl/)&&(a=a.replace(/mnl/gi,n.months[o])),a.match(/mns/)&&(a=a.replace(/mns/gi,n.months[o]&&n.months[o].substr(0,3))),a.match(/mm/)&&(a=a.replace(/mm/gi,o+1)),a.match(/yyyy/)&&(a=a.replace(/yyyy/gi,i)),a.match(/yy/)&&(a=a.replace(/yy/gi,(i%1e3%100+"").replace(/^(\d)$/,"0$1"))),a.match(/hh12/)&&(a=a.replace(/hh12/gi,h%12||12)),a.match(/hh/)&&(a=a.replace(/hh/gi,h)),a.match(/mn/)&&(a=a.replace(/mn/gi,u)),a.match(/ss/)&&(a=a.replace(/ss/gi,d)),a.match(/ampm/)&&(a=a.replace(/ampm/gi,h<12?"AM":"PM")),a.match(/ds/)&&(a=a.replace(/ds/gi,n.daySuffix[s])),a},e}();n=function(e,t,r){var n,i,c,u,d,h,f,g,p,m,v,b=e;if(null!==b){if(n=(b=Number(b))+"",i=1===Number(t.formatnumberscale)?t.defaultnumberscale:"",m=(p=n.split(".")[1])?p.length:t.forcedecimals?"2":"",1===Number(t.formatnumberscale)&&(n=(v=a(b,t.defaultnumberscale,t.numberscalevalue,t.numberscaleunit,t.scalerecursively,t.forcenumberscale)).value,b=v.value,i=v.scale),t.scalerecursively&&0!==t.formatnumberscale&&"0"!==t.formatnumberscale){if(c=v.value,u=v.scale,d=-1===Number(t.maxscalerecursion)?c.length:Math.min(c.length,t.maxscalerecursion),1===Number(t.formatnumber))for(n=l.BLANKSTRING,g=0;g<d;g++)f=(h=0===g?c[g]:Math.abs(c[g]))+"",g===d-1&&(f=o(h,(0,l.pluck)(t.decimalprecision,m),t.forcedecimals)),n=n+s(f,t.decimalseparator,t.thousandseparator,t.thousandseparatorposition)+u[g]+(g<d-1?t.scaleseparator:l.BLANKSTRING);else for(n=l.BLANKSTRING,g=0;g<d;g++)n=n+(0===g?c[g]:Math.abs(c[g])+"")+u[g]+(g<d-1?t.scaleseparator:"");n=(t.numberprefix||"")+n+(t.numbersuffix||"")}else 1===Number(t.formatnumber)&&(n=o(b,(0,l.pluck)(t.decimalprecision,m),t.forcedecimals),n=s(n,t.decimalseparator,t.thousandseparator,t.thousandseparatorposition,r)),n=(t.numberprefix||"")+n+i+(t.numbersuffix||"");return n}},a=function(e,t,r,n,a,i){var o,s,c,u,d={},h=t,f=0,g=[],p=[],m=e,v=(0,l.pluckNumber)(i)||0;if(a){for(o=(0,l.pluckNumber)(r[0])||1e3,f=0;f<r.length;f++){if(c=(0,l.pluckNumber)(r[f])||1e3,!(Math.abs(Number(m))>=c&&f<r.length-1)){0===f&&""===t&&v?(m=Number(m)/o,g.push(m),p.push(n[1]||"")):(1===f&&""===t&&v?(s=m+(g.length?g.pop():0),p.pop(),g.push(s)):g.push(m),p.push(n[f]));break}m=(m-(u=m%c))/c,0===f&&0!==u&&""===n[f]&&v?(g.push(u/o),p.push(n[1]||"")):0!==u&&(1===f&&""===t&&v?(s=u+(g.length?g.pop():0),p.pop(),g.push(s)):g.push(u),p.push(n[f]))}g.reverse(),p.reverse(),d.value=g,d.scale=p}else{if(r.length===n.length)for(f=0;f<r.length;f++){if(!((c=(0,l.pluckNumber)(r[f])||1e3)&&Math.abs(Number(m))>=c)){0===f&&""===t&&v&&(h=n[0]||"",m=Number(m)/c);break}h=n[f]||"",m=Number(m)/c}d.value=m,d.scale=h}return d},o=function(e,t,r){var n,a,i,o,s=e,l=t;if(l<=0)return d(s)+"";if(isNaN(l))return(s+="").length>12&&-1!==s.indexOf(".")&&(l=12-s.split(".")[0].length,n=u(10,l),s=a=d(s*n)/n+""),s;if(n=u(10,l),a=d(s*n)/n+"",1===Number(r))for(-1===a.indexOf(".")&&(a+=".0"),i=l-a.split(".")[1].length,o=1;o<=i;o++)a+="0";return a},s=function(e,t,r,n,a){var i,o,s,l,c=Number(e),u="",d=!1,h="",f="",g=0,p=0;if(isNaN(c))return"";if(c>1e15)return i=a?1:14,c.toExponential(i);if(g=0,p=e.length,-1!==e.indexOf(".")&&(u=e.substring(e.indexOf(".")+1,e.length),p=e.indexOf(".")),c<0&&(d=!0,g=1),(o=(h=e.substring(g,p)).length)<(l=n[s=n.length-1]))f=h;else for(;o>=l;)f=(o-l?r:"")+h.substr(o-l,l)+f,(o-=l)<(l=(s-=1)<=0?n[0]:n[s])&&(f=h.substring(o,0)+f);return""!==u&&(f=f+t+u),!0===d&&(f="-"+f),f},i=function(e,t){var r=e;return r+="",t._REGinthousandseparator&&(r=r.replace(t._REGinthousandseparator,"")),t._REGindecimalseparator&&(r=r.replace(t._REGindecimalseparator,".")),r=parseFloat(r),isFinite(r)?r:NaN};var p=g;t["default"]=p},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(211));a["default"].stopPartialEventPropagation=!0,a["default"]._stopabsolutePath=!0;var i={extension:a["default"],name:"redraphael",type:"plugin"};t["default"]=i},function(e,t,r){"use strict";(function(e){var n=r(178),a=r(182);t.__esModule=!0,t["default"]=void 0;var i,o=n(r(212)),s=a(r(187)),l="undefined"!=typeof window?window:void 0!==e?e:null;function c(e){var t,r,n;return c._url===undefined&&(c._url=g),c.is(e,S)?u?e():o["default"].on("raphael.DOMload",e):c.is(e,C)?c._engine.create[v](c,e.splice(0,3+c.is(e[0],y))).add(e):(r=(0,s.getArrayCopy)(arguments),t=Array.prototype.slice.call(r,0),c.is(t[t.length-1],S)?(n=t.pop(),u?n.call(c._engine.create[v](c,t)):o["default"].on("raphael.DOMload",(function(){n.call(c._engine.create[v](c,t))}))):c._engine.create[v](c,arguments))}c.upgrade="1.0.0",c.version="2.1.0",c.eve=o["default"];var u,d,h,f,g="",p=" ",m="hasOwnProperty",v="apply",b="concat",y="number",x="string",C="array",w="object",_="split",k="none",S="function",E=/R/i,A=/trident/i.test(l.navigator.userAgent),T={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0},M=Array.prototype.splice,F=function(){}.hasOwnProperty("prototype"),I={doc:l.document,win:l},L=I.doc,N=I.win,D=c.safePointerEventMapping={mouseover:"pointerover",mousedown:"pointerdown",mousemove:"pointermove",mouseup:"pointerup",mouseout:"pointerout"},O=N.navigator,R=c.supportsTouch="ontouchstart"in L||O.maxTouchPoints||O.msMaxTouchPoints,P=c.supportsPointer="onpointerover"in L,V=c.isEdge=/Edge/.test(O.userAgent),B=c.isIE11=/trident/i.test(O.userAgent)&&/rv:11/i.test(O.userAgent)&&!N.opera,j=c.isFirefox=/Firefox/.test(O.userAgent),G=c.isWindows=/Windows/.test(O.userAgent),H="m",z="M",U="L",X=[],W=/[a-z]/i,$=function(e,t,r){var n=t.toLowerCase(),a=[],i=0;if(X.length=0,r.replace(Se,(function(e,t){t&&X.push(+t)})),"r"===n)d.push([t][b](X));else if("z"===n)d.push([t]);else if(X.length>=T[n]){for(;i<X.length;)i%T[n]?a.push(X[i]):(a.length&&d.push(a)&&(a=[]),a.push(t,X[i])),i++;d.push(a)}},Y=function(){},q=(c.ca=c.customAttributes=Y.prototype,function(){this.ca=this.customAttributes=new Y,this._CustomAttributes=function(){},this._CustomAttributes.prototype=this.ca,this._elementsById={},this.id=c._oid++,(0,o["default"])("raphael.new",this)}),K=c.fn=q.prototype=c.prototype,J="click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel dragstart dragmove dragend"[_](p),Z={dragstart:"touchstart",dragmove:"touchmove",dragend:"touchend"},Q=String,ee=N.parseFloat,te=N.parseInt,re=Math,ne=re.max,ae=re.min,ie=re.abs,oe=re.pow,se=re.cos,le=re.sin,ce=re.sqrt,ue=re.round,de=re.PI,he=de/180,fe=180/de,ge=Q.prototype.toLowerCase,pe=Q.prototype.toUpperCase,me=Object.prototype.toString,ve=/[, ]+/,be=/\{(\d+)\}/g,ye=/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i,xe=/^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/,Ce=/[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/,we=/,?([achlmqrstvxz]),?/gi,_e=/([achlmrqstvz])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/gi,ke=/([rstm])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/gi,Se=/(-?\d*\.?\d*(?:e[\-+]?\d+)?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/gi,Ee={NaN:1,Infinity:1,"-Infinity":1},Ae={hs:1,rg:1},Te=c._availableAttrs=((i={"arrow-end":k,"arrow-start":k,blur:0,"clip-rect":"0 0 1e9 1e9","clip-path":g,cursor:"default",cx:0,cy:0,fill:"#fff","fill-opacity":1,font:'10px "Arial"',"font-family":'"Arial"',"font-size":"10","font-style":"normal","font-weight":400,gradient:0,height:0,href:"about:blank","letter-spacing":0,"line-height":12,"vertical-align":"middle",opacity:1,path:"M0,0",r:0,rx:0,ry:0,src:g,stroke:"#000","stroke-dasharray":g,"stroke-linecap":"butt","stroke-linejoin":"butt","stroke-miterlimit":0,"stroke-opacity":1,"stroke-width":1,target:"_blank","text-anchor":"middle",visibility:g,title:g,transform:g,rotation:0,width:0,x:0,y:0,"shape-rendering":"auto",alpha:y,"font-stretch":"normal","alignment-baseline":"auto","baseline-shift":"auto","clip-rule":"nonzero","dominant-baseline":"auto","fill-rule":"nonzero",filter:k,"flood-color":"#000","flood-opacity":1,"font-size-adjust":k})["font-stretch"]="normal",i["font-variant"]="normal",i.kerning="auto",i["lighting-color"]="white",i["marker-end"]=k,i["marker-mid"]=k,i["marker-start"]=k,i.mask=k,i["pointer-events"]="visiblePainted",i["stop-color"]="#000",i["stop-opacity"]=1,i["stroke-dashoffset"]=0,i["text-decoration"]=k,i["vector-effect"]=g,i.visibility="visible",i["word-spacing"]="normal",i["writing-mode"]="lr-tb",i),Me=c._availableAnimAttrs={blur:y,"clip-rect":"csv","clip-path":"path",cx:y,cy:y,fill:"colour","fill-opacity":y,"font-size":y,height:y,opacity:y,path:"path",r:y,rx:y,ry:y,stroke:"colour","stroke-opacity":y,"stroke-width":y,transform:"transform",width:y,x:y,y:y,color:"colour",borderColor:"colour",borderWidth:y,alpha:y,"text-bound":"text-bound"},Fe={},Ie=function(e,t){return ee(e)-ee(t)},Le=function(e){return e},Ne=c._rectPath=function(e,t,r,n,a){return a?[[z,e+a,t],["l",r-2*a,0],["a",a,a,0,0,1,a,a],["l",0,n-2*a],["a",a,a,0,0,1,-a,a],["l",2*a-r,0],["a",a,a,0,0,1,-a,-a],["l",0,2*a-n],["a",a,a,0,0,1,a,-a],["z"]]:[[z,e,t],["l",r,0],["l",0,n],["l",-r,0],["z"]]},De=function(e,t,r,n){return null==n&&(n=r),[[z,e,t],[H,0,-n],["a",r,n,0,1,1,0,2*n],["a",r,n,0,1,1,0,-2*n],["z"]]},Oe=c._getPath={group:function(){return!1},path:function(e){return e.attr("path")},circle:function(e){var t=e.attrs;return De(t.cx,t.cy,t.r)},ellipse:function(e){var t=e.attrs;return De(t.cx,t.cy,t.rx,t.ry)},rect:function(e){var t=e.attrs;return Ne(t.x,t.y,t.width,t.height,t.r)},image:function(e){var t=e.attrs;return Ne(t.x,t.y,t.width,t.height)},text:function(e){var t=e._getBBox();return Ne(t.x,t.y,t.width,t.height)}},Re=c.mapPath=function(e,t){if(!t)return e;var r,n,a,i,o,s,l;for(a=0,o=(e=lt(e).slice(0)).length;a<o;a++)for(i=1,s=(l=e[a]=e[a].slice(0)).length;i<s;i+=2)r=t.x(l[i],l[i+1]),n=t.y(l[i],l[i+1]),l[i]=r,l[i+1]=n;return e},Pe=c._lastArgIfGroup=function(e,t){var r=e.length-1,n=e[r];if(n&&n.constructor===c.el.constructor&&"group"===n.type)return t&&(e[r]=undefined,delete e[r],M.call(e,r,1)),n},Ve=c._serializeArgs=function(e){var t,r,n,a,i=e[0];if(c.is(i,w)&&!c.is(i,C)&&"group"!==i.type)for(r=i,i.path&&(t=i.path)&&!c.is(t,x)&&!c.is(t[0],C)&&(t+=g),n=1,a=arguments.length;n<a;n+=2)r[arguments[n]]||(r[arguments[n]]=arguments[n+1]);else for(r={},n=1,a=arguments.length;n<a;n+=2)r[arguments[n]]=e[(n-1)/2]||arguments[n+1];return r},Be=c.is=function(e,t){return"finite"===t?!Ee[m](+e):t===C?e instanceof Array:(t!==w||null!=e)&&("null"===t&&null===e||t===typeof e&&null!==e||t===w&&e===Object(e)||t===C&&Array.isArray&&Array.isArray(e)||me.call(e).slice(8,-1).toLowerCase()===t)},je=c.clone=F?function(e){if(Object(e)!==e)return e;if(e instanceof Function)return e;var t=new e.constructor;for(var r in e)"prototype"!==r&&e[m](r)&&(t[r]=je(e[r]));return t}:function(e){if(Object(e)!==e)return e;if(e instanceof Function)return e;var t=new e.constructor;for(var r in e)e[m](r)&&(t[r]=je(e[r]));return t},Ge=l.Node;function He(e){this._comparator=e,this._elements=[]}Ge&&!Ge.prototype.contains&&(Ge.prototype.contains=function(e){for(;e=e.parentNode;)if(e===this)return!0;return!1}),c._g=I,c.merge=s.merge,c.extend=s["default"],c.createUUID=(h=/[xy]/g,f=function(e){var t=16*re.random()|0;return("x"===e?t:3&t|8).toString(16)},function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(h,f).toUpperCase()}),c._radial_gradient=/^x?r(?:\(([^\)]*?)\))?/,c._ISURL=/^url\(['"]?([^\)]+?)['"]?\)$/i,c.getElementID=function(e){return"rr-"+e},He.prototype.isEmpty=function(){return 0===this.size()},He.prototype.peek=function(){return this.isEmpty()?null:this._elements[0]},He.prototype.deq=function(){var e=this.peek(),t=this._elements.pop(),r=this.size();if(0===r)return e;this._elements[0]=t;for(var n=0;n<r;){var a=n,i=2*n+1,o=2*n+2;if(i<r&&this._compare(i,a)>=0&&(a=i),o<r&&this._compare(o,a)>=0&&(a=o),a===n)break;this._swap(a,n),n=a}return e},He.prototype.enq=function(e){for(var t=this._elements.push(e),r=t-1;r>0;){var n=Math.floor((r-1)/2);if(this._compare(r,n)<=0)break;this._swap(n,r),r=n}return t},He.prototype.size=function(){return this._elements.length},He.prototype._compare=function(e,t){return this._comparator(this._elements[e],this._elements[t])},He.prototype._swap=function(e,t){var r=this._elements[e];this._elements[e]=this._elements[t],this._elements[t]=r},c.type=N.ENABLE_RED_CANVAS&&(N.CanvasRenderingContext2D||L.createElement("canvas").getContext)?"CANVAS":N.SVGAngle||L.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")?"SVG":"VML",c.svg=!((c.vml="VML"===c.type)||(c.canvas="CANVAS"===c.type)),c._Paper=q,c._id=0,c._oid=0,c.rad=function(e){return e%360*he},c.deg=function(e){return e*fe%360};var ze=function(e){if(c.vml){var t,r=/^\s+|\s+$/g;try{var n=new ActiveXObject("htmlfile");n.write("<body>"),n.close(),t=n.body}catch(o){t=createPopup().document.body}var a=t.createTextRange();ze=(0,s.cacher)((function(e){try{t.style.color=Q(e).replace(r,g);var n=a.queryCommandValue("ForeColor");return"#"+("000000"+(n=(255&n)<<16|65280&n|(16711680&n)>>>16).toString(16)).slice(-6)}catch(o){return k}}))}else{var i=I.doc.createElement("i");i.title="Raphaël Colour Picker",i.style.display=k,I.doc.body.appendChild(i),ze=(0,s.cacher)((function(e){return i.style.color=e,I.doc.defaultView.getComputedStyle(i,g).getPropertyValue("color")}))}return ze(e)},Ue=function(){return"hsb("+[this.h,this.s,this.b]+")"},Xe=function(){return"hsl("+[this.h,this.s,this.l]+")"},We=function(){return this.hex},$e=function(e,t,r){if(null==t&&Be(e,w)&&"r"in e&&"g"in e&&"b"in e&&(r=e.b,t=e.g,e=e.r),null==t&&Be(e,x)){var n=c.getRGB(e);e=n.r,t=n.g,r=n.b}return(e>1||t>1||r>1)&&(e/=255,t/=255,r/=255),[e,t,r]},Ye=function(e,t,r,n){var a={r:e*=255,g:t*=255,b:r*=255,hex:c.rgb(e,t,r),toString:We};return Be(n,"finite")&&(a.opacity=n),a};function qe(){return this.hex}function Ke(e,t){for(var r=[],n=0,a=e.length;a-2*!t>n;n+=2){var i=[{x:+e[n-2],y:+e[n-1]},{x:+e[n],y:+e[n+1]},{x:+e[n+2],y:+e[n+3]},{x:+e[n+4],y:+e[n+5]}];t?n?a-4===n?i[3]={x:+e[0],y:+e[1]}:a-2===n&&(i[2]={x:+e[0],y:+e[1]},i[3]={x:+e[2],y:+e[3]}):i[0]={x:+e[a-2],y:+e[a-1]}:a-4===n?i[3]=i[2]:n||(i[0]={x:+e[n],y:+e[n+1]}),r.push(["C",(-i[0].x+6*i[1].x+i[2].x)/6,(-i[0].y+6*i[1].y+i[2].y)/6,(i[1].x+6*i[2].x-i[3].x)/6,(i[1].y+6*i[2].y-i[3].y)/6,i[2].x,i[2].y])}return r}c.color=function(e){var t;return c.is(e,w)&&"h"in e&&"s"in e&&"b"in e?(t=c.hsb2rgb(e),e.r=t.r,e.g=t.g,e.b=t.b,e.hex=t.hex):c.is(e,w)&&"h"in e&&"s"in e&&"l"in e?(t=c.hsl2rgb(e),e.r=t.r,e.g=t.g,e.b=t.b,e.hex=t.hex):(c.is(e,x)&&(e=c.getRGB(e)),c.is(e,w)&&"r"in e&&"g"in e&&"b"in e?(t=c.rgb2hsl(e),e.h=t.h,e.s=t.s,e.l=t.l,t=c.rgb2hsb(e),e.v=t.b):(e={hex:k}).r=e.g=e.b=e.h=e.s=e.v=e.l=-1),e.toString=We,e},c.hsb2rgb=function(e,t,r,n){var a,i,o,s,l;return this.is(e,w)&&"h"in e&&"s"in e&&"b"in e&&(r=e.b,t=e.s,n=(e=e.h).o),s=(l=r*t)*(1-ie((e=(e*=360)%360/60)%2-1)),a=i=o=r-l,Ye(a+=[l,s,0,0,s,l][e=~~e],i+=[s,l,l,s,0,0][e],o+=[0,0,s,l,l,s][e],n)},c.hsl2rgb=function(e,t,r,n){var a,i,o,s,l;return this.is(e,w)&&"h"in e&&"s"in e&&"l"in e&&(r=e.l,t=e.s,e=e.h),(e>1||t>1||r>1)&&(e/=360,t/=100,r/=100),s=(l=2*t*(r<.5?r:1-r))*(1-ie((e=(e*=360)%360/60)%2-1)),a=i=o=r-l/2,Ye(a+=[l,s,0,0,s,l][e=~~e],i+=[s,l,l,s,0,0][e],o+=[0,0,s,l,l,s][e],n)},c.rgb2hsb=function(e,t,r){var n,a;return e=(r=$e(e,t,r))[0],t=r[1],r=r[2],{h:((0===(a=(n=ne(e,t,r))-ae(e,t,r))?null:n===e?(t-r)/a:n===t?(r-e)/a+2:(e-t)/a+4)+360)%6*60/360,s:0===a?0:a/n,b:n,toString:Ue}},c.rgb2hsl=function(e,t,r){var n,a,i,o;return e=(r=$e(e,t,r))[0],t=r[1],r=r[2],n=((a=ne(e,t,r))+(i=ae(e,t,r)))/2,{h:((0===(o=a-i)?null:a===e?(t-r)/o:a===t?(r-e)/o+2:(e-t)/o+4)+360)%6*60/360,s:0===o?0:n<.5?o/(2*n):o/(2-2*n),l:n,toString:Xe}},c._path2string=function(){return this.join(",").replace(we,"$1")},c._cacher=s.cacher,c.getRGB=(0,s.cacher)((function(e){var t,r,n,a,i,o,s;return e&&Be(e,w)&&"opacity"in e&&(t=e.opacity),!e||(e=Q(e)).indexOf("-")+1?{r:-1,g:-1,b:-1,hex:k,error:1,toString:qe}:e===k?{r:-1,g:-1,b:-1,hex:k,toString:qe}:(!Ae[m](e.toLowerCase().substring(0,2))&&"#"!==e.charAt()&&(e=ze(e)),(s=e.match(ye))?(s[2]&&(a=te(s[2].substring(5),16),n=te(s[2].substring(3,5),16),r=te(s[2].substring(1,3),16)),s[3]&&(a=te((i=s[3].charAt(3))+i,16),n=te((i=s[3].charAt(2))+i,16),r=te((i=s[3].charAt(1))+i,16)),s[4]&&(o=s[4][_](Ce),r=ee(o[0]),"%"===o[0].slice(-1)&&(r*=2.55),n=ee(o[1]),"%"===o[1].slice(-1)&&(n*=2.55),a=ee(o[2]),"%"===o[2].slice(-1)&&(a*=2.55),"rgba"===s[1].toLowerCase().slice(0,4)&&(t=ee(o[3])),o[3]&&"%"===o[3].slice(-1)&&(t/=100)),s[5]?(o=s[5][_](Ce),r=ee(o[0]),"%"===o[0].slice(-1)&&(r*=2.55),n=ee(o[1]),"%"===o[1].slice(-1)&&(n*=2.55),a=ee(o[2]),"%"===o[2].slice(-1)&&(a*=2.55),("deg"===o[0].slice(-3)||"°"===o[0].slice(-1))&&(r/=360),"hsba"===s[1].toLowerCase().slice(0,4)&&(t=ee(o[3])),o[3]&&"%"===o[3].slice(-1)&&(t/=100),c.hsb2rgb(r,n,a,t)):s[6]?(o=s[6][_](Ce),r=ee(o[0]),"%"===o[0].slice(-1)&&(r*=2.55),n=ee(o[1]),"%"===o[1].slice(-1)&&(n*=2.55),a=ee(o[2]),"%"===o[2].slice(-1)&&(a*=2.55),("deg"===o[0].slice(-3)||"°"===o[0].slice(-1))&&(r/=360),"hsla"===s[1].toLowerCase().slice(0,4)&&(t=ee(o[3])),o[3]&&"%"===o[3].slice(-1)&&(t/=100),c.hsl2rgb(r,n,a,t)):((s={r:r,g:n,b:a,toString:qe}).hex="#"+(16777216|a|n<<8|r<<16).toString(16).slice(1),c.is(t,"finite")&&(s.opacity=t),s)):{r:-1,g:-1,b:-1,hex:k,error:1,toString:qe})}),c),c.tintshade=(0,s.cacher)((function(e,t){var r,n=c.getRGB(e),a=255;return t<0&&(t*=-1,a=0),t>1&&(t=1),(r=0===t?n:{r:a-(a-n.r)*t,g:a-(a-n.g)*t,b:a-(a-n.b)*t,toString:qe}).hex=c.rgb(r.r,r.g,r.b),n.error&&(r.error=n.error),"opacity"in n?(r.rgba="rgba("+[r.r,r.g,r.b,n.opacity].join(",")+")",r.opacity=n.opacity):r.rgba="rgb("+[r.r,r.g,r.b].join(",")+")",r}),c),c.rgb=(0,s.cacher)((function(e,t,r){return"#"+(16777216|r|t<<8|e<<16).toString(16).slice(1)})),c.sanitizePath=function(e){var t;return t=e.join?e.join(","):e,t=E.test(t)?c._pathToAbsolute(t):t.replace(we,"$1")},c.parsePathString=function(e){if(!e||!e.length)return null;var t=Je(e);if(t.arr)return tt(t.arr);if(d=void 0,c.is(e,C))if(e=Q(e).replace(/,?([A-Z]),?/g,",$1,").replace(/(^,?)|(,?$)/g,"").replace(/,,?/g,",").split(","),c.is(e[0],C))d=tt(e);else{var r,n,a,i=[],o=e.length;for(d=[],r=0;r<o;r+=1)W.test(e[r])?(i.length&&d.push(i),i=[n=e[r]],a=T[n.toLowerCase()]):a?(i.push(+e[r]),a--):e[r].length&&(d.push(i),i=[n].concat(+e[r]),a=T[n.toLowerCase()]-1);d.push(i)}return d&&d.length||(d=[],Q(e).replace(_e,$)),d.toString=c._path2string,t.arr=d,t.arr},c.parseTransformString=(0,s.cacher)((function(e){if(!e)return null;var t=[];return c.is(e,C)&&c.is(e[0],C)&&(t=tt(e)),t.length||Q(e).replace(ke,(function(e,r,n){var a=[];ge.call(r);n.replace(Se,(function(e,t){t&&a.push(+t)})),t.push([r][b](a))})),t.toString=c._path2string,t}));var Je=(0,s.cacher)((function(){return{}}),void 0,void 0,void 0,500,{},!0);function Ze(e,t,r,n,a){return e*(e*(-3*t+9*r-9*n+3*a)+6*t-12*r+6*n)-3*t+3*r}function Qe(e,t,r,n,a,i,o,s,l){null==l&&(l=1);for(var c=(l=l>1?1:l<0?0:l)/2,u=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],d=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],h=0,f=0;f<12;f++){var g=c*u[f]+c,p=Ze(g,e,r,a,o),m=Ze(g,t,n,i,s);h+=d[f]*ce(p*p+m*m)}return c*h}c.findDotsAtSegment=function(e,t,r,n,a,i,o,s,l){var c=1-l,u=oe(c,3),d=oe(c,2),h=l*l,f=h*l,g=u*e+3*d*l*r+3*c*l*l*a+f*o,p=u*t+3*d*l*n+3*c*l*l*i+f*s,m=e+2*l*(r-e)+h*(a-2*r+e),v=t+2*l*(n-t)+h*(i-2*n+t),b=r+2*l*(a-r)+h*(o-2*a+r),y=n+2*l*(i-n)+h*(s-2*i+n),x=c*e+l*r,C=c*t+l*n,w=c*a+l*o,_=c*i+l*s,k=90-180*re.atan2(m-b,v-y)/de;return(m>b||v<y)&&(k+=180),{x:g,y:p,m:{x:m,y:v},n:{x:b,y:y},start:{x:x,y:C},end:{x:w,y:_},alpha:k}},c._removedFactory=function(e){return function(){(0,o["default"])("raphael.log",null,"Raphaël: you are calling to method “"+e+"” of removed object",e)}};var et=c.pathBBox=function(e){var t=Je(e);if(!e)return{x:0,y:0,width:0,height:0,x2:0,y2:0};for(var r,n=0,a=0,i=[],o=[],s=0,l=(e=lt(e)).length;s<l;s++)if((r=e[s])[0]===z)n=r[1],a=r[2],i.push(n),o.push(a);else{var c=st(n,a,r[1],r[2],r[3],r[4],r[5],r[6]);i=i[b](c.min.x,c.max.x),o=o[b](c.min.y,c.max.y),n=r[5],a=r[6]}var u=ae[v](0,i),d=ae[v](0,o),h=ne[v](0,i),f=ne[v](0,o),g={x:u,y:d,x2:h,y2:f,width:h-u,height:f-d};return t.bbox=je(g),g},tt=function(e){var t=je(e);return t.toString=c._path2string,t},rt=c._pathToAbsolute=function(e){var t,r=Je(e);if(!r.abs){if(c.is(e,C)&&c.is(e&&e[0],C)||(e=c.parsePathString(e)),!e||!e.length)return(t=[[z,0,0]]).toString=c._path2string,t;var n=0,a=0,i=0,o=0,s=0;t=[],e[0][0]===z&&(i=n=+e[0][1],o=a=+e[0][2],s++,t[0]=[z,n,a]);for(var l,u,d=3===e.length&&e[0][0]===z&&"R"===e[1][0].toUpperCase()&&"Z"===e[2][0].toUpperCase(),h=s,f=e.length;h<f;h++){if(t.push(l=[]),(u=e[h])[0]!=pe.call(u[0]))switch(l[0]=pe.call(u[0]),l[0]){case"A":l[1]=u[1],l[2]=u[2],l[3]=u[3],l[4]=u[4],l[5]=u[5],l[6]=+(u[6]+n),l[7]=+(u[7]+a);break;case"V":l[1]=+u[1]+a;break;case"H":l[1]=+u[1]+n;break;case"R":for(var g=[n,a][b](u.slice(1)),p=2,m=g.length;p<m;p++)g[p]=+g[p]+n,g[++p]=+g[p]+a;t.pop(),t=t[b](Ke(g,d));break;case"M":i=+u[1]+n,o=+u[2]+a;default:for(p=1,m=u.length;p<m;p++)l[p]=+u[p]+(p%2?n:a),p%2?n=l[p]:a=l[p]}else if("R"===u[0])g=[n,a][b](u.slice(1)),t.pop(),t=t[b](Ke(g,d)),l=["R"][b](u.slice(-2));else for(var v=0,y=u.length;v<y;v++)l[v]=u[v];switch(l[0]){case"Z":n=i,a=o;break;case"H":n=l[1];break;case"V":a=l[1];break;case"M":i=l[l.length-2],o=l[l.length-1];default:n=l[l.length-2],a=l[l.length-1]}}t.toString=c._path2string,r.abs=t}return tt(r.abs)},nt=function(e,t,r,n){return[e,t,r,n,r,n]},at=function(e,t,r,n,a,i){return[1/3*e+2/3*r,1/3*t+2/3*n,1/3*a+2/3*r,1/3*i+2/3*n,a,i]},it=function Jt(e,t,r,n,a,i,o,l,c,u){o=o&&+o,i=i&&+i;var d,h=120*de/180,f=he*(+a||0),g=[],p=(0,s.cacher)((function(e,t,r){return{x:e*se(r)-t*le(r),y:e*le(r)+t*se(r)}}));if(u)E=u[0],A=u[1],k=u[2],S=u[3];else{e=(d=p(e,t,-f)).x,t=d.y,l=(d=p(l,c,-f)).x,c=d.y;se(he*a),le(he*a);var m=(e-l)/2,v=(t-c)/2,y=m*m/(r*r)+v*v/(n*n);y>1&&(r*=y=ce(y),n*=y);var x=r*r,C=n*n,w=(i===o?-1:1)*ce(ie((x*C-x*v*v-C*m*m)/(x*v*v+C*m*m))),k=w*r*v/n+(e+l)/2,S=w*-n*m/r+(t+c)/2,E=re.asin(((t-S)/n).toFixed(9)),A=re.asin(((c-S)/n).toFixed(9));(E=e<k?de-E:E)<0&&(E=2*de+E),(A=l<k?de-A:A)<0&&(A=2*de+A),o&&E>A&&(E-=2*de),!o&&A>E&&(A-=2*de)}var T=A-E;if(ie(T)>h){var M=A,F=l,I=c;g=Jt(l=k+r*se(A=E+h*(o&&A>E?1:-1)),c=S+n*le(A),r,n,a,0,o,F,I,[A,M,k,S])}T=A-E;var L=se(E),N=le(E),D=se(A),O=le(A),R=re.tan(T/4),P=4/3*r*R,V=4/3*n*R,B=[e,t],j=[e+P*N,t-V*L],G=[l+P*O,c-V*D],H=[l,c];if(j[0]=2*B[0]-j[0],j[1]=2*B[1]-j[1],u)return[j,G,H][b](g);for(var z=[],U=0,X=(g=[j,G,H][b](g).join()[_](",")).length;U<X;U++)z[U]=U%2?p(g[U-1],g[U],f).y:p(g[U],g[U+1],f).x;return z},ot=function(e,t,r,n,a,i,o,s,l){var c=1-l;return{x:oe(c,3)*e+3*oe(c,2)*l*r+3*c*l*l*a+oe(l,3)*o,y:oe(c,3)*t+3*oe(c,2)*l*n+3*c*l*l*i+oe(l,3)*s}},st=(0,s.cacher)((function(e,t,r,n,a,i,o,s){var l,c=a-2*r+e-(o-2*a+r),u=2*(r-e)-2*(a-r),d=e-r,h=(-u+ce(u*u-4*c*d))/2/c,f=(-u-ce(u*u-4*c*d))/2/c,g=[t,s],p=[e,o];return ie(h)>"1e12"&&(h=.5),ie(f)>"1e12"&&(f=.5),h>0&&h<1&&(l=ot(e,t,r,n,a,i,o,s,h),p.push(l.x),g.push(l.y)),f>0&&f<1&&(l=ot(e,t,r,n,a,i,o,s,f),p.push(l.x),g.push(l.y)),h=(-(u=2*(n-t)-2*(i-n))+ce(u*u-4*(c=i-2*n+t-(s-2*i+n))*(d=t-n)))/2/c,f=(-u-ce(u*u-4*c*d))/2/c,ie(h)>"1e12"&&(h=.5),ie(f)>"1e12"&&(f=.5),h>0&&h<1&&(l=ot(e,t,r,n,a,i,o,s,h),p.push(l.x),g.push(l.y)),f>0&&f<1&&(l=ot(e,t,r,n,a,i,o,s,f),p.push(l.x),g.push(l.y)),{min:{x:ae[v](0,p),y:ae[v](0,g)},max:{x:ne[v](0,p),y:ne[v](0,g)}}})),lt=c._path2curve=(0,s.cacher)((function(e,t){var r=!t&&Je(e);if(!t&&r.curve)return tt(r.curve);for(var n=rt(e),a=t&&rt(t),i={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},o={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},s=function(e,t){if(!e)return["C",t.x,t.y,t.x,t.y,t.x,t.y];switch(!(e[0]in{T:1,Q:1})&&(t.qx=t.qy=null),e[0]){case"M":t.X=e[1],t.Y=e[2];break;case"A":e=["C"][b](it[v](0,[t.x,t.y][b](e.slice(1))));break;case"S":e=["C",t.x+(t.x-(t.bx||t.x)),t.y+(t.y-(t.by||t.y))][b](e.slice(1));break;case"T":t.qx=t.x+(t.x-(t.qx||t.x)),t.qy=t.y+(t.y-(t.qy||t.y)),e=["C"][b](at(t.x,t.y,t.qx,t.qy,e[1],e[2]));break;case"Q":t.qx=e[1],t.qy=e[2],e=["C"][b](at(t.x,t.y,e[1],e[2],e[3],e[4]));break;case"L":e=["C"][b](nt(t.x,t.y,e[1],e[2]));break;case"H":e=["C"][b](nt(t.x,t.y,e[1],t.y));break;case"V":e=["C"][b](nt(t.x,t.y,t.x,e[1]));break;case"Z":e=["C"][b](nt(t.x,t.y,t.X,t.Y))}return e},l=function(e,t){if(e[t].length>7){e[t].shift();for(var r=e[t];r.length;)e.splice(t++,0,["C"][b](r.splice(0,6)));e.splice(t,1),d=ne(n.length,a&&a.length||0)}},c=function(e,t,r,i,o){e&&t&&e[o][0]===z&&t[o][0]!=z&&!o&&(t.splice(o,0,[z,i.x,i.y]),r.bx=0,r.by=0,r.x=e[o][1],r.y=e[o][2],d=ne(n.length,a&&a.length||0))},u=0,d=ne(n.length,a&&a.length||0);u<d;u++){n[u]=s(n[u],i),l(n,u),a&&(a[u]=s(a[u],o)),a&&l(a,u),c(n,a,i,o,u),c(a,n,o,i,u);var h=n[u],f=a&&a[u],g=h.length,p=a&&f.length;i.x=h[g-2],i.y=h[g-1],i.bx=ee(h[g-4])||i.x,i.by=ee(h[g-3])||i.y,o.bx=a&&(ee(f[p-4])||o.x),o.by=a&&(ee(f[p-3])||o.y),o.x=a&&f[p-2],o.y=a&&f[p-1]}return a||(r.curve=tt(n)),a?[n,a]:n}),null,tt),ct=(c._parseDots=(0,s.cacher)((function(e){for(var t=[],r=0,n=e.length;r<n;r++){var a={},i=e[r].match(/^([^:]*):?([\d\.]*)/);if(a.color=c.getRGB(i[1]),a.color.error)return null;a.opacity=a.color.opacity,a.color=a.color.hex,i[2]&&(a.offset=i[2]+"%"),t.push(a)}for(r=1,n=t.length-1;r<n;r++)if(!t[r].offset){for(var o=ee(t[r-1].offset||0),s=0,l=r+1;l<n;l++)if(t[l].offset){s=t[l].offset;break}s||(s=100,l=n);for(var u=((s=ee(s))-o)/(l-r+1);r<l;r++)o+=u,t[r].offset=o+"%"}return t})),c._tear=function(e,t){e===t.top&&(t.top=e.prev),e===t.bottom&&(t.bottom=e.next),e.next&&(e.next.prev=e.prev),e.prev&&(e.prev.next=e.next)}),ut=(c._tofront=function(e,t){return t.top!==e&&(ct(e,t),e.next=null,e.prev=t.top,t.top.next=e,t.top=e,!0)},c._toback=function(e,t){return t.bottom!==e&&(ct(e,t),e.next=t.bottom,e.prev=null,t.bottom.prev=e,t.bottom=e,!0)},c._insertafter=function(e,t,r,n){ct(e,r),e.parent=n,t===n.top&&(n.top=e),t.next&&(t.next.prev=e),e.next=t.next,e.prev=t,t.next=e},c._insertbefore=function(e,t,r,n){ct(e,r),e.parent=n,t===n.bottom&&(n.bottom=e),t.prev&&(t.prev.next=e),e.prev=t.prev,t.prev=e,e.next=t},c._extractTransform=function(e,t){if(null==t)return e._.transform;t=Q(t).replace(/\.{3}|\u2026/g,e._.transform||g);var r,n,a=c.parseTransformString(t),i=0,o=1,s=1,l=e._,u=new ft;if(l.transform=a||[],a)for(var d=0,h=a.length;d<h;d++){var f,p,m,v,b,y=a[d],x=y.length,C=Q(y[0]).toLowerCase(),w=y[0]!=C,_=w?u.invert():0;"t"===C&&3===x?w?(f=_.x(0,0),p=_.y(0,0),m=_.x(y[1],y[2]),v=_.y(y[1],y[2]),u.translate(m-f,v-p)):u.translate(y[1],y[2]):"r"===C?2===x?(b=l.bb||(l.bb=e.getBBox(1)),u.rotate(y[1],b.x+b.width/2,b.y+b.height/2),i+=y[1]):4===x&&(w?(m=_.x(y[2],y[3]),v=_.y(y[2],y[3]),u.rotate(y[1],m,v)):u.rotate(y[1],y[2],y[3]),i+=y[1]):"s"===C?2===x||3===x?(b=l.bb||(l.bb=e.getBBox(1)),u.scale(y[1],y[x-1],b.x+b.width/2,b.y+b.height/2),o*=y[1],s*=y[x-1]):5===x&&(w?(m=_.x(y[3],y[4]),v=_.y(y[3],y[4]),u.scale(y[1],y[2],m,v)):u.scale(y[1],y[2],y[3],y[4]),o*=y[1],s*=y[2]):C===H&&7===x&&u.add(y[1],y[2],y[3],y[4],y[5],y[6]),l.dirtyT=1,e.matrix=u}e.matrix=u,l.sx=o,l.sy=s,l.deg=i,l.dx=r=u.e,l.dy=n=u.f,1===o&&1===s&&!i&&l.bbox?(l.bbox.x+=+r,l.bbox.y+=+n):l.dirtyT=1}),dt=function(e){var t=e[0];switch(t.toLowerCase()){case"t":return[t,0,0];case"m":return[t,1,0,0,1,0,0];case"r":return 4===e.length?[t,0,e[2],e[3]]:[t,0];case"s":return 5===e.length?[t,1,1,e[3],e[4]]:3===e.length?[t,1,1]:[t,1]}},ht=c._equaliseTransform=function(e,t){t=Q(t).replace(/\.{3}|\u2026/g,e),e=c.parseTransformString(e)||[],t=c.parseTransformString(t)||[];for(var r,n,a,i,o=ne(e.length,t.length),s=[],l=[],u=0;u<o;u++){if(a=e[u]||dt(t[u]),i=t[u]||dt(a),a[0]!=i[0]||"r"===a[0].toLowerCase()&&(a[2]!=i[2]||a[3]!=i[3])||"s"===a[0].toLowerCase()&&(a[3]!=i[3]||a[4]!=i[4]))return;for(s[u]=[],l[u]=[],r=0,n=ne(a.length,i.length);r<n;r++)r in a&&(s[u][r]=a[r]),r in i&&(l[u][r]=i[r])}return{from:s,to:l}};function ft(e,t,r,n,a,i){null!=e?(this.a=+e,this.b=+t,this.c=+r,this.d=+n,this.e=+a,this.f=+i):(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0)}c._getContainer=function(e,t,r,n){var a;if(null!=(a=null!=n||c.is(e,w)?e:I.doc.getElementById(e)))return a.tagName?null==t?{container:a,width:a.style.pixelWidth||a.offsetWidth,height:a.style.pixelHeight||a.offsetHeight}:{container:a,width:t,height:r}:{container:1,x:e,y:t,width:r,height:n}},c._engine={},c.path2curve=lt,c.matrix=function(e,t,r,n,a,i){return new ft(e,t,r,n,a,i)},function(e){function t(e){return e[0]*e[0]+e[1]*e[1]}function r(e){var r=ce(t(e));e[0]&&(e[0]/=r),e[1]&&(e[1]/=r)}e.add=function(e,t,r,n,a,i){var o,s,l,c,u=[[],[],[]],d=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1]],h=[[e,r,a],[t,n,i],[0,0,1]];for(e&&e instanceof ft&&(h=[[e.a,e.c,e.e],[e.b,e.d,e.f],[0,0,1]]),o=0;o<3;o++)for(s=0;s<3;s++){for(c=0,l=0;l<3;l++)c+=d[o][l]*h[l][s];u[o][s]=c}this.a=u[0][0],this.b=u[1][0],this.c=u[0][1],this.d=u[1][1],this.e=u[0][2],this.f=u[1][2]},e.invert=function(){var e=this,t=e.a*e.d-e.b*e.c;return new ft(e.d/t,-e.b/t,-e.c/t,e.a/t,(e.c*e.f-e.d*e.e)/t,(e.b*e.e-e.a*e.f)/t)},e.clone=function(){return new ft(this.a,this.b,this.c,this.d,this.e,this.f)},e.translate=function(e,t){this.add(1,0,0,1,e,t)},e.scale=function(e,t,r,n){null==t&&(t=e),(r||n)&&this.add(1,0,0,1,r,n),this.add(e,0,0,t,0,0),(r||n)&&this.add(1,0,0,1,-r,-n)},e.rotate=function(e,t,r){e=c.rad(e),t=t||0,r=r||0;var n=+se(e).toFixed(9),a=+le(e).toFixed(9);this.add(n,a,-a,n,t,r),this.add(1,0,0,1,-t,-r)},e.x=function(e,t){return e*this.a+t*this.c+this.e},e.y=function(e,t){return e*this.b+t*this.d+this.f},e.get=function(e){return+this[Q.fromCharCode(97+e)].toFixed(4)},e.toString=function(){return c.svg?"matrix("+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+")":[this.get(0),this.get(2),this.get(1),this.get(3),0,0].join()},e.toMatrixString=function(){return"matrix("+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+")"},e.toFilter=function(){return"progid:DXImageTransform.Microsoft.Matrix(M11="+this.get(0)+", M12="+this.get(2)+", M21="+this.get(1)+", M22="+this.get(3)+", Dx="+this.get(4)+", Dy="+this.get(5)+", sizingmethod='auto expand')"},e.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]},e.split=function(){var e={};e.dx=this.e,e.dy=this.f;var n=[[this.a,this.c],[this.b,this.d]];e.scalex=ce(t(n[0])),r(n[0]),e.shear=n[0][0]*n[1][0]+n[0][1]*n[1][1],n[1]=[n[1][0]-n[0][0]*e.shear,n[1][1]-n[0][1]*e.shear],e.scaley=ce(t(n[1])),r(n[1]),e.shear/=e.scaley;var a=-n[0][1],i=n[1][1];return i<0?(e.rotate=c.deg(re.acos(i)),a<0&&(e.rotate=360-e.rotate)):e.rotate=c.deg(re.asin(a)),e.isSimple=!(+e.shear.toFixed(9)||e.scalex.toFixed(9)!==e.scaley.toFixed(9)&&e.rotate),e.isSuperSimple=!+e.shear.toFixed(9)&&e.scalex.toFixed(9)===e.scaley.toFixed(9)&&!e.rotate,e.noRotation=!+e.shear.toFixed(9)&&!e.rotate,e},e.toTransformString=function(e){var t=e||this[_]();return t.isSimple?(t.scalex=+t.scalex.toFixed(4),t.scaley=+t.scaley.toFixed(4),t.rotate=+t.rotate.toFixed(4),(t.dx||t.dy?"t"+[t.dx,t.dy]:g)+(1!=t.scalex||1!=t.scaley?"s"+[t.scalex,t.scaley,0,0]:g)+(t.rotate?"r"+[t.rotate,0,0]:g)):H+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)]}}(ft.prototype);var gt=(O=N.navigator).userAgent.match(/Version\/(.*?)\s/)||O.userAgent.match(/Chrome\/(\d+)/);"Apple Computer, Inc."===O.vendor&&(gt&>[1]<4||"iP"===O.platform.slice(0,2))||"Google Inc."===O.vendor&>&>[1]<8?K.safari=function(){var e=this.rect(-99,-99,this.width+99,this.height+99).attr({stroke:k});return setTimeout((function(){e.remove()})),!0}:K.safari=function(){};for(var pt=function(){this.returnValue=!1},mt=function(){return this.originalEvent.preventDefault()},vt=function(){this.cancelBubble=!0},bt=function(){return this.originalEvent.stopPropagation()},yt={stopPropagation:"fn",stopImmediatePropagation:"fn",preventDefault:"fn",type:!0,clientX:!0,clientY:!0,pageX:!0,pageY:!0,bubbles:!0,cancelable:!0,touches:!0,target:!0,originalTarget:!0,srcElement:!0,relatedTarget:!0,fromElement:!0,changedTouches:!0,layerX:!0,layerY:!0,deltaX:!0,deltaY:!0},xt=c.makeSelectiveCopy=function(e,t){var r=function(r){e[r]="fn"===yt[r]?function(){t[r]()}:t[r]};for(var n in yt)r(n);e.originalEvent=t,e.type||(e.type=t.originalEvent&&t.originalEvent.type)},Ct=c.addEvent=I.doc.addEventListener?function(e,t,r,n){var a,i,o=P?D[t]:R?Z[t]:t;return A||(i={capture:!1}),n.dragFn&&("pointerup"===o?o="mouseup":void 0===o&&(o="touchend")),a=function(a){var i,o=I.doc.documentElement.scrollTop||I.doc.body.scrollTop,s=I.doc.documentElement.scrollLeft||I.doc.body.scrollLeft;if(R&&Z[t])for(var l=0,c=a.targetTouches&&a.targetTouches.length;l<c;l++)if((i=a.targetTouches[l].target)===e||"tspan"===i.nodeName&&i.parentNode===e){var u=a;(a=a.targetTouches[l]).originalEvent=u,a.preventDefault=mt,a.stopPropagation=bt;break}return r.call(n,a,a.clientX+s,a.clientY+o)},e.addEventListener(o,a,i),function(){return e.removeEventListener(o,a,i),!0}}:I.doc.attachEvent?function(e,t,r,n){var a=function(e){e=e||I.win.event;var t=I.doc.documentElement.scrollTop||I.doc.body.scrollTop,a=I.doc.documentElement.scrollLeft||I.doc.body.scrollLeft,i=e.clientX+a,o=e.clientY+t;return e.preventDefault=e.preventDefault||pt,e.stopPropagation=e.stopPropagation||vt,r.call(n,e,i,o)};return e.attachEvent("on"+t,a),function(){return e.detachEvent("on"+t,a),!0}}:void 0,wt=function(e){var t,r=I.doc.documentElement.scrollTop||I.doc.body.scrollTop,n=I.doc.documentElement.scrollLeft||I.doc.body.scrollLeft,a=(void 0!==e.clientX?e.clientX:e.changedTouches&&e.changedTouches[0].clientX)+n,i=(void 0!==e.clientY?e.clientY:e.changedTouches&&e.changedTouches[0].clientY)+r,s={},l=this,u=l.dragInfo.onmove.length;if(!(l.dragStartFn&&!(Math.abs(a-l._drag.x)>=2.5||Math.abs(i-l._drag.y)>=2.5)||l._blockDrag||P&&R&&!e.isPrimary))for(;u--;){if(R&&"touchmove"===e.type)for(var d,h=e.touches.length;h--;)if((d=e.touches[h]).identifier===l._drag.id){a=d.clientX+n,i=d.clientY+r;break}if(!l.removed){if(l.dragStartFn&&(l.dragStartFn(u),l.dragStartFn=undefined,l.dragInfo._dragmove=!0),I.win.opera){var f=c._engine.getNode(l),g=f.nextSibling,p=f.parentNode,m=f.style.display;p.removeChild(f),f.style.display=k,f.style.display=m,g?p.insertBefore(f,g):p.appendChild(f)}xt(s,e),t=s.data=[a-l._drag.x,i-l._drag.y,a,i],(0,o["default"])("raphael.drag.move."+l.id,l.dragInfo.move_scope[u]||l,s,t)}}},_t=function e(t){var r=this,n=r.dragInfo,a=n.onend.length;if(r.dragInfo._dragmove)for(;a--;)r._drag={},(0,o["default"])("raphael.drag.end."+r.id,n.end_scope[a]||n.start_scope[a]||n.move_scope[a]||r,t);r.dragInfo._dragmove=undefined,R&&!B&&!V&&(!G||!j)&&(r.paper.canvas.style["touch-action"]="auto"),c.undragmove.call(r,wt),c.undragend.call(r,e),c.unmousemove.call(r,wt).unmouseup.call(r,e)},kt=c.el={},St=J.length;St--;)!function(e){c[e]=kt[e]=function(t,r,n){return c.is(t,S)&&(this.events=this.events||[],this.events.push({name:e,f:t,unbind:Ct(n||this.shape||this.node||I.doc,e,t,r||this)})),this},c["un"+e]=kt["un"+e]=function(t){for(var r=this.events||[],n=r.length;n--;)if(r[n].name===e&&r[n].f===t)return r[n].unbind(),r.splice(n,1),!r.length&&delete this.events,this;return this}}(J[St]);kt.data=function(e,t){var r=Fe[this.id]=Fe[this.id]||{};if(1===arguments.length){if(c.is(e,w)){for(var n in e)e[m](n)&&this.data(n,e[n]);return this}return c.stopPartialEventPropagation||(0,o["default"])("raphael.data.get."+this.id,this,r[e],e),r[e]}return r[e]=t,c.stopPartialEventPropagation||(0,o["default"])("raphael.data.set."+this.id,this,t,e),this},kt.removeData=function(e){return null==e?delete Fe[this.id]:Fe[this.id]&&delete Fe[this.id][e],this},kt.dbclick=function(e,t){var r,n=this,a=function(r){var a;P&&!r.isPrimary||(r&&r.preventDefault(),(!(a=r).touches||a.touches&&1===a.touches.length)&&(n._tappedOnce?(e.call(t||n,r),n._tappedOnce=!1):(n._tappedOnce=!0,setTimeout((function(){n._tappedOnce=!1}),500))))};r=P?"pointerup":c.supportsTouch?"touchstart":"mouseup",n.node.addEventListener(r,a),c.storeHandlers(n,e,a)},kt.undbclick=function(e){var t=removeHandlers(this,e);t&&this.node.removeEventListener(P?"pointerup":c.supportsTouch?"touchstart":"mouseup",t)},kt.getData=function(){return je(Fe[this.id]||{})};var Et=[],At=function(){this.untrack=Ct(I.doc,"mouseup",Tt,this)},Tt=function(){return this.untrack(),this.untrack=null,this.fn&&this.fn.apply(this.scope||this.el,arguments)};kt.mouseup=function(e,t,r,n){return r?(Et.push(r={el:this,fn:e,scope:t}),r.unbind=Ct(this.shape||this.node||I.doc,"mousedown",At,r),this):c.mouseup.apply(this,[e,t,n])},kt.unmouseup=function(e){for(var t,r=Et.length;r--;)Et[r].el===this&&Et[r].fn===e&&((t=Et[r]).unbind(),t.untrack&&t.untrack(),Et.splice(r,1));return t?this:c.unmouseup.apply(this,arguments)},kt.hover=function(e,t,r,n){return this.on("fc-mouseover",e,r).on("fc-mouseout",t,n)},kt.unhover=function(e,t){return this.off("fc-mouseover",e).off("fc-mouseout",t)},kt.fcclick=function(e,t){var r,n,a,i,o,s=this,l=s.node,u=function(e){s._lastEventTriggered="mousedown",a=void 0!==e.clientX?e.clientX:e.changedTouches&&e.changedTouches[0].clientX,i=void 0!==e.clientY?e.clientY:e.changedTouches&&e.changedTouches[0].clientY},d=function(e){var t=void 0!==e.clientX?e.clientX:e.changedTouches&&e.changedTouches[0].clientX,r=void 0!==e.clientY?e.clientY:e.changedTouches&&e.changedTouches[0].clientY;(Math.abs(a-t)>=2.5||Math.abs(i-r)>=2.5)&&(s._lastEventTriggered=undefined)};if(s._clickStoreActual||(s._clickStoreActual=[]),s._clickStoreDerived||(s._clickStoreDerived=[]),!s._clickHandlerHelper){for(r in o=!P&&c.supportsTouch?{touchstart:function(){s._lastEventTriggered="touchstart",s._lastEventTriggeredAt=(new Date).getTime()},touchmove:d}:P&&c.supportsTouch?{pointerdown:u,pointermove:d}:{mousedown:u,mousemove:d})l.addEventListener?l.addEventListener(r,o[r]):l.attachEvent("on"+r,o[r]);s._clickHandlerHelper=o}return!P&&c.supportsTouch?(r="touchend",n=function(r){"touchstart"===s._lastEventTriggered&&(new Date).getTime()-s._lastEventTriggeredAt<=500&&setTimeout((function(){e.call(t||s,r)}),0)}):(r="click",n=function(r){"mousedown"===s._lastEventTriggered&&e.call(t||s,r)}),l.addEventListener?l.addEventListener(r,n):l.attachEvent("on"+r,n),s._clickStoreDerived.push(n),s._clickStoreActual.push(e),s},kt.fcunclick=function(e){var t,r,n=this.node,a=this._clickHandlerHelper,i=this._clickStoreActual,o=this._clickStoreDerived;if(i){for(t=i.length-1;t>=0;t--)i[t]===e&&(n.removeEventListener?n.removeEventListener(!P&&c.supportsTouch?"touchend":"click",o[t]):n.detachEvent("onclick",o[t]),i.splice(t,1),o.splice(t,1));if(!i.length){for(r in a)n.removeEventListener?n.removeEventListener(r,a[r]):n.detachEvent("on"+r,a[r]);this._clickHandlerHelper=undefined}}return this};var Mt=[];function Ft(){return this.x+p+this.y+p+this.width+" × "+this.height}kt.drag=function(e,t,r,n,a,i){var s=this,l=s.dragInfo||(s.dragInfo={onmove:[],onstart:[],onend:[],move_scope:[],start_scope:[],end_scope:[]});return e&&l.onmove.push(e)&&l.move_scope.push(n),t&&l.onstart.push(t)&&l.start_scope.push(a),r&&l.onend.push(r)&&l.end_scope.push(i),s.dragFn=s.dragFn||function(e){var t,r,n,a,i,l,u,d,h,f,g=I.doc.documentElement.scrollTop||I.doc.body.scrollTop,p=I.doc.documentElement.scrollLeft||I.doc.body.scrollLeft,m={},v=s.dragInfo,b=[wt,void 0,I.doc];if(!P||e.isPrimary){for(R&&(P?B||V||G&&j||(s.paper.canvas.style["touch-action"]="none"):e.preventDefault()),s._drag.x=h=(void 0!==e.clientX?e.clientX:e.changedTouches&&e.changedTouches[0].clientX)+p,s._drag.y=f=(void 0!==e.clientY?e.clientY:e.changedTouches&&e.changedTouches[0].clientY)+g,s._drag.id=e.identifier,R&&!P?c.dragmove.apply(s,b):c.mousemove.apply(s,b).mouseup.call(s,_t,void 0,void 0,I.doc),R&&c.dragend.call(s,_t,void 0,I.doc),xt(m,e),t=m.data=[h,f],r=0,i=v.onstart.length;r<i;r++)o["default"].on("raphael.drag.start."+s.id,v.onstart[r]);for(n=0,l=v.onmove.length;n<l;n++)o["default"].on("raphael.drag.move."+s.id,v.onmove[n]);for(a=0,u=v.onend.length;a<u;a++)o["default"].on("raphael.drag.end."+s.id,v.onend[a]);i&&!l&&(d=function(){s.undragmove(),v.onmove=[]},v.onmove.push(d),o["default"].on("raphael.drag.end."+s.id,d)),s.dragStartFn=function(e){(0,o["default"])("raphael.drag.start."+s.id,s.dragInfo.start_scope[e]||s.dragInfo.move_scope[e]||s,m,t)}}},s._drag={},Mt.push({el:s,start:s.dragFn,onstart:t,onmove:e,onend:r}),t&&!s.startHandlerAttached&&(R&&!P?s.dragstart(s.dragFn):s.mousedown(s.dragFn),s.startHandlerAttached=!0),s},kt.onDragOver=function(e){e?o["default"].on("raphael.drag.over."+this.id,e):o["default"].unbind("raphael.drag.over."+this.id)},kt.undrag=function(){for(var e=Mt.length;e--;)Mt[e].el===this&&(this.unmousedown(this.dragFn),Mt.splice(e,1),o["default"].unbind("raphael.drag.*."+this.id),this.dragInfo=undefined,this.dragFn=undefined,this.startHandlerAttached=undefined);c.unmousemove.call(this,wt).unmouseup.call(this,_t),c.undragmove.call(this,wt),c.undragend.call(this,_t),delete this._drag},kt.undragstart=function(e){var t,r,n=this.dragInfo,a=n&&n.onstart,i=n&&n.start_scope;if(e)for(t=0,r=a&&a.length;t<r;t++)if(a[t]===e){a.splice(t,1),i.splice(t,1),o["default"].unbind("raphael.drag.start."+this.id,e);break}a&&a.length&&e||(c.undragstart.call(this,this.dragFn),c.unmousedown.call(this,this.dragFn),o["default"].unbind("raphael.drag.start."+this.id),this.startHandlerAttached=!1,n&&(n.onstart=[],n.start_scope=[]))},kt.undragmove=function(e){var t,r,n=this.dragInfo,a=n&&n.onmove,i=n&&n.move_scope;if(e)for(t=0,r=a&&a.length;t<r;t++)if(a[t]===e){a.splice(t,1),i.splice(t,1),o["default"].unbind("raphael.drag.move."+this.id,e);break}a&&a.length&&e||(c.undragmove.call(this,wt),c.unmousemove.call(this,wt),n&&(n.onmove=[],n.move_scope=[]),o["default"].unbind("raphael.drag.move."+this.id))},kt.undragend=function(e){var t,r,n=this.dragInfo,a=n&&n.onend,i=n&&n.end_scope;if(e)for(t=0,r=a&&a.length;t<r;t++)if(a[t]===e){a.splice(t,1),i.splice(t,1),o["default"].unbind("raphael.drag.end."+this.id,e);break}a&&a.length&&e||(c.undragend.call(this,_t),c.unmouseup.call(this,_t),n&&(n.onend=[],n.end_scope=[]),o["default"].unbind("raphael.drag.end."+this.id))},kt.follow=function(e,t,r){return e.removed||e.constructor!==c.el.constructor?this:(e.followers.push({el:this,stalk:r={before:"insertBefore",after:"insertAfter"}[r],cb:t}),r&&this[r](e),this)},kt.unfollow=function(e){if(e.removed||e.constructor!==c.el.constructor)return this;for(var t=0,r=e.followers.length;t<r;t++)if(e.followers[t].el===this){e.followers.splice(t,1);break}return this},K.hide=function(){return this.canvas.style.visibility="hidden",this},K.show=function(){return this.canvas.style.visibility=g,this},K.group=function(){var e=this,t=(0,s.getArrayCopy)(arguments),r=Pe(t,!0),n=c._engine.group(e,t[0],r,!!t[1]);return e.__set__&&e.__set__.push(n),e._elementsById[n.id]=n},K.circle=function(){var e=this,t=(0,s.getArrayCopy)(arguments),r=Pe(t,!0),n=e._addDefAttribs()?Ve(t,"cx",0,"cy",0,"r",0,"fill",k,"stroke","#000"):Ve(t),a=c._engine.circle(e,n,r);return e.__set__&&e.__set__.push(a),e._elementsById[a.id]=a},K.rect=function(){var e=this,t=(0,s.getArrayCopy)(arguments),r=Pe(t,!0),n=e._addDefAttribs()?Ve(t,"x",0,"y",0,"width",0,"height",0,"r",0,"fill",k,"stroke","#000"):Ve(t),a=c._engine.rect(e,n,r);return e.__set__&&e.__set__.push(a),e._elementsById[a.id]=a},K.ellipse=function(){var e=this,t=(0,s.getArrayCopy)(arguments),r=Pe(t,!0),n=e._addDefAttribs()?Ve(t,"x",0,"y",0,"rx",0,"ry",0,"fill",k,"stroke","#000"):Ve(t),a=c._engine.ellipse(this,n,r);return e.__set__&&e.__set__.push(a),e._elementsById[a.id]=a},K.path=function(){var e=this,t=(0,s.getArrayCopy)(arguments),r=Pe(t,!0),n=e.config,a=n&&n["stroke-linecap"]||"butt",i=e._addDefAttribs()?Ve(t,"path",g,"fill",k,"stroke","#000","stroke-linecap",a):Ve(t),o=c._engine.path(e,i,r);return e.__set__&&e.__set__.push(o),e._elementsById[o.id]=o},K.image=function(){var e=this,t=(0,s.getArrayCopy)(arguments),r=Pe(t,!0),n=e._addDefAttribs()?Ve(t,"x",0,"y",0,"width",0,"height",0):Ve(t),a=c._engine.image(e,n,r);return e.__set__&&e.__set__.push(a),e._elementsById[a.id]=a},K.text=function(){var e=this,t=(0,s.getArrayCopy)(arguments),r=Pe(t,!0),n=e._addDefAttribs()?Ve(t,"x",0,"y",0,"text",g,"stroke",k,"fill","#000","text-anchor","middle","vertical-align","middle"):Ve(t),a=c._engine.text(e,n,r,t[1]);return e.__set__&&e.__set__.push(a),e._elementsById[a.id]=a},K._addDefAttribs=function(){return!(c.svg&&this.config&&this.config.noDefaultAttribs)},K.setConfig=function(e,t){return e!==undefined&&t!==undefined&&(this.config=this.config||{},this.config[e]=t),this.config},K._createDOMNodes=function(e,t,r){var n,a,i,o,s={},l=c._createNode,u=t.tagName,d=t.children||[];for(o in!r&&(r={}),t)"tagName"!==o&&"children"!==o&&(s[o]=t[o]);if(!s.id&&(s.id=c.getElementID(c.createUUID())),!this.canvas.getElementById(s.id)&&u)for(n=e.appendChild(l(u,s)),r.element=n,r.id=s.id,(i=d.length)>0&&(r.children=[]),a=0;a<i;a++)r.children[a]={},this._createDOMNodes(n,d[a],r.children[a]);return r},K.addDefs=function(e){if(c.svg){var t,r={},n=this.defs;for(t in e)r[t]={},this._createDOMNodes(n,e[t],r[t]);return r}},K.setSize=function(e,t){return c._engine.setSize.call(this,e,t)},K.setDimension=function(e,t){var r;typeof e===w?(r=e.width,t=e.height,this.setSize(e.width,e.height)):(r=e,this.setSize(r,t))},K.attr=function(e){return null==e?{width:this.width,height:this.height}:c.is(e,x)?this[e]:(this.setDimension(e),this)},K.status=function(e,t){return kt.status.call(this,e,t)},K.animateWith=function(e,t,r,n,a,i,o){return kt.animateWith.call(this,e,t,r,n,a,i,o)},K.animate=function(e,t,r,n){return kt.animate.call(this,e,t,r,n)},K.setViewBox=function(e,t,r,n,a){return c._engine.setViewBox.call(this,e,t,r,n,a)},K.getById=function(e){return this._elementsById[e]||null},K.top=K.bottom=null,K.raphael=c,kt.getBBox=function(e){if(this.removed)return{};var t=this._;return e?(!t.dirty&&t.bboxwt||(this.realPath=Oe[this.type](this),t.bboxwt=et(this.realPath),t.bboxwt.toString=Ft,t.dirty=0),t.bboxwt):((t.dirty||t.dirtyT||!t.bbox)&&(!t.dirty&&this.realPath||(t.bboxwt=0,this.realPath=Oe[this.type](this)),t.bbox=et(Re(this.realPath,this.matrix)),t.bbox.toString=Ft,t.dirty=t.dirtyT=0),t.bbox)},kt.clone=function(e,t){if(this.removed)return null;var r,n,a=this,i=a.attr();if(e){for(r in e)i[r]=e[r];n=a.paper[a.type](i,t)}else n=a.paper[a.type]().attr(i);return a.__set__&&a.__set__.push(n),n};var It=function(e,t,r,n,a,i,o,s,l){return null==l?Qe(e,t,r,n,a,i,o,s):c.findDotsAtSegment(e,t,r,n,a,i,o,s,function(e,t,r,n,a,i,o,s,l){if(!(l<0||Qe(e,t,r,n,a,i,o,s)<l)){var c,u=.5,d=1-u;for(c=Qe(e,t,r,n,a,i,o,s,d);ie(c-l)>.01;)c=Qe(e,t,r,n,a,i,o,s,d+=(c<l?1:-1)*(u/=2));return d}}(e,t,r,n,a,i,o,s,l))},Lt=function(e,t){return function(r,n,a){r=lt(r);for(var i,o,s,l,u,d=g,h={},f=0,p=0,m=r.length;p<m;p++){if((s=r[p])[0]===z)i=+s[1],o=+s[2];else{if(f+(l=It(i,o,s[1],s[2],s[3],s[4],s[5],s[6]))>n){if(t&&!h.start){if(d+=["C"+(u=It(i,o,s[1],s[2],s[3],s[4],s[5],s[6],n-f)).start.x,u.start.y,u.m.x,u.m.y,u.x,u.y],a)return d;h.start=d,d=[z+u.x,u.y+"C"+u.n.x,u.n.y,u.end.x,u.end.y,s[5],s[6]].join(),f+=l,i=+s[5],o=+s[6];continue}if(!e&&!t)return{x:(u=It(i,o,s[1],s[2],s[3],s[4],s[5],s[6],n-f)).x,y:u.y,alpha:u.alpha}}f+=l,i=+s[5],o=+s[6]}d+=s.shift()+s}return h.end=d,(u=e?f:t?h:c.findDotsAtSegment(i,o,s[0],s[1],s[2],s[3],s[4],s[5],1)).alpha&&(u={x:u.x,y:u.y,alpha:u.alpha}),u}},Nt=Lt(1),Dt=Lt();Lt(0,1);c.getTotalLength=Nt,c.getPointAtLength=Dt,kt.getTotalLength=function(){if("path"==this.type)return this.node.getTotalLength?this.node.getTotalLength():Nt(this.attrs.path)},kt.getPointAtLength=function(e){if("path"==this.type)return Dt(this.attrs.path,e)};var Ot=c.easing_formulas={linear:function(e){return e},"<":function(e){return oe(e,1.7)},">":function(e){return oe(e,.48)},"<>":function(e){var t=.48-e/1.04,r=ce(.1734+t*t),n=r-t,a=-r-t,i=oe(ie(n),1/3)*(n<0?-1:1)+oe(ie(a),1/3)*(a<0?-1:1)+.5;return 3*(1-i)*i*i+i*i*i},backIn:function(e){var t=1.70158;return e*e*((t+1)*e-t)},backOut:function(e){var t=1.70158;return(e-=1)*e*((t+1)*e+t)+1},elastic:function(e){return e===!!e?e:oe(2,-10*e)*le(2*de*(e-.075)/.3)+1},bounce:function(e){var t=7.5625,r=2.75;return e<1/r?t*e*e:e<2/r?t*(e-=1.5/r)*e+.75:e<2.5/r?t*(e-=2.25/r)*e+.9375:t*(e-=2.625/r)*e+.984375},oneBounceOut:function(e){return e<=.9?1.33*Ot.easeIn(e):1.2-e/5},elasticOnce:function(e){return e===!!e?e:Math.pow(2,-10*e)*Math.sin((e-.225)*(2*Math.PI)/.9)+1},easeInQuad:function(e){return e*e},easeOutQuad:function(e){return e*(2-e)},easeInOutQuad:function(e){return e<.5?2*e*e:(4-2*e)*e-1},easeInCubic:function(e){return e*e*e},easeOutCubic:function(e){return--e*e*e+1},easeInOutCubic:function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1},easeInQuart:function(e){return e*e*e*e},easeOutQuart:function(e){return 1- --e*e*e*e},easeInOutQuart:function(e){return e<.5?8*e*e*e*e:1-8*--e*e*e*e},easeInQuint:function(e){return e*e*e*e*e},easeOutQuint:function(e){return 1+--e*e*e*e*e},easeInOutQuint:function(e){return e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e}};Ot.easeIn=Ot["ease-in"]=Ot["<"],Ot.easeOut=Ot["ease-out"]=Ot[">"],Ot.easeInOut=Ot["ease-in-out"]=Ot["<>"],Ot["back-in"]=Ot.backIn,Ot["back-out"]=Ot.backOut;var Rt,Pt=[],Vt=function Zt(){for(var e,t,r,n=+new Date,a=0,i=[],s=0;a<Pt.length;a++){var l=Pt[a];if(!(l.el.removed||l.paused||l.parentEl&&l.parentEl.e&&l.parentEl.e.paused)){for(var u,d,h,f=n-l.start,v=l.ms,y=l.easing,x=l.from,C=l.diff,w=l.to,_=(l.t,l.el),k={},E={},A=!c.stopPartialEventPropagation,T=(s=0,l.el&&l.el.animElements&&l.el.animElements.peek());T&&T.pos<=f/v;)i.push(l.el.animElements.deq()),T=l.el.animElements.peek();if(l.initstatus?(f=(l.initstatus*l.anim.top-l.prev)/(l.percent-l.prev)*v,l.status=l.initstatus,delete l.initstatus,l.stop&&(delete l.el,Pt.splice(a--,1))):l.status=(l.prev+(l.percent-l.prev)*(f/v))/l.anim.top,d=v,l.parentEl&&l.parentEl.animElements?(v=l.delayend-l.delaystart,f=l.parentEl.cPos-l.delaystart):l.el.animElements&&(l.el.cPos=f/v),!(f<0))if(f<v){var M=y(f/v);for(var F in v=d,x)if(x[m](F)){switch(Me[F]){case"number":u=+x[F]+M*v*C[F];break;case"colour":if(C[F].length){for(u=[],s=0,I=x[F].length;s<I;++s)0===s?x[F].isRadial||C[F].isRadial?(r="xr(",r+=x[F][0].f1*(1-M)+C[F][0].f1*M||g,r+=",",r+=x[F][0].f2*(1-M)+C[F][0].f2*M||g,r+=",",r+=100*(x[F][0].f3*(1-M)+C[F][0].f3*M)||g,r+="%,",r+=x[F][0].f4*(1-M)+C[F][0].f4*M||g,r+=",",r+=x[F][0].f5*(1-M)+C[F][0].f5*M,r+=",",r+=x[F][0].f6,r+=")",u.push(r)):(u.push(x[F][s]*(1-M)+M*C[F][s]),u[0]<=0&&(u[0]+=360)):u.push("rgba("+[Bt(ue(x[F][s].r+M*v*C[F][s].r)),Bt(ue(x[F][s].g+M*v*C[F][s].g)),Bt(ue(x[F][s].b+M*v*C[F][s].b)),x[F][s].opacity+M*v*C[F][s].opacity].join(",")+"):"+x[F][s].position);u=u.join("-"),(x[F].isRadial||C[F].isRadial)&&(u=u.replace("-",g))}else t=x[F].opacity+M*v*C[F].opacity,isNaN(t)&&(t=1),u="rgba("+[Bt(ue(x[F].r+M*v*C[F].r)),Bt(ue(x[F].g+M*v*C[F].g)),Bt(ue(x[F].b+M*v*C[F].b)),t].join(",")+")";break;case"path":u=[];s=0;for(var I=x[F].length;s<I;s++){var L;u[s]=[x[F][s][0]],L=x[F][s]?x[F][s].length:0;for(var N=1;N<L;N++)u[s][N]=(+x[F][s][N]+M*v*C[F][s][N]).toFixed(4);u[s]=u[s].join(p)}u=u.join(p);break;case"transform":if(C[F].real)for(u=[],s=0,I=x[F].length;s<I;s++)for(u[s]=[x[F][s][0]],N=1,L=x[F][s].length;N<L;N++)u[s][N]=x[F][s][N]+M*v*C[F][s][N];else{var D=function(e){return+x[F][e]+M*v*C[F][e]};u=[[H,D(0),D(1),D(2),D(3),D(4),D(5)]]}break;case"csv":if("clip-rect"===F)for(u=[],s=4;s--;)u[s]=+x[F][s]+M*v*C[F][s];break;case"text-bound":u=[][b](x[F]);break;default:var O=[][b](x[F]);for(u=[],s=_.ca[F].length;s--;)u[s]=+O[s]+M*v*C[F][s]}k[F]=u}_.attr(k),A&&function(e,t,r){setTimeout((function(){(0,o["default"])("raphael.anim.frame."+e,t,r)}))}(_.id,_,l.anim)}else{if(function(e,t,r){setTimeout((function(){A&&(0,o["default"])("raphael.anim.frame."+t.id,t,r),A&&(0,o["default"])("raphael.anim.finish."+t.id,t,r),c.is(e,S)&&e.call(t)}))}(l.callback,_,l.anim),_.attr(w),delete l.el,Pt.splice(a--,1),l.repeat>1&&!l.next){for(h in w)w[m](h)&&(E[h]=l.totalOrigin[h]);l.el.attr(E),$t(l.anim,l.el,l.anim.percents[0],null,l.totalOrigin,l.repeat-1)}l.next&&!l.stop&&$t(l.anim,l.el,l.next,null,l.totalOrigin,l.repeat)}}}for(c.svg&&_&&_.paper&&_.paper.safari(),a=0,e=i.length;a<e;++a)c.getInstantAnimFrameFn()(function(e){return function(){$t.apply(null,i[e].params)}}(a));Pt.length&&(Rt||c.getAnimFrameFn())(Zt)},Bt=function(e){return e>255?255:e<0?0:e},jt=function(e){return e>1&&(e=1),e<0&&(e=0),e};function Gt(e,t,r,n,a,i){var o=3*t,s=3*(n-t)-o,l=1-o-s,c=3*r,u=3*(a-r)-c,d=1-c-u;function h(e){return((l*e+s)*e+o)*e}return function(e,t){var r=function(e,t){var r,n,a,i,c,u;for(a=e,u=0;u<8;u++){if(i=h(a)-e,ie(i)<t)return a;if(ie(c=(3*l*a+2*s)*a+o)<1e-6)break;a-=i/c}if(n=1,(a=e)<(r=0))return r;if(a>n)return n;for(;r<n;){if(i=h(a),ie(i-e)<t)return a;e>i?r=a:n=a,a=(n-r)/2+r}return a}(e,t);return((d*r+u)*r+c)*r}(e,1/(200*i))}function Ht(e,t){var r=[],n={};if(this.ms=t,this.times=1,e){for(var a in e)e[m](a)&&(n[ee(a)]=e[a],r.push(ee(a)));r.sort(Ie)}this.anim=n,this.top=r[r.length-1],this.percents=r}c.getAnimFrameFn=function(){return Rt=c.requestAnimFrame||l.webkitRequestAnimationFrame||l.mozRequestAnimationFrame||l.oRequestAnimationFrame||l.msRequestAnimationFrame||function(e){setTimeout(e,16)}},c.getInstantAnimFrameFn=function(){return c.instantRequestAnimFrame||l.webkitRequestAnimationFrame||l.mozRequestAnimationFrame||l.oRequestAnimationFrame||l.msRequestAnimationFrame||function(e){setTimeout(e,16)}},kt.animateWith=function(e,t,r,n,a,i,o){var s,l=this,u={};for(s in o=o||{})o.hasOwnProperty(s)&&(u[s]=o[s]);if(o=u,l.removed)return i&&i.call(l),l;if(0===n)return c.is(i,S)&&setTimeout((function(){i.call(l)}),0),l.attr(r);var d=r instanceof Ht?r:c.animation(r,n,a,i);o.start=jt(o.start||0),o.end=jt(o.end||1),o.start>=o.end&&(o.start=o.end),!o.from&&o.start>.01?(e.animElements=e.animElements||new He((function(e,t){return t.pos-e.pos})),e.animElements.enq({pos:o.start,attr:o.start===o.end,params:[d,l,d.percents[0],null,l.attr(),undefined,e,{start:o.start,end:o.end,smartMorph:o.smartMorph,hookFn:o.hookFn},r],executeOb:{el:this,attrs:r,callback:i,hookFn:o.hookFn}})):$t(d,l,d.percents[0],null,l.attr(),undefined,e,o);for(var h=0,f=Pt.length;h<f;h++)if(Pt[h].anim===t&&Pt[h].el===e){Pt[f-1].start=Pt[h].start;break}return l},kt.onAnimation=function(e){return e?o["default"].on("raphael.anim.frame."+this.id,e):o["default"].unbind("raphael.anim.frame."+this.id),this},Ht.prototype.delay=function(e){var t=new Ht(this.anim,this.ms);return t.times=this.times,t.del=+e||0,t},Ht.prototype.repeat=function(e){var t=new Ht(this.anim,this.ms);return t.del=this.del,t.times=re.floor(ne(e,0))||1,t};var zt=function Qt(e,t,r){e.isRadial&&!t.isRadial&&(+t[0],t[0]={f1:0,f2:0,f3:0,f4:0,f5:0,f6:g},t.isRadial=!0),r||Qt(t,e,!0)};function Ut(e,t,r){var n,a,i=0,o=0,s=[],l=[],c={},u=0,d=[];if(e=e.constructor===Array?e[0]:e,t=t.constructor===Array?t[0]:t,n=e.split("-"),a=t.split("-"),1===n.length&&1===a.length)return[e,t];for(n=h(n),a=h(a),!n.defaultAngleSet&&a.defaultAngleSet&&(a[0]=n[0]),!a.defaultAngleSet&&n.defaultAngleSet&&(n[0]=a[0]),zt(n,a),i=1,o=n.length;i<o;++i)u=n[i].position,d.push(u);for(i=1,o=a.length;i<o;++i)u=a[i].position,-1===d.indexOf(u)&&d.push(u);for(d.push(0),d.sort((function(e,t){return e-t})),s=[n[0]],i=1,o=d.length;i<o;++i)u=d[i],c=n.getColorAtPosition(u),s.push(c);for(l=[a[0]],i=1,o=d.length;i<o;++i)u=d[i],c=a.getColorAtPosition(u),l.push(c);return s.isRadial=n.isRadial,l.isRadial=a.isRadial,[s,l];function h(e){var t,n=0,a=0,i=0,o=[],s={},l=0,c=0,u=0,d=0,h=0,f=0,p={f1:.5,f2:.5};for(1===e.length&&(e[0]===k&&(e[0]="rgba(0,0,0,0)"),e.unshift(0),e.defaultAngleSet=!0),isNaN(e[0])?~"rx".indexOf(e[0].charAt(0))?(e.isRadial=!0,d=1,-1!==e[0].indexOf(")")&&(d=e[0].indexOf(")"),h=e[0].indexOf("(")+1,f=d,o=e[0].substr(h,f-h).split(","),p.f1=parseFloat(o[0])||0,p.f2=parseFloat(o[1])||0,~o[2].indexOf("%")&&(o[2]=parseFloat(o[2])/100),p.f3=parseFloat(o[2])||0,p.f4=parseFloat(o[3])||0,p.f5=parseFloat(o[4])||0,p.f6=o[5]),e[0]=e[0].substr(f+1),e.unshift(p)):e[0]=0:e[0]=+e[0],n=1,a=e.length;n<a;++n)o=e[n].split(":"),s=r(o[0]),e[n]={},e[n].r=s.r,e[n].g=s.g,e[n].b=s.b,e[n].opacity=s.opacity,e[n].opacity=+e[n].opacity,isNaN(e[n].opacity)&&(e[n].opacity=1),e[n].position=+o[1];if(e.sort((function(e,t){return"number"==typeof e||e.f1?-1:"number"==typeof t||e.f2?1:isNaN(e.position)&&isNaN(t.position)?0:isNaN(e.position)?-1:isNaN(t.position)?1:e.position-t.position})),0!=+e[1].position)if(isNaN(e[1].position))e[1].position=0;else{for(t in s={},e[1])s[t]=e[1][t];for(s.position=0,e.push({}),n=e.length-1;1!==n;--n)e[n]=e[n-1];e[1]=s}if(100!==e[a=e.length-1].position)if(isNaN(e[a].position))e[a].position=100;else{for(t in s={},e[a])s[t]=e[a][t];s.position=100,e.push(s)}for(n=2,a=e.length;n<a;++n)if(!e[n].position){for(l=e[n-1].position,u=1,i=n+1;i<a;++i)if(++u,!isNaN(e[i].position)){c=+e[i].position;break}e[n].position=l+(c-l)/u}return e.getColorAtPosition=function(e){for(var t=-1,r=this.length,n=1,a=this.length,i=0,o=g,s={r:0,g:0,b:0};n<a-1;++n)if(this[n].position<=e&&(t=n,r=n+1),!(this[n].position<e)&&this[n].position>=e){r=n;break}for(o in i=(e-this[t].position)/(this[r].position-this[t].position),isNaN(i)&&(i=0),s)s[o]=Bt((1-i)*this[t][o]+i*this[r][o]);return s.position=e,s.opacity=(1-i)*this[t].opacity+i*this[r].opacity,s},e}}function Xt(e,t){var r,n=[],a=[],i=d(e),o=d(t),s=0,l=0,c=document.createElementNS&&document.createElementNS.bind(document),u=c&&c("http://www.w3.org/2000/svg","path");if(!i||!o||!u)return[e,t];if(function(e,t){var r,n,a=g,i=g;if(u.setAttribute("d","M300 10 L300 300 C50 310,50 640,350 650C600 640,600 310,400 300 L400 10 L295 10"),r=u.getTotalLength(),n=u.getPointAtLength(10),r<1829.1||r>1829.2)return!0;if(300!==Math.round(n.x)||20!==Math.round(n.y))return!0;function o(e){for(var t=e.length;t---1&&e[t].join(g)===e[t-1].join(g);)e.pop()}function s(e){for(var t=g,r=0,n=e.length;r<n;++r)t+=e[r].join(p);return t}if(o(e),o(t),a=s(e),i=s(t),a.split(/[Mm]/).length>2||i.split(/[Mm]/).length>2)return!1;if(e.length===t.length)return!0;return!1}(e,t))return[e,t];if(!e||!t)return[e,t];if(!document.createElementNS)return[e,t];if(i=d(e),o=d(t),-1!==i.join().indexOf("undefined"))return[e,t];if(-1!==o.join().indexOf("undefined"))return[e,t];if(!u.getTotalLength||!u.getPointAtLength)return[e,t];function d(e){var t=[],r=0,n=e.length;if(typeof e===x)return e;for(r=0;r<n;++r){if(!e[r].join)return;r&&e[r+1]&&"M"===e[r+1][0]&&"M"===e[r][0]||t.push(e[r].join(p))}for(r=0,n=(t=(t=t.join(g)).split(/[Mm]/).slice(1)).length;r<n;++r)t[r]="M"+t[r];return t}for(l=Math.max(i.length,o.length),s=0;s<l;++s)r=Wt(i[s],o[s]),i[s]=r[0],o[s]=r[1];function h(e){var t,r=0,n=[];for(t=(e=e||[]).length,r=0;r<t;++r)e[r].length-1&&n.push(e[r].join(p));return n.join(g)}function f(e,t){for(var r=e.length;r---1&&e[r].slice(1).toString()===e[r-1].slice(1).toString();)e.pop();1===e.length&&t&&(e.length=0)}function m(e,t){for(var r,n=[],a=[],i=e.length,o=0,s=0,l=0,c=0,u=t-i;u>=0;)o=e.length-1,e.push(e.slice(o)[0]),--u;for(i=e.length,o=0;o<=t;++o)a.push(Math.round(o/t*i));for(o=0,r=a.length-1;o<r;++o)n.push(e.slice(a[o],a[o+1])),"M"!==n[o][0][0]&&n[o][0][0]!==H&&(l=n[o-1].length-1,s=n[o-1][l][1],c=n[o-1][l][2],n[o].unshift(["M",s,c]));return n}for(s=i.length;s--;)f(i[s],s),i[s].length||i.pop();for(s=o.length;s--;)f(o[s],s),o[s].length||o.pop();for(function(e){var t,r=[],n=[],a=[],s=0,l=!0;if(0!==e){for(e>0?(r=o,l=!1):(e=-e,r=i),s=0,t=r.length;s<t;++s)n.push(1);for(;e--;)--s<0&&(s=t-1),n[s]++;for(s=0;s<t;++s)1===n[s]?a.push(r[s]):a.push.apply(a,m(r[s],n[s]));l?i=a:o=a}}(i.length-o.length),l=Math.max(i.length,o.length),s=0;s<l;++s)r=Wt(h(i[s]),h(o[s])),i[s]=r[0],o[s]=r[1];for(s=0,l=i.length;s<l;++s)n=n.concat(i[s]);for(s=0,l=o.length;s<l;++s)a=a.concat(o[s]);return[n,a]}function Wt(e,t){var r,n,a,i=0,o=[],s=[];function l(e,t){var r,n,a,i,o=0,s={},l=[],c=[],u=0,d=Math.round;for((r=document.createElementNS("http://www.w3.org/2000/svg","path")).setAttribute("d",e),(n=document.createElementNS("http://www.w3.org/2000/svg","path")).setAttribute("d",t),a=r.getTotalLength(),i=n.getTotalLength(),u=.15*Math.max(a,i),(!(u=Math.ceil(u))||!isFinite(u)||u<10)&&(u=10),o=0;o<=u;++o)s=r.getPointAtLength(o/u*a),l.push([o?U:z,d(s.x),d(s.y)]),s=n.getPointAtLength(o/u*i),c.push([o?U:z,d(s.x),d(s.y)]);return[l,c]}for(e&&"M "!==e||(e=t.split(p).slice(0,3).join(p).replace(/[LC]/,g)),t&&"M "!==t||(t=e.split(p).slice(0,3).join(p).replace(/[LC]/,g)),n=function(e,t){var r,n,a,i,o=0,s=0,l=0,c=0,u={},d={},h=[],f=[],m=-1,v=-1,b=!0;function y(e){var t,r=0;for(r=0,t=(e=e.split(/[MCLmcl]/).slice(1)).length;r<t;++r)e[r]=e[r].split(p).slice(1),r||e[r].unshift("M"),r&&(2===e[r].length&&e[r].unshift(U)||e[r].unshift("C"));return e}function x(e,t){var r,n,a=0,i=e.length;for(a=0,i=e.length;a<i;++a)r=e[a].join(p),"C"===(n=e[a])[0]&&n[3]===n[5]&&n[4]===n[6]?e[a].stringValue=[U,n[3],n[4]].join(p):n.stringValue=r,t[n.stringValue]&&t[n.stringValue].push(a),t[n.stringValue]||(t[n.stringValue]=[a])}function C(e,t,r,n,a){for(var i,o=r,s=0,l=0;o<n;++o)if(i=t[e[o].stringValue])for(s=0,l=i.length;s<l;++s)if(i[s]>=a)return{index:o,mapValue:i[s],diff:o-r};return-1}function w(e){var t=e.length-1;return["M",e[t-1],e[t]].join(p)}function _(e){return e.join(g)}for(e=y(e),t=y(t),x(e,u),x(t,d),r=e.length,n=t.length,o=0,s=0;o<r&&s<n;){if(++v,h[++m]=[],f[v]=[],b=e[o].stringValue===t[s].stringValue,o&&(h[m].push(w(e[o-1])),f[v].push(w(t[s-1]))),b)for(;o<r&&s<n&&e[o].stringValue===t[s].stringValue;)h[m].push(e[o].stringValue),f[v].push(t[s].stringValue),++o,++s;else{for(a=C(e,d,o,r,s),i=C(t,u,s,n,o),l=a.index,c=a.mapValue,(!~a||a.diff>i.diff)&&(l=i.mapValue,c=i.index),~a||~i||(l=r-1,c=n-1);o<=l;)h[m].push(e[o].stringValue),++o;for(;s<=c;)f[v].push(t[s].stringValue),++s}h[m]=_(h[m]),f[v]=_(f[v])}if(o<r){for(h[++m]=[],h[m].push(w(e[o-1])),f[++v]=[],f[v].push(w(t[s-1]));o<r;)h[m].push(e[o].stringValue),++o;h[m]=_(h[m])}if(s<n){for(h[++m]=[],h[m].push(w(e[o-1])),f[++v]=[],f[v].push(w(t[s-1]));s<n;)f[v].push(t[s].stringValue),++s;f[v]=_(f[v])}return[h,f]}(e,t),i=0,r=n[0].length;i<r;++i)a=l(n[0][i],n[1][i]),i?(o=o.concat(a[0].slice(1)),s=s.concat(a[1].slice(1))):(o=o.concat(a[0]),s=s.concat(a[1]));return[o,s]}function $t(e,t,r,n,a,i,s,l){r=ee(r);var u,d,h,f,g,p,v,y,C=e.ms,w={},S={},E={};if(null!==t.type){if((l=l||{}).hookFn&&l.hookFn.call(t),l.from=l.from||{},n)for(T=0,M=Pt.length;T<M;T++){var A=Pt[T];if(A.el.id===t.id&&A.anim===e){A.percent!=r?(delete A.el.e,delete A.el,Pt.splice(T,1),h=1):d=A,t.attr(A.totalOrigin);break}}else n=+S;for(var T=0,M=e.percents.length;T<M;T++){if(e.percents[T]===r||e.percents[T]>n*e.top){r=e.percents[T],g=e.percents[T-1]||0,C=C/e.top*(r-g),f=e.percents[T+1],u=e.anim[r];break}n&&t.attr(e.anim[e.percents[T]])}if(u){if(d)d.initstatus=n,d.start=new Date-d.ms*n;else{for(var F in u)if(u[m](F))if(Me[m](F)||t.ca[F]){switch(w[F]=l.from[F]||t.attr(F),null==w[F]&&(w[F]=Te[F]),S[F]=u[F],y=!1,Me[F]){case"number":((v=S[F]-w[F])||isNaN(v))&&(y=!0),E[F]=v/C;break;case"colour":if(w[F]===S[F])break;y=!0;var I=Ut(w[F],S[F],c.getRGB);w[F]=I[0];var L=I[1];if(typeof L===x)w[F].toLowerCase()!==k?(w[F]=c.getRGB(w[F]),w[F].opacity||(w[F].opacity=1)):w[F]={r:0,g:0,b:0,opacity:0},S[F].toLowerCase()!==k?(L=c.getRGB(S[F])).opacity||(L.opacity=1):L={r:0,g:0,b:0,opacity:0},E[F]={r:(L.r-w[F].r)/C,g:(L.g-w[F].g)/C,b:(L.b-w[F].b)/C,opacity:(L.opacity-w[F].opacity)/C};else for(E[F]=[],T=0,M=w[F].length;T<M;++T)0===T?E[F].push(L[0]):E[F].push({r:(L[T].r-w[F][T].r)/C,g:(L[T].g-w[F][T].g)/C,b:(L[T].b-w[F][T].b)/C,opacity:(L[T].opacity-w[F][T].opacity)/C});break;case"path":var N,D=lt(w[F],S[F]);for(l.smartMorph&&(D=Xt(D[0],D[1])),N=D[1],w[F]=D[0],E[F]=[],T=0,M=w[F].length;T<M;T++){var O;E[F][T]=[0],O=w[F][T]?w[F][T].length:0;for(var R=1;R<O;R++)E[F][T][R]=(N[T][R]-w[F][T][R])/C,!y&&E[F][T][R]&&(y=!0)}break;case"transform":var P=t._,V=ht(P[F],S[F]);if(y=!0,V)for(w[F]=V.from,S[F]=V.to,E[F]=[],E[F].real=!0,T=0,M=w[F].length;T<M;T++)for(E[F][T]=[w[F][T][0]],R=1,O=w[F][T].length;R<O;R++)E[F][T][R]=(S[F][T][R]-w[F][T][R])/C;else{var B=t.matrix||new ft,j={_:{transform:P.transform},getBBox:function(){return t.getBBox(1)}};w[F]=[B.a,B.b,B.c,B.d,B.e,B.f],ut(j,S[F]),S[F]=j._.transform,E[F]=[(j.matrix.a-B.a)/C,(j.matrix.b-B.b)/C,(j.matrix.c-B.c)/C,(j.matrix.d-B.d)/C,(j.matrix.e-B.e)/C,(j.matrix.f-B.f)/C]}break;case"csv":var G=Q(u[F])[_](ve),H=Q(w[F])[_](ve);if("clip-rect"===F)for(w[F]=H,E[F]=[],T=H.length;T--;)((v=G[T]-w[F][T])||isNaN(v))&&(y=!0),E[F][T]=v/C;S[F]=G;break;default:for(G=[][b](u[F]),H=[][b](w[F]),E[F]=[],T=t.ca[F].length;T--;)((v=(G[T]||0)-(H[T]||0))||isNaN(v))&&(y=!0),E[F][T]=v/C}y||(delete w[F],delete S[F],delete u[F],delete E[F])}else(c._availableAttrs[m](F)||"text"===F||t.ca[F])&&(t.attr(F,u[F]),delete u[F]);var z=u.easing,U=c.easing_formulas[z];if(!U)if((U=Q(z).match(xe))&&5===U.length){var X=U;U=function(e){return Gt(e,+X[1],+X[2],+X[3],+X[4],C)}}else U=Le;if(p=u.start||e.start||+new Date,t.e=A={anim:e,percent:r,timestamp:p,start:p+(e.del||0),status:0,initstatus:n||0,stop:!1,ms:C,easing:U,from:w,diff:E,to:S,el:t,callback:u.callback,prev:g,next:f,repeat:i||e.times,origin:t.attr(),totalOrigin:a,parentEl:s,delayend:l&&l.end,delaystart:l&&l.start},Pt.push(A),n&&!d&&!h&&(A.stop=!0,A.start=new Date-C*n,1===Pt.length))return Vt();h&&(A.start=new Date-A.ms*n),1===Pt.length&&(Rt||c.getAnimFrameFn())(Vt)}(0,o["default"])("raphael.anim.start."+t.id,t,e)}}}function Yt(e){var t;void 0===e&&(e=this);for(var r=0;r<Pt.length;r++)(t=Pt[r].el.paper)&&t!==e||Pt.splice(r--,1)}c.animation=function(e,t,r,n,a){if(e instanceof Ht)return e;!c.is(r,S)&&r||(n=n||r||null,r=null),!c.stopPartialEventPropagation&&(c.stopPartialEventPropagation=a),e=Object(e),t=+t||0;var i,o,s={};for(o in e)e[m](o)&&ee(o)!=o&&ee(o)+"%"!=o&&(i=!0,s[o]=e[o]);return n&&(i=!0),i?(r&&(s.easing=r),n&&(s.callback=n),new Ht({100:s},t)):new Ht(e,t)},kt.animate=function(e,t,r,n){if(this.removed)return n&&n.call(this),this;var a=e instanceof Ht?e:c.animation(e,t,r,n);return $t(a,this,a.percents[0],null,this.attr()),this},kt.status=function(e,t){var r,n,a=[],i=0;if(null!=t)return $t(e,this,-1,ae(t,1)),this;for(r=Pt.length;i<r;i++)if((n=Pt[i]).el.id===this.id&&(!e||n.anim===e)){if(e)return n.status;a.push({anim:n.anim,status:n.status})}return e?0:a},kt.pause=function(e,t){var r,n,a=+new Date;for(n=0;n<Pt.length;n++)!((r=Pt[n]).el.id===this.id||t&&r.parentEl&&r.parentEl.e.el&&r.parentEl.e.el.id===this.id)||e&&r.anim!==e||!1!==(0,o["default"])("raphael.anim.pause."+this.id,this,r.anim)&&(r.paused=!0,r.pauseStart=a);return this},kt.resume=function(e,t){var r,n,a=+new Date;for(n=0;n<Pt.length;n++)!((r=Pt[n]).el.id===this.id||t&&r.parentEl&&r.parentEl.e.el&&r.parentEl.e.el.id===this.id)||e&&r.anim!==e||!1!==(0,o["default"])("raphael.anim.resume."+this.id,this,r.anim)&&(delete r.paused,r.el.status(r.anim,r.status),r.pauseEnd=a,r.start+=(r.parentEl&&r.parentEl.e.pauseEnd||r.pauseEnd)-(r.parentEl&&r.parentEl.e.pauseStart||r.pauseStart)||0);return this},kt.stop=function(e,t,r){var n,a;if(t)for(i=Pt.length-1;i>=0;i--)!((n=Pt[i]).el.id===this.id||n.parentEl&&n.parentEl.id===this.id)||e&&Pt[i].anim!==e||(a=n.el,r&&a.attr(n.to),n.callback&&n.callback.call(a),delete a.e,delete n.el,Pt.splice(i,1));else for(var i=0;i<Pt.length;i++)(n=Pt[i]).el.id!==this.id||e&&n.anim!==e||!1!==(0,o["default"])("raphael.anim.stop."+this.id,this,n.anim)&&Pt.splice(i--,1);return this.animElements&&function(e){var t;for(;t=e.deq();)(t=t.executeOb).hookFn&&t.hookFn.call(t.el),t.el.attr(t.attrs),t.callback&&t.callback.call(t.el)}(this.animElements),this},o["default"].on("raphael.remove",Yt),o["default"].on("raphael.clear",Yt),kt.toString=function(){return"Raphaël’s object"},kt.toFront=function(){if(this.removed)return this;var e,t,r,n=this,a=c._engine.getNode(n),i=n.parent,o=n.followers;for(c._tofront(n,i)&&i.canvas.appendChild(a),t=0,r=o.length;t<r;t++)(e=o[t]).stalk&&e.el[e.stalk](n);return n},kt.toBack=function(){if(this.removed)return this;var e,t,r,n=this,a=c._engine.getNode(n),i=n.parent,o=n.followers;for(c._toback(n,i)&&i.canvas.insertBefore(a,i.canvas.firstChild),t=0,r=o.length;t<r;t++)(e=o[t]).stalk&&e.el[e.stalk](n);return n},kt.insertAfter=function(e){if(this.removed)return this;var t,r,n,a=this,i=c._engine.getNode(a),o=c._engine.getLastNode(e),s=e.parent.canvas,l=a.followers;for(o.nextSibling?s.insertBefore(i,o.nextSibling):s.appendChild(i),c._insertafter(a,e,a.parent,e.parent),r=0,n=l.length;r<n;r++)(t=l[r]).stalk&&t.el[t.stalk](e);return a},kt.insertBefore=function(e){if(this.removed)return this;var t,r,n,a=this,i=c._engine.getNode(a),o=c._engine.getNode(e),s=a.followers;for(e.parent.canvas.insertBefore(i,o),c._insertbefore(a,e,a.parent,e.parent),a.parent=e.parent,r=0,n=s.length;r<n;r++)(t=s[r]).stalk&&t.el[t.stalk](e);return this},kt.appendChild=function(e){if(this.removed||"group"!==this.type)return this;var t,r,n,a,i=this.followers;if(e.parent===this)return e.toFront(),this;for(r=c._engine.getNode(e),c._tear(e,e.parent),this.canvas.appendChild(r),e.parent=this,!this.bottom&&(this.bottom=e),e.prev=this.top,e.next=null,this.top&&(this.top.next=e),this.top=e,n=0,a=i.length;n<a;n++)(t=i[n]).stalk&&t.el[t.stalk](e);return this},kt.appendTo=function(e){return e.appendChild(this)},kt.removeChild=function(e){if(this.removed||"group"!==this.type||e.parent!==this)return this;var t=this,r=c._engine.getNode(e),n=t.paper;return c._tear(e,t),n.canvas.appendChild(r),t.parent=n,!n.bottom&&(n.bottom=t),t.prev=n.top,n.top&&(n.top.next=t),n.top=t,t.next=null,t},c.format=function(e,t){var r=(0,s.getArrayCopy)(arguments),n=c.is(t,C)?[0][b](t):r;return e&&c.is(e,x)&&n.length-1&&(e=e.replace(be,(function(e,t){return null==n[++t]?g:n[t]}))),e||g};var qt=c.vml?.5:0;c.crispBound=(0,s.cacher)((function(e,t,r,n,a){var i,o={};return e=e||0,t=t||0,r=r||0,n=n||0,i=(a=a||0)%2/2+qt,o.x=ue(e+i)-i,o.y=ue(t+i)-i,o.width=ue(e+r+i)-i-o.x,o.height=ue(t+n+i)-i-o.y,o["stroke-width"]=a,0===o.width&&0!==r&&(o.width=1),0===o.height&&0!==n&&(o.height=1),o}),c),kt.crisp=function(){var e,t=this,r=t.attrs,n=t.attr();for(e in n=c.crispBound(n.x,n.y,n.width,n.height,n["stroke-width"]))r[e]===n[e]&&delete n[e];return t.attr(n)},c.define=function(e,t,r,n,a,i){var o,l;if(c.is(e,C))for(o=0,l=e.length;o<l;o++)c.define(e[o]);else if(c.is(e,w))c.define(e.name,e[e.name],e.ca,e.fn,e.e,e.data);else if(e&&!c.fn[e])return c.fn[e]=function(){var i,o=(0,s.getArrayCopy)(arguments),l=t.apply(this,o);if(n&&c.is(n,w))for(i in n)l[i]=n[i];if(a&&c.is(a,w))for(i in a)l[i]&&l[i](a[i]);if(r){if(c.is(r,S))l.ca[e]=r;else for(i in r)l.ca[i]=r[i];l.ca[e]&&(c._lastArgIfGroup(o,!0),o.length&&(o[0][e]?l.attr.apply(l,o):l.attr(e,o[0])))}return l},r&&(c.fn[e].ca=r),n&&(c.fn[e].fn=n),a&&(c.fn[e].e=a),i&&(c.fn[e].data=i),c.fn[e]},function(e,t,r){null==e.readyState&&e.addEventListener&&(e.addEventListener("DOMContentLoaded",r=function(){e.removeEventListener("DOMContentLoaded",r,!1),e.readyState="complete"},!1),e.readyState="loading"),function n(){/in/.test(e.readyState)?setTimeout(n,9):c.eve("raphael.DOMload")}()}(L),o["default"].on("raphael.DOMload",(function(){u=!0})),c._preload=function(e,t){var r=I.doc,n=r.createElement("img");n.style.cssText="position:absolute;left:-9999em;top:-9999em",n.onload=function(){t.call(this),this.onload=null,r.body.removeChild(this)},n.onerror=function(){r.body.removeChild(this)},r.body.appendChild(n),n.src=e};var Kt=c;t["default"]=Kt}).call(this,r(6))},function(e,t,r){"use strict";(function(e){t.__esModule=!0,t["default"]=void 0;var n=r(187),a=function(e){var t,r,a="hasOwnProperty",i=/[\.\/]/,o=/\s*,\s*/,s=function(e,t){return e-t},l={n:{}},c=function(){for(var e=0,t=this.length;e<t;e++)if("undefined"!=typeof this[e])return this[e]},u=function(){for(var e=this.length;--e;)if("undefined"!=typeof this[e])return this[e]},d=Object.prototype.toString,h=String,f=Array.isArray||function(e){return e instanceof Array||"[object Array]"==d.call(e)};function g(e,a){var i,o=r,l=(0,n.getArrayCopy)(arguments),d=Array.prototype.slice.call(l,2),h=g.listeners(e),f=0,p=[],m={},v=[],b=t;v.firstDefined=c,v.lastDefined=u,t=e,r=0;for(var y=0,x=h.length;y<x;y++)"zIndex"in h[y]&&(p.push(h[y].zIndex),h[y].zIndex<0&&(m[h[y].zIndex]=h[y]));for(p.sort(s);p[f]<0;)if(i=m[p[f++]],v.push(i.apply(a,d)),r)return r=o,v;for(y=0;y<x;y++)if("zIndex"in(i=h[y]))if(i.zIndex==p[f]){if(v.push(i.apply(a,d)),r)break;do{if((i=m[p[++f]])&&v.push(i.apply(a,d)),r)break}while(i)}else m[i.zIndex]=i;else if(v.push(i.apply(a,d)),r)break;return r=o,t=b,v}return g._events=l,g.listeners=function(e){var t,r,n,a,o,s,c,u,d=f(e)?e:e.split(i),h=l,g=[h],p=[];for(a=0,o=d.length;a<o;a++){for(u=[],s=0,c=g.length;s<c;s++)for(r=[(h=g[s].n)[d[a]],h["*"]],n=2;n--;)(t=r[n])&&(u.push(t),p=p.concat(t.f||[]));g=u}return p},g.separator=function(e){e?(e="["+(e=h(e).replace(/(?=[\.\^\]\[\-])/g,"\\"))+"]",i=new RegExp(e)):i=/[\.\/]/},g.on=function(e,t){if("function"!=typeof t)return function(){};for(var r=f(e)?f(e[0])?e:[e]:h(e).split(o),n=0,a=r.length;n<a;n++)!function(e){for(var r,n=f(e)?e:h(e).split(i),a=l,o=0,s=n.length;o<s;o++)a=(a=a.n).hasOwnProperty(n[o])&&a[n[o]]||(a[n[o]]={n:{}});for(a.f=a.f||[],o=0,s=a.f.length;o<s;o++)if(a.f[o]==t){r=!0;break}!r&&a.f.push(t)}(r[n]);return function(e){+e==+e&&(t.zIndex=+e)}},g.f=function(e){var t=(0,n.getArrayCopy)(arguments),r=[].slice.call(t,1);return function(){g.apply(null,[e,null].concat(r).concat([].slice.call(t,0)))}},g.stop=function(){r=1},g.nt=function(e){var r=f(t)?t.join("."):t;return e?new RegExp("(?:\\.|\\/|^)"+e+"(?:\\.|\\/|$)").test(r):r},g.nts=function(){return f(t)?t:t.split(i)},g.off=g.unbind=function(e,t){if(e){var r=f(e)?f(e[0])?e:[e]:h(e).split(o);if(r.length>1)for(var n=0,s=r.length;n<s;n++)g.off(r[n],t);else{r=f(e)?e:h(e).split(i);var c,u,d,p,m,v=[l],b=[];for(n=0,s=r.length;n<s;n++)for(p=0;p<v.length;p+=d.length-2){if(d=[p,1],c=v[p].n,"*"!=r[n])c[r[n]]&&(d.push(c[r[n]]),b.unshift({n:c,name:r[n]}));else for(u in c)c[a](u)&&(d.push(c[u]),b.unshift({n:c,name:u}));v.splice.apply(v,d)}for(n=0,s=v.length;n<s;n++)for(c=v[n];c.n;){if(t){if(c.f){for(p=0,m=c.f.length;p<m;p++)if(c.f[p]==t){c.f.splice(p,1);break}!c.f.length&&delete c.f}for(u in c.n)if(c.n[a](u)&&c.n[u].f){var y=c.n[u].f;for(p=0,m=y.length;p<m;p++)if(y[p]==t){y.splice(p,1);break}!y.length&&delete c.n[u].f}}else for(u in delete c.f,c.n)c.n[a](u)&&c.n[u].f&&delete c.n[u].f;c=c.n}e:for(n=0,s=b.length;n<s;n++){for(u in(c=b[n]).n[c.name].f)continue e;for(u in c.n[c.name].n)continue e;delete c.n[c.name]}}}else g._events=l={n:{}}},g.once=function(e,t){return g.on(e,(function r(){return g.off(e,r),t.apply(this,arguments)}))},g.version="0.5.3",g.toString=function(){return"You are running Eve 0.5.3"},e.eve=g,g}("undefined"!=typeof window?window:void 0!==e?e:null);t["default"]=a}).call(this,r(6))},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(214)),i={extension:function(e){(0,a["default"])(e.getDep("redraphael","plugin"))},name:"redraphaelSvg",type:"plugin",requiresFusionCharts:!0};t["default"]=i},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=function(e){if(e.svg){var t="hasOwnProperty",r="vertical-align",a="function",i={visibility:"hidden","font-size":"0px"},o=String,s=parseFloat,l=parseInt,c={top:0,bottom:-1,middle:-.5},u=e._g.win.navigator,d=!!document.documentMode,h=Math,f=h.max,g=h.abs,p=h.pow,m=h.sqrt,v=/^xlink:/,b=/[, ]+/,y=/\n|<br\s*?\/?>/i,x=/<|>|<br/i,C=/ | | /g,w=Array.prototype.shift,_=!(!/AppleWebKit/.test(u.userAgent)||/Chrome/.test(u.userAgent)&&!(u.appVersion.match(/Chrome\/(\d+)\./)[1]<29)),k=e.eve,S="",E=" ",A="http://www.w3.org/1999/xlink",T="http://www.w3.org/2000/svg",M=(!!u.platform&&/iPad|iPhone|iPod/.test(u.platform),{block:"M5,0 0,2.5 5,5z",classic:"M5,0 0,2.5 5,5 3.5,3 3.5,2z",diamond:"M2.5,0 5,2.5 2.5,5 0,2.5z",open:"M6,1 1,3.5 6,6",oval:"M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z"}),F={speed:"optimizeSpeed",crisp:"crispEdges",precision:"geometricPrecision"},I=u.userAgent.toLowerCase(),L=!(!(ie=-1!=I.indexOf("msie")&&parseInt(I.split("msie")[1]))||9!==ie),N=e.supportsPointer,D=e.supportsTouch,O={},R=function(t,r,n,a){e._preload(n[1],(function(){var e=this.offsetWidth,n=this.offsetHeight;z(t,{width:e,height:n}),z(r,{width:e,height:n}),a.safari()}))},P=function(e,t){if(t)for(var r in t)e[r]=t[r]},V={elementInfo:[]},B=e._g.doc,j=(e._g.win,{mouseover:"touchstart",mousedown:"touchstart",mouseup:"touchend",mousemove:"touchmove",mouseout:"touchend"}),G={"accent-height":!0,accumulate:!0,additive:!0,"alignment-baseline":!0,alphabetic:!0,amplitude:!0,"arabic-form":!0,ascent:!0,azimuth:!0,"baseline-shift":!0,bbox:!0,begin:!0,bias:!0,by:!0,"cap-height":!0,"class":!0,clip:!0,"clip-path":!0,"clip-rule":!0,color:!0,"color-interpolation":!0,"color-interpolation-filters":!0,"color-profile":!0,"color-rendering":!0,cursor:!0,cx:!0,cy:!0,d:!0,decelerate:!0,descent:!0,direction:!0,display:!0,divisor:!0,"dominant-baseline":!0,dur:!0,dx:!0,dy:!0,elevation:!0,"enable-background":!0,end:!0,exponent:!0,fill:!0,"fill-opacity":!0,"fill-rule":!0,filter:!0,"flood-color":!0,"flood-opacity":!0,"font-family":!0,"font-size":!0,"font-size-adjust":!0,"font-stretch":!0,"font-style":!0,"font-variant":!0,"font-weight":!0,format:!0,fr:!0,from:!0,fx:!0,fy:!0,g1:!0,g2:!0,"glyph-name":!0,"glyph-orientation-horizontal":!0,"glyph-orientation-vertical":!0,hanging:!0,height:!0,"horiz-adv-x":!0,"horiz-origin-x":!0,href:!0,hreflang:!0,id:!0,ideographic:!0,"image-rendering":!0,in2:!0,"in":!0,intercept:!0,k1:!0,k2:!0,k3:!0,k4:!0,k:!0,kerning:!0,lang:!0,"letter-spacing":!0,"lighting-color":!0,local:!0,"marker-end":!0,"marker-mid":!0,"marker-start":!0,mask:!0,mathematical:!0,max:!0,media:!0,method:!0,min:!0,mode:!0,name:!0,offset:!0,opacity:!0,operator:!0,order:!0,orient:!0,orientation:!0,origin:!0,overflow:!0,"overline-position":!0,"overline-thickness":!0,"paint-order":!0,"panose-1":!0,path:!0,ping:!0,"pointer-events":!0,points:!0,r:!0,radius:!0,rel:!0,"rendering-intent":!0,restart:!0,result:!0,rotate:!0,rx:!0,ry:!0,scale:!0,seed:!0,"shape-rendering":!0,slope:!0,spacing:!0,speed:!0,stemh:!0,stemv:!0,"stop-color":!0,"stop-opacity":!0,"strikethrough-position":!0,"strikethrough-thickness":!0,string:!0,stroke:!0,"stroke-dasharray":!0,"stroke-dashoffset":!0,"stroke-linecap":!0,"stroke-linejoin":!0,"stroke-miterlimit":!0,"stroke-opacity":!0,"stroke-width":!0,style:!0,tabindex:!0,target:!0,"text-anchor":!0,"text-decoration":!0,"text-rendering":!0,to:!0,transform:!0,type:!0,u1:!0,u2:!0,"underline-position":!0,"underline-thickness":!0,unicode:!0,"unicode-bidi":!0,"unicode-range":!0,"units-per-em":!0,"v-alphabetic":!0,"v-hanging":!0,"v-ideographic":!0,"v-mathematical":!0,values:!0,"vector-effect":!0,version:!0,"vert-adv-y":!0,"vert-origin-x":!0,"vert-origin-y":!0,visibility:!0,width:!0,widths:!0,"word-spacing":!0,"writing-mode":!0,x1:!0,x2:!0,x:!0,"x-height":!0,"xlink:actuate":!0,"xlink:arcrole":!0,"xlink:href":!0,"xlink:role":!0,"xlink:show":!0,"xlink:title":!0,"xlink:type":!0,"xml:base":!0,"xml:lang":!0,"xml:space":!0,y1:!0,y2:!0,y:!0,z:!0};D&&B.addEventListener(N?"pointerover":"touchstart",(function(e){if(V.srcElement&&V.srcElement!==(e.srcElement||e.target)){var t,r,n,a=(t=V.elementInfo).length;for(n=0;n<a;n++)(r=t[n]).callback.call(r.el,e)}V={elementInfo:[]}}),!0),e.toString=function(){return"Your browser supports SVG.\nYou are running Raphaël "+this.version},e._url=S;var H=function(e,t,r){void 0===r&&(r="fill");var n="fill"===r?e.gradient:e["stroke-gradient"];if(n){if(n===t)return;n.refCount--,n.refCount||n.parentNode.removeChild(n),"fill"===r?delete e.gradient:delete e["stroke-gradient"]}t&&("fill"===r?e.gradient=t:e["stroke-gradient"]=t,t.refCount++)},z=e._createNode=function(t,r){var n,a;if("string"==typeof t&&(t=e._g.doc.createElementNS(T,t)),r)for(n in r)a=L?o(r[n]):r[n],v.test(n)?t.setAttributeNS(A,n.replace(v,S),a):t.setAttribute(n,a);return t},U={userSpaceOnUse:"userSpaceOnUse",objectBoundingBox:"objectBoundingBox"},X={pad:"pad",redlect:"reflect",repeat:"repeat"},W=function(t,r,n){var a;if(void 0===n&&(n="fill"),!t.paper||!t.paper.defs)return 0;var i,l,c,u,d,v,b="linear",y=t.paper,x=e.getElementID((y.id+"-"+r).replace(/[()\s%:,\xb0#]/g,"_")),C=.5,w=.5,_=t.node,k=_.style,E=e._g.doc.getElementById(x);if(!E){if(r=(r=o(r).replace(e._radial_gradient,(function(e,t){b="radial",t=t?t.split(","):[],u=t[5],d=t[6];var r,n,a=t[0],o=t[1],h=t[2],f=t[3],g=t[4],v=a&&o;return h&&(i=/%/.test(h)?h:s(h)),u===U.userSpaceOnUse?(v&&(C=a,w=o),f&&g&&(l=f,c=g,v||(C=l,w=c)),S):(v&&(C=s(a),r=2*((w=s(o))>.5)-1,(n=p(C-.5,2))+p(w-.5,2)>.25&&n<.25&&(w=m(.25-n)*r+.5)&&.5!==w&&(w=w.toFixed(5)-1e-5*r)),f&&g&&(l=s(f),r=2*((c=s(g))>.5)-1,(n=p(l-.5,2))+p(c-.5,2)>.25&&n<.25&&(c=m(.25-n)*r+.5)&&.5!==c&&(c=c.toFixed(5)-1e-5*r),v||(C=l,w=c)),S)}))).split(/\s*-\s*/),"linear"===b){var A,T=r.shift(),M=T.match(/\((.*)\)/);if(M=M&&M[1]&&M[1].split(/\s*,\s*/),T=-s(T),isNaN(T))return null;M&&M.length?(M[0]in U?(u=M.shift(),M[0]in X&&(d=M.shift())):(M[4]&&(u=M[4]),M[5]&&(d=M[5])),v=[M[0]||"0%",M[1]||"0%",M[2]||"100%",M[3]||"0%"]):(v=[0,0,h.cos(e.rad(T)),h.sin(e.rad(T))],A=1/(f(g(v[2]),g(v[3]))||1),v[2]*=A,v[3]*=A,v[2]<0&&(v[0]=-v[2],v[2]=0),v[3]<0&&(v[1]=-v[3],v[3]=0))}var F=e._parseDots(r);if(!F)return null;(E=z(b+"Gradient",{id:x})).refCount=0,u in U&&E.setAttribute("gradientUnits",o(u)),d in X&&E.setAttribute("spreadMethod",o(d)),"radial"===b?(i!==undefined&&E.setAttribute("r",o(i)),l!==undefined&&c!==undefined&&(E.setAttribute("cx",o(l)),E.setAttribute("cy",o(c))),E.setAttribute("fx",o(C)),E.setAttribute("fy",o(w))):z(E,{x1:v[0],y1:v[1],x2:v[2],y2:v[3]});for(var I=0,L=F.length;I<L;I++)E.appendChild(z("stop",{offset:F[I].offset?F[I].offset:I?"100%":"0%","stop-color":F[I].color||"#fff","stop-opacity":F[I].opacity===undefined?1:F[I].opacity}));y.defs.appendChild(E)}return H(t,E,n),z(_,((a={})[n]="url('"+e._url+"#"+x+"')",a[n+"-opacity"]=1,a)),k.fill=S,1},$=function(e){var t=e.getBBox(1);z(e.pattern,{patternTransform:e.matrix.invert()+" translate("+t.x+","+t.y+")"})},Y=function(r,n,a){if("path"==r.type){for(var i,s,l,c,u,d=o(n).toLowerCase().split("-"),h=r.paper,f=a?"end":"start",g=r.node,p=r.attrs,m=p["stroke-width"],v=d.length,b="classic",y=3,x=3,C=5;v--;)switch(d[v]){case"block":case"classic":case"oval":case"diamond":case"open":case"none":b=d[v];break;case"wide":x=5;break;case"narrow":x=2;break;case"long":y=5;break;case"short":y=2}if("open"==b?(y+=2,x+=2,C+=2,l=1,c=a?4:1,u={fill:"none",stroke:p.stroke}):(c=l=y/2,u={fill:p.stroke,stroke:"none"}),r._.arrows?a?(r._.arrows.endPath&&O[r._.arrows.endPath]--,r._.arrows.endMarker&&O[r._.arrows.endMarker]--):(r._.arrows.startPath&&O[r._.arrows.startPath]--,r._.arrows.startMarker&&O[r._.arrows.startMarker]--):r._.arrows={},"none"!=b){var w="raphael-marker-"+b,_="raphael-marker-"+f+b+y+x+"-obj"+r.id;e._g.doc.getElementById(w)?O[w]++:(h.defs.appendChild(z(z("path"),{"stroke-linecap":"round",d:M[b],id:w})),O[w]=1);var k,E=e._g.doc.getElementById(_);E?(O[_]++,k=E.getElementsByTagName("use")[0]):(E=z(z("marker"),{id:_,markerHeight:x,markerWidth:y,orient:"auto",refX:c,refY:x/2}),k=z(z("use"),{"xlink:href":"#"+w,transform:(a?"rotate(180 "+y/2+" "+x/2+") ":S)+"scale("+y/C+","+x/C+")","stroke-width":(1/((y/C+x/C)/2)).toFixed(4)}),E.appendChild(k),h.defs.appendChild(E),O[_]=1),z(k,u);var A=l*("diamond"!=b&&"oval"!=b);a?(i=r._.arrows.startdx*m||0,s=e.getTotalLength(p.path)-A*m):(i=A*m,s=e.getTotalLength(p.path)-(r._.arrows.enddx*m||0)),(u={})["marker-"+f]="url('"+e._url+"#"+_+"')",(s||i)&&(u.d=e.getSubpath(p.path,i,s)),z(g,u),r._.arrows[f+"Path"]=w,r._.arrows[f+"Marker"]=_,r._.arrows[f+"dx"]=A,r._.arrows[f+"Type"]=b,r._.arrows[f+"String"]=n}else a?(i=r._.arrows.startdx*m||0,s=e.getTotalLength(p.path)-i):(i=0,s=e.getTotalLength(p.path)-(r._.arrows.enddx*m||0)),r._.arrows[f+"Path"]&&z(g,{d:e.getSubpath(p.path,i,s)}),delete r._.arrows[f+"Path"],delete r._.arrows[f+"Marker"],delete r._.arrows[f+"dx"],delete r._.arrows[f+"Type"],delete r._.arrows[f+"String"];for(u in O)if(O[t](u)&&!O[u]){var T=e._g.doc.getElementById(u);T&&T.parentNode.removeChild(T)}}},q={"":["none"],none:["none"],"-":[3,1],".":[1,1],"-.":[3,1,1,1],"-..":[3,1,1,1,1,1],". ":[1,3],"- ":[4,3],"--":[8,3],"- .":[4,3,1,3],"--.":[8,3,1,3],"--..":[8,3,1,3,1,3]},K=function(t,r,n){if(r!==undefined){var a,i,o,s,l,c=q[r.toLowerCase&&r.toLowerCase()];if(r=c||[].concat(r),e.is(r,"array")){if(o={round:i=n["stroke-width"]||t.attrs["stroke-width"]||1,square:i,butt:0}[n["stroke-linecap"]||t.attrs["stroke-linecap"]]||0,s=r.length,l=c?i:1,"none"===r[0])a=r;else for(a=[];s--;)a[s]=r[s]*l+(s%2?1:-1)*o,a[s]<=0&&(a[s]=.01+(i<=1?o:0)),isNaN(a[s])&&(a[s]=0);return{"stroke-dasharray":a.join(",")}}}},J=e._setFillAndStroke=function(r,a){if(r.paper.canvas){var i,s,c,u,d,h,p=r.node,m=r.attrs,v=r.paper,y={},x={},C={"clip-rect":!0};for(s in"image"===r.type&&(0,n.loadRefImage)(r,a),a)if(s in e._availableAttrs)if((c=a[s])===S&&s in m)delete m[s],p.removeAttribute("src"===s?"href":s);else if(null!==c||C[s])switch(m[s]=c,s){case"blur":r.blur(c);break;case"href":case"title":case"target":var w=p.parentNode;if("a"!==w.tagName.toLowerCase()){if(c===S)break;var k=z("a");k.raphael=!0,k.raphaelid=p.raphaelid,w.insertBefore(k,p),k.appendChild(p),w=k}"target"===s?w.setAttributeNS(A,"show","blank"===c?"new":c):w.setAttributeNS(A,s,c),p.titleNode=w;break;case"cursor":x.cursor=c;break;case"transform":r.transform(c);break;case"rotation":e.is(c,"array")?r.rotate.apply(r,c):r.rotate(c);break;case"arrow-start":Y(r,c);break;case"arrow-end":Y(r,c,1);break;case"clip-path":u=!0;case"clip-rect":if(h=!u&&o(c).split(b),r._.clipispath=!!u,u||4===h.length){r.clip&&r.clip.parentNode.parentNode.removeChild(r.clip.parentNode);var E=z(u?"path":"rect");(i=z("clipPath")).id=e.getElementID(e.createUUID()),z(E,u?{d:c?m["clip-path"]=e._pathToAbsolute(c):e._availableAttrs.path,fill:"none"}:{x:h[0],y:h[1],width:h[2],height:h[3],transform:r.matrix.invert()}),i.appendChild(E),v.defs.appendChild(i),y["clip-path"]="url('"+e._url+"#"+i.id+"')",r.clip=E}if(!c){var T=p.getAttribute("clip-path");if(T){var M=e._g.doc.getElementById(T.replace(/(^url\(#|\)$)/g,S));M&&M.parentNode.removeChild(M),y["clip-path"]=S,11===document.documentMode&&p.removeAttribute("clip-path"),delete r.clip}}break;case"path":"path"===r.type&&(y.d=c?m.path=e._stopabsolutePath?e.sanitizePath(c):e._pathToAbsolute(c):e._availableAttrs.path,r._.dirty=1,r._.arrows&&("startString"in r._.arrows&&Y(r,r._.arrows.startString),"endString"in r._.arrows&&Y(r,r._.arrows.endString,1)));break;case"width":if(y[s]=c,r._.dirty=1,!m.fx)break;s="x",c=m.x;case"x":m.fx&&(c=-m.x-(m.width||0));case"rx":if("rx"===s&&"rect"===r.type)break;case"cx":y[s]=c,r.pattern&&$(r),r._.dirty=1;break;case"height":if(y[s]=c,r._.dirty=1,!m.fy)break;s="y",c=m.y;case"y":if("text"===r.type)break;m.fy&&(c=-m.y-(m.height||0));case"ry":if("ry"===s&&"rect"===r.type)break;case"cy":y[s]=c,r.pattern&&$(r),r._.dirty=1;break;case"r":"rect"===r.type?y.rx=y.ry=c:y[s]=c,r._.dirty=1;break;case"src":"image"===r.type&&p.setAttributeNS(A,"href",c);break;case"stroke-width":1===r._.sx&&1===r._.sy||(c/=f(g(r._.sx),g(r._.sy))||1),v._vbSize&&(c*=v._vbSize),_&&0===c&&(c=1e-6),y[s]=c,!a["stroke-dasharray"]&&m["stroke-dasharray"]&&""!==a["stroke-dasharray"]&&P(y,K(r,m["stroke-dasharray"],a)),r._.arrows&&("startString"in r._.arrows&&e.addArrow&&e.addArrow(r,r._.arrows.startString),"endString"in r._.arrows&&e.addArrow&&e.addArrow(r,r._.arrows.endString,1));break;case"stroke-dasharray":P(y,K(r,c,a));break;case"fill":if(e._ISURL.test(c)){d=c.split(e._ISURL),i=z("pattern");var I=z("image");i.id=e.getElementID(e.createUUID()),z(i,{x:0,y:0,patternUnits:"userSpaceOnUse",height:1,width:1}),z(I,{x:0,y:0,"xlink:href":d[1]}),i.appendChild(I),R(i,I,d,v),v.defs.appendChild(i),y.fill="url('"+e._url+d[1]+"')",r.pattern=i,r.pattern&&$(r);break}var L=e.getRGB(c);if(L.error){if(("circle"===r.type||"ellipse"===r.type||"r"!==o(c).charAt())&&W(r,c)){m.gradient=c;break}}else delete a.gradient,delete m.gradient,!e.is(m["fill-opacity"],"undefined")&&e.is(a["fill-opacity"],"undefined")&&(y["fill-opacity"]=m["fill-opacity"]),r.gradient&&H(r);L[t]("opacity")?(y["fill-opacity"]=L.opacity>1?L.opacity/100:L.opacity,r._.fillOpacityDirty=!0):r._.fillOpacityDirty&&e.is(m["fill-opacity"],"undefined")&&e.is(a["fill-opacity"],"undefined")&&(p.removeAttribute("fill-opacity"),delete r._.fillOpacityDirty);case"stroke":(L=e.getRGB(c)).error?"circle"!==r.type&&"ellipse"!==r.type&&"r"===o(c).charAt()||W(r,c,"stroke"):(y[s]=L.hex,H(r,void 0,s)),"stroke"===s&&(L[t]("opacity")?(y["stroke-opacity"]=L.opacity>1?L.opacity/100:L.opacity,r._.strokeOpacityDirty=!0):r._.strokeOpacityDirty&&e.is(m["stroke-opacity"],"undefined")&&e.is(a["stroke-opacity"],"undefined")&&(p.removeAttribute("stroke-opacity"),delete r._.strokeOpacityDirty),r._.arrows&&("startString"in r._.arrows&&Y(r,r._.arrows.startString),"endString"in r._.arrows&&Y(r,r._.arrows.endString,1)));break;case"gradient":("circle"===r.type||"ellipse"===r.type||"r"!==o(c).charAt())&&W(r,c);break;case"visibility":"hidden"===c?r.hide():r.show();break;case"opacity":c=c>1?c/100:c,y.opacity=c;break;case"fill-opacity":c=c>1?c/100:c,y["fill-opacity"]=c;break;case"shape-rendering":r.attrs[s]=c=F[c]||c||"auto",y[s]=c,p.style.shapeRendering=c;break;case"line-height":case"vertical-align":break;default:"font-size"===s&&(c=l(c,10)+"px"),r._.dirty=1,y[s]=c,n.dashedAttr2CSSMap[s]&&(x[n.dashedAttr2CSSMap[s]]=c)}else s in m&&(delete m[s],p.removeAttribute("src"===s?"href":s));else s in G&&(c===S&&s in m?(delete m[s],p.removeAttribute(s)):(m[s]=c,x[s]=c));for(s in x)p.style[s]=x[s];for(s in y)p.setAttribute(s,y[s]);"text"===r.type&&!a["_do-not-tune"]&&Q(r,a)}},Z=e._updateFollowers=function(){var e,t,r,a=(0,n.getArrayCopy)(arguments),i=w.call(a),o=w.call(a);for(e=0,t=i.followers.length;e<t;e++)(r=i.followers[e].el)[o].apply(r,a)},Q=function(n,a){if("text"===n.type&&(a[t]("text")||a[t]("font")||a[t]("font-size")||a[t]("x")||a[t]("y")||a[t]("line-height")||a[t](r)||a[t]("textpath"))){var l,u,h,f,g,p,m,v,b,w,_,k,A=n.attrs,T=n.paper.defs,M=n.parent,F=n.node,I=n._oldAttr=n._oldAttr||{baseLineDiff:8,valign:-.5},L=s(a["line-height"]||A["line-height"]),N=a.direction||A.direction||M&&M.attrs&&M.attrs.direction||I.direction||"initial",D=!1,O=!1,R=d||"rtl"!==N?1:2,P=!1,V=!1,B=function(e){return e&&C.test(e)},j=function(e){return e.replace(/\s+/g," ").trim().replace(C," ")};if(a[t]("textpath")){var G,H,U,X=e.getElementID(e.createUUID()),W=a.textpath,$=0,Y={};for(var q in W)W.hasOwnProperty(q)&&("path"!==q||"href"in W?Y[q]=W[q]:I.textPathStr!==W[q]?(n.textPathDef?(n.textPathDef.setAttribute("d",W[q]||S),Y.href="#"+n.textPathDef.getAttribute("id"),Y["xlink:href"]="#"+n.textPathDef.getAttribute("id")):(n.textPathDef=T.appendChild(z("path",{id:X,d:W[q]||S})),Y.href="#"+X,Y["xlink:href"]="#"+X),I.textPathStr=W[q]):(Y.href="#"+n.textPathDef.getAttribute("id"),Y["xlink:href"]="#"+n.textPathDef.getAttribute("id")));for(a[t]("text")?(U=e._g.doc.createTextNode(a.text||S),I.pathText=A.text=a.text||S):(U=e._g.doc.createTextNode(I.pathText||I.text||S),I.pathText=I.pathText||I.text||S,delete I.text),a[t](r)?("middle"===a[r]?($=.3,I.valign=-.5):"bottom"===a[r]?($=.7,I.valign=-1):"top"===a[r]&&(I.valign=0),(H=z("tspan",{dy:$+"em"})).appendChild(U),I.tSpan=H):!I.tSpan||I.tSpan.textContent!==a.text&&"string"==typeof a.text?($=-.5===I.valign?.3:-1===I.valign?.7:0,(H=z("tspan",{dy:$+"em"})).appendChild(U),I.tSpan=H):H=I.tSpan,delete I.x,delete I.y,F.removeAttribute("x"),F.removeAttribute("y"),(G=z("textPath",Y)).appendChild(H||U);F.firstChild;)F.removeChild(F.firstChild);F.appendChild(G)}else{if(I.direction=N,n.textPathDef&&T&&(n.textPathDef.parentNode.removeChild(n.textPathDef),delete n.textPathDef),delete I.txtNode,delete I.tSpan,delete I.textPathStr,L||(L=1.2*(l=(l=a.fontSize||a["font-size"]||A["font-size"]||M&&M.attrs&&M.attrs.fontSize)?l.toString().replace("px",S):10)),(a[t]("text")||I.pathText)&&(_=e.is(a.text,"array")?a.text.join("<br>"):null==a.text?I.pathText:a.text,delete I.pathText,_!==I.text&&(V=!0,_&&x.test(_)&&(_=_.replace(/</g,"<").replace(/>/g,">").replace(/&<br\/>lt;|&l<br\/>t;|<<br\/>;/g,"<<br/>").replace(/&<br\/>gt;|&g<br\/>t;|><br\/>;/g,"><br/>")),I.text=A.text=_,y.test(_)?(I.noTSpan&&(I.noTSpan=!(k=!0)),g=(m=o(_).split(y)).length):(k=!0,I.noTSpan=!0,g=1),I.lineCount!==g&&(I.lineCount=g,P=!0))),L!==I.lineHeight&&(I.lineHeight=L,I.baseLineDiff=.75*L,P=!0),k)for(;F.firstChild;)F.removeChild(F.firstChild);if(I.lineCount>1){if("pre"===F.style.whiteSpace&&(F.style.whiteSpace=""),h={},I.tspanAttr||(I.tspanAttr={},I.tspan0Attr={}),I.tspanAttr.dy!==I.lineHeight&&(I.tspanAttr.dy=h.dy=I.lineHeight,O=!0),a[t]("x")&&I.tspanAttr.x!==a.x&&(I.tspan0Attr.x=I.tspanAttr.x=h.x=A.x,O=!0),V){for(w=F.getElementsByTagName("tspan"),f=0;f<g;f++){if(b=w[f*R]){if(b.innerHTML=S,d)for(;b.firstChild;)b.removeChild(b.firstChild);O&&z(b,f?h:I.tspan0Attr)}else b=z("tspan",f?I.tspanAttr:I.tspan0Attr),F.appendChild(b),d||"rtl"!==N||((v=z("tspan",i)).appendChild(e._g.doc.createTextNode("i")),F.appendChild(v));m[f]||(b.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),m[f]=E),B(m[f])?(m[f]=j(m[f]),b.style.whiteSpace="pre"):"pre"===b.style.whiteSpace&&(b.style.whiteSpace=""),b.appendChild(e._g.doc.createTextNode(m[f]))}if(p=g*R,w.length>p)for(f=w.length-1;f>=p;f-=1)F.removeChild(w[f])}else if(O)for(p=(w=F.getElementsByTagName("tspan")).length,f=0;f<p;f+=R)z(w[f],f?h:I.tspan0Attr)}else V&&(B(_)?(_=j(_),F.style.whiteSpace="pre"):"pre"===F.style.whiteSpace&&(F.style.whiteSpace=""),F.appendChild(e._g.doc.createTextNode(_)));a[r]&&(u=c[A[r]]||0)!==I.valign&&(I.valign=u,P=!0),P&&(I.shift=I.baseLineDiff+I.lineCount*I.lineHeight*I.valign,D=!0),!a.y&&0!==a.y||I.y===a.y||(I.y=A.y,D=!0),!D||!I.y&&0!==I.y||!I.shift&&0!==I.shift||z(F,{y:Math.round(I.y+I.shift)})}}},ee=function(t,r,n){var a=this,i=n||r;/*!dontAppend &&*/i.canvas&&i.canvas.appendChild(t),a.node=a[0]=t,t.raphael=!0,t.raphaelid=a.id=e._oid++,a.matrix=e.matrix(),a.realPath=null,a.attrs=a.attrs||{},a.followers=a.followers||[],a.paper=r,a.ca=a.customAttributes=a.customAttributes||new r._CustomAttributes,a._={transform:[],sx:1,sy:1,deg:0,dx:0,dy:0,dirty:1},a.parent=i,!i.bottom&&(i.bottom=a),a.prev=i.top,i.top&&(i.top.next=a),i.top=a,a.next=null},te=function(e,t,r){var n=r?"pageY":"pageX";return Math.abs(t[n]-e[n])},re=e.storeHandlers=function(e,t,r){e._actualListners||(e._actualListners=[]),e._derivedListeners||(e._derivedListeners=[]),e._actualListners.push(t),e._derivedListeners.push(r)},ne=function(e,t){var r,n=e._actualListners.indexOf(t);return-1!==n&&(r=e._derivedListeners[n],e._actualListners.splice(n,1),e._derivedListeners.splice(n,1)),r},ae=e.el;ee.prototype=ae,ae.constructor=ee,e._engine.getNode=function(e){var t=e.node||e[0].node;return t.titleNode||t},e._engine.getLastNode=function(e){var t=e.node||e[e.length-1].node;return t.titleNode||t},ae.rotate=function(e,t,r){var n,a=this;return a.removed?a:(Z(a,"rotate",e,t,r),(e=o(e).split(b)).length-1&&(t=s(e[1]),r=s(e[2])),e=s(e[0]),null==r&&(t=r),null!=t&&null!=r||(t=(n=a.getBBox(1)).x+n.width/2,r=n.y+n.height/2),a.transform(a._.transform.concat([["r",e,t,r]])),a)},ae.scale=function(e,t,r,n){var a,i=this;return i.removed?i:(Z(i,"scale",e,t,r,n),(e=o(e).split(b)).length-1&&(t=s(e[1]),r=s(e[2]),n=s(e[3])),e=s(e[0]),null==t&&(t=e),null==n&&(r=n),null!=r&&null!=n||(a=i.getBBox(1)),r=null==r?a.x+a.width/2:r,n=null==n?a.y+a.height/2:n,i.transform(i._.transform.concat([["s",e,t,r,n]])),i)},ae.translate=function(e,t){var r=this;return r.removed?r:(Z(r,"translate",e,t),(e=o(e).split(b)).length-1&&(t=s(e[1])),e=s(e[0])||0,t=+t||0,r.transform(r._.transform.concat([["t",e,t]])),r)},ae.transform=function(t){var r,n=this,a=n._;return null==t?a.transform:(e._extractTransform(n,t),n.clip&&!a.clipispath&&z(n.clip,{transform:n.matrix.invert()}),n.pattern&&$(n),n.node&&z(n.node,{transform:n.matrix}),1===a.sx&&1===a.sy||(r=n.attrs["stroke-width"])&&n.attr({"stroke-width":r}),n)},ae.hide=function(){var e=this;return Z(e,"hide"),!e.removed&&e.paper.safari(e.node.style.display="none"),e},ae.show=function(){var e=this;return Z(e,"show"),!e.removed&&e.paper.safari(e.node.style.display=S),e},ae.remove=function(){if(!this.removed&&this.parent.canvas){var t,r=this,n=e._engine.getNode(r),i=r.paper,o=i.defs;for(i.__set__&&i.__set__.exclude(r),k.unbind("raphael.*.*."+r.id),r.gradient&&o&&H(r),r["stroke-gradient"]&&o&&H(r,void 0,"stroke"),r.textPathDef&&o&&(r.textPathDef.parentNode.removeChild(r.textPathDef),delete r.textPathDef);t=r.followers.pop();)t.el.remove();for(;t=r.bottom;)t.remove();if(r._drag&&r.undrag(),r.events)for(;t=r.events.pop();)t.unbind();for(t in r.parent.canvas.contains(n)&&r.parent.canvas.removeChild(n),r.removeData(),delete i._elementsById[r.id],e._tear(r,r.parent),r)r[t]=typeof r[t]===a?e._removedFactory(t):null;r.removed=!0}},ae._getBBox=function(){var e,t,a,i=this,o=i.node,s={},l=i.attrs,c="text"===i.type;d&&c?e=(0,n.showRecursively)(i):"none"===o.style.display&&(i.show(),a=!0);try{s=o.getBBox(),c&&(s.x===undefined&&(s.isCalculated=!0,t=l["text-anchor"],s.x=(l.x||0)-s.width*("start"===t?0:"middle"===t?.5:1)),s.y===undefined&&(s.isCalculated=!0,t=l[r],s.y=(l.y||0)-s.height*("bottom"===t?1:"middle"===t?.5:0)))}catch(u){}finally{s=s||{}}return d&&c?e&&e():a&&i.hide(),s},ae.attr=function(r,n){if(this.removed)return this;var i,o,s,l,c,u,d,h,f=this.attrs,g={},p=this._invokedCa||(this._invokedCa={}),m=this.ca;if(null==r){var v={};for(i in f)f[t](i)&&(v[i]=f[i]);return v.gradient&&"none"===v.fill&&(v.fill=v.gradient)&&delete v.gradient,v.transform=this._.transform,v.visibility="none"===this.node.style.display?"hidden":"visible",v}if(null==n){if(e.is(r,"object"))l=r;else if(e.is(r,"string"))return"fill"===r&&"none"===f.fill&&f.gradient?f.gradient:"transform"===r?this._.transform:"visibility"===r?"none"===this.node.style.display?"hidden":"visible":r in f?f[r]:e.is(m[r],a)?m[r].def:e._availableAttrs[r]}else(l={})[r]=n;if(!e.stopPartialEventPropagation)for(i in l)k("raphael.attr."+i+"."+this.id,this,l[i],i);for(i in l)if((h=m[i])&&!p[i]&&e.is(h,a)){for(c in p[i]=!0,u=h.apply(this,[].concat(l[i])),p[i]=!1,u)g[c]=u[c];f[i]=l[i]}else g[i]=l[i];for(J(this,g),o=0,s=this.followers.length;o<s;o++)(d=this.followers[o]).cb&&!d.cb.call(d.el,g,this)||d.el.attr(g);return this},ae.pinchstart=function(t,r){var n=this,a={},i=function(i){if(i.touches&&2===i.touches.length){var o=i.touches[0],s=i.touches[1];n._blockDrag=!0,i&&i.preventDefault(),e.makeSelectiveCopy(a,i),a.data={finger0:o,finger1:s,distanceX:te(o,s),distanceY:te(o,s,!0)},t.call(r||n,a)}else n._blockDrag=!1};re(n,t,i),n.node.addEventListener("touchstart",i)},ae.unpinchstart=function(e){var t=ne(this,e);this.__blockDrag=!1,this._pinchDragStarted=!1,t&&this.node.removeEventListener("touchstart",t)},ae.pinchmove=function(t,r){var n=this,a={},i=function(i){if(i.touches&&2===i.touches.length){var o=i.touches[0],s=i.touches[1];i&&i.preventDefault(),n._pinchDragStarted=!0,e.makeSelectiveCopy(a,i),a.data={finger0:o,finger1:s,distanceX:te(o,s),distanceY:te(o,s,!0)},t.call(r||n,a)}};re(n,t,i),n.node.addEventListener("touchmove",i)},ae.unpinchmove=function(e){var t=ne(this,e);t&&this.node.removeEventListener("touchmove",t)},ae.pinchend=function(e,t){var r=this,n=function(n){r._pinchDragStarted&&(r._pinchDragStarted=!1,e.call(t||r,n))};re(r,e,n),r.node.addEventListener("touchend",n)},ae.unpinchend=function(e){var t=ne(this,e);this._pinchDragStarted=!1,t&&this.node.removeEventListener("touchend",t)},ae.pinch=function(e,t,r){ae.pinchstart.call(this,e),ae.pinchin.call(this,t),ae.pinchend.call(this,r)},ae.unpinch=function(e,t,r){ae.unpinchstart.call(this,e),ae.unpinchin.call(this,t),ae.unpinchend.call(this,r)},ae.fcwheel=function(t,r){var n=this,a={},i=function(i){i&&i.preventDefault(),e.makeSelectiveCopy(a,i),t.call(r||n,a)};re(n,t,i),n.node.addEventListener("wheel",i)},ae.fcunwheel=function(e){var t=ne(this,e);t&&this.node.removeEventListener("wheel",t)},ae.on=function(t,r,n){if(r&&t){var a,i,o=this,s=t.match(/fc-/),l=r;if(this.removed)return this;switch(o._actualListners||(o._actualListners=[]),o._derivedListeners||(o._derivedListeners=[]),t){case"fc-dragstart":return o.drag(null,r),o;case"fc-dragmove":return o.drag(r),o;case"fc-dragend":return o.drag(null,null,r),o;case"fc-dbclick":return o.dbclick(r,n),o;case"fc-pinchstart":return o.pinchstart(r,n),o;case"fc-pinchmove":return o.pinchmove(r,n),o;case"fc-pinchend":return o.pinchend(r,n),o;case"fc-click":return o.fcclick(r,n),o;case"fc-wheel":return o.fcwheel(r,n),o}return s&&(t=t.replace(/fc-/,"")),s&&D&&(i=t,t=(N?e.safePointerEventMapping[t]:j[t])||t,"mouseout"===i&&(l=function(e){N&&D&&!e.isPrimary||(V.elementInfo.push({el:n||o,callback:r}),V.srcElement=e.srcElement||e.target)},t=N?"pointerover":"touchstart")),this._&&this._.RefImg&&("load"===t||"error"===t)?(a=this._.RefImg,l=function(e){!o.removed&&r.call(o,e)}):a=this.node,l===r&&(l=function(e){(!N||!D||e.isPrimary)&&r.call(n||o,e)}),o._actualListners.push(r),o._derivedListeners.push(l),a.addEventListener?a.addEventListener(t,l):a["on"+t]=l,this}},ae.off=function(t,r){var n,a,i,o=r,s=t.match(/fc-/);if(this.removed||!this._actualListners||!t||!r)return this;switch(t){case"fc-dragstart":return this.undragstart(r),this;case"fc-dragmove":return this.undragmove(r),this;case"fc-dragend":return this.undragend(r),this;case"fc-dbclick":return this.undbclick(r),this;case"fc-pinchstart":return this.unpinchstart(r),this;case"fc-pinchmove":return this.unpinchmove(r),this;case"fc-pinchend":return this.unpinchend(r),this;case"fc-click":return this.fcunclick(r),this;case"fc-wheel":return this.fcunwheel(r),this}return s&&(t=t.replace(/fc-/,"")),o=r,s&&D&&(n=t,t=(N?e.safePointerEventMapping[t]:j[t])||t,"mouseout"===n&&(t=N?"pointerover":"touchstart")),i=this._&&this._.RefImg?this._.RefImg:this.node,-1!==(a=this._actualListners.indexOf(o))&&(o=this._derivedListeners[a],this._actualListners.splice(a,1),this._derivedListeners.splice(a,1)),i.removeEventListener?i.removeEventListener(t,o):i["on"+t]=null,this},e._engine.path=function(e,t,r){var n=z("path"),a=new ee(n,e,r);return a.type="path",t&&a.attr(t),a},e._engine.group=function(e,t,r,n){var a=z("g"),i=new ee(a,e,r);return i.type="group",i.canvas=i.node,i.top=i.bottom=null,i._id=t||S,t&&(n?a.setAttribute("class","raphael-group-"+t):a.setAttribute("class","raphael-group-"+i.id+"-"+t)),i},e._engine.circle=function(e,t,r){var n=z("circle"),a=new ee(n,e,r);return a.type="circle",t&&a.attr(t),a},e._engine.rect=function(e,t,r){var n=z("rect"),a=new ee(n,e,r);return a.type="rect",t.rx=t.ry=t.r,t&&a.attr(t),a},e._engine.ellipse=function(e,t,r){var n=z("ellipse"),a=new ee(n,e,r);return a.type="ellipse",t&&a.attr(t),a},e._engine.image=function(e,t,r){var n=z("image"),a=new ee(n,e,r,!0);return a._.group=r||e,a.type="image",n.setAttribute("preserveAspectRatio","none"),t&&a.attr(t),a},e._engine.text=function(e,t,r,n){var a=z("text"),i=new ee(a,e,r);return i.type="text",n&&i.css&&i.css(n,undefined,!0),t&&i.attr(t),i},e._engine.setSize=function(e,t){return this.width=e||this.width,this.height=t||this.height,this.canvas.setAttribute("width",this.width),this.canvas.setAttribute("height",this.height),this._viewBox&&this.setViewBox.apply(this,this._viewBox),this},e._engine.create=function(){var t,r=e._getContainer.apply(0,arguments),n=r&&r.container,a=r.x,i=r.y,o=r.width,s=r.height;if(!n)throw new Error("SVG container not found.");var l,c=z("svg"),u="overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-moz-user-select:-moz-none;-khtml-user-select:none;-ms-user-select:none;user-select:none;-o-user-select:none;cursor:default;vertical-align:middle;";return D&&(e.isEdge?u+="touch-action:none;":e.isFirefox&&e.isWindows?u+="touch-action:none;":e.isIE11&&(u+="-ms-touch-action:none;")),a=a||0,i=i||0,z(c,{height:s=s||342,version:1.1,width:o=o||512,xmlns:T}),1===n?(c.style.cssText=u+"position:absolute;left:"+a+"px;top:"+i+"px",(n=e._g.doc.body).appendChild(c),l=1):(c.style.cssText=u+"position:relative",n.firstChild?n.insertBefore(c,n.firstChild):n.appendChild(c)),(t=new e._Paper).width=o,t.height=s,t.canvas=c,t.container=n,z(c,{id:"raphael-paper-"+t.id}),t.clear(),t._left=t._top=0,l&&(t.renderfix=function(){}),t.renderfix(),t},e._engine.setViewBox=function(e,t,r,n,a){k("raphael.setViewBox",this,this._viewBox,[e,t,r,n,a]);var i,o,s=f(r/this.width,n/this.height),l=this.top,c=a?"meet":"xMinYMin";if(null==e?(this._vbSize&&(s=1),delete this._vbSize,i="0 0 "+this.width+E+this.height):(this._vbSize=s,i=e+E+t+E+r+E+n),z(this.canvas,{viewBox:i,preserveAspectRatio:c}),s)for(;l;)o="stroke-width"in l.attrs?l.attrs["stroke-width"]:1,l.attr({"stroke-width":o}),l._.dirty=1,l._.dirtyT=1,l=l.prev;return this._viewBox=[e,t,r,n,!!a],this},e.prototype.detachPaper=function(){!1!==this._detached&&(this.container.removeChild(this.canvas),this._detached=!0)},e.prototype.attachPaper=function(){this._detached&&(this.container.appendChild(this.canvas),this._detached=!1)},e.prototype.renderfix=function(){var e,t=this.canvas,r=t.style;try{e=t.getScreenCTM()||t.createSVGMatrix()}catch(i){e=t.createSVGMatrix()}var n=-e.e%1,a=-e.f%1;(n||a)&&(n&&(this._left=(this._left+n)%1,r.left=this._left+"px"),a&&(this._top=(this._top+a)%1,r.top=this._top+"px"))},e.prototype._desc=function(t){var r=this.desc;if(r)for(;r.firstChild;)r.removeChild(r.firstChild);else this.desc=r=z("desc"),this.canvas.appendChild(r);r.appendChild(e._g.doc.createTextNode(e.is(t,"string")?t:"Created with Red Raphaël "+e.version))},e.prototype.clear=function(){var e;for(k("raphael.clear",this);e=this.bottom;)e.remove();for(e=this.canvas;e.firstChild;)e.removeChild(e.firstChild);this.bottom=this.top=null,e.appendChild(this.desc=z("desc")),e.appendChild(this.defs=z("defs"))},e.prototype.remove=function(){var t;for(k("raphael.remove",this);t=this.bottom;)t.remove();for(t in this.defs&&this.defs.parentNode.removeChild(this.defs),this.desc&&this.desc.parentNode.removeChild(this.desc),this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas),this)this[t]=typeof this[t]===a?e._removedFactory(t):null;this.removed=!0},e.prototype.setHTMLClassName=function(){}}var ie};var n=r(187)},function(e,t,r){"use strict";function n(e){var t={data:{}};if(!e)return t;if("string"==typeof e)try{t.data=JSON.parse(e)}catch(r){t.error=r}else t.data=e;return t}function a(){return this.getChartData("json")}function i(e){this.setChartData(e,"json")}t.__esModule=!0,t["default"]=void 0;var o={extension:function(e){return e&&(e.prototype.setJSONData=i),e&&(e.prototype.getJSONData=a),{format:"json",toJSON:n,fromJSON:n}},name:"JSON",type:"transcoder",requiresFusionCharts:!0};t["default"]=o},function(e,t,r){"use strict";var n=r(178),a=r(182);t.__esModule=!0,t["default"]=void 0;var i=a(r(196)),o=n(r(217)),s=n(r(218)),l=n(r(219)),c=n(r(220)),u=n(r(221)),d=n(r(222)),h=n(r(226)),f={oneInAFrame:!0},g={extension:function(e){var t=e.getDep("redraphael","plugin"),r={};t.fn._elementFromEvent=function(e){if(!e||this.removed)return null;var t=e,n=t.srcElement||t.target||(t=t.originalEvent)&&(t.srcElement||t.target)||r;return"tspan"===n.nodeName&&(n=n.parentNode),this.getById(n.raphaelid)},t.requestAnimFrame=i["default"].addJob&&function(e){i["default"].addJob(e,i.priorityList.animation,f)},t.instantRequestAnimFrame=i["default"].addJob&&function(e){i["default"].addJob(e,i.priorityList.instant)},(0,h["default"])(t),(0,o["default"])(t),(0,s["default"])(t),(0,l["default"])(t),(0,c["default"])(t),(0,u["default"])(t),(0,d["default"])(t)},name:"redraphaelExt",type:"plugin",requiresFusionCharts:!0};t["default"]=g},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=function(e){var t,r,a=e.eve,i=e._g,o=e.fn,s=e.el,l=/[, ]+/,c="",u=" ",d=/\B([A-Z]{1})/g,h="fusioncharts-raphael-stylesheet";(r=(t=function(e){this.styleSheet=c,this.rules={},this.ns=e||c}).prototype).getSheet=function(){var t=this.node;return this.styleSheet=r.getStyleSheet(h),this.styleSheet||((t=this.node=i.doc.createElement("style")).setAttribute("id",e.format("raphael-stylesheet-{0}",e._oid++)),t.setAttribute("type","text/css"),t.setAttribute("title",h),(i.doc.head||i.doc.getElementsByTagName("head")[0]).appendChild(this.node),this.styleSheet=r.getStyleSheet(h)),this.styleSheet},r.getStyleSheet=function(e){for(var t,r=i.doc.styleSheets,n=r.length;n--;)if((t=r[n]).title===e)return t},r.applyCSSRule=function(e,t){var r,n=this.styleSheet;if(!n){if(!e||!t)return;n=this.getSheet()}r=(n.rules||n.cssRules||{}).length||0,n.insertRule?n.insertRule(e+"{"+t+"}",r):n.addRule&&n.addRule(e,t,r)},r.removeCSS=function(e){var t,r=this.styleSheet,n=r.rules||r.cssRules||{},a=n.length||0,i=e;for(i=i||this.ns;a--;)t=n[a],new RegExp(i).test(t.selectorText)&&(r.removeRule?r.removeRule(a):r.deleteRule(a))},r.destroy=function(){this.removeCSS(),delete this.node,delete this.styleSheet,delete this.ns,delete this.rules},r.clear=function(){this.removeCSS(),this.rules={}},r.add=function(e,t,r){var n,a=c,i=this.rules[e]||(this.rules[e]={}),o=r?c:"\t",s=r?":":": ";for(n in t)(i[n]=t[n])&&(a+=o+n.replace(d,"-$1").toLowerCase()+s+i[n]+";");this.applyCSSRule(e,a)},r.render=function(){this.setCssText()},r.setCssText=function(e){var t,r,n=e?c:"\t",a=e?":":": ",i=c,o=c;for(t in this.rules){for(r in i=c,o=t.replace(/(^|\,)/g,"$1"+this.ns+u),t=this.rules[t])t[r]&&(i+=n+r.replace(d,"-$1").toLowerCase()+a+t[r]+";");this.applyCSSRule(o,i)}},a.on("raphael.new",(function(){this._stylesheet=this._stylesheet||new t,this.cssNamespace(c)})),a.on("raphael.remove",(function(){this._stylesheet&&this._stylesheet.destroy(),delete this._stylesheet})),o.cssNamespace=function(t){return arguments.length&&(this._stylesheet.ns=e.format("{0}#raphael-paper-{1}",t&&t+u||c,this.id)),this._stylesheet.ns},o.cssAddRule=function(e,t){if(1===arguments.length&&"object"==typeof e){for(var r in e)this.cssAddRule(r,e[r]);return this}return this._stylesheet.add(e,t),this},o.cssRender=function(){return e.svg&&this._stylesheet.render(),this},o.cssClear=function(){return this._stylesheet.clear(),this},e.ca["class"]=function(t){var r,n,a,i,o=this,s=t,l=o.node,d=o.paper,h="."+s,f=d._stylesheet&&d._stylesheet.rules,g=o.parent,p=o.attrs,m={};if(e.svg)s=s||c,l.setAttribute("class","group"===o.type&&o._id?"raphael-group-"+o.id+"-"+o._id+u+s:s);else if(e.vml&&(r=l.className="group"===o.type?s&&o._id+u+s||o._id:"rvml "+s,l.className=r?r+" fusioncharts-div":"fusioncharts-div",h&&f)){for(i in n=f[h])"color"===i&&"text"===o.type&&(i="fill"),!p[i]&&(m[i]=n[i]);for(;g&&g.attr;){if(a=g.attr("class"))for(i in n=f[h="."+a+u+h])"color"===i&&"text"===o.type&&(i="fill"),!p[i]&&!m[i]&&(m[i]=n[i]);g=g.parent}o.css(m)}},s.css=function(t,r,n){var i,o,s,c,u,d,h,f=t;if(this.removed)return this;if(this.styles||(this.styles={}),void 0===r&&e.is(f,"string")){for(s={},d=0,h=(i=f.split(l)).length;d<h;d++)(f=i[d])in this.styles&&(s[f]=this.styles[f]);return h-1?s:s[i[0]]}if(void 0===r&&e.is(f,"array")){for(s={},d=0,h=f.length;d<h;d++)s[f[d]]=this.styles(f[d]);return s}for(d in void 0!==r?(o={})[f]=r:f&&e.is(f,"object")&&(o=f),u={},o)c=d.replace(/\B([A-Z]{1})/g,"-$1").toLowerCase(),e._availableAttrs.hasOwnProperty(c)||"color"===c?("color"===c&&"text"===this.type&&(c="fill"),u[c]=o[d],u.dirty=!0):(a("raphael.css."+c+"."+this.id,this,o[d],c),this.node.style[c]=o[d],this.styles[c]=o[d]);for(d=0,h=this.followers.length;d<h;d++)this.followers[d].el.attr(o);return u.hasOwnProperty("dirty")&&(delete u.dirty,n&&(u["_do-not-tune"]=!0),this.attr(u)),this},s.removeCSS=function(t){var r,a,i,o=t;if(!o&&(o=n.appliedCSS),this.removed)return this;if(e.is(o,"string")&&(o=o.split(",")),e.is(o,"array"))for(i=o.length,a=0;a<i;a++)r=o[a].replace(/\B([A-Z]{1})/g,"-$1").toLowerCase(),this.node.removeAttribute(r),this.node.style[r]="";return this}};var n=r(184)},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=function(e){var t,r=window,a=Math.sqrt,i=r.parseFloat,o=r.parseInt,s="none",l="rgba(0,0,0,1)",c=r.SVGFilterElement||r.SVGFEColorMatrixElement&&2===r.SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_SATURATE,u={"drop-shadow":"drop-shadow",stroke:"stroke",fill:"fill","stroke-width":"stroke-width","stroke-opacity":"stroke-opacity","stroke-linecap":"stroke-linecap","stroke-linejoin":"stroke-linejoin","shape-rendering":"shape-rendering",opacity:"opacity","fill-opacity":"fill-opacity"};e.svg?(c&&(e.filterShadow=function(t,r){var o,s,c,u,d=t.dx||1,h=t.dy||1,f=t.spread||3,g=t.color||"rgb(64,64,64)",p=t.paper,m=p.cacheShadows||(p.cacheShadows={}),v=t.id||"drop-shadow-"+(r?"layered":"non-layered")+"-"+[d,h,f,g].join(" "),b=t.id||e.getElementID(v.replace(/[\(\)\s%:,\xb0#]/g,"_")),y=!!(t.id?e._g.doc.getElementById(b):m[v]);return p&&!y?((g=e.color(g)).error&&(g=e.color(l)),c=(0,n.pluck)(g.opacity,1),c=t.opacity||c,s=(o=p.addDefs({filter:{tagName:"filter",id:b,y:"-1000%",x:"-1000%",width:"2000%",height:"2000%",children:[{tagName:"feOffset",result:"offOut","in":"SourceGraphic",dx:i(d),dy:i(h)},{tagName:"feColorMatrix",result:"matrixOut","in":"offOut",type:"matrix",values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "+c+" 0"},{tagName:"feGaussianBlur",result:"blurOut","in":"matrixOut",stdDeviation:r?1:a(i(f))},{tagName:"feComposite","in":"SourceGraphic",in2:"blurOut",operator:"over"}]}})).filter.children,u=m[v]={use:1,hash:v,id:b,filter:o.filter.element,offset:s[0].element,matrix:s[1].element,blur:s[2].element,blend:s[3].element}):(u=m[v]).use+=1,u},e.el.dropshadow=function(r,n,a,i,o,l){var c,u,d,h,f,g,p,m,v=this,b=v._.shadowFilter,y=v.paper,x=y.cacheShadows||(y.cacheShadows={}),C="drop-shadow"+[r,n,a,i].join(" ");for(f=h=.05*o,p=1;p<=3;p++)f+=h*p*(o-f);if(u=(c=l?v.shadowElem||v.clone({fill:s,stroke:"rgb(51, 51, 51)","stroke-width":v.attr("stroke-width")||1,opacity:f},l).translate(r,n).follow(v,t,!l&&"before"):v).shadowElem&&c.shadowElem.node||c.node,r===s){if(b){if(b.use-=1,u.removeAttribute("filter"),v.shadowElem&&v.shadowElem.attr("opacity",0),!b.use){for(d in C=b.hash,b)(m=b[d]).parentNode&&m.parentNode.removeChild(m),delete b[d];m=null,delete x[C]}b=null,delete v._.shadowFilter}}else l&&!v.shadowElem&&(g=!0),l&&(v.shadowElem=c),b=b&&x[C]?x[C]:v._.shadowFilter=e.filterShadow({paper:y,dx:r,dy:n,spread:a,color:i,opacity:!l&&f},!!l),!g&&v.shadowElem&&v.shadowElem.attr("opacity",f),u.setAttribute("filter",'url("'+e._url+"#"+b.id+'")');return this}),t=function(e,t){var r,n,a=this,i={};for(n in e)switch(u[n]&&(i[n]=e[n],delete e[n]),n){case"transform":(r=t.matrix.clone()).translate(a.__shadowx,a.__shadowy),a.transform(r.toTransformString());break;case"stroke-width":e[n]=i[n]||1}for(n in a.attr(e),i)e[n]=i[n]},e.ca["drop-shadow"]=function(r,a,i,c,u,d){var h,f,g,p,m,v,b,y=this,x=y._.shadows||(y._.shadows=[]),C=r,w=a,_=c;if(y.__shadowblocked)return!1;if(C===s)for(;f=x.pop();)f.remove();else for((_=e.color(_)).error&&(_=e.color(l)),u instanceof Array?(m=u[0],v=u[1]):m=v=u,m=1/(0,n.pluck)(m,1),v=1/(0,n.pluck)(v,1),C=(0,n.pluck)(C,1)*m,w=(0,n.pluck)(w,1)*m,h=.05*(0,n.pluck)(_.opacity,1),g=o(y.attr("stroke-width")||1,10)+6,(p=y.matrix.clone()).translate(C,w),b=1;b<=3;b++)(f=(x[b-1]||y.clone().follow(y,t,!d&&"before")).attr({stroke:_.hex,"stroke-opacity":h*b,opacity:"1","stroke-width":(g-2*b)*v,transform:p.toTransformString(),"stroke-linecap":"round","stroke-linejoin":"round",fill:s})).__shadowlevel=b,f.__shadowscale=v,f.__shadowx=C,f.__shadowy=w,d&&d.appendChild(f),x.push(f);return!1},e.el.shadow=function(t,r,a,i){var o,l=t,c=r,u=a,d=i;if(u&&u.constructor===e.el.constructor&&(d=u,u=void 0),"object"==typeof l&&(c&&c.constructor===e.el.constructor&&(d=c),c=l.opacity,u=l.scalefactor,o=void 0!==l.useFilter?!!l.useFilter:!n.isIE9,l=void 0===l.apply?!!c:l.apply),void 0===c&&(c=1),this.dropshadow){if(o&&!this.ca.hasOwnProperty("drop-shadow"))return l&&this.dropshadow(1,1,3,"rgb(64,64,64)",c,d)||this.dropshadow(s),this;this._.shadowFilter&&this.dropshadow(s)}return this.attr("drop-shadow",l?[1,1,3,"rgba(64,64,64,"+c+")",u,d]:s)}):e.vml?(e.ca["drop-shadow"]=function(t,r,a,o,c,u){var d,h,f,g,p=this,m=p._.shadow,v=t,b=r,y=o;return!p.isShadow&&(v===s?m&&(m=p._.shadow=m.remove()):(m||(m=p._.shadow=p.clone(),u&&u.appendChild(m.follow(p))||m.follow(p,void 0,"before"),m.attr({fill:"none","fill-opacity":.5,"stroke-opacity":1}).isShadow=!0,m.attr("stroke-width")<=0&&m.attr("stroke-width",1)),h=(d=m.node.runtimeStyle).filter.replace(/ progid:\S+Blur\([^\)]+\)/g,""),(y=e.color(y)).error&&(y=e.color(l)),g=(0,n.pluck)(y.opacity,1)/5,f=c instanceof Array?c[0]:c,f=1/(0,n.pluck)(c,1),v=(0,n.pluck)(v,1)*f,b=(0,n.pluck)(b,1)*f,m.translate(v,b),d.filter=h+" progid:DXImageTransform.Microsoft.Blur(pixelRadius="+i(.4*a)+" makeShadow=True Color="+y.hex+' shadowOpacity="'+g+'");'),!1)},e.el.shadow=function(t,r,n,a){var i=t,o=r,l=n,c=a;return l&&l.constructor===e.el.constructor&&(c=l,l=void 0),"object"==typeof i&&(o&&"group"===o.type&&(c=o),o=i.opacity,l=i.scalefactor,i=void 0===i.apply?!!o:i.apply),void 0===o&&(o=1),this.attr("drop-shadow",i||!o?[1,1,5,"rgba(64,64,64,"+o+")",l,c]:s)}):e.canvas&&(e.el.shadow=function(){return this})};var n=r(184)},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=function(e){e.svg?(e.createOutlineFilter=function(t){var r,n,a,u,h,g=t.paper,p=t.rgbObj,m=t.colorMapText,v=g.outlineFilterCaches;return a=g.filterColorMap[m]=f(p),r=s+i+[m,a].join(d),n=e.getElementID(r.replace(/[\(\)\s%:,\xb0#]/g,"_")),h=(u=g.addDefs({filter:{tagName:"filter",id:n,children:[{tagName:"feMorphology",result:"DILATED","in":"SourceAlpha",operator:"dilate",radius:e.isIE11?"1.5":"1"},{tagName:"feFlood",result:"FLOOD","flood-color":a===o?l:c,"flood-opacity":"1"},{tagName:"feComposite",result:"OUTLINE","in":"FLOOD",in2:"DILATED",operator:"in"},{tagName:"feMerge",children:[{tagName:"feMergeNode","in":"OUTLINE"},{tagName:"feMergeNode","in":"SourceGraphic"}]}]}})).filter.children,v[a]={hash:r,id:n,filter:u.filter.element,morph:h[0].element,flood:h[1].element,composite:h[2].element,merge:h[3].element}},e.el.outlineText=function(t,r){var o;if(r&&r!==u){o=/(^#[0-9A-Fa-f]{6}$)|(^#[0-9A-Fa-f]{3}$)/.test(r)?(0,n.convertColor)(r):r;var s,l,c=this.node,d=this.paper,f=d.outlineFilterCaches||(d.outlineFilterCaches={}),g=d.filterColorMap||(d.filterColorMap={}),p=h(o),m=a+i+p.R+i+p.G+i+p.B;t?(l=(s=g[m])&&f[s]?f[s]:e.createOutlineFilter({rgbObj:p,paper:d,colorMapText:m}),c.setAttribute("filter",'url("'+e._url+"#"+l.id+'")')):c.removeAttribute("filter")}}):e.el.outlineText=function(){return this}};var n=r(184),a="rgb",i="-",o="darkFilter",s="text-outline",l="#000000",c="#ffffff",u="none",d=" ",h=function(e){var t=e.split("(")[1].split(")")[0].split(",");return{R:+t[0],G:+t[1],B:+t[2]}},f=function(e){return(299*e.R+587*e.G+114*e.B)/1e3>123?o:"brightFilter"}},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=function(e){var t=/rgba\([\d]+\,[\d]+\,[\d]+\,0\)$/,r=window,a=Math,i=a.cos,o=a.sin,s=a.PI,l=r.parseInt,c=r.parseFloat,u=String,d=Array.prototype.slice,h="hasOwnProperty",f="none",g="M",p="L",m="Z",v="text-bound",b=/\s*\,\s*/g;e&&e._availableAnimAttrs&&e._availableAnimAttrs.cx&&(e._availableAnimAttrs["scroll-position"]=e._availableAnimAttrs.cx);e.define&&e.define([{name:"polypath",polypath:function(){return this.path(void 0,e._lastArgIfGroup(arguments))},ca:{polypath:function(t,r,n,a,u,d){var h,f,v,b,y,x=t,C=r,w=n,_=a,k=u,S=d;if(h=[],x=l(x,10)||0,C=c(C)||0,w=c(w)||0,_=c(_)||0,k=null===k||isNaN(k)?.5*s:e.rad(k),S=null===S||isNaN(S)?0:c(S),b=k,x>2)switch(f=2*s/x,S){case 0:for(v=0;v<x;v++)h.push(p,C+_*i(-b),w+_*o(-b)),b+=f;h[0]=g,h.push(m);break;case 1:for(v=0;v<x;v++)h.push(g,C,w,p,C+_*i(-b),w+_*o(-b)),b+=f;break;default:for(y=_*i(f*=.5)*(1-S),v=0;v<x;v++)h.push(p,C+_*i(-b),w+_*o(-b)),b+=f,h.push(p,C+y*i(-b),w+y*o(-b)),b+=f;h[0]=g,h.push(m)}else 0===_?h.push(g,C,w,p,C,w,m):h.push(g,C-_,w,"A",_,_,0,0,0,C+_,w,"A",_,_,0,0,0,C-_,w,m);return{path:h}},r:function(e){var t=this.attrs.polypath;return t[3]=e,this.attr("polypath",t),!1}}}]),e.ca[v]=function(r,n,a,i,o,s,l){var c=this,u=c.paper,d=c._.textbound,h=a,g=o;if(this._origOpacity=void 0!==l?l:1,"text"===this.type)return n&&n!==f&&!t.test(n)||r&&r!==f&&!t.test(r)?(c.attrs[v]=arguments,(!h||!e.is(h,"finite"))&&(h=0),(!g||!e.is(g,"finite"))&&(g=0),!d&&(d=c._.textbound=u.rect(0,0,0,0,c.group).follow(c,e.ca[v].reposition,"before")),d.attr({stroke:n||f,"stroke-width":h,fill:r||f,"shape-rendering":1===h?"crisp":"",r:g}),void 0!==l&&d.attr("opacity",l),s&&d.attr("stroke-dasharray",s),e.ca[v].reposition.call(d,c.attr(),c),!1):(c._.textbound=d&&d.unfollow(c).remove(),!1)},e.ca[v].reposition=function(e,t){var r,a,i,o,s,l,d,f,g,p=this,m={};e[h]("visibility")&&p.attr("visibility",e.visibility),(e[h](v)||e[h]("x")||e[h]("y")||e[h]("text")||e[h]("text-anchor")||e[h]("text-align")||e[h]("font-size")||e[h]("line-height")||e[h]("vertical-align")||e[h]("transform")||e[h]("rotation")||e[h]("opacity"))&&(a=(r=t.attrs)[v],i=u(a&&a[3]||"0").split(b),o=c(i[0])||0,s=(0,n.pluck)(c(i[1]),o),f=(l=t.getBBox()).width,g=l.height,p._origOpacity=t._origOpacity||1,d=c(e.opacity||r.opacity),m.opacity=isNaN(d)?p._origOpacity:p._origOpacity*d,isNaN(f)||(m.x=l.x-o,m.y=l.y-s,m.width=Math.max(f+2*o,0),m.height=Math.max(g+2*s,0)),p.attr(m))},e.fn.symbol=function(){var t,r=this,n=arguments,a=n.length-1,i=n[a];return i&&i.constructor===e.el.constructor?n[a]=void 0:i=void 0,(t=r.path(void 0,i)).ca.symbol=e.fn.symbol.ca.symbol,n.length===!!i+0?t:t.attr("symbol",n)},e.fn.getSuggestiveRotation=function(){var e,t,r,n;return e=arguments[0],1===arguments.length?(t=e.angle,r=e.x,n=e.y):(t=e,r=arguments[1],n=arguments[2]),"r"+(t=t||0)+","+r+","+n},e.fn.symbol.cache={"":e._cacher((function(e,t,r,n){var a=r;return arguments.length>3?["M",e,t,"h",a,"v",n,"h",-a,"v",-n,"z"]:["M",e-a,t-a,"h",a*=2,"v",a,"h",-a,"v",-a,"z"]}))},e.fn.symbol.ca={symbol:function(t){var r,n,a=this,i=t,o=e.is(i,"object")&&1===arguments.length&&!e.is(i,"function")?i:arguments;o===i&&(i=o[0]),n=(r=e.is(i,"function")&&i||e.fn.symbol.cache[i]||e.fn.symbol.cache[""])&&r.apply(e,d.call(o,1)),e.is(n,"array")||e.is(n,"string")?a.attr("path",n):n&&a.attr(n)}},e.addSymbol=function(t,r){var n,a,i=r,o=e.fn.symbol.cache,s=[];for(a in n=e.is(i,"function")&&((n={})[t]=i,n)||t)i=n[a],o[a]=e.is(i,"function")&&e._cacher(i,e)||(s.push(a),i);for(a=s.pop();a;)o[a]=o[o[a]],a=s.pop()}};var n=r(184)},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=function(e){var t=function(e){return function(){e.hide();for(var t=0,r=e._.gridElem&&e._.gridElem.length;t<r;t++)e._.gridElem[t].remove();e._.gridElem=[],e._attr({src:e._._src}),setTimeout((function(){e.show()}),100)}},r=function(e,t,r){return function(){var n,i,o,s=a(e._.imageGridAttr,t),l=1,c=1,u=1;if(s.tileInfo&&(l=s.tileInfo.xCount,c=u=s.tileInfo.yCount,o=s.y,delete s.tileInfo),e._.gridElem){for(i=0;i<e._.gridElem.length;i++)e._.gridElem[i].remove();e._.gridElem.length=0}for(i=0;l&&s.width&&s.height;)u--,0===i?e.attr(r?Object.assign(s,{applysrc:e._._src}):s):(n=e.clone().attr({x:s.x,y:s.y}),e._.gridElem.push(n.follow(e,void 0,"after"))),s.y+=s.height,0===u&&(u=c,l--,s.x+=s.width,s.y=o),i++}},a=function(e,t){var r;if(e){var a=e.displayMode,i=e.vAlign,o=e.hAlign,s=e.scale,l=e.canvasBorderWidth,c=e.canvasWidth,u=e.canvasHeight,d=t.width*(s/100),h=t.height*(s/100),f=c-2*l,g=u-2*l;r=(0,n.getAlignImage)(i,o,a,d,h,c,u,l,f,g)}return r||{x:0,y:0,width:t.width,height:t.height}};e.define&&e.define([{name:"imagegrid",imagegrid:function(){var n,a,i=this,o=arguments,s=o.length-1,l=o[s];return l&&l.constructor===e.el.constructor?o[s]=void 0:l=void 0,n=new Image,(a=i.image(l))._.gridElem=[],a._.refImage=n,a._attr=a.attr,a.attr=function(e,t){var r=e,n=Array.isArray(r),i=!n&&"object"==typeof r,o="string"==typeof r;if(n&&(i="object"==typeof(r=r[0])),i){var s=Object.assign({},r),l=s&&s.src,c=s&&s.applysrc;delete s.src,delete s.applysrc,l&&delete a._._src,a._attr(s),l&&a._attr({_src:l}),c&&a._attr({src:c})}else{if(void 0===r&&void 0===t)return this.attrs;if(void 0===t)return this.attrs[r];o&&t&&("src"===r?a._attr({_src:t}):"applysrc"===r?a._attr({src:t}):a._attr({name:t}))}return this},n.onload=r(a,n,!0),n.onerror=t(a),a},ca:{imagegrid:function(e,t,n,a,i,o,s){void 0===a&&(a=100),void 0===i&&(i=0),void 0===o&&(o=0),void 0===s&&(s=0);var l=this,c=t,u=n;"tile"===e||"fill"===e||"fit"===e?("top"!==c&&"middle"!==c&&"bottom"!==c&&(c="middle"),"left"!==u&&"middle"!==u&&"right"!==u&&(u="middle")):("top"!==c&&"middle"!==c&&"bottom"!==c&&(c="top"),"left"!==u&&"middle"!==u&&"right"!==u&&(u="left")),l._.imageGridAttr={displayMode:e,vAlign:c,hAlign:u,scale:a,canvasBorderWidth:i,canvasWidth:o,canvasHeight:s},this._._src&&r(l,l._.refImage)()},_src:function(e){return this._.refImage.src=e,this._._src=e,{_src:e}}}}])};var n=r(189)},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=function(e){var t,r,n,s=window,l=s.document,c=/msie/i.test(s.navigator.userAgent)&&!s.opera,u="VML"===e.type,d={cursor:"cursor"},h={x:"left",y:"top",strokeWidth:"borderThickness","stroke-width":"borderThickness",width:"width",height:"height"},f={fill:"backgroundColor",stroke:"borderColor",color:"color"},g={left:0,top:0,padding:0,border:"none",margin:0,outline:"none","-webkit-apperance":"none",position:"absolute",zIndex:20},p=new o["default"],m=function(e,t,r,n){var a,i=l.createElement(e);for(a in t)h[a]?i.style[a]=t[a]:i.setAttribute(a,t[a]);for(a in r)i.style[a]=r[a];return n&&n.appendChild&&n.appendChild(i),i};(t=(n=function(e,t,r){var a=t;a&&a instanceof n&&(a=a.element),this.element=m(e,r,g,a),this.nodeName=e.toLowerCase(),this.added=Boolean(a),this.attrs={}}).prototype={attr:function(e){var t,r,n,a,i,o,s,g,p,m,v,b=this.element,y={};if("object"!=typeof e)return void 0!==this[e]?this[e]:function(e,t,r){var n,a;if("string"==typeof t)null!=r?e.setAttribute(t,r):e&&e.getAttribute&&(a=e.getAttribute(t));else if(null!=t&&"object"==typeof t)for(n in t)e.setAttribute(n,t[n]);return a}(b,e);for(t in e){if(n=e[t],d[t]){switch(t){case"cursor":"pointer"===n&&u&&(n="hand")}b.style[d[t]]=n,a=!0}else if(h[t])b.style[h[t]]=n+"px",a=!0;else if(f[t])b.style[f[t]]=(v=n)&&v.replace(/^#?([a-f0-9]+)/gi,"#$1")||"none",a=!0;else if(/^visibility$/i.test(t))i="hidden"===n,b.style.display=i?"none":"",this.hidden=i,a=!0;else if(/^opacity$/i.test(t))b.style.opacity=n,c&&(r=100*Number(n),b.style.filter="progid:DXImageTransform.Microsoft.Alpha(Opacity="+r+")"),a=!0;else if(/^innerhtml$/i.test(t)){if(u&&"select"===b.nodeName.toLowerCase()){for(o=n.match(/<option\s?[\s\S]*?(\/>|><\/option>|>[\s\S]*?<\/option>)/gi);b.firstChild;)b.removeChild(b.firstChild);for(g=0,p=o.length;g<p;g+=1)s=o[g],m=l.createElement("option"),/<option\s([\s\S]*[\'\"])\s*?(\/>|>[\s\S]*<\/option>)/gi.test(s)&&(m.value=s.replace(/<option\s([\s\S]*[\'\"])\s*?(\/>|>[\s\S]*<\/option>)/gi,"$1").replace(/[\s\S]*value\s*\=\s*[\'\"]([\s\S]*)[\'\"]/,"$1")),m.text=s.replace(/<option\s*[\s\S]*[\'\"]?\s*?[\/>|\>]([\s\S]*)<\/option>/gi,"$1 "),b.options.add(m)}else"input"!==b.nodeName.toLowerCase()&&void 0!==n&&(b.innerHTML=n||"");a=!0}else/^text$/i.test(t)?("input"!==b.nodeName.toLowerCase()&&(b.innerHTML="",void 0!==n&&b.appendChild(l.createTextNode(n))),a=!0):/^type$/i.test(t)&&c&&this.added&&(a=!0);a&&(y[t]=n,delete e[t],a=!1)}for(t in e)b.setAttribute(t,e[t]);for(t in y)this[t]=this.attrs[t]=e[t]=y[t],delete y[t];return this},val:function(e){var t=this.element,r=void 0===e;if("input"===this.nodeName&&"checkbox"===t.getAttribute("type"))return r?this.checked()?1:0:this.checked(e);if("select"===this.nodeName){var n=t.childNodes,a=t.selectedIndex,o=n.length;if(""===e)return;if(!r)for(var s=0;s<o;s++)if(n[s].value===e)return t.selectedIndex=s,n[s].value;return i.isIE9&&(a=0),r?n[a].value:(n[o-1].value=e,t.selectedIndex=o-1,this)}return r?t.value:(t.value=e,this)},checked:function(e){var t=this.element;return void 0===e?t.checked:(e?t.setAttribute("checked","checked"):t.removeAttribute("checked"),this)},css:function(e,t){var r,n=this.element.style;if("object"==typeof e)for(r in e)n[r]=e[r];else r&&void 0!==t&&(n[r]=t);return this},translate:function(e,t){var r=this.element;return void 0!==e&&(r.style.left=e+"px"),void 0!==t&&(r.style.top=t+"px"),this},add:function(e,t){var r=this.element,n=e.element;return t?n.insertBefore(r,n.firstChild):n.appendChild(r),this.added=!0,this},hide:function(){return this.element.style.display="none",this},show:function(){return this.element.style.display="",this},isVisible:function(){return"none"!==this.element.style.display},focus:function(){"function"==typeof this.element.focus?this.element.focus():a["default"].fire(this.element,"focus")},destroy:function(){var t,n=this.element||{};for(t in n.onclick=n.onmouseout=n.onmouseover=n.onmousemove=n.onblur=n.onfocus=null,n=function(e){r||(r=m("div")),e&&r.appendChild(e),r.innerHTML=""}(n),delete this.element,this)this[t]="function"==typeof this[t]?e._removedFactory(t):null;return this.removed=!0,null},on:u?function(e,t){return this.element["on"+e]=function(){var e=s.event;e.target=e.srcElement,t(e)},this}:function(e,t){var r=t;return p.on(this.element,e,r),this},off:function(e,t){p.off(this.element,e,t)},bind:function(e,t,r){return a["default"].listen(this.element,e,t,r),this},unbind:function(e,t){return a["default"].unlisten(this.element,e,t),this},trigger:function(e,t){return a["default"].fire(this.element,e,t),this}}).remove=t.destroy,t.constructor=n,e.fn.html=function(t,r,a,i){var o,s,l={};for(s in r&&"type"in r&&(l.type=r.type,delete r.type),o=new n(t,i,l).css(a).attr(r),l)r[s]=l[s];return o.ca=function(){return!1},o.appendTo=function(e){var t=e;this.parent=t,t&&t instanceof n&&(t=t.element),t.appendChild(this.element)},o.animateWith=e.el.animateWith,o}};var a=n(r(186)),i=r(184),o=n(r(223))},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(224)),i=n(r(225)),o={elementInfo:[]},s={mouseover:"pointerover",mousedown:"pointerdown",mousemove:"pointermove",mouseup:"pointerup",mouseout:"pointerout"},l={mouseover:"touchstart",mousedown:"touchstart",mouseup:"touchend",mousemove:"touchmove",mouseout:"touchend"},c=window.navigator,u="ontouchstart"in document||c.maxTouchPoints||c.msMaxTouchPoints,d="onpointerover"in document,h=function(e,t,r,n){var a;switch(void 0===n&&(n=e),t){case"fc-click":return function(e,t,r){var n,a,i,o,s,l;if(void 0===r&&(r=e),!e._clickHandlerHelper){var c=function(t){e._lastEventTriggered="mousedown",o=void 0!==t.clientX?t.clientX:t.changedTouches&&t.changedTouches[0].clientX,s=void 0!==t.clientY?t.clientY:t.changedTouches&&t.changedTouches[0].clientY},h=function(t){var r=void 0!==t.clientX?t.clientX:t.changedTouches&&t.changedTouches[0].clientX,n=void 0!==t.clientY?t.clientY:t.changedTouches&&t.changedTouches[0].clientY;(Math.abs(o-r)>=2.5||Math.abs(s-n)>=2.5)&&(e._lastEventTriggered=void 0)};for(a in l=!d&&u?{touchstart:function(){e._lastEventTriggered="touchstart",e._lastEventTriggeredAt=(new Date).getTime()},touchmove:h}:d&&u?{pointerdown:c,pointermove:h}:{mousedown:c,mousemove:h})e.addEventListener?e.addEventListener(a,l[a]):e.attachEvent("on"+a,l[a]);e._clickHandlerHelper=l,e._clickEventCount=0}return++e._clickEventCount,!d&&u?(a="touchend",i=function(n){"touchstart"===e._lastEventTriggered&&(new Date).getTime()-e._lastEventTriggeredAt<=500&&setTimeout((function(){t.call(r,n)}),0)}):(a="click",i=function(n){"mousedown"===e._lastEventTriggered&&t.call(r,n)}),(n={})[a]=i,n}(e,r)}var i,c=t,h=c.match(/fc-/),f=r;return h&&(c=c.replace(/fc-/,"")),h&&u&&(i=c,c=(d?s[c]:l[c])||c,"mouseout"===i&&(f=function(e){d&&u&&!e.isPrimary||(o.elementInfo.push({el:n,callback:r}),o.srcElement=e.srcElement||e.target)},c=d?"pointerover":"touchstart")),f===r&&(f=function(e){(!d||!u||e.isPrimary)&&r.call(n,e)}),(a={})[c]=f,a};u&&document.addEventListener(d?"pointerover":"touchstart",(function(e){if(o.srcElement&&o.srcElement!==(e.srcElement||e.target)){var t,r,n=o.elementInfo,a=n.length;for(r=0;r<a;r++)(t=n[r]).callback.call(t.el,e)}o={elementInfo:[]}}),!0);var f=function(){function e(){this.mapper=new a["default"]}var t=e.prototype;return t.on=function(e,t,r,n){void 0===n&&(n={});var a,o,s=this.mapper,l=[e,t,r];if((0,i["default"])(l)&&!(a=s.getValue(l))){for(o in a=h(e,t,r),s.setValue(l,a),a)e.addEventListener?e.addEventListener(o,a[o]):e.attachEvent("on"+o,a[o]);return!0}return!1},t.off=function(e,t,r){var n,a,o=this.mapper,s=[e,t,r];if((0,i["default"])(s)&&(n=o.getValue(s))){for(a in function(e,t){switch(t){case"fc-click":(function(e){var t,r=e._clickHandlerHelper;if(!--e._clickEventCount){for(t in r)e.removeEventListener?e.removeEventListener(t,r[t]):e.detachEvent("on"+t,r[t]);e._clickHandlerHelper=void 0}})(e)}}(e,t),n)e.removeEventListener?e.removeEventListener(a,n[a]):e.detachEvent("on"+a,n[a]);return o.clear(s),!0}return!1},e}();t["default"]=f},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n=function(){function e(){this.map=new Map}var t=e.prototype;return t.clear=function(e){var t=this;void 0===e&&(e=[]);var r=this.map,n=e.length;e.forEach((function(a,i){r&&(i===n-1&&r["delete"]?(r["delete"](a),r.size||(e.pop(),t.clear(e))):r=r.has(a)&&r.get(a))}))},t.setValue=function(e,t){void 0===e&&(e=[]);var r=this.map,n=e.length;e.forEach((function(e,a){if(r.has(e))r=r.get(e);else if(a===n-1)r.set(e,t);else{var i=new Map;r.set(e,i),r=i}}))},t.getValue=function(e){void 0===e&&(e=[]);var t=this.map;return e.forEach((function(e){t=t&&t.get&&t.get(e)})),e.length&&t},e}();t["default"]=n},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]=function(e){return e.filter((function(e){return!!e})).length===e.length}},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=function(e){var t=[{reg:/xmlns\=\"http\:\/\/www.w3.org\/2000\/svg\"/gi,repStr:""},{reg:/^.*<svg /,repStr:'<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" '},{reg:/\/svg>.*$/,repStr:"/svg>"},{reg:/<desc\>[^<]*<\/desc\>/,repStr:""},{reg:/zIndex="[^"]+"/g,repStr:""},{reg:/url\((\\?[\'\"])[^#]+#/g,repStr:"url($1#"},{reg:/ href=/g,repStr:" xlink:href="},{reg:/(id|class|width|height)=([^" >]+)/g,repStr:'$1="$2"'},{reg:/:(path|rect)/g,repStr:"$1"},{reg:/<ima?ge? ([^\>]+?[^\/])\>/gi,repStr:"<image $1 />"},{reg:/<\/ima?ge?\>/g,repStr:""},{reg:/style="([^"]+)"/g,repStr:function(e){return e.toLowerCase()}},{reg:/NS\d+\:href=/g,repStr:"xlink:href="}],r=function(e){var t=JSON.stringify(e);return t=t=(t=(t=(t=t.replace(/([a-z]+)([A-Z]+)([a-z]+)/g,(function(e,t,r,n){return t+"-"+r.toLowerCase()+n}))).replace(/\"\,\"/g,'";"')).replace(/\"/g," ")).replace(/\{|\}/g,"")};e.svg&&(e.fn.toSVG=function(e){var n,a="",i=0,o=t.length;if(this.canvas&&this.canvas.parentNode){for(a=this.canvas.parentNode.innerHTML;i<o;i+=1)n=t[i],a=a.replace(n.reg,n.repStr);this._stylesheet&&this._stylesheet.rules&&(a=function(e,t){var n,a,i,o,s,l,c,u=e,d=function(e){var t=e;return t=t.match(/style\s*=/)?t.replace(/(style\s*=")([^"]+)/g,(function(e,t,r){return t+o+r})):t.replace(/class\s*="[^"]*"/i,(function(e){return e+' style="'+o+'" '}))};for(n in t)if(t.hasOwnProperty(n))for(l in a=/\s+/,i=n.split(a),o=r(t[n]),i)i.hasOwnProperty(l)&&(s=i[l].trim().replace(".",""),c=new RegExp("<[^>]+("+s+")[^>]+","g"),u=u.replace(c,d));return u}(a,this._stylesheet.rules))}return e||(a=a.replace(/<image[^\>]*\>/gi,(function(e){return e.match(/href=\"data\:image/i)?e:""}))),a})}},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=t._mouseEvtHandler=void 0;var a=n(r(198)),i=r(184),o=r(191),s=n(r(228)),l=r(199),c=n(r(229)),u=r(192),d=n(r(230)),h=r(196),f={attributes:!0,subtree:!0,characterData:!0,childList:!0},g=function(e){return String.fromCharCode(e)},p=function(e){return e.map(g).join("")},m=p([99,114,101,100,105,116,76,97,98,101,108]),v=p([99,114,101,100,105,116,103,114,111,117,112]),b=[65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122].map(g),y=function(){return b[Math.floor((e=0,t=b.length,Math.random()*(t-e)+e))];var e,t},x=i.txtLabel,C=function(e,t,r){var n,a,o,s,l,c,u,d,h=r.mouseTracker,f=t.originalEvent,g=e.config.datasetOrder||e.getDatasets(),p=!1,m=g.length,v=h._lastDatasetIndex,b=h._lastPointIndex;for(a=(n=(0,i.getMouseCoordinate)(e.getFromEnv("chart-container"),f,e)).chartX,o=n.chartY;m--&&!p;)(s=g[m])&&s.getState("visible")&&(l=s._getHoveredPlot&&s._getHoveredPlot(a,o))&&l.hovered&&(p=!0,l.datasetIndex=m,d=h.getMouseEvents(t,l.datasetIndex,l.pointIndex));if((!p||d&&d.fireOut)&&void 0!==v&&g[v]&&g[v]._firePlotEvent&&(d&&!d.events.length?h.mouseoutTimer=setTimeout((function(){e.mouseoutHandler(t,v,b)}),20):(e.mouseoutHandler(t,v,b),clearTimeout(h.mouseoutTimer))),p)for((u=d.events&&d.events.length)&&(h._lastDatasetIndex=l.datasetIndex,b=h._lastPointIndex=l.pointIndex),c=0;c<u;c+=1)s&&s._firePlotEvent&&s&&s._firePlotEvent&&s._firePlotEvent(d.events[c],b,t,l.datasetIndex)};t._mouseEvtHandler=C;var w=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e),t.getName=function(){return"base"};var r=t.prototype;return r.setDummyEImethods=function(e){var t=this.config,r=t._eiStore||(t._eiStore={}),n=function(e){return(d["default"][e]||[]).concat(d["default"]["*"])}(e),a=this.getFromEnv("chartInstance");n.forEach((function(e){var t;!a[e]&&(a[e]=(t=e,function(){!r[t]&&(r[t]=[]),r[t].push(arguments)}))})),a.addEventListener("renderComplete",(function(){var e=function(e){r[e].forEach((function(t){a[e].apply(a,t)}))};for(var n in r)e(n);t._eiStore={}}))},t.getType=function(){return"chartAPI"},r.mouseoutHandler=function(e,t,r){var n=this.config.datasetOrder||this.getDatasets(),a=this.getChildren("mouseTracker")[0];n[t]&&n[t].components.data[r]?n[t]._firePlotEvent("fc-mouseout",r,e):this.getFromEnv("toolTipController").hideAll(),delete a._lastDatasetIndex,delete a._lastPointIndex},r.getName=function(){return"base"},r.getType=function(){return"chartAPI"},r._mouseEvtHandler=function(e,t){C(this,e,t)},r.getComponents=function(e,t){var r=[];return(e||this).iterateComponents((function(e){e.getType()===t&&r.push(e)})),r},r.getDatasets=function(e){var t=[];return(e||this).iterateComponents((function(e){"dataset"===e.getType()&&t.push(e)})),t},r.preConfigure=function(t){e.prototype.preConfigure.call(this,t),function(e,t){var r;for(r in t)t.hasOwnProperty(r)&&(e[r]=t[r])}(this.getFromEnv("chartInstance"),this.eiMethods)},r.configureAttributes=function(t){e.prototype.configureAttributes.call(this,t),this.createBaseComponent()},r.createBaseComponent=function(){var e,t=this;(e=t.getFromEnv("animationManager"))?e.configure():(e=new c["default"],t.addToEnv("animationManager",e),e.addToEnv("chart",t),e.addToEnv("animationManager",e),e.configure(),t.addExtEventListener("animationstart",(function(e){var r=e.data.duration;r&&t.fireChartInstanceEvent("animationinvoked",{duration:r})}),e))},r.setChartMessage=function(e,t,r){var n,a,o=r;(0,i.componentFactory)(this,s["default"],"chartMessage"),a=this.getChildren("chartMessage")[0],o?this.addToEnv("chart-container",o):o=this.getFromEnv("chart-container"),(n=this.getFromEnv("paper"))||((n=new((0,u.getDep)("redraphael","plugin"))(o,this.getFromEnv("chartWidth"),this.getFromEnv("chartHeight"))).setHTMLClassName("fusioncharts-div"),this.addToEnv("paper",n)),n.setConfig("stroke-linecap",i.ROUND),!this.getChildContainer("messageGroup")&&this.addChildContainer("messageGroup",n.group("messageGroup")),this.config.hasChartMessage=!0,a.setData({message:e,chartObj:t,visible:!0},!0)},r.drawChartMessage=function(){this.config.hasChartMessage=!0,this._drawTexts()},r._dispose=function(){this._clearTimers&&this._clearTimers();var t=this.getFromEnv("paper");t&&t.remove&&t.remove(),e.prototype._dispose.call(this)},r.fireChartInstanceEvent=function(e,t,r,n,a){var i=this.getFromEnv("chartInstance");(0,o.triggerEvent)(e,i,t,r,n,a)},r._hideChartMessage=function(){var e=this.getChildren("chartMessage");this.config.hasChartMessage=!1,e&&e[0].setData({visible:!1},!0),this.getGraphicalElement("messageText")&&this.getGraphicalElement("messageText").hide(),this.getGraphicalElement("messageVeil")&&this.getGraphicalElement("messageVeil").hide()},r._removeWaitingJobs=function(){this.iterateComponents((function(e){return e.removeAllJobs()}))},r._drawTexts=function(){var e=this.getFromEnv("core-options")[m],t=this.getFromEnv("chartInstance").args[m],r=(0,i.pluck)(t,e,x);this._crCreate(r),r&&this._scheduleLabelCheck(r)},r._scheduleLabelCheck=function(e){var t=this;t.addJob("checker",(function(){var r,n=t.getContainer(v);!n||(r=n).node&&r.node.parentNode&&11!==r.node.parentNode.nodeType||t._crCreate(e),t._scheduleLabelCheck(e)}),h.priorityList.verification,{oneInAFrame:!0,addToTop:!1,executionDelay:300})},r._crCreate=function(e){var t,r,n,a,o=this,s=o.getFromEnv("paper"),l=+o.getFromEnv("chartHeight"),c=o.getGraphicalElement(m),u=o.getContainer("parentgroup"),d={href:i.TXT_HREF,text:i.TXT_STRING};e?(o.getContainer(v)&&o.removeContainer(v),c&&o.removeGraphicalElement(c),r=o.addContainer(v,s.group(function(e){void 0===e&&(e=8);for(var t=i.BLANK,r=0;r<e;r++)t+=y();return t}(),!0)),u&&r.insertAfter(u),n={text:d.text,x:6,y:l-4,"vertical-align":i.POSITION_BOTTOM,"text-anchor":i.POSITION_START,fill:"rgba(0,0,0,0.5)",title:d.title||i.BLANK},a={fontSize:9,fontFamily:"Verdana,sans",cursor:i.POINTER,_cursor:i.HAND},t=s.text(n,a,r),o.addGraphicalElement(m,t),o.config.observer?o.config.observer.disconnect():o.config.observer=new MutationObserver((function(){return o._crCreate(e)})),o.config.observer.observe(o.getContainer(v).node,f),t.on("fc-click",(function(){try{open(d.href)}catch(e){(top||window).location.href=d.href}}))):t&&t.remove&&(o.config.observer&&o.config.observer.disconnect(),o.removeGraphicalElement(m))},r._hideModal=function(){this.getChildContainer("messageGroup").hide()},r.remove=function(t){var r=this.getFromEnv("animationManager");this.config.observer&&this.config.observer.disconnect(),e.prototype.remove.call(this,t),r&&r.remove(t)},t}(l.ComponentInterface);w.stringConstants={BACKGROUNDLOADED:"BackgroundLoaded",BACKGROUNDLOADERROR:"BackgroundLoadError",clipRectStr:"clip-rect"};var _=w;t["default"]=_},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(199),o=r(184),s=o.preDefStr.noneStr,l=function(e,t){e.on("fc-click",(function(){try{open(t)}catch(e){(top||window).location.href=t}})),e.css({cursor:"pointer",_cursor:"pointer"})},c=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.getName=function(){return"chartMessage"},r.configureAttributes=function(t){e.prototype.configureAttributes.call(this,t);var r=this.config;for(var n in t)t.hasOwnProperty(n)&&(r[n]=t[n])},r._drawBackground=function(e,t){void 0===t&&(t={});var r,n,a,i,c=this,u=c.config,d=c.getFromEnv("paper"),h=c.getFromEnv("chart"),f=u.visible,g=c.getGraphicalElement("backgroundElement"),p=c.getGraphicalElement("backgroundImage"),m=c.getFromEnv("chartWidth"),v=c.getFromEnv("chartHeight"),b=c.getLinkedParent().getChildContainer("messageGroup").show(),y=(0,o.pluckNumber)(t.imageAlpha,100),x=0+o.COMMA+0+o.COMMA+m+o.COMMA+v,C=(0,o.getValidValue)(t.imageVAlign,o.BLANKSTRING).toLowerCase(),w=(0,o.pluck)(t.imageHAlign,o.BLANKSTRING).toLowerCase(),_=(0,o.pluckNumber)(t.imageScale,100),k=c.getFromEnv("chartInstance"),S=u.messageURL,E=(0,o.getContainerBackgroundColor)(k);d.canvas.style.backgroundColor=E,C!==o.POSITION_TOP&&C!==o.POSITION_MIDDLE&&C!==o.POSITION_BOTTOM&&(C=o.POSITION_TOP),w!==o.POSITION_LEFT&&w!==o.POSITION_MIDDLE&&w!==o.POSITION_RIGHT&&(w=o.POSITION_LEFT),n={x:0,y:0,width:m,height:v,stroke:s},g||(g=d.rect(b),c.addGraphicalElement("backgroundElement",g)),g.attr(n),g&&S&&l(g,S),u.bgImageVAlign=C,u.bgImageHAlign=w,u.bgImageScale=_,u.bgSWFAlpha=y,u.imgClipRect=x,e&&((r=p)?r.attr({src:e}):(r=c.getFromEnv("paper").image(b),c.addGraphicalElement("backgroundImage",r),r.attr({src:e}),r.on("load",(function(){if(!(!r||r&&r.removed)){var t=r._.RefImg;a=c.getFromEnv("chartConfig"),u.isImage&&(void 0===a||a.hasChartMessage)&&(i=(0,o.setImageDisplayMode)(s,u.bgImageVAlign,u.bgImageHAlign,u.bgImageScale,0,c.getFromEnv("chartWidth"),c.getFromEnv("chartHeight"),t),(0,o.extend2)(i,{opacity:.01*u.bgSWFAlpha,visibility:"visible","clip-rect":u.imgClipRect}),r.attr(i),f?r.show():r.hide(),r&&S&&l(r,S),h.fireChartInstanceEvent("backgroundloaded",{url:e,bgImageAlpha:100*u.bgSWFAlpha,bgImageDisplayMode:s,bgImageVAlign:u.bgImageVAlign,bgImageHAlign:u.bgImageHAlign,bgImageScale:u.bgImageScale,imageWidth:t.width,imageHeight:t.height}))}})),r.on("error",(function(t){r.removed||h.fireChartInstanceEvent("backgroundloaderror",{url:e,bgImageAlpha:100*u.bgSWFAlpha,error:t,bgImageDisplayMode:s,bgImageVAlign:u.bgImageVAlign,bgImageHAlign:u.bgImageHAlign,bgImageScale:u.bgImageScale},k)}))))},r.configure=function(t){e.prototype.configure.call(this,t);var r,n=this.getFromEnv("chartInstance"),a=n.options,i=n.args,s=this.config,l=s.message,c=s.chartObj;(s.strObj=(0,o.getImageURL)(void 0!==l?l:a.dataEmptyMessage)).image?(r=c?{imageHAlign:(0,o.pluck)(c._chartMessageImageStyle.imageHAlign,a.baseChartMessageImageHAlign).toLowerCase(),imageVAlign:(0,o.pluck)(c._chartMessageImageStyle.imageVAlign,a.baseChartMessageImageVAlign).toLowerCase(),imageAlpha:(0,o.pluckNumber)(c._chartMessageImageStyle.imageAlpha,a.baseChartMessageImageAlpha),imageScale:(0,o.pluckNumber)(c._chartMessageImageStyle.imageScale,a.baseChartMessageImageScale)}:{imageHAlign:(0,o.pluck)(i.dataEmptyMessageImageHAlign,a.baseChartMessageImageHAlign).toLowerCase(),imageVAlign:(0,o.pluck)(i.dataEmptyMessageImageVAlign,a.baseChartMessageImageVAlign).toLowerCase(),imageAlpha:(0,o.pluckNumber)(i.dataEmptyMessageImageAlpha,a.baseChartMessageImageAlpha),imageScale:(0,o.pluckNumber)(i.dataEmptyMessageImageScale,a.baseChartMessageImageScale)},s.chartMessageType="image"):(r=c?{"font-family":c._chartMessageStyle.fontFamily||a.baseChartMessageFont,"font-size":c._chartMessageStyle.fontSize||a.baseChartMessageFontSize,fill:c._chartMessageStyle.color||a.baseChartMessageColor}:{"font-family":i.dataEmptyMessageFont||a.baseChartMessageFont,"font-size":i.dataEmptyMessageFontSize||a.baseChartMessageFontSize,fill:i.dataEmptyMessageColor||a.baseChartMessageColor},s.chartMessageType="text"),s.messageURL=a.messageURL,s.chartMessageStyle=r},r.manageSpace=function(){var e,t,r,n=this.config,a=n.chartMessageStyle,i=this.getFromEnv("smartLabel"),s=n.strObj,l=this.getFromEnv("chartWidth"),c=this.getFromEnv("chartHeight");t=n.width=Number(l),e=n.height=Number(c),s.image?r=s.string:(i.setStyle(a),r={text:i.getSmartText((0,o.parseUnsafeString)(s.string),t,e).text,x:t/2,y:e/2}),n.chartMessageAttr=r},r.draw=function(){var e,t,r,n=this.config,a=this.getFromEnv("paper"),i=n.visible,s=n.isImage="image"===n.chartMessageType,c=n.messageURL,u=s?n.chartMessageAttr:(0,o.extend2)(n.chartMessageAttr,n.chartMessageStyle);e=this.getGraphicalElement("messageText"),r=this._graphics,t=this.getLinkedParent().getChildContainer("messageGroup").show(),s?this._drawBackground(n.chartMessageAttr,n.chartMessageStyle):e||"text"!==n.chartMessageType?(r.message=e.attr(u),i?e.show():e.hide()):e=this.addGraphicalElement("messageText",a.text(u,t)),(e||r.message)&&c&&l(e||r.message,c),this._hideOtherMessage(s)},r._hideOtherMessage=function(e){var t,r,n;e?(r=this.getGraphicalElement("messageText"))&&r.hide():(t=this.getGraphicalElement("backgroundImage"),n=this.getGraphicalElement("backgroundElement"),t&&t.hide(),n&&n.hide())},r.getType=function(){return"chartMessage"},t}(i.ComponentInterface);t["default"]=c},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a,i=n(r(201)),o=n(r(198)),s=r(184),l=r(196),c=r(199),u=r(192),d=!s.hasSVG,h={initial:1,update:0,realTimeUpdate:0,resize:0,dispose:0,legendInteraction:0,scroll:0,mouseOut:0,mouseOver:0,"default":0,slicing:.25,timenavSqueeze:0,selectedRange:0,timenavScroll:0},f=["default","global","chartSpecific"],g={fadeIn:{opacity:{start:0,end:1}},fadeOut:{opacity:{start:1,end:0}}},p={fadeIn:function(){this&&this.show()},fadeOut:function(){this&&this.hide()}},m=function(e){return null===e},v=function(e,t){void 0===t&&(t="");var r=t.split(","),n=[];return r.forEach((function(t){e[t]&&e[t].animation&&n.push(e[t].animation)})),n},b=function(e,t,r){var n,a=Object.assign({},e),i=r/t;return i>.2&&(i=.2),n=a.end-a.start,a.start*=1-i,a.start+=i,a.end=a.start+(1-i)*n,a.start=Math.round(100*a.start)/100,a.end=Math.round(100*a.end)/100,a},y=function(e,t,r){var n,i=g[t],o=s.BLANKSTRING,l={};if(i&&e&&e.el&&e.el[0]){for(o in i)l[o]=e.el.attrs[o],l[o]===a&&(l[o]=null),e.attrs[o]=i[o].end,e.el.attr(o,i[o].start);n=e.callback,e.callback=function(){r&&p[t]&&p[t].call(this),n&&n.call&&n.call(this),this.attr(l)}}},x=function(e,t){var r,n=t,a=!0;if(n){for(e.attrs=e.attrs||{},~(n=n.split("-")).indexOf("nc")&&(a=!1),r=n.length;r--;)y(e,n[r],a);return e}},C=function(e,t,r,n,a,i,o,s){e.animateWith(a,i,t,o,s,r,n)},w=function(e){var t={};for(var r in e)if(e.hasOwnProperty(r)&&"__esModule"!==r){var n=e[r];_(t,n)}return t},_=function(e,t){for(var r in t)t.hasOwnProperty(r)&&(!e[r]&&(e[r]=[]),e[r].push(t[r]))},k=function(e){return"function"==typeof e};function S(e,t,r,n){var a,i,o,s,l,c=e.length,u=0,d=0,h=t;for(i=0,o=0,l=0;l<c;l+=1)(a=e[l]).hasAnimation||!1===a.collapsible?o+=1:i+=a.duration,d+=a.duration;for(i/=o,l=0;l<c;l+=1)(a=e[l]).hasAnimation&&(s=r-t,h=(u=h)+(a.duration/d+i)*s,n[a.name]={start:u,end:h,effect:a.effect,transition:a.transition},a.child&&A(a.child,u,h,n))}function E(e,t,r,n){var a,i,o;i=t+(i=e.start)*(a=r-t),o=t+(o=e.end)*a,n[e.name]={start:i,end:o,effect:e.effect,transition:e.transition},e.child&&A(e.child,i,o,n)}function A(e,t,r,n){var a,i,o=e.length;for(a=0;a<o;a++)i=e[a],Array.isArray(i)?S(i,t,r,n):E(i,t,r,n)}g.fadein=g.fadeIn,g.fadeout=g.fadeOut;var T=function(e){(0,o["default"])(r,e);var t=r.prototype;function r(){var t;t=e.call(this)||this;var r=(0,i["default"])(t);return r._removedGraphics=[],r._animCallBack=function(){if(!r.getState("removed")&&!this.removed){var e=r.getAnimationState();r._removeElems(),r.reset(),r.fireEvent("animationComplete",{currAnimState:e})}},r.startAnimation=function(){r.kickStart(),r.animate()},t}return t.getType=function(){return"animationManager"},t.getName=function(){return"animationManager"},t.stopAnimation=function(){if(this.getState("chartAnimating")){var e,t=this.config.animationObj,r=t&&t.duration;r?(e=this.getGraphicalElement().dummyObj)&&e.stop(a,!0,!0):0===r&&(this.removeJob("anim-callBack"),this._animCallBack())}},t.kickStart=function(){var e,t,r,n=this.config,i=this.getGraphicalElement(),o=this.getFromEnv("paper"),s=n.animationObj,l=n.animationeffect;t=s.duration,s.animObj=r=(0,u.getDep)("redraphael","plugin").animation({x:0},t,l,this._animCallBack,!0),s.animType=l,(e=i.dummyObj)?e.attr({x:100}):(e=o.rect({x:100,y:0,width:10,height:30}),this.addGraphicalElement("dummyObj",e),e.hide()),s.dummyObj=i.dummyObj,e.stop(a,!0,!0),this.fireEvent("animationStart",{duration:t}),this.setState("chartAnimating",!0),e.animate(r)},t.setAnimationState=function(e){void 0===e&&(e=a),e&&this.stopAnimation(),this.config.__state=e,this._setAnimDuration(e)},t.getAnimationState=function(){return this.config&&this.config.__state},t._setAnimDuration=function(e){void 0===e&&(e="default");var t=this.config,n=t.animationObj||(t.animationObj={}),a=t.animationDuration||(t.animationDuration={}),i=this.getFromEnv("chart").getFromEnv("chart-attrib")||{},o=e+"AnimDuration",s=t.killSwitch?0:1e3*(a[o]||i[o.toLowerCase()]||r.getFallbackAnimDuration(e));n&&(n[o]=s,n.duration=+s)},t.configureAttributes=function(){var e=this.getFromEnv("chart"),t=e.config,r=this.config,n=e.getFromEnv("chart-attrib")||{};r.killSwitch=!(0,s.pluckNumber)(n.animation,t.animation,1),r.animationeffect=t.animationeffect||"linear",this.invokeAnimationRules(),!r.workingRules&&(r.workingRules={}),!r.animateArr&&(r.animateArr=[]),!r.animationName&&(r.animationName=[])},t.invokeAnimationRules=function(){var e,t=this.getFromEnv("chart"),n=t.getFromEnv("chart-attrib")||{},a=t.config||{},i=this.config,o=t.getFromEnv("chartInstance").args.animation,l=t.getFromEnv("core-options").defaultTheme,c=function(e){var t,r={};for(var n in e)e.hasOwnProperty(n)&&(r[(t=e[n]).name]=t);return r}((0,u.getDepsByType)("theme")),d=(t.getFromEnv("core-options")._globalAnimationRule||[]).concat(v(c,l)),h=(o&&[o]||[]).concat(v(c,a.theme));i.animationRules={global:w(d.map((function(e){return e&&e.rule})).filter((function(e){return e}))),chartSpecific:w(h.map((function(e){return e&&e.rule})).filter((function(e){return e}))),"default":w((0,u.getDepsByType)("animationRule"))},i.animationDuration=e={},d.map((function(t){return Object.assign(e,t.duration)})),h.map((function(t){return Object.assign(e,t.duration)})),e.initialAnimDuration=(0,s.pluckNumber)(e.initialAnimDuration,n.initialanimduration,n.animationduration),this.config.slots=r.getFallbackAnimTimeSlots().concat([].concat.apply([],d.map((function(e){return e.slots}))).filter((function(e){return e}))).concat([].concat.apply([],h.map((function(e){return e.slots}))).filter((function(e){return e})))},t.reInitialize=function(){var e=this.config.animationObj.duration;this.setState("initialized",!0),e?this.addJob("start-animation",this.startAnimation,l.priorityList.animation):(this.fireEvent("animationStart",{duration:e}),this.setState("chartAnimating",!0),this.addJob("anim-callBack",this._animCallBack,l.priorityList.animation))},t.reset=function(){this.setState("initialized",!1),this.config&&this.config.animateArr&&(this.config.animateArr.length=0),this.setState("chartAnimating",!1),this.setAnimationState()},t.registerAnimObj=function(e){var t;for(t in e)this.registerAnimation(e[t],t)},t.getFinalSlots=function(){var e=this.config,t=e.slots,r=e.workingRules={};return function n(e,t){var r,a,i,o,s,l,c=!1;if(!e)return!1;for(i=0,o=e.length;i<o;i+=1)if(a=e[i],Array.isArray(a))for(s=0,l=e[i].length;s<l;s+=1)a=e[i][s],r=!1,-1!==t.indexOf(a.name)?r=!0:a.child&&(r=a.hasAnimation=n(a.child,t)),c=c||r,a.hasAnimation=r;else r=!1,-1!==t.indexOf(a.name)?r=!0:a.child&&(r=a.hasAnimation=n(a.child,t)),c=c||r,a.hasAnimation=r;return c}(t,e.animationName),A(t,0,1,r),r["default"]={start:0,end:1},r},t.registerOne=function(e,t){this.registerAnimation([{data:[e]}],t)},t.registerAnimation=function(e,t){void 0===e&&(e=[]);var r,n,a,i=!1;for(r=0,a=e.length;r<a;r+=1)(n=e[r]).data&&n.data.length&&(this.config.animateArr.push((n.component=t,n)),i=!0);i&&this.config.animationName.push(t),!this.getState("initialized")&&this.reInitialize()},t.onAnimationComplete=function(e){this.addEventListener("animationComplete",(function(t){e(),t.detachHandler()}))},r.removeOpacityFromGroup=function(e,t){t&&d&&("group"===e||"group"===e.type)&&delete t.opacity},t.setAnimation=function(e){void 0===e&&(e={});var t,n,i,o,l,c,u,d,h,f,g,p,m,v,b=this.config,y=b.animationObj,x=e.el,C=e.attr||{},w={},_={},k=function(t,r,n,a){return function(){n.callback&&n.callback.call(this),t&&this.attr(t),r&&e.callback&&e.callback.call(this),a&&this.appendTo(a)}},S=function(e,t,r){return function(){t.hookFn&&t.hookFn.call(this),e&&this.attr(e),r&&this.appendTo(r)}},E=[],A=y.duration,T=this.getState("chartAnimating"),M="object"==typeof x&&e.container&&x.parent!==e.container;if(this.getState("chartAnimating")&&b.animationObj&&b.animationObj.duration&&this.setAnimationState("default"),!T&&A&&(h=this.getAnimAttributes(e))){for(d=h.length,v=!1,g=!(f="appearing"===e.state||"string"==typeof x)&&x.attrs,u={},c=0;c<d;c++){for(o in p=c===d-1,l=E[c]={},t=(m=h[c]).finalAttr,n=m.initialAttr,r.removeOpacityFromGroup(e.el,n),r.removeOpacityFromGroup(e.el,t),n)u[o]=n[o],_[o]===a&&(_[o]=n[o]);for(o in t)u[o]=t[o],f&&_[o]===a&&(_[o]=t[o]);if(l.attrs=t,l.transition=m.transition,l.effect=m.effect,l.animConfig=[m.startEnd],m.callback&&(l.callback=m.callback),(v=M&&m.changeGroup)&&(M=!1),p){if(f)for(o in C)_[o]===a&&(_[o]=C[o]);for(o in C)i=C[o],!u[o]&&f||u[o]===i||(t&&t[o]===a?t[o]=i:w[o]=i);for(o in u)w[o]===a&&(i=(0,s.getFirstValue)(C[o],g[o]),u[o]!==i&&(t&&t[o]===a&&i!==a?t[o]=i:w[o]=i));t||(l.attrs=w),l.callback=k((t||n)&&w,p,m,M&&e.container),x=this.setAttributes(x,{attr:_,inputJSON:e})}(n||m.hookFn||v)&&(l.animConfig[0].hookFn=S((!f||c)&&n,m,v&&e.container))}for(c=0;c<d;c++)E[c].el=x.el,this.registerAnimation([{data:[E[c]]}],h[c].slot)}else T?x=this.setAttributes(x,{attr:C,inputJSON:e,groupChangeReq:M,immediate:!0}):(this.registerAnimation(),x=this.setAttributes(x,{attr:C,inputJSON:e,groupChangeReq:M,immediate:!0}));return x.removed?null:x.el},t._removeElems=function(){if(this.getFromEnv("paper")&&!this.getFromEnv("paper").removed){this._removedGraphics.forEach((function(e){return e.remove&&e.remove()})),this._removedGraphics.length=0}},t.removeElement=function(e,t){return t?e.remove():this._removedGraphics.push(e),null},r._ruleSelectorQueryBuilder=function(e,t){void 0===t&&(t=!0);var r=e.label,n=e.state,a=e.component,i=a.getType(),o=a.getName();if(t){var s=["*","*.*","*.*.*"],l=["*.*."+o,"*."+i+".*","*."+i+"."+o];return"*"===n?s.concat(l):s.concat(l,[n+".*",n+".*.*",n+".*."+o,n+"."+i+".*",n+"."+i+"."+o])}return[r+"."+n,r+".*","*."+n,"*.*","*"]},t._getRulesByState=function(e){var t,n,i,o,s=e.component,l=this.getAnimationState()||"*",c=r._ruleSelectorQueryBuilder(Object.assign(e,{state:l}));return(t=(o=s.getState("animRules")||{})[l])?t:(n=o[l]={},i=this.config.animationRules,f.forEach((function(e){var t=i[e];t&&c.forEach((function(e){t[e]&&(Array.isArray(t[e])?t[e].forEach((function(e){n=o[l]=m(e)?null:Object.assign(n||{},k(e)?e.call(s):e)})):n=o[l]=m(t[e])?null:Object.assign(n||{},k(t[e])?t[e].call(s):t[e]))}))})),s.setState("animRules",o),!s.getState("ruleFlushAttached")&&s.addExtEventListener("predraw",(function(){s.setState("animRules",a),s.setState("ruleFlushAttached",!0)}),s.getFromEnv("chart")),n)},r._getRulesByElement=function(e,t){var n;return r._ruleSelectorQueryBuilder(t,!1).forEach((function(t){n===a&&(n=e[t])})),n},t.getAnimAttributes=function(e){var t,n,a,i,o,s=e.component||this.getFromEnv("chart"),l=e.label||("object"==typeof e.el?e.el.type:e.el),c=e.state,u=this._getRulesByState({label:l,component:s}),d=[];if(!m(u)&&(!c&&(c="string"==typeof e.el?"appearing":e.attr?"updating":"disappearing"),t=r._getRulesByElement(u,{component:s,state:c,label:l}),!m(t))){if(!t)return r.getFallbackAnimRule(e);if(!k(t)||(t=t.call(s,e),!m(t))){for(o=t.length,i=0;i<o;i++)a={},(n=t[i]).initialAttr&&(a.initialAttr=k(n.initialAttr)?n.initialAttr.call(s,e):Object.assign({},n.initialAttr)),n.finalAttr&&(a.finalAttr=k(n.finalAttr)?n.finalAttr.call(s,e):Object.assign({},n.finalAttr)),a.startEnd=k(n.startEnd)?n.startEnd.call(s,e):n.startEnd?Object.assign({},n.startEnd):{start:0,end:1},a.slot=n.slot||"default",a.callback=n.callback,a.hookFn=n.hookFn,a.transition=n.transition,a.effect=n.effect||"linear",n.groupChange&&(a.groupChange=!0),d.push(a);return d}}},r.getFallbackAnimRule=function(e){if("appearing"===e.state||"string"==typeof e.el){if("group"!==e.el)return[{initialAttr:{opacity:0},finalAttr:{opacity:(0,s.pluckNumber)(e.attr&&e.attr.opacity,1)},startEnd:{start:0,end:1}}]}else{if("updating"===e.state||e.attr)return[{startEnd:{start:0,end:1}}];if("group"!==e.el.type)return[{initialAttr:{opacity:1},finalAttr:{opacity:0},startEnd:{start:0,end:1}}]}},r.getFallbackAnimDuration=function(e){return h[e]||0},r.getFallbackAnimTimeSlots=function(){return[{name:"_default",start:0,end:1,child:[[{name:"initial",duration:.125},{name:"middle",duration:.75,child:[[{name:"axis",duration:.25},{name:"plot",duration:.75}]]},{name:"final",duration:.125}]]}]},t.createElement=function(e,t,r){void 0===t&&(t={});var n=e,a=this.getFromEnv("paper");if(a||(a=this.getFromEnv("chart").getFromEnv("paper"),this.addToEnv("paper",a)),"group"===n)(n=a.group(r.attr&&r.attr.name||"",r.container)).attr(t);else if("html"===n)n=a.html(r.attr.type,t,r.css,r.container);else{if("text"===n&&r.css)return a[r.el](t,r.css,r.container);n=a[r.el](t,r.container)}return n},t.setAttributes=function(e,t){var r,n=e,a=t.attr,i=t.inputJSON||{};return"string"==typeof n?n=this.createElement(n,a,i):0!==Object.keys(a).length?n.attr(a):i.attr&&"disappearing"!==i.state||(r=!i.doNotRemove),r?this.removeElement(n,t.immediate):(i.css&&n.css(i.css),t.groupChangeReq&&n.appendTo(i.container),t.immediate&&i.callback&&i.callback.call(n)),{el:n,removed:r}},t.prepareAnimateArr=function(e){var t,r,n,i,o,s,l,c,u,d=this.config.preAnimArr=[];function h(e,t){var n,i,o,s={start:0,end:1};for(o in e)if(e.hasOwnProperty(o)){if(e[o].syncWith&&!r[e[o].syncWith])continue;n=e[o].syncWith,s.start=e[o].start===a?0:e[o].start,s.end=e[o].end===a?1:e[o].end,s.hookFn=e[o].hookFn||e.hookFn,s.smartMorph=e[o].smartMorph||e.smartMorph;break}return n=n&&r[n]?n:t&&r[t]?t:"default",i=r[n].end-r[n].start,s.start=r[n].start+s.start*i,s.end=r[n].start+s.end*i,s}for(r=this.getFinalSlots(),i=0,o=e.length;i<o;i+=1){for(n=(t=e[i]).component,s=0,l=t.data.length;s<l;s+=1)(c=(u=t.data[s]).transition||r[n]&&r[n].transition)&&x(u,c),u.preAnimFn&&d.push({el:u.el,fn:u.preAnimFn}),u.animConfig&&(u.animConfig=h(u.animConfig,n));t.effect||r[n]&&(t.effect=r[n].effect),t.animConfig||(t.animConfig=[{}]),t.animConfig=h(t.animConfig,n)}},t.animate=function(){var e,t,r,n,a,i,o,s,l=this.config,c=this.config.animateArr,u=l.animationObj,d=u.animObj,h=u.dummyObj,f=u.duration;for(this.prepareAnimateArr(c),function(e){var t=0,r=e.length;for(t=0;t<r;++t)e[t].fn&&e[t].fn.call(e[t].el)}(this.config.preAnimArr),a=0,i=c.length;a<i;a+=1)for(o=0,s=(t=c[a]).data.length-1;o<=s;o+=1)r=t.data[o].animConfig||t.animConfig,r=b(r,f,180),e=t.data[o].effect||t.effect||"linear",n=a===i&&t.callback||t.data[o].callback,t.data[o].preAttrs&&t.data[o].el.attr(t.data[o].preAttrs),t.data[o].el&&C(t.data[o].el,t.data[o].attrs,n||null,r,h,d,f,e)},t.remove=function(t){this.removeAllJobs(),t.instant&&this.getGraphicalElement("dummyObj")&&this.getGraphicalElement("dummyObj").remove(),e.prototype.remove.call(this,t)},r}(c.ComponentInterface);t["default"]=T},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n={pie2d:["isPlotItemSliced","addData","removeData","updateData","slicePlotItem","startingAngle"],dragcolumn2d:["getDataWithId","getData","setUpperLimit","setLowerLimit","getLowerLimit","getUpperLimit"],realtimecolumn:["feedData","setData","stopUpdate","restartUpdate","isUpdateActive","clearChart","getData","getDataForId","setDataForId","getDataJSON","showLog","hideLog","clearLog"],scrollcolumn2d:["scrollTo"],scrollbar2d:["scrollTo"],boxandwhisker2d:["scrollTo"],doughnut:["centerLabel"],zoomline:["zoomOut","zoomTo","resetChart","setZoomMode","getViewStartIndex","getViewEndIndex","scrollTo"],maps:["getMapName","getEntityList","getMapAttribute","exportMap","addMarker","updateMarker","removeMarker"],"*":["exportChart","getXML","getChartAttribute","getCSVData","getChartData","getDataAsCSV","getJSONData","getSVGString","getXMLData"]};n.pie3d=n.pie2d,n.doughnut2d=n.doughnut3d=n.doughnut.concat(n.pie2d),n.dragarea=n.dragline=n.dragnode=n.dragcolumn2d,n.realtimearea=n.realtimeline=n.realtimelinedy=n.realtimestackedarea=n.realtimestackedcolumn=n.bulb=n.angulargauge=n.hlineargauge=n.hled=n.vled=n.vbullet=n.hbullet=n.thermometer=n.cylinder=n.realtimecolumn,n.scrollarea2d=n.scrollline2d=n.scrollcombidy2d=n.scrollcombi2d=n.scrollstackedcolumn2d=n.scrollmsstackedcolumn2d=n.scrollmsstackedcolumn2dlinedy=n.scrollcolumn2d,n.zoomlinedy=n.zoomline;var a=n;t["default"]=a},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n={extension:function(){function e(){}var t=e.prototype;return t.draw=function(){},t.drawAt=function(){},t.hide=function(){},t.hideAll=function(){},t.enableToolTip=function(){},t.disableToolTip=function(){},t.setStyle=function(){},t.setApplyScale=function(){},e}(),name:"ToolTipController",type:"plugin"};t["default"]=n},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(233));t.MessageLogger=a["default"];var i=n(r(236));t.linkedChartsExtension=i["default"];var o=n(r(238));t.XMLTranscoder=o["default"];var s=n(r(239));t.CSVTranscoder=s["default"];var l=n(r(240));t.JSONUrlTranscoder=l["default"];var c=n(r(243));t.XMLUrlTranscoder=c["default"];var u=n(r(244));t.IgnoreCaseExt=u["default"];var d=n(r(245));t.ThemeEngine=d["default"];var h=n(r(246));t.DefaultTheme=h["default"];var f=n(r(247));t.PlotHighlighter=f["default"];var g=n(r(249));t.ToolTipController=g["default"];var p=n(r(251));t.ConsolidatedToolTip=p["default"];var m=n(r(252));t.AlertManager=m["default"];var v=n(r(254));t.DataSkipping=v["default"];var b=n(r(258));t.Annotation=b["default"];var y=n(r(283));t.RegressionExtension=y["default"];var x=n(r(289));t.inputAdapter=x["default"];var C=n(r(317));t.LegendEventManagerLinker=C["default"];var w=n(r(318));t.exportModule=w["default"];var _=n(r(326));t.BatchExportLinker=_["default"];var k=n(r(327));t.LogoExtension=k["default"];var S=n(r(329));t.supportOldThemes=S["default"];var E=n(r(330));t.debug=E["default"];var A=n(r(331));t.CenterLabel=A["default"];var T=n(r(334));t.CrossLine=T["default"];var M=n(r(338));t.MultiCanvasCrossLine=M["default"];var F={name:"features",type:"package",requiresFusionCharts:!0,extension:function(e){e.addDep(i["default"]),e.addDep(o["default"]),e.addDep(s["default"]),e.addDep(l["default"]),e.addDep(c["default"]),e.addDep(u["default"]),e.addDep(d["default"]),e.addDep(f["default"]),e.addDep(h["default"]),e.addDep(g["default"]),e.addDep(p["default"]),e.addDep(m["default"]),e.addDep(a["default"]),e.addDep(v["default"]),e.addDep(b["default"]),e.addDep(w["default"]),e.addDep(y["default"]),e.addDep(x["default"]),e.addDep(C["default"]),e.addDep(_["default"]),e.addDep(k["default"]),e.addDep(S["default"]),e.addDep(E["default"]),e.addDep(A["default"]),e.addDep(T["default"]),e.addDep(M["default"])}};t["default"]=F},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(234)),i={timeseries:!0},o=function(e){var t=e.sender.getName().toLowerCase();"chartAPI"!==e.sender.getType()||i[t]||e.sender.registerFactory("messageLogger",(function(t){if(t.getChildren("messageLogger"))t.getChildren("messageLogger")[0].configure(t);else{var r=new a["default"];r.configure(t),r.addToEnv("chart-container",t.getFromEnv("chart-container")),t.attachChild(r,"messageLogger"),t.getFromEnv("chartInstance").showLog=function(){return r&&r.show&&r.show()},t.getFromEnv("chartInstance").hideLog=function(){return r&&r.hide&&r.hide()},t.getFromEnv("chartInstance").clearLog=function(){return r&&r.clearLog&&r.clearLog()},e.sender.addEventListener("realtimeDataUpdate",(function(e){e.sender.getChildren("messageLogger")&&e.sender.getChildren("messageLogger")[0].addLog(e.data)}))}}))};var s={extension:function(e){e.addEventListener("instantiated",o)},name:"messageLoggerLinker",type:"extension",requiresFusionCharts:!0};t["default"]=s},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(235)),o=r(199),s=r(184),l=Math.min,c=function(e){function t(){var t;return(t=e.call(this)||this).pIndex=1,t.linkedItems=t.linkedItems||(t.linkedItems={}),t.components=t.components||{},t.components.messages=t.components.messages||[],t.graphics=t.graphics||{},t.config=t.config||(t.config={}),t}(0,a["default"])(t,e);var r=t.prototype;return r.getType=function(){return"extension"},r.getName=function(){return"MessageLogger"},r.configure=function(e){this.linkedItems.chart=e;var t=e.getFromEnv("chart-attrib")||{},r=this.config.usemessagelog=e.getFromEnv("chartConfig").usemessagelog;this.config.messageLogWPercent=l((0,s.pluckNumber)(t.messagelogwpercent,80),100),this.config.messageLogHPercent=l((0,s.pluckNumber)(t.messageloghpercent,70),100),this.config.messageLogShowTitle=(0,s.pluckNumber)(t.messagelogshowtitle,1),this.config.messageLogTitle=(0,s.pluck)(t.messagelogtitle,"Message Log"),this.config.messageLogColor=(0,s.pluck)(t.messagelogcolor,"#fbfbfb").replace(/^#?([a-f0-9]+)/gi,"$1"),this.config.messageLogColorRgb=(0,s.HEXtoRGB)(this.config.messageLogColor),this.config.messageGoesToJS=(0,s.pluckNumber)(t.messagegoestojs,0),this.config.messageGoesToLog=(0,s.pluckNumber)(t.messagegoestolog,1),this.config.messageJSHandler=(0,s.pluck)(t.messagejshandler,""),this.config.messagePassAllToJS=(0,s.pluckNumber)(t.messagepassalltojs,0),this.config.messagePassAsObject=(0,s.pluckNumber)(t.messagepassasobject,0),this.config.messageLogIsCancelable=(0,s.pluckNumber)(t.messagelogiscancelable,1),this.config.alwaysShowMessageLogMenu=(0,s.pluckNumber)(t.alwaysshowmessagelogmenu,r),e.config.useShowLogMenu=r&&this.config.messageGoesToLog,this.config.dynamicScrolling=!1,this.config.scrollToBottom=!0},r._createMessage=function(e){var t=new i["default"](e,this);return this.graphics.container&&t.draw(),t},r.addLog=function(e){var t,r=this.components.messages,n=(0,s.pluckNumber)(e.msgGoesToLog,this.config.messageGoesToLog),a=(0,s.pluckNumber)(e.msgGoesToJS,this.config.messageGoesToJS),i=window[this.config.messageJSHandler],o=(0,s.pluck)(e.msgId,""),l=(0,s.pluck)(e.msgTitle,""),c=(0,s.pluck)(e.msgText,""),u=(0,s.pluck)(e.msgType,"literal");0!==this.config.usemessagelog&&(a&&i&&"function"==typeof i&&(this.config.messagePassAllToJS?this.config.messagePassAsObject?i(e):i(o,l,c,u):i(c)),"1"===e.clearLog&&this.clearLog(),n&&(e.msgTitle||e.msgText)&&(t=this._createMessage(e),r.push(t),1!==r.length||this.config.visible||this.show()))},r.show=function(){this.config.visible||1!==this.config.usemessagelog||(this.config.visible=!0,this.draw(),this.graphics.container||this.draw(),this.graphics.container&&this.graphics.container.show())},r.hide=function(){this.config.visible=!1,this.graphics.container&&this.graphics.container.hide()},r.clearLog=function(){var e,t=this.components.messages,r=t.length;for(e=0;e<r;e+=1)t[e]&&t[e].dispose&&t[e].dispose();t.splice(0,r)},r.isDrawn=function(){return!!this.graphics.container},r.draw=function(){var e,t,r=this.components.messages;if(0===this.config.usemessagelog)this.isDrawn()&&(this.clearLog(),this.hide());else for(this._createHTMLDialogue(),this.config.visible||this.hide(),t=r.length,e=0;e<t;e+=1)r[e]&&r[e].draw&&r[e].draw()},r._createHTMLDialogue=function(){var e,t,r,n,a=this,i=this.config,o=this.graphics,s=this.getFromEnv("paper"),l=this.linkedItems.chart.config,c=l.width,u=l.height,d=l.style,h=d&&d.inCanvasStyle,f=this.config.messageLogWPercent,g=this.config.messageLogHPercent,p=this.config.messageLogShowTitle,m=this.config.messageLogIsCancelable,v=this.config.messageLogColor,b=this.config.messageLogTitle,y=c*(f/100),x=u*(g/100),C=(c-y)/2,w=(u-x)/2,_=y-18-22,k=x-18-22,S=v,E=v,A=o.container,T=this.isDrawn()&&l.animation&&l.animation.transposeAnimDuration;A||(A=o.container=s.html("div",{fill:"transparent"},{fontSize:"10px",lineHeight:"15px"},this.getFromEnv("chart-container")),o.veil=s.html("div",{id:"veil",fill:"000000",opacity:.1},void 0,A).on("fc-click",(function(){m&&a.hide()})),b&&p&&(o.title=s.html("p",{id:"Title",innerHTML:b,x:5,y:5},{"font-weight":"bold"},A)),o.dialog=s.html("div",{id:"dialog",strokeWidth:1},{borderRadius:"5px",boxShadow:"1px 1px 3px #000000","-webkit-border-radius":"5px","-webkit-box-shadow":"1px 1px 3px #000000",filter:'progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color="#000000")'},A),o.logBackground=s.html("div",{id:"dialogBackground",x:0,y:0},void 0,o.dialog),m&&(o.closeButton=s.html("div",{id:"closeButton",x:y-11-3,y:2,innerHTML:"<b>x</b>"},{cursor:"pointer",_cursor:"hand"},o.dialog).on("fc-click",(function(){m&&a.hide()}))),o.logWrapper=s.html("div",{id:"logWrapper"},{overflow:"auto"},o.dialog).on("scroll",(function(){var e=this&&this.scrollTop,t=this&&this.scrollHeight,r=this&&this.offsetHeight;i.dynamicScrolling?i.dynamicScrolling=!1:i.scrollToBottom=t-e===r})),o.log=s.html("div",{id:"log",x:0,y:0},{},o.logWrapper)),A.css({fontFamily:h.fontFamily}),o.dialog.attr({fill:"ffffff",stroke:S}),o.logBackground.attr({fill:E}),e={width:c,height:u},t={x:C,y:w,width:y,height:x},r={width:y,height:x},n={x:(y-_)/2,y:(x-k)/2,width:_,height:k},T?(A.animate(e,T,"normal"),o.veil.animate(e,T,"normal"),o.dialog.animate(t,T,"normal"),o.logBackground.animate(r,T,"normal"),o.logWrapper.animate(n,T,"normal")):(A.attr(e),o.veil.attr(e),o.dialog.attr(t),o.logBackground.attr(r),o.logWrapper.attr(n))},t}(o.ComponentInterface);t["default"]=c},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n=r(184),a=8===window.document.documentMode,i={},o={display:"block",paddingLeft:"10px",paddingRight:"10px","font-family":"Arial","font-size":"11px"};i.literal=i.info={title:'<span style="color: #005900">$titleVal$</span>',body:'<span">$msgVal$</span>'},i.link={title:i.info.title,body:'<a href="$msgLinkVal$">$msgVal$</a>'},i.error={title:'<span style="color: #CC0000">$titleVal$</span>',body:'<span style="color: #CC0000">$msgVal$</span>'};var s=function(){function e(e,t){this.config={},this.messageType=(e.msgType&&e.msgType.replace(/^[\r\n]+|\.|[\r\n]+$/g,"")||"").toLowerCase(),this.msgTitle=e.msgTitle,this.msgText=e.msgText,this.msgLink=e.msgLink,this.graphics={},this.linkedItems={msgLogger:t},this.msgObj=i[this.messageType]||i.literal,this.configureMsgTextAndMsgTitle()}var t=e.prototype;return t.configureMsgTextAndMsgTitle=function(){this.config.totalHTML=n.BLANKSTRING,this.msgTitle&&(this.config.titleHTML=this.msgObj.title.replace("$titleVal$",this.msgTitle),this.config.totalHTML+=this.config.titleHTML),this.msgText&&(this.config.msgHTML=this.msgObj.body.replace("$msgVal$",this.msgText),this.config.msgHTML=this.config.msgHTML.replace("$msgLinkVal$",this.msgText),this.config.totalHTML+=this.config.msgHTML)},t.draw=function(){var e,t,r,i=this.graphics.element,s=this.linkedItems.msgLogger,l=s.graphics,c=l&&l.log&&l.log.element,u=l.logWrapper&&l.logWrapper.element,d=s.config;if(!i){for(e in i=this.graphics.element=window.document.createElement("span"),o)i.style[e]=o[e];c.appendChild&&c.appendChild(i)}this.graphics.element.innerHTML=this.config.totalHTML,n.isIE&&a&&(t=c.innerHTML,c.innerHTML=t),d.scrollToBottom&&(d.dynamicScrolling=!0,r=u.scrollHeight,u.scrollTop=r)},t.dispose=function(){var e=this.linkedItems.msgLogger;e&&e.graphics&&e.graphics.log&&e.graphics.log.element&&e.graphics.log.element.removeChild&&e.graphics.log.element.removeChild(this.graphics.element),delete this.graphics.element,n.componentDispose.call(this)},e}();t["default"]=s},function(e,t,r){"use strict";var n=r(178),a=r(182);t.__esModule=!0,t["default"]=void 0;var i,o=a(r(237)),s=r(191),l=r(184),c=n(r(186)),u=l.regex.dropHash,d="Close";function h(e,t){return(e.options.containerElement===t.options.containerElement||e.options.containerElementId===t.options.containerElementId)&&e.options.insertMode===l.domInsertModes.REPLACE}function f(e){var t;e.sender.link instanceof o["default"]&&!e.sender.link.root.disposed?e.sender.link.parent instanceof this&&!(t=e.sender.link.parent.link.items)[e.sender.id]&&(t[e.sender.id]=e.sender):e.sender.link=new o["default"](e.sender)}function g(e,t){var r,n=t;if(e instanceof Array){for(r=0;r<e.length;r+=1)"object"!=typeof o.store[this.link.root.id][r]&&(o.store[this.link.root.id][r]={}),(0,l.extend2)(o.store[this.link.root.id][r],e[r],!1,!0);o.store[this.link.root.id].splice(e.length)}else"object"==typeof e?("number"!=typeof n&&(n=this.link.level),"undefined"==typeof o.store[this.link.root.id][n]&&(o.store[this.link.root.id][n]={}),(0,l.extend2)(o.store[this.link.root.id][n],e,!1,!0)):(0,s.raiseError)(this,"25081731","param","~configureLink()","Unable to update link configuration from set parameters")}function p(e){var t,r,n,a=this.jsVars,i=a.overlayButton;if(e&&e.show){for(i||(i=a.overlayButton=document.createElement("span"),c["default"].listen(i,"click",(function(){(0,s.triggerEvent)("OverlayButtonClick",a.fcObj,e)}))),n=e.message?e.message:"Back";i.firstChild;)i.removeChild(i.firstChild);for(r in i.appendChild(document.createTextNode(n)),a.overlayButtonMessage=n,t={border:"1px solid "+(e.borderColor?e.borderColor.replace(u,l.HASHSTRING):"#7f8975"),backgroundColor:e.bgColor?e.bgColor.replace(u,l.HASHSTRING):"#edefec",fontFamily:e.font?e.font:"Verdana,sans",color:e.fontColor,fontSize:(e.fontSize?e.fontSize:"10")+l.PXSTRING,padding:(e.padding?e.padding:"3")+l.PXSTRING,fontWeight:0===parseInt(e.bold,10)?l.NORMAL:l.BOLD,position:"absolute",top:"0",right:"0",cursor:l.POINTER})i.style[r]=t[r];a.hcObj.container.appendChild(i),a.overlayButtonActive=!0}else i&&(a.overlayButton=i.parentNode.removeChild(i),a.overlayButtonActive=!1,delete a.overlayButtonMessage)}var m={type:"extension",name:"LinkedChart",extension:function(e){e.prototype.configureLink=g,e.prototype.drawOverlayButton=p,e.addEventListener("beforeRender",f),e.addEventListener("beforeInitialize",f),e.addEventListener("linkedChartInvoked",(function(t,r){var n,a=t.sender,c=a.clone({dataSource:r.data,dataFormat:r.linkType,link:new o["default"](a.link.root,a,a instanceof e),clickedEntity:r.clickedEntity,clickedEntityBox:r.clickedEntityBox},!0),u=r.alias;u&&(!c.typeSource&&c.swfUrl&&(c.typeSource=c.swfUrl.replace(/(.*?)?[^\/]*\.swf.*?/gi,"$1")),c.type=u),a.args&&0!==parseInt(a.args.animate,10)&&delete c.animate,(0,l.extend2)(c,a.link.configuration(),!1,!0),(0,s.triggerEvent)("beforeLinkedItemOpen",a.link.root,{level:a.link.level},i,(function(){e.items[c.id]instanceof e&&e.items[c.id].dispose(),h(n=new e(c),a)||a.options.overlayButton&&a.options.overlayButton.message||("object"!=typeof a.options.overlayButton&&(a.options.overlayButton={}),a.options.overlayButton.message=d),n.render(),(0,s.triggerEvent)("linkedItemOpened",a.link.root,{level:a.link.level,item:n})}))})),e.addEventListener("overlayButtonClick",(function(t,r){var n,a,o,l;"LinkManager"===r.id&&(n=t.sender,a=n.link.level-1,o=n.link.parent,l=n.link.root,(0,s.triggerEvent)("beforeLinkedItemClose",l,{level:a,item:n},i,(function(){setTimeout((function(){e.items[n.id]&&n.dispose(),(0,s.triggerEvent)("linkedItemClosed",l,{level:a})}),0),o.disposed||o.isActive()||!h(n,o)?(o._addChartDependency("returnFromLinkedChart",{resolve:function(){return{state:3}}}),o._setState()):o.render()})))})),e.addEventListener("DrawComplete",(function(t){var r,n=t.sender;n&&"undefined"!=typeof n.link&&n.link.root!==n&&n.link.parent instanceof e&&(n.ref&&"function"==typeof n.drawOverlayButton?(r=(0,l.extend2)({show:!0,id:"LinkManager"},n.link.parent.options.overlayButton,!1,!0),(0,l.extend2)(r,n.link.parent.link.configuration().overlayButton||{},!1,!0),n.drawOverlayButton(r)):(0,s.raiseWarning)(n,"04091602","run","::LinkManager^Loaded","Unable to draw overlay button on object. -"+n.id))})),e.addEventListener("beforeDispose",(function(t){var r=t.sender;r&&r.link instanceof o["default"]&&(r&&r.link&&r.link.parent instanceof e&&r.link.parent.link&&r.link.parent.link.items&&delete r.link.parent.link.items[t.sender.id],delete o.store[r.id])}))},requiresFusionCharts:!0};t["default"]=m},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=t.store=void 0;var n={};t.store=n;var a=function(){function e(e,t,r){this.items={},this.root=e,this.parent=t,r?this.level=this.parent.link.level+1:(n[e.id]=[{}],this.level=0)}return e.prototype.configuration=function(){return n[this.root.id][this.level]||(n[this.root.id][this.level]={})},e}();t["default"]=a},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n,a=r(184),i=function(e,t,r){return"object"==typeof this.items[e][r]?this.items[e][r][t]:this.items[e][r]};function o(e){return e.replace(/</g,"<").replace(/>/g,">")}var s,l,c,u,d=(u={arr:{set:!0,node:!0,nodes:!0,link:!0,links:!0,trendlines:!0,vtrendlines:!0,line:{trendlines:!0,vtrendlines:!0},data:!0,dataset:!0,lineset:!0,categories:!0,category:!0,tasks:!0,linkeddata:!0,application:!0,definition:!0,axis:!0,connectors:!0,connector:{connectors:!0},trendset:!0,row:{rows:!0},column:{columns:!0},label:{labels:!0},color:{colorrange:!0},dial:{dials:!0},pointer:{pointers:!0},point:{trendpoints:!0},process:{processes:!0},task:{tasks:!0},milestone:{milestones:!0},datacolumn:{datatable:!0},text:{datacolumn:!0},item:{legend:!0},alert:{alerts:!0},groups:{annotations:!0},items:{groups:!0,data:!0},shapes:!0,shape:{shapes:!0},entitydef:!0,entity:{entitydef:!0}},tag:{chart:"linkedchart",map:"linkedmap",set:"data",node:"nodes",link:"links",vline:{chart:"data",graph:"data",dataset:"data",categories:"category",linkedchart:"data"},apply:{application:"application"},style:{definition:"definition"},marker:{application:"application",definition:"definition",data:"items"},entity:{entitydef:"entitydef",data:"data"},shape:{shapes:"shapes"},connector:{connectors:{chart:"connector",linkedchart:"connector",map:"connectors",linkedmap:"connectors"}},annotationgroup:{annotations:"groups"},annotation:{groups:"items"}},attr:{vline:{vline:"true"}},ins:{chart:!0,map:!0,graph:!0},dsv:{dataset:"data",categories:"category"},text:{target:"target",value:"value"},group:{styles:{definition:!0,application:!0},chart:{value:!0,target:!0},graph:{value:!0,target:!0},linkedchart:{value:!0,target:!0},markers:{definition:!0,application:!0,shapes:!0,connectors:!0,data:!0},map:{entitydef:!0,data:!0},linkedmap:{entitydef:!0,data:!0}}},s={append:function(e,t,r,n){!u.arr[r]||!0!==u.arr[r]&&!0!==u.arr[r][n]?t[r]=e:(t[r]instanceof Array||(t[r]=[]),t[r].push(e))},child:function(e,t,r,n){var i,o,l,c,d,h;for(i=0;i<t.length;i+=1)switch(o=(l=t[i]).nodeName.toLowerCase(),l.nodeType){case 1:if(c=s.attr(l.attributes),!0===(h=u.ins[o])&&(d=c,(c={})[o]=d,d=void 0),"object"==typeof(h=u.attr[o])&&(0,a.extend2)(c,h,!1,!0),h=u.tag[o])if("object"==typeof h&&"object"==typeof h[r]){for(d in d=void 0,h[r])if(n[d]){o=h[r][d];break}}else"object"==typeof h&&"string"==typeof h[r]?o=h[r]:"string"==typeof h&&(o=h);l.childNodes.length&&((h=u.group[r])&&h[o]?s.child(e,l.childNodes,o,n):s.child(c,l.childNodes,o,n)),(h=u.group[r])&&h[o]||s.append(c,e,o,r);break;case 3:(h=u.text[r])&&(o=h,c=l.data,s.append(c,e,o,r)),"string"==typeof(h=u.dsv[r])&&n.chart&&parseInt(n.chart.compactdatamode,10)&&(o=h,c=l.data,e[o]=e[o]?e[o]+c:c)}},attr:function(e){var t,r={};if(!e||!e.length)return r;for(t=0;t<e.length;t+=1)"xml"===c&&(e[t].value?e[t].value=o(e[t].value):e[t].nodeValue&&(e[t].nodeValue=o(e[t].nodeValue))),r[e[t].nodeName.toLowerCase()]=e[t].value||e[t].nodeValue;return r}},l=function(e){var t,r,i,o,c,u,d,h,f,g={},p=e;if("object"!=typeof p&&p&&"function"!=typeof p.toString)return l.errorObject=new TypeError("xml2json.parse()"),g;if(p=p.toString().replace(/<\!--[\s\S]*?-->/g,"").replace(/<\?xml[\s\S]*?\?>/gi,"").replace(/&(?!([^;\n\r]+?;))/g,"&$1"),!(p=(0,a.fastTrim)(p)))return g;try{if(window.DOMParser?t=(new window.DOMParser).parseFromString(p,"text/xml"):document.body&&n.options.allowIESafeXMLParsing?((r=document.createElement("xml")).innerHTML=p,document.body.appendChild(r),t=r.XMLDocument,document.body.removeChild(r),r=null):((t=new window.ActiveXObject("Microsoft.XMLDOM")).async="false",t.loadXML(p)),!(t&&t.childNodes&&1===t.childNodes.length&&(i=t.childNodes[0])&&i.nodeName&&(o=i.nodeName.toLowerCase()))||"chart"!==o&&"map"!==o&&"graph"!==o)return l.errorObject=new TypeError("xml2json.parse()"),g;if("graph"===o){for(c=t.createElement("chart"),f=(d=i.attributes)&&d.length||0;f--;)c.setAttribute(d[f].name,d[f].value),d.removeNamedItem(d[f].name);for((f=(h=i.childNodes)&&h.length||0)&&(f-=1,u=i.removeChild(h[f]),c.appendChild(u));f--;)u=i.removeChild(h[f]),c.insertBefore(u,c.firstChild);t.replaceChild(c,i),i=c}}catch(m){l.errorObject=m}return i?(i.attributes&&(g[o]=s.attr(i.attributes)),i.childNodes&&s.child(g,i.childNodes,o,g),delete l.errorObject):l.errorObject=new TypeError("xml2json.parse()"),g},function(e){return delete l.errorObject,c=arguments[arguments.length-1],{data:l(e),error:l.errorObject}}),h=function(){var e,t;return e={items:{explode:{data:"set",nodes:"node",links:"link",groups:{annotations:"annotationgroup"},items:{groups:"annotation"}},text:{chart:{target:"target",value:"value"},graph:{target:"target",value:"value"}},dsv:{dataset:{data:"dataset"},categories:{category:"categories"}},attr:{chart:{chart:"chart"},graph:{graph:"graph"},map:{map:"map"},linkedmap:{map:"map"},linkedchart:{chart:"chart"}},group:{styles:{definition:"style",application:"apply"},map:{data:"entity",entitydef:"entity"},markers:{definition:"marker",application:"marker",shapes:"shape",connectors:"connector",items:"marker"}},tag:{markers:{items:"data"}}},qualify:i},t=function(r,n,i,o){var s,l,c,u,d=a.BLANKSTRING,h=a.BLANKSTRING,f=a.BLANKSTRING,g=a.BLANKSTRING,p=n;if(p&&"function"==typeof p.toLowerCase&&(p=p.toLowerCase()),void 0===i&&r[p])for(l in r[p])"compactdatamode"===(c=l.toLowerCase())&&(o.applyDSV=1===r[p][l]);if(r instanceof Array)for(l=0;l<r.length;l+=1)"string"==typeof r[l]?f+=(0,a.xssEncode)(r[l]):f+=t(r[l],p,i,o);else{for(l in r)c=l.toLowerCase().replace(/[`~!@#$%^&*()|+\=?;:'", <>\{\}\[\]\\\/]/gi,""),r[l]instanceof Array&&(u=e.qualify("group",c,p))?h+="<"+(s=e.qualify("tag",c,p)||c)+">"+t(r[l],u,p,o)+"</"+s+">":"object"==typeof r[l]?(u=e.qualify("attr",c,p))?(g=t(r[l],u,p,o).replace(/\s*\/\>/gi,""),p=c):h+=t(r[l],c,p,o):o.applyDSV&&(u=e.qualify("dsv",c,p))?h+=r[l]:(u=e.qualify("text",c,p))?h+="<"+(s=e.qualify("tag",c,p)||u)+">"+r[l]+"</"+s+">":"vline"===c&&Boolean(r[l])?p="vline":d+=" "+c+'="'+(0,a.xssEncode)(r[l]).toString().replace(/\"/gi,""")+'"';(u=e.qualify("explode",i,p))&&(p=u),s=p,f=(""!==g?g:"<"+s)+d+(""!==h?">"+h+"</"+s+">":" />")}return f},function(e){delete t.errorObject;var r=e;if(r&&"string"==typeof r)try{r=JSON.parse(r)}catch(a){t.errorObject=a}var n=r&&r.graph?"graph":r&&r.map?"map":"chart";return{data:t(r,n,void 0,{}),error:t.errorObject}}}(),f=function(){return this.getChartData("xml")},g=function(e){this.setChartData(e,"xml")},p={extension:function(e){return e&&(n=e,e.prototype.getXMLData=f,e.prototype.setXMLData=g),{format:"xml",toJSON:d,fromJSON:h}},name:"XML",type:"transcoder",requiresFusionCharts:!0};t["default"]=p},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n,a,i,o,s,l,c,u,d,h,f=r(191),g=r(184),p=window,m=p.parseInt,v=p.parseFloat,b=function(e){return e},y=function(){function e(e){this.data=[],this.rowCount=0,this.columnCount=0,this.configure(e)}var t=e.prototype;return t.set=function(e,t,r){var n;if(this.rowCount<=e){for(n=this.rowCount;n<=e;n+=1)this.data[n]=[];this.rowCount=e+1}this.columnCount<=t&&(this.columnCount=t+1),this.data[e][t]=r},t.setRow=function(e,t){var r;if(this.rowCount<=e){for(r=this.rowCount;r<=e;r+=1)this.data[r]=[];this.rowCount=e+1}this.columnCount<t.length&&(this.columnCount=t.length),this.data[e]=t},t.get=function(e,t){var r=this.data;return r[e]&&r[e][t]},t.configure=function(t){var r=e.decodeLiterals;this.delimiter=r(t.delimiter,","),this.qualifier=r(t.qualifier,'"'),this.eolCharacter=r(t.eolCharacter,"\r\n"),this.numberFormatted=!!m(t.numberFormatted,0)},t.clear=function(){this.data=[],this.rowCount=0,this.columnCount=0},t.toString=function(){var e,t,r=g.BLANKSTRING;for(e=0;e<this.rowCount;e+=1)r+='""'===(t=this.qualifier+this.data[e].join(this.qualifier+this.delimiter+this.qualifier)+this.qualifier)?this.eolCharacter:t+this.eolCharacter;return this.rowCount>0&&(r=r.slice(0,r.length-2)),r},e}();function x(){return this.getChartData("csv")}function C(){return this.getCSVData()}y.decodeLiterals=function(e,t){return e!==a&&null!==e&&e.toString?e.replace("{tab}","\t").replace("{quot}",'"').replace("{apos}","'"):t},l=function(e,t){var r;if(c.push(e.label||g.BLANKSTRING),h++,d=Math.max(d,h),e.category!==a){for(r=0;r<e.category.length;++r)l(e.category[r],t);c.pop(),h--}else t.setRow(u++,c.slice()),c.pop(),h--},s=function(e){var t,r,n,i=e,o=i.chart,s=i&&i.category||[],f=s.length,g=[];for(u=1,d=0,h=0,n=new y({separator:o.exportdataseparator,qualifier:o.exportdataqualifier,numberFormatted:o.exportdataformattedval}),t=0;t<f;++t)r=s[t],c=[],l(r,n);for(t=0;t<d;++t)g.push("category");return n.setRow(0,g),{data:n.toString(),error:a,predictedFormat:{multilevel:!0}}},i=function(e,t){var r,i,o,l,c,u,d,h,f,g,p,m,x,C,w,_,k,S,E,A,T,M,F,I,L,N,D,O,R,P,V,B,j,G=e,H=t&&t.jsVars,z=t&&t.args,U=H&&H.instanceAPI,X=G.chart||G.map||G.graph||{},W=Boolean(X.exporterrorcolumns||0),$=G.categories&&G.categories[0]&&G.categories[0].category||[],Y=G.map&&!G.chart||H&&H.instanceAPI&&"geo"===H.instanceAPI.defaultSeriesType,q=!1,K=!1,J=!1,Z=!1,Q=!1,ee=!1,te=b,re={},ne=0,ae=-1;if("multilevelpie"===(z&&z.type))return s(e);if(r=new y({separator:X.exportdataseparator,qualifier:X.exportdataqualifier,numberFormatted:X.exportdataformattedval}),n.formatNumber&&r.numberFormatted&&(te=function(e,t){return n.formatNumber(e,X,t)}),Y)for(D in re.geo=!0,N=(f=H.instanceAPI.getDatasets())&&f[0]&&f[0].components.data||[],r.setRow(0,["Id"," Short Name","Long Name","Value","Formatted Value"]),c=0,N)B=(R=(O=N[D]).config).cleanValue,!0!==O.hidden&&r.setRow(++c,[D,R.shortLabel,R.label,null===B?"":B,R.formattedValue]);else if((f=G.dials&&G.dials.dial||G.pointers&&G.pointers.pointer||G.value)!==a)if(re.gauge=!0,"string"==typeof f)r.set(0,0,te(f)),re.singlevalue=!0,"string"==typeof G.target&&(r.set(0,1,te(G.target)),re.bullet=!0);else for(r.setRow(0,["Id","Value"]),re.multivalue=!0,c=0,d=1,u=f.length;c<u;c+=1,d+=1)r.setRow(d,[d,te(f[c].value)]);else if(f=G.dataset||!(G.data instanceof Array)&&[]){if(re.multiseries=!0,o=1,(g=G.lineset)&&(f=f.concat(g),re.lineset=!0),(p=G.axis)&&(f=f.concat(p),re.multiaxis=!0),!f.length&&G.links&&(f=f.concat({data:G.links})),C=f.length,x=$.length,!(C=f.length)){for(c=0;c<x;c+=1)w=$[c],r.set(c+1,0,w.label||w.name);re.multilevel=!0}for(c=0;c<C;c+=1)for((_=f)[c].dataset?(l=0,m=(_=_[c].dataset).length):(_=f,m=(l=c)+1);l<m&&!q&&!Z&&!J;l+=1)if(k=_[l],ae++,!(U&&(F=U.getDatasets())&&F[ae]&&!1===F[ae].visible)){for(j=(P=U&&F&&F[ae])&&P.config&&P.config.parentYAxis,r.set(0,o,k.seriesname),"string"==typeof k.data&&(re.compactdata=!0,k.data=k.data.split(X.dataseparator||"|")),u=0,d=0,S=k.data&&k.data.length||0;u<S||u<x;u+=1){if(w=$[u],i=d+1,(E=k.data&&k.data[d]||{}).x!==a&&E.y!==a){q=re.xy=!0;break}if(E.from!==a&&E.to!==a){J=re.diagram=!0;break}if(E.open!==a||E.high!==a||E.close!==a||E.low!==a){Q=re.ohlc=!0;break}if(E.rowid!==a&&E.columnid!==a){Z=re.heatmap=!0;break}u<x&&!w.vline&&(r.set(i,0,w.label||w.name),A=v(E?E.value:""),A=isNaN(A)?"":te(A,j),r.set(i,o,A),(K||W||E.errorvalue)&&(K||r.set(0,o+1,"Error"),M=1,r.set(i,o+1,te(E.errorvalue))),d+=1)}M&&(o+=M,M=0),o+=1}g&&(f=f.slice(0,-g.length)),p&&(f=f.slice(0,-p.length))}else if(f=G.data){for(r.set(0,1,X.yaxisname||"Value"),re.singleseries=!0,ee="1"==X.showsumatend,c=0,x=f.length;c<x;c+=1)(E=f[c]).vline||(A=v(E.value?E.value:""),r.setRow(c+1,[E.label||E.name,isNaN(A)?"":(ne+=A,te(A))]));ee&&(re.summation=!0,r.setRow(c+1,[X.sumlabel||"Total",te(ne)]))}if(Q)for(r.clear(),r.setRow(0,["Open","Close","High","Low"]),c=0,i=1,m=(f=G.dataset).length;c<m;c+=1)for(u=0,C=(k=f[c]&&f[c].data||[]).length;u<C;u+=1,i+=1)E=k[u]||{},r.setRow(u+1,[te(E.open),te(E.close),te(E.high),te(E.low)]);else if(q){for(r.clear(),K=!1,M=0,r.setRow(0,["Series","x","y"]),c=0,i=1,m=(f=G.dataset).length;c<m;c+=1)if(!(U&&(F=U.getDatasets())&&F[c]&&!1===F[c].visible))for(u=0,C=(k=f[c]&&f[c].data||[]).length;u<C;u+=1,i+=1)E=k[u]||{},A=[f[c].seriesname,te(E.x),te(E.y)],E.z!==a&&(A.push(te(E.z)),M||(r.set(0,3,"z"),M=1)),(K||W||E.errorvalue!==a||E.horizontalerrorvalue!==a||E.verticalerrorvalue!==a)&&(T=te(E.errorvalue),A.push(E.errorvalue,E.horizontalerrorvalue===a?T:te(E.horizontalerrorvalue),E.verticalerrorvalue===a?T:te(E.verticalerrorvalue)),K||(r.set(0,M+3,"Error"),r.set(0,M+4,"Horizontal Error"),r.set(0,M+5,"Vertical Error")),K=re.error=!0),r.setRow(i,A)}else if(J)for(r.clear(),K=!1,M=0,f=G&&G.links,r.setRow(0,["from","to","value"]),u=0;u<f.length;u+=1,i+=1)A=[(E=f[u]||{}).from,E.to,te(E.value)],E.z!==a&&(A.push(te(E.z)),M||(r.set(0,3,"z"),M=1)),(K||W||E.errorvalue!==a||E.horizontalerrorvalue!==a||E.verticalerrorvalue!==a)&&(T=te(E.errorvalue),A.push(E.errorvalue,E.horizontalerrorvalue===a?T:te(E.horizontalerrorvalue),E.verticalerrorvalue===a?T:te(E.verticalerrorvalue)),K||(r.set(0,M+3,"Error"),r.set(0,M+4,"Horizontal Error"),r.set(0,M+5,"Vertical Error")),K=re.error=!0),r.setRow(i,A);else if(Z){for(r.clear(),I={},L={},c=0,u=1,h=($=G.rows&&G.rows.row||[]).length;c<h;c+=1,u+=1)(w=$[c]).id&&(I[w.id.toLowerCase()]=u,r.set(u,0,w.label||w.id));for(c=0,u=1,h=($=G.columns&&G.columns.column||[]).length;c<h;c+=1,u+=1)(w=$[c]).id&&(L[w.id.toLowerCase()]=u,r.set(0,u,w.label||w.id));for(k=G.dataset&&G.dataset[0]&&G.dataset[0].data||[],V=U&&(F=U.getDatasets())&&F[0]&&F[0].components&&F[0].components.data||[],c=0,h=k.length;c<h;c+=1)i=(E=k[c]).rowid.toLowerCase(),o=E.columnid.toLowerCase(),V[c]&&!1===V[c].visible||(I[i]||(I[i]=r.rowCount,r.set(r.rowCount,0,E.rowid)),L[o]||(L[o]=r.columnCount,r.set(0,r.columnCount,E.columnid)),r.set(I[i],L[o],te(E.value)))}return p=null,g=null,$=null,f=null,r.rowCount>0&&r.get(0,0)===a&&r.set(0,0,X.xaxisname||"Label"),{data:r.toString(),error:a,predictedFormat:re}},o=function(e,t){return(0,f.raiseError)(t,"0604111215","run","csvToJson()","fusionCharts CSV data-handler only supports encoding of data."),e};var w={extension:function(e){return e&&(n=e,e.prototype.getDataAsCSV=C,e.prototype.getCSVData=x),{format:"csv",toJSON:o,fromJSON:i}},name:"csv",type:"transcoder",requiresFusionCharts:!0};t["default"]=w},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n,a=r(191),i=r(241),o="json";function s(e,t,r,s,l){(0,a.triggerEvent)("dataLoadRequested",l,{source:i.sourceName,url:e,dataFormat:o,silent:!!s,config:t,successcallback:r},n,i.onDataLoadRequest,i.onDataLoadRequestCancel)}function l(e){this.setChartDataUrl(e,"jsonurl")}var c={extension:function(e){return e&&(e.prototype.setJSONUrl=l),{format:"jsonurl",toJSON:s}},name:"JSONUrl",type:"transcoder",requiresFusionCharts:!0};t["default"]=c},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t.onDataLoadRequest=function(e,t){var r=e.sender,n=r.__state,a=t.url;r.options.dataSource=t.url,n.dhmXhrObj||(n.dhmXhrObj=new i["default"](u,d));n.dhmXhrObj.get("function"==typeof window.decodeURIComponent?window.decodeURIComponent(a):window.unescape(a),{obj:r,args:t})},t.onDataLoadRequestCancel=function(e,t){var r=e.sender,n=r.__state;(0,o.triggerEvent)("dataLoadRequestCancelled",r,t),n&&n.dhmXhrObj&&n.dhmXhrObj.abort()},t.sourceName=void 0;var a,i=n(r(242)),o=r(191),s="XmlHttpRequest";function l(e,t){e.sender.jsVars.stallLoad=!1,e.sender.setChartData(t.dataSource,t.dataFormat,t.config,t.successcallback,t.silent)}function c(e,t){(0,o.triggerEvent)("dataLoadCancelled",e.sender,t),t.xmlHttpRequestObject.abort()}function u(e,t,r,n){var i=r.args;i.dataSource=e,i.xmlHttpRequestObject=t,i.source=s,i.url=n,(0,o.triggerEvent)("dataLoadRequestCompleted",r.obj,i,a,l,c)}function d(e,t,r){var n=r.obj,a=r.args;a.error=e,a.httpStatus=t.xmlhttp&&t.xmlhttp.status?t.xmlhttp.status:-1,a.xmlHttpRequestObject=t,n._addChartDependency("data",{resolve:function(){return{state:1,msg:n.options.dataLoadErrorMessage,msgStyle:{image:{imageHAlign:n.args.dataLoadErrorMessageImageHAlign||n.options.baseChartMessageImageHAlign,imageVAlign:n.args.dataLoadErrorMessageImageVAlign||n.options.baseChartMessageImageVAlign,imageAlpha:n.args.dataLoadErrorMessageImageAlpha||n.options.baseChartMessageImageAlpha,imageScale:n.args.dataLoadErrorMessageImageScale||n.options.baseChartMessageImageScale},message:{color:n.args.dataLoadErrorMessageColor||n.options.baseChartMessageColor,fontFamily:n.args.dataLoadErrorMessageFont||n.options.baseChartMessageFont,fontSize:n.args.dataLoadErrorMessageFontSize||n.options.baseChartMessageFontSize}}}}}),n._setState(),(0,o.triggerEvent)("dataLoadError",n,a)}t.sourceName=s},function(e,t,r){"use strict";(function(e){t.__esModule=!0,t["default"]=void 0;var n=r(191),a=r(184),i=window,o=parseFloat(i.navigator.appVersion.split("MSIE")[1]),s=!!(o>=5.5&&o<=7),l="file:"===i.location.protocol,c=i.ActiveXObject,u=(!c||!l)&&i.XMLHttpRequest,d={objects:0,xhr:0,requests:0,success:0,failure:0,idle:0},h=function(){var e;if(u)return(h=function(){return d.xhr++,new u})();try{e=new c("Msxml2.XMLHTTP"),h=function(){return d.xhr++,new c("Msxml2.XMLHTTP")}}catch(t){try{e=new c("Microsoft.XMLHTTP"),h=function(){return d.xhr++,new c("Microsoft.XMLHTTP")}}catch(r){e=!1}}return e},f=function(){function t(e,t){this.onSuccess=e,this.onError=t,this.open=!1,d.objects++,d.idle++}t.stats=function(e){return e?d[e]:(0,a.extend2)({},d)};var r=t.prototype;return r.transact=function(r,o,c,u){var f,g,p=this,m=p.xmlhttp,v=t.headers,b=p.onError,y=p.onSuccess,x="POST"===r,C=Object.prototype.hasOwnProperty;-1!==o.search(/^(http:\/\/|https:\/\/)/)&&i.location.hostname!==/(http:\/\/|https:\/\/)([^\/\:]*)/.exec(o)[2]?delete v["X-Requested-By"]:!C.call(v,"X-Requested-By")&&(v["X-Requested-By"]="FusionCharts"),(!m||s||a.isFirefox)&&(m=h(),p.xmlhttp=m),m.onreadystatechange=function(){try{4===m.readyState&&(!m.status&&l||m.status>=200&&m.status<300||304===m.status||1223===m.status||0===m.status?(y&&y(m.responseText,p,u,o),d.success++):b&&(b(new Error("XmlHttprequest Error"),p,u,o),d.failure++),d.idle--,p.open=!1)}catch(e){b&&b(e,p,u,o),i.FC_DEV_ENVIRONMENT&&setTimeout((function(){throw e}),0),d.failure++}};try{if(m.open(x?"POST":"GET",o,!0),m.overrideMimeType&&m.overrideMimeType("text/plain"),x)if("string"==typeof c)f=c;else{for(g in f=[],c)f.push(g+"="+(c[g]+"").replace(/\=/g,"%3D").replace(/\&/g,"%26"));f=f.join("&")}else f=null;for(g in v)m.setRequestHeader(g,v[g]);m.send(f),d.requests++,d.idle++,p.open=!0}catch(w){(0,n.raiseError)(e.core,"1110111515A","run","XmlHttprequest Error",w.message)}return m},r.get=function(e,t){return this.transact("GET",e,void 0,t)},r.post=function(e,t,r){return this.transact("POST",e,t,r)},r.abort=function(){var e=this.xmlhttp;return this.open=!1,e&&"function"==typeof e.abort&&e.readyState&&0!==e.readyState&&e.abort()},r.dispose=function(){var e=this;return e.open&&e.abort(),delete e.onError,delete e.onSuccess,delete e.xmlhttp,delete e.open,d.objects--,null},t}();f.headers={"If-Modified-Since":"Sat, 29 Oct 1994 19:43:31 GMT","X-Requested-With":"XMLHttpRequest","X-Requested-By":"FusionCharts",Accept:"text/plain, */*","Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"};var g=f;t["default"]=g}).call(this,r(6))},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n,a=r(191),i=r(241),o="xml";function s(e,t,r,s,l){void 0===e&&(e=""),void 0===t&&(t={}),(0,a.triggerEvent)("dataLoadRequested",l,{source:i.sourceName,url:e,dataFormat:o,silent:!!s,config:t,successcallback:r},n,i.onDataLoadRequest,i.onDataLoadRequestCancel)}function l(e){this.setChartDataUrl(e,"xmlurl")}function c(){(0,a.raiseWarning)(this,"11171116293","run","JavaScriptRenderer~setDataURL()",'Use of deprecated "setDataURL()". Replace with "setXMLUrl()".'),this.setXMLUrl.apply(this,arguments)}var u={extension:function(e){return e&&(e.prototype.setXMLUrl=l),e&&(e.prototype.setDataURL=c),{format:"xmlurl",toJSON:s}},name:"XMLUrl",type:"transcoder",requiresFusionCharts:!0};t["default"]=u},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n=r(184),a=["series","styledefinition"];var i={extension:function(e){e.addEventListener("beforedataupdate",(function(e,t){t.data=function r(e,t){void 0===t&&(t=!1);var i=typeof e;if("string"===i||"number"===i||"function"===i||"boolean"===i)return e;if(null===e||e===n.UNDEF)return e;if(Array.isArray(e)){for(var o=[],s=0;s<e.length;s++)o.push(r(e[s]));return o}if("object"==typeof e){var l={};for(var c in e){var u=t?c:c.toLowerCase();"data"!==u?l[u]=r(e[c],a.includes(u)):e[c]&&e[c]._dataStore?l[u]=e[c]:l[u]=r(e[c])}return l}}(t.data)}))},name:"IgnoreCaseExt",type:"extension",requiresFusionCharts:!0};t["default"]=i},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a,i=n(r(198)),o=r(199),s=r(192),l=r(191),c=/\s+!important$/,u=/\\!important$/,d=function(e,t){var r,n,a=t;for(n in a=(a+"").toLowerCase(),e)if(e.hasOwnProperty(n)&&a===(n+"").toLowerCase()){r=e[n];break}return r},h=function(e){var t,r;for(t=0,r=e.length;t<r;t++)if("function"==typeof e[t])return!0;return!1},f=function(e){var t,r=[];for(t in e)r[t]=e[t];return r},g=function(e){return e.replace(/^\s\s*/,"").replace(/\s\s*$/,"")},p=function(e){var t,r={};for(var n in e)e.hasOwnProperty(n)&&(r[(t=e[n]).name]=t);return r},m=function(e,t){for(var r=t.length,n=-1;r--;)if(e===t[r])return n=r;return n},v=function(e,t,r,n){void 0===n&&(n=null);var a=e;return"object"!=typeof a&&"object"!=typeof t?null:"object"!=typeof t||null===t?a:("object"!=typeof a&&(a=t instanceof Array?[]:{}),function i(e,t,r,n,a,o){var s,l,c,u,d,h=a,f=o;if(f?(h.push(e),f.push(t)):(h=[e],f=[t]),t instanceof Array)for(s=0;s<t.length;s+=1){try{l=e[s],c=t[s]}catch(g){continue}"object"!=typeof c?r&&void 0===c||(e[s]=c):(null!==l&&"object"==typeof l||(l=e[s]=c instanceof Array?[]:{}),-1!==(d=m(c,f))?l=e[s]=h[d]:i(l,c,r,n,h,f))}else for(s in t){try{l=e[s],c=t[s]}catch(g){continue}null!==c&&"object"==typeof c?"[object Object]"===(u=Object.prototype.toString.call(c))?(null!==l&&"object"==typeof l||(l=e[s]={}),-1!==(d=m(c,f))?l=e[s]=h[d]:"data"===s&&c._dataStore?e[s]=n?n(l,c):c:i(l,c,r,n,h,f)):"[object Array]"===u?(null!==l&&l instanceof Array||(l=e[s]=[]),-1!==(d=m(c,f))?l=e[s]=h[d]:i(l,c,r,n,h,f)):e[s]=n?n(l,c):c:e[s]=n?n(l,c):c}return e}(a,t,r,n),a)},b=function(e){var t=e,r={important:!1,str:""};return t?(t=t.toString(),c.test(t)?(t=t.replace(c,""),r.important=!0):(t=t.replace(u,"!imporant"),r.important=!1),r.str=t,r):r},y=function(e,t){var r=b(e),n=b(t);return r.important&&!n.important?r.str:n.str},x=function(e,t){var r,n,a,i,o,s=t.getAll();for(r in s)n=r.toLowerCase(),a=s[r].toString(),i=b(a),o=b(e[n]),i.important&&!o.important?e[n]=i.str:o.important?e[n]=o.str:void 0===e[n]&&"object"!=typeof s[r]?e[n]="object"!=typeof s[r]?i.str:s[r]:"object"==typeof s[r]&&("undefined"==typeof e[n]&&(e[n]=s[r]),e[n]=v(s[r],e[n],!1,y))},C=function S(e,t){var r,n,a,i,o,s,l,c,u,d=0,g=0,p=function(e,t){var r,n=[].concat(Object.keys(e)),a=t.themeArray,i=Array.isArray(a),o=0;for(a=i?a:a[Symbol.iterator]();;){if(i){if(o>=a.length)break;r=a[o++]}else{if((o=a.next()).done)break;r=o.value}n.push.apply(n,Object.keys(r))}return Array.from(new Set(n))}(e,t),m=Array.isArray(p),v=0;for(p=m?p:p[Symbol.iterator]();;){if(m){if(v>=p.length)break;r=p[v++]}else{if((v=p.next()).done)break;r=v.value}if(void 0===(n=e[r])&&(n=e[r]={}),c="timeseries"===t.type&&t.themeComponents[r]&&h(t.themeComponents[r]),n instanceof Array&&!c)for(s=n.length,o=0;o<s;o+=1)"object"==typeof(i=n[o])&&("category"===r?"true"===i.vline?(a=t.component("vline",d,i))&&(x(i,a),d+=1):(a=t.component("category",g,i,s))&&(x(i,a),g+=1):(a=t.component(r,o,i,s))&&(x(i,a),S(i,a)));else if("object"==typeof n)if(c)if(u=(a=t.component(r,null,n)).getAll(),e[r]=u,/^\d+$/.test(Object.keys(u).join("")))for(u=f(u),e[r]=u,l=0;l<e[r].length;l++)S(e[r][l],a);else S(n,a);else(a=t.component(r,null,n))&&(x(n,a),S(n,a))}},w=function(e){function t(){return e.apply(this,arguments)||this}(0,i["default"])(t,e);var r=t.prototype;return r.configure=function(){!this.config.themeStore&&(this.config.themeStore={})},r.add=function(e){for(var t,r=0,n=e.length;r<n;r+=1)(t=e[r].name)&&(this.config.themeStore[t]=e[r])},r.themify=function(e,r,n,a,i){var o,c,u=r.jsVars,d=e.split(","),h=[],f=d.length;if(this.config.themeStore=p((0,s.getDepsByType)("theme")),f){for(c=0;c<f;c+=1)(o=this.config.themeStore[g(d[c])])&&h.push(t.evaluateThemeJSON(o.theme,r,n,i));h.length?(u.themeObject=new _(h,r,!1,a,n),t.applyTheme(r)):(0,l.raiseWarning)(r,"14051100501","run","api.themes~themify()",'The theme "'+e+'" requested has not been registered.')}},t.evaluateThemeJSON=function(e,t,r,n){var a,i,o={},s=t.jsVars,l=r,c=function(e){var t,r;for(t in e)(r=e[t])instanceof Array?o[t]=v(o[t]||[],r):o[t]="object"==typeof r?v(o[t]||{},r):r};return l=l||t.chartType(),s.themeObject&&e!==s.themeObject&&(s.themeObject.dispose(),delete s.themeObject),c(d(e,"base")),n&&(a=d(e,n)),a&&c(a),l&&(i=d(e,l)),i&&c(i),o},t.applyTheme=function(e){var t=e.jsVars.themeObject,r=t.getThemedJSONData().data;r&&C(r,t)},t}(o.ComponentInterface),_=function(e){function t(t,r,n,a,i){var o,s,l=0;for((o=e.call(this)||this).themeArray=t,o.themeComponents={},o.base={},o.type=i,o.chartInstance=r,o.isChildInstance=Boolean(n),o.themedData=n?null:a,o.length=t.length,s=t.length;l<s;l+=1)o.parse(t[l]);return o}(0,i["default"])(t,e);var r=t.prototype;return r.pushTheme=function(e,t){void 0===t&&(t=!1),e&&(this.themeArray.push(e),this.parse(e,t),this.length+=1)},r.parse=function(e,t){var r,n;if(e instanceof Array)for(r=e.length,n=0;n<r;n++)this._parseSubBlock(e[n],t);else this._parseSubBlock(e,t)},r._parseSubBlock=function(e,r){var n,a,i,o,s=this,l=s.base,c=s.type,u=s.themeComponents,d=s.chartInstance,h=s.isChildInstance;for(n in e)"string"==typeof e[n]||"number"==typeof e[n]?l[n]?(a=b(e[n]),i=b(l[n]),!a.important&&i.important||(l[n]=e[n])):l[n]=e[n]:"timeseries"===c&&h?e[n]instanceof Array&&"palettecolors"!==n&&!r?(u[n]||(u[n]=[]),u[n].push(v([],e[n]))):("object"==typeof e[n]||r)&&(l[n]=e[n]):(u[n]||(u[n]=[]),o=u[n],e[n]instanceof Array?o.push(v([],e[n])):"object"==typeof e[n]?o.push(new t([e[n]],d,!0,{},c)):"function"==typeof e[n]&&o.push(e[n]))},r.mergeWithThemeInstance=function(e){var t,r,n,a=this.base,i=e.base,o=this.themeComponents,s=e.themeComponents;for(n in i)t=b(a[n]),r=b(i[n]),t.important&&!r.important||(a[n]=i[n]);for(n in s)o[n]?o[n]=o[n].concat(s[n]):o[n]=[].concat(s[n]);this.length+=e.length},r.get=function(e){return this.base[e]},r.getAll=function(){return v({},this.base)},r.component=function(e,r,n,a){var i,o,s,l,c=this.chartInstance,u=new t([],c,!0,{},this.type);if(!(s=this.themeComponents[e]))return null;for(i=0,o=s.length;i<o;i+=1)"function"==typeof(l=s[i])?"timeseries"!==this.type?u.mergeWithThemeData(l.call(c,r,n,a),r||0,n):u.mergeWithThemeData(l.call(c,n),r,n,!0):u.mergeWithThemeData(l,r,n);return u},r.mergeWithThemeData=function(e,r,n,a){void 0===a&&(a=!1);var i,o=this,s=r;e instanceof Array?(s=s||0,(i=e[s%=e.length])instanceof t?o.mergeWithThemeInstance(i):"function"==typeof i?o.pushTheme(i.call(parent,s,n,length),a):o.pushTheme(i,a)):e instanceof t?o.mergeWithThemeInstance(e):o.pushTheme(e,a)},r.getThemedJSONData=function(){return{data:this.themedData}},r.dispose=function(){var e,t,r=this,n=r.themeComponents;for(e in n)if(t=n[e].length){for(;t--;)n[e][t].dispose&&n[e][t].dispose();delete n[e]}r.themeComponents=null,r.chartInstance=null,r.base=null,r.themeArray=null,r.isChildInstance=null,r.dataWithoutTheme=null},t}(o.ComponentInterface);(a=new w).configure();var k={extension:function(e){e.addEventListener("internal.dataSanitized",(function(t){var r,n,i,o=t.sender,l=o.getFromEnv("chartInstance"),c=p((0,s.getDepsByType)("theme")),u=o.getFromEnv("dataSource"),d=e.options.defaultTheme,h=u&&(u.chart&&u.chart.theme||u.map&&u.map.theme),f=(d||h)&&(d||"")+","+(h||""),m=f&&f.split(","),b=m&&m.length,y=!1;for(n=0;n<b;n++)i=g(m[n]),c&&""!==i&&c.hasOwnProperty(i)&&(y=!0);y?(u=v({},o.getFromEnv("dataSource")),r=l.chartType(),u.map&&(u.chart=u.map,delete u.map),a.themify(f,l,r,u,"geo"===l.apiInstance.defaultSeriesType&&"geo"),o.addToEnv("dataSource",u)):l.jsVars&&l.jsVars.themeObject&&(l.jsVars&&l.jsVars.themeObject.dispose(),l.jsVars&&delete l.jsVars.themeObject)}))},name:"ThemeEngine",type:"extension",requiresFusionCharts:!0};t["default"]=k},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n=r(184),a={extension:{name:"default",theme:{base:{chart:{labelDisplay:"stagger !important",caption:"Theme Caption \\!important",canvasBgColor:"#56EF22",borderThickness:"5 !important",borderColor:"#E60539",baseFontColor:"#781129"},categories:[{fontColor:"#0F4F40",fontSize:15,category:function(e){return{showLabel:e%2?0:1}},vline:{color:"#000000",thickness:2}}],dataset:[{color:"#8C3146",data:function(e,t){return 8===e&&(t.value=n.BLANKSTRING),{color:Number(t.value)<32e3?"#8C3146":"#FF0000",alpha:"100"}}}],trendlines:[{line:function(e){return e?{color:"#ff0000",thickness:3}:{color:"#ffff00",thickness:3}}}]},pie2d:{chart:{bgColor:"#FF0000"}},msline:{chart:{canvasBgColor:"#ff0000"}},geo:{chart:{canvasBgColor:"#0000ff"}},world:{chart:{canvasBgColor:"#00ff00"}}}},name:"DefaultTheme",type:"theme"};t["default"]=a},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a,i,o=r(184),s=n(r(248)),l=r(196),c=/^#?[0-9a-f]{6}/i,u="",d="default",h=/FFFFFF/i,f=/255,255,255/,g=function(e){var t=e.replace("rgba(","").split(",");return"#"+("000000"+(t[0]<<16|t[1]<<8|t[2]).toString(16)).slice(-6)},p=function(e,t){var r,n,a=[];if("number"==typeof e)return t;for(n=e.split&&e.split(","),r=0;r<n.length;r++)a.push(t);return a.join()},m=function(e){var t;return/rgb/.test(e)?(t=e.match(/[\d\.]+\)/g),parseFloat(t&&t[0])):e.FCcolor?(0,o.getFirstAlpha)(e.FCcolor.alpha):void 0},v=function(e){e.forEach((function(e){return function t(e){e.removeStateCosmetics("highlight",t)}(e)}))},b=function(e,t,r,n,a){var i,s,l,c,d,h;i=g(n.color),l=100*m(n.color),s=a?(0,o.pluck)(r.valuefontcolor,i):i,c=a?(0,o.pluck)(r.valuefontalpha,r.alpha,l):l,i=n.backgroundColor===u?u:g(n.backgroundColor),l=n.backgroundColor===u?0:100*m(n.backgroundColor),isNaN(l)&&(l=0),d=(0,o.toRaphaelColor)({color:a?(0,o.pluck)(r.valuebgcolor,i):i,alpha:a?(0,o.pluck)(r.valuebgalpha,r.alpha,l):l}),i=n.borderColor===u?u:g(n.borderColor),l=n.borderColor===u?u:100*m(n.borderColor),isNaN(l)&&(l=0),h=(0,o.toRaphaelColor)({color:a?(0,o.pluck)(r.valuebordercolor,i):i,alpha:a?(0,o.pluck)(r.valueborderalpha,r.alpha,l):l}),t&&e.setAnimation({el:t,label:"highlightedDataLabel",attr:{fill:(0,o.toRaphaelColor)({color:s,alpha:c}),"text-bound":[d,h,n.borderThickness,n.borderPadding,n.borderRadius,n.borderDash]}})},y=function(e){var t,r,n,a,i,o=e.split(","),s={};for(t=0,r=o.length;t<r;t++)a=(n=o[t].split("="))[0],i=n[1],s[a]=i;return s},x=function(e,t,r){var n,a,i=t.color;return/rgb/.test(e)?(n=(0,o.pluck)(t.alpha,100*m(e)),/rgb/.test(i)&&(i=g(i)),a=r?(0,o.toRaphaelColor)({color:(0,o.pluck)(i,g(e)),alpha:n}):e):e.FCcolor?a=r?(0,o.toRaphaelColor)(function(e,t){var r,n,a={};for(r in e)"alpha"===r?a[r]=t.alpha?p(e[r],t.alpha):e[r]:"color"===r?(-1!==e[r].indexOf(",")&&t.color&&(n=t.color+","+e[r].substring(e[r].indexOf(",")+1)),a[r]=(0,o.pluck)(n||t.color,e[r])):a[r]=e[r];return a}(e.FCcolor,t)):(0,o.toRaphaelColor)(e.FCcolor):c.test(e.color||e)&&(a=r?(0,o.toRaphaelColor)({color:(0,o.pluck)(t.color,e.color,e),alpha:(0,o.pluck)(t.alpha,e.alpha)}):(0,o.toRaphaelColor)({color:e.color||e,alpha:e.alpha})),a},C=function(e,t,r,n,a,i){var s,l,c,u,d,h,f,p,v={},b={};a?(s=(0,o.getColumnColor)(n.color||r.upperColorArr[0].FCcolor.color,n.alpha.toString(),r.upperColorArr[0].FCcolor.ratio,r.upperColorArr[0].FCcolor.angle,i,n.bordercolor||g(r.upperBoxBorder.color),n.borderalpha&&n.borderalpha.toString()||(100*m(r.lowerBoxBorder.color)).toString()),b=(0,o.toRaphaelColor)(s[0]),l=(0,o.getColumnColor)(n.color||r.lowerColorArr[0].FCcolor.color,n.alpha.toString(),r.lowerColorArr[0].FCcolor.ratio,r.lowerColorArr[0].FCcolor.angle,i,n.bordercolor||g(r.lowerBoxBorder.color),n.borderalpha&&n.borderalpha.toString()||(100*m(r.lowerBoxBorder.color)).toString()),v=(0,o.toRaphaelColor)(l[0]),c=x(r.median.color,n,a),h=x(r.lowerQuartile.color,n,a),f=x(r.upperQuartile.color,n,a)):(b=(0,o.toRaphaelColor)(r.upperColorArr[0]),v=(0,o.toRaphaelColor)(r.lowerColorArr[0]),c=r.median.color,u=r.upperBoxBorder.color,d=r.lowerBoxBorder.color,f=r.upperQuartile.color,h=r.lowerQuartile.color),p=t.upperBoxElem,e.setAnimation({el:p,label:"highlightedBoxAnsWhiskerPlot",attr:{fill:b,"drop-shadow":p.attrs["drop-shadow"]&&"none"!==p.attrs["drop-shadow"]?[1,1,3,"rgba(64,64,64,"+m(b)+")",p.attrs[4],p.attrs["drop-shadow"][5]]:"none"}}),p=t.lowerBoxElem,e.setAnimation({el:p,label:"highlightedBoxAnsWhiskerPlot",attr:{fill:v,"drop-shadow":p.attrs["drop-shadow"]&&"none"!==p.attrs["drop-shadow"]?[1,1,3,"rgba(64,64,64,"+m(v)+")",p.attrs[4],p.attrs["drop-shadow"][5]]:"none"}}),p=t.lowerBoxBorderEle,e.setAnimation({el:p,label:"highlightedBoxAnsWhiskerPlot",attr:{stroke:d}}),t.upperBoxBorderEle&&e.setAnimation({el:t.upperBoxBorderEle,label:"highlightedBoxAnsWhiskerPlot",attr:{stroke:u}}),t.lowerQuartileEle&&e.setAnimation({el:t.lowerQuartileEle,label:"highlightedBoxAnsWhiskerPlot",attr:{stroke:h}}),t.upperQuartileEl&&e.setAnimation({el:t.upperQuartileEl,label:"highlightedBoxAnsWhiskerPlot",attr:{stroke:f}}),t.midLineElem&&e.setAnimation({el:t.midLineElem,label:"highlightedBoxAnsWhiskerPlot",attr:{stroke:c}})},w=function(e,t,r){var n,a,i,s,l,c,u,d,h,f=e.getFromEnv("chart"),g=e.getFromEnv("animationManager"),p=(f.config,f.config.dataLabelStyle),m=e.components.data;for(n=0,a=m.length;n<a;n++)if(u=m[n])for(c in i=u.graphics,h=(s=u.config.anchorProps).enabled,l={fillColor:{FCcolor:{alpha:r&&h?(0,o.pluck)(t.anchorbgalpha,t.alpha,s.bgAlpha):s.bgAlpha,color:r&&h?(0,o.pluck)(t.anchorbgcolor,t.color,s.bgColor):s.bgColor}},borderColor:{FCcolor:{alpha:r&&h?(0,o.pluck)(t.borderalpha,t.alpha,s.borderAlpha):s.borderAlpha,color:r&&h?(0,o.pluck)(t.anchorbordercolor,t.color,s.borderColor):s.borderColor}},imageAlpha:r?t.alpha:s.imageAlpha,imageScale:s.imageScale},i)switch((d=!c.match(/error/gi)&&i[c])&&d.type){case"path":g.setAnimation({el:d,label:"highlightedAnchorPlot",attr:{fill:(0,o.toRaphaelColor)(l.fillColor),stroke:(0,o.toRaphaelColor)(l.borderColor)}});break;case"image":g.setAnimation({el:d,label:"highlightedAnchorImagePlot",attr:{opacity:l.imageAlpha/100}});break;case"text":b(g,d,t,p,r)}},_=function(e,t,r,n,a){var i,s=e.getStateCosmetics("default").symbol||{},l=s.fill,u=s.stroke,d=a?(0,o.pluck)(n.color,g(r.text.fill)):g(r.text.fill),p=t.legendItemLine,m=r.symbol.stroke,v=e.getFromEnv("animationManager");p&&m&&(c.test(m)?v.setAnimation({el:p,label:"highlightedLegendItem",attr:{stroke:a?(0,o.toRaphaelColor)({color:(0,o.pluck)(n.color,m),alpha:n.alpha}):m}}):(i=x(m,n,a),v.setAnimation({el:p,label:"highlightedLegendItem",attr:{stroke:i}}))),l&&(l=l.match(c)?a&&!h.test(l)?(0,o.toRaphaelColor)({color:n.color||l,alpha:n.alpha}):l:f.test(l)?l:x(l,n,a)),u&&(u=c.test(u)?a&&!h.test(u)?(0,o.toRaphaelColor)({color:n.color||u,alpha:n.alpha}):u:a&&!f.test(u)&&n.color?(0,o.toRaphaelColor)({color:n.color,alpha:n.alpha}):u),e.setStateCosmetics("highlight",{symbol:{fill:l||"none",stroke:u||"none",opacity:(a?n.alpha:100)/100},text:{fill:(0,o.toRaphaelColor)({color:d,alpha:a?n.alpha:100})}}),e.hasState("hidden")||e.setLegendState("highlight",!0)},k=function(e,t){var r=e.getFromEnv("legend").getItem(t);return r&&r.getGraphicalElement()},S={area:function(e,t,r){var n,a,i,s,l,c,d,h,f,g,p,v,b,x,C,S=this,E=S.getFromEnv("chart"),A=S.getFromEnv("animationManager"),T=E.getFromEnv("legend").getChildren("legendItem")||[],M=arguments[4],F=T.length,I=y(e),L=k(E,M),N=E.config.dataLabelStyle,D=S.getContainer("labelGroup"),O=S.config,R=O.shadow||{},P=R.opacity>0;if(!r&&S.getState("visible")){for(I.alpha=I.alpha||30,a=0;a<F&&(n=T[a]||{}).getId()!==M;a++);D&&A.setAnimation({el:D,label:"highlightedGroup",attr:{opacity:t?I.alpha/100:m(N.color)}}),s=O.plotbordercolor,f=O.plotborderalpha,x=O.plotfillalpha,i=O.plotgradientcolor,v=S.getGraphicalElement("lineElement")||S.getGraphicalElement("splineElement"),d=t?(0,o.pluck)(I.bordercolor,I.color,s):s,I.color&&(g=I.color+(i?","+i:u)),p=O.fillColor.color,l=t?(0,o.pluck)(g,p):p,b=O.plotfillangle,c=t?I.alpha:x,h=t?(0,o.pluck)(I.borderalpha,I.alpha):f,C=!!P&&(t?I.alpha/100:c/100),A.setAnimation({el:v,label:"highlightedAreaPlot",attr:{fill:(0,o.toRaphaelColor)({color:l,alpha:c,angle:b}),stroke:(0,o.toRaphaelColor)({color:d,alpha:h})}}),v.shadow(C),L&&_(n,L,n.parseLegendCosmetics(),I,t),w(S,I,t)}},bubble:function(e,t,r){var n,a,i,s,l,c,u,d,h,f,g,p,v=this,x=v.getFromEnv("chart"),C=v.getFromEnv("animationManager"),w=x.getFromEnv("legend").getChildren("legendItem")||[],S=w.length,E=arguments[4],A=x.config.dataLabelStyle,T=v.getContainer("labelGroup"),M=y(e);if(!1===r&&v.getState("visible")){for(M.alpha||(M.alpha=30),i=v.components.data||[],a=0;a<S&&(n=w[a]||{}).getId()!==E;a++);for(_(n,k(x,E),n.parseLegendCosmetics(),M,t),T&&C.setAnimation({el:T,label:"highlightedGroup",attr:{opacity:t?M.alpha/100:m(A.color)}}),a=0,S=i.length;a<S;a++)(s=i[a])&&(g=s.graphics,c=(l=s.config).colorObj,d=l.is3D,u=g.element,p=g.label,d?(f=t?(0,o.getPointColor)((0,o.pluck)(M.color,c.FCcolor.color),(0,o.pluck)(M.alpha,(0,o.getFirstAlpha)(c.alpha))):c,f=(0,o.toRaphaelColor)(f)):(f=t?(0,o.pluck)(M.color,c.color):c.color,h=t?M.alpha:c.alpha,f=(0,o.toRaphaelColor)({color:f,alpha:h})),u&&C.setAnimation({el:u,label:"highlightedBubblePlot",attr:{fill:f}}),p&&b(C,p,M,A,t))}},pie:function(e,t,r,n){var a,i,l,c,u,d,h,f,g,p,v,x,C,w,S=this,E=n.getFromEnv("chart"),A=n.getFromEnv("animationManager"),T=this,M={},F=arguments[4],I=E.getFromEnv("legend").getChildren("legendItem")||[],L=y(e);if(!1===r){for(L.alpha||(L.alpha=30),i=S.graphics.element,l=S.config,v=0,p=I.length;v<p&&(C=I[v]).getId()!==F;v++);x=k(E,F),_(C,x,C.parseLegendCosmetics(),L,t),u=l.color.color,E=(T=i.data("plotItem")).chart,a=T.style,c=90,h=E.config.is3D,(d=T.center)&&(M={cx:d[0],cy:d[1],r:T.radius}),u=t?(0,s["default"])((0,o.pluck)(L.color,u),L.alpha,c):l.color,w=t?L.alpha:u.alpha,u=(0,o.extend2)(u,M),h?i&&A.setAnimation({el:i,label:"highlightedPiePlot",attr:{color:u.color.split(",")[0],alpha:w}}):i&&A.setAnimation({el:i,label:"highlightedPiePlot",attr:{fill:(0,o.toRaphaelColor)(u)}}),f=S.graphics.label,g=S.graphics.connector,f&&b(A,f,L,a,t),g&&A.setAnimation({el:g,label:"highlightedPieConnectorPlot",attr:{opacity:t?L.alpha/100:m(a.color)}})}},line:function(e,t,r){var n,a,i,s,l,c,d,h=this,f=h.getFromEnv("chart"),g=h.getFromEnv("animationManager"),p=f.getFromEnv("legend").getChildren("legendItem")||[],v=p.length,b=arguments[4],x=f.config.dataLabelStyle,C=y(e),S=k(f,b),E=h.getContainer("labelGroup"),A=h.getContainer("errorPlotGroup"),T=h.config,M=T.linecolor,F=T.alpha||T.lineAlpha,I=T.shadow||{},L=I.opacity>0,N=h.config.lineOb,D=u;if(!r&&h.getState("visible")){for(C.alpha||(C.alpha=30),l=0;l<v&&(n=p[l]||{}).getId()!==b;l++);if(A&&(a=T.errorBarColor&&m(T.errorBarColor),i=t?(0,o.pluck)(C.alpha/100,a):a,g.setAnimation({el:A,label:"highlightedGroup",attr:{opacity:i}})),E&&g.setAnimation({el:E,label:"highlightedGroup",attr:{opacity:t?C.alpha/100:m(x.color)}}),s=h.getGraphicalElement("lineElement"),M=t?(0,o.pluck)(C.color,M):M,F=t?(0,o.pluck)(C.alpha,F):F,c=!!L&&(t?C.alpha/100:F/100),s&&g.setAnimation({el:s,label:"highlightedLinePlot",attr:{stroke:(0,o.toRaphaelColor)({color:M,alpha:F})}}),s&&s.shadow(c),"object"==typeof N&&N)for(D in N)(d=N[D]&&N[D].el)&&g.setAnimation({el:d,label:"highlightedLinePlot",attr:{stroke:t?M:N[D].attr.stroke,"stroke-opacity":F/100}}),d&&d.shadow(c);S&&_(n,S,n.parseLegendCosmetics(),C,t),w(h,C,t)}},boxandwhisker2d:function(e,t,r){var n,a,i,o,s,l,c=this,u=c.getFromEnv("chart"),d=c.getFromEnv("animationManager"),h=c.config.isRoundEdges,f=arguments[4],g=k(u,f),p=c.getContainer("lowerWhiskerGroup"),m=c.getContainer("upperWhiskerGroup"),v=c.getContainer("labelGroup"),b=u.getFromEnv("legend").getChildren("legendItem")||[],x=b.length,w=y(e);if(!1===r&&c.getState("visible")){for(w.alpha||(w.alpha=30),n=0;n<x&&(a=b[n]||{}).getId()!==f;n++);for(_(a,g,a.parseLegendCosmetics(),w,t),p&&d.setAnimation({el:p,label:"highlightedGroup",attr:{opacity:t?w.alpha/100:1}}),m&&d.setAnimation({el:m,label:"highlightedGroup",attr:{opacity:t?w.alpha/100:1}}),v&&d.setAnimation({el:v,label:"highlightedGroup",attr:{opacity:t?w.alpha/100:1}}),n=0,x=(l=c.components.data).length;n<x;n++)s=(o=l[n]).config,i=o.graphics,C(d,i,s,w,t,h)}},heatmap:function(e,t,r,n){var a,i,s,l,c,u,d,h,f,p,v,x=this,C=n.getFromEnv("chart"),w=n.getFromEnv("animationManager"),S=C.config,E=S.dataLabelStyle,A=C.getFromEnv("legend"),T=arguments[4],M=y(e),F=A.getChildren("legendItem")||[];if(!r&&n.getState("visible")&&!1!==x.visible){for(M.alpha||(M.alpha=t?30:100),S=x.config,f=0,h=F.length;f<h&&(v=F[f]).getId()!==T;f++);for(u in p=k(C,T),_(v,p,v.parseLegendCosmetics(),M,t),c=g(S.color),l=m(S.color),a=t?(0,o.pluck)(M.color,c):c,i=t?M.alpha:100*l,(s=(d=x.graphics).element)&&w.setAnimation({el:s,label:"highlightedHeatmapPlot",attr:{fill:(0,o.toRaphaelColor)({color:a,alpha:i})}}),d)"text"===(s=d[u]).type&&b(w,s,M,E,t)}},funnelpyramid:function(e,t,r,n){var a,i,s,l,c,u,d,h,f,p,v,x,C,w,S,E=this,A=n.getFromEnv("chart"),T=n.getFromEnv("animationManager"),M=y(e),F=A.getFromEnv("legend").getChildren("legendItem")||[],I=arguments[4];if(!1===r){for(M.alpha||(M.alpha=30),l=E,C=0,x=F.length;C<x&&(S=F[C]).getId()!==I;C++);w=k(A,I),_(S,w,S.parseLegendCosmetics(),M,t),i=l.style,v=l.color,c=g(v),p=m(v),u=t?(0,o.pluck)(M.color,c):c,d=t?M.alpha:100*p,s=E.getGraphicalElement("graphic"),h=E.getGraphicalElement("dataLabel"),f=E.getGraphicalElement("connector"),a=E.style,s&&T.setAnimation({el:s,label:"highlightedFunnelPyramidPlot",attr:{fill:(0,o.toRaphaelColor)({color:u,alpha:d})}}),h&&b(T,h,M,a,t),f&&T.setAnimation({el:f,label:"highlightedFunnelPyramidConnectorPlot",attr:{opacity:t?M.alpha/100:m(i.color)}})}},sankey:function(e,t,r){var n,a,i=e.getLinkedParent(),o=i.getChildren("legend")[0];e.getChildren("nodes").forEach((function(e){n=o.getItem(e.config.legendItemId),e.config.legendItemId===t?(r?e.onFocusCallback():e.onFocusOutCallback(),a=!1):a=!0,a=a&&r,_(n,k(i,t),n.parseLegendCosmetics(),{alpha:30},a)}))},"default":function(e,t,r){var n,a,i,s,l,c,d,h,f,g,p,v,x,C,w,S=this,E=S.config,A=S.getFromEnv("chart"),T=S.getFromEnv("animationManager"),M=A.config,F=M.dataLabelStyle,I=M.useroundedges,L=A.config.is3D,N=y(e),D=arguments[4],O=k(A,D),R=S.getContainer("labelGroup"),P=S.getContainer("errorPlotGroup"),V=u,B=A.getFromEnv("legend"),j=B.getChildren("legendItem")||[],G=j.length,H=E.showShadow;if(!1===r&&!0===S.getState("visible")){for(N.alpha||(N.alpha="30"),p=S.components.data||[],a=0;a<G&&(C=j[a]||{}).getId()!==D;a++);for(O&&_(C,O,C.parseLegendCosmetics(),N,t),R&&T.setAnimation({el:R,label:"highlightedGroup",attr:{opacity:t?N.alpha/100:m(F.color)}}),P&&(l=E.errorBarColor&&m(E.errorBarColor),c=t?(0,o.pluck)(N.alpha/100,l):l,T.setAnimation({el:P,label:"highlightedGroup",attr:{opacity:c}})),a=0,G=p.length;a<G;a++)(v=p[a])&&v.graphics&&(g=(M=v.config).colorArr[0],w=(i=M.colorArr[1]).FCcolor.alpha,V=-1!==(h=(n=g.FCcolor.color).indexOf(","))&&N.color?N.color+n.substring(h):(0,o.pluck)(N.color,n),f=L?w:(0,o.pluck)(N.borderalpha,N.alpha,w),0===(0,o.pluckNumber)(w)&&(f="0"),d=t?(0,o.getColumnColor)(V,N.alpha,g.FCcolor.ratio,g.FCcolor.angle,I,(0,o.pluck)(N.bordercolor,i.FCcolor.color),f,!1,L):[g,i],(s=v.graphics.element)&&(n=(0,o.toRaphaelColor)(d[0]),i=(0,o.toRaphaelColor)(d[1]),T.setAnimation({el:s,label:"highlightedDefaultPlot",attr:{stroke:i,fill:n}}),s.shadow({opacity:H?(0,o.getFirstAlpha)(d[0].alpha)/100:0})),x=v.graphics.label,b(T,x,N,F,t))}}},E=function(e){e&&i.add(e)},A=function(e,t){var r=e.sender.apiInstance;!1!==r.hasInteractiveLegend&&!1!==r.highlightEnabled&&i.applyEffect(r,t,!0)},T=function(e,t){var r=e.sender.apiInstance;!1!==r.hasInteractiveLegend&&!1!==r.highlightEnabled&&i.applyEffect(r,t,!1)},M=function(e,t){var r=e.sender.apiInstance;r.addJob("plothighlighteffect",(function(){r.config.showLegend&&!1!==r.hasInteractiveLegend&&!1!==r.highlightEnabled&&i.applyEffect(r,t,!0)}),l.priorityList.postRender)};var F={extension:function(e){(i=new(function(){function t(){this.effectStore={},this.eventHandlers={}}var r=t.prototype;return r.add=function(e){this.effectStore[e.name]=e},r.attachEventHandlers=function(t,r){this.eventHandlers[t]||(this.eventHandlers[t]={},this.eventHandlers[t].listenerFn=e.addEventListener(t,r))},r.applyEffect=function(e,t,r){var n,i,s,l,c,h,f,g,p,m,b,y,x=this.effectStore,C=e.getFromEnv("chart-attrib"),w=e.config.defaultDatasetType,_=C.plothighlighteffect&&C.plothighlighteffect.toLowerCase(),k=e.getDatasets(),S=e.config.isSingleSeries?k[0].components.data:k,E=(0,o.pluck)(t.itemId,t.legendItemId,t.legendItemIndex),A=u;if(v(e.getFromEnv("legend").getChildren("legendItem")),"funnel"!==e.getName()&&"Pyramid"!==e.getName()||(S=k[0].getChildren("data")),e.getFromEnv("animationManager").setAnimationState("plotHighlighter"),_&&(y=(_=_.replace(/\s+/g,"").split("|"))[0],A=_[1]||""),y&&x[y])if("HeatMap"===e.getName())for(n=e.getFromEnv("colorRange"),b=function(e){var t,r,n=f.getChildren("legendItem"),a=n&&n.length;for(t=0;t<a;++t)if(n[t].config.datasetObj.code===e){r=n[t].getId();break}return r},p=(f=e.getFromEnv("legend")).getItem(E).config.datasetObj,c=0;c<S.length;c++)i=(l=S[c]).config.value,(m=n.getColorObj(i)).outOfRange||(p.code===m.code?x[y][w].call(l,A,r,!0,k[0],E):x[y][w].call(l,A,r,!1,k[0],b(m.code)));else if("sankey"===e.getName())x[y].sankey(k[0],E,r);else for(c=0,g=S.length;c<g;c++)w=(w=(l=S[c]).getName&&l.getName()||w).toLowerCase(),(s=(0,o.pluck)(l.config.itemId,l.config.legendItemId))!==a&&(h=s===E,x[y][w]?x[y][w].call(l,A,r,h,k[0],s):x[y][d].call(l,A,r,h,k[0],s))},t}())).attachEventHandlers("legenditemrollover",A),i.attachEventHandlers("legenditemrollout",T),i.attachEventHandlers("legenditemclicked",M),E({name:"fadeout",area:S.area,radar:S.area,bubble:S.bubble,pie2d:S.pie,line:S.line,spline:S.line,splinearea:S.area,pie3d:S.pie,zoomline:S.line,funnelpoint:S.funnelpyramid,pyramidpoint:S.funnelpyramid,scatter:S.line,selectscatter:S.line,dragline:S.line,dragarea:S.area,realtimearea:S.area,realtimeline:S.line,realtimelinedy:S.line,realtimestackedarea:S.area,errorline:S.line,errorscatter:S.line,stepline:S.line,doughnut2d:S.pie,doughnut3d:S.pie,heatmap:S.heatmap,boxandwhisker2d:S.boxandwhisker2d,multiaxisline:S.line,sankey:S.sankey,"default":S["default"]})},name:"PlotHighlighter",type:"extension",requiresFusionCharts:!0};t["default"]=F},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n=r(184),a=function(e,t,r,a){var i,o,s,l,c,u,d=(0,n.getFirstColor)(e),h=(0,n.getFirstAlpha)(t);return r<100&&n.hasSVG?a?(c=(0,n.getDarkColor)(d,Math.floor(100*(85-.2*(100-r)))/100),u=(0,n.getLightColor)(d,Math.floor(100*(100-.5*r))/100),i={color:c+n.COMMASTRING+u+n.COMMASTRING+u+n.COMMASTRING+c,alpha:h+n.COMMASTRING+h+n.COMMASTRING+h+n.COMMASTRING+h,radialGradient:!0,gradientUnits:"userSpaceOnUse",r:r}):(o=Math.floor(.85*(100-.35*r)*100)/100,s=(0,n.getDarkColor)(d,o),l=Math.floor(.5*(100+r)*100)/100,i={color:(0,n.getLightColor)(d,l)+n.COMMASTRING+s,alpha:h+n.COMMASTRING+h,ratio:r+","+(100-r),radialGradient:!0,gradientUnits:"userSpaceOnUse"}):i={color:d+n.COMMASTRING+d,alpha:h+n.COMMASTRING+h,ratio:"0,100"},i};t["default"]=a},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(250)),i=r(184),o="__FC_tooltipText",s=function(e,t,r){var n=(0,i.getMouseCoordinate)(t.universe,(0,i.getTouchEvent)(r),t.chart),a=11,s=11,l=n.chartX,u=n.chartY;this.applyScale&&(this._updateScalingValues(),a/=this.scaleFactor.scaleX,s/=this.scaleFactor.scaleY),l+=a,u+=s,c._draw.call(t,l,u,this.data(o),e)},l=function(e){c._hide(e)},c=function(){function e(t,r){var n=this;n.config={},n.universe=t,this.scaleFactor=(0,i.getScalingValue)(t),this.applyScale=0,this.chart=r,this.restrictWithinCanvas={left:!1,right:!1,top:!1,bottom:!1},n.toolTips={implicit:[],explicit:[]},n.hideImplicitToolTip=function(t){var r=n.lastActiveToolip;r&&t.target!==r.getData("targetElement").node&&(e._hide(r),n.config.lastActiveToolip=i.UNDEF)},n.config.positioningArr=[],n.config.canvasArr=[],t.FusionCharts.jsVars.fcObj.addEventListener("resized",n._updateAllToolTipBounds.bind(n))}var t=e.prototype;return t.setRestrictionWithinCanvas=function(e){void 0===e&&(e={}),Object.assign(this.restrictWithinCanvas,e)},t.getRestrictionWithinCanvas=function(){return this.restrictWithinCanvas},t._updateAllToolTipBounds=function(){var e,t,r=this.config,n=function(t){t.universeBounds&&t.universeBounds.canvas&&(e=r.canvasArr.indexOf(t.universeBounds.canvas)),t.setUniverseBounds(r.positioningArr[e])},a=this.toolTips;for(t in a)a[t].forEach(n)},t._setRelativePosition=function(e){var t=this.config,r=t.canvasArr,n=t.positioningArr,a=r.indexOf(e.canvas);-1===a?(r.push(e.canvas),n.push(e)):(r[a]=e.canvas,n[a]=e)},t._createToolTip=function(e,t){var r,n=this.config;return(r=new a["default"](this.universe,n.positioningArr[n.canvasArr.indexOf(t)])).setRestrictionWithinCanvas(this.restrictWithinCanvas),r.setStyle(this.config.tooltipStyle),this.toolTips[e].push(r),r},t.enableToolTip=function(e,t,r){var n,a,i=this,c=i.toolTips.implicit,u=c.length;return t?e.data(o)?(u>0&&c.some((function(r){return!(!(n=r).getData("active")||n.data.targetElement!==e)&&(n.show(t),!0)})),e.data(o,t),i):(n=i._getAvailableToolTip("implicit",r),i.disableToolTip(e),e.data(o,t),e.data("__FC_onTooltipMove",s.bind(e,n,i)),e.data("__FC_onTooltipOut",l.bind(e,n)),e.data("__FC_onTooltipOver",(a=e,function(t){i.draw(t,e.data(o),n),n.setData("targetElement",a),i.config.lastActiveToolip=n})),e.on("fc-mousemove",e.data("__FC_onTooltipMove")),e.on("fc-mouseout",e.data("__FC_onTooltipOut")),e.on("fc-mouseover",e.data("__FC_onTooltipOver")),i):(i.disableToolTip(e),i)},t.disableToolTip=function(e){var t=e.data("__FC_onTooltipOut"),r=e.data("__FC_onTooltipMove"),n=e.data("__FC_onTooltipOver");return r&&e.off("fc-mousemove",r),t&&e.off("fc-mouseout",t),n&&e.off("fc-mouseover",n),e.removeData(o),this},t._updateScalingValues=function(){var e=this.universe;this.scaleFactor=(0,i.getScalingValue)(e)},t.draw=function(t,r,n,a){var o,s,l=11,c=11,u=(0,i.getMouseCoordinate)(this.universe,(0,i.getTouchEvent)(t),this.chart),d=n&&!n.disposed?n:this._getAvailableToolTip("explicit",a);return this.applyScale&&(this._updateScalingValues(),l/=this.scaleFactor.scaleX,c/=this.scaleFactor.scaleY),o=u.chartX,s=u.chartY,o+=l,s+=c,e._draw.call(this,o,s,r,d),d},t.drawAt=function(t,r,n,a,i){this.applyScale&&this._updateScalingValues();var o=a&&!a.disposed?a:this._getAvailableToolTip("explicit",i);return e._draw.call(this,t,r,n,o),o},e._draw=function(e,t,r,n){var a=this.config;(0,i.isSimilarObject)(n.previousStyle,a.tooltipStyle)||(n.setStyle(a.tooltipStyle),n.previousStyle=Object.assign({},a.tooltipStyle)),n.show(r),n.update(e,t)},t._getAvailableToolTip=function(e,t){for(var r,n=this.toolTips[e],a=0,i=n.length;a<i;a++)if(!1===(r=n[a]).getData("active"))return r;return this._createToolTip(e,t)},t.setStyle=function(e){var t,r=this.config;for(var n in t=r.tooltipStyle={},e)"showToolTipShadow"===n?e[n]?t.boxShadow="1px 1px 3px rgba(64,64,64,0.4)":t.boxShadow="none":t[n]=e[n]},t.hide=function(t){return e._hide(t),this},t.hideAll=function(){var t,r;for(t in this.toolTips)for(r=0;r<this.toolTips[t].length;r++)e._hide(this.toolTips[t][r])},t.setApplyScale=function(e){this.applyScale=e},e._hide=function(e,t){e&&(t?e.dispose():e.hide())},e}(),u={extension:c,name:"ToolTipController",type:"plugin"};t["default"]=u},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n=r(184),a="fusioncharts-div",i="#545454",o="3px",s="10px",l="hidden",c="1px",u="#000000",d="nowrap",h="normal",f="absolute",g="solid",p="#ffffff",m="none",v="hidden",b="none",y="left, top",x="auto",C=function(e){var t=e.getBoundingClientRect();return{left:0,top:0,right:t.width||t.right-t.left,bottom:t.height||t.bottom-t.top}},w=function(){function e(e,t){this.text=n.BLANKSTRING,this.x=0,this.y=0,this.visibleWidth=0,this.universe=e,this.setUniverseBounds(t||C(e)),this.data={active:!1,target:!1},this.createElement(e),this.previousStyle={},this.restrictWithinCanvas={left:!1,right:!1,top:!1,bottom:!1}}var t=e.prototype;return t.setUniverseBounds=function(e){this.universeBounds=e||this.universe&&C(this.universe)},t.setRestrictionWithinCanvas=function(e){void 0===e&&(e={}),Object.assign(this.restrictWithinCanvas,e)},t.getRestrictionWithinCanvas=function(){return this.restrictWithinCanvas},t.createElement=function(e){var t=this.element=document.createElement("div");return t.setAttribute("class","fc__tooltip"),t.className+=" "+a,t.innerHTML=this.text,e.appendChild(this.setDefaultStyle()),t},t.setDefaultStyle=function(){var e=this.element;return e.setAttribute("style",""),e.style.color=i,e.style.padding=o,e.style.fontSize=s,e.style.overflow=l,e.style.borderWidth=c,e.style.borderColor=u,e.style.whiteSpace=d,e.style.position=f,e.style.borderStyle=g,e.style.backgroundColor=p,e.style["user-select"]=m,e.style["-ms-user-select"]=m,e.style["-moz-user-select"]=m,e.style["-webkit-user-select"]=m,e.style["-webkit-touch-callout"]=m,e.style.top=this.x+"px",e.style.left=this.y+"px",e.style.visibility=v,e.style["pointer-events"]=b,e},t.setData=function(e,t){this.data[e]=t},t.getData=function(e){return this.data[e]},t.setStyle=function(e){var t,r=this.element.style;for(t in this.setDefaultStyle(),e)r[t]=e[t]},t.show=function(e){this.text!==e&&(this.text=e,this.element.innerHTML=this.text),this.setData("active",!0),"visible"!==this.element.style.visibility&&(this.element.style.visibility="visible"),this.element.style["will-change"]=y,this.element.style["max-width"]=this.universeBounds.right-this.universeBounds.left-12+"px"},t.update=function(e,t){void 0===e&&(e=this.x),void 0===t&&(t=this.y);var r=this.universeBounds,n=(this.restrictWithinCanvas.bottom?r.bottom:this.universe.clientHeight)-12,a=(this.restrictWithinCanvas.right?r.right:this.universe.clientWidth)-12,i=(this.restrictWithinCanvas.left?r.left:0)+12,o=this.element,s=o.offsetWidth,l=o.offsetHeight,c=o.style;e+s<a?(c.left=e+"px",c.whiteSpace=d):s<a?e-s>=i?c.left=e-s-12+"px":(c.left=a-s+"px",c.whiteSpace=h):(c.left=r.left+"px",c.whiteSpace=h),c.top=t+l<n?t+"px":l<n&&t-l<=n?t-l+"px":n-l+"px"},t.hide=function(){this.y=0,this.x=0,this.x=n.BLANKSTRING,this.setData("active",!1),this.setData("target",!1),this.element.style.visibility=v,this.element.style["will-change"]=x,this.element.innerHTML=n.BLANKSTRING,this.text=n.UNDEF},t.dispose=function(){this.hide(),this.universe.removeChild(this.element),this.universe=n.UNDEF,this.disposed=!0},e}();t["default"]=w},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n=r(184),a={treemap:!0,scatter:!0,bubble:!0,errorscatter:!0,errorline:!0,errorbar2d:!0,candlestick:!0,stackedcolumn3d:!0,stackedbar3d:!0,mscolumnline3d:!0,mscombi3d:!0,mscolumn3dlinedy:!0,stackedcolumn3dline:!0,stackedcolumn3dlinedy:!0},i=function(e){return a[e.getName().toLowerCase()]},o=function(e,t){return e+'<div style="margin: 0;">'+t+"</div>"},s=function(e,t){return t.hovered?e+1:e},l=function(e){return e.originalPlotColor||e.plotColor||e.color||"#000000"},c=function(e,t){return t.getJSONIndex()-e.getJSONIndex()};function u(e){var t=e.sender.getFromEnv("chart"),r=t.config.tooltipgrayoutcolor,a=t.config.plotcolorintooltip,i=t.getFromEnv("toolTipController"),u=t.getDatasets().sort(c),d=t.getFromEnv("consolidated-tooltip"),h=(0,n.getMouseCoordinate)(e.sender.getFromEnv("chart-container"),e.originalEvent,t),f=h.chartX,g=h.chartY,p=!1,m=u.map((function(e){return e.getPlotInCategoryAt(f,g)})).filter(Boolean),v=m.reduce(s,0),b=m.map((function(e){var t=e.pointObj.config,i=t.finalTooltext||t.toolText,o=l(t);return v>0?!p&&e.hovered?(i='<div style="display: inline-block;">'+i+"</div>",p=!0):(o=r,i='<div style="color: '+(0,n.hashify)(r)+'; display: inline-block;">'+i+"</div>"):i='<div style="display: inline-block;">'+i+"</div>",a?'<div style="color: '+(0,n.hashify)(o)+'; display: inline-block;">■ </div>'+i:i})),y=[].concat(b).reverse().reduce(o,"");this.isWithinCanvas(f,g)&&y?d?i.draw(e.originalEvent,y,d):t.addToEnv("consolidated-tooltip",i.draw(e.originalEvent,y)):d&&i.hide(d)}function d(e){var t=e.sender.getFromEnv("chart"),r=t.getFromEnv("consolidated-tooltip");r&&t.getFromEnv("toolTipController").hide(r)}function h(e){var t=this.apiInstance,r=t.getDatasets().sort(c),a=t.config.plotcolorintooltip,i=t.getFromEnv("toolTipController"),s=t.getFromEnv("consolidated-tooltip"),u=r.map((function(t){var r=t.components.data;return r[e]&&r[e]})).filter(Boolean),d=u[0]&&{x:u[0].config._Px-u[0]._width,y:u[0].config._Py,width:u[0].config._width},h=u.map((function(e){var t=e.config,r=t.finalTooltext||t.toolText;return a?'<div style="color: '+(0,n.hashify)(l(t))+'; display: inline-block;">■ </div><div style="display: inline-block;">'+r+"</div>":'<div style="display: inline-block;">'+r+"</div>"})).reduce(o,"");h&&d?s?i.drawAt(d.x,d.y,h,s):t.addToEnv("consolidated-tooltip",i.drawAt(d.x,d.y,h)):s&&i.hide(s)}var f={extension:function(e){e.addEventListener("predraw",(function(e){var t;if(e.sender.getType&&"chartAPI"===e.sender.getType()&&!i(e.sender)){var r=(t=e.sender).getChildren("canvas");t.getFromEnv("chartInstance").drawConsolidatedToolTip=h,r&&r.forEach((function(e){if(!t.config.drawTrendRegion||!t.config.showtooltip)return e.removeEventListener("fc-mouseover",u),e.removeEventListener("fc-mousemove",u),e.removeEventListener("fc-mouseout",d),void e.setState("consolidatedTooltipEventListenerAttached",!1);!e.getState("consolidatedTooltipEventListenerAttached")&&t.config.showtooltip&&(e.addEventListener("fc-mouseover",u),e.addEventListener("fc-mousemove",u),e.addEventListener("fc-mouseout",d),e.setState("consolidatedTooltipEventListenerAttached",!0))}))}}))},name:"ConsolidatedToolTip",type:"extension",requiresFusionCharts:!0};t["default"]=f},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(253)),i=r(184),o=function(e){e.sender.apiInstance.getChildren("alertManager")&&e.sender.apiInstance.getChildren("alertManager")[0].processRTData(e.data)},s=function(e){if("dataset"===e.sender.getType()){var t,r,n=e.sender,a=n.config,o=a.JSONData,s=n.getFromEnv("chart").getChildren("alertManager");if(!s||!o)return;t=(0,i.pluckNumber)(o&&o.checkforalerts,1),(r=(s=s[0]).config||(s.config={})).datasetMap=r.datasetMap||{},r.datasetMap[a.index]=t}},l=function(e){"chartAPI"===e.sender.getType()&&e.sender.registerFactory("alertManager",(function(e){e.getChildren("alertManager")?e.getChildren("alertManager")[0].configure():(0,i.componentFactory)(e.getFromEnv("chart"),a["default"],"alertManager",1,[{}])}))};var c={extension:function(e){e.addEventListener("instantiated",l),e.addEventListener("updateDataReceived",o),e.addEventListener("postConfigure",s)},name:"alertManagerLinker",type:"extension",requiresFusionCharts:!0};t["default"]=c},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(184),o=r(199),s=function(e){function t(){var t;return(t=e.call(this)||this).pIndex=1,t.linkedItems={chart:{}},t}(0,a["default"])(t,e);var r=t.prototype;return r.getType=function(){return"extension"},r.getName=function(){return"AlertManager"},r.configure=function(){var e,t,r,n=this.getFromEnv("dataSource"),a=n&&n.alerts&&n.alerts.alert,i=this.getFromEnv("number-formatter"),o=this.config||(this.config={});if(a&&a.length)for(o.alertArr=a,e=a.length,t=0;t<e;t+=1)(r=a[t]).minvalue=i.getCleanValue(r.minvalue),r.maxvalue=i.getCleanValue(r.maxvalue);else o.alertArr=[]},r.processRTData=function(e){var t,r,n,a,i,o,s=this.config,l=this.getFromEnv("number-formatter");if(e&&e.dataset&&e.dataset.length)for(n=e.dataset.length,t=0;t<n;t+=1)if((a=e.dataset[t]).data&&a.data.length){if(s.datasetMap&&0===s.datasetMap[t])continue;for(i=a.data.length,r=0;r<i;r+=1)null!==((o=a.data[r])&&l.getCleanValue(o.value))&&this._doAlert(l.getCleanValue(o.value))}},r._doAlert=function(e){var t,r,n,a=this.getLinkedParent(),o=this.config.alertArr,s=o.length;for(r=0;r<s;r+=1)if(n=(t=o[r]).action&&t.action.toLowerCase(),t.minvalue<=e&&t.maxvalue>=e){if("1"!==t.occuronce||!t.hasOccurred){switch(t.hasOccurred=!0,t.state="1",n){case"calljs":setTimeout((0,i.pseudoEval)(t.param));break;case"showannotation":a.showAnnotation&&a.showAnnotation(t.param)}a.fireChartInstanceEvent("AlertComplete",{alertValue:e,alertMaxValue:t.maxvalue,alertMinValue:t.minvalue})}}else"showannotation"===n&&"1"===t.state&&a.hideAnnotation&&a.hideAnnotation(t.param),t.state="2"},t}(o.ComponentInterface);t["default"]=s},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(255)),i=r(257);var o={extension:function(e){e.addEventListener("preconfigure",(function(e){var t=e.sender,r=t.getFromEnv("chart");i.allowedCharts[r&&r.getName()]&&("dataset"===t.getType()&&"cartesianStackGroup"!==t.getLinkedParent().getName()?(t.setState("applySkippingOnConf",!0),a["default"].dataSkipping({component:t,datasetType:t.getName(),compType:"dataset"})):"cartesianStackGroup"===t.getName()&&(t.setState("applySkippingOnConf",!0),a["default"].dataSkipping({component:t,datasetType:t.getName(),compType:"group"})))})),e.addEventListener("preattributeprepared",(function(e){var t=e.sender.getFromEnv&&e.sender.getFromEnv("chart");if(i.allowedCharts[t&&t.getName()])if("dataset"===e.sender.getType()){var r=e.sender,n=r.getFromEnv("canvasConfig"),o=r.getFromEnv("chart").isBar?n.canvasHeight:n.canvasWidth;"cartesianStackGroup"!==r.getLinkedParent().getName()&&(r.getState("applySkippingOnConf")?r.setState("applySkippingOnConf",!1):a["default"].dataSkipping({component:r,compType:"dataset",datasetType:r.getName(),width:o}))}else if("cartesianStackGroup"===e.sender.getName()){var s=e.sender,l=s.getFromEnv("canvasConfig"),c=s.getFromEnv("chart").isBar?l.canvasHeight:l.canvasWidth,u=Object.keys(s.getChildren())[0];s.getState("applySkippingOnConf")?s.setState("applySkippingOnConf",!1):a["default"].dataSkipping({component:s,compType:"group",datasetType:s.getChildren(u)[0].getName(),width:c})}})),e.addEventListener("dataplotdragend",(function(e,t){if(e.sender.getType&&"dataset"===e.sender.getType()){var r=e.sender,n=r.getSkippingInfo&&r.getSkippingInfo();n&&n.skippingApplied&&a["default"].updateDragMap({component:r,compType:"dataset",evenType:"dataplotdragend",eventArgs:t})}}))},name:"DataSkipping",type:"extension",requiresFusionCharts:!0};t["default"]=o},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(256)),i=r(257),o=r(184),s=1.5,l=[],c=0,u={},d=[];function h(e){return void 0===e&&(e=[]),e.filter((function(e){return!l[e]}))}function f(e,t){for(var r=0,n=[],a=1;a<u.noOfPlotBins;++a)e(r,(r+=u.plotsPerBin)-1,t,d,n);return e(r,t.length-1,t,d,n),d=[],n}function g(e){var t,r,n,o,s,g,p,m=i.filterType[e.datasetType],v=e.component,b=v.getSkippingInfo&&v.getSkippingInfo(),y=b&&b.draw.slice(0),x=b&&(b.labelDraw||[]).slice(0),C={},w=[],_=v.getFromEnv("xAxis").getTicksLen();if((!y||!y.length)&&(void 0===(p=c)&&(p=0),y=Array.from(new Array(p),(function(e,t){return t}))),(!x||!x.length)&&(x=y),d=b&&b.dragHashMap,"cartesianStackGroup"===v.getName()){for(o=u.jsonData.length,t=0;t<_;++t){for(n=0,r=0;r<o;++r)g=u.jsonData[r].data,n+=Number(g[t]?g[t].value:0);w.push({value:n})}C.draw=f((0,a["default"])(m),w)}else C.draw=f((0,a["default"])(m),u.jsonData.data);return C.draw.forEach((function(e){l[e]=!0})),C.drawOnlyMap=l,C.hide=h(y),s=function(e){var t,r=u.labelBinSize/u.plotBinSize,n=[],a=[],i=e.length;for(t=0;t<i;t++)t%r||(n.push(e[t]),a[e[t]]=!0);return{drawableLabelIndices:n,labelHashMap:a}}(C.draw),C.labelDraw=s.drawableLabelIndices,l=C.labelDrawOnlyMap=s.labelHashMap,C.hideLabel=h(x),C.plotsPerBin=u.plotsPerBin,C.skippingApplied=!0,C.dragHashMap=[],C.prevDrawInfo=y.slice(0),C}var p={dataSkipping:function(e){void 0===e&&(e={});var t=e.component;!function(e){void 0===e&&(e={});var t,r,n,a,i,d=e.component,h=e.compType,f=d.getFromEnv("chartConfig"),g=d.getFromEnv("dataSource").chart||{},p=(0,o.pluckNumber)(g.plotbinsize,f.plotbinsize);return u.plotBinSize=p,u.labelBinSize=(0,o.pluckNumber)(g.labelbinsize,f.labelbinsize),u.jsonData=d.config.JSONData,"group"===h?(t=u.jsonData[0].data,c=d.config.stackValues&&d.config.stackValues.length||0):"dataset"===h&&(t=u.jsonData.data,c=d.components.data&&d.components.data.length||0),r=t&&t.length,l=[],u.width=i=d.getFromEnv("chart").isBar?e.height||d.getFromEnv("chartHeight"):e.width||d.getFromEnv("chartWidth"),n=r/i,a=Math.floor(n*p),n>=s&&a>1&&(u.plotsPerBin=a,u.noOfPlotBins=Math.ceil(r/u.plotsPerBin),!0)}(e)?t.setSkippingInfo&&t.setSkippingInfo():t.setSkippingInfo&&t.setSkippingInfo(g(e))},updateDragMap:function(e){void 0===e&&(e={});var t=e.component,r=e.eventArgs,n=t.getSkippingInfo&&t.getSkippingInfo()||{};r&&(n.dragHashMap[r.dataIndex]=r.endValue)}};t["default"]=p},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n=function(e,t,r,n,a){void 0===n&&(n=[]);for(var i,o=r[t].value,s=t,l=t-1;l>=e;--l)(i=void 0!==n[l]?n[l]:r[l].value)>o&&(o=i,s=l);return a.push(s),a},a=function(e,t,r,n,a){void 0===n&&(n=[]);for(var i,o=r[t].value,s=t,l=r[t].value,c=t,u=t-1;u>=e;--u)(i=void 0!==n[u]?n[u]:r[u].value)>o?(o=i,s=u):i<l&&(l=i,c=u);var d=c<s?[c,s]:[s,c];return c=d[0],s=d[1],a.push(c),c!==s&&a.push(s),a};t["default"]=function(e){var t={maxOnly:n,minMax:a};return t[e]||t.maxOnly}},function(e,t,r){"use strict";t.__esModule=!0,t.filterType=t.allowedCharts=void 0;t.filterType={Column:"maxOnly",line:"minMax",area:"minMax"},t.allowedCharts={Column2D:!0,Line:!0,Area2D:!0,Bar2D:!0,MSColumn2D:!0,MSLine:!0,MSBar2D:!0,MSArea:!0,StackedColumn2D:!0,StackedBar2D:!0,StackedArea2D:!0,MSStackedColumn2D:!0,MSCombi2D:!0,StackedColumn2DLine:!0,MSCombidy2D:!0,LogMSColumn2d:!0,LogMSLine:!0,DragColumn:!0,DragLine:!0,DragArea:!0}},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(259)),i=n(r(282)),o=function(e,t){return"groups"!==t&&"items"!==t},s=function(e){var t=e.sender;(function(e){return"chartAPI"===e.getType()})(t)&&t.registerFactory("annotation",(function(e){var t=e.getFromEnv("dataSource").annotations,r=e.getChildren().annotation,n=r&&r[0];delete e.getFromEnv("chartInstance").annotations,t&&(n||(n=new a["default"]((0,i["default"])(o,t)),e.attachChild(n,"annotation"),n.config.drawn=!1),n._JSONData=t,n.configure(t),e.getFromEnv("chartInstance").annotations=n)}))};var l={extension:function(e){e.addEventListener("instantiated",s)},name:"Annotation",type:"extension",requiresFusionCharts:!0};t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(260),o=r(184),s=r(192),l=n(r(261)),c=n(r(262)),u=n(r(263)),d=n(r(264)),h=r(199),f=["pie2d","doughnut2d"],g=["pie3d","doughnut3d"],p=function(e,t){return e.getJSONIndex()-t.getJSONIndex()},m=function(e,t,r){void 0===t&&(t={}),void 0===r&&(r={});var n,a={};for(var i in a.annotationType="shape",a.id=e.id,a.type=e.type&&e.type.toLowerCase(),a.toolText=(0,o.pluck)(e.tooltext,e.toolText),a.animationLabel=(0,o.pluck)(e.animationlabel,e.animationLabel),a.dashed=e.dashed,a.dashLen=(0,o.pluck)(e.dashlen,e.dashLen),a.dashGap=(0,o.pluck)(e.dashgap,e.dashGap),a.thickness=e.thickness,a.showBorder=(0,o.pluck)(e.showborder,e.showBorder),a.borderColor=(0,o.pluck)(e.bordercolor,e.borderColor),a.borderAlpha=(0,o.pluck)(e.borderalpha,e.borderAlpha),a.borderThickness=(0,o.pluck)(e.borderthickness,e.borderThickness),a.alpha=e.alpha,a.color=e.color,a.fillColor=(0,o.pluck)(e.fillcolor,e.fillColor),a.fontColor=(0,o.pluck)(e.fontcolor,e.fontColor),a.fillAlpha=(0,o.pluck)(e.fillalpha,e.fillAlpha),a.fillAngle=(0,o.pluck)(e.fillangle,e.fillAngle),a.fillRatio=(0,o.pluck)(e.fillratio,e.fillRatio),a.fillPattern=(0,o.pluck)(e.fillpattern,e.fillPattern),a.sides=e.sides,a.radius=e.radius,a.yRadius=(0,o.pluck)(e.yradius,e.yRadius),a.innerRadius=(0,o.pluck)(e.innerradius,e.innerRadius),a.endAngle=(0,o.pluck)(e.endangle,e.endAngle),a.startAngle=(0,o.pluck)(e.startangle,e.startAngle),a.isVisible=!0==(n=e.visible,!(0===parseInt(n,10))),a.x=e.x,a.y=e.y,a.xPos=(0,o.pluck)(e.xpos,e.xPos),a.yPos=(0,o.pluck)(e.ypos,e.yPos),a.toY=(0,o.pluck)(e.toy,e.toY),a.toX=(0,o.pluck)(e.tox,e.toX),a.autoScale=(0,o.pluck)(e.autoscale,e.autoScale),a.path=e.path,a.css=e.css,a.wrap=e.wrap,a.text=e.text!==o.UNDEF&&null!==e.text&&e.text.toString()||o.UNDEF,a.font=(0,o.pluck)(e.font,t.font,r.basefont),a.bold=(0,o.pluck)(e.bold,e.isbold,e.bold,e.isBold),a.label=e.label,a.align=e.align,a.italic=e.italic,a.vAlign=(0,o.pluck)(e.valign,e.vAlign),a.bgColor=(0,o.pluck)(e.bgcolor,e.bgColor),a.fontSize=(0,o.pluck)(e.fontsize,e.fontSize,t.fontSize,r.basefontsize),a.wrapWidth=(0,o.pluck)(e.wrapwidth,e.wrapWidth),a.leftMargin=(0,o.pluck)(e.leftmargin,e.leftMargin),a.rotateText=(0,o.pluck)(e.rotatetext,e.rotateText),a.wrapHeight=(0,o.pluck)(e.wrapheight,e.wrapHeight),a.showShadow=(0,o.pluck)(e.showshadow,e.showShadow),a.link=e.link,a.url=e.url,a.link=e.link,a.width=e.width,a.height=e.height,a.xScale=(0,o.pluck)(e.xscale,e.xScale),a.yScale=(0,o.pluck)(e.yscale,e.yScale),a.onload=e.onload,a.onerror=e.onerror,a.outlineText=(0,o.pluckNumber)(e.outlinetext,e.outlineText,0),"object"==typeof e.component&&(a.component=e.component),a){if(a.hasOwnProperty(i))void 0===a[i]&&delete a[i]}return a},v=function(e,t){return void 0===e&&(e={groups:[]}),void 0===t&&(t={}),(e.groups||[]).map((function(r){var n,a;return n=e,(a=r).css=a.css||n.css,a.autoscale=(0,o.pluck)(a.autoscale,n.autoscale),a.animationLabel=(0,o.pluck)(a.animationLabel,n.animationLabel),a.constrainedscale=(0,o.pluck)(a.constrainedscale,n.constrainedscale),a.scaletext=(0,o.pluck)(a.scaletext,n.scaletext),a.scaleimages=(0,o.pluck)(a.scaleimages,n.scaleimages),a.xshift=(0,o.pluck)(a.xshift,n.xshift),a.yshift=(0,o.pluck)(a.yshift,n.yshift),a.grpxshift=(0,o.pluck)(a.grpxshift,n.grpxshift),a.grpyshift=(0,o.pluck)(a.grpyshift,n.grpyshift),a.origw=(0,o.pluck)(a.origw,n.origw),a.origh=(0,o.pluck)(a.origh,n.origh),a.showbelow=(0,o.pluck)(a.showbelow,n.showbelow,1),a.onAnnotationClick=n.onAnnotationClick,a.onAnnotationRollover=n.onAnnotationRollover,a.onAnnotationRollout=n.onAnnotationRollout,function(e,t){var r={},n=e.items;for(var a in n=e.items=(0,i.arrangeItems)(n),r.annotationType="group",r.id=e.id,r.showBelow="undefined"==typeof e.showbelow||null===e.showbelow?1:Number(e.showbelow),r.x=e.x,r.y=e.y,r.animationLabel=(0,o.pluck)(e.animationlabel,e.animationLabel),r.xPos=(0,o.pluck)(e.xpos,e.xPos),r.yPos=(0,o.pluck)(e.ypos,e.yPos),r.grpXShift=(0,o.pluck)(e.grpxshift,e.grpXShift),r.grpYShift=(0,o.pluck)(e.grpyshift,e.grpYShift),r.xShift=(0,o.pluck)(e.xshift,e.xShift),r.yShift=(0,o.pluck)(e.yshift,e.yShift),r.color=e.color,r.alpha=e.alpha,r.isVisible=1===Number(e.visible||1),r.font=(0,o.pluck)(e.font,t.basefont),r.link=e.link,r.fontSize=(0,o.pluck)(e.fontsize,e.fontSize,t.basefontsize),r.textAlign=(0,o.pluck)(e.textalign,e.textAlign),r.textVAlign=(0,o.pluck)(e.textvalign,e.textVAlign),r.rotateText=(0,o.pluck)(e.rotatetext,e.rotateText),r.wrapText=(0,o.pluck)(e.wraptext,e.wrapText),r.toolText=(0,o.pluck)(e.tooltext,e.toolText),r.link=e.link,r.showShadow=(0,o.pluck)(e.showshadow,e.showShadow),r.items=e.items,r.css=e.css,r.autoScale=(0,o.pluck)(e.autoscale,e.autoScale),r.scaleText=(0,o.pluck)(e.scaletext,e.scaleText),r.xScale=(0,o.pluck)(e.xscale,e.xScale),r.yScale=(0,o.pluck)(e.yscale,e.yScale),r.scaleImages=(0,o.pluck)(e.scaleimages,e.scaleImages),r.constrainedScale=(0,o.pluck)(e.constrainedscale),r.origH=(0,o.pluck)(e.origh,e.origH,t.origh),r.origW=(0,o.pluck)(e.origw,e.origW,t.origw),r.onAnnotationClick=e.onAnnotationClick,r.onAnnotationRollover=e.onAnnotationRollover,r.onAnnotationRollout=e.onAnnotationRollout,"object"==typeof e.component&&(r.component=e.component),r){if(r.hasOwnProperty(a))void 0===r[a]&&delete r[a]}return Array.isArray(n)&&(r.itemConfigs=n.map((function(e){return m(e,r,t)}))),r}(r,t)}))},b=function(e){function t(t){var r;return r=e.call(this,t)||this,(0,s.addDep)({name:"annotationAnimation",type:"animationRule",extension:l["default"]}),(0,c["default"])((0,s.getDep)("redraphael","plugin")),(0,u["default"])((0,s.getDep)("redraphael","plugin")),r.groups=[],r.config.dependencies={},r._rawJSON={groups:[]},r}(0,a["default"])(t,e);var r=t.prototype;return r.getName=function(){return"annotation"},r.getType=function(){return"extension"},r.configureAttributes=function(e){void 0===e&&(e={groups:[]});var t=this,r=t.config;t._rawJSON=(0,o.extend2)({},t._rawJSON,e),e.groups?r.parsedConfigs=v(e,t.getFromEnv("chart").config):r.parsedConfigs=[],r.parsedConfigs.forEach((function(e){t.attachChild(d["default"],"group",e.id).configure(e)})),t.groups=t.getChildren("group")||[]},r.addItem=function(e,t,r){void 0===t&&(t={});var n,a,i,o=this._rawJSON,s=o.groups.length;for(n=0;n<s;n++)if(o.groups[n].id===e){a=o.groups[n];break}return a?a.items=a.items||[]:(a={id:e,items:[]},o.groups.push(a)),a.items.push(t),this.setData(o,!0),(i=this.retrieveGroup(e).items)[i.length-1]},r.addGroup=function(e){void 0===e&&(e={});var t=this._rawJSON;return t.groups.push(e),this.setData(t,!0),this.groups[this.groups.length-1]},r.addCustomGroup=function(e){e&&(this.config.customGroup=e)},r.update=function(e,t){var r,n,a,i,o={};if(e){for(n in t)o[n.toLowerCase()]=t[n]&&t[n].toString();if(!(r=this.retrieveItem(e)||this.retrieveGroup(e))||!r.getElement())return;return"undefined"==typeof o.visible&&(o.visible=r.config.isVisible),a=r.rawConfig,a=Object.assign(a,o),(i=m(a)).isVisible=o.visible,r.setData(i),r}},r.destroy=function(e){var t,r,n,a,i,o=this._rawJSON,s=!1;if(e){for(t=0,n=o.groups.length;t<n;t++)for(r=0,a=((i=o.groups[t]).items||[]).length;r<a;r++)if(i.items[r].id===e){i.items.splice(r,1),s=!0;break}if(!s)for(t=0,n=o.groups.length;t<n;t++)(i=o.groups[t]).id===e&&o.groups.splice(t,1)}else o=this._rawJSON={groups:[]};this.setData(o)},r.clear=function(){this.destroy()},r.retrieveItem=function(e){var t,r,n,a=this.groups.length;for(n=0;n<a;n++)if(t=this.groups[n].retrieveItem(e)){r=t;break}return r},r.retrieveGroup=function(e){var t,r;for(t=0,r=this.groups.length;t<r;t++)if(this.groups[t].getId()===e)return this.groups[t]},r.show=function(e){var t;e?(t=this.retrieveItem(e)||this.retrieveGroup(e))&&t.show():this.groups.forEach((function(e){e.show()}))},r.hide=function(e){var t;e?(t=this.retrieveItem(e)||this.retrieveGroup(e))&&t.hide():this.groups.forEach((function(e){e.hide()}))},r.draw=function(){var e,t,r,n,a,o,s,l,c,u,d,h,m,v;this.addToEnv("snapPoints",(e=this.getFromEnv("chart"),a=e.config,o=e.getChildren(),s=o.caption[0],l=o.subCaption[0],c=o.legend&&o.legend[0]||{},u=o.gLegend&&o.gLegend[0]||{},d=s.config,h=l.config,m=d.width||0,v=h.width||0,"end"===d.align?(t=d.x-m,n=d.x-v):"start"===d.align?t=n=d.x:(t=d.x-m/2,n=d.x-v/2),r=a.gLegendEnabled?u.conf:c.config,{canvasendx:a.canvasRight,canvasendy:a.canvasBottom,canvasheight:a.canvasHeight,canvasstartx:a.canvasLeft,canvasstarty:a.canvasTop,canvaswidth:a.canvasWidth,canvascenterx:a.canvasCenterX||a.canvasLeft+(a.canvasRight-a.canvasLeft)/2,canvascentery:a.canvasCenterY||a.canvasTop+(a.canvasBottom-a.canvasTop)/2,chartcenterx:a.width/2,chartcentery:a.height/2,chartstartx:0,chartstarty:0,chartendx:a.width,chartendy:a.height,chartheight:a.height,chartwidth:a.width,chartleftmargin:a.marginLeft,chartrightmargin:a.marginRight,chartbottommargin:a.marginBottom,charttopmargin:a.marginTop,captionendx:t+d.width,captionendy:d.y+d.height,captionheight:d.height,captionstartx:t,captionstarty:d.y,captionwidth:m,subcaptionendx:n+h.width,subcaptionendy:h.y+h.height,subcaptionheight:h.height,subcaptionstartx:n,subcaptionstarty:h.y,subcaptionwidth:v,legendendx:r&&r.xPos+r.width,legendendy:r&&r.yPos+r.height,legendheight:r&&r.height,legendstartx:r&&r.xPos,legendstarty:r&&r.yPos,legendwidth:r&&r.width,dataset:function(t){var r,n,a,o=t.split(i.DEFAULT_MACRO_SEPARATOR).slice(1),s=[];return e.iterateComponents((function(e){"dataset"===e.getType()&&s.push(e)})),s.sort(p),n=s[Number(o[0])],r=n.components.data[Number(o[2])],f.indexOf(n.getName().toLowerCase())>-1?(0,i.computeSliceBounds)(o[3],r.config):g.indexOf(n.getName().toLowerCase())>-1?(0,i.compute3DSliceBounds)(o[3],r.config):(a=(0,i.computePlotBounds)(r,n.getName()),(0,i.xyCalculator)(o[3],a))},xaxis:(0,i.axisMacroParser)(e,"xAxis"),yaxis:(0,i.axisMacroParser)(e,"yAxis"),gaugestartx:a.gaugeStartX,gaugestarty:a.gaugeStartY,gaugeendx:a.gaugeEndX,gaugeendy:a.gaugeEndY,gaugecenterx:a.gaugeCenterX,gaugecentery:a.gaugeCenterY,gaugestartangle:a.gaugeStartAngle,gaugeendangle:a.gaugeEndAngle,gaugeradius:a.gaugeRadius,plotwidth:a.plotWidth,plotsemiwidth:a.plotSemiWidth})),this.addGraphicalElement({el:"group",attr:{name:"upperannotations"},component:this,container:{label:"group",id:"abovePlotGroup",isParent:!0},id:"upperAnnotationGroup",label:"group"}),this.addGraphicalElement({el:"group",attr:{name:"lowerannotations"},component:this,container:{label:"group",id:"belowPlotGroup",isParent:!0},id:"lowerAnnotationGroup",label:"group"})},t}(h.SmartRenderer);t["default"]=b},function(e,t,r){"use strict";t.__esModule=!0,t.getEventData=t.getScaledVal=t.parseEquation=t.solveEquation=t.isMacro=t.trim=t.pluckBoolean=t.DEFAULT_MACRO_SEPARATOR=t.DEFAULT_MACRO_PREFIX=t.UNDERSCORE=t.xyCalculator=t.axisMacroParser=t.arrangeItems=t.cleanMacro=t.compute3DSliceBounds=t.computeSliceBounds=t.computePlotBounds=t.getQuadrant=t.polarToCartesian=t.deg2Rad=void 0;var n=r(184);t.UNDEF=n.UNDEF;var a=2*Math.PI,i=[-a,-3*a/4,-a/2,-a/4,0],o=[a,3*a/4,a/2,a/4,0],s=function(e){return e*e},l=function(e){return e*(Math.PI/180)},c=function(e,t,r,n){void 0===r&&(r=!0),void 0===n&&(n={});var a=t;return r||(a=l(t)),{x:e*Math.cos(a)+(n.x||0),y:e*Math.sin(a)+(n.y||0)}},u=function(e,t,r){return 0===e||0===t?0:e*t/Math.sqrt(s(t)*s(Math.cos(r))+s(e)*s(Math.sin(r)))},d=function(e){var t,r,o,s,l,u,d,h,f,g=e.ringpath,p=[],m=[],v=Infinity,b=Infinity,y=-Infinity,x=-Infinity;for(t=(0,n.pluckNumber)(g[2]),r=(0,n.pluckNumber)(g[3]),o=(0,n.pluckNumber)(g[4])%a,s=(0,n.pluckNumber)(g[5])%a,l=(0,n.pluckNumber)(g[0]),u=(0,n.pluckNumber)(g[1]),h=c(t,o,!0,{x:l,y:u}),f=c(t,s,!0,{x:l,y:u}),m.push(h),m.push(f),d=0;d<i.length;d++)i[d]>=o&&i[d]<=s&&p.push(d);for(d=0;d<p.length;d++)h=c(t,i[p[d]],!0,{x:l,y:u}),f=c(r,i[p[d]],!0,{x:l,y:u}),m.push(h),m.push(f);for(h=c(r,o,!0,{x:l,y:u}),f=c(r,s,!0,{x:l,y:u}),m.push(h),m.push(f),d=0;d<m.length;d++)y=Math.max(y,m[d].x),v=Math.min(v,m[d].x),x=Math.max(x,m[d].y),b=Math.min(b,m[d].y);return{x:v,y:b,width:Math.abs(y-v),height:Math.abs(b-x)}},h=function(e,t,r){var n,i,o;return o=Math.tan(r),n=e*t/Math.sqrt(t*t+e*e*o*o),i=e*t/Math.sqrt(e*e+t*t/(o*o)),r>a/4&&r<3*a/4?n*=-1:n=Math.abs(n),r>a/2&&r<a?i*=-1:i=Math.abs(i),Math.abs(n)<=1e-5&&(n=0),Math.abs(i)<=1e-5&&(i=0),{x:n,y:i}},f=function(e,t){var r,a,i,o,s,l=e.config||e;switch(t){case"column3D":case"bar2D":case"bar3D":case"paretoColumn":case"waterFall2D":case"errorBar2D":case"candlestick":case"heatMap":case"dragColumn":case"sparkColumn":case"marimekko":case"task":case"column":r={x:(a=l.props.element.attr).x+(0,n.pluckNumber)(a.xDepth,0),y:a.y-(0,n.pluckNumber)(a.yDepth,0),width:a.width,height:a.height};break;case"line":case"zoomLine":case"zoomScatter":case"scatter":case"spline":case"splinearea":case"multiaxisline":case"stepLine":case"errorScatter":case"errorLine":case"radar":case"selectScatter":case"dragLine":case"dragArea":case"kagi":case"sparkLine":case"area":i=e._xPos,o=e._yPos,r={x:i-(s=Number(l.anchorProps.radius)||0),y:o-s,width:2*s,height:2*s};break;case"bubble":r={x:(a=l.props.element.attr).cx-a.r,y:a.cy-a.r,width:2*a.r,height:2*a.r};break;case"dragNode":a=l.props.element.attr,"rect"===l.shapeType?r={x:a.x,y:a.y,width:a.width,height:a.height}:(i=l._xPos,o=l._yPos,r={x:i-(s=+l.radius||0),y:o-s,width:2*s,height:2*s});break;case"boxandwhisker2D":r={x:(a=l.props.upperBoxElem.attr).x,y:a.y,width:a.width,height:a.height};break;case"category":case"polarCategory":case"log":case"numeric":r={x:(a=l.props.label.attr).x-l.width/2,y:a.y-l.height/2,width:l.width,height:l.height},"end"===a["text-anchor"]||"left"===a["text-anchor"]?r.x=a.x-l.width:"start"!==a["text-anchor"]&&"right"!==a["text-anchor"]||(r.x=a.x),"top"===a["vertical-align"]?r.y=a.y:"bottom"===a["vertical-align"]&&(r.y=a.y-l.height);break;case"multiLevelPie":a=l.props.element.attr,r=d(a)}return r},g=function(e,t){var r=0;switch(e){case"startx":r=t.x;break;case"starty":r=t.y;break;case"x":case"middlex":case"centerx":r=t.x+t.width/2;break;case"y":case"middley":case"centery":r=t.y+t.height/2;break;case"endx":r=t.x+t.width;break;case"endy":r=t.y+t.height;break;default:r=0}return r},p=function(e,t){var r;switch(t.axis){case"x":case"toX":r=t.scaleX;break;case"y":case"toY":r=t.scaleY;break;default:r=t.scaleValue||1}return e*r};t.parseEquation=function(e,t,r,a){void 0===r&&(r=!1),void 0===a&&(a="$");var i,o,s,l,c=e.split(/([+])/),u=[],d=c.length;for(o=0;o<d;o++)if("+"!==c[o]){for(s=0,l=(i=c[o].split(/([-])/)).length;s<l;s++)"-"!==i[s]&&(u.push(i[s]),s<l-1&&u.push("-"));o<d-1&&u.push("+")}return u.map((function(e){var i,o,s,l=n.BLANKSTRING,c=n.BLANKSTRING,u=n.BLANKSTRING;if(e.charAt(0)===a){if(u=(c=e.replace(new RegExp("[\\$ ]","g"),"")).split(".")[0],!isNaN(+c))return+c;for(l in t)if(u===l){if(o=new RegExp(l,"g"),"function"==typeof t[l])try{i=u.replace(o,t[l](c))}catch(h){i=u.replace(o,0)}else i=u.replace(o,t[l]||0);break}}else{s=Number(e);var d=e;isNaN(s)?"+"!==e&&"-"!==e&&(d=0):d=r?p(s,r).toString():s.toString(),i=d}return i}))},t.getScaledVal=p,t.solveEquation=function(e){for(var t,r,n=+e[0],a=1,i=e.length;a<i;++a)if(r=e[a],a%2)t=r;else switch(t){case"+":n+=+r;break;case"-":n-=+r}return n},t.isMacro=function(e){return~e.indexOf("$")},t.trim=function(e){return e.replace(/^\s+|\s+$/g,"")},t.pluckBoolean=function(){for(var e,t,r,n=arguments.length,a=new Array(n),i=0;i<n;i++)a[i]=arguments[i];for(t=0,r=a.length;t<r;t++)if(!0===(e=a[t])||!1===e)return e;return!1},t.getEventData=function(e,t,r){var n=r.getFromEnv("getMouseCoordinate")(r.getFromEnv("chart-container"),e,r),a=t.getLinkedParent();return{element:t.getElement(),rawConfig:t.getAttribute(),pageX:n.pageX,pageY:n.pageY,chartX:n.chartX,chartY:n.chartY,annotationId:t.getId(),groupId:a&&a.getId(),annotationOptions:t.rawConfig,groupOptions:a&&a.rawConfig}},t.axisMacroParser=function(e,t){return function(r){var n,a,i,o,s=r.split(".").slice(1),l=isNaN(Number(s[0]))?0:Number(s[0]),c=isNaN(Number(s[0]))?s[1]:s[2],u=isNaN(Number(s[0]))?s[2]:s[3];return o=(n=e.getChildren(t)[l]).components,c=Number(c),o.labelIndexArr&&(c=o.labelIndexArr[c]),a=o.labels[c].config,i=f(a,n.getName()),g(u,i)}},t.xyCalculator=g,t.arrangeItems=function(e){void 0===e&&(e=[]);var t,r,n=[],a=[];for(r=e.length,t=0;t<r;t++)"text"===e[t].type?a.push(e[t]):n.push(e[t]);return n.concat(a)},t.cleanMacro=function(e){var t,r,a=n.BLANKSTRING;for(t=0,r=e.length;t<r;t++)" "!==e[t]&&(a+=e[t]);return a},t.computePlotBounds=f,t.computeSliceBounds=function(e,t){var r,n,a,i,o,s,l=t.props.element.attr,u=l.ringpath;switch(r=u[0],n=u[1],a=u[2],o=u[4],s=u[5],e){case"slicex":case"slicemiddlex":case"slicecenterx":i=c(a,(o+s)/2).x+r;break;case"slicey":case"slicemiddley":case"slicecentery":i=c(a,(o+s)/2).y+n;break;case"slicestartx":i=c(a,s).x+r;break;case"slicestarty":i=c(a,s).y+n;break;case"sliceendx":i=c(a,o).x+r;break;case"sliceendy":i=c(a,o).y+n;break;default:i=g(e,d(l))}return i},t.compute3DSliceBounds=function(e,t){var r,i=t.props.element.attr,s=i.r,l=s*i.radiusYFactor,d=i.cx,f=i.cy,p=i.sAngle,m=i.eAngle;switch(e){case"slicex":case"slicemiddlex":case"slicecenterx":r=h(s,l,(p+m)/2).x+d;break;case"slicey":case"slicemiddley":case"slicecentery":r=h(s,l,(p+m)/2).y+f;break;case"slicestartx":r=h(s,l,p).x+d;break;case"slicestarty":r=h(s,l,p).y+f;break;case"sliceendx":r=h(s,l,m).x+d;break;case"sliceendy":r=h(s,l,m).y+f;break;default:r=g(e,function(e){var t,r,i,s,l,d,h,f,g,p=[],m=[],v=Infinity,b=Infinity,y=-Infinity,x=-Infinity;for(t=(0,n.pluckNumber)(e.r),r=(0,n.pluckNumber)(t*e.radiusYFactor),i=(0,n.pluckNumber)(e.sAngle)%a,s=(0,n.pluckNumber)(e.eAngle)%a,l=(0,n.pluckNumber)(e.cx),d=(0,n.pluckNumber)(e.cy),f=c(u(t,r,i),i,!0,{x:l,y:d}),g=c(u(t,r,s),s,!0,{x:l,y:d}),m.push(f),m.push(g),h=0;h<o.length;h++)o[h]>=i&&o[h]<=s&&p.push(h);for(h=0;h<p.length;h++)f=c(u(t,r,o[p[h]]),o[p[h]],!0,{x:l,y:d}),m.push(f);for(t=(0,n.pluckNumber)(e.innerR,0),r=(0,n.pluckNumber)(t*e.radiusYFactor,0),f=c(u(t,r,i),i,!0,{x:l,y:d}),g=c(u(t,r,s),s,!0,{x:l,y:d}),m.push(f),m.push(g),h=0;h<p.length;h++)f=c(u(t,r,o[p[h]]),o[p[h]],!0,{x:l,y:d}),m.push(f);for(h=0;h<m.length;h++)y=Math.max(y,m[h].x),v=Math.min(v,m[h].x),x=Math.max(x,m[h].y),b=Math.min(b,m[h].y);return{x:v,y:b,width:Math.abs(y-v),height:Math.abs(b-x)}}(i))}return r},t.getQuadrant=function(e,t,r){return e.x>=t?e.y<=r?0:3:e.y<=r?1:2},t.polarToCartesian=c,t.deg2Rad=l,t.DEFAULT_MACRO_SEPARATOR=".",t.DEFAULT_MACRO_PREFIX="$",t.UNDERSCORE="_"},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n=function(){return[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"initial"}]},a={"initial.extension.annotation":function(){return{"polypath.appearing":n,"text.appearing":n,"image.appearing":n,"ellipse.appearing":n,"ringpath.appearing":n,"path.appearing":n,"rect.appearing":n,"*":null}}};t["default"]=a},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=function(e){var t=Math,r=t.cos,n=t.sin,a=t.abs,i=t.pow,o=t.PI,s=2*o,l="M",c="A",u=i(2,-24);e.define&&e.define([{name:"ringpath",ringpath:function(){return this.path(void 0,e._lastArgIfGroup(arguments))},ca:function(e,t,i,d,h,f,g,p){var m,v,b,y,x,C,w,_,k,S,E,A,T,M,F=f%s-h%s,I=f-h,L=g,N=p;return isNaN(L)&&(L=i),isNaN(N)&&(N=d),this._.ringangle=.5*(h+f),a(I)<u?(m=r(h),v=n(h),C=[l,e+i*m,t+L*v,"L",e+d*m,t+N*v,"Z"]):a(I)>u&&+(a(I)%s<u||s-a(I)%s<u)?(C=[l,e-i,t,c,i,L,0,0,0,e+i,t,c,i,L,0,0,0,e-i,t],0===d&&0===N||(C=C.concat([l,e-d,t,c,d,N,0,0,1,e+d,t,c,d,N,0,0,1,e-d,t])),C.push("Z")):(m=r(h),v=n(h),b=r(f),y=n(f),(F%=s)<0&&(F+=s),x=F<o?0:1,E=t+L*v,A=t+L*y,k=e+d*b,T=t+N*y,a((w=e+i*m)-(_=e+i*b))<.01&&a(E-A)<.01&&(w=e+i*r(h+.0001745329),E=t+L*n(h+.0001745329)),C=[l,w,E,c,i,L,0,x,1,_,A,"L",k,T],0===d&&0===N||(M=t+N*v,a(k-(S=e+d*m))<.01&&a(T-M)<.01&&(S=e+d*r(h+.0001745329),M=t+N*n(h+.0001745329)),C.push(c,d,N,0,x,0,S,M)),C.push("Z")),{path:C}}}])}},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=function(e){e.define&&e.define([{name:"arcpath",arcpath:function(){return this.path(void 0,e._lastArgIfGroup(arguments))},ca:function(e,t,r,n){var a=n,i=a-90,o=Math.PI*(i/180);return{path:["M",e,t-r,"A",r,r,0,a>180?1:0,1,e+r*Math.cos(o),t+r*Math.sin(o)]}}}])}},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(184),o=r(260),s=n(r(265)),l=n(r(266)),c=n(r(277)),u=n(r(278)),d=n(r(279)),h=n(r(280)),f=n(r(281)),g=n(r(202)),p={circle:l["default"],arc:l["default"],line:c["default"],path:c["default"],rectangle:u["default"],polygon:f["default"],image:d["default"],text:h["default"]},m=function(e){function t(t){var r;return(r=e.call(this,t)||this).groups=[],r.items=[],r}(0,a["default"])(t,e);var r=t.prototype;return r.getName=function(){return"group"},r.configureAttributes=function(e){var t,r=this,n=r.config;r.rawConfig=e||{},n.id=r.rawConfig.id||r.getId("group"),n.autoScale=(0,i.pluckNumber)(r.rawConfig.autoScale,1),n.scaleText=(0,i.pluckNumber)(r.rawConfig.scaleText,0),n.scaleX=n.origScaleX=(0,i.pluckNumber)(r.rawConfig.xScale)/100,n.scaleY=n.origScaleY=(0,i.pluckNumber)(r.rawConfig.yScale)/100,n.scaleImages=(0,i.pluckNumber)(r.rawConfig.scaleImages,0),n.constrainedScale=(0,i.pluckNumber)(r.rawConfig.constrainedScale,1),n.origH=Number(r.rawConfig.origH),n.origW=Number(r.rawConfig.origW),n.link=r.rawConfig.link,n.color=r.rawConfig.color||"#FF0000",n.alpha=(0,i.pluckNumber)(parseFloat(r.rawConfig.alpha),100),n.showShadow=(0,i.pluckNumber)(r.rawConfig.showShadow,0),n.x=(0,i.pluckNumber)(r.rawConfig.x,r.rawConfig.xPos,0),n.y=(0,i.pluckNumber)(r.rawConfig.y,r.rawConfig.yPos,0),n.font=(0,i.pluck)(r.rawConfig.font,"Verdana, sans"),n.fontSize=(0,i.pluckFontSize)(r.rawConfig.fontSize,10),n.textAlign=(0,i.pluck)(r.rawConfig.textAlign),n.textVAlign=(0,i.pluck)(r.rawConfig.textVAlign),n.rotateText=(0,i.pluck)(r.rawConfig.rotateText),n.wrapText=(0,i.pluck)(r.rawConfig.wrapText),n.grpXShift=(0,i.pluckNumber)(r.rawConfig.grpXShift,0),n.grpYShift=(0,i.pluckNumber)(r.rawConfig.grpYShift,0),n.xShift=(0,i.pluckNumber)(r.rawConfig.xShift,0),n.yShift=(0,i.pluckNumber)(r.rawConfig.yShift,0),n.toolText=r.rawConfig.toolText,n.isVisible=(0,o.pluckBoolean)(r.rawConfig.isVisible,!0),n.elementType="group",n.containerConfiguration={id:r.rawConfig.showBelow?"lowerAnnotationGroup":"upperAnnotationGroup",label:"group",isParent:!0},n.animationLabel="group",r.rawConfig.customComponent instanceof g["default"]?n.customComponent=n.rawConfig.customComponent:delete n.customComponent,r.rawConfig.itemConfigs.forEach((function(e){t=e.type&&e.type.toLowerCase(),p[t]&&r.attachChild(p[t],"item",e.id).configure(e)})),r.items=r.getChildren("item")||[]},r.updateScale=function(){var e,t,r,n,a,i=this.config,o=this.getFromEnv("chart"),s=+o.getFromEnv("chartHeight"),l=+o.getFromEnv("chartWidth"),c=i.autoScale,u=i.constrainedScale;this._setConfig("origW",Number(i.origW)||l),this._setConfig("origH",Number(i.origH)||s),c?(t=l/i.origW*(Number(i.origScaleX)||1),r=s/i.origH*(Number(i.origScaleY)||1)):t=r=1,e=Math.min(t,r),this._setConfig("scaleValue",e),(c>0||isNaN(i.scaleX))&&(n=u?e:t,this._setConfig("scaleX",n)),(c>0||isNaN(i.scaleY))&&(a=u?e:r,this._setConfig("scaleY",a)),i.scaleFont=i.scaleText?Math.min(i.scaleX,i.scaleY):1,i.scaleImageX=i.scaleImages?i.scaleX:1,i.scaleImageY=i.scaleImages?i.scaleY:1,i.scaleInfo={scaleX:i.scaleX,scaleY:i.scaleY,scaleValue:i.scaleValue}},r.updateAttr=function(){var e,t,r,n=this.config,a=n.calculatedAttrs;for(e in a)a[e]&&(n[e]=a[e]);t=this.getScaledVal(n.grpXShift)+n.xShift,r=this.getScaledVal(n.grpYShift)+n.yShift,this._setConfig("attr",{transform:"T"+t+","+r})},r.retrieveItem=function(e){var t,r;for(t=0,r=this.items.length;t<r;t++)if(this.items[t].getId()===e)return this.items[t]},r.getScaledVal=function(e,t){return this?e*(t?this._getConfig("scaleX"):(!1===t?this._getConfig("scaleY"):this._getConfig("scaleValue"))||1):e},r.getScaledFont=function(e){return this?e*this._getConfig("scaleFont"):e},r.getScaledImageVal=function(e,t){return this?e*((t?this._getConfig("scaleImageX"):this._getConfig("scaleImageY"))||1):e},r.getScaleInfo=function(){return this.config.scaleInfo},r.draw=function(){var e,t,r=this._getConfig("attr")||{};this.updateScale(),this.parseAndSetAttribute(),e=this.getScaledVal(this._getConfig("grpXShift"))+this._getConfig("xShift"),t=this.getScaledVal(this._getConfig("grpYShift"))+this._getConfig("yShift"),r.name=this._getConfig("id"),r.transform=r.transform||"T"+e+","+t,r.visibility=this.config.isVisible?i.visibleStr:i.hiddenStr,this.addGraphicalElement({el:"group",attr:r,container:this.config.containerConfiguration,component:this.config.customComponent||this,label:this.config.animationLabel,id:this.config.id})},t}(s["default"]);t["default"]=m},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(199),o=r(184),s=r(260),l=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.getType=function(){return"shape"},r._setConfig=function(e,t){this.config[e]=t},r._getConfig=function(e){return void 0===e&&(e=""),""===e?this.config:this.config[e]},r.getElement=function(){var e=this.config;return this.getGraphicalElement(e.id,e.animationLabel)},r.getBounds=function(){return this.getElement().getBBox()},r.data=function(e,t){if(e&&"string"==typeof e){if(t===o.UNDEF)return this._data&&this._data[e];!this._data&&(this._data={}),this._data[e]=t}},r.parseAndSetAttribute=function(){var e,t,r=this.rawConfig,n=this.getFromEnv("snapPoints"),a={x:(0,o.pluck)(r.x,r.xPos,0),y:(0,o.pluck)(r.y,r.yPos,0),toX:(0,o.pluck)(r.toX),toY:(0,o.pluck)(r.toY)},i=this.config.calculatedAttrs={},l=this.getScaleInfo();for(var c in a)a.hasOwnProperty(c)&&void 0!==(t=a[c])&&(t=t.toString(),l.axis=c,(0,s.isMacro)(t)?i[c]=(0,s.solveEquation)((0,s.parseEquation)((0,s.cleanMacro)(t.toLowerCase()),n,l)):(i[c]=(0,s.solveEquation)((0,s.parseEquation)((0,s.cleanMacro)(t.toLowerCase()),n)),(0,o.pluckNumber)(r.autoscale,r.autoScale,1)&&(i[c]=(0,s.getScaledVal)(i[c],l))));"group"!==this.config.elementType&&(e=this.getLinkedParent().config.calculatedAttrs,i.x=i.x+(e.x||0),i.y=i.y+(e.y||0),isNaN(Number(i.toX))?i.toX=i.x:i.toX+=e.x||0,isNaN(Number(i.toY))||(i.toY+=e.y||0)),this.updateAttr()},r.getAttribute=function(e){return void 0===e&&(e=""),""===e?this.rawConfig:this.rawConfig[e]},r.show=function(){var e=Object.assign({},this.rawConfig);e.isVisible=!0,this.setData(e)},r.hide=function(){var e=Object.assign({},this.rawConfig);e.isVisible=!1,this.setData(e)},t}(i.SmartRenderer);t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(184),o=n(r(267)),s=180;function l(e){return e*(Math.PI/s)}var c=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.getName=function(){return"circle"},r.configureAttributes=function(t){void 0===t&&(t={}),e.prototype.configureAttributes.call(this,t);var r,n=this.rawConfig,a=this.getFromEnv("chart"),o=+a.getFromEnv("chartHeight")||700,s=+a.getFromEnv("chartWidth")||350;this.config.radius=n.radius,this.config.xRadius=(0,i.pluckNumber)(parseFloat(n.radius),parseFloat(n.xRadius),Math.sqrt(Math.max(o,s))),this.config.yRadius=(0,i.pluckNumber)(parseFloat(n.yRadius),this.config.xRadius),this.config.startAngle=(0,i.pluckNumber)(parseFloat(n.startAngle),0),this.config.endAngle=(0,i.pluckNumber)(parseFloat(n.endAngle),360),this.config.innerRadius=(0,i.pluckNumber)(parseFloat(n.innerRadius),0),this.config.innerYRadius=(0,i.pluckNumber)(parseFloat(n.innerYRadius),this.config.innerRadius,0),"arc"===this.config.type?this.config.elementType="ringpath":0!==(r=this.config).startAngle||360!==r.endAngle||function(e){return e.innerRadius>0||e.innerYRadius>0}(this.config)?this.config.elementType="ringpath":this.config.elementType="ellipse"},r.updateAttr=function(){var e,t=this.config,r=t.calculatedAttrs,n=this.getFromEnv("chart"),a=+n.getFromEnv("chartHeight"),o=+n.getFromEnv("chartWidth"),s=this.getScaledVal(t.xRadius),c=this.getScaledVal(t.yRadius),u=this.getScaledVal(t.innerRadius),d=this.getScaledVal(t.innerYRadius);switch((0,i.pluck)(t.radius)||(t.radius=o<a?this.getScaledVal(o):this.getScaledVal(a),t.radius*=.3,u>t.radius&&(u+=t.radius,t.radius=u-t.radius,u-=t.radius),s=c=t.radius,d=u),t.elementType){case"ringpath":e={ringpath:[(0,i.pluckNumber)(r.x,this.getScaledVal(t.x,!0)),(0,i.pluckNumber)(r.y,this.getScaledVal(t.y,!1)),s,u,l(360-t.endAngle),l(360-t.startAngle),c,d]};break;default:e={cx:(0,i.pluckNumber)(r.x,this.getScaledVal(t.x,!0)),cy:(0,i.pluckNumber)(r.y,this.getScaledVal(t.y,!1))}}this._setConfig("attr",e)},r._getAnnotationAttrs=function(){var e,t=this.config,r=this.config.attr||{},n=t.x,a=t.y,i=this.getScaledVal(t.xRadius),o=this.getScaledVal(t.yRadius);switch(t.xRadius||(i=0),t.yRadius||(o=0),r.fill=t.color,r.stroke=t.borderColor,r["stroke-width"]=t.borderThickness,r["stroke-dasharray"]=t.dashArrayStr,this.config.elementType){case"ringpath":e=[this.getScaledVal(n,!0),this.getScaledVal(a,!1),i,this.getScaledVal(t.innerRadius),l(360-t.endAngle),l(360-t.startAngle),o,this.getScaledVal(t.innerYRadius)],r.ringpath=r.ringpath||e;break;default:r.rx=i,r.ry=o,r.cx="undefined"==typeof r.cx?this.getScaledVal(n,!0):r.cx,r.cy="undefined"==typeof r.cy?this.getScaledVal(a,!1):r.cy}return r},t}(o["default"]);t["default"]=c},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(268)),o=n(r(265)),s=r(184),l=r(260),c=n(r(202)),u=function(e){return void 0===e?void 0:1},d=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.configureAttributes=function(e){var t,r,n=this,a=n.config,o=n.getFromEnv("chart"),d=n.getLinkedParent();n.groupConfig={},n.rawConfig={},null!==d&&(n.groupConfig.x=d._getConfig("x"),n.groupConfig.y=d._getConfig("y"),n.groupConfig.grpXShift=d._getConfig("grpXShift"),n.groupConfig.grpYShift=d._getConfig("grpYShift"),n.groupConfig.color=d._getConfig("color"),n.groupConfig.alpha=d._getConfig("alpha"),n.groupConfig.font=d._getConfig("font"),n.groupConfig.fontSize=d._getConfig("fontSize"),n.groupConfig.textAlign=d._getConfig("textAlign"),n.groupConfig.textVAlign=d._getConfig("textVAlign"),n.groupConfig.rotateText=d._getConfig("rotateText"),n.groupConfig.wrapText=d._getConfig("wrapText"),n.groupConfig.toolText=d._getConfig("toolText"),n.groupConfig.scaleX=d._getConfig("scaleX"),n.groupConfig.scaleY=d._getConfig("scaleY"),n.groupConfig.scaleImageX=d._getConfig("scaleImageX"),n.groupConfig.scaleImageY=d._getConfig("scaleImageY"),n.groupConfig.link=d._getConfig("link")),n.rawConfig=(0,i["default"])(n.rawConfig,e)||{},a.type=n.rawConfig.type,a.color=n._getFillColor(n.rawConfig,this.groupConfig),a.link=(0,s.pluck)(n.rawConfig.link,n.groupConfig.link),a.borderThickness=(0,s.pluckNumber)(parseFloat(n.rawConfig.borderThickness),parseFloat(n.rawConfig.thickness),2),a.showBorder=(0,s.pluckNumber)(n.rawConfig.showBorder,parseFloat(n.rawConfig.borderThickness),parseFloat(n.rawConfig.thickness),u(n.rawConfig.borderColor),u(n.rawConfig.borderAlpha),0),a.borderColor=n._getBorderColor(n.rawConfig),a.dashed=(0,s.pluckNumber)(n.rawConfig.dashed,0),a.dashLen=(0,s.pluckNumber)(n.rawConfig.dashLen,5),a.dashGap=(0,s.pluckNumber)(parseFloat(n.rawConfig.dashGap),3),a.dashArrayStr=a.dashed?(0,s.getDashStyle)(a.dashLen,a.dashGap):"none",a.x=(0,s.pluckNumber)(n.rawConfig.x,n.rawConfig.xPos,0),a.y=(0,s.pluckNumber)(n.rawConfig.y,n.rawConfig.yPos,0),a.tox=(0,s.pluckNumber)(n.rawConfig.toX,a.x,0),a.toy=(0,s.pluckNumber)(n.rawConfig.toY,a.y,0),a.toy>=0&&a.y>=0&&a.toy<a.y&&(t=[a.toy,a.y],a.y=t[0],a.toy=t[1]),a.tox>=0&&a.x>=0&&a.tox<a.x&&(r=[a.tox,a.x],a.x=r[0],a.tox=r[1]),a.showShadow=(0,s.pluckNumber)(n.rawConfig.showShadow,d.config.showShadow,0),a.toolText=(0,s.getFirstValue)(n.rawConfig.toolText,this.groupConfig.toolText,""),a.isVisible=(0,l.pluckBoolean)(n.rawConfig.isVisible,!0),a.id=(0,s.pluck)(n.rawConfig.id,n.getId(n.config.elementType)),a.containerConfiguration={id:n.getLinkedParent().config.id,label:"group",isParent:!0},n._clickHandler=n._clickHandler||function(e){n.config.link&&n.getFromEnv("linkClickFN").call({link:n.config.link},!0),n.rawConfig.onAnnotationClick instanceof Function?n.rawConfig.onAnnotationClick():d.rawConfig.onAnnotationClick instanceof Function?d.rawConfig.onAnnotationClick():o.fireChartInstanceEvent("annotationclick",(0,l.getEventData)(e,n,o),void 0,void 0,e)},n._rollOverHandler=n._rollOverHandler||function(e){n.rawConfig.onAnnotationRollover instanceof Function?n.rawConfig.onAnnotationRollover():d.rawConfig.onAnnotationRollover instanceof Function?d.rawConfig.onAnnotationRollover():o.fireChartInstanceEvent("annotationrollover",(0,l.getEventData)(e,n,o),void 0,void 0,e)},n._rollOutHandler=n._rollOutHandler||function(e){n.rawConfig.onAnnotationRollout instanceof Function?n.rawConfig.onAnnotationRollout():d.rawConfig.onAnnotationRollout instanceof Function?d.rawConfig.onAnnotationRollout():o.fireChartInstanceEvent("annotationrollout",(0,l.getEventData)(e,n,o),void 0,void 0,e)},n.rawConfig.customComponent instanceof c["default"]?a.customComponent=a.rawConfig.customComponent:delete a.customComponent},r._getBorderColor=function(e){var t="none",r={color:s.BLANKSTRING,alpha:s.BLANKSTRING};return"line"!==this.getType()&&(r.color=this.config.rawBorderColor=(0,s.pluck)(e.borderColor,e.fillColor&&e.fillColor.split(",")[0],e.color&&e.color.split(",")[0],"#000000"),0===this.config.showBorder?(r.alpha=1,this.config.borderThickness=2):r.alpha=this.config.rawBorderAlpha=(0,s.pluckNumber)(parseFloat(e.borderAlpha),parseFloat(e.alpha),100),t=(0,s.toRaphaelColor)(r)),t},r._getFillColor=function(e,t){var r=this.config.type,n={color:s.BLANKSTRING,alpha:s.BLANKSTRING,angle:s.BLANKSTRING,ratio:s.BLANKSTRING,radialGradient:"circle"===r||"arc"===r};return"line"===r||"image"===r?(n.color=e.color||t.color||"#FF0000",n.alpha=(0,s.pluckNumber)(parseFloat(e.alpha),t.alpha,100)):(n.color=e.fillColor||e.color||t.color||"#FF0000",n.alpha=(0,s.pluck)(e.fillAlpha,parseFloat(e.alpha),t.alpha,100),n.angle=360-(0,s.pluckNumber)(e.fillAngle,0),n.ratio=(0,s.pluck)(e.fillRatio),e.fillPattern&&(n.radialGradient="radial"===e.fillPattern.toLowerCase()||(0,s.pluckNumber)(e.fillPattern)),n.radialGradient&&(n.gradientUnits="objectBoundingBox",n.cx=.5,n.cy=.5,n.fx=.5,n.fy=.5)),this.config.rawColor=n.color,this.config.rawAlpha=n.alpha,this.config.rawAngle=n.angle,this.config.rawFillPattern=n.radialGradient?"radial":"linear",this.config.rawRatio=n.ratio,(0,s.toRaphaelColor)(n)},t.destroySelectionBox=function(){},r._applyAttr=function(e){var t,r=this.config.elementType,n=Object.assign({},e);("image"!==r||this.config.url)&&((t=this.rawConfig.css||{}).cursor=this.config.link?s.POINTER:"default",this.config.isVisible?n.visibility=s.visibleStr:n.visibility=s.hiddenStr,this.addEventListener("fc-click",this._clickHandler),this.addEventListener("fc-mouseover",this._rollOverHandler),this.addEventListener("fc-mouseout",this._rollOutHandler),this.config.animationLabel=this.rawConfig.animationLabel||this.getLinkedParent().config.animationLabel||r,this.addGraphicalElement({el:r,attr:n,css:t,container:this.config.containerConfiguration,component:this.config.customComponent||this,label:this.config.animationLabel,id:this.config.id,tooltext:this.config.toolText,shadow:{opacity:0!==this.config.showShadow?1:0,useFilter:"path"===r?0:1},outlineText:n.outlineText}))},r.getScaledVal=function(e,t){var r=this.getLinkedParent();return r?r.getScaledVal(e,t):e},r.getScaledFont=function(e){var t=this.getLinkedParent();return t?t.getScaledFont(e):e},r.getScaledImageVal=function(e,t){var r=this.getLinkedParent();return r?r.getScaledImageVal(e,t):e},r.getScaleInfo=function(){return this.getLinkedParent().config.scaleInfo},r.draw=function(){this.parseAndSetAttribute(),this._applyAttr(this._getAnnotationAttrs()||{})},t}(o["default"]);t["default"]=d},function(e,t,r){var n=r(269),a=r(272),i=n((function(e,t){return a((function(e,t,r){return r}),e,t)}));e.exports=i},function(e,t,r){var n=r(270),a=r(271);e.exports=function(e){return function t(r,i){switch(arguments.length){case 0:return t;case 1:return a(r)?t:n((function(t){return e(r,t)}));default:return a(r)&&a(i)?t:a(r)?n((function(t){return e(t,i)})):a(i)?n((function(t){return e(r,t)})):e(r,i)}}}},function(e,t,r){var n=r(271);e.exports=function(e){return function t(r){return 0===arguments.length||n(r)?t:e.apply(this,arguments)}}},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e&&!0===e["@@functional/placeholder"]}},function(e,t,r){var n=r(273),a=r(274),i=r(275),o=n((function s(e,t,r){return i((function(t,r,n){return a(r)&&a(n)?s(e,r,n):e(t,r,n)}),t,r)}));e.exports=o},function(e,t,r){var n=r(270),a=r(269),i=r(271);e.exports=function(e){return function t(r,o,s){switch(arguments.length){case 0:return t;case 1:return i(r)?t:a((function(t,n){return e(r,t,n)}));case 2:return i(r)&&i(o)?t:i(r)?a((function(t,r){return e(t,o,r)})):i(o)?a((function(t,n){return e(r,t,n)})):n((function(t){return e(r,o,t)}));default:return i(r)&&i(o)&&i(s)?t:i(r)&&i(o)?a((function(t,r){return e(t,r,s)})):i(r)&&i(s)?a((function(t,r){return e(t,o,r)})):i(o)&&i(s)?a((function(t,n){return e(r,t,n)})):i(r)?n((function(t){return e(t,o,s)})):i(o)?n((function(t){return e(r,t,s)})):i(s)?n((function(t){return e(r,o,t)})):e(r,o,s)}}}},function(e,t){e.exports=function(e){return"[object Object]"===Object.prototype.toString.call(e)}},function(e,t,r){var n=r(273),a=r(276),i=n((function(e,t,r){var n,i={};for(n in t)a(n,t)&&(i[n]=a(n,r)?e(n,t[n],r[n]):t[n]);for(n in r)a(n,r)&&!a(n,i)&&(i[n]=r[n]);return i}));e.exports=i},function(e,t){e.exports=function(e,t){return Object.prototype.hasOwnProperty.call(t,e)}},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(184),o=r(260),s=n(r(267));function l(e){return e<="9"&&e>="0"||"-"===e||"."===e?0:e<="z"&&e>="a"||e<="Z"&&e>="A"?1:2}var c=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.getName=function(){return"path"},r.configureAttributes=function(t){void 0===t&&(t={}),e.prototype.configureAttributes.call(this,t);var r=this.rawConfig;this.config.pathStr=(0,i.pluck)(r.path),this.config.x=(0,i.pluckNumber)(r.x,0),this.config.y=(0,i.pluckNumber)(r.y,0),this.config.tox=(0,i.pluckNumber)(r.toX,this.config.x),this.config.toy=(0,i.pluckNumber)(r.toY,this.config.y),this.config.elementType="path"},r.getScaledPath=function(){var e,t,r,n,a,s=this.config.pathStr,c=[],u=i.BLANKSTRING;for(a=s&&s.length,r=0;r<a;r++){for(n=r,t=i.BLANKSTRING,e=l(s[r]);n<a&&l(s[n])===e;)t+=s[n],n++;""!==(t=(0,o.trim)(t))&&e<2&&c.push(t),r=n===r?n:n-1}for(a=c.length,r=0;r<a;)switch(u+=c[r],c[r].toLowerCase()){case"m":case"l":case"t":u+=this.getScaledVal(Number(c[r+1]),!0).toString()+",",u+=this.getScaledVal(Number(c[r+2]),!1).toString(),r+=3;break;case"s":case"q":u+=this.getScaledVal(Number(c[r+1]),!0).toString()+",",u+=this.getScaledVal(Number(c[r+2]),!1).toString()+",",u+=this.getScaledVal(Number(c[r+3]),!0).toString()+",",u+=this.getScaledVal(Number(c[r+4]),!1).toString(),r+=5;break;case"h":u+=this.getScaledVal(Number(c[r+1]),!0).toString(),r+=2;break;case"v":u+=this.getScaledVal(Number(c[r+1]),!1).toString(),r+=2;break;case"c":u+=this.getScaledVal(Number(c[r+1]),!0).toString()+",",u+=this.getScaledVal(Number(c[r+2]),!1).toString()+",",u+=this.getScaledVal(Number(c[r+3]),!0).toString()+",",u+=this.getScaledVal(Number(c[r+4]),!1).toString()+",",u+=this.getScaledVal(Number(c[r+5]),!0).toString()+",",u+=this.getScaledVal(Number(c[r+6]),!1).toString(),r+=7;break;case"a":u+=this.getScaledVal(Number(c[r+1]),!0).toString()+",",u+=this.getScaledVal(Number(c[r+2]),!1).toString()+",",u+=this.getScaledVal(Number(c[r+3]),!0).toString()+",",u+=c[r+4]+",",u+=c[r+5]+",",u+=this.getScaledVal(Number(c[r+6]),!0).toString()+",",u+=this.getScaledVal(Number(c[r+7]),!1).toString(),r+=8;break;case"z":default:r++}return u.toString()},r.updateAttr=function(){var e,t,r=this.config,n=r.calculatedAttrs,a={};e=(0,i.pluckNumber)(n.x,this.getScaledVal(r.x,!0)),t=(0,i.pluckNumber)(n.y,this.getScaledVal(r.y,!1)),r.pathStr?(a.path=this.getScaledPath(),a.transform="T"+e+","+t):a.path="M"+e+","+t+"L"+(0,i.pluckNumber)(n.toX,e,this.getScaledVal(r.tox,!0))+","+(0,i.pluckNumber)(n.toY,t,this.getScaledVal(r.toy,!1)),this._setConfig("attr",a)},r._getAnnotationAttrs=function(){var e,t,r,n,a,i=this.config,o=this._getConfig("attr")||{},s=i.color;return o.stroke=s,this.rawConfig.color&&(o.fill=s),o["stroke-width"]=this.getScaledVal(i.borderThickness),o["stroke-dasharray"]=i.dashArrayStr,e=o.x||this.getScaledVal(i.x,!0),t=o.y||this.getScaledVal(i.y,!1),r=o.toX||this.getScaledVal(i.tox,!0),n=o.toY||this.getScaledVal(i.toy,!1),o.path?o:((a=this.getScaledPath())?(o.path=a,o.transform=o.transform||"T"+e+","+t):o.path=o.path||"M"+e+","+t+"L"+r+","+n,o)},t}(s["default"]);t["default"]=c},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(184),o=n(r(267)),s=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.getName=function(){return"rect"},r.configureAttributes=function(t){void 0===t&&(t={}),e.prototype.configureAttributes.call(this,t);this.config.xRadius=(0,i.pluckNumber)(parseFloat(this.rawConfig.radius),0),this.config.elementType="rect"},r.updateAttr=function(){var e,t,r,n,a,o,s=this.config,l=s.calculatedAttrs;r=(0,i.pluckNumber)(l.x,this.getScaledVal(s.x,!0)),n=(0,i.pluckNumber)(l.y,this.getScaledVal(s.y,!1)),a=(0,i.pluckNumber)(l.toX,this.getScaledVal(s.tox,!0)),(o=(0,i.pluckNumber)(l.toY,this.getScaledVal(s.toy,!1)))>=0&&n>=0&&o<n&&(n=(e=[o,n])[0],o=e[1]),a>=0&&r>=0&&a<r&&(r=(t=[a,r])[0],a=t[1]),this._setConfig("attr",{x:r,y:n,width:Math.abs(a-r),height:Math.abs(o-n)})},r._getAnnotationAttrs=function(){var e=this.config,t=this._getConfig("attr")||{},r=this.getScaledVal(e.x),n=this.getScaledVal(e.y);return t.x="undefined"==typeof t.x?r:t.x,t.y="undefined"==typeof t.y?n:t.y,t.width="undefined"==typeof t.width?Math.abs(this.getScaledVal(e.tox)-r):t.width,t.height="undefined"==typeof t.height?Math.abs(this.getScaledVal(e.toy)-n):t.height,t.r=this.getScaledVal(e.xRadius),t.fill=e.color,t.stroke=e.borderColor,t["stroke-width"]=e.borderThickness,t["stroke-dasharray"]=e.dashArrayStr,t},t}(o["default"]);t["default"]=s},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(267)),o=r(184),s=function(e){var t=this.config,r=e.originalEvent.target,n=r.height,a=r.width,i=this._getConfig("align"),o=this._getConfig("vAlign"),s=this._getConfig("xScale"),l=n*this._getConfig("yScale"),c=a*s,u=function(e){var t=e.height,r=e.width,n=e.vAlign,a=e.align,i=e.x,o=e.y,s={x:i,y:o};switch(a){case"center":s.x=i-r/2;break;case"right":s.x=i-r}switch(n){case"middle":s.y=o-t/2;break;case"bottom":s.y=o-t}return s}({x:t.derivedX,y:t.derivedY,height:l,width:c,align:i,vAlign:o});this.config.loadedWidth=a,this.config.loadedHeight=n,t=Object.assign(this.rawConfig,{x:u.x,y:u.y,width:c,height:l,autoScale:0}),this.getGraphicalElement(this.config.id,this.config.animationLabel).attr(t),this.rawConfig.onload&&this.rawConfig.onload.call(this,{width:c,height:l}),e.detachHandler()},l=function(e){function t(t){var r;return(r=e.call(this,t)||this)._listener=s,r}(0,a["default"])(t,e);var r=t.prototype;return r.getName=function(){return"image"},r.configureAttributes=function(t){void 0===t&&(t={}),e.prototype.configureAttributes.call(this,t);var r=this.rawConfig,n=this.config;n.url=(0,o.getValidValue)(r.url),n.xScale=n.rawXScale=(0,o.pluckNumber)(r.xScale,100)/100,n.yScale=n.rawYScale=(0,o.pluckNumber)(r.yScale,100)/100,n.width=(0,o.pluckNumber)(n.loadedWidth,r.width),n.height=(0,o.pluckNumber)(n.loadedHeight,r.height),n.align=(0,o.pluck)(r.align,"left"),n.vAlign=(0,o.pluck)(r.vAlign,"top"),n.xScale=n.xScale*(this.groupConfig.scaleX||1),n.yScale=n.yScale*(this.groupConfig.scaleY||1),n.elementType="image","undefined"==typeof n.width&&"undefined"==typeof n.height&&this.addEventListener("load",this._listener)},r.updateAttr=function(){var e=this.getLinkedParent(),t=this.config,r=t.calculatedAttrs;this.config.xScale=e.config.scaleX*t.rawXScale,this.config.yScale=e.config.scaleY*t.rawYScale,this._setConfig("attr",{x:(0,o.pluckNumber)(r.x,this.getScaledVal(t.x,!0)),y:(0,o.pluckNumber)(r.y,this.getScaledVal(t.y,!1))})},r._getAnnotationAttrs=function(){var e=this.config,t=e.attr,r=(0,o.pluckNumber)(e.attr.x,e.x),n=(0,o.pluckNumber)(e.attr.y,e.y);return(0,o.pluckNumber)(this.rawConfig.autoscale,this.rawConfig.autoScale,1)||(t={x:r,y:n}),e.derivedX=t.x="undefined"==typeof t.x?this.getScaledVal(r,!0):t.x,e.derivedY=t.y="undefined"==typeof t.y?this.getScaledVal(n,!1):t.y,t.src=e.url,t.opacity=(0,o.pluckNumber)(e.rawAlpha,100)/100,"undefined"!=typeof e.width&&(t.width=e.width*e.xScale),"undefined"!=typeof e.height&&(t.height=e.height*e.yScale),t},t}(i["default"]);t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(267)),o=r(184),s={left:"start",right:"end",center:"middle"},l={top:"bottom",middle:"middle",bottom:"top"},c={0:"0",1:"270",right:"90",cw:"90",left:"270",ccw:"270"};var u=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.getName=function(){return"text"},r.configureAttributes=function(t){void 0===t&&(t={}),e.prototype.configureAttributes.call(this,t);var r,n=this.rawConfig,a=this.groupConfig;this.config.text=(0,o.parseUnsafeString)((0,o.pluck)(n.text,n.label,"")),this.config.font=(0,o.pluck)(n.font,a.font,"Verdana, sans"),this.config.fontSize=(0,o.pluckFontSize)(n.fontSize,a.fontSize,10),this.config.align=(0,o.pluck)(s[n.align&&n.align.toLowerCase()],s[a.textAlign&&a.textAlign.toLowerCase()],"middle"),this.config.vAlign=(0,o.pluck)(l[n.vAlign&&n.vAlign.toLowerCase()],l[a.textVAlign&&a.textVAlign.toLowerCase()],"middle"),this.config.radius=(0,o.pluckNumber)(parseFloat(n.radius),0),this.config.fontWeight=(0,o.pluckNumber)(n.bold,0)?"bold":"normal",this.config.outlineText=(0,o.pluckNumber)(t.outlineText,0),this.config.fontStyle=(0,o.pluckNumber)(n.italic,0)?"italic":"normal",this.config.bgColor=(r=n.bgColor,(/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(r)?r:/(^[0-9A-F]{6}$)|(^[0-9A-F]{3}$)/i.test(r))?n.bgColor:"none"),this.config.borderThickness=(0,o.pluckNumber)(parseFloat(this.rawConfig.borderThickness),parseFloat(this.rawConfig.thickness),1),this.config.rotateText=(0,o.pluck)(n.rotateText,a.rotateText,"0"),this.config.rotateAngle=c[this.config.rotateText&&this.config.rotateText.toLowerCase()],this.config.wrap=(0,o.pluckNumber)(n.wrap,a.wrapText,n.wrapHeight,n.wrapWidth,1),this.config.wrap&&(this.config.wrapWidth=(0,o.pluckNumber)(n.wrapWidth),this.config.wrapHeight=(0,o.pluckNumber)(n.wrapHeight)),this.config.leftMargin=(0,o.pluckNumber)(n.leftMargin,0),this.config.elementType="text"},r.getText=function(){var e=this.config,t=this.getFromEnv("smartLabel"),r=this.getLinkedParent(),n=r&&r._getConfig("scaleText"),a=n?this.getScaledVal(e.wrapWidth,!0):e.wrapWidth,i=n?this.getScaledVal(e.wrapHeight,!1):e.wrapHeight,s={fontStyle:e.fontStyle,fontFamily:e.font,fontWeight:e.fontWeight,fontSize:e.fontSize+"px","text-anchor":e.align,"vertical-align":e.vAlign};return(0,o.setLineHeight)(s),t&&t.setStyle(s),t&&e.wrap?t.getSmartText(e.text,a,i,0).text:e.text},r._getFillColor=function(e,t){var r=this.config.type,n={color:"",alpha:"",angle:"",ratio:"",radialGradient:"circle"===r||"arc"===r};return n.color=e.fontColor||e.fillColor||e.color||t.color||"#FF0000",n.alpha=(0,o.pluck)(e.fillAlpha,parseFloat(e.alpha),t.alpha,100),n.angle=360-(0,o.pluckNumber)(e.fillAngle,0),n.ratio=(0,o.pluck)(e.fillRatio),e.fillPattern&&(n.radialGradient="radial"===e.fillPattern||(0,o.pluckNumber)(e.fillPattern)),n.radialGradient&&(n.gradientUnits="objectBoundingBox",n.cx=.5,n.cy=.5,n.fx=.5,n.fy=.5),this.config.rawColor=n.color,this.config.rawAlpha=n.alpha,this.config.rawAngle=n.angle,this.config.rawFillPattern=n.radialGradient?"radial":"linear",this.config.rawRatio=n.ratio,(0,o.toRaphaelColor)(n)},r.updateAttr=function(){var e,t=this.config,r=t.calculatedAttrs,n=(0,o.pluckNumber)(r.x,this.getScaledVal(t.x,!0)),a=(0,o.pluckNumber)(r.y,this.getScaledVal(t.y,!0));"0"!==t.rotateText&&(e=(0,o.getSuggestiveRotation)(parseFloat(t.rotateAngle),n,a)),this._setConfig("attr",{x:n,y:a,transform:e})},r._getAnnotationAttrs=function(){var e,t,r=this.config,n=this._getConfig("attr")||{},a=this.getScaledVal(r.x,!0),i=this.getScaledVal(r.y,!1);return n.x=("undefined"==typeof n.x?a:n.x)+r.leftMargin/2,n.y="undefined"==typeof n.y?i:n.y,n.text=this.getText(),n.fill=r.color,n.outlineText=r.outlineText,n.text&&(e=this.rawConfig.borderColor,t=this.rawConfig.borderAlpha,e&&"none"!==e&&0!==t||this.rawConfig.bgColor)?n["text-bound"]=[(0,o.toRaphaelColor)(r.bgColor),r.borderColor,r.borderThickness,2,r.radius,r.dashArrayStr]:n["text-bound"]=[],n["font-style"]=r.fontStyle,n["font-weight"]=r.fontWeight,n["font-family"]=r.font,n["font-size"]=this.getScaledFont(r.fontSize),n["text-anchor"]=r.align,n["vertical-align"]=r.vAlign,"0"!==r.rotateText&&(n.transform=n.transform||(0,o.getSuggestiveRotation)(parseFloat(r.rotateAngle),a,i)),n},t}(i["default"]);t["default"]=u},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(267)),o=r(184),s=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.getName=function(){return"polygon"},r.configureAttributes=function(t){void 0===t&&(t={}),e.prototype.configureAttributes.call(this,t);var r=this.rawConfig;this.config.sides=(0,o.pluckNumber)((0,o.clampNumber)(r.sides,3),5),this.config.startAngle=(0,o.pluckNumber)(parseFloat(r.startAngle),0),this.config.xRadius=(0,o.pluckNumber)(parseFloat(r.radius),0),this.config.elementType="polypath"},r.updateAttr=function(){var e=this.config,t=e.calculatedAttrs;this._setConfig("attr",{polypath:[e.sides,(0,o.pluckNumber)(t.x,this.getScaledVal(e.x,!0)),(0,o.pluckNumber)(t.y,this.getScaledVal(e.y,!1)),this.getScaledVal(e.xRadius),e.startAngle,0]})},r._getAnnotationAttrs=function(){var e=this.config,t=this._getConfig("attr")||{};return t.fill=e.color,t.stroke=e.borderColor,t["stroke-width"]=e.borderThickness,t["stroke-dasharray"]=e.dashArrayStr,t.polypath=t.polypath||[e.sides,this.getScaledVal(e.x,!0),this.getScaledVal(e.y,!1),this.getScaledVal(e.xRadius),e.startAngle,0],t},t}(i["default"]);t["default"]=s},function(e,t,r){var n=r(269)((function(e,t){var r={};for(var n in t)e(t[n],n,t)&&(r[n]=t[n]);return r}));e.exports=n},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(284)),i=r(184),o=r(287);function s(e){var t=e.sender;(0,o.isValidDataset)(t)&&t.registerFactory("regression",(function(e){var t=e.getFromEnv("chart").getFromEnv("dataSource").chart,r=e.config.JSONData;(0,i.componentFactory)(e,a["default"],"regression",Number((0,o.hasRegressionLine)(t,r)),[e])}))}var l={extension:function(e){e.addEventListener("instantiated",s)},name:"Regression",type:"extension",requiresFusionCharts:!0};t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(199),o=n(r(285)),s=n(r(286)),l=r(184),c=r(287),u=r(192),d=n(r(288)),h=function(){this.hide()};(0,u.addDep)({name:"regressionLineAnimation",type:"animationRule",extension:d["default"]});var f=function(e){function t(){var t;return(t=e.call(this)||this)._config={regressionPoints:[]},t.regressionLine=[],t}(0,a["default"])(t,e);var r=t.prototype;return r.getType=function(){return"extension"},r.getName=function(){return"regression"},r.configureAttributes=function(e){var t=this.getFromEnv("dataSource").chart,r=e.config,n=r.JSONData,a=this._config;a.regressionPoints.splice(0,a.regressionPoints.length),a.showYOnX=(0,l.pluckNumber)(n.showyonx,t.showyonx,1),a.regressionLineColor=(0,l.toRaphaelColor)((0,l.pluck)(n.regressionlinecolor,t.regressionlinecolor,r.anchorbordercolor,r.lineColor,r.anchorBgColor,"fff000")),a.polynomialRegressionLineColor=(0,l.toRaphaelColor)((0,l.pluck)(n.polynomialregressionlinecolor,t.polynomialregressionlinecolor,a.regressionLineColor)),a.regressionLineThickness=(0,l.pluckNumber)(n.regressionlinethickness,t.regressionlinethickness,n.anchorborderthickness,1),a.polynomialRegressionLineThickness=(0,l.pluckNumber)(n.polynomialregressionlinethickness,t.polynomialregressionlinethickness,a.regressionLineThickness),a.regressionLineAlpha=(0,l.pluckNumber)(n.regressionlinealpha,t.regressionlinealpha,100),a.polynomialRegressionLineAlpha=(0,l.pluckNumber)(n.polynomialregressionlinealpha,t.polynomialregressionlinealpha,a.regressionLineAlpha),(0,c.createLinear)(t,n)&&a.regressionPoints.push((0,o["default"])(n.data,a.showYOnX)),(0,c.createPolynomial)(t,n)&&a.regressionPoints.push((0,s["default"])(n.data,a.showYOnX))},r.draw=function(){var e,t,r,n,a,i,o,s=this._config,c=this.getFromEnv("xAxis"),u=this.getFromEnv("yAxis"),d=this.getFromEnv("chart"),f=d.getChildren("canvas")[0].config,g=this.getContainer("regressionlinecontainer"),p=this.getFromEnv("animationManager"),m=s.regressionPoints,v=[],b=[],y=this.getGraphicalElement("regressionLineLinear"),x=this.getGraphicalElement("regressionLinePolynomial"),C=h;!this.getLinkedParent().getState("visible")&&(o="disappearing"),g=this.addContainer("regressionlinecontainer",p.setAnimation({el:g||"group",attr:{name:"regressionlinecontainer","clip-rect":[f.canvasLeft,f.canvasTop,f.canvasWidth,f.canvasHeight]},container:d.getChildContainer("abovePlotGroup"),component:this,label:"group"}));for(var w=0;w<m.length;w++){var _=l.BLANKSTRING;if(v=m[w][0],e=(b=m[w][1]).length,0===v.length&&0===b.length)n=!0,_+="M0,0";else if(0!==v.length&&0===b.length)n=!1,_+="M0,0";else if(0===v.length)n=!0,_+="M"+c.getPixel(b[0].x)+","+u.getPixel(b[0].y),_+="L"+c.getPixel(b[e-1].x)+","+u.getPixel(b[e-1].y);else{n=!1,_+="M"+c.getPixel(b[0].x)+","+u.getPixel(b[0].y),_+=" R"+c.getPixel(b[1].x)+","+u.getPixel(b[1].y);for(var k=2;k<e;k++)_+=" "+c.getPixel(b[k].x)+","+u.getPixel(b[k].y)}n?a={opacity:Number(s.regressionLineAlpha)/100,stroke:s.regressionLineColor,"stroke-width":s.regressionLineThickness,path:_}:i={opacity:Number((0,l.pluck)(s.polynomialRegressionLineAlpha,s.regressionLineAlpha))/100,stroke:(0,l.pluck)(s.polynomialRegressionLineColor,s.regressionLineColor),"stroke-width":(0,l.pluck)(s.polynomialRegressionLineThickness,s.regressionLineThickness),path:_}}"disappearing"!==o&&(y&&y.show(),x&&x.show()),t=p.setAnimation({el:y||"path",container:g,component:this,doNotRemove:!0,attr:!("disappearing"===o)&&a,callback:"disappearing"===o&&C,label:"path"}),y||this.addGraphicalElement("regressionLineLinear",t),r=p.setAnimation({el:x||"path",container:g,component:this,doNotRemove:!0,attr:!("disappearing"===o)&&i,callback:"disappearing"===o&&C,label:"path"}),x||this.addGraphicalElement("regressionLinePolynomial",r)},t}(i.ComponentInterface);t["default"]=f},function(e,t,r){"use strict";function n(e,t,r){return parseFloat(e[r])-parseFloat(t[r])}function a(e,t){return n(e,t,"x")}function i(e,t){return n(e,t,"y")}t.__esModule=!0,t["default"]=function(e,t){if(Number(t))return function(e){e.sort(a);for(var t,r,n,i,o=[],s=[],l=0,c=0,u=0,d=0,h=e.length,f=[],g=0;g<e.length;g++)n=Number(e[g].x),i=Number(e[g].y),isNaN(n)||isNaN(i)||(o.push(n),s.push(i));h=o.length;for(var p=0;p<h;p++)l+=o[p],c+=s[p];l/=h,c/=h;for(var m=0;m<h;m++)u+=(o[m]-l)*(s[m]-c),d+=(o[m]-l)*(o[m]-l);if(0===d)return[[],[]];return r=c-(t=u/d)*l,f.push({x:o[0],y:t*o[0]+r}),f.push({x:o[h-1],y:t*o[h-1]+r}),[[],f]}(e);return function(e){e.sort(i);for(var t,r,n,a,o=[],s=[],l=0,c=0,u=0,d=0,h=e.length,f=[],g=0;g<e.length;g++)n=Number(e[g].x),a=Number(e[g].y),isNaN(n)||isNaN(a)||(o.push(n),s.push(a));h=o.length;for(var p=0;p<h;p++)l+=o[p],c+=s[p];l/=h,c/=h;for(var m=0;m<h;m++)u+=(o[m]-l)*(s[m]-c),d+=(s[m]-c)*(s[m]-c);if(0===d)return[[],[]];return r=l-(t=u/d)*c,(f=[]).push({x:t*s[0]+r,y:s[0]}),f.push({x:t*s[h-1]+r,y:s[h-1]}),[[],f]}(e)}},function(e,t,r){"use strict";function n(e,t){return parseFloat(e.x)-parseFloat(t.x)}t.__esModule=!0,t["default"]=function(e,t){if(Number(t))return function(e){e.sort(n);for(var t,r,a,i,o,s,l,c,u,d,h=[],f=[],g=0,p=0,m=e.length,v=0,b=0,y=0,x=0,C=0,w=[],_=0;_<e.length;_++)u=Number(e[_].x),d=Number(e[_].y),isNaN(u)||isNaN(d)||(h.push(u),f.push(d));m=h.length;for(var k=0;k<m;k++)g+=f[k],p+=h[k]*f[k],C+=h[k]*h[k]*f[k],v+=h[k],b+=h[k]*h[k],x+=h[k]*h[k]*h[k],y+=h[k]*h[k]*h[k]*h[k];if(r=p-v*g/m,i=C-b*g/m,(t=b-v*v/m)*(o=y-b*b/m)-(a=x-b*v/m)*a==0||0===m)return[e,[]];c=g/m-(l=(r*o-i*a)/(t*o-a*a))*(v/m)-(s=(i*t-r*a)/(t*o-a*a))*(b/m);for(var S=0;S<m;S++)w.push({x:h[S],y:s*h[S]*h[S]+l*h[S]+c});return[e,w]}(e);return function(e){e.sort(n);for(var t,r,a,i,o,s,l,c,u,d,h=[],f=[],g=0,p=0,m=e.length,v=0,b=0,y=0,x=0,C=0,w=[],_=0;_<e.length;_++)u=Number(e[_].x),d=Number(e[_].y),isNaN(u)||isNaN(d)||(h.push(u),f.push(d));m=h.length;for(var k=0;k<m;k++)g+=h[k],p+=f[k]*h[k],C+=f[k]*f[k]*h[k],v+=f[k],b+=f[k]*f[k],x+=f[k]*f[k]*f[k],y+=f[k]*f[k]*f[k]*f[k];if(r=p-v*g/m,i=C-b*g/m,(t=b-v*v/m)*(o=y-b*b/m)-(a=x-b*v/m)*a==0||0===m)return[e,[]];c=g/m-(l=(r*o-i*a)/(t*o-a*a))*(v/m)-(s=(i*t-r*a)/(t*o-a*a))*(b/m);for(var S=0;S<m;S++)w.push({x:s*f[S]*f[S]+l*f[S]+c,y:f[S]});return[e,w]}(e)}},function(e,t,r){"use strict";t.__esModule=!0,t.createPolynomial=function(e,t){var r=Number(e.showpolynomialregressionline)||0;return isNaN(t.showpolynomialregressionline)&&r||Number(t.showpolynomialregressionline)},t.createLinear=function(e,t){var r=Number(e.showregressionline)||0;return isNaN(t.showregressionline)&&r||Number(t.showregressionline)},t.isInArray=function(e,t){return t.indexOf(e.toLowerCase())>-1},t.hasRegressionLine=function(e,t){return t.showregressionline||e.showregressionline||t.showpolynomialregressionline||e.showpolynomialregressionline},t.isValidDataset=void 0;var n=["scatter","bubble","errorScatter","selectScatter"];t.isValidDataset=function(e){return function(e){return"dataset"===e.getType()}(e)&&n.indexOf(e.getName())>=0}},function(e,t,r){"use strict";function n(){var e,t=this.getFromEnv("chart").getChildren("canvas")[0],r=0,n=[],a=[];for(n.push(t.config.canvasLeft),n.push(t.config.canvasTop),n.push(0),n.push(t.config.canvasHeight),e=n.length;r<e;)a.push(n[r]),r++;return a[2]=t.config.canvasWidth,[{initialAttr:function(){return{"clip-rect":n}},finalAttr:function(){return{"clip-rect":a}},effect:"linear",slot:"plot"}]}t.__esModule=!0,t["default"]=void 0;var a={"initial.extension.regression":function(){return{"path.appearing":null,"path.updating":null,"path.disappearing":null,"group.appearing":n,"*":null}}};t["default"]=a},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=r(184),i=n(r(290)),o=n(r(291)),s=n(r(308)),l=n(r(309)),c=n(r(310)),u=n(r(311)),d=n(r(312)),h=n(r(313)),f=n(r(314)),g=n(r(315)),p=r(192),m=n(r(316)),v={DragZoomIn:o["default"],ZoomResetButton:s["default"],ZoomOutButton:l["default"],DbTapZoom:u["default"],DragPin:d["default"],ZoomInButton:c["default"],DragPan:h["default"],PinchZoom:f["default"],SwipeGesture:g["default"]};var b={extension:function(e){var t,r;(0,m["default"])((0,p.getDep)("redraphael","plugin")),e.addEventListener("instantiated",(function(e){var n,o=e.sender;"canvas"===o.getType()&&o.registerFactory("inputManager",(function(e){if(r=e.getFromEnv("chart"),t=r.constructor.includeInputOptions&&r.constructor.includeInputOptions()){(0,a.componentFactory)(e,i["default"],"inputManager",1,[{}]),n=e.getChildren("inputManager")[0];for(var o=0,s=t&&t.length;o<s;o++)(0,a.componentFactory)(n,v[t[o]],t[o],1,[{}])}}))}))},name:"inputAdapter",type:"extension",requiresFusionCharts:!0};t["default"]=b},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(199),o=r(184),s=function(e,t,r,n){var a,i;(i=n[e])&&(i.some((function(e,n){return e.callback===t&&e.component===r&&(a=n,!0)})),a!==o.UNDEF&&i.splice(a,1))},l=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.configure=function(){var e=this.getFromEnv("chart"),t=e.getInputConfigurations;this.addToEnv("canvas",this.getLinkedParent()),this.addToEnv("inputOptions",t&&t.call(e)),this.config={controlObj:{},dependancyObj:{}}},r.addEventToChild=function(){var e=this,t=e.getChildren(),r=["zoomin","zoomout","dragzoomenabled","dragzoomdisabled","pinenabled","pindisabled","panenabled","pandisabled"],n=function(n){r.forEach((function(r){e.addExtEventListener(r,e.manageEvents.bind(e),t[n][0])}))};for(var a in t)n(a)},r.manageEvents=function(e){var t=this.config.dependancyObj,r=e.type;t[r]&&t[r].forEach((function(t){t.component!==e.sender&&t.callback.call(t.component,e)}))},r.fetchZoomableAxes=function(){if(!this.config.axesObArr){var e=this.config.axesObArr=[];this.getLinkedParent().getAxes().forEach((function(t){(t.config.zoomable||t.config.pannable)&&e.push({axis:t.axis,stack:[],isY:t.isY})})),this.addToEnv("axesObArr",e)}},r.draw=function(){this.fetchZoomableAxes(),this.addEventToChild()},r.getControl=function(e,t){var r,n=this.config.controlObj,a=this.getLinkedParent();t||e.forEach((function(e){(r=e.nativeInteraction)instanceof Array?r.forEach((function(t){(n[t]||(n[t]=[])).push({callback:e.callback,component:e.component}),e.component.addExtEventListener(t,e.callback,a)})):((n[r]||(n[r]=[])).push({callback:e.callback,component:e.component}),e.component.addExtEventListener(r,e.callback,a))}))},r.releaseControl=function(e){var t,r=this,n=r.getLinkedParent();e.forEach((function(e){(t=e.nativeInteraction)instanceof Array?t.forEach((function(t){e.component.removeExtEventListener(t,e.callback,n),s(t,e.callback,e.component,r.config.controlObj)})):(e.component.removeExtEventListener(t,e.callback,n),s(t,e.callback,e.component,r.config.controlObj))}))},r._updateControlObj=function(e,t){var r,n;(n=this.config.controlObj[e])&&(n.some((function(e,n){return e.callback===t&&(r=n,!0)})),r!==o.UNDEF&&n.splice(r,1))},r.registerDependancy=function(e){var t,r=this.config.dependancyObj;e.forEach((function(e){(t=e.derivedInteraction)instanceof Array?t.forEach((function(t){(r[t]||(r[t]=[])).push({callback:e.callback,component:e.component,derivedInteraction:t})})):(r[t]||(r[t]=[])).push(e)}))},r.removeDependancy=function(e){var t,r=this;e.forEach((function(e){(t=e.derivedInteraction)instanceof Array?t.forEach((function(t){s(t,e.callback,e.component,r.config.dependancyObj)})):s(t,e.callback,e.component,r.config.dependancyObj)}))},r.zoomOut=function(){var e=this.getChildren("ZoomOutButton");e&&e[0].zoomOut()},r.zoomTo=function(e,t){var r=this.getChildren("DragZoomIn");r&&r[0].zoomTo(e,t)},r.resetChart=function(){var e=this.getChildren("ZoomResetButton");e&&e[0].zoomOut()},r.setZoomMode=function(e){var t=this.getChildren("DragPin");t&&(e?t[0].disable():t[0].enable())},t}(i.ComponentInterface);t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(201)),i=n(r(198)),o=n(r(292)),s=r(184),l=Math.min,c=Math.abs,u=function(e){function t(){var r;r=e.call(this)||this;var n=(0,a["default"])(r);return n.controlArr=[{nativeInteraction:["fc-dragstart"],callback:n.dragStart.bind(n),component:n},{nativeInteraction:["fc-dragmove"],callback:n.onDrag.bind(n),component:n},{nativeInteraction:["fc-dragend"],callback:n.onDragEnd.bind(n),component:n}],s.isFirefox&&n.controlArr.push({nativeInteraction:["fc-mousedown"],callback:t.mousedown,component:n}),n._toggle=function(){n._checkStackLen()&&n.toggle()},r}(0,i["default"])(t,e);var r=t.prototype;return r.getName=function(){return"dragZoomIn"},r.configure=function(){e.prototype.configure.call(this);var t=this.config;t.boxStyle=t.boxStyle||{"stroke-width":1,stroke:"red",fill:"#00FF00",opacity:.2,cursor:"ne-resize"},!this.config.skipGraphics&&this.setLinkedItem("button",this.createButton({icon:"zoomModeIcon",tooltext:this.config.tooltext,handlers:{click:this._toggle},state:"activated"})),this.enable("pressed"),this.getLinkedParent().registerDependancy([{derivedInteraction:["pinenabled","pindisabled","panenabled","pandisabled"],callback:this.dependancyFn,component:this}])},t.mousedown=function(e){e&&e.preventDefault()},r.setControl=function(){var e=this.getLinkedParent(),t=this.getLinkedItem("button"),r=this.controlArr;e.releaseControl(r),this.isEnabled()&&e.getControl(r),t&&t.setCurrentState(this.isEnabled()?this.config.state:"disabled")},r.getCoordinates=function(e){var t=this.getFromEnv("chart"),r=(0,s.getMouseCoordinate)(t.getFromEnv("chart-container"),e,t);return{x:r.chartX,y:r.chartY}},r.inCanvasLimit=function(e){var t=this.getFromEnv("canvas").getGraphicalElement("canvasElement").attrs,r=t.x,n=t.y,a=e.x-t.x,i=e.y-t.y,o=t.width-a,s=t.height-i;return e.x>r&&e.y>n&&e.width<o&&e.height<s},r.drawBox=function(){var e,t=this.config,r=this.getGraphicalElement("box"),n=this.getFromEnv("canvas").getGraphicalElement("canvasElement").attrs;r||(r=this.addGraphicalElement("box",this.getFromEnv("paper").rect())).attr(t.boxStyle),e=function(e,t,r,n){t.x<r.x&&(t.x=r.x),t.y<r.y&&(t.y=r.y),t.x>r.width+r.x&&(t.x=r.width+r.x),t.y>r.height+r.y&&(t.y=r.height+r.y);var a,i=t.x-e.x,o=e.y-t.y;return i>0&&o>0?a=n?"ne-resize":"e-resize":i<0&&o>0?a=n?"nw-resize":"w-resize":i<0&&o<0?a=n?"sw-resize":"w-resize":i>0&&o<0&&(a=n?"se-resize":"e-resize"),{x:l(e.x,t.x),y:l(e.y,t.y),width:i=c(i),height:o=c(o),cursor:a}}(this.dragBoxConfig.startPos,this.dragBoxConfig.currentPos,n,this.getFromEnv("chart").isXY),t.scaleX||(e.x=n.x,e.width=n.width),t.scaleY||(e.y=n.y,e.height=n.height),r.attr(e),r.show()},r.onDragEnd=function(e){var t,r,n,a,i=this.config,o=this.getFromEnv("canvas").getGraphicalElement("canvasElement").attrs,s=this.getGraphicalElement("box")||{},l=s.attrs;l&&i.dragmove&&(i.dragmove=!1,s.hide(),i.startPosX=t=(l.x-o.x)/o.width,i.endPosX=r=(l.x+l.width-o.x)/o.width,i.startPosY=n=(l.y-o.y)/o.height,i.endPosY=a=(l.y+l.height-o.y)/o.height,r-t<.01||a-n<.01||this.zoomTo(void 0,void 0,e))},r.zoomTo=function(e,t,r){var n,a,i,o,s,l,c,u,d=this,h=d.config,f=!1,g={},p=h.catZoomLimit-1;d.getFromEnv("axesObArr").forEach((function(m){var v=m.axis,b=v.getVisibleConfig(),y=m.isY?b.maxValue:b.minValue,x=b.maxValue-b.minValue;m.isY?(o=n=void 0===e?y-x*h.endPosY:e,l=a=void 0===t?y-h.startPosY*x:t):(s=n=void 0===e?y+h.startPosX*x:e,c=a=void 0===t?y+x*h.endPosX:t,g=d.constructor._getZoomInfo(s,c,v)),p&&!v.config.isVertical&&Math.round(a-n)<p&&(n=Math.round(n),a=n+p),(x>1||a-n>1)&&(h.dragendFn&&"function"==typeof h.dragendFn&&h.dragendFn(r,n,a),u=v.setVisibleConfig(n,a),f=f||u,m.stack.push(b),i=m.stack.length+1)})),f&&d._raiseZoomEvents("zoomin","zoomedin",Object.assign(g,{level:i,startX:s,endX:c,startY:o,endY:l},{originalEvent:r&&r.originalEvent}))},r.onDrag=function(e){var t=this.config,r=this.getCoordinates(e.originalEvent);t.dragmove=!0,this.getFromEnv("animationManager").setAnimationState("drag"),t.dragmoveFn&&"function"==typeof t.dragmoveFn&&t.dragmoveFn(e),this.dragBoxConfig.currentPos=r,this.drawBox()},r.dragStart=function(e){var t=this.config,r=this.getCoordinates(e.originalEvent);t.dragstartFn&&"function"==typeof t.dragstartFn&&t.dragstartFn(e),this.dragBoxConfig={startPos:r,currentPos:r}},r.enable=function(){!0!==this.config.enabled&&(this.config.enabled=!0,this.config.state="pressed",this.fireEvent("dragzoomenabled"),this.setControl())},r.disable=function(){!1!==this.config.enabled&&(this.config.enabled=!1,this.config.state="activated",this.fireEvent("dragzoomdisabled"),this.setControl())},r.dependancyFn=function(e){"pinenabled"===e.type||"panenabled"===e.type?this.disable():"pindisabled"!==e.type&&"pandisabled"!==e.type||this.enable()},t}(o["default"]);t["default"]=u},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(199),o=r(293),s=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.configure=function(){var e=this.config={},t=this.getFromEnv("inputOptions")||{};Object.assign(e,t[this.getName()])},r._checkStackLen=function(){var e=this.getFromEnv("axesObArr"),t=0;return e&&e.forEach((function(e){t+=e.stack.length})),t},t._getZoomInfo=function(e,t,r){var n={startIndex:Math.ceil(e),endIndex:Math.floor(t)};return r.getLabel&&(n.startLabel=r.getLabel(n.startIndex).label,n.endLabel=r.getLabel(n.endIndex).label),n},r._raiseZoomEvents=function(e,t,r,n){var a=this.getFromEnv("chart");e&&this.fireEvent(e),t&&a.fireChartInstanceEvent(t,r,n),t&&a.fireChartInstanceEvent("zoomed",r,n)},r.getType=function(){return"canvasInput"},r.enable=function(e){!0!==this.config.enabled&&(this.config.enabled=!0,e&&this.fireEvent(e),this.setControl())},r.disable=function(e){!1!==this.config.enabled&&(this.config.enabled=!1,e&&this.fireEvent(e),this.setControl())},r.toggle=function(e){this.isEnabled()?this.disable(e):this.enable(e)},r.isEnabled=function(){return this.config.enabled},r.setControl=function(){var e=this.getLinkedItem("button");e&&e.setCurrentState(this.isEnabled()?this.config.state:"disabled")},r.createButton=function(e){var t,r=this.getLinkedParent().getFromEnv("chart");for(var n in(t=r.getFromEnv("toolbar").attachChild(o.Tool,"tool",this.getId())).configure(Object.assign({},r.getFromEnv("tool-config"),{name:e.icon,tooltext:e.tooltext})),e.handlers)e.handlers.hasOwnProperty(n)&&t.addEventListener("fc-"+n,e.handlers[n]);return t.setLinkedItem("input",this),t},t}(i.ComponentInterface);t["default"]=s},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0;var a=r(294);t.ScrollBar=a.ScrollBar,t.Checkbox=a.Checkbox,t.Hamburger=a.Hamburger,t.Label=a.Label,t.MenuItemContainer=a.MenuItemContainer,t.Tool=a.Tool;var i=n(r(307));t.ToolBar=i["default"]},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0;var a=n(r(295));t.ScrollBar=a["default"];var i=n(r(301));t.Checkbox=i["default"];var o=n(r(302));t.Hamburger=o["default"];var s=n(r(305));t.Label=s["default"];var l=n(r(306));t.Separator=l["default"];var c=n(r(303));t.MenuItemContainer=c["default"];var u=n(r(296));t.Tool=u["default"]},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(184),o=n(r(296)),s=n(r(298)),l=n(r(299)),c=n(r(300)),u=r(297),d=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this),this.config.scale=1},r.configureAttributes=function(t){void 0===t&&(t={}),e.prototype.configureAttributes.call(this,t);var r=this.config,n=this.getFromEnv("chart-attrib");r.conf={},r.color=n.scrollcolor&&(0,i.convertColor)(n.scrollcolor),r.padding=(0,i.pluckNumber)(n.scrollpadding,0),r.height=(0,i.pluckNumber)(n.scrollheight,12),r.width=(0,i.pluckNumber)(n.scrollwidth,12),r.displayFlat=(0,i.pluckNumber)(n.flatscrollbars,0),r.scrollBar3DLighting=(0,i.pluckNumber)(n.scrollbar3dlighting,1),r.startPercent=Math.min(1,Math.max(0,parseFloat(n.scrolltoend)||0)),r.showButtons=!!(0,i.pluckNumber)(n.scrollshowbuttons,1),r.buttonPadding=(0,i.pluckNumber)(n.scrollbtnpadding,0),r.style=t.style,r.drawStripes=t.drawStripes,r.restrictScrollAnchor=(0,i.pluckNumber)(t.restrictScrollAnchor,1),this.setConfiguaration(t),r.evt={tooltext:void 0,click:i.stubFN,hover:[i.stubFN,i.stubFN]},this.createScrollItems()},r.createScrollItems=function(){var e=this.config,t=e.style||{},r=this.getChildren("scrollTrack")&&this.getChildren("scrollTrack")[0],n=this.getChildren("scrollAnchor")&&this.getChildren("scrollAnchor")[0],a=this.getChildren("scrollButtons")&&this.getChildren("scrollButtons")[0],i=this.getChildren("scrollButtons")&&this.getChildren("scrollButtons")[0];r||((r=this.attachChild(s["default"],"scrollTrack")).configure({style:{track:t.track},color:e.color,displayFlat:e.displayFlat,isHorizontal:e.isHorizontal}),r.attachEventHandlers()),n||((n=this.attachChild(l["default"],"scrollAnchor")).configure({style:{scroller:t.scroller,grip:t.grip},drawStripes:e.drawStripes,color:e.color,displayFlat:e.displayFlat,isHorizontal:e.isHorizontal}),n.attachEventHandlers()),!a&&e.showButtons&&((a=this.attachChild(c["default"],"scrollStartButton")).configure({type:"start",color:e.color,style:{button:t.button,arrow:t.arrow}}),a.attachEventHandlers()),!i&&e.showButtons&&((i=this.attachChild(c["default"],"scrollEndButton")).configure({type:"end",color:e.color,style:{button:t.button,arrow:t.arrow}}),i.attachEventHandlers())},r.getName=function(){return"scrollbar"},r.getType=function(){return"scrollbar"},r.setConfiguaration=function(e){var t=this.config;t.color||(t.color="#"+this.getFromEnv("chart").getFromEnv("color-manager").getColor("altHGridColor")),(0,u.mergeConf)(e,t)},r.getLogicalSpace=function(){var t=this.config,r=t.conf,n={};return(0,u.mergeConf)(t,n),(0,u.mergeConf)(n,r),e.prototype.getLogicalSpace.call(this)},r.setDimension=function(t){e.prototype.setDimension.call(this,t);var r=this.getLinkedParent(),n=r.getPosition&&r.getPosition()||{},a=this.getChildren("scrollTrack")[0].config;a.transLateX=n.x||0,a.transLateY=n.y||0},r.draw=function(){var e=this.config,t={};e.conf.isHorizontal?delete t.width:delete t.height,(0,u.mergeConf)(t,e,!0),this.addGraphicalElement({el:"group",attr:{name:"scrollContainer"},component:this,container:{id:"scrollbarContainer",label:"scrollbar",isParent:!0},label:"scrollbarGroup",id:"scrollbarGroup"})},r.attachEventHandlers=function(e){var t=this.config.evt;return e&&(e.scroll&&"function"==typeof e.scroll&&(t.scroll=e.scroll),e.scrollStart&&"function"==typeof e.scrollStart&&(t.scrollStart=e.scrollStart),e.scrollEnd&&"function"==typeof e.scrollEnd&&(t.scrollEnd=e.scrollEnd)),this},t}(o["default"]);d.registerSymbol=void 0,d._setConfiguaration=i.stubFN;var h=d;t["default"]=h},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(199),o=r(184),s=r(297),l=function(e){function t(t){var r;return(r=e.call(this,t)||this)._listeners={},r}(0,a["default"])(t,e);var r=t.prototype;return r.getName=function(){return"button"},r.getType=function(){return"tool"},r.__setDefaultConfig=function(){var e=this.config;e.scale=1.15,e.width=o.touchEnabled?20:15,e.height=o.touchEnabled?20:15,e.radius=o.touchEnabled?4:2,e.spacing=2.5,e.marginTop=2.5,e.marginLeft=2.5,e.marginRight=2.5,e.marginBottom=2.5,e.fill="ffffff",e.fillAlpha="cccccc",e.symbolFill="ffffff",e.stroke="bbbbbb",e.symbolStroke="9a9a9a",e.strokeWidth=1,e.symbolStrokeWidth=1,e.symbolPadding=5,e.symbolHPadding=5,e.symbolVPadding=5,e.fillAlpha=100,e.stateStyle={},e.text=o.BLANKSTRING,e.marginTop=e.marginLeft=e.marginRight=e.marginBottom=2.5,e.labelFontSize=12},r.configureAttributes=function(e){void 0===e&&(e={});var t,r,n,a=this.config,i=function(e){for(var t in e)if(e.hasOwnProperty(t)){var r=e[t];(r===o.UNDEF||!/tooltext/.test(t)&&""===r)&&delete e[t]}return e}(e);Object.assign(a,i),a.symbolName=a.name,this.setState("visible",!0!==a.isHidden),a.marginTop=(0,o.pluckNumber)(i.marginTop,i.spacing,a.marginTop),a.marginLeft=(0,o.pluckNumber)(i.marginLeft,i.spacing,a.marginLeft),a.marginRight=(0,o.pluckNumber)(i.marginRight,i.spacing,a.marginRight),a.marginBottom=(0,o.pluckNumber)(i.marginBottom,i.spacing,a.marginBottom),a.fill=(0,o.pluck)(i.fill,a.fill),a.fillAlpha=(0,o.pluckNumber)(i.fillAlpha,a.fillAlpha),a.labelFill=(0,o.pluck)(i.labelFill,a.labelFill),a.symbolFill=(0,o.pluck)(i.symbolFill,a.symbolFill),a.hoverFill=(0,o.pluck)(i.hoverFill,a.hoverFill),a.stroke=(0,o.pluck)(i.stroke,a.stroke),a.symbolStroke=(0,o.pluck)(i.symbolStroke,a.symbolStroke),a.strokeWidth=(0,o.pluckNumber)(i.strokeWidth,a.strokeWidth),a.symbolStrokeWidth=(0,o.pluckNumber)(i.symbolStrokeWidth,a.symbolStrokeWidth),t=a.symbolPadding=(0,o.pluckNumber)(i.symbolPadding,a.symbolPadding),a.symbolHPadding=(0,o.pluckNumber)(i.symbolHPadding,t),a.symbolVPadding=(0,o.pluckNumber)(i.symbolVPadding,t),a.hAlign=(0,o.pluck)(i.hAlign,"center").toLowerCase(),a.vAlign=(0,o.pluck)(i.vAlign,"middle").toLowerCase(),a.containerInfo=i.containerInfo||{id:"group",label:"group",isParent:!0},r=i.x,n=i.y,void 0===r||void 0===n?a.spaceNotHardCoded=!0:(a.x=r,a.y=n,a.spaceNotHardCoded=!1)},r.setDimension=function(e){void 0===e&&(e={});var t=this.config;e.x!==o.UNDEF&&(t.x=e.x),e.y!==o.UNDEF&&(t.y=e.y),e.width!==o.UNDEF&&(t.width=t.width&&t.width>e.width?t.width:e.width),e.height!==o.UNDEF&&(t.height=t.height&&t.height>e.height?t.height:e.height)},r.getAlignment=function(){return{hAlign:this.config.hAlign,vAlign:this.config.vAlign}},r.getLogicalSpace=function(){var e=this.config,t=e.width,r=e.height,n=e.marginTop,a=e.marginLeft,i=e.marginRight,o=e.marginBottom,s=e.scale;return t*=s,r*=s,(this.config.skipGraphics||this.getState("removed"))&&(t=r=o=a=i=n=0),{width:t,height:r,marginTop:n,marginLeft:a,marginRight:i,marginBottom:o}},r.setCurrentState=function(e){this.config.state=e,this.asyncDraw()},r.getCurrentState=function(){return this.config.state},r.draw=function(){var e,t,r,n=this.config,a=n,i=n.text,l=this.getFromEnv("tool-config");n.skipGraphics||(t={width:n.width*n.scale,height:n.height*n.scale,r:n.radius*n.scale,verticalPadding:n.symbolVPadding*n.scale,horizontalPadding:n.symbolHPadding},e=(0,o.extend2)({},n.stateStyle[n.state]||s.preConfig[n.state]||{}),"activated"!==n.state&&"disabled"!==n.state&&"pressed"!==n.state||(e.config.normal.fill=(0,o.convertColor)((0,o.pluck)(l.fill,e.config.normal.fill)),e.config.normal["symbol-stroke"]=(0,o.convertColor)((0,o.pluck)(l.symbolStroke,e.config.normal["symbol-stroke"])),e.config.normal.symbolFill=(0,o.convertColor)((0,o.pluck)(l.symbolFill,e.config.normal.symbolFill)),e.config.normal.stroke=(0,o.convertColor)((0,o.pluck)(l.stroke,e.config.normal.stroke)),e.config.normal.symbolStroke=(0,o.convertColor)((0,o.pluck)(l.symbolStroke,e.config.normal.symbolStroke)),e.config.hover.fill=(0,o.convertColor)((0,o.pluck)(l.hoverFill,e.config.hover.fill))),(r=(0,o.extend2)({button:[n.x,n.y,i,n.symbolName,t,n.labelFontSize,n.labelFontFamily],"button-label":i,"button-padding":[n.symbolHPadding,n.symbolVPadding*n.scale],"button-repaint":[a.x,a.y,n.width*n.scale,n.height*n.scale,n.radius*n.scale],fill:(0,o.convertColor)(n.fill),labelFill:(0,o.convertColor)(n.labelFill),symbolFill:(0,o.convertColor)(n.symbolFill),hoverFill:n.hoverFill,stroke:(0,o.convertColor)(n.stroke),"symbol-stroke":(0,o.convertColor)(n.symbolStroke||n.stroke),"stroke-width":n.strokeWidth,"symbol-stroke-width":(0,o.pluckNumber)(n.symbolStrokeWidth,n.strokeWidth)},e)).fill=(0,o.convertColor)((0,o.pluck)(n.fill,e.fill)),!n.isHidden&&this.addGraphicalElement({el:"button",attr:r,css:n.btnTextStyle,component:this,container:n.containerInfo,label:"button",id:"button",tooltext:n.tooltext}))},r.hide=function(){this.config.isHidden=!0,this.setState("visible",!1),this.asyncDraw()},r.show=function(){this.config.isHidden=!1,this.setState("visible",!0),this.asyncDraw()},t}(i.SmartRenderer);t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t.getEventHandlersFor=function(e,t){var r=function(){a["default"].listen(t,"mousemove",(function(e){e.originalEvent.stopPropagation()}))};switch(e){case"click":return function(e){a["default"].listen(t,"click",(function(t){t.target&&t.target.parentNode&&e.call(t.target)})),r()};case"hover":return function(e,n){a["default"].listen(t,"pointerhover",(function(t){t.target&&t.target.parentNode&&("start"===t.state?e:n).call(t.target)})),r()}}},t.mergeConf=function(e,t,r){var n,a;for(n in e)if((a=e[n])!==o.UNDEF&&null!==a)if(r){if(t[n])continue;t[n]=a}else t[n]=a},t.bottomPath=function(e,t,r,n,a){var i=e,o=t,s=n/2,l=Math.round(a/4+1),c=o+l+3;return["M",i-s,c,"L",i+s,c]},t.RSymbolFns=t.defaultTextStyle=t.SymbolStore=t.preConfig=t.DEFAULT_TIMEOUT=t.CLICK=t.HOVER=void 0;var a=n(r(186)),i=r(192),o=r(184),s={activated:{config:{hover:{fill:"#ffffff",labelFill:"#ffffff",symbolFill:"#ffffff",hoverFill:"#ffffff","fill-symbol":"#ffffff","stroke-width":1,stroke:"#aaaaaa","symbol-stroke":"#aaaaaa",cursor:"pointer"},normal:{fill:"#ffffff",labelFill:"#ffffff",symbolFill:"#ffffff",hoverFill:"#ffffff","fill-symbol":"#ffffff",stroke:"#c2c2c2","symbol-stroke":"#c2c2c2","stroke-width":1,cursor:"pointer"},disable:{fill:"#ffffff",labelFill:"#ffffff",symbolFill:"#ffffff",hoverFill:"#ffffff","fill-symbol":"#ffffff","stroke-width":1,stroke:"#e3e3e3","symbol-stroke":"#e3e3e3","stroke-opacity":1,cursor:"pointer"},pressed:{fill:"#efefef",labelFill:"#efefef",symbolFill:"#efefef",hoverFill:"#efefef","fill-symbol":"#efefef","stroke-width":1,stroke:"#c2c2c2","symbol-stroke":"#c2c2c2",cursor:"pointer"}},"button-disabled":!1,fill:"#ffffff",labelFill:"#ffffff",symbolFill:"#ffffff",hoverFill:"#ffffff",stroke:"#c2c2c2","symbol-stroke":"#c2c2c2","stroke-opacity":1,cursor:"pointer"},disabled:{config:{hover:{fill:"#ffffff",labelFill:"#ffffff",symbolFill:"#ffffff",hoverFill:"#ffffff","fill-symbol":"#ffffff","stroke-width":1,stroke:"#e3e3e3","symbol-stroke":"#e3e3e3",cursor:"default"},normal:{fill:"#ffffff",labelFill:"#ffffff",symbolFill:"#ffffff",hoverFill:"#ffffff","fill-symbol":"#ffffff",stroke:"#e3e3e3","symbol-stroke":"#e3e3e3","stroke-width":1,cursor:"default"},disable:{fill:"#ffffff",labelFill:"#ffffff",symbolFill:"#ffffff",hoverFill:"#ffffff","fill-symbol":"#ffffff","stroke-width":1,stroke:"#e3e3e3","symbol-stroke":"#e3e3e3","stroke-opacity":1,cursor:"default"},pressed:{fill:"#ffffff",labelFill:"#ffffff",symbolFill:"#ffffff",hoverFill:"#ffffff","fill-symbol":"#ffffff","stroke-width":1,stroke:"#e3e3e3","symbol-stroke":"#e3e3e3",cursor:"default"}},fill:"#ffffff",labelFill:"#ffffff",symbolFill:"#ffffff",hoverFill:"#ffffff","button-disabled":!1,stroke:"#e3e3e3","symbol-stroke":"#e3e3e3","stroke-opacity":1,cursor:"default"},pressed:{config:{hover:{fill:"#dcdcdc",labelFill:"#dcdcdc",symbolFill:"#ffffff",hoverFill:"#dcdcdc","fill-symbol":"#ffffff","stroke-width":1,stroke:"#b7b7b7","symbol-stroke":"#b7b7b7",cursor:"pointer"},normal:{fill:"#dcdcdc",labelFill:"#dcdcdc",symbolFill:"#ffffff",hoverFill:"#dcdcdc","fill-symbol":"#ffffff","stroke-width":1,stroke:"#b7b7b7","symbol-stroke":"#b7b7b7",cursor:"pointer"},pressed:{fill:"#dcdcdc",labelFill:"#dcdcdc",symbolFill:"#ffffff",hoverFill:"#dcdcdc","fill-symbol":"#ffffff","stroke-width":1,stroke:"#b7b7b7","symbol-stroke":"#b7b7b7",cursor:"pointer"}},fill:"#dcdcdc",labelFill:"#dcdcdc",symbolFill:"#ffffff",hoverFill:"#dcdcdc","fill-symbol":"#ffffff","stroke-width":1,stroke:"#b7b7b7","symbol-stroke":"#b7b7b7",cursor:"pointer"}};t.preConfig=s,t.CLICK="click",t.HOVER="hover",t.DEFAULT_TIMEOUT=300;var l=(0,i.getDep)("redraphael","plugin"),c={CB_NOT_CHECKED:function(e,t,r){return["M",e-r,t-r]},CB_CHECKED:function(e,t,r){var n=r/4;return["M",e-3*n,t,"L",e-n,t+r,e+r,t-r]}},u=(l.addSymbol("Internal_CB",c.CB_NOT_CHECKED),{register:function(){var e,t,r,n;if(1===arguments.length){if(null===(r=arguments[0])&&r===o.UNDEF||"object"!=typeof r)return;n=r}else{if(!(arguments.length>1))return;if(e=arguments[0],t=arguments[1],"string"!=typeof e||"function"!=typeof t)return;(n={})[e]=t}for(e in n)t=n[e],{}.hasOwnProperty.call(n,e)&&l.addSymbol(e,t)}});t.defaultTextStyle={fill:"#555555",labelFill:"#555555",symbolFill:"#555555",hoverFill:"#555555",fontFamily:"Verdana,sans",fontSize:"12px",fontStyle:"normal",fontWeight:"normal",lineHeight:"14.399999999999999px"},t.SymbolStore=u,t.RSymbolFns=c},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(296)),o=r(192),s=r(196),l=r(184),c=(0,o.getDep)("redraphael","plugin"),u=Math.max,d=function(e){function t(){var t;return(t=e.call(this)||this)._evtHandlers={},t}(0,a["default"])(t,e);var r=t.prototype;return r.configureAttributes=function(e){void 0===e&&(e={}),this.config.style={track:Object.assign({},{fill:e.displayFlat&&e.color||[90*e.isHorizontal,c.tintshade(e.color,.15).rgba,e.color].join("-"),stroke:c.tintshade(e.color,-.75).rgba},e.style.track)}},r.attachEventHandlers=function(){var e,t,r,n,a,i=this,o=i.config,l=i.getLinkedParent(),c=l.config,u=function(){c.scrollPosition>1?(c.scrollPosition=1,t=!1):(c.scrollPosition<0||isNaN(c.scrollPosition))&&(c.scrollPosition=0,t=!1),n.asyncDraw(),"function"==typeof c.evt.scroll&&c.evt.scroll(c.scrollPosition)},d=function f(){c.scrollPosition+=.01,r>=c.scrollPosition&&t&&(u(),i.addJob("dragScrollAnchorRight",f,s.priorityList.draw))},h=function g(){c.scrollPosition-=.01,r<=c.scrollPosition&&t&&(u(),i.addJob("dragScrollAnchorLeft",g,s.priorityList.draw))};i.addEventListener("fc-mousedown",i._evtHandlers.mousedown||(i._evtHandlers.mousedown=function(u){n=l.getChildren("scrollAnchor")[0],a=n.config,t=!0,e=c.isHorizontal?u.originalEvent.layerX-(a._nodeDimensions.x+o.transLateX+a._nodeDimensions.width/2):u.originalEvent.layerY-(a._nodeDimensions.y+o.transLateY+a._nodeDimensions.height/2),(r=e/a.trackLength+c.scrollPosition)>=c.scrollPosition?i.addJob("dragScrollAnchorRight",d,s.priorityList.draw):i.addJob("dragScrollAnchorLeft",h,s.priorityList.draw)})),i.addEventListener("fc-mouseup",i._evtHandlers.mouseup||(i._evtHandlers.mouseup=function(){t=!1}))},r.draw=function(){var e=this.config,t=this.getLinkedParent().config,r=(0,l.crispBound)(t.x+.5,t.y+t.padding+.5,t.width-1,t.height-1,t.strokeWidth);this.addGraphicalElement({el:"rect",attr:{x:r.x,y:r.y,width:u(r.width,0),height:u(r.height,0),r:t.roundEdges?2:0,opacity:e.style.track.opacity},css:e.style.track,container:{id:"scrollbarGroup",label:"scrollbarGroup",isParent:!0},component:this,label:"scrollbarTrack",id:"scrollbarTrack"})},t}(i["default"]);t["default"]=d},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(296)),o=r(184),s=(0,r(192).getDep)("redraphael","plugin"),l=function(e){function t(){var t;return(t=e.call(this)||this)._evtHandlers={},t}(0,a["default"])(t,e);var r=t.prototype;return r.configureAttributes=function(e){void 0===e&&(e={});var t=this.config;t.drawStripes=(0,o.pluckNumber)(e.drawStripes,0),t._nodeDimensions={},t.style={scroller:Object.assign({},{fill:e.displayFlat&&s.tintshade(e.color,-.6).rgba||[270*e.isHorizontal,s.tintshade(e.color,.3).rgba+":40",s.tintshade(e.color,-.7).rgba].join("-"),stroke:s.tintshade(e.color,-.6).rgba},e.style.scroller),grip:Object.assign({},{stroke:"#5F5F5F","stroke-linecap":"round","stroke-width":2},e.style.grip)}},r.attachEventHandlers=function(){var e,t,r,n=this,a=this.getLinkedParent().config,i=a.isHorizontal;n.addEventListener("fc-dragmove",n._evtHandlers.dragmove||(n._evtHandlers.dragmove=function(i){(r=e+i.originalEvent.data[t]/this.config.trackLength)>=1?r=1:(r<=0||isNaN(r))&&(r=0),a.scrollPosition=r,n.asyncDraw(),"function"==typeof a.evt.scroll&&a.evt.scroll(a.scrollPosition)})),n.addEventListener("fc-dragstart",n._evtHandlers.dragstart||(n._evtHandlers.dragstart=function(){t=i?0:1,e=a.scrollPosition,"function"==typeof a.evt.scrollStart&&a.evt.scrollStart(a.scrollPosition)})),n.addEventListener("fc-dragend",n._evtHandlers.dragend||(n._evtHandlers.dragend=function(){"function"==typeof a.evt.scrollEnd&&a.evt.scrollEnd(a.scrollPosition)}))},r.draw=function(){var e,t,r=this.config,n=this.getLinkedParent().config,a=n.x+.5,i=n.y+n.padding+.5,s=n.width-1,l=n.height-1<1?1:n.height-1,c=n.restrictScrollAnchor?Math.max(n.scrollRatio,.01):n.scrollRatio,u=n.isHorizontal,d=(0,o.pluckNumber)(n.scrollPosition,n.startPercent,0),h=0,f=u?s*c:l*c;d>=1?d=1:(d<=0||isNaN(d))&&(d=0),n.showButtons&&(f-=2*(h=u?Math.min(l,.5*s):Math.min(s,.5*l))*c),r.trackLength=e=u?s-2*h-f:l-2*h-f,r.trackOffset=t=u?a+h+.5:i+h+.5,r._nodeDimensions={x:u?t+e*d:a,y:u?i:t+e*d,width:u?f-1<1?1:f-1:s<1?1:s,height:u?l<1?1:l:f-1<1?1:f-1},this.addGraphicalElement({el:"rect",attr:{x:r._nodeDimensions.x,y:r._nodeDimensions.y,width:r._nodeDimensions.width,height:r._nodeDimensions.height,r:n.roundEdges?2:0,opacity:r.style.scroller.opacity},css:r.style.scroller,container:{id:"scrollbarGroup",label:"scrollbarGroup",isParent:!0},component:this,label:"scrollbarAnchor",id:"scrollbarAnchor"}),r.drawStripes&&r._nodeDimensions.width>=8&&this.addGraphicalElement({el:"path",attr:{path:["M",r._nodeDimensions.x+r._nodeDimensions.width/2-3,r._nodeDimensions.y+.2*r._nodeDimensions.height,"v",.6*r._nodeDimensions.height,"m",3,-.6*r._nodeDimensions.height,"v",.6*r._nodeDimensions.height,"m",3,-.6*r._nodeDimensions.height,"v",.6*r._nodeDimensions.height],opacity:r.style.grip.opacity},css:r.style.grip,container:{id:"scrollbarGroup",label:"scrollbarGroup",isParent:!0},component:this,label:"scrollbarAnchorStripe",id:"scrollbarAnchorStripe"})},t}(i["default"]);t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(296)),o=r(192),s=r(184),l=r(196),c=(0,o.getDep)("redraphael","plugin"),u=function(e){function t(){var t;return(t=e.call(this)||this)._evtHandlers={},t}(0,a["default"])(t,e);var r=t.prototype;return r.configureAttributes=function(e){void 0===e&&(e={});var t=this.config;t.type=e.type,t.style={button:Object.assign({},{fill:s.TRACKER_FILL,stroke:"none"},e.style.button),arrow:Object.assign({},{fill:c.tintshade(e.color,-.4).rgba,stroke:"none"},e.style.arrow)}},r.attachEventHandlers=function(){var e,t,r=this,n=r.config,a=r.getLinkedParent(),i=a.config,o=a.getChildren("scrollAnchor")[0],s=function(){i.scrollPosition>=1?i.scrollPosition=1:(i.scrollPosition<=0||isNaN(i.scrollPosition))&&(i.scrollPosition=0),o.asyncDraw(),"function"==typeof i.evt.scroll&&i.evt.scroll(i.scrollPosition)},c=function u(){t=!0,"start"===n.type?i.scrollPosition-=.01:i.scrollPosition+=.01,s(),r.addJob("dragScrollAnchor",u,l.priorityList.draw)};r.addEventListener("fc-mousedown",r._evtHandlers.mousedown||(r._evtHandlers.mousedown=function(){e=setTimeout((function(){r.addJob("dragScrollAnchor",c,l.priorityList.draw)}),300)})),r.addEventListener("fc-mouseup",r._evtHandlers.mouseup||(r._evtHandlers.mouseup=function(){clearTimeout(e),r.removeJob("dragScrollAnchor"),t||("start"===n.type?i.scrollPosition-=.1:i.scrollPosition+=.1,s()),t=!1})),r.addEventListener("fc-mouseout",(function(){t&&r._evtHandlers.mouseup()}))},r.draw=function(){var e=this.config,t=this.getLinkedParent().config,r={id:"scrollbarGroup",label:"scrollbarGroup",isParent:!0},n=t.isHorizontal,a=t.x+.5,i=t.y+t.padding+.5,o=t.width-1<1?1:t.width-1,l=t.height-1<1?1:t.height-1,c=n?Math.min(l,.5*o):Math.min(o,.5*l),u=n?(0,s.polyPathToPath)([3,a+.5*c,i+.5*l,.25*c,180]):(0,s.polyPathToPath)([3,a+.5*o,i+.5*c,.25*c,90]),d=n?(0,s.polyPathToPath)([3,a+o-.5*c,i+.5*c,.25*c,0]):(0,s.polyPathToPath)([3,a+.5*o,i+l-.5*c,.25*c,-90]);this.addGraphicalElement({el:"rect",attr:{x:"start"===e.type?a:n?a+o-c:a,y:"start"===e.type?i:n?i:i+l-c,width:(e.type,n?c:o),height:(e.type,n?l:c),opacity:e.style.button.opacity},css:e.style.button,container:r,component:this,label:"scrollbar"+e.type+"ButtonRect",id:"scrollbar"+e.type+"ButtonRect"}),this.addGraphicalElement({el:"path",attr:{path:"start"===e.type?u:d,opacity:e.style.arrow.opacity},css:e.style.arrow,container:r,component:this,label:"scrollbar"+e.type+"ButtonPath",id:"scrollbar"+e.type+"ButtonPath"})},t}(i["default"]);t["default"]=u},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(296)),o=r(184),s=r(297),l=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.configureAttributes=function(t){void 0===t&&(t={}),e.prototype.configureAttributes.call(this,t);var r=this.config;r.checked=!!t.isChecked,r.interPadding=3,r.symbolName="Internal_CB",r.text=(0,o.pluck)(t.text,""),r.textStyle=s.defaultTextStyle},r.check=function(){this.config.checked=!0,this.asyncDraw()},r.uncheck=function(){this.config.checked=!1,this.asyncDraw()},r.toggle=function(){this.config.checked?this.uncheck():this.check()},r.getContainer=function(){return this.getFromEnv("chart").getChildContainer("buttonGroup")},r.draw=function(){this.config.checked?s.SymbolStore.register("Internal_CB",s.RSymbolFns.CB_CHECKED):s.SymbolStore.register("Internal_CB",s.RSymbolFns.CB_NOT_CHECKED),e.prototype.draw.call(this)},t}(i["default"]);t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(296)),o=r(184),s=n(r(303)),l=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.configureAttributes=function(t){void 0===t&&(t={}),e.prototype.configureAttributes.call(this,t);var r=this.config,n=this.getFromEnv("dataSource").chart;r.baseFontFamily=(0,o.pluck)(t.baseFontFamily,n.basefont,"Verdana,sans"),r.baseFontSize=(0,o.pluckNumber)(t.baseFontSize,n.basefontsize,10),r.baseFontColor=(0,o.pluck)(t.baseFontColor,n.basefontcolor,"595959"),r.skipGraphics=!0,this.createListContainer()},r.createListContainer=function(){this.attachChild(s["default"],"listContainer","listContainer").configure()},r.appendInMenu=function(e){void 0===e&&(e=[]);var t,r,n=this.getChild("listContainer");for(r=e.length,t=0;t<r;t++)n.addItem(e[t]);this.config.skipGraphics=!1},t}(i["default"]);t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(199),o=r(184),s=n(r(304)),l=r(297),c=r(192);function u(e,t){var r,n,a,i;if(void 0===t&&(t={}),(n=e.attachChild(s["default"],"item",t.id)).configure(t),t.menu instanceof Array&&(i=t.menu.length))for(r=n.attachChild(d,"subContainer","subContainer"),e.config.hasSubMenu=!0,r.configure(),a=0;a<i;a++)r.addItem(t.menu[a])}(0,c.addDep)({name:"manuItemContainerAnimation",type:"animationRule",extension:{"*.menuItemContainer.menuItemContainer":null}});var d=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.configureAttributes=function(){var e=this.config;this.setStyle(),e.counter=0,e.hasSubMenu=!1,e._defaultStyle={position:"absolute","z-index":50,top:0+o.PXSTRING,right:"auto",left:"auto",overflow:"hidden",background:"#ffffff",border:"1px solid #646464","box-shadow":"#999999 2px 2px 5px",padding:"5px 3px",display:"none"}},r.setStyle=function(e){void 0===e&&(e={});var t=this.config;t.hoverOverStyle=e.hoverOverStyle||{background:"#333333",color:"#FFFFFF",cursor:o.POINTER},t.hoverOutStyle=e.hoverOutStyle||{background:"#FFFFFF",color:"#000000"}},r.show=function(){var e=this.getLinkedParent().config,t=(0,o.pluckNumber)(e.scale,1.5),r=e.x,n=e.y,a=e.width*t,i=e.height*t,s=+this.getFromEnv("chart").getFromEnv("chartWidth"),l=this.getGraphicalElement("menu","menu").element,c=l.style;clearTimeout(this.config.hideTimer),c.display="block",l.offsetWidth+r>s?(c.left="auto",c.right=s-r-a+o.PXSTRING):(c.left=r+o.PXSTRING,c.right="auto"),c.top=n+i+5+o.PXSTRING,c.bottom="auto",c.display="block"},r.hide=function(e){void 0===e&&(e={});var t,r=this.getGraphicalElement("menu","menu").element;e.instant?r.style.display="none":(t=(0,o.pluckNumber)(e.timeout,l.DEFAULT_TIMEOUT),this.config.hideTimer=setTimeout((function(){r.style.display="none"}),t))},r.addItem=function(e){void 0===e&&(e={}),u(this,e)},r.draw=function(){this.addGraphicalElement({el:"html",attr:{type:"div"},css:this.config._defaultStyle,component:this,label:"menu",id:"menu"}),this.addEventListener("fc-mouseover",this.show),this.addEventListener("fc-mouseout",this.hide)},r.getName=function(){return"menuItemContainer"},r.getType=function(){return"menuItemContainer"},t}(i.SmartRenderer),h=d;t["default"]=h},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(184),o=r(297),s=r(199);(0,r(192).addDep)({name:"manuItemAnimation",type:"animationRule",extension:{"*.menuItem.menuItem":null}});var l=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.configureAttributes=function(e){void 0===e&&(e={});var t=this.config,r=this.getLinkedParent().getLinkedParent().config;t.name=e.name,t.action=e.action&&e.action.toLowerCase()||o.CLICK,t.eventMap={},t.style={padding:"3px 8px",fontFamily:r.baseFontFamily,fontSize:r.baseFontSize+i.PXSTRING,color:"#000000",position:"static",display:"inline",float:"left"},t.pointerStyle={padding:"0px 4px 3px",fontFamily:r.baseFontFamily,fontSize:r.baseFontSize+3+i.PXSTRING,color:"#000000",position:"static",float:"left"},t.itemType=e.menu instanceof Array&&e.menu.length?"subMenu":"item","item"===t.itemType?t.handler=e.handler||i.stubFN:t.handler=i.stubFN,t.hoverOverStyle=e.hoverOverStyle||{},t.hoverOutStyle=e.hoverOutStyle||{}},r.applyStyle=function(e){void 0===e&&(e="mouseover");var t=this.getLinkedParent().config,r=this.getGraphicalElement("menuItem","menuItem"),n=this.getGraphicalElement("container","container"),a=this.getGraphicalElement("menuPointer","menuPointer");switch(e){case"mouseover":r.css(t.hoverOverStyle),n.css(t.hoverOverStyle),a&&a.css(t.hoverOverStyle);break;case"mouseout":r.css(t.hoverOutStyle),n.css(t.hoverOutStyle),a&&a.css(t.hoverOutStyle)}},r.draw=function(){var e=this,t=e.config,r=e.getLinkedParent();e.addGraphicalElement({el:"html",attr:{type:"div"},css:{display:"block",position:"static",overflow:"hidden",height:"100%",width:"100%"},container:{id:"menu",label:"menu",isParent:!0},component:e,label:"container",id:"container"}),r.config.hasSubMenu&&e.addGraphicalElement({el:"html",attr:{type:"div",text:"◂"},css:t.pointerStyle,container:{id:"container",label:"container"},component:e,label:"menuPointer",id:"menuPointer"},!0),e.addGraphicalElement({el:"html",attr:{type:"span",text:t.name},css:t.style,container:{id:"container",label:"container"},component:e,label:"menuItem",id:"menuItem"},!0),e._mouseOverEvent||(e._mouseOverEvent=function(){e.applyStyle("mouseover")}),e._mouseOutEvent||(e._mouseOutEvent=function(){e.applyStyle("mouseout")}),e._clickEvent||(e._clickEvent=function(){"item"===e.config.itemType&&(r.hide({instant:!0}),t.handler())}),e.addEventListener("fc-mouseover",e._mouseOverEvent),e.addEventListener("fc-mouseout",e._mouseOutEvent),e.addEventListener("fc-click",e._clickEvent)},r.getName=function(){return"menuItem"},r.getType=function(){return"menuItem"},t}(s.SmartRenderer);t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(296)),o=r(184),s={left:"start",right:"end",center:"middle"},l={top:o.POSITION_TOP,middle:o.POSITION_MIDDLE,bottom:o.POSITION_BOTTOM},c={0:"0",1:"270",right:"90",cw:"90",left:"270",ccw:"270"},u=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;t.font="Verdana, sans",t.rotateText=0},r.configureAttributes=function(t){void 0===t&&(t={}),e.prototype.configureAttributes.call(this,t);var r=this.config;r.font=(0,o.pluck)(t.font,r.font),r.fontSize=(0,o.pluckFontSize)(t["font-size"],t.fontSize,10)*r.scale,r.fontStyle=(0,o.pluck)(t["font-style"],t.fontStyle,"normal"),r.fontWeight=(0,o.pluck)(t["font-weight"],t.fontWeight,"normal"),r.rotateText=(0,o.pluckNumber)(t.rotateText,r.rotateText),r.rotateAngle=parseFloat(c[(0,o.pluck)(t.rotateAngle&&t.rotateAngle.toLowerCase(),"0")])},r.getTextBound=function(){var e=this.config,t=[];return e.showTextBound&&(t=[(0,o.convertColor)(e.fill),e.borderColor,e.borderThickness,2,e.radius]),t},r.getLogicalSpace=function(){var e,t=this.config,r=(t.width,t.height,t.marginTop),n=t.marginLeft,a=t.marginRight,i=t.marginBottom;return{width:(e=this.getFromEnv("smartLabel").getOriSize(this.config.text,!1)).width,height:e.height,marginTop:r,marginLeft:n,marginRight:a,marginBottom:i}},r.draw=function(){var e,t=this.config;t.text&&(e={x:t.x,y:t.y,text:t.text,fill:(0,o.convertColor)(t.labelFill),"text-bound":this.getTextBound(),"font-style":t.fontStyle,"font-weight":t.fontWeight,"font-family":t.font,"font-size":t.fontSize,"text-anchor":s[t.hAlign],"vertical-align":l[t.vAlign],transform:t.rotateText?(0,o.getSuggestiveRotation)(t.rotateAngle,t.x,t.y):"t0,0"},!t.isHidden&&this.addGraphicalElement({el:"text",attr:e,component:this,container:{id:"group",label:"group",isParent:!0},label:"text",id:"label"}))},t}(i["default"]);t["default"]=u},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(296)),o=r(184),s=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this),this.config.isVertical=1},r.configureAttributes=function(t){void 0===t&&(t={}),e.prototype.configureAttributes.call(this,t);var r=this.config;r.isVertical=(0,o.pluckNumber)(t.isVertical,r.isVertical)},r.draw=function(){var e=this.config,t=e.x,r=e.y,n=e.width,a=e.height,i={path:e.isVertical?["M",t+n/2,r,"v",a]:["M",t,r,"h",n],stroke:e.stroke,"stroke-width":e.strokeWidth,"stroke-linecap":"round"};!e.isHidden&&this.addGraphicalElement({el:"path",attr:i,component:this,container:{id:"group",label:"group",isParent:!0},css:e.css,label:"path",id:"path"})},t}(i["default"]);t["default"]=s},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(199),o=r(184),s=function(e){e.manageSpace&&e.manageSpace()},l=function(e){function t(t){var r;return(r=e.call(this,t)||this).props={},r}(0,a["default"])(t,e);var r=t.prototype;return r.configureAttributes=function(e){void 0===e&&(e={});var t=this.config,r=this.getFromEnv("chartConfig");this.__setDefaultConfig(),this.props.width=(0,o.pluckNumber)(e.width,0),this.props.height=(0,o.pluckNumber)(e.height,0),t.orientation=(0,o.pluck)(e.toolbarorientation,t.orientation),t.hPadding=(0,o.pluck)(e.toolbarhpadding,t.hPadding),t.vPadding=(0,o.pluck)(e.toolbarvpadding,t.vPadding),t.backgroundcolor=(0,o.pluck)(e.toolbarbackgroundcolor,t.backgroundcolor),t.backgroundalpha=(0,o.pluck)(e.toolbarbackgroundalpha,t.backgroundalpha),t.bordercolor=(0,o.pluck)(e.toolbarbordercolor,t.bordercolor),t.borderalpha=(0,o.pluck)(e.toolbarborderalpha,t.borderalpha),t.borderthickness=(0,o.pluck)(e.toolbarborderthickness,t.borderthickness),t.hDirection=(0,o.pluckNumber)(e.toolbarhdirection,"r"===r.toolbarHAlign?-1:1),t.vDirection=(0,o.pluckNumber)(e.toolbarvdirection,"b"===r.toolbarBAlign?-1:1),t.hAlign=(0,o.pluck)(e.hAlign,"center").toLowerCase(),t.vAlign=(0,o.pluck)(e.vAlign,"middle").toLowerCase(),t.marginTop=(0,o.pluckNumber)(e.marginTop,e.spacing,t.marginTop),t.marginLeft=(0,o.pluckNumber)(e.marginLeft,e.spacing,t.marginLeft),t.marginRight=(0,o.pluckNumber)(e.marginRight,e.spacing,t.marginRight),t.marginBottom=(0,o.pluckNumber)(e.marginBottom,e.spacing,t.marginBottom)},r.__setDefaultConfig=function(){var e=this.config;e.orientation="horizontal",e.hPadding=0,e.vPadding=0,e.backgroundcolor="#eeeeee",e.backgroundalpha=0,e.bordercolor="#eeeeee",e.borderalpha=0,e.borderthickness=1,e.spacing=2.5,e.marginTop=2.5,e.marginLeft=2.5,e.marginRight=2.5,e.marginBottom=2.5},r.getLogicalSpace=function(){var e=this.config,t=this.props,r=0,n=0;return this.getChildren("tool")&&this.getChildren("tool").length&&(this.getChildren("tool").forEach((function(t){if(!t.getState("removed")){var a=t.getLogicalSpace(),i=a.width,s=a.height,l=a.marginTop,c=a.marginLeft,u=a.marginRight,d=a.marginBottom;"horizontal"===e.orientation?(i!==o.UNDEF&&(r+=i+(u||0)+(c||0)),n<(s=s+(l||0)+(d||0))&&(n=s)):(s!==o.UNDEF&&(n+=s+(l||0)+(d||0)),r<(i=i+(u||0)+(c||0))&&(r=i))}})),r+=2*e.hPadding,n+=2*e.vPadding,t.width=t.width>r?t.width:r,t.height=t.height>n?t.height:n),{width:r,height:n,marginTop:e.marginTop,marginLeft:e.marginLeft,marginRight:e.marginLeft,marginBottom:e.marginLeft}},r.manageSpace=function(){var e,t=this.getChildren("tool")||[];for(var r in e="horizontal"===this.config.orientation?this._placeToolHorizontally():this._placeToolVertically())e.hasOwnProperty(r)&&this.getChild(r).setDimension(e[r]);t.forEach(s)},r._placeToolHorizontally=function(){var e,t,r,n=this,a=n.config,i=n.props,o=a.hPadding,s=i.width-a.hPadding,l={},c={left:[],right:[],center:[]},u={left:0,right:0,center:0};return n.getChildren("tool")&&n.getChildren("tool").length&&((a.hDirection>0?n.getChildren("tool"):n.getChildren("tool").slice(0).reverse()).forEach((function(e){if(!e.getState("removed")){var t=e.getAlignment().hAlign,r=e.getLogicalSpace(),o=r.width,s=r.height,d=r.marginTop,h=r.marginLeft,f=r.marginRight,g=r.marginBottom,p=e.getId();u[t]+=o+(h||0)+(f||0),c[t].push(p),l[p]={},l[p].y=n.props.y+d+a.vPadding+(i.height-2*a.vPadding-(s+g+d))/2}})),c.left.forEach((function(e){var t=n.getChild(e).getLogicalSpace(),r=t.width,i=t.marginLeft,s=t.marginRight;o+=i||0,l[e].x=n.props.x+a.hPadding+o,o+=r+(s||0)})),c.right.reverse().forEach((function(e){var t=n.getChild(e).getLogicalSpace(),r=t.width,i=t.marginLeft,o=t.marginRight;s-=r+(o||0),l[e].x=n.props.x+a.hPadding+s,s-=i||0})),e=[u.left+a.hPadding,i.width-(u.right+a.hPadding)],t=Math.abs(e[0]-e[1]),r=e[0]+t/2-u.center/2,c.center.forEach((function(e){var t=n.getChild(e).getLogicalSpace(),i=t.width,o=t.marginLeft,s=t.marginRight;r+=o||0,l[e].x=n.props.x+a.hPadding+r,r+=i+s||0}))),l},r.getAlignment=function(){return{hAlign:this.config.hAlign,vAlign:this.config.vAlign}},r._placeToolVertically=function(){var e,t,r,n=this,a=n.config,i=n.props,o=a.vPadding,s=i.height-a.vPadding,l={top:[],middle:[],bottom:[]},c={top:0,middle:0,bottom:0},u={};return n.getChildren("tool")&&n.getChildren("tool").length&&((a.vDirection>0?n.getChildren("tool"):n.getChildren("tool").reverse()).forEach((function(e){if(!e.getState("removed")){var t=e.getAlignment().vAlign,r=e.getLogicalSpace(),o=r.width,s=r.height,d=r.marginTop,h=r.marginLeft,f=r.marginRight,g=r.marginBottom,p=e.getId();c[t]+=s+(d||0)+(g||0),l[t].push(e.getId()),u[p]={},u[p].x=n.props.x+h+a.hPadding+h+(i.width-2*a.hPadding-(o+h+f))/2}})),l.top.forEach((function(e){var t=n.getChild(e).getLogicalSpace(),r=t.height,i=t.marginTop,s=t.marginBottom;o+=i||0,u[e].y=n.props.y+a.vPadding+o,o+=r+(s||0)})),l.bottom.reverse().forEach((function(e){var t=n.getChild(e).getLogicalSpace(),r=t.height,i=t.marginTop,o=t.marginBottom;s-=r+(o||0),u[e].y=n.props.y+a.vPadding+s,s-=i||0})),e=[c.top+a.vPadding,i.height-(c.bottom+a.vPadding)],t=Math.abs(e[0]-e[1]),r=e[0]+t/2-c.middle/2,l.middle.forEach((function(e){var t=n.getChild(e).getLogicalSpace(),i=t.height,o=t.marginTop,s=t.marginBottom;r+=o||0,u[e].y=n.props.y+a.vPadding+r,r+=i+s||0}))),u},r.setDimension=function(e){void 0===e&&(e={}),e.x!==o.UNDEF&&(this.props.x=e.x),e.y!==o.UNDEF&&(this.props.y=e.y),e.width!==o.UNDEF&&(this.props.width=e.width),e.height!==o.UNDEF&&(this.props.height=e.height)},r.getDimension=function(){return this.props},r.draw=function(){var e=this.config;this.addGraphicalElement({id:"group",el:"group",attr:{name:"toolbar"},container:{id:"toolbar-master",isParent:!0},component:this,label:"group"}),this.addGraphicalElement({id:"carpet",el:"rect",attr:Object.assign({fill:(0,o.toRaphaelColor)({color:e.backgroundcolor,alpha:e.backgroundalpha}),stroke:(0,o.toRaphaelColor)({color:e.bordercolor,alpha:e.borderalpha}),"stroke-width":e.borderthickness},this.getDimension()),container:{label:"group",id:"group"},component:this,label:"carpet"})},r.getName=function(){return"toolbar"},r.getType=function(){return"Toolbar"},t}(i.SmartRenderer);t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(201)),i=n(r(198)),o=n(r(292)),s=function(e){function t(){var t;t=e.call(this)||this;var r=(0,a["default"])(t);return r._toggle=function(){r.isEnabled()&&r.zoomOut()},t}(0,i["default"])(t,e);var r=t.prototype;return r.getName=function(){return"zoomResetButton"},r.configure=function(){e.prototype.configure.call(this);var t=this.getLinkedParent();this.configureButton(),this.disable(),t.registerDependancy([{derivedInteraction:["zoomin","zoomout"],callback:this.dependancyFn,component:this}])},r.configureButton=function(){!this.config.skipGraphics&&this.setLinkedItem("button",this.createButton({icon:"resetIcon",handlers:{click:this._toggle},tooltext:this.config.tooltext,state:"disabled"})),this.disable()},r.enable=function(){this.config.state="activated",e.prototype.enable.call(this)},r.zoomOut=function(){var e,t,r,n,a,i=this,o=i.config.hookFn,s={};i.getFromEnv("axesObArr").forEach((function(l){(a=l.stack[0])&&(i.getFromEnv("chart").getFromEnv("animationManager").setAnimationState("zoomOut"),o&&o(a.minValue,a.maxValue),l.isY?(r=a.minValue,n=a.maxValue):(e=a.minValue,t=a.maxValue,s=i.constructor._getZoomInfo(e,t,l.axis)),l.axis.setVisibleConfig(a.minValue,a.maxValue),l.stack.length=0)})),i._raiseZoomEvents("zoomout","zoomreset",Object.assign(s,{level:1,startX:e,endX:t,startY:r,endY:n})),i.disable()},r.dependancyFn=function(e){"zoomin"===e.type?this.enable():"zoomout"===e.type&&(this._checkStackLen()||this.disable())},t}(o["default"]);t["default"]=s},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(201)),i=n(r(198)),o=function(e){function t(){var t;t=e.call(this)||this;var r=(0,a["default"])(t);return r._toggle=function(){r.isEnabled()&&r.zoomOut()},t}(0,i["default"])(t,e);var r=t.prototype;return r.getName=function(){return"zoomOutButton"},r.configureButton=function(){!this.config.skipGraphics&&this.setLinkedItem("button",this.createButton({icon:"zoomOutIcon",handlers:{click:this._toggle},tooltext:this.config.tooltext,state:"activated"}))},r.zoomOut=function(){var e,t,r,n,a,i,o=this,s=o.config.hookFn,l={},c=0;o.getFromEnv("axesObArr").forEach((function(u){e=u.stack.pop(),t=u.stack.length,c+=t,e&&(u.isY?(a=e.minValue,i=e.maxValue):(r=e.minValue,n=e.maxValue,l=o.constructor._getZoomInfo(r,n,u.axis)),s&&s(e.minValue,e.maxValue),u.axis.setVisibleConfig(e.minValue,e.maxValue))})),o._raiseZoomEvents("zoomout","zoomedout",Object.assign(l,{level:t,startX:r,endX:n,startY:a,endY:i})),c||this.disable()},t}(n(r(308))["default"]);t["default"]=o},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(201)),i=n(r(198)),o=function(e){function t(){var t;t=e.call(this)||this;var r=(0,a["default"])(t);return r._toggle=function(){r.isEnabled()&&r.zoom()},t}(0,i["default"])(t,e);var r=t.prototype;return r.getName=function(){return"zoomInButton"},r.configure=function(){e.prototype.configure.call(this);var t=this.config;t.stepZoom=t.stepZoom||5.33,!t.skipGraphics&&this.setLinkedItem("button",this.createButton({icon:"zoomInIcon",handlers:{click:this._toggle},tooltext:this.config.tooltext,state:"activated"})),this.enable()},r.zoom=function(){var e,t,r,n,a,i,o,s,l,c=this,u={},d=c.config,h=d.hookFn,f=!1,g=Math.pow(10,d.zoomDecimalLimit)||1;c.getFromEnv("animationManager").setAnimationState("zoom"),c.getFromEnv("axesObArr").forEach((function(p){r=p.axis,e=r.getVisibleConfig(),(t=Math.round((e.maxValue-e.minValue)/d.stepZoom*g)/g)>Number.EPSILON&&(p.stack.push(e),p.isY?(i=e.minValue+t,o=e.maxValue-t):(n=e.minValue+t,a=e.maxValue-t,u=c.constructor._getZoomInfo(n,a,r)),s=p.stack.length+1,h&&h(e.minValue,e.maxValue),l=r.setVisibleConfig(e.minValue+t,e.maxValue-t),f=f||l)})),f&&c._raiseZoomEvents("zoomin","zoomedin",Object.assign(u,{level:s,startX:n,endX:a,startY:i,endY:o}))},t}(n(r(292))["default"]);t["default"]=o},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(201)),i=n(r(198)),o=n(r(292)),s=r(184),l=function(e){function t(){var t;t=e.call(this)||this;var r=(0,a["default"])(t);return r.controlArr=[{nativeInteraction:["fc-dbclick"],callback:r.zoom.bind(r),component:r}],t}(0,i["default"])(t,e);var r=t.prototype;return r.getName=function(){return"dbTapZoom"},r.configure=function(){e.prototype.configure.call(this),this.enable()},r.setControl=function(){var e=this.controlArr,t=this.getLinkedParent();t.releaseControl(e),this.isEnabled()&&t.getControl(e)},r.zoom=function(e){var t,r,n,a,i,o,l,c,u,d,h=this,f=h.getFromEnv("chart"),g=(0,s.getMouseCoordinate)(f.getLinkedItem("container"),e,f),p=h.config,m=p.hookFn,v={},b=!1,y=Math.pow(10,p.zoomDecimalLimit)||1;f.getFromEnv("animationManager").setAnimationState("zoom"),h.getFromEnv("axesObArr").forEach((function(e){t=e.axis,r=t.getValue(e.isY?g.chartY:g.chartX),a=t.getVisibleConfig(),n=function(e,t,r,n){var a=t-e.minValue,i=e.maxValue-t;return{min:Math.round((t-a/r*(r-1))*n)/n,max:Math.round((t+i/r*(r-1))*n)/n}}(a,r,p.stepzoom,y),e.isY?(c=n.min,u=n.max):(o=n.min,l=n.max,v=h.constructor._getZoomInfo(o,l,t)),t.getZoom()<=y&&(m&&"function"==typeof p.hookFn&&m(n.min,n.max),i=t.setVisibleConfig(n.min,n.max),b=b||i,e.stack.push(a),d=e.stack.length+1)})),b&&h._raiseZoomEvents("zoomin","zoomedin",Object.assign(v,{level:d,startX:o,endX:l,startY:c,endY:u},e.originalEvent))},t}(o["default"]);t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(201)),i=n(r(198)),o=n(r(292)),s=r(184),l=r(196),c=r(192),u=Math,d=u.min,h=u.max,f=u.abs,g="rgba(255,0,0,"+(s.isIE?.002:1e-6)+")",p=function(e){function t(){var t;t=e.call(this)||this;var r=(0,a["default"])(t);return r.controlArr=[{nativeInteraction:["fc-dragstart"],callback:r.dragstart.bind(r),component:r},{nativeInteraction:["fc-dragmove"],callback:r.dragmove.bind(r),component:r},{nativeInteraction:["fc-dragend"],callback:r.dragend.bind(r),component:r}],r.toggle=r.toggle.bind(r),t}(0,i["default"])(t,e);var r=t.prototype;return r.getName=function(){return"dragPin"},r.configure=function(){e.prototype.configure.call(this);var t=this.getFromEnv("chartConfig"),r=this.getFromEnv("dataSource").chart,n=this.config;n.attr=n.attr||{stroke:"#3399ff",fill:"#b9d5f1","stroke-width":0},n.pinAttr=n.pinAttr||{"stroke-width":0,stroke:"none",fill:"#b9d5f1","shape-rendering":"crisp"},n.borderWidth=t.borderWidth||(t.borderWidth=(0,s.pluckNumber)(r.showborder,1)?(0,s.pluckNumber)(r.borderthickness,1):0),!this.config.skipGraphics&&this.setLinkedItem("button",this.createButton({icon:"pinModeIcon",tooltext:(0,s.pluckNumber)(r.showtoolbarbuttontooltext,1)?(0,s.pluck)(this.config.tooltext,"Pin mode"):"",handlers:{click:this.toggle},state:"activated"})),this.getLinkedParent().registerDependancy([{derivedInteraction:["zoomin","zoomout"],callback:this.dependancyFn,component:this}]),this.disable(void 0,!1)},r.enable=function(e,t){var r=this.config;!0!==r.enabled&&(r.enabled=!0,r.state="pressed",this.fireEvent("pinenabled"),this.setControl(),!t&&this.getFromEnv("chart").fireChartInstanceEvent("zoommodechanged",{pinModeActive:!0},e&&e.originalEvent))},r.dependancyFn=function(e){"zoomin"!==e.type&&"zoomout"!==e.type||this.disable(e)},r.draw=function(){var e,t=this,r=t.config;t.createPin(),t.config.pinElemVisible&&t.addJob("resizePinElem",(function(){e=t.getFromEnv("xAxis")[0],t.pinRangePixels(e.getPixel(r.boxStartValue),e.getPixel(r.boxEndValue))}),l.priorityList.postRender)},r._setConfig=function(){var e=this.getFromEnv("chart"),t=this.getFromEnv("chartConfig"),r=this.config,n=Object.assign({},r.attr||{}),a=n["stroke-width"]=(0,s.pluckNumber)(n.strokeWidth,n["stroke-width"],1),i=(0,s.getPosition)(e.getFromEnv("chart-container"),e);r.zoomX="horizontal"===r.orientation||"both"===r.orientation,r.zoomY="vertical"===r.orientation||"both"===r.orientation,r.canvasY=t.canvasTop,r.canvasX=t.canvasLeft,r.canvasW=t.canvasWidth,r.canvasH=t.canvasHeight,r.canvasX2=t.canvasLeft+t.canvasWidth,r.canvasY2=t.canvasTop+t.canvasHeight,r.strokeWidth=a,r.chartPosLeft=i.left,r.chartPosTop=i.top},r.disable=function(e,t){var r=this.config,n=this.getContainer("pingroup"),a=this.getGraphicalElement("pintracker");!1!==r.enabled&&(r.enabled=!1,r.state="activated",n&&n.hide(),a&&a.hide(),this.fireEvent("pindisabled"),!t&&this.getFromEnv("chart").fireChartInstanceEvent("zoommodechanged",{pinModeActive:!1},e&&e.originalEvent),this.setControl(),r.pinElemVisible=!1)},r.setControl=function(){var e=this.getLinkedParent(),t=this.controlArr,r=this.getLinkedItem("button");e.releaseControl(t),this.isEnabled()&&e.getControl(t),r&&r.setCurrentState(this.config.state)},r.createPin=function(){var e,t,r,n,a,i=this,o=i.getFromEnv("chart"),l=i.getFromEnv("chartConfig"),u=i.getFromEnv("animationManager"),d=l.canvasTop,h=l.canvasBottom,f=l.canvasHeight,p=l.canvasLeft,m=i.config.borderWidth,v=l["clip-pinrect"],b=i.getContainer("pingroup"),y=i.getContainer("pinElemGroup"),x=i.getGraphicalElement("pinrect"),C=i.getGraphicalElement("pintracker");n=l._visw=l.canvasWidth,a=l._visx=l.canvasLeft,e=(0,c.getDep)("redraphael","plugin").crispBound(0,d-h,0,f,m),v=l["clip-pinrect"]=[e.x,d,e.width,e.height],b||i.addContainer("pingroup",b=u.setAnimation({el:"group",finalAttr:{name:"zoompin"},component:i,label:"group"}).insertBefore(o.getChildContainer("plotGroup")).hide()),b.transform(l._pingrouptransform=["T",a,h]),y||i.addContainer("pinElemGroup",y=u.setAnimation({el:"group",attr:{name:"zoompinelements"},component:i,container:b,label:"group"})),i.config.pinAttr.x=0,i.config.pinAttr.y=d-h,i.config.pinAttr.width=n,i.config.pinAttr.height=f,t=u.setAnimation({el:x||"rect",attr:i.config.pinAttr,container:b,component:i}),x||i.addGraphicalElement("pinrect",t),r=u.setAnimation({el:C||"rect",attr:{transform:b.transform(),x:0,y:d-h,width:0,height:f,stroke:"none",fill:g,cursor:s.hasSVG?"ew-resize":"e-resize"},container:o.getChildContainer("trackerGroup"),component:i}).hide(),C||i.addGraphicalElement("pintracker",r),r.undrag(),r.drag((function(e){var t=e.data[0],n=a+t+this.__pindragdelta,o=this.__pinboundleft,l=this.__pinboundright,c=this.data("cliprect").slice(0);n<o?n=o:n>l&&(n=l),b.transform(["T",n,h]),r.transform(b.transform()),s.hasSVG||(c[0]=c[0]+n-a-this.__pindragdelta,u.setAnimation({el:b,attr:{"clip-rect":c},component:i})),this.__pindragoffset=t}),(function(){this.__pinboundleft=0-v[0]+a+p,this.__pinboundright=this.__pinboundleft+n-v[2],this.data("cliprect",b.attr("clip-rect")),b._.clipispath=!0}),(function(){b._.clipispath=!1,this.__pindragdelta+=this.__pindragoffset,delete this.__pindragoffset,delete this.__pinboundleft,delete this.__pinboundright}))},r.pinRangePixels=function(e,t,r){var n,a,i,o,s,l=this.getFromEnv("chart"),c=l.config,u=c.canvasLeft,d=this.getFromEnv("xAxis")[0],h=d.getLimit(),f=h.max,g=h.min,p=this.getContainer("pingroup"),m=c["clip-pinrect"],v=this.getFromEnv("animationManager"),b=c._pingrouptransform,y=[],x=t-e,C=this.getGraphicalElement("pintracker");if(l.iterateComponents((function(e){e.getType&&"dataset"===e.getType()&&y.push(e)})),p&&this.getGraphicalElement("pinrect")){for(e===t&&(p.hide(),C.hide()),s=y.length;s--;)y[s].fireEvent("createpinelements",{group:this.getContainer("pinElemGroup")});m[0]=e+u,m[2]=x,v.setAnimation({el:p,attr:{"clip-rect":m,transform:b},component:this}).show(),C.__pindragdelta=0,C.show(),v.setAnimation({el:C,attr:{transform:b,x:e,width:x},component:this}),this.config.pinElemVisible=!0,n=(n=Math.round(d.getValue(e+u,{wrtVisible:!0})))<g?g:n,a=(a=Math.round(d.getValue(t+u,{wrtVisible:!0})))>f?f:a,i=d.getLabel(n).label,o=d.getLabel(a).label,r&&l.fireChartInstanceEvent("pinned",{startIndex:n||Math.abs(n),endIndex:a||Math.abs(a),startLabel:i,endLabel:o},r.originalEvent)}},r.dragstart=function(e){this._setConfig();var t,r,n=this.getFromEnv("animationManager"),a=this.getFromEnv("chart-container"),i=this.config,o=i.attr,l=this.getGraphicalElement("resizeBox"),c=e.originalEvent,u=i.layerX=(c.pageX||c.data[0])-i.chartPosLeft,d=i.layerY=(c.pageY||c.data[1])-i.chartPosTop,h=i.canvasY,f=i.canvasX,g=i.canvasX2,p=i.canvasY2;t=(0,s.getPosition)(a),i.chartPosLeft=t.left,i.chartPosTop=t.top,i.oy=d,i.ox=u,i.allowMove=!1,o.x=0,o.y=0,o.width=0,o.height=0,r=n.setAnimation({el:l||"rect",attr:o,container:this.getFromEnv("chart").getChildContainer("trackerGroup"),component:this,callback:function(){this.show()}}),l||this.addGraphicalElement("resizeBox",r),u>f&&u<g&&d>h&&d<p&&(i.allowMove=!0),i.dragstartFn&&"function"==typeof i.dragstartFn&&i.dragstartFn(e)},r.dragmove=function(e){this._setConfig();var t=this.config,r=this.getFromEnv("animationManager"),n=e.originalEvent,a=n.pageX||n.data[2],i=n.page||n.data[3],o=t.layerX=a-t.chartPosLeft,s=t.layerY=i-t.chartPosTop,l=o-t.ox,c=s-t.oy,u=t.ox,g=t.oy,p=t.zoomX,m=t.zoomY,v=t.strokeWidth,b=t.canvasW,y=t.canvasH,x=t.canvasY,C=t.canvasX,w=t.canvasX2,_=t.canvasY2;r.setAnimationState("dragMove"),t.allowMove&&(t.isDragged||(t.isDragged=1),l=-(u-d(u-(u-h(u+l,C)),w)),c=-(g-d(g-(g-h(g+c,x)),_)),r.setAnimation({el:this.getGraphicalElement("resizeBox"),attr:{x:(p?d(u,u+l):C)+.5*v,y:(m?d(g,g+c):x)+.5*v,width:p?f(l):b,height:m?f(c):y},component:this}),t.dragmoveFn&&"function"==typeof t.dragmoveFn&&t.dragmoveFn(e))},r.dragend=function(e){this._setConfig();var t,r,n=this.getFromEnv("chart"),a=this.config,i=this.getFromEnv("xAxis")[0],o=this.getGraphicalElement("resizeBox"),s=a.bBox;n.getFromEnv("animationManager").setAnimationState("dragEnd"),s=o.getBBox(),a.isDragged&&(a.dragendFn&&"function"==typeof a.dragendFn&&a.dragendFn(e,{chart:n,selectionLeft:s.x,selectionTop:s.y,selectionHeight:s.height,selectionWidth:s.width,originalEvent:e.originalEvent}),a.isDragged=0),o.hide(),delete a.oy,delete a.ox,(t=s.x-n.config.canvasLeft)!==(r=t+s.width)&&(a.boxStartValue=i.getValue(t),a.boxEndValue=i.getValue(r),this.pinRangePixels(t,r,e))},t}(o["default"]);t["default"]=p},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(201)),i=n(r(198)),o=n(r(292)),s=r(184),l=function(e){function t(){var r;r=e.call(this)||this;var n=(0,a["default"])(r);return n.controlArr=[{nativeInteraction:["fc-dragstart","fc-dragmove"],callback:n.onDrag.bind(n),component:n},{nativeInteraction:["fc-dragend"],callback:n.onDragEnd.bind(n),component:n}],n.toggle=n.toggle.bind(n),s.isFirefox&&n.controlArr.push({nativeInteraction:["fc-mousedown"],callback:t.mousedown,component:n}),r}(0,i["default"])(t,e),t.mousedown=function(e){e&&e.preventDefault()};var r=t.prototype;return r.configure=function(){e.prototype.configure.call(this);!this.config.skipGraphics&&this.setLinkedItem("button",this.createButton({icon:"panModeIcon",tooltext:this.config.tooltext,handlers:{click:this.toggle},state:"activated"})),this.getLinkedParent().registerDependancy([{derivedInteraction:["zoomin","zoomout","dragzoomenabled","dragzoomdisabled"],callback:this.dependancyFn,component:this}]),this.disable(s.UNDEF,!1)},r.getName=function(){return"dragPan"},r.enable=function(e,t){this._checkStackLen()&&!0!==this.config.enabled&&(this.config.enabled=!0,this.config.state="pressed",this.fireEvent("panenabled"),!t&&this.getFromEnv("chart").fireChartInstanceEvent("zoommodechanged",{panModeActive:!0},e&&e.originalEvent),this.setControl())},r.disable=function(e,t){!1!==this.config.enabled&&(this.config.enabled=!1,this.config.state=this._checkStackLen()?"activated":"disabled",this.fireEvent("pandisabled"),!t&&this.getFromEnv("chart").fireChartInstanceEvent("zoommodechanged",{panModeActive:!1},e&&e.originalEvent),this.setControl())},r.setControl=function(){var e=this.getLinkedParent(),t=this.getLinkedItem("button"),r=this.controlArr;e.releaseControl(r),this.isEnabled()&&e.getControl(r),t&&t.setCurrentState(this.isEnabled()?this.config.state:"disabled")},r.setDrag=function(e){this.config.isDragging=!!e},r.isDragging=function(){return!!this.config.isDragging},r.onDragEnd=function(){this.setDrag(!1),this.getFromEnv("chart").getContainer("parentgroup").attr({cursor:"default"})},r.onDrag=function(e){var t,r,n,a,i,o,s,l,c,u,d,h=function(e){var t=e;return t.originalEvent&&(t=t.originalEvent),t.type.match(/touch/)?{x:t.touches[0].pageX,y:t.touches[0].pageY}:t.type.match(/mouse|pointer/)?{x:t.pageX,y:t.pageY}:void 0}(e.originalEvent);(function(e){return!e.touches||1===e.touches.length})(e.originalEvent)&&(this.getFromEnv("chart").getContainer("parentgroup").attr({cursor:"move"}),this.getFromEnv("animationManager").setAnimationState("drag"),this.isDragging()?this.getFromEnv("axesObArr").forEach((function(e){var f,g;if(t=e.origConfig.minValue,r=e.origConfig.maxValue,i=e.axis,o=i.config.axisRange,s=i.getScale(),l=s.getRange(),c=s.getDomain(),u=(l[1]-l[0])/(c[1]-c[0]),f=h,g=e.startCoord,d={x:f.x-g.x,y:f.y-g.y},a=r-t,(n=-(n=e.isY?d.y/u:d.x/u))>0)n=Math.min(o.max-r,n);else{if(!(n<0))return;n=-Math.min(t-o.min,-n)}r=(t+=n)+a,i.setVisibleConfig(t,r)})):(this.getFromEnv("axesObArr").forEach((function(e){e.origConfig=e.axis.getVisibleConfig(),e.startCoord=h})),this.setDrag(!0)))},r.dependancyFn=function(e){"zoomout"===e.type?!this._checkStackLen()&&this.disable():"zoomin"===e.type?this.enable(e):"dragzoomdisabled"===e.type?this._checkStackLen()&&this.enable(e):"dragzoomenabled"===e.type&&this.disable(e)},t}(o["default"]);t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(201)),i=n(r(198)),o=n(r(292)),s=r(184),l=function(e){return e<0?-e:e},c=function(e){function t(){var t;t=e.call(this)||this;var r=(0,a["default"])(t);return r.controlArr=[{nativeInteraction:["fc-pinchstart"],callback:r.pinchstart.bind(r),component:r},{nativeInteraction:["fc-pinchmove"],callback:r.pinchmove.bind(r),component:r}],t}(0,i["default"])(t,e);var r=t.prototype;return r.getName=function(){return"pinchZoom"},r.configure=function(){e.prototype.configure.call(this),this.enable()},r.getCenter=function(e,t){var r=this.getFromEnv("chart"),n=(0,s.getMouseCoordinate)(r.getLinkedItem("container"),{pageX:(e.pageX+t.pageX)/2,pageY:(e.pageY+t.pageY)/2},r);return{x:n.chartX,y:n.chartY}},r.pinchmove=function(e){var t,r,n,a,i,o,s,c,u=this,d=e.originalEvent.data,h=d.distanceX,f=d.distanceY,g=u.config,p=g.touchConfig,m={},v=!1,b={},y=u.getFromEnv("chart"),x=u.getFromEnv("axesObArr"),C=Math.pow(10,g.zoomDecimalLimit)||1,w=y.getChildContainer().plotGroup;t=l(h/p.distanceX),r=l(f/p.distanceY),x.forEach((function(){w.transform(""),w.scale(t,r,p.center.x,p.center.y)})),clearTimeout(g.chartDraw),g.chartDraw=setTimeout((function(){w.transform(""),x.forEach((function(e){var l=e.axis,d=function(e,t,r,n,a){var i=e.getVisibleConfig(),o=e.getValue(t[n?"y":"x"]+e.getTranslation()),s=o-i.minValue,l=i.maxValue-o,c=e.config.axisRange;return{min:Math.round(Math.max(c.min,o-s/r)*a)/a,max:Math.round(Math.min(c.max,o+l/r)*a)/a}}(l,p.center,e.isY?r:t,e.isY,C),h=d.min,f=d.max,g=e.stack,y=l.getVisibleConfig(),x=l.getLimit(),w=g.length-1,_=g[w],k=Math.floor(h)===x.min&&Math.ceil(f)===x.max,S=l.getZoom()>=C;if(_)if(k)e.stack=[],m.zoomout=!0;else if(_.minValue>h&&_.maxValue<f){for(;_&&_.minValue>h&&_.maxValue<f;)g.pop(),_=g[--w];m.zoomout=!0}else S||(g.push(y),m.zoomin=!0);else k||S||(g.push(y),m.zoomin=!0);e.isY?(o=h,s=f):(a=h,i=f,b=u.constructor._getZoomInfo(a,i,l)),c=e.stack.length+1,n=l.setVisibleConfig(h,f),v=v||n})),v&&(m.zoomout&&u._raiseZoomEvents("zoomout","zoomedout",Object.assign(b,{level:c,startX:a,endX:i,startY:o,endY:s})),m.zoomin&&u._raiseZoomEvents("zoomin","zoomedin",Object.assign(b,{level:c,startX:a,endX:i,startY:o,endY:s}))),g.chartDraw=null}),250)},r.pinchstart=function(e){var t,r=e.originalEvent.data,n=r;this.getFromEnv("animationManager").setAnimationState("touch"),n.center=this.getCenter(r.finger0,r.finger1),this.config.touchConfig=r,this.getFromEnv("axesObArr").forEach((function(e){t=e.axis,e.visibleConfig=t.getVisibleConfig(),e.centerVal=t.getValue(e.isY?n.center.y:n.center.x)}))},r.setControl=function(){var e=this.getLinkedParent(),t=this.controlArr;e.releaseControl(t),this.isEnabled()&&e.getControl(t)},t}(o["default"]);t["default"]=c},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(201)),i=n(r(198)),o=n(r(292)),s=r(184),l=function(e){function t(){var t;t=e.call(this)||this;var r=(0,a["default"])(t);return r.controlArr=[{nativeInteraction:["fc-dragend"],callback:r.end.bind(r),component:r},{nativeInteraction:["fc-dragmove"],callback:r.move.bind(r),component:r},{nativeInteraction:["fc-dragstart"],callback:r.start.bind(r),component:r}],t}(0,i["default"])(t,e);var r=t.prototype;return r.getName=function(){return"swipeGesture"},r.configure=function(){e.prototype.configure.call(this),this.enable()},r.getPresentScrollValue=function(){var e=this.config.xAxis,t=e.getVisibleConfig(),r=e.getLimit(),n=t.maxValue-t.minValue,a=r.max-r.min;return(t.minValue-r.min)/(a-n)},r.start=function(e){var t,r,n=this.getFromEnv("chart"),a=this.config;t=(0,s.getMouseCoordinate)(n.getFromEnv("chart-container"),e.originalEvent,n),a.previousX=t.chartX,a.previousY=t.chartY,a.presentScrollValue=r=this.getPresentScrollValue(),n.fireChartInstanceEvent("scrollStart",{scrollPosition:r})},r.move=function(e){var t,r=this.config,n=this.getFromEnv("chart"),a=r.xAxis,i=a.getChildren("scrollBar")&&a.getChildren("scrollBar")[0],o=i&&i.getChildren("scrollAnchor")[0],l=a.config.axisRange,c=(0,s.getMouseCoordinate)(n.getFromEnv("chart-container"),e.originalEvent,n),u=c.chartX,d=c.chartY,h=i&&i.config&&!i.config.isHorizontal?(d-r.previousY)/r.plotDifference:(u-r.previousX)/r.plotDifference,f=a.getVisibleConfig(),g=r.previousScrollValue=r.presentScrollValue,p=f.minValue-h,m=r.axisMin,v=r.axisMax,b=f.maxValue-h;p<m&&m===f.minValue||b>v&&v===f.maxValue||(p<m?(b+=h,b-=h=f.minValue-m,p=m):v<b&&(p+=h,p+=h=v-f.maxValue,b=v),t=(p-l.min)/(l.max-l.min-(b-p)),o.config.scrollPosition=t,n.getFromEnv("animationManager").setAnimationState("scroll"),a.setVisibleConfig(p,b),n.fireChartInstanceEvent("onScroll",{scrollPosition:g}),r.previousX=u,r.previousY=d,r.presentScrollValue=this.getPresentScrollValue())},r.end=function(){var e=this.config;this.getFromEnv("chart").fireChartInstanceEvent("scrollEnd",{previousScrollPosition:e.previousScrollValue,scrollPosition:e.presentScrollValue})},r.setControl=function(){var e=this.getLinkedParent(),t=this.controlArr;e.releaseControl(t),this.isEnabled()&&e.getControl(t)},r.draw=function(){var e=this.config,t=this.getFromEnv("canvas").getAxes().filter((function(e){return!e.isY})),r=e.xAxis=t&&t[0]&&t[0].axis,n=r.config.axisRange;e.plotDifference=r.getPixel(1)-r.getPixel(0),e.axisMin=n.min,e.axisMax=n.max},t}(o["default"]);t["default"]=l},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=function(e){var t=window,r=t.navigator.userAgent,a=/msie/i.test(r)&&!t.opera,i=Math,o=i.min,s=i.round,l=t.parseFloat,c=String,u="rgba(192,192,192,"+(a?.002:1e-6)+")",d={enabled:!1,"false":!1,0:!1,disabled:!0,"true":!0,1:!0};e.define&&e.define([{name:"button",button:function(t,r,n,a,i,o){var s,l=t,c=r,d=n,h=a,f=i,g=o,p=c,m=this.group("button",p),v=l.labelFill,b=l.symbolFill,y=l.fill,x=l.button[5],C=l.button[6],w=l.hoverFill,_=l.stroke,k=l["symbol-stroke"],S=l["stroke-width"],E=l["symbol-stroke-width"],A=l.config;if("object"==typeof l&&l.button){var T=l.button;l=T[0],c=T[1],d=T[2],h=T[3],f=T[4],p=T[5]}for(s in p=p||g,m._.button={bound:this.rect(m),tracker:this.rect(m).attr({fill:u,stroke:u,cursor:"pointer"}).data("compositeButton",m)},!e.is(f,"object")&&(f={}),e.fn.button.fn)m[s]=e.fn.button.fn[s];for(s in e.fn.button.ca)m.ca[s]=e.fn.button.ca[s];return A&&m.attr({config:A}),m.attr({"button-padding":[f.horizontalPadding,f.verticalPadding],"button-label":d,"button-label-size":x,"button-label-family":C,"button-symbol":h,"button-disabled":f.disabled||"false","button-symbol-position":f.symbolPosition,"button-symbol-padding":f.symbolPadding}).attr("button-repaint",[l,c,f.width,f.height,f.r]).attr({labelFill:v,symbolFill:b,fill:y,hoverFill:w,stroke:_,"symbol-stroke":k,"stroke-width":S,"stroke-linecap":"round","symbol-stroke-width":E})},data:{hoverin:function(){var e=this,t=e._.button,r=t.hoverbackIn,n=e._hover||{};n.fill||n["fill-symbol"]||n.stroke||n["stroke-width"]||n.cursor||n.labelFill||n["symbol-stroke"]?(n.fill&&e.bottom.attr("fill",n.fill)&&!n["fill-symbol"]&&t.symbol.attr("fill",n.fill),n["fill-symbol"]&&t.symbol.attr("fill",n["fill-symbol"]),n.stroke&&e.bottom.attr("stroke",n.stroke)&&t.symbol.attr("stroke",n.stroke),n["stroke-width"]&&e.bottom.attr("stroke-width",n["stroke-width"])&&t.symbol.attr("stroke-width",n["stroke-width"]),n.cursor&&t.tracker.attr("cursor",n.cursor),n.labelFill&&t.label&&t.label.attr("fill",n.labelFill),n["symbol-stroke"]&&t.symbol.attr("stroke",n["symbol-stroke"]),r&&r()):r&&!1===r(arguments)||e.attr("fill","hover"),e.hovered=!0},hoverout:function(){var e=this,t=e._.button,r=t.hoverbackOut,n=e._normal||{};n.fill||n["fill-symbol"]||n.stroke||n["stroke-width"]||n.cursor||n.labelFill||n["symbol-stroke"]?(n.fill&&e.bottom.attr("fill",n.fill)&&!n["fill-symbol"]&&t.symbol.attr("fill",n.fill),n.stroke&&e.bottom.attr("stroke",n.stroke)&&t.symbol.attr("stroke",n.stroke),n["fill-symbol"]&&t.symbol.attr("fill",n["fill-symbol"]),n["stroke-width"]&&e.bottom.attr("stroke-width",n["stroke-width"])&&t.symbol.attr("stroke-width",n["stroke-width"]),n["symbol-stroke"]&&t.symbol.attr("stroke",n["symbol-stroke"]),n.labelFill&&t.label&&t.label.attr("fill",n.labelFill),n.cursor&&t.tracker.attr("cursor",n.cursor),r&&r()):r&&!1===r(arguments)||e.attr("fill",e.pressed||e.active?"active":"normal"),e.hovered=!1},mousedown:function(){var e=this,t=e._.button,r=e._pressed||{};r.fill||r["fill-symbol"]||r.stroke||r["stroke-width"]||r.cursor||r.labelFill||r["symbol-stroke"]?(r.fill&&e.bottom.attr("fill",r.fill)&&!r["fill-symbol"]&&t.symbol.attr("fill",r.fill),r.stroke&&e.bottom.attr("stroke",r.stroke)&&t.symbol.attr("stroke",r.stroke),r["fill-symbol"]&&t.symbol.attr("fill",r["fill-symbol"]),r["stroke-width"]&&e.bottom.attr("stroke-width",r["stroke-width"])&&t.symbol.attr("stroke-width",r["stroke-width"]),r.labelFill&&t.label&&t.label.attr("fill",r.labelFill),r["symbol-stroke"]&&t.symbol.attr("stroke",r["symbol-stroke"]),r.cursor&&t.tracker.attr("cursor",r.cursor)):e.attr("fill","active"),e.pressed=!0},mouseup:function(){var e=this,t=e._.button,r=t.callback,n=e._normal||{};n.fill||n["fill-symbol"]||n.stroke||n["stroke-width"]||n.cursor||n.labelFill||n["symbol-stroke"]?(n.fill&&e.bottom.attr("fill",n.fill)&&!n["fill-symbol"]&&t.symbol.attr("fill",n.fill),n.stroke&&e.bottom.attr("stroke",n.stroke)&&t.symbol.attr("stroke",n.stroke),n["fill-symbol"]&&t.symbol.attr("fill",n["fill-symbol"]),n["stroke-width"]&&e.bottom.attr("stroke-width",n["stroke-width"])&&t.symbol.attr("stroke-width",n["stroke-width"]),n.labelFill&&t.label&&t.label.attr("fill",n.labelFill),n["symbol-stroke"]&&t.symbol.attr("stroke",n["symbol-stroke"]),n.cursor&&t.tracker.attr("cursor",n.cursor)):e.attr("fill",(e.hovered?"hover":e.active&&"active")||"normal"),e.pressed=!1,r&&r(arguments)},mousemove:function(){var e=this,t=e._.button,r=t.mousemove;r&&r(arguments)}},fn:{tooltip:function(){return e.el.tooltip&&e.el.tooltip.apply(this._.button.tracker,arguments),this},buttonclick:function(e,t){var r=t,n=this,a=n._.button;return r=r||n,a.callback=function(){return e.apply(r,arguments)},n},labelcss:function(){var e=this._.button,t=e.label;return e.cssArg=arguments,t&&t.css.apply(t,arguments),this.attr("button-repaint",this.attrs["button-repaint"])},buttonhover:function(e,t,r,n,a,i){var o=this,s=o._.button,l=r||o,c=n||o,u=i||o;return a&&(s.mousemove=function(){return a.apply(u,arguments)}),s.hoverbackIn=function(){return e.apply(l,arguments)},s.hoverbackOut=function(){return t.apply(c,arguments)},o},remove:function(){var t,r=this,n=r._.button;for(t in r.attr("button-disabled","true"),n)n[t]&&n[t].remove&&n[t].remove(),n[t]=null;delete r._.button,e.el.remove.apply(r,arguments)}},ca:{"button-active":function(e){var t=this;t.attr("fill",(t.active=!!e)?"active":t.hovered?"hover":"normal")},"button-disabled":function(e){var t=this,r=e,n=t.paper,a=t._.button,i=a.tracker,o=t.attrs["button-disabled"],s=n.button.data,l=t._disabled||{};if(o=d[o],void 0!==(r=d[r])&&r!==o)switch(r){case!0:l.fill||l.stroke||l["stroke-width"]||l.cursor?(l.fill&&t.bottom.attr("fill",l.fill)&&a.symbol.attr("fill",l.fill),l.stroke&&t.bottom.attr("stroke",l.stroke)&&a.symbol.attr("stroke",l.stroke),l["stroke-width"]&&t.bottom.attr("stroke-width",l["stroke-width"]&&a.symbol.attr("fill",l.fill)),l.cursor&&a.tracker.attr("cursor",l.cursor)):i.attr("fill","rgba(204,204,205,.5)"),i.off("fc-mousedown",s.mousedown).off("fc-unmouseup",s.mouseup).unhover(s.hoverin,s.hoverout).unmousemove(s.mousemove);break;case!1:i.attr("fill",u).on("fc-mousedown",s.mousedown,t).on("fc-mouseup",s.mouseup,t).hover(s.hoverin,s.hoverout,t,t).mousemove(s.mousemove,t)}},"button-label":function(e){var t=this,r=t._.button,n=t.attrs,a=e,i=r.label,o=r.cssArg,s=t.attrs["button-repaint"];"none"===(a=c(a||""))?i&&(r.label=i.remove()):a&&(!i&&(i=r.label=t.paper.text(t).insertBefore(r.tracker)),i.attr({text:a,"text-anchor":"middle","vertical-align":"middle"}),o&&o.length&&i.css.apply(i,o)),s&&n["button-label"]!==a&&t.attr("button-repaint",s)},"button-label-size":function(e){var t=this,r=t._.button,n=t.attrs,a=r.label,i=t.attrs["button-label-size"];a&&a.attr({"font-size":e}),i&&n["button-label-size"]!==e&&t.attr("button-label-size",i)},"button-label-family":function(e){var t=this,r=t._.button,n=t.attrs,a=e,i=r.label,o=t.attrs["button-label-family"];i&&(void 0===a&&(a="sans-serif"),i.attr({"font-family":a}),o&&n["button-label-family"]!==a&&t.attr("button-label-family",o))},"button-symbol":function(e){var t=this,r=t._.button,n=e,a=r.symbol,i=t.attrs["button-repaint"];"none"===(n=c(n||""))?(a&&(r.symbol=a.remove()),delete r.symbol):n&&!a&&(a=r.symbol=t.paper.symbol(t).insertAfter(r.bound)),i&&t.attr("button-repaint",i)},"button-symbol-position":function(e){return{"button-symbol-position":{top:"top",right:"right",bottom:"bottom",left:"left",none:"none"}[c(e).toLowerCase()]||"none"}},"button-symbol-padding":function(e){return{"button-symbol-padding":l(e)}},"button-padding":function(e,t){var r=e,n=t;return{"button-padding":[null==r&&(r=5)||l(r),null==n&&r||l(n)]}},"button-repaint":function(t,r,a,i,l){var c,u,d,h,f,g,p,m=this._.button,v=t,b=r,y=a,x=i,C=l,w=m.bound,_=m.label,k=m.symbol,S=this.attrs,E=S["button-padding"],A=E[0],T=E[1];if(void 0===v&&(v=0),void 0===b&&(b=0),void 0!==y&&void 0!==x||(g=_&&_.getBBox()||{width:0,height:0},void 0===y&&(y=2*A+g.width),void 0===x&&(x=2*T+g.height)),(p=e.crispBound(v,b,y,x,w.attr("stroke-width"))).r=C=(0,n.pluck)(C,s(.1*o(x,y))),v=p.x,b=p.y,y=p.width,x=p.height,_&&_.attr({x:v+y/2,y:b+x/2}),k){switch(!e.is(f=S["button-symbol-padding"],"finite")&&(f=.2*x),h=.5*(d=x-T),S["button-symbol-position"]+(_?"+":"-")){case"right+":c=v+(y+=2*h+T)-h-A,u=b+.5*x,_.attr("transform",["t",-(d+f),0]);break;case"left+":y+=2*h+T,c=v+A+h,u=b+.5*x,_.attr("transform",["t",d+f,0]);break;case"top+":x+=2*h+f,c=v+.5*y,u=b+E[1]+h,_.attr("transform",["t",0,d+f]);break;case"bottom+":c=v+.5*y,u=b+(x+=2*h+f)-T-h,_.attr("transform",["t",0,-(d+f)]);break;default:c=v+.5*y,u=b+.5*x}k.attr("symbol",[S["button-symbol"],c,u,h,y,x])}m.bound.attr(p),m.tracker.attr(p)},fill:function(t,r){void 0===r&&(r=!0);var n=this,a=n._.button,i=a.bound,o=t,s={normal:a.gradient,active:a.gradientActive,hover:a.gradientHover}[o];return s||(r||((o=e.getRGB(o)).error&&(o=e.color("#cccccc")),o="opacity"in o?"rgba("+[o.r,o.g,o.b,o.opacity]+")":"rgb("+[o.r,o.g,o.b]+")"),a.gradient=r?o:[90,e.tintshade(o,-.8).rgba+":0",e.tintshade(o,.8).rgba+":100"].join("-"),a.gradientActive=[270,e.tintshade(o,-.8).rgba+":0",e.tintshade(o,.8).rgba+":100"].join("-"),s=(n.pressed||n.active)&&a.gradientActive||n.hovered&&a.gradienthover||a.gradient),i.attr("fill",s),!1},hoverFill:function(t){var r=this._.button,n=t;return n="opacity"in(n=e.getRGB(n))?"rgba("+[n.r,n.g,n.b,n.opacity]+")":"rgb("+[n.r,n.g,n.b]+")",r.gradientHover=n,!1},labelFill:function(e){var t=this._.button,r=t.label;return r&&e&&(t.labelFill=e,r.attr("fill",e)),!1},symbolFill:function(e){var t=this._.button,r=t.symbol;return r&&e&&(t.symbolFill=e,r.attr("fill",e)),!1},stroke:function(t){var r=this._.button,n=t;return(n=e.color(n)).error&&(n=e.color("#999999")),r.bound.attr("stroke",n),!1},"symbol-stroke":function(e){var t=this._.button.symbol;return t&&e&&t.attr("stroke",e),!1},"stroke-width":function(e){var t=this._.button;return t.bound.attr("stroke-width",e),t.tracker.attr("stroke-width",e),!1},"symbol-stroke-width":function(e){var t=this._.button.symbol;return t&&e&&t.attr("stroke-width",e),!1},config:function(e){var t=this;e.hover&&(t._hover={fill:e.hover.fill,stroke:e.hover.stroke,"stroke-width":e.hover["stroke-width"],cursor:e.hover.cursor,"fill-symbol":e.hover["fill-symbol"],"symbol-stroke":e.hover["symbol-stroke"],labelFill:e.hover.labelFill}),e.disabled&&(t._disabled={fill:e.disabled.fill,stroke:e.disabled.stroke,"stroke-width":e.disabled["stroke-width"],"symbol-stroke":e.disabled["symbol-stroke"],cursor:e.disabled.cursor,labelFill:e.disabled.labelFill}),e.pressed&&(t._pressed={fill:e.pressed.fill,stroke:e.pressed.stroke,"stroke-width":e.pressed["stroke-width"],cursor:e.pressed.cursor,"fill-symbol":e.pressed["fill-symbol"],"symbol-stroke":e.pressed["symbol-stroke"],labelFill:e.pressed.labelFill}),e.normal&&(t._normal={fill:e.normal.fill,stroke:e.normal.stroke,"stroke-width":e.normal["stroke-width"],cursor:e.normal.cursor,"fill-symbol":e.normal["fill-symbol"],"symbol-stroke":e.normal["symbol-stroke"],labelFill:e.normal.labelFill}),e.symbol&&(e.symbol={stroke:e.normal.stroke,"stroke-width":e.normal["stroke-width"]})}}}])};var n=r(184)},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n=r(184),a=function(e){s(e,"legendItemClicked")},i=function(e){s(e,"legendItemRollover")},o=function(e){s(e,"legendItemRollout")},s=function(e,t){var r=e.sender,a=r.getLinkedItem("owner"),i=r.getFromEnv("chart"),o=a&&a.getEventArgs?a.getEventArgs(r):r.config.eventArguments,s=(0,n.getMouseCoordinate)(r.getFromEnv("chart-container"),e,i);/click/gi.test(t)||void 0===o.visible||(o.visible=!o.visible),o.chartX=s.chartX,o.chartY=s.chartY,o.pageX=s.pageX,o.pageY=s.pageY,o.id=i.getId(),o.legendItemId=r.getId(),o.legendItemIndex=r.config.index,i.fireChartInstanceEvent(t,o,e)},l={extension:function(e){var t;e.addEventListener("instantiated",(function(e){var r;"legendItem"===(t=e.sender).getType()&&((r=t).addEventListener("fc-click",a),r.addEventListener("fc-mouseover",i),r.addEventListener("fc-mouseout",o))}))},name:"legendEventManagerLinker",type:"extension",requiresFusionCharts:!0};t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a,i=n(r(319)),o=function(e){return"chartAPI"===e.getType()};function s(e){void 0===e&&(e={});var t=this.apiInstance.getChildren("exportModule");return(t=t&&t[0])!==a&&(t.exportChart(e),!0)}var l={extension:function(e){e.addEventListener("instantiated",(function(e){var t=e.sender;o(t)&&t.registerFactory("export",(function(e){var r;t.getFromEnv("chartInstance").exportChart=s,Number(e.getFromEnv("dataSource").chart.exportenabled)&&(e.getChildren("exportModule")?r=e.getChildren("exportModule")[0]:(r=new i["default"],e.attachChild(r,"exportModule"),r.addToEnv("chartInstance",e.getFromEnv("chartInstance")),r.addToEnv("chartMenuList",e.getFromEnv("chartMenuList"))),r.configure({chartConfig:e.getFromEnv("dataSource").chart}))}),["toolbox"])}))},name:"Export",type:"extension",requiresFusionCharts:!0};t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(183)),i=n(r(198)),o=r(199),s=r(192),l=r(184),c=n(r(320)),u=r(322),d=r(325),h=r(323),f=/\s\bx\b=['"][^'"]+?['"]/gi,g=/\s\by\b=['"][^'"]+?['"]/gi,p=window,m=p.document,v="https:"===p.location.protocol?"https://export.api3.fusioncharts.com/":"http://export.api3.fusioncharts.com/",b="https:"===p.location.protocol?"https://export.api3.fusioncharts.com/api/v1.0/logs":"http://export.api3.fusioncharts.com/api/v1.0/logs",y=p.navigator.userAgent.match(/(iPad|iPhone|iPod)/g),x=function(e){function t(){var t;return(t=e.call(this)||this).config={exportOption:{},chartConfig:{caption:"",subcaption:"",width:"",height:""}},t}(0,i["default"])(t,e);var r=t.prototype;return r.getName=function(){return"exportModule"},r.getType=function(){return"extension"},r.configureMenuBar=function(){var e,t,r,n,i,o,c,d,h,f=this,g=f.getFromEnv("toolbar"),m=!!p.btoa,v=f.getFromEnv("chart"),b=f.getFromEnv("chart-attrib").exportformats,y=g.getChild("hamburgerMenu-"+g.getId()+"-"+v.getId()+"-0"),x=(0,s.getDep)("Excelexport"),C="timeseries"===v.getName(),w={PNG:"Export As "+u.EXPORTFORMAT.PNG.toUpperCase(),JPG:"Export As "+u.EXPORTFORMAT.JPG.toUpperCase(),PDF:"Export As "+u.EXPORTFORMAT.PDF.toUpperCase(),SVG:"Export As "+u.EXPORTFORMAT.SVG.toUpperCase(),CSV:"Export As "+u.EXPORTFORMAT.CSV.toUpperCase(),XLSX:"Export As "+u.EXPORTFORMAT.XLSX.toUpperCase()},_=[];if(f.config.exportOption.exportenabled){if(o=function(e){return function(){f.config.exportOption.exportformat=e,f.exportChart({})}},b)for(n=0,i=(e=b.split("|")).length;n<i;n++)t=e[n].split("="),(r=(0,l.trimString)(t[0].toUpperCase())).toLowerCase()===u.EXPORTFORMAT.XLSX&&(h=!0),w[r]&&(w[r]=t[1]||w[r]),w[r]&&(d||(d={}))&&(d[r]=!0);for(r in f.config.exportOption.exportformats=(0,a["default"])({},w),w)"XLSX"===r&&(!m||!x||x&&x.then)||d&&!d[r]||("CSV"!==r||m&&!C)&&(c={name:w[r],handler:o(r),action:"click"},_.push(c));y.appendInMenu(_),m&&!C&&x&&x.then&&x.then((function(){b&&!h||(y.appendInMenu([{name:w.XLSX,handler:o("XLSX"),action:"click"}]),y.asyncDraw())}))}},r.configure=function(e){var t,r,n,a=this.getFromEnv("chartInstance"),i=this.config,o=i.chartConfig,s=i.exportOption,c=e.chartConfig;c.caption&&(o.caption=(0,l.pluck)(c.caption,"")),c.subcaption&&(o.subcaption=(0,l.pluck)(c.subcaption,"")),s.exportenabled=(0,l.pluckNumber)(c.exportenabled,0),s.exportshowmenuitem=(0,l.pluckNumber)(c.exportshowmenuitem,1),s.exportformat=(0,l.pluck)(c.exportformat,u.EXPORTFORMAT.PNG),s.exporthandler=(0,l.pluck)(c.html5exporthandler,c.exporthandler,v),s.exportaction=c.exportaction&&"string"==typeof c.exportaction?(t=c.exportaction.toLowerCase(),[u.EXPORTACTION.DOWNLOAD,u.EXPORTACTION.SAVE,u.EXPORTACTION.DOWNLOADSAVE].indexOf(t)>=0?t:u.EXPORTACTION.DOWNLOAD):u.EXPORTACTION.DOWNLOAD,s.exporttargetwindow=(0,l.pluck)(c.exporttargetwindow,y?"_parent":"_self"),s.exportfilename=(0,l.pluck)(c.exportfilename,"FusionCharts"),s.exportparameters=(0,l.pluck)(c.exportparameters,""),s.exportcallback=(0,l.pluck)(c.exportcallback,""),s.exportwithimages=(0,l.pluckNumber)(c.exportwithimages,1),s.exportmode=("undefined"!=typeof c.exportatclientside&&(r={1:u.EXPORTMODE.AUTO,0:u.EXPORTMODE.AUTO}[c.exportatclientside]),r=(r=c.exportmode||r||u.EXPORTMODE.AUTO).toLowerCase()),s.logenabled=(0,l.pluckNumber)(c.logenabled,0),s.loghandler=(0,l.pluck)(c.html5loghandler,c.loghandler,b),s.logmode=void 0!==(n=c.logmode)&&"string"==typeof n&&n.toUpperCase()in u.LOGMODE?u.LOGMODE[n.toUpperCase()]:u.LOGMODE.AUTO,s.bgcolor=function(e){return e.jsVars.transparent||0===(0,l.pluckNumber)(e.options.containerBackgroundOpacity,1)?l.BLANKSTRING:e.options.containerBackgroundColor||"#FFFFFF"}(a),s.bgalpha=function(e){return e.jsVars.transparent?0:(0,l.pluckNumber)(e.options.containerBackgroundOpacity,1)+""}(a),s.exportshowmenuitem&&this.configureMenuBar()},r.exportChart=function(e){var t,r,n,a=this,i=a.getFromEnv("chartInstance"),o=a.getFromEnv("chart"),v="object"==typeof e&&function(e){var t,r={};for(t in e)r[t.toLowerCase()]=e[t];return r}(e)||{},b=(0,l.extend2)((0,l.extend2)({},a.config.exportOption),v),y=(b.exportformat||u.EXPORTFORMAT.PNG).toLowerCase(),x=b.exporthandler,C=b.exportaction,w=b.exporttargetwindow||"",_=b.exportfilename,k=b.exportparameters,S=b.exportcallback,E=b.exportwithimages,A=b.exportmode,T=b.logenabled,M=b.loghandler,F=b.logmode,I=function(e){o.fireChartInstanceEvent("exportDataReady",e)};o.fireChartInstanceEvent("beforeExport",b,void 0,(function(){var e,v,L,N,D,O,R,P,V,B=i.id,j=a.config.chartConfig.caption,G=a.config.chartConfig.subcaption,H=this.apiInstance.getFromEnv("paper"),z=this.apiInstance.getFromEnv("core-options")["export"].useCanvas,U=(0,c["default"])(o.getChildren("chartMenuBar"))?o.getChildren("chartMenuBar")[0]:o.getChildren("actionBar")[0],X=U.getChild("hamburgerMenu-"+U.getId()+"-"+o.getId()+"-0"),W={DOMId:B,height:H.height,width:H.width,fileName:_+"."+y,statusCode:void 0,statusMessage:void 0,notice:void 0},$={exportAction:C,exportTargetWindow:w,exportCallback:S,fusionCharts:i,paper:H,chartId:B,exportHandler:x,logEnabled:T,logMode:F,logHandler:M},Y=function(e,t,r){var n;return n=!!T,F===u.LOGMODE.CLIENT&&(n=!1),{charttype:i.chartType(),stream_type:e||"",stream:t||"",meta_bgColor:b.bgcolor||"",meta_bgAlpha:b.bgalpha||"1",meta_DOMId:i.id,meta_width:H.width||a.config.chartConfig.width,meta_height:H.height||a.config.chartConfig.height,chart_caption:j,chart_sub_caption:G,is_single_export:!0,is_full_version:!1,version:l.PROJECT_VERSION,user_time_zone:-(new Date).getTimezoneOffset(),log_enabled:n,parameters:["exportfilename="+_,"exportformat="+y,"exportaction="+(0,u.createExportActionOldString)(C),"exportactionnew="+C,"configuredexportaction="+(r||C),"exportparameters="+k].join("|")}},q=function(){return{chartType:i.chartType(),chartCaption:j,chartSubCaption:G,isSingleExport:!0,isFullVersion:!1,exportAction:C,userTimeZone:-(new Date).getTimezoneOffset(),exportFileName:[_,y].join("."),exportFormat:y,version:l.PROJECT_VERSION}},K=function(e){(0,h.downloadCharts)(null,null,null,Y(u.EXPORTFORMAT.SVG,e),$)},J=function(e,t,r){var n;(n=m.createElement("canvas")).width=H.width,n.height=H.height,(0,h.drawSvgOnCanvas)({svg:L,canvas:n,x:0,y:0,width:H.width,height:H.height,useCanvas:z},(function(){switch(e){case u.EXPORTFORMAT.PNG:t(e,n.toDataURL("image/png"),_,r);break;case u.EXPORTFORMAT.JPEG:case u.EXPORTFORMAT.PDF:default:t(e,n.toDataURL("image/jpeg"),_,r)}}))},Z=function(t,r,n,a,i){var o=r;t===u.EXPORTFORMAT.PDF&&((0,d.addImage)(o,H.height,H.width),o=(0,d.getDataUrl)()),e=i===u.EXPORTMODE.AUTO?Y("IMAGE-DATA",o):null,(0,h.downloadCharts)("url",o,n+"."+t,e,a)},Q=I,ee=function(e){e===u.LOGMODE.CLIENT&&(0,u.logCharts)(q(),$)},te=function(t,r){if(D="undefined"!=typeof p.btoa&&("Chrome"===h.browserDetails.name||"Firefox"===h.browserDetails.name||"Safari"===h.browserDetails.name||"Edge"===h.browserDetails.name||"ie"===h.browserDetails.name),"server"!==A&&D)C!==u.EXPORTACTION.DOWNLOAD&&C!==u.EXPORTACTION.DOWNLOADSAVE||((0,h.downloadCharts)("blob",t,_+"."+y,null,$),o.fireChartInstanceEvent("exported",W)),C===u.EXPORTACTION.SAVE||C===u.EXPORTACTION.DOWNLOADSAVE?(O=C,C===u.EXPORTACTION.DOWNLOADSAVE&&(C=u.EXPORTACTION.SAVE),e=Y("IMAGE-DATA",t,O),(0,h.downloadCharts)(null,null,null,e,$),ee(F)):F!==u.LOGMODE.SERVER&&(0,u.logCharts)(q(),$);else{var n=new FileReader;n.onload=function(e){for(var t=l.BLANKSTRING,n=new Uint8Array(e.target.result),a=n.byteLength,i=0;i<a;i++)t+=String.fromCharCode(n[i]);t=r+p.btoa(t),(0,h.downloadCharts)(null,null,null,Y("IMAGE-DATA",t),$),ee(F)},n.readAsArrayBuffer(t)}};if("xlsx"===y){if("undefined"==typeof p.btoa)return o.fireChartInstanceEvent("exportCancelled",b),!1;r=i.getCSVData(),Q(),V=0,t=[],r.replace(/[^\r\n]+/g,(function(e){t[V]=[],t[V]=e.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/).map((function(e){return e.replace(/"/g,l.BLANKSTRING)})),V+=1})),(R=(0,s.getDep)("ExcelExport"))&&R(t).then((function(e){te(e,"data:application/vnd.ms-excel;base64,")}))}else if("csv"===y){if("undefined"==typeof p.btoa)return o.fireChartInstanceEvent("exportCancelled",b),!1;r=i.getCSVData(),Q(),n=new Blob([r],{type:"text/csv;base64;"}),te(n,"data:text/csv;base64,")}else(N=X.getChild("listContainer").getLinkedParent().getGraphicalElement("button","button"))&&N.attr("visibility","hidden"),v=H.toSVG(E),L=(L=H.toSVG(E&&(0,h.isCanvasElemSupported)())).replace(/ /gi," "),N&&N.attr("visibility","visible"),v=(v=(v=v.replace(/(\sd\s*=\s*["'])[M\s\d\.]*(["'])/gi,"$1M 0 0 L 0 0$2")).replace(/NS\d+:/gi,"xlink:")).replace(/ /gi," "),L=(L=(L=L.replace(/NS\d+:/gi,"xlink:")).replace(/(\sd\s*=\s*["'])[M\s\d\.]*(["'])/gi,"$1M 0 0 L 0 0$2")).replace(/(xlink:title\s*=\s*)['"].*?["']/gi,""),v=(v=(v=(v=(v=(v=(v=(v=v.replace(/[\w\-]+\=\"undefined\"/gi,"")).replace(/(xlink:title\s*=\s*)['"].*?["']/gi,"")).replace(/rgba\(([^\)]+)\)/gi,(function(e){return"#"+new l.RGBtoHex(e.split(","))}))).replace(/<svg[^>]+/i,(function(e){var t=e;return t.match(/height/i)||!H.height&&!a.config.chartConfig.height||(t+=' height="'+(H.height||a.config.chartConfig.height)+'"'),t.match(/width/i)||!H.width&&!a.config.chartConfig.width||(t+=' width="'+(H.width||a.config.chartConfig.width)+'"'),t}))).replace(/(([\w]+\-)?opacity\s*=\s*)['"][\d\.]+e[\-\+][\d]+["']/gi,'$1"0.001"')).replace(/(([\w]+\-)?opacity\s*:\s*)[\d\.]+e[\-\+][\d]+/gi,"$10.001")).replace(/<text[^\>]+/gi,(function(e){var t=e;return t=(t=(t=(t=(t=(t=(t=(t=t.replace(/stroke\=[\"\']([a-z0-9\#]+)?[\"\']/gi,"")).replace(/stroke\s*\:\s*([a-z0-9\#]+)?;?/gi,"")).replace(/stroke-width\=[\"\']([a-z0-9\#]+)?[\"\']/gi,"")).replace(/stroke-width\s*\:\s*([a-z0-9\#]+)?;?/gi,"")).replace(/stroke-opacity\=[\"\']([a-z0-9\#]+)?[\"\']/gi,"")).replace(/stroke-opacity\s*\:\s*([a-z0-9\#]+)?;?/gi,"")).replace(/(<text[^\>]+fill\=)([\"\'][^\"\']+[\"\'])([^\>]+)/gi,'$1$2 stroke=$2 stroke-width="0.2"$3')).replace(/(<text[^\>]+fill-opacity\=)([\"\'][^\"\']+[\"\'])([^\>]+)/gi,"$1$2 stroke-opacity=$2 $3")}))).replace(/<(\b[^<>s\s]+\b)[^\>]+?opacity\s*=\s*['"][^1][^\>]+?(\/>|>[\s\r\n]*?<\/\1>)/gi,(function(e,t){return' opacity="1" stroke-opacity="1" fill="#cccccc" stroke-width="0" r="0" height="0.5" width="0.5" d="M 0 0 L 1 1" />',e+"<"+t+(f.exec(e)||"")+(g.exec(e)||"")+' opacity="1" stroke-opacity="1" fill="#cccccc" stroke-width="0" r="0" height="0.5" width="0.5" d="M 0 0 L 1 1" />'})),v=(0,u.makeImageUrlsAbsolute)(v),L=(0,u.makeImageUrlsAbsolute)(L),P=A===u.EXPORTMODE.SERVER,(0,u.cacheAllImages)(v,P,(function(){e=Y(u.EXPORTFORMAT.SVG,v),Q(e),e=null;var t,r,n,a,i,s,l,c,f="undefined"!=typeof p.btoa&&("Chrome"===h.browserDetails.name||"Firefox"===h.browserDetails.name||"Safari"===h.browserDetails.name||"Edge"===h.browserDetails.name||"ie"===h.browserDetails.name);(A===u.EXPORTMODE.CLIENT||A===u.EXPORTMODE.AUTO&&!(0,u.hasUndownloadableImage)(v))&&f?(L=(0,u.replaceImagesWithNonDataUrl)(L),C!==u.EXPORTACTION.DOWNLOAD&&C!==u.EXPORTACTION.DOWNLOADSAVE||(i=L,s=$,l=A,y===u.EXPORTFORMAT.SVG?(c=(0,u.svgStrToDataUrl)(i),e=l===u.EXPORTMODE.AUTO?Y("IMAGE-DATA",c):null,(0,h.downloadCharts)("url",c,_+"."+y,e,s)):J(y,(function(){Z(arguments[0],arguments[1],arguments[2],arguments[3],l)}),s),o.fireChartInstanceEvent("exported",W)),C===u.EXPORTACTION.SAVE||C===u.EXPORTACTION.DOWNLOADSAVE?(t=C,C===u.EXPORTACTION.DOWNLOADSAVE&&(C=u.EXPORTACTION.SAVE),function(e,t,r){var n;y===u.EXPORTFORMAT.SVG?(n=(0,u.svgStrToDataUrl)(e),r(n,t)):J(y,(function(){r(arguments[1],t)}),t)}(L,$,(function(r,n){e=Y("IMAGE-DATA",r,t),(0,h.downloadCharts)(null,null,null,e,n),ee(F)})),o.fireChartInstanceEvent("exported",W)):F!==u.LOGMODE.SERVER&&(0,u.logCharts)(q(),$)):A===u.EXPORTMODE.AUTO?(a=v,h.browserDetails.hasCanvas&&"undefined"!=typeof p.btoa?((r=m.createElement("canvas")).width=H.width,r.height=H.height,a=(0,u.embedImagesWithNonDataURL)(a),L=(0,u.replaceImagesWithNonDataUrl)(L),(0,u.hasUndownloadableImage)(a)||y===u.EXPORTFORMAT.SVG?(n=Y(u.EXPORTFORMAT.SVG,a),(0,h.downloadCharts)(null,null,null,n,$)):(0,h.drawSvgOnCanvas)({svg:L,canvas:r,x:0,y:0,width:H.width,height:H.height,useCanvas:z},(function(){var e;switch(y){case u.EXPORTFORMAT.PNG:e=r.toDataURL("image/png");break;case u.EXPORTFORMAT.JPEG:e=r.toDataURL("image/jpeg");break;case u.EXPORTFORMAT.PDF:(0,d.addImage)(r.toDataURL("image/jpeg"),H.height,H.width),e=(0,d.getDataUrl)();break;default:e=r.toDataURL("image/jpeg")}n=Y("IMAGE-DATA",e),(0,h.downloadCharts)(null,null,null,n,$)}))):K(a),ee(F)):A===u.EXPORTMODE.SERVER&&(K(v),ee(F))}))}),(function(){o.fireChartInstanceEvent("exportCancelled",b)}))},t}(o.ComponentInterface);t["default"]=x},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(321));t["default"]=function(e){return(0,a["default"])(e)&&e.length}},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]=function(e){return Array.isArray(e)}},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t.svgStrToDataUrl=t.logCharts=t.extractNonDataImageFromSVG=t.parseUrl=t.extractNonDataURLFromSVG=t.removeImagesWithNonDataURL=t.hasUndownloadableImage=t.replaceImagesWithNonDataUrl=t.embedImagesWithNonDataURL=t.makeImageUrlsAbsolute=t.isCacheAllImagesCompleted=t.getImageCachedDetails=t.cacheAllImages=t.objCacheFunctions=t.createExportActionOldString=t.LOGMODE=t.EXPORTFORMAT=t.EXPORTMODE=t.EXPORTACTION=void 0;var a,i=r(323),o=n(r(242)),s=r(184),l=function(e){var t,r,n,a,i,o;t=/(<image [^\>]*href=["']([^\>'"]*)["'][^\>]*\>)/g,r=/^\s*data:([a-z]+\/[a-z]+(;[a-z\-]+\=[a-z\-]+)?)?(;base64)?,[a-z0-9\!\$\&\'\,\(\)\*\+\,\;\=\-\.\_\~\:\@\/\?\%\s]*\s*$/i,n=[];do{null!==(a=t.exec(e))&&(i=a[1],o=a[2],r.test(o)||n.push(i))}while(a&&null!==a);return n},c=function(e){var t,r,n,a=e;for(t=l(a),r=0;r<t.length;r++)n=t[r],a=a.replace(n,"");return a},u=function(e,t){var r,n,a,i,o;void 0===t&&(t=!0),r=/<image [^\>]*href=["']([^\>'"]*)["'][^\>]*\>/g,n=/^\s*data:([a-z]+\/[a-z]+(;[a-z\-]+\=[a-z\-]+)?)?(;base64)?,[a-z0-9\!\$\&\'\,\(\)\*\+\,\;\=\-\.\_\~\:\@\/\?\%\s]*\s*$/i,a=[];do{if(null!==(i=r.exec(e))){if(o=i[1],n.test(o))continue;t&&(o=d(o).href),a.push(o)}}while(i&&null!==i);return a},d=function(e){var t=document.createElement("div");return t.innerHTML="<a></a>",t.firstChild.href=e,t.innerHTML=t.innerHTML,t.firstChild},h={DOWNLOAD:"download",SAVE:"save",DOWNLOADSAVE:"download-save"},f={CLIENT:"client",SERVER:"server",AUTO:"auto"},g=((a={}).cacheCompleted=!1,{cacheAllImages:function(e,t,r){var n,o,l,c;if(void 0===t&&(t=!1),n=u(e),o=n.length,(0,i.isCanvasElemSupported)()&&!t&&o)for(l=0,c=0;c<o;c++)!function(){var e,t;(e=n[c])in a?o===++l&&(a.cacheCompleted=!0,r()):((t=new Image).crossOrigin=s.BLANKSTRING,t.onload=function(){var n,i;(n=document.createElement("canvas")).width=t.width,n.height=t.height,n.getContext("2d").drawImage(this,0,0);try{i=n.toDataURL("image/png"),a[e]={loaded:!0,notCORS:!0,imageUri:i}}catch(s){a[e]={loaded:!0,notCORS:!1}}finally{o===++l&&(a.cacheCompleted=!0,r())}},t.onerror=function(){a[e]={loaded:!1},o===++l&&(a.cacheCompleted=!0,r())},t.src=e)}();else r()},getImageCachedDetails:function(e){return a[e]},isCacheAllImagesCompleted:function(){return a.cacheCompleted}}),p=g.cacheAllImages,m=g.getImageCachedDetails,v=g.isCacheAllImagesCompleted,b=function(e){return e=e.replace(/(:href=")([^"]*)(")/gi,(function(e,t,r,n){return t+d(r).href+n}))},y=function(e){return e.replace(/<image [^\>]*\>/gi,b)},x=function(e){var t,r,n,a,i=y(e);for(t=u(i),r=0;r<t.length;r++)n=t[r],(a=m(n))!==s.UNDEF&&a.loaded&&a.notCORS&&a.imageUri&&(i=i.replace(n,a.imageUri));return i};t.svgStrToDataUrl=function(e){var t=function(e){return'<?xml version="1.0" standalone="no"?>\n <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> '+e}(e);return t="data:image/svg+xml;base64,"+window.btoa(window.unescape(encodeURIComponent(t)))},t.logCharts=function(e,t){t.logEnabled&&t.logMode!==f.SERVER&&function(e,t){var r=new o["default"](s.stubFN,s.stubFN);for(var n in e)e.hasOwnProperty(n)&&(e[n]=encodeURIComponent(e[n]));r.post(t.logHandler,e)}(e,t)},t.hasUndownloadableImage=function(e){var t=x(e);return t!==c(t)},t.replaceImagesWithNonDataUrl=function(e){return c(x(e))},t.embedImagesWithNonDataURL=x,t.makeImageUrlsAbsolute=y,t.isCacheAllImagesCompleted=v,t.getImageCachedDetails=m,t.cacheAllImages=p,t.objCacheFunctions=g,t.createExportActionOldString=function(e){return{download:h.DOWNLOAD,"download-save":h.DOWNLOAD,save:h.SAVE}[e]},t.LOGMODE=f,t.EXPORTFORMAT={PNG:"png",SVG:"svg",JPEG:"jpeg",JPG:"jpg",PDF:"pdf",XLSX:"xlsx",CSV:"csv"},t.EXPORTMODE={CLIENT:"client",SERVER:"server",AUTO:"auto"},t.EXPORTACTION=h,t.parseUrl=d,t.extractNonDataURLFromSVG=u,t.removeImagesWithNonDataURL=c,t.extractNonDataImageFromSVG=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t.isCanvasElemSupported=t.drawSvgOnCanvas=t.browserDetails=t.downloadCharts=void 0;var a=n(r(324)),i=r(184),o=r(191),s=n(r(242)),l=window,c=l.Image,u=document,d="download",h="download-save",f=function(){var e=u.createElement("canvas");return!(!e.getContext||!e.getContext("2d"))},g=function(){var e,t=l.navigator.userAgent;return-1!==(e=t.indexOf("Edge"))?{name:"Edge",version:t.substring(e+5,e+11)}:-1!==(e=t.indexOf("Chrome"))?{name:"Chrome",version:t.substring(e+7,e+11)}:-1!==(e=t.indexOf("MSIE"))?{name:"ie",version:t.substring(e+5,e+9)}:-1!==(e=t.indexOf("rv"))&&-1!==t.indexOf("Trident")?{name:"ie",version:t.substring(e+5,e+9)}:-1!==(e=t.indexOf("Firefox"))?{name:"Firefox",version:t.substring(e+8,e+12)}:-1!==(e=t.indexOf("Safari"))?{name:"Safari",version:t.substring(e+7,e+11)}:{name:"default",version:"Not Known"}},p=g(),m=function(e,t,r,n){void 0===n&&(n={});var a,i,o=g(),s=n.chartId,c=n.exportCallback,d=n.paper,h=t;"Chrome"===o.name||"Firefox"===o.name||"Safari"===o.name?("blob"===e&&(h=l.URL.createObjectURL(h)),(i=u.createElement("a")).download=r,i.href=h,u.body.appendChild(i),i.onclick=function(){c&&l[c]&&"function"==typeof l[c]&&l[c]({statusCode:1,statusMessage:"success",DOMId:s,width:d&&d.width,height:d&&d.height}),i.parentNode.removeChild(i)},i.click()):"ie"!==o.name&&"Edge"!==o.name||l.navigator.msSaveBlob&&(a="url"===e?function(e){var t,r,n,a;for(t=e.split(",")[0].indexOf("base64")>=0?l.atob(e.split(",")[1]):l.unescape(e.split(",")[1]),r=e.split(",")[0].split(":")[1].split(";")[0],n=new Uint8Array(t.length),a=0;a<t.length;a++)n[a]=t.charCodeAt(a);return new l.Blob([n],{type:r})}(h):h,l.navigator.msSaveBlob(a,r)&&c&&l[c]&&"function"==typeof l[c]&&l[c]({statusCode:1,statusMessage:"success",DOMId:s,width:d&&d.width,height:d&&d.height}))};t.drawSvgOnCanvas=function(e,t){void 0===e&&(e={});var r,n,i,s,u=e,d=u.svg,h=u.canvas,f=u.x,g=u.y,m=u.width,v=u.height,b=u.useCanvas;"ie"===p.name||"Edge"===p.name||b?new a["default"](d,h,f,g,m,v,(function(){t()})):(s=function(e){return'<?xml version="1.0" standalone="no"?>\n <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> '+e}(d),i=s="data:image/svg+xml;base64,"+l.btoa(l.unescape(encodeURIComponent(s))),r=h.getContext("2d"),(n=new c).onload=function(){r.drawImage(n,f,g,m,v),t()},n.onerror=function(){(0,o.raiseWarning)(this,"","run","libSVGToCanvas:drawSvgOnCanvas","Unable to load image for canvas drawing. Aborting attempt.")},n.src=i)},t.downloadCharts=function(e,t,r,n,a){var c;!t||(c=t,p.name.toLowerCase()==="Chrome".toLowerCase()&&function(e){var t,r,n;for(t=e.length,n=e.length-1;n>=0;n--)(r=e.charCodeAt(n))>127&&r<=2047?t++:r>2047&&r<=65535&&(t+=2),r>=56320&&r<=57343&&n--;return t}(c)>void 0)?n&&function(e,t){var r,n,a,c,f,g,p,m,v=t.exportAction,b=t.exportTargetWindow,y=t.exportCallback,x=t.fusionCharts.apiInstance,C=t.paper,w=t.chartId,_=t.exportHandler,k=e.parameters;if(v===d||v===h){for(r in/(webkit|gecko)/gi.test(l.navigator.userAgent)&&"_self"===b&&(b=a=w+"export_iframe",m||(m=c=(0,i.createElement)("IFRAME",{name:a,width:"1px",height:"1px"},u.body),c.style.cssText="position:absolute;left:-10px;top:-10px;")),n=(0,i.createElement)("form",{method:"POST",action:_,target:b,style:"display:none;"},u.body),e)(0,i.createElement)("input",{type:"hidden",name:r,value:e[r]},n);return n.submit(),u.body.removeChild(n),n=void 0,g=k.match(/exportfilename=([^|]+)/)[1],p=k.match(/exportformat=([^|]+)/)[1],(0,o.triggerEvent)("exported",x,{DOMId:w,height:C.height,width:C.width,fileName:g+"."+p,statusCode:void 0,statusMessage:void 0,notice:void 0}),y&&l[y]&&"function"==typeof l[y]&&l[y]({statusCode:1,statusMessage:"success",DOMId:w,width:C&&C.width,height:C&&C.height}),!0}for(r in f=new s["default"]((function(e){var t={};e.replace(new RegExp("([^?=&]+)(=([^&]*))?","g"),(function(e,r,n,a){t[r]=a})),y&&l[y]&&"function"==typeof l[y]&&l[y](t),(0,o.triggerEvent)("exported",x,t)}),(function(e){var t={statusCode:0,statusMessage:"failure",error:e,DOMId:w,width:C&&C.width,height:C&&C.height};y&&l[y]&&"function"==typeof l[y]&&l[y](t),(0,o.triggerEvent)("exported",x,t,[t])})),e)e.hasOwnProperty(r)&&(e[r]=encodeURIComponent(e[r]));f.post(_,e)}(n,a):m(e,t,r,a)},t.browserDetails=p,t.isCanvasElemSupported=f,p.hasCanvas=f(),p.hasSvg=i.hasSVG},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n,a="undefined"!=typeof window?window:null,i=a.document,o={},s={};(n=function(e,t,r,a,i,o,s){var l={svg:"",context:"",callBack:"",imageArr:[],canvas:"",dimention:{}};if(!(this instanceof n))throw new Error("This function should be used as class");this._getStore=function(e){return"undefined"!=typeof l[e]&&l[e]},this._setStore=function(e,t){"undefined"!=typeof l[e]&&(l[e]=t)},this._setStore("dimention",{x:r,y:a,width:i,height:o}),e&&this.setSVG(e),t&&this.setContext(t),s&&this.setCallback(s),this.drawOnCanvas()}).prototype.setContext=function(e){var t;if(!e.getContext||!e.getContext("2d"))throw new Error("Please provide valid canvas");t=e.getContext("2d"),this._setStore("canvas",e),this._setStore("context",t)},n.prototype.getContext=function(){return this._getStore("context")},n.prototype.setSVG=function(e){var t;if("undefined"!=typeof e.documentElement)t=e,this._setStore("svg",t);else{if("<"!==e.substr(0,1))throw new Error("Please provide valid SVG");t=s.StrToDom(e),this._setStore("svg",t)}},n.prototype.getSVG=function(){return this._getStore("svg")},n.prototype.setCallback=function(e){"function"==typeof e&&this._setStore("callBack",e)},n.prototype.getCallback=function(){return this._getStore("callBack")},n.prototype.drawOnCanvas=function(e,t,r,n,a,i,o){var l,c,u,d,h,f,g,p;e&&this.setSVG(e),t&&this.setContext(t),o&&this.setCallback(o),t=t||this._getStore("canvas"),g=this._getStore("dimention"),o=this.getCallback(),l=this.getContext(),(c=this.getSVG())&&l&&(u=(p=s.getSvgDimention(c)).width,d=p.height,r=r||g.x||0,n=n||g.y||0,a=a||u||g.width,i=i||d||g.height,h=p.width?g.width/a:1,f=p.height?g.height/i:1,s.startTransform("translate("+r+","+n+") scale("+h+","+f+")",l),l.save(),l.fillStyle="#ffffff",l.fillRect(0,0,a,i),l.restore(),s.storeImagesInArr(this),s.drawNodes([c],[],this,l,(function(){"function"==typeof o&&o(),s.resetTransform(l)})))},o.common=function(e,t,r,n,a){var i,l,c,u,d=e.childNodes,h=function(){e.attributes&&n.restore(),a&&a()};for(l in t)t.hasOwnProperty(l)&&"class"!==t[l].name&&"id"!==t[l].name&&"transform"!==t[l].name&&"clip-path"!==t[l].name&&"object"==typeof t[l]&&e.attributes&&!e.attributes[t[l].name]&&e.setAttribute([t[l].name],t[l].value);if(e.attributes&&e.attributes.style)for(l in c=e.attributes.style.value.replace(/;$/,"").split(";"))if(c.hasOwnProperty(l)&&(u=c[l].split(":")[0].trim(),!e.attributes[u]||"undefined"===e.attributes[u].value))try{e.setAttribute(u,c[l].split(":")[1].trim())}catch(f){}e.attributes&&(n.save(),e.attributes.transform&&s.startTransform(e.attributes.transform.value,n),e.attributes["clip-path"]&&s.applyClip(e.attributes["clip-path"].value,n,r)),0===d.length||1===d.length&&!d[0].tagName?"undefined"!=typeof e.tagName?(i="draw"+e.tagName,o[i]?e.attributes.display&&"none"===e.attributes.display.value?h():o[i](e,n,r,"draw",h):h()):h():s.drawNodes(d,"svg"===e.tagName?[]:e.attributes,r,n,h)},o.drawtext=function(e,t,r,n,a){this.drawtspan(e,t,r,n,a)},o.drawtspan=function(e,t,r,n,o){var l,c,u,d,h,f=e.innerHTML||e.textContent,g=e.attributes.x?e.attributes.x.value:0,p=e.attributes.y?e.attributes.y.value:0,m=e.attributes.dx?e.attributes.dx.value:0,v=e.attributes.dy?e.attributes.dy.value:0,b="serief",y="normal",x="16px",C=[];i.getElementsByTagName("body")[0]&&((l=a.getComputedStyle(i.getElementsByTagName("body")[0],null)).getPropertyValue("font-family")&&(b=l.getPropertyValue("font-family")),l.getPropertyValue("font-weight")&&(y=l.getPropertyValue("font-weight")),l.getPropertyValue("font-size")&&(x=l.getPropertyValue("font-size"))),c=e.attributes["font-family"]?e.attributes["font-family"].value:b,u=e.attributes["font-weight"]?e.attributes["font-weight"].value:y,d=e.attributes["text-anchor"]?e.attributes["text-anchor"].value:"start",h=e.attributes["font-size"]?e.attributes["font-size"].value:x,g=Number(g)+Number(m),p=Number(p)+Number(v),f=f.trim(),d="middle"===d?"center":d,t.save(),t.font=u+" "+h+" "+c,t.textAlign=d,"draw"===n&&((!e.attributes.fill||e.attributes.fill&&"none"!==e.attributes.fill.value)&&(s.applyFillEffect(e,t,r,C),t.fillText(f,g,p),s.endFillEffect(e,t)),(!e.attributes.stroke||e.attributes.stroke&&"none"!==e.attributes.stroke.value)&&(s.applyStrokeEffect(e,t,r,C),t.strokeText(f,g,p),s.endStrokeEffect(e,t))),t.restore(),"function"==typeof o&&o()},o.drawcircle=function(e,t,r,n,a){var i=Number(e.attributes.cx.value),o=Number(e.attributes.cy.value),l=Number(e.attributes.r.value),c=[];t.beginPath(),t.arc(i,o,l,0,2*Math.PI),s.bBoxFromPoint([i,1*i+1*l,1*i-1*l],[o,1*o+1*l,1*o-1*l],c),"draw"===n&&((!e.attributes.fill||e.attributes.fill&&"none"!==e.attributes.fill.value)&&(s.applyFillEffect(e,t,r,c),t.fill(),s.endFillEffect(e,t)),(!e.attributes.stroke||e.attributes.stroke&&"none"!==e.attributes.stroke.value)&&(s.applyStrokeEffect(e,t,r,c),t.stroke(),s.endStrokeEffect(e,t))),t.closePath(),"function"==typeof a&&a()},o.drawrect=function(e,t,r,n,a){var i=Number(e.attributes.x.value),o=Number(e.attributes.y.value),l=e.attributes.rx?Number(e.attributes.rx.value):0,c=e.attributes.ry?Number(e.attributes.ry.value):0,u=Number(e.attributes.height.value),d=Number(e.attributes.width.value),h=[],f=t.lineCap;t.lineCap="square",s.bBoxFromPoint([i,i+d],[o,o+u],h),t.beginPath(),t.moveTo(i+l,o),t.lineTo(i+d-l,o),t.quadraticCurveTo(i+d,o,i+d,o+c),t.lineTo(i+d,o+u-c),t.quadraticCurveTo(i+d,o+u,i+d-l,o+u),t.lineTo(i+l,o+u),t.quadraticCurveTo(i,o+u,i,o+u-c),t.lineTo(i,o+c),t.quadraticCurveTo(i,o,i+l,o),"draw"===n&&((!e.attributes.fill||e.attributes.fill&&"none"!==e.attributes.fill.value)&&(s.applyFillEffect(e,t,r,h),t.fill(),s.endFillEffect(e,t)),(!e.attributes.stroke||e.attributes.stroke&&"none"!==e.attributes.stroke.value)&&(s.applyStrokeEffect(e,t,r,h),t.stroke(),s.endStrokeEffect(e,t))),t.closePath(),t.lineCap=f,"function"==typeof a&&a()},o.drawellipse=function(e,t,r,n,a){var i=Number(e.attributes.cx.value),o=Number(e.attributes.cy.value),l=Number(e.attributes.rx.value),c=Number(e.attributes.ry.value),u=.5522848*l,d=.5522848*c,h=i+l,f=o+c,g=[];t.beginPath(),t.moveTo(i-l,o),t.bezierCurveTo(i-l,o-d,i-u,o-c,i,o-c),t.bezierCurveTo(i+u,o-c,h,o-d,h,o),t.bezierCurveTo(h,o+d,i+u,f,i,f),t.bezierCurveTo(i-u,f,i-l,o+d,i-l,o),s.bBoxFromPoint([i+l,i-l],[o+c,o-c],g),"draw"===n&&((!e.attributes.fill||e.attributes.fill&&"none"!==e.attributes.fill.value)&&(s.applyFillEffect(e,t,r,g),t.fill(),s.endFillEffect(e,t)),(!e.attributes.stroke||e.attributes.stroke&&"none"!==e.attributes.stroke.value)&&(s.applyStrokeEffect(e,t,r,g),t.stroke(),s.endStrokeEffect(e,t))),t.closePath(),"function"==typeof a&&a()},o.drawimage=function(e,t,r,n,a){var i,o=e.attributes.x?Number(e.attributes.x.value):0,s=e.attributes.y?Number(e.attributes.y.value):0,l=e.attributes.height?Number(e.attributes.height.value):0,c=e.attributes.width?Number(e.attributes.width.value):0,u=r._getStore("imageArr");t.save(),e.attributes.opacity&&(t.globalAlpha=e.attributes.opacity.value),e.attributes["xlink:href"]?(i=e.attributes["xlink:href"].value,"complete"===u[i].status?(t.drawImage(u[i].obj,o,s,c,l),t.globalAlpha=1,t.restore(),"function"==typeof a&&a()):"error"===u[i].status?(t.globalAlpha=1,t.restore(),"function"==typeof a&&a()):"progress"===u[i].status?(u[i].callback=function(){t.drawImage(u[i].obj,o,s,c,l),t.globalAlpha=1,t.restore(),"function"==typeof a&&a()},u[i].errCallback=function(){t.globalAlpha=1,t.restore(),"function"==typeof a&&a()}):(t.globalAlpha=1,t.restore(),"function"==typeof a&&a())):(t.globalAlpha=1,t.restore(),"function"==typeof a&&a())},o.drawpath=function(e,t,r,n,a){var i,o,l,c,u=e.attributes.d.value.match(/[a-z][^a-z"]*/gi),d=[],h=0,f=0,g={};for(i in t.beginPath(),u)if(u.hasOwnProperty(i))switch(o=u[i].substring(0,1),l=s.getArgsAsArray(u[i].substring(1,u[i].length)),o){case"M":h=Number(l[0]),f=Number(l[1]),t.moveTo(h,f),g.cx=h,g.cy=f;break;case"m":h+=Number(l[0]),f+=Number(l[1]),t.moveTo(h,f),g.cx=h,g.cy=f;break;case"L":for(c=0;l[c];c+=2)s.bBoxFromPoint([h,l[c]],[f,l[c+1]],d),h=Number(l[c]),f=Number(l[c+1]),t.lineTo(h,f);break;case"l":for(c=0;l[c];c+=2)s.bBoxFromPoint([h,1*h+1*l[c]],[f,1*f+1*l[c+1]],d),h+=Number(l[c]),f+=Number(l[c+1]),t.lineTo(h,f);break;case"V":for(c=0;l[c];c+=1)s.bBoxFromPoint([h],[f,l[c]],d),f=Number(l[c]),t.lineTo(h,f);break;case"v":for(c=0;l[c];c+=1)s.bBoxFromPoint([h],[f,1*f+1*l[c]],d),f+=Number(l[c]),t.lineTo(h,f);break;case"H":for(c=0;l[c];c+=1)s.bBoxFromPoint([h,l[c]],[f],d),h=Number(l[c]),t.lineTo(h,f);break;case"h":for(c=0;l[c];c+=1)s.bBoxFromPoint([h,1*h+1*l[c]],[f],d),h+=Number(l[c]),t.lineTo(h,f);break;case"Q":for(c=0;l[c];c+=4)s.qBezierBBox(h,f,l[c],l[c+1],l[c+2],l[c+3],d),t.quadraticCurveTo(Number(l[c]),Number(l[c+1]),Number(l[c+2]),Number(l[c+3])),h=Number(l[c+2]),f=Number(l[c+3]);break;case"q":for(c=0;l[c];c+=4)s.qBezierBBox(h,f,h+1*l[c],f+1*l[c+1],1*h+1*l[c+2],1*f+1*l[c+3],d),t.quadraticCurveTo(h+1*l[c],f+1*l[c+1],h+=Number(l[c+2]),f+=Number(l[c+3]));break;case"C":for(c=0;l[c];c+=6)s.cBezierBBox(h,f,l[c],l[c+1],l[c+2],l[c+3],l[c+4],l[c+5],d),t.bezierCurveTo(l[c],l[c+1],l[c+2],l[c+3],l[c+4],l[c+5]),h=Number(l[c+4]),f=Number(l[c+5]);break;case"c":for(c=0;l[c];c+=6)s.cBezierBBox(h,f,h+1*l[c],1*f+1*l[c+1],h+1*l[c+2],1*f+1*l[c+3],h+1*l[c+4],1*f+1*l[c+5],d),t.bezierCurveTo(h+Number(l[c]),f+Number(l[c+1]),h+Number(l[c+2]),f+Number(l[c+3]),h+=Number(l[c+4]),f+=Number(l[c+5]));break;case"a":case"A":for(c=0;l[c];c+=7){var p,m,v,b,y,x,C,w,_,k,S,E,A,T,M,F,I,L,N=Number(l[c]),D=Number(l[c+1]);if(p=Number(l[c+2])*(Math.PI/180),m=Number(l[c+3]),v=Number(l[c+4]),b=Number(l[c+5]),y=Number(l[c+6]),x=Math.cos(p)*(h-b)/2+Math.sin(p)*(f-y)/2,C=-Math.sin(p)*(h-b)/2+Math.cos(p)*(f-y)/2,N=N<0?-N:N,D=D<0?-D:D,(M=Math.pow(x,2)/Math.pow(N,2)+Math.pow(C,2)/Math.pow(D,2))>1&&(N*=Math.sqrt(M),D*=Math.sqrt(M)),F=N>D?N:D,I=N>D?1:N/D,L=N>D?D/N:1,w=(m===v?-1:1)*Math.sqrt((Math.pow(N,2)*Math.pow(D,2)-Math.pow(N,2)*Math.pow(C,2)-Math.pow(D,2)*Math.pow(x,2))/(Math.pow(N,2)*Math.pow(C,2)+Math.pow(D,2)*Math.pow(x,2))),isNaN(w)&&(w=0),k=D*x*-w/N,S=(_=w*(N*C)/D)*Math.cos(p)-k*Math.sin(p)+(h+b)/2,E=_*Math.sin(p)+k*Math.cos(p)+(f+y)/2,A=s.angleBetweenVectors(1,0,(x-_)/N,(C-k)/D),T=s.angleBetweenVectors((x-_)/N,(C-k)/D,(-x-_)/N,(-C-k)/D),0===v&&T>0&&(T-=Math.PI/180*360),1===v&&T<0&&(T+=Math.PI/180*360),0===N&&0===D){t.lineTo(b,y);break}t.save();var O=s.combineTransformMatrix([[1,0,S,0,1,E],[Math.cos(p),Math.sin(p),0,Math.sin(p),Math.cos(p),0],[I,0,0,0,L,0]]);t.transform(O[0],O[3],O[1],O[4],O[2],O[5]),t.arc(0,0,F,A,A+T,1-v),t.restore(),s.arcBBox(0,0,F,A,A+T,1-v,[O[0],O[3],O[1],O[4],O[2],O[5]],d),"A"===o?(h=Number(l[c+5]),f=Number(l[c+6])):(h+=Number(l[c+5]),f+=Number(l[c+6]))}break;case"Z":case"z":t.closePath(),h=g.cx,f=g.cy}"draw"===n&&((!e.attributes.fill||e.attributes.fill&&"none"!==e.attributes.fill.value)&&(s.applyFillEffect(e,t,r,d),t.fill(),s.endFillEffect(e,t)),(!e.attributes.stroke||e.attributes.stroke&&"none"!==e.attributes.stroke.value)&&(s.applyStrokeEffect(e,t,r,d),t.stroke(),s.endStrokeEffect(e,t)),a())},s.drawNodes=function(e,t,r,n,a){var i=e.length,s=-1,l=0,c=0;!function u(){var d;(s+=1)<i?((d=e[s]).tagName&&"defs"===d.tagName&&(d=e[s+=1]),d.attributes&&(d.attributes.dy&&(c=d.attributes.dy.value=1*d.attributes.dy.value+1*c),d.attributes.dx&&(l=d.attributes.dx.value=1*d.attributes.dx.value+1*l)),o.common(d,t,r,n,u)):a&&a()}()},s.getSvgDimention=function(e){var t,r={width:0,height:0};return t=e.childNodes&&e.childNodes[0]&&e.childNodes[0].attributes,r.width=Number(t.width&&t.width.value||0),r.height=Number(t.height&&t.height.value||0),r},s.storeImagesInArr=function(e){var t,r,n,a,i=e.getSVG();for(a in n=e._getStore("imageArr"),t=i.getElementsByTagName("image"))t.hasOwnProperty(a)&&t[a].attributes&&t[a].attributes["xlink:href"]&&(r=t[a].attributes["xlink:href"].value,n[r]||(n[r]=[],n[r].status="progress",n[r].callback=null,n[r].obj=new Image,n[r].obj.onload=function(e){return function(){var t=n[e].callback;t?(n[e].status="complete",t()):n[e].status="complete"}}(r),n[r].obj.onerror=function(e){return function(){var t=n[e].errCallback;t?(n[e].status="error",t()):n[e].status="error"}}(r),n[r].obj.src=r))},s.startTransform=function(e,t){var r,n,a=e.match(/[^\s][a-z,0-9.\-(\s]+\)/gi);for(n in a)a.hasOwnProperty(n)&&(a[n].indexOf("matrix")>-1&&(r=s.stringToArgs(a[n]),t.transform(r[0],r[1],r[2],r[3],r[4],r[5])),a[n].indexOf("translate")>-1&&(r=s.stringToArgs(a[n]),t.translate(r[0]||0,r[1]||0)),a[n].indexOf("rotate")>-1&&(3===(r=s.stringToArgs(a[n])).length?(t.translate(r[1],r[2]),t.rotate(r[0]*(Math.PI/180)),t.translate(-r[1],-r[2])):t.rotate(r[0]*(Math.PI/180))),a[n].indexOf("scale")>-1&&(1===(r=s.stringToArgs(a[n])).length?t.scale(r[0]||1,r[0]||1):t.scale(r[0]||1,r[1]||1)),a[n].indexOf("skewX")>-1&&(r=s.stringToArgs(a[n]),t.transform(1,0,Math.tan(r[0]*(Math.PI/180)),1,0,0)),a[n].indexOf("skewY")>-1&&(r=s.stringToArgs(a[n]),t.transform(1,Math.tan(r[0]*(Math.PI/180)),0,1,0,0)))},s.resetTransform=function(e){e.setTransform(1,0,0,1,0,0)},s.stringToArgs=function(e){var t=/\(([^)]+)/.exec(e)[1];return s.getArgsAsArray(t)},s.getArgsAsArray=function(e){var t;for(e=e.trim().split(/[\s,]+/),t=0;t<e.length;t++)e[t].trim(),0===e[t].length&&e.splice(t,1);return e},s.applyFillEffect=function(e,t,r,n){var a;e.attributes["fill-opacity"]&&"none"!==e.attributes["fill-opacity"].value?t.globalAlpha=e.attributes["fill-opacity"].value:t.globalAlpha=1,e.attributes.fill&&e.attributes.fill.value.indexOf("url(")>-1?(a=s.getFillStyleById(/url\(.*#([^)'"]+)/.exec(e.attributes.fill.value)[1],t,r,n),t.fillStyle=a):e.attributes.fill?t.fillStyle=e.attributes.fill.value:t.fillStyle="#000000"},s.endFillEffect=function(e,t){t.globalAlpha=1},s.applyStrokeEffect=function(e,t,r,n){e.attributes["stroke-opacity"]&&"none"!==e.attributes["stroke-opacity"].value&&(t.globalAlpha=e.attributes["stroke-opacity"].value),e.attributes["stroke-width"]&&(t.lineWidth=e.attributes["stroke-width"].value,"0"===e.attributes["stroke-width"].value&&(t.globalAlpha=0)),e.attributes["stroke-linecap"]&&"none"!==e.attributes["stroke-linecap"].value&&(t.lineCap=e.attributes["stroke-linecap"].value),e.attributes["stroke-linejoin"]&&"none"!==e.attributes["stroke-linejoin"].value&&(t.lineJoin=e.attributes["stroke-linejoin"].value),e.attributes["stroke-dasharray"]&&"none"!==e.attributes["stroke-dasharray"].value&&t.setLineDash&&t.setLineDash(s.getArgsAsArray(e.attributes["stroke-dasharray"].value)),e.attributes.stroke?t.strokeStyle=e.attributes.stroke.value:t.strokeStyle="#000000"},s.endStrokeEffect=function(e,t){e.attributes["stroke-opacity"]&&"none"!==e.attributes["stroke-opacity"].value&&(t.globalAlpha=1,t.setLineDash&&t.setLineDash([]),t.lineWidth=1),t.globalAlpha=1},s.applyClip=function(e,t,r){var n,a,i,l,c,u=r.getSVG();if(-1!==e.indexOf("url(")){for(l in n=/url\(.*#([^)'"]+)/.exec(e)[1],(a=u.getElementById(n)).attributes&&(t.save(),a.attributes.transform&&s.startTransform(a.attributes.transform.value,t)),i=a.childNodes)i.hasOwnProperty(l)&&i[l].tagName&&i[l].constructor!==Array&&(c="draw"+i[l].tagName,i[l].attributes&&(t.save(),i[l].attributes.transform&&s.startTransform(i[l].attributes.transform.value,t)),o[c]&&(o[c](i[l],t,r,"clip"),t.closePath()),i[l].attributes&&t.restore());a.attributes&&t.restore(),t.clip()}},s.getFillStyleById=function(e,t,r,n){var a=r.getSVG().getElementById(e);return"linearGradient"===a.tagName?s.getLinearGradient(a,t,n):"radialGradient"===a.tagName?s.getRadialGradient(a,t,n):"#FFFFFF"},s.getLinearGradient=function(e,t,r){var n,a,i,o,l,c=e.attributes.x1?s.getPercentValue(e.attributes.x1.value,r.xMax-r.xMin,r.xMin):0,u=e.attributes.y1?s.getPercentValue(e.attributes.y1.value,r.yMax-r.yMin,r.yMin):0,d=e.attributes.x2?s.getPercentValue(e.attributes.x2.value,r.xMax-r.xMin,r.xMin):0,h=e.attributes.y2?s.getPercentValue(e.attributes.y2.value,r.yMax-r.yMin,r.yMin):0;for(i in n=t.createLinearGradient(c,u,d,h),a=e.childNodes)a.hasOwnProperty(i)&&a[i].attributes&&a[i].attributes["stop-color"]&&(o=s.toRGB(a[i].attributes["stop-color"].value),l=a[i].attributes["stop-opacity"]?a[i].attributes["stop-opacity"].value:1,o.status?n.addColorStop(s.getPercentValue(a[i].attributes.offset.value,1,0),"rgba("+o.r+","+o.g+","+o.b+","+Number(l)+")"):n.addColorStop(s.getPercentValue(a[i].attributes.offset.value,1,0),a[i].attributes["stop-color"].value));return n},s.getRadialGradient=function(e,t,r){var n,a,i,o,l,c=e.attributes.cx?s.getPercentValue(e.attributes.cx.value,r.xMax-r.xMin,r.xMin):r.xMin+.5*(r.xMax-r.xMin),u=e.attributes.cy?s.getPercentValue(e.attributes.cy.value,r.yMax-r.yMin,r.yMin):r.yMin+.5*(r.yMax-r.yMin),d=e.attributes.fx?s.getPercentValue(e.attributes.fx.value,r.xMax-r.xMin,r.xMin):r.xMin+.5*(r.xMax-r.xMin),h=e.attributes.fy?s.getPercentValue(e.attributes.fy.value,r.yMax-r.yMin,r.yMin):r.yMin+.5*(r.yMax-r.yMin),f=e.attributes.r?s.getPercentValue(e.attributes.r.value,(r.yMax-r.yMin+r.xMax-r.xMin)/2,0):s.getPercentValue("50%",(r.yMax-r.yMin+r.xMax-r.xMin)/2,0);for(i in n=t.createRadialGradient(d,h,0,c,u,f),a=e.childNodes)a.hasOwnProperty(i)&&a[i].attributes&&a[i].attributes["stop-color"]&&(o=s.toRGB(a[i].attributes["stop-color"].value),l=a[i].attributes["stop-opacity"]?a[i].attributes["stop-opacity"].value:1,o.status?n.addColorStop(s.getPercentValue(a[i].attributes.offset.value,1,0),"rgba("+o.r+","+o.g+","+o.b+","+Number(l)+")"):n.addColorStop(s.getPercentValue(a[i].attributes.offset.value,1,0),a[i].attributes["stop-color"].value));return n},s.getPercentValue=function(e,t,r){var n;return-1!==e.indexOf("%")?((n=/(\d.*)%/.exec(e)[1])>100&&(n=100),n*t/100+1*r):e>1?e:e*t+1*r},s.bBoxFromPoint=function(e,t,r){"undefined"!=typeof r.xMin&&(e.push(r.xMin,r.xMax),t.push(r.yMin,r.yMax)),r.xMin=Math.min.apply(this,e),r.xMax=Math.max.apply(this,e),r.yMin=Math.min.apply(this,t),r.yMax=Math.max.apply(this,t)},s.arcBBox=function(e,t,r,n,a,i,o,s){var l,c,u,d,h,f,g,p,m,v,b;o instanceof Array&&(e=e*o[0]+e*o[2]+o[4],t=t*o[1]+t*o[3]+o[5]),b=function(e,t,r){return(e=(e+2*Math.PI)%(2*Math.PI))<=(t=(t+2*Math.PI)%(2*Math.PI))?e<=r&&r<=t:e>=t?!(e>=r&&r>=t):void 0},l=n%(2*Math.PI),c=a%(2*Math.PI),i&&(l=a%(2*Math.PI),c=n%(2*Math.PI)),u=e+r*Math.cos(l),d=t+r*Math.sin(l),m=[u,e+r*Math.cos(c)],v=[d,t+r*Math.sin(c)],b(l,c,0)&&(m.push(1*e+1*r),v.push(t)),b(l,c,.5*Math.PI)&&(m.push(e),v.push(1*t+1*r)),b(l,c,Math.PI)&&(m.push(e-1*r),v.push(t)),b(l,c,1.5*Math.PI)&&(m.push(e),v.push(t-1*r)),g=Math.max.apply(this,m),h=Math.min.apply(this,m),p=Math.max.apply(this,v),f=Math.min.apply(this,v),"undefined"!=typeof s.xMin?(s.xMin=Math.min(h,s.xMin),s.xMax=Math.max(g,s.xMax),s.yMin=Math.min(f,s.yMin),s.yMax=Math.max(p,s.yMax)):(s.xMin=h,s.xMax=g,s.yMin=f,s.yMax=p)},s.qBezierBBox=function(e,t,r,n,a,i,o){var s,l,c,u,d,h,f,g,p=1*e-2*r+1*a,m=1*t-2*n+1*i;0===p||0===m?(d=Math.max(e,a),c=Math.min(e,a),h=Math.max(t,i),u=Math.min(t,i)):(s=(e-r)/p,l=(t-n)/m,f=e*Math.pow(1-s,2)+2*r*(1-s)*s+a*Math.pow(s,2),g=t*Math.pow(1-l,2)+2*n*(1-l)*l+i*Math.pow(l,2),d=Math.max(e,a,f),c=Math.min(e,a,f),h=Math.max(t,i,g),u=Math.min(t,i,g)),"undefined"!=typeof o.xMin?(o.xMin=Math.min(c,o.xMin),o.xMax=Math.max(d,o.xMax),o.yMin=Math.min(u,o.yMin),o.yMax=Math.max(h,o.yMax)):(o.xMin=c,o.xMax=d,o.yMin=u,o.yMax=h)},s.cBezierBBox=function(e,t,r,n,a,i,o,s,l){var c,u,d,h,f,g,p,m,v,b,y,x,C;null===a&&null===i&&(a=t+2/3*(n-t),n=(r=e+2/3*(r-e))+1/3*(o-e),i=a+1/3*(s-t)),y=function(e,t,r,n,a){return e*Math.pow(1-a,3)+3*t*a*Math.pow(1-a,2)+3*r*a*a*(1-a)+n*a*a*a},f=3*o-9*a+9*r-3*e,g=6*e-12*r+6*a,p=3*r-3*e,o<(c=e)&&(c=o),o>(u=e)&&(u=o),(m=Math.pow(g,2)-4*f*p)>=0&&((v=(-g+Math.sqrt(m))/(2*f))>0&&v<1&&((x=y(e,r,a,o,v))<c&&(c=x),x>u&&(u=x)),(b=(-g-Math.sqrt(m))/(2*f))>0&&b<1&&((x=y(e,r,a,o,b))<c&&(c=x),x>u&&(u=x))),f=3*s-9*i+9*n-3*t,g=6*t-12*n+6*i,p=3*n-3*t,s<(d=t)&&(d=s),s>(h=t)&&(h=s),(m=Math.pow(g,2)-4*f*p)>=0&&((v=(-g+Math.sqrt(m))/(2*f))>0&&v<1&&((C=y(t,n,i,s,v))<d&&(d=C),C>h&&(h=C)),(b=(-g-Math.sqrt(m))/(2*f))>0&&b<1&&((C=y(t,n,i,s,b))<d&&(d=C),C>h&&(h=C))),"undefined"!=typeof l.xMin?(l.xMin=Math.min(c,l.xMin),l.xMax=Math.max(u,l.xMax),l.yMin=Math.min(d,l.yMin),l.yMax=Math.max(h,l.yMax)):(l.xMin=c,l.xMax=u,l.yMin=d,l.yMax=h)},s.combineTransformMatrix=function(e){var t,r,n=e.length-1;if(n<=0)return e[0];for(r=e[0],t=1;t<=n;t++)r[0]=r[0]*e[t][0]+r[1]*e[t][3],r[1]=r[0]*e[t][1]+r[1]*e[t][4],r[2]=r[0]*e[t][2]+r[1]*e[t][5]+1*r[2],r[3]=r[3]*e[t][0]+r[4]*e[t][3],r[4]=r[3]*e[t][1]+r[4]*e[t][4],r[5]=r[3]*e[t][2]+r[4]*e[t][5]+1*r[5];return r},s.angleBetweenVectors=function(e,t,r,n){var a=e*n<t*r?-1:1,i=e*r+t*n,o=Math.sqrt(Math.pow(e,2)+Math.pow(t,2)),s=Math.sqrt(Math.pow(r,2)+Math.pow(n,2));return a*Math.acos(i/(o*s))},s.toRGB=function(e){var t,r,n,a={r:0,g:0,b:0,status:0};return r=function(e){for(n in e)e.hasOwnProperty(n)&&(e[n]<0||isNaN(e[n])?e[n]=0:e[n]>255&&(e[n]=255));return a={r:e[0],g:e[1],b:e[2],status:1}},(e=e.trim()).match(/^rgb\(|^rgba\(/i)?(t=/\(\s*(\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})/.exec(e),r([parseInt(t[1]),parseInt(t[2]),parseInt(t[3])])):e.match(/^#/)&&(t=/(\w{2})(\w{2})(\w{2})/.exec(e),r([parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)])),a},s.StrToDom=function(e){var t;return a.DOMParser?t=(new DOMParser).parseFromString(e,"text/xml"):((t=new a.ActiveXObject("Microsoft.XMLDOM")).async=!1,t.loadXML(e)),t};var l=n;t["default"]=l},function(e,t,r){"use strict";t.__esModule=!0,t.addImage=function(e,t,r){d=t,h=r,s=[],l=0,n=o,a=o,i=o,n=d||c,a=h||u,i=atob(/base64,(.+?)$/g.exec(e)[1]);var d,h},t.getDataUrl=function(){return"data:application/pdf;base64,"+btoa(function(){var e,t,r=[];for(d("%PDF-1.7"),r[1]=l,d("1 0 obj"),d("/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]"),d("endobj"),r[4]=l,d("4 0 obj"),d("<< /Length 36>>"),d("stream"),d("q "+a+" 0 0 "+n+" 0 0 cm /Im3 Do Q"),d("endstream"),d("endobj"),r[5]=l,d("5 0 obj"),d("<</Type /Page /Parent 2 0 R /MediaBox [0 0 "+a+" "+n+"] /Contents [4 0 R ] /Resources <</ProcSet 1 0 R /Font <<>> /XObject <</Im3 3 0 R >> >> >>"),d("endobj"),r[3]=l,d("3 0 obj"),d("<</Type /XObject /Subtype /Image /Width "+a+" /Height "+n+" /ColorSpace /DeviceRGB /BitsPerComponent 8 /Filter /DCTDecode /Length "+i.length+">>"),d("stream"),d(i),d("endstream"),d("endobj"),r[2]=l,d("2 0 obj"),d("<</Type /Pages /Kids [5 0 R ] /Count 1>>"),d("endobj"),r[6]=l,d("6 0 obj"),d("<</Type /Catalog /Pages 2 0 R >>"),d("endobj"),e=l,d("xref"),d("0 7"),d("0000000000 65535 f "),t=1;t<=6;t++)d(("0000000000"+r[t]).slice(-10)+" 00000 n ");return d("trailer"),d("<</Size 7 /Root 6 0 R >>"),d("startxref"),d(e),d("%%EOF"),s.join("\n")}())};var n,a,i,o,s=[],l=0,c=500,u=500;function d(e){l+=e.length+1,s.push(e)}},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n,a,i=r(323),o=r(325),s=r(184),l=r(322),c=r(191),u="newCanvas",d=window,h=Math.max,f=d.Image,g=d.navigator.userAgent.match(/(iPad|iPhone|iPod)/g),p="IMAGE-DATA",m="https:"===d.location.protocol?"https://export.api3.fusioncharts.com/api/v1.0/logs":"http://export.api3.fusioncharts.com/api/v1.0/logs",v="https:"===d.location.protocol?"https://export.api3.fusioncharts.com/":"http://export.api3.fusioncharts.com/",b="",y=function(e){return!e.match(/http:\/\/|https:\/\//)||!/(http:\/\/|https:\/\/)([^\/\:]*)/.exec(e)[2]||d.location.hostname===/(http:\/\/|https:\/\/)([^\/\:]*)/.exec(e)[2]},x=function(e,t,r,n){var a=e,i=t;return isNaN(a)&&(a=(0,s.pluckNumber)(t,n)*(r/n)),isNaN(i)&&(i=(0,s.pluckNumber)(e,r)*(n/r)),{width:a,height:i}},C=function(){(0,c.triggerEvent)("exportcancelled")};function w(){var e,t,r,w,_,k,S,E,A,T,M,F,I,L=arguments[0]||{},N=0,D=!1,O={exportTargetWindow:(0,s.pluck)(L.exportTargetWindow,g?"_parent":"_self"),exportAction:L.exportAction&&"string"==typeof L.exportAction?(F=L.exportAction.toLowerCase(),[l.EXPORTACTION.DOWNLOAD,l.EXPORTACTION.SAVE,l.EXPORTACTION.DOWNLOADSAVE].indexOf(F)>=0?F:l.EXPORTACTION.DOWNLOAD):l.EXPORTACTION.DOWNLOAD,exportFileName:(0,s.pluck)(L.exportFileName,"FusionCharts"),exportHandler:(0,s.pluck)(L.exportHandler,v),exportParameters:(0,s.pluck)(L.exportParameters,b),exportFormat:(0,s.pluck)(L.exportFormat,l.EXPORTFORMAT.PNG),exportCallback:(0,s.pluck)(L.exportCallback,b),exportAtClientSide:(0,s.pluckNumber)(L.exportAtClientSide,1),exportMode:("undefined"!=typeof L.exportAtClientSide&&(M={1:l.EXPORTMODE.AUTO,0:l.EXPORTMODE.SERVER}[L.exportAtClientSide]),M=(M=L.exportMode||M||l.EXPORTMODE.AUTO).toLowerCase()),logEnabled:(0,s.pluckNumber)(L.logEnabled,0),logMode:(T=L.logMode,void 0!==T&&"string"==typeof T&&T.toUpperCase()in l.LOGMODE?l.LOGMODE[T.toUpperCase()]:l.LOGMODE.AUTO),logHandler:(0,s.pluck)(L.logHandler,m)},R=O.exportFormat.toLowerCase(),P=0,V=0,B=a.items,j=x,G=function(e,t,r){var n;return n=!!O.logEnabled,O.logMode===l.LOGMODE.CLIENT&&(n=!1),{charttype:"combined",stream_type:e||"",stream:t||"",is_single_export:!1,is_full_version:!1,version:s.PROJECT_VERSION,user_time_zone:-(new Date).getTimezoneOffset(),log_enabled:n,parameters:["exportfilename="+O.exportFileName,"exportformat="+O.exportFormat,"exportaction="+(0,l.createExportActionOldString)(O.exportAction),"exportactionnew="+O.exportAction,"configuredexportaction="+(r||O.exportAction),"exportparameters="+O].join("|")}},H=function(){return{chartType:"combined",isSingleExport:!1,isFullVersion:!1,exportAction:O.exportAction,userTimeZone:-(new Date).getTimezoneOffset(),exportFileName:[O.exportFileName,O.exportFormat].join("."),exportFormat:O.exportFormat,version:s.PROJECT_VERSION}},z=function(e){e===l.LOGMODE.CLIENT&&(0,l.logCharts)(H(),O)},U=function(e){var t,r,a;(0,c.triggerEvent)("beforeexport",n,n,n,(function(){r="undefined"!=typeof d.btoa&&("Chrome"===i.browserDetails.name||"Firefox"===i.browserDetails.name||"Safari"===i.browserDetails.name||"Edge"===i.browserDetails.name||"ie"===i.browserDetails.name),O.exportMode===l.EXPORTMODE.CLIENT||O.exportMode===l.EXPORTMODE.AUTO&&r?(O.exportAction!==l.EXPORTACTION.DOWNLOAD&&O.exportAction!==l.EXPORTACTION.DOWNLOADSAVE||(t=O.exportMode===l.EXPORTMODE.AUTO?G(p,e):null,(0,i.downloadCharts)("url",e,O.exportFileName+"."+R,t,O),(0,c.triggerEvent)("exported",n,{fileName:O.exportFileName+"."+R})),O.exportAction===l.EXPORTACTION.SAVE||O.exportAction===l.EXPORTACTION.DOWNLOADSAVE?(a=O.exportAction,O.exportAction===l.EXPORTACTION.DOWNLOADSAVE&&(O.exportAction=l.EXPORTACTION.SAVE),t=G(p,e,a),O.paper={width:n,height:n},O.fusionCharts={},(0,i.downloadCharts)(null,null,null,t,O),delete O.paper,delete O.fusioncharts,z(O.logMode)):O.logMode!==l.LOGMODE.SERVER&&(0,l.logCharts)(H(),O)):(t=G(p,e),O.paper={width:n,height:n},O.fusionCharts={},(0,i.downloadCharts)(null,null,null,t,O),delete O.paper,delete O.fusioncharts,z(O.logMode))}),C)},X=function(){if(0===(N-=1)&&D)switch(R){case"png":U(r.toDataURL("image/png"));break;case"jpeg":U(r.toDataURL("image/jpeg"));break;case"pdf":(0,o.addImage)(r.toDataURL("image/jpeg"),P,V),U((0,o.getDataUrl)());break;default:U(r.toDataURL("image/png"))}},W=function(){var e=this;(0,i.drawSvgOnCanvas)({svg:arguments[0],canvas:r,x:e.x,y:e.y,width:e.width,height:e.height,useCanvas:arguments[1]},X)},$=function(t,r){var n,i;(e=a.items[t]).jsVars.instanceAPI&&(_=(_=(_=(_=e.jsVars.instanceAPI.getFromEnv("paper").toSVG(!0)).replace(/NS\d+:/gi,"xlink:")).replace(/(\sd\s*=\s*["'])[M\s\d\.]*(["'])/gi,"$1M 0 0 L 0 0$2")).replace(/(xlink:title\s*=\s*)['"].*?["']/gi,""),N+=1,n=_,i=a.options["export"].useCanvas,(0,l.cacheAllImages)(n,!1,(function(){n=(0,l.replaceImagesWithNonDataUrl)(n),W.call(r||e,n,i)})))};if((I={})[l.EXPORTMODE.CLIENT]=1,I[l.EXPORTMODE.AUTO]=0,I[l.EXPORTMODE.SERVER]=0,O.exportatclientside=I[O.exportMode],i.browserDetails.hasCanvas){for(function(){var e,r,n,a,i=L.charts;if(t=[],i)for(n in i)i.hasOwnProperty(n)&&(e=B[i[n].id])&&(r=i[n],a=j(Number(r.width),Number(r.height),e.width,e.height),t.push({id:e.id,width:a.width,height:a.height,x:r.x,y:r.y}));else for(n in B)B.hasOwnProperty(n)&&(e=B[n],t.push({id:e.id,width:e.width,height:e.height}))}(),A=0,k=t.length;A<k;A+=1)(E=t[A]).x=(0,s.pluckNumber)(E.x,5),E.y=(0,s.pluckNumber)(E.y,P+5),E.height=(0,s.pluckNumber)(E.height),E.width=(0,s.pluckNumber)(E.width),P=h(P,E.y+E.height),V=h(V,E.x+E.width);var Y,q;P=L.imageHeight||P+5,V=L.imageWidth||V+5,Y=function(){for(A=0,k=t.length;A<k;A+=1)E=t[A],A===k-1&&(D=!0),$(E.id,E)},q=L.background,(r=d.document.createElement("canvas")).id=u,r.width=V,r.height=P,r.style.border="1px solid black",(w=r.getContext("2d")).fillStyle=q&&q.bgColor||"#ffffff",w.fillRect(0,0,V,P),q&&q.bgImage&&y(q.bgImage)?((S=new f).src=q.bgImage,S._userData=q,w.globalAlpha=(0,s.pluckNumber)(q.bgImageAlpha,100)/100,S.onload=function(){var e=this._userData,t=(0,s.pluckNumber)(e.bgImageX,0),r=(0,s.pluckNumber)(e.bgImageY,0),n=j(Number(e.bgImageWidth),Number(e.bgImageHeight),this.width,this.height);try{w.drawImage(this,t,r,n.width,n.height)}finally{w.globalAlpha=1,Y()}},S.onerror=function(){Y()}):Y()}}var _={extension:function(e){e.batchExport=w,a=e},name:"batchExportLinker",type:"extension",requiresFusionCharts:!0};t["default"]=_},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(328)),i=r(184),o=function(e){var t=e.sender;(function(e,t){return e.getType()===t})(t,"chartAPI")&&t.registerFactory("logo",(function(e){var t=e.getFromEnv("chart-attrib");(0,i.componentFactory)(e,a["default"],"logo",(0,i.getValidValue)(t.logourl,"")?1:0,[t])}))},s={extension:function(e){e.addEventListener("instantiated",o)},name:"LogoExtension",type:"extension",requiresFusionCharts:!0};t["default"]=s},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(201)),i=n(r(198)),o=r(199),s=r(184),l={vAlign:"top",hAlign:"left"},c={link:{cursor:"pointer",_cursor:"pointer"},normal:{cursor:"default",_cursor:"normal"}},u={tr:{vAlign:"top",hAlign:"right"},bl:{vAlign:"bottom",hAlign:"left"},br:{vAlign:"bottom",hAlign:"right"},cc:{vAlign:"middle",hAlign:"middle"}},d=!(!window.SVGAngle&&!document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")),h=function(e){var t=e.config;return{load:function(){var r,n=e.getGraphicalElement("logoImage"),a=e.getFromEnv("chartConfig"),i=a.borderWidth||0,o=t.logoPosition,l=t.logoScale,c=t.logoLeftMargin,u=t.logoTopMargin,h=t.logoURL,f=t.logoAlpha,g=t.logoPositionSTR,p=t.logoLink;n.show(),r=(0,s.setImageDisplayMode)("none",o.vAlign,o.hAlign,l,i,a.width,a.height,n._.RefImg),d&&(r.w=r.width||0,r.h=r.height||0),r.transform="T"+c+","+u,n.attr(r),e.getFromEnv("chart").fireChartInstanceEvent("LogoLoaded",{logoURL:h,logoAlpha:f,logoPosition:g,logoScale:l,logoLink:p})},error:function(r){var n=t.logoURL,a=t.logoAlpha,i=t.logoPositionSTR,o=t.logoScale,s=t.logoLink;e.getFromEnv("chart").fireChartInstanceEvent("LogoLoadError",{logoURL:n,logoAlpha:a,logoPosition:i,logoScale:o,logoLink:s,error:r})},mouseover:function(r){var n=(0,s.getMouseCoordinate)(e.getFromEnv("chartInstance").ref,r),a=t.logoURL,i=t.logoAlpha,o=t.logoPositionSTR,l=t.logoScale,c=t.logoLink;e.getFromEnv("chart").fireChartInstanceEvent("LogoRollover",{logoURL:a,logoAlpha:i,logoPosition:o||"tl",logoScale:l,logoLink:c,chartX:n.chartX,chartY:n.chartY,pageX:n.pageX,pageY:n.pageY})},mouseout:function(r){var n=(0,s.getMouseCoordinate)(e.getFromEnv("chartInstance").ref,r),a=t.logoURL,i=t.logoAlpha,o=t.logoPositionSTR,l=t.logoScale,c=t.logoLink;e.getFromEnv("chart").fireChartInstanceEvent("LogoRollout",{logoURL:a,logoAlpha:i,logoPosition:o||"tl",logoScale:l,logoLink:c,chartX:n.chartX,chartY:n.chartY,pageX:n.pageX,pageY:n.pageY})},click:function(r){var n=(0,s.getMouseCoordinate)(e.getFromEnv("chartInstance").ref,r),a=t.logoURL,i=t.logoAlpha,o=t.logoPositionSTR,l=t.logoScale,c=t.logoLink;e.getFromEnv("chart").fireChartInstanceEvent("LogoClick",{logoURL:a,logoAlpha:i,logoPosition:o||"tl",logoScale:l,logoLink:c,chartX:n.chartX,chartY:n.chartY,pageX:n.pageX,pageY:n.pageY},void 0,t.linkClickFN)}}},f=function(e){function t(){var t;t=e.call(this)||this;var r=(0,a["default"])(t);return r.config._context={},r.config.handler=h(r),r.config.linkClickFN=function(){var e=r.config.logoLink;e&&r.getFromEnv("linkClickFN").call({link:e},!0)},t}(0,i["default"])(t,e);var r=t.prototype;return r.configureAttributes=function(){var e=this.config,t=this.getFromEnv("chart-attrib");e.logoURL=(0,s.getValidValue)(t.logourl,""),e.logoPositionSTR=(0,s.pluck)(t.logoposition,"tl").toLowerCase(),e.logoPosition=u[e.logoPositionSTR]||l,e.logoAlpha=(0,s.pluckNumber)(t.logoalpha,100),e.logoLink=(0,s.getValidValue)(t.logolink),e.logoScale=(0,s.pluckNumber)(t.logoscale,100),e.logoLeftMargin=(0,s.pluckNumber)(t.logoleftmargin,0),e.logoTopMargin=(0,s.pluckNumber)(t.logotopmargin,0),this.setState("dirty",!0)},r._contextChanged=function(){var e,t=this.config,r=this.getFromEnv("chartConfig"),n=r.borderWidth,a=r.width,i=r.height;return n!==t._context.chartBorderWidth&&(t._context.chartBorderWidth=n,e=!0),a!==t._context.chartWidth&&(t._context.chartWidth=a,e=!0),i!==t._context.chartHeight&&(t._context.chartHeight=i,e=!0),e},r.draw=function(){var e=this.config,t=this.getGraphicalElement("logoImage"),r=e.logoURL,n=!this.getState("removed");(!n||this.getState("dirty")||this._contextChanged())&&r&&n&&(t=this.getFromEnv("animationManager").setAnimation({el:t||"image",attr:{opacity:.01*e.logoAlpha||1,src:r},component:this,container:this.getLinkedParent().getChildContainer("logoGroup")}),this.getGraphicalElement("logoImage")||(this.addGraphicalElement("logoImage",t),t.on("load",e.handler.load),t.on("error",e.handler.error),t.on("fc-click",e.handler.click),t.on("fc-mouseover",e.handler.mouseover),t.on("fc-mouseout",e.handler.mouseout)),t.css(c[e.logoLink?"link":"normal"]))},t}(o.ComponentInterface);t["default"]=f},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n="Theme";var a={extension:function(e){e.addEventListener("register",(function(t,r){var a,i=r[0],o=r[1];if(i&&"string"==typeof i&&"theme"===i&&o&&"object"==typeof o){if(o instanceof Array)for(a=0;a<o.length;a++)e.addDep({extension:o[a],name:o[a].name+n,type:"theme"});else e.addDep({extension:o,name:o.name+n,type:"theme"});t.preventDefault()}}))},name:"ThemeEngine",type:"extension",requiresFusionCharts:!0};t["default"]=a},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n,a=r(191);(n={outputHelpers:{text:function(e,t){n.outputTo("#"+e.eventId+" ["+(e.sender.id||e.sender).toString()+'] fired "'+e.eventType+'" event. '+("error"===e.eventType||"warning"===e.eventType?t.message:""))},event:function(e,t){this.outputTo(e,t)},verbose:function(e,t){n.outputTo(e.eventId,e.sender.id,e.eventType,t)}},outputHandler:function(e,t){"function"==typeof n.outputTo&&n.currentOutputHelper(e,t)},currentOutputHelper:void 0,outputTo:void 0,enabled:!1}).currentOutputHelper=n.outputHelpers.text;var i={extension:function(e){e["debugger"]={outputFormat:function(e){var t=e;return!(!t||"function"!=typeof t.toLowerCase||"function"!=typeof n.outputHelpers[t=t.toLowerCase()])&&(n.currentOutputHelper=n.outputHelpers[t],!0)},outputTo:function(t){"function"==typeof t?n.outputTo=t:null===t&&(e["debugger"].enable(!1),delete n.outputTo)},enable:function(t,r,i){var o,s=t,l=r,c=i;return"object"==typeof s&&1===arguments.length&&(s=(o=s).state,l=o.outputTo,c=o.outputFormat),"function"==typeof s&&("string"!=typeof l||2!==arguments.length&&!o||(c=l),l=s,s=!0),"boolean"==typeof s&&s!==n.enabled&&(n.enabled=s,n.enabled?(0,a.addListener)("*",n.outputHandler):(0,a.removeListener)("*",n.outputHandler)),"function"==typeof l&&(n.outputTo=l),e["debugger"].outputFormat(c),n.enabled}}},name:"Debugger",type:"extension",requiresFusionCharts:!0};t["default"]=i},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a,i=n(r(332)),o=r(184),s=r(196),l=0;function c(e,t){var r=this.apiInstance,n=t,c=r.getChildren("dataset")[0],u=c.getChildren(),d=u.centerLabel&&u.centerLabel[0],h=r.config;d===a&&((0,o.componentFactory)(c,i["default"],"centerLabel",1,[h]),d=u.centerLabel&&u.centerLabel[0]),r.addJob("eiMethods-center-lebel"+l++,(function(){var t,i,o=r.getDatasets()[0],s=o.config.piePlotOptions.innerSize;if(t=d.config,"object"!=typeof n)n=t;else{for(i in t)n[i]===a&&(n[i]=t[i]);t=Object.assign(t,n)}n.label=e,t.label=e,o.centerLabelConfig=t,s&&d&&d.draw(e||"")}),s.priorityList.postRender)}var u={extension:function(e){e.addEventListener("instantiated",(function(e){var t=e.sender;(function(e){var t=e.getName().toLowerCase();return("doughnut2d"===t||"multilevelpie"===t)&&"dataset"===e.getType()})(t)&&t.registerFactory("centerLabel",(function(){var e=t.getFromEnv("chartConfig"),r=!(!e.centerlabel&&!e.defaultcenterlabel);t.getFromEnv("chartInstance").centerLabel=c,(0,o.componentFactory)(t,i["default"],"centerLabel",r?1:0,[e])}))}))},name:"CenterLabelExtension",type:"extension",requiresFusionCharts:!0};t["default"]=u},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(199),o=r(184),s=r(192),l=n(r(333));(0,s.addDep)({name:"centerLabelAnimation",type:"animationRule",extension:l["default"]});var c=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.getName=function(){return"centerLabel"},r.getType=function(){return"centerLabel"},r.configure=function(e){var t=this.getFromEnv("chart-attrib"),r=this.getFromEnv("number-formatter"),n=e.dataLabelStyle,a=this;a.config={label:(0,o.parseUnsafeString)((0,o.pluck)(t.defaultcenterlabel,"")),font:(0,o.pluck)(t.centerlabelfont,n.fontFamily),fontSize:(0,o.pluckNumber)(t.centerlabelfontsize,parseInt(n.fontSize,10)),color:(0,o.getFirstColor)((0,o.pluck)(t.centerlabelcolor,t.valuefontcolor,e.style.inCanvasStyle.color,"555555")),alpha:(0,o.pluckNumber)(t.centerlabelalpha,100),bold:(0,o.pluckNumber)(t.centerlabelbold,n.fontWeight),italic:(0,o.pluckNumber)(t.centerlabelitalic,n.style),bgColor:(0,o.pluck)(t.centerlabelbgcolor,""),bgAlpha:(0,o.pluckNumber)(t.centerlabelbgalpha,100),borderColor:(0,o.pluck)(t.centerlabelbordercolor,n.borderColor),borderAlpha:(0,o.pluckNumber)(t.centerlabelborderalpha,100),borderThickness:(0,o.pluckNumber)(t.centerlabelborderthickness,n.borderThickness),borderRadius:(0,o.pluckNumber)(t.centerlabelborderradius,n.borderRadius),textPadding:(0,o.pluckNumber)(t.centerlabeltextpadding,n.borderPadding),padding:(0,o.pluckNumber)(t.centerlabelpadding,2),bgOval:(0,o.pluckNumber)(t.centerlabelbgoval,0),shadow:(0,o.pluckNumber)(t.showcenterlabelshadow,0),hoverColor:t.centerlabelhovercolor&&(0,o.getFirstColor)((0,o.pluck)(t.centerlabelhovercolor)),hoverAlpha:(0,o.pluckNumber)(t.centerlabelhoveralpha),toolText:(0,o.parseUnsafeString)((0,o.pluck)(t.centerlabeltooltext,o.BLANKSTRING))},a.addExtEventListener("datasetrollover",(function(e){var t=e.data,n=(0,o.pluck)(function(e,t,r){var n=e;if(n)for(var a,i=t.length||0;i--;)a=new RegExp(t[i],"gi"),n=n.replace(a,r[i]);return n}(e.sender.getFromEnv("dataSource").chart.centerlabel,["\\$value","\\$percentValue","\\$displayValue","\\$label"],[r.scale(t.value),t.pValue,t.displayValue,t.label]),"");a.draw(n,!1)}),this.getFromEnv("chart").getDatasets()[0]),a.addExtEventListener("datasetrollout",(function(e){a.draw((0,o.pluck)(e.sender.config.label,""),!1)}),this.getFromEnv("chart").getDatasets()[0])},r.draw=function(e){var t,r,n=this,a=n.getFromEnv("chart"),i=a.config.canvasLeft+.5*a.config.canvasWidth,s=a.config.canvasTop+.5*a.config.canvasHeight,l=a.getDatasets()[0].config.innerSize,c=a.getDatasets()[0].config.innerSize,u=a.getDatasets()[0].config,d=this.config,h=n.getFromEnv("animationManager"),f=n.getFromEnv("smartLabel"),g=this.getGraphicalElement("centerLabel"),p=g,m=this.getGraphicalElement("centerLabelBg"),v=a.getChildContainer("plotGroup"),b=d.padding,y=2*d.textPadding,x={fontFamily:d.font,fontSize:d.fontSize+"px",lineHeight:1.2*d.fontSize+"px",fontWeight:d.bold?"bold":"",fontStyle:d.italic?"italic":""},C=1.414*(.5*l-b)-y,w=1.414*(.5*c-b)-y,_=n.getFromEnv("toolTipController");t=(0,o.pluck)(e,d.label),f.setStyle(x),f.useEllipsesOnOverflow(a.config.useEllipsesWhenOverflow),r=f.getSmartText(t,C,w),t?(d.bgOval&&(m=h.setAnimation({el:m||"circle",attr:{cx:i,cy:s,r:.5*l-b,visibility:"visible",container:v,fill:(0,o.hashify)(d.bgColor),"fill-opacity":d.bgAlpha/100,stroke:(0,o.hashify)(d.borderColor),"stroke-width":d.borderThickness,"stroke-opacity":d.borderAlpha/100},component:n})),p=h.setAnimation({el:g||"text",component:n,container:v,css:x,attr:{x:i,y:s,text:r.text,visibility:"visible",direction:a.config.textDirection,fill:(0,o.toRaphaelColor)({FCcolor:{color:d.color,alpha:d.alpha}}),"text-bound":d.bgOval?"none":[(0,o.toRaphaelColor)({FCcolor:{color:d.bgColor,alpha:d.bgAlpha}}),(0,o.toRaphaelColor)({FCcolor:{color:d.borderColor,alpha:d.borderAlpha}}),d.borderThickness,d.textPadding,d.borderRadius]},label:"text"}),_.enableToolTip(p,d.toolText||r.tooltext)):(p&&h.setAnimation({el:p,attr:{visibility:"hidden"},component:n}),m&&h.setAnimation({el:m,attr:{visibility:"hidden"},component:n})),g?p.attr("text")!==t&&n.centerLabelChange(t):(n.addEventListener("fc-mouseover",(function(){n._centerLabelRollover(a)})),n.addEventListener("fc-mouseout",(function(){n._centerLabelRollout(a)})),n.addEventListener("fc-click",(function(){n._centerLabelClick(a)})),n.addGraphicalElement("centerLabel",p),n.addGraphicalElement("centerLabelBg",m)),u.lastCenterLabelConfig=d,u.centerLabelConfig=d},r.centerLabelChange=function(e){var t=this.getFromEnv("chart"),r=t.config,n=this.getFromEnv("chartInstance"),a={height:r.height,width:r.width,pixelHeight:t.getFromEnv("chartWidth"),pixelWidth:t.getFromEnv("chartHeight"),id:n.id,renderer:n.args.renderer,container:n.options.containerElement,centerLabelText:e};t.fireChartInstanceEvent("centerLabelChanged",a)},r._centerLabelRollover=function(e){var t=e.config,r=e.getFromEnv("chartInstance"),n=this.config,a={height:t.height,width:t.width,pixelHeight:e.getFromEnv("chartWidth"),pixelWidth:e.getFromEnv("chartHeight"),id:r.id,renderer:r.args.renderer,container:r.options.containerElement,centerLabelText:n&&n.label};this.getFromEnv("paper").attr("text")&&e.fireChartInstanceEvent("centerLabelRollover",a,void 0,this.hoverOnCenterLabel.bind(this,e))},r._centerLabelRollout=function(e){var t=e.config,r=e.getFromEnv("chartInstance"),n=this.config,a={height:t.height,width:t.width,pixelHeight:e.getFromEnv("chartWidth"),pixelWidth:e.getFromEnv("chartHeight"),id:r.id,renderer:r.args.renderer,container:r.options.containerElement,centerLabelText:n&&n.label};this.getFromEnv("paper").attr("text")&&e.fireChartInstanceEvent("centerLabelRollout",a,void 0,this.hoverOffCenterLabel.bind(this,e))},r._centerLabelClick=function(e){var t,r=e.config,n=e.getFromEnv("chartInstance"),a={height:r.height,width:r.width,pixelHeight:e.getFromEnv("chartWidth"),pixelWidth:e.getFromEnv("chartHeight"),id:n.id,renderer:n.args.renderer,container:n.options.containerElement};t=this.config,a.centerLabelText=t&&t.label,this.getFromEnv("paper").attr("text")&&e.fireChartInstanceEvent("centerLabelClick",a)},r.hoverOnCenterLabel=function(e){var t=e.getChildren("dataset")[0].config.lastCenterLabelConfig;(t.hoverColor||t.hoverAlpha)&&this.getGraphicalElement("centerLabel").attr({fill:(0,o.toRaphaelColor)({FCcolor:{color:t.hoverColor||t.color,alpha:t.hoverAlpha||t.alpha}})})},r.hoverOffCenterLabel=function(e){var t=e.getChildren("dataset")[0].config.lastCenterLabelConfig;(t.hoverColor||t.hoverAlpha)&&this.getGraphicalElement("centerLabel").attr({fill:(0,o.toRaphaelColor)({FCcolor:{color:t.color,alpha:t.alpha}})})},t}(i.ComponentInterface);t["default"]=c},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]={"initial.centerLabel.centerLabel.text.appearing":function(e){if(e.attr)return[{initialAttr:{x:e.attr.x,y:e.attr.y}}]}}},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=r(184),i=n(r(335)),o=n(r(337)),s={dragnode:!0,hlineargauge:!0,column3d:!0,mscolumn3d:!0,bar3d:!0,pareto3d:!0,msbar3d:!0,stackedcolumn3d:!0,stackedbar3d:!0,mscombi3d:!0,mscolumnline3d:!0,stackedcolumn3dline:!0,mscolumn3dlinedy:!0,stackedcolumn3dlinedy:!0,realtimearea:!0,realtimecolumn:!0,realtimeline:!0,realtimestackedarea:!0,realtimestackedcolumn:!0,angulargauge:!0,realtimelinedy:!0,kagi:!0,treemap:!0,heatmap:!0,boxandwhisker2d:!0,scatter:!0,timeseries:!0,bubble:!0,errorscatter:!0,sparkwinloss:!0,zoomscatter:!0,zoomline:!0,zoomlinedy:!0,chord:!0},l=function(e){if("chartAPI"===e.sender.getType()){var t=e.sender,r=t.getFromEnv("chartInstance");r.drawCrossline=function(e){r.drawConsolidatedToolTip(e),t.iterateComponents((function(t){"crossline-manager"===t.getType()&&(e!==a.UNDEF?t.show({value:e}):t.hide())}))}}},c=function(e){var t,r,n,a=e.sender.apiInstance.getChildren("canvas");for(n=0;n<a.length;n++)(t=(t=a[n].getChildren("crosslineManagerBand"))&&t[0])&&(r=t._handlerAPI,t.config.axisScrolling=!0,r.onhoverout(e))},u=function(e){var t,r,n=e.sender.apiInstance.getChildren("canvas");for(r=0;r<n.length;r++)(t=n[r].getChildren("crosslineManagerBand"))&&t[0]&&(t[0].config.axisScrolling=!1)},d=function(e){if("canvas"===e.sender.getName()){var t,r,n=e.sender;n.registerFactory("crossLineManager",(function(){var l=e.sender.getFromEnv("chart"),c=l&&l.getName();c&&!s[c.toLowerCase()]&&((0,a.componentFactory)(n,o["default"],"crosslineManagerBand"),t=n.getChildren("crosslineManagerBand")[0],r=t._handlerAPI,t.configure(),(0,a.componentFactory)(t,i["default"],"crossline"),t.addExtEventListener("fc-mouseover",r.onhover,n),t.addExtEventListener("fc-mousemove",r.onhover,n),t.addExtEventListener("fc-mouseout",r.onhoverout,n))}))}},h={extension:function(e){e.addEventListener("preconfigure",l),e.addEventListener("scrollstart",c),e.addEventListener("scrollend",u),e.addEventListener("instantiated",d)},name:"crossline-manager",type:"extension",requiresFusionCharts:!0};t["default"]=h},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(199),o=r(184),s=r(192),l=n(r(336)),c=function(e){function t(){var t;return t=e.call(this)||this,(0,s.addDep)({name:"crosslineAnimation",type:"animationRule",extension:l["default"]}),t}(0,a["default"])(t,e);var r=t.prototype;return r.getName=function(){return"crossline"},r.getType=function(){return"crossline"},r.show=function(e){void 0===e&&(e={});var t=!!e.onTop,r=e.type;t!==this.config.prevRenderedOnTop&&this.hide(),!this[r]&&(r="band"),this[r](e),this.config.prevRenderedOnTop=t},r.band=function(e){void 0===e&&(e={});var t,r,n=e.managerId,a=e.x1,i=e.y1,s=e.x2,l=e.y2,c=(0,o.toRaphaelColor)({color:(0,o.pluck)(e.fillcolor,"#EEEEEE"),alpha:(0,o.pluckNumber)(e.alpha,50)}),u=this.getLinkedParent().getLinkedParent().getEffectiveDimensions(),d=[u.left,u.top,u.width,u.height].toString(),h=this.getLinkedParent().getChildContainer("crosslineBottom"),f=this.getLinkedParent().getChildContainer("crosslineTop");r=e.onTop?f:h,(t=this.getGraphicalElement("crosslineBand"+n))?e.animDuration?t.animate({path:["M",a,i,"L",s,l]},e.animDuration,"ease-in"):t.attr({path:["M",a,i,"L",s,l],"clip-rect":d}):this.addGraphicalElement("crosslineBand"+n,this.getFromEnv("paper").path({path:["M",a,i,"L",s,l],"clip-rect":d,stroke:c,fill:c,"stroke-width":e.thickness,"stroke-linecap":"butt"},r))},r.hide=function(){for(var e=this.getGraphicalElement(),t=Object.keys(e),r=t.length-1;r>-1;r--)e[t[r]].stop(o.UNDEF,!0,!0),e[t[r]].remove(),delete e[t[r]]},t}(i.ComponentInterface);t["default"]=c},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]={crossline:{crossline:{path:{updating:function(e){return[{initialAttr:{path:e.el.attr("path")},finalAttr:{path:e.attr.path}}]}}}}}},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(201)),i=n(r(198)),o=r(184),s=r(199),l=o.hasSVG?0:.5,c=function(e){return{onhover:function(t,r){!e.config.axisScrolling&&e.show(r.axes?{axesInfo:r.axes}:{event:t})},onhoverout:function(t){e.hide({event:t})}}},u=function(e,t,r){return r.getFromEnv("animationManager").setAnimation({el:"group",attr:{name:e},container:t,state:"appearing",component:r,label:"group"})},d=function(e){function t(){var t;return(t=e.call(this)||this)._handlerAPI=c((0,a["default"])(t)),t.mouseOutTimer=o.UNDEF,t}(0,i["default"])(t,e);var r=t.prototype;return r.getAttachedAxisInfo=function(e){void 0===e&&(e={});var t,r,n,a,i=this.getLinkedParent().getAxes(),s=e.originalEvent&&(0,o.getMouseCoordinate)(this.getLinkedParent().getFromEnv("chart-container"),e.originalEvent,this.getFromEnv("chart")),l=s&&s.chartX||0,c=s&&s.chartY||0;for(t=i.length-1;t>=0;t--)if(r=i[t].axis,!i[t].isY)return n=!!r.config.isVertical,a=r.getTranslation(),{value:n?r.getValue(c+a):r.getValue(l+a),axis:r,isVertical:n,isY:!1}},r.configure=function(){var e=this.config,t=this.getFromEnv("chartConfig"),r=this.getFromEnv("chart-attrib");e.drawCrossLine=(0,o.pluckNumber)(r.drawcrossline,t.drawcrossline,0),e.bandStyle={fillcolor:(0,o.pluck)(r.crosslinecolor,t.crosslinecolor,"#EEEEEE"),alpha:(0,o.pluckNumber)(r.crosslinealpha,t.crosslinealpha,50),thickness:(0,o.pluckNumber)(t.defaultcrosslinethickness),managerId:this.getId(),onTop:(0,o.pluckNumber)(r.drawcrosslineontop,t.drawcrosslineontop,0),cursor:"pointer",animDuration:(0,o.pluckNumber)(r.crosslineanimation,0)&&1e3*(0,o.pluckNumber)(r.crosslineanimationduration,.09)}},r.createGroup=function(){var e=this.getLinkedParent().getChildContainer("crosslineBottom"),t=this.getLinkedParent().getChildContainer("crosslineTop");!this.getChildContainer("crosslineTop")&&this.addChildContainer("crosslineTop",u("crosslineTop",t,this)),!this.getChildContainer("crosslineBottom")&&this.addChildContainer("crosslineBottom",u("crosslineBottom",e,this))},r.show=function(e){void 0===e&&(e={});var t=e.event;clearTimeout(this.mouseOutTimer),this.config.attachedCanvasAxisInfo=this.getAttachedAxisInfo(t),this._setAptAxesInfo(e.axesInfo,e.value),this._show(t)},r._setAptAxesInfo=function(e,t){void 0===e&&(e=[]);var r,n,a=e.length,i=this.config.attachedCanvasAxisInfo;if(e.length)for(n=0;n<a;n++)if((r=e[n]).axis===i.axis){i.value=r.value;break}t!==o.UNDEF&&(i.value=t)},r._show=function(e){var t,r,n,a,i,s,c=this.config,u=this.getFromEnv("chartConfig"),d=this.getChildren("crossline")[0],h=c.attachedCanvasAxisInfo,f=h.axis,g=f.getLimit().max-f.config.endPad,p=Math.round(h.value),m=h.axis.getPixel(p)-h.axis.getTranslation(),v=Object.assign({},c.bandStyle),b=this.getFromEnv("canvasConfig"),y=b.canvasTop,x=b.canvasLeft;p<0||p>g||this.config.lastIndex!==p&&c.drawCrossLine&&((n=v.thickness)===o.UNDEF&&(!1===u._hascolumn?n=1:(t=f.getPixel(0),r=f.getPixel(1),n=Math.abs(r-t))),i=m,s=n,a=Math.round(i+(s%2/2+l))-(s%2/2+l),this.createGroup(),v.thickness=n,v=h.isVertical?Object.assign(v,{x1:x,y1:a,x2:x+b.canvasWidth,y2:a}):Object.assign(v,{x1:a,y1:y,x2:a,y2:y+b.canvasHeight}),d.show(v),this.getFromEnv("chart").fireChartInstanceEvent("onChangeCrossLine",{currentIndex:p,lastIndex:this.config.lastIndex,source:e?"mouse interaction":"public API"}),this.config.lastIndex=p)},r.hide=function(e){var t=this;void 0===e&&(e={});var r=this;this.mouseOutTimer=setTimeout((function(){r.getFromEnv("chart").fireChartInstanceEvent("onChangeCrossLine",{lastIndex:r.config.lastIndex,source:e.event?"mouse interaction":"public API"}),delete t.config.lastIndex,t.getChildren("crossline")[0].hide()}),20)},r.getType=function(){return"crossline-manager"},r.getName=function(){return"crossline-manager-band-category-axis"},t}(s.ComponentInterface);t["default"]=d},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(201)),i=n(r(198)),o=r(199),s=r(184),l={candlestick:!0},c=function(e){return{onhover:function(t){t.originalEvent&&e.show(t)},onhoverout:function(t){t.originalEvent&&e.hide(t)}}},u=function(e){if(e.sender.getType&&"chartAPI"===e.sender.getType()&&l[e.sender.getName&&e.sender.getName()]){var t,r,n=e.sender;n.registerFactory("multiCanvasCrossline",(function(){(0,s.componentFactory)(n,d,"multiCanvasCrosslineManager"),t=n.getChildren("multiCanvasCrosslineManager")[0],r=t._handlers,n.iterateComponents((function(e){"canvas"===e.getName()&&(e.addEventListener("fc-mouseover",r.onhover),e.addEventListener("fc-mousemove",r.onhover),e.addEventListener("fc-mouseout",r.onhoverout))}))}),["canvas"])}},d=function(e){function t(){var t;return(t=e.call(this)||this)._handlers=c((0,a["default"])(t)),t}(0,i["default"])(t,e);var r=t.prototype;return r.getAxesInfo=function(e,t){void 0===e&&(e={});var r,n,a,i,o=t.getAxes(),l=[],c=(0,s.getMouseCoordinate)(this.getFromEnv("chart-container"),e.originalEvent,this.getFromEnv("chart")),u=c.chartX||0,d=c.chartY||0;for(r=o.length-1;r>=0;r--)n=o[r].axis,a=o[r].isY,i=!!n.config.isVertical,l.push({value:i?n.getValue(d):n.getValue(u),axis:n,isVertical:i,isY:a});return l},r.getName=function(){return"multiCanvasCrosslineManager"},r.getType=function(){return"multiCanvasCrosslineManager"},r.show=function(e){var t=this,r=e.sender;this.getFromEnv("chart").iterateComponents((function(n){"canvas"===n.getName()&&n!==r&&n.fireEvent("fc-mousemove",{axes:t.getAxesInfo(e,r)})}))},r.hide=function(e){var t=e.sender,r=(0,s.getMouseCoordinate)(t.getFromEnv("chart-container"),e&&e.originalEvent,t.getFromEnv("chart"));t.isWithinCanvas(r.chartX,r.chartY)||this.getFromEnv("chart").iterateComponents((function(e){"canvas"===e.getName()&&e!==t&&e.fireEvent("fc-mouseout")}))},t}(o.ComponentInterface),h={extension:function(e){e.addEventListener("instantiated",u)},name:"multi-canvas-crossline-manager",type:"extension",requiresFusionCharts:!0};t["default"]=h},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(340)),i=r(347);t.getConfig=i.getConfig,t.setConfig=i.setConfig;var o=a["default"];t["default"]=o},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(341))["default"];t["default"]=a},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(342)),i=r(364),o=r(343),s=function(){function e(e,t,r){this.dataTables={},this._defaultDataTable=null,this._id=+new Date+"",e&&t&&e.constructor===Array&&t.constructor===Array&&this.createDataTable(e,t,r)}var t=e.prototype;return t.createDataTable=function(e,t,r,n){if(!e||!t)throw new Error("Both data and schema must be provided to build DataTable");if(e.constructor!==Array)throw new Error("Data must be provided in 2D array format or array of json objects");if(t.constructor!==Array||0===t.length)throw new Error("Input schema is not in a correct format - schema must be an array of column configurations");var i,s,l={},c=n;if(s=Object.keys(this.dataTables),c){if(s.includes(c))throw new Error("A table with the id "+c+" already exists in the DataStore. Please use a different id.")}else c=(0,o.createTableID)(s);return Object.assign(l,{enableIndex:!0,enableUTC:!1},r),i=new a["default"](this,(0,o.parseAndIndexData)(e,t,l),t,l,null,null,c),0===s.length&&(this._defaultDataTable=i),this.dataTables[c]=i,i},t.appendRows=function(e,t){var r,n,a,i=this.getDataTable(t),s=i.getSchema();a=(0,o.buildDateColumnsFormatter)(s),n=(0,o.parseData)(e,s,a),(r=i._data).push.apply(r,n),(0,o.indexData)(i._data,s,i._config,a),i.flushResults(),this.trigger("itemsAdded",{rows:e,parsedRows:n,tableID:t})},t.deleteRows=function(e,t){var r=this.getDataTable(t),n=r.query(e),a=n.getData().data,i=r.indexOf("_row_id"),o=n.indexOf("_row_id"),s=a.map((function(e){return e[o]}));r._data=r._data.filter((function(e){return!s.includes(e[i])})),r.flushResults(),this.trigger("itemsRemoved",{rows:a,tableID:t}),n.dispose()},t.getDataTable=function(e){if(e){if(!this.dataTables[e])throw new Error("DataTable with id "+e+" is not found in the DataStore.");return this.dataTables[e]}return this._defaultDataTable},t.on=function(e,t){(0,i.addHandler)(e,t,this)},t.off=function(e,t){(0,i.removeHandler)(e,t,this)},t.trigger=function(e,t){(0,i.triggerEvent)(e,this,t)},t.dispose=function(){var e=this;for(var t in e.dataTables)e.dataTables.hasOwnProperty(t)&&(e.dataTables[t].dispose(),delete e.dataTables[t]);delete e._id,delete e.dataTables,delete e._defaultDataTable,this.trigger("disposed"),e=null},t._propagate=function(e){for(var t in this.trigger("payloadReceived",e),this.dataTables)this.dataTables.hasOwnProperty(t)&&this.dataTables[t]._payloadReceiver(e)},e}();t["default"]=s},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n=r(343),a=r(364),i=function(){function e(e,t,r,n,a,i,o){this._dataStore=e,this._parentTable=a,this._children=[],this._childrenTableIDs=[],this._opsFunnel=i,this._data=t||[],this._schema=r,this._config=n,this._id=o;var s,l=1;if(this._id||(s=this._parentTable&&this._parentTable._id?this._parentTable._id:"table_1",this._id=s+"_"+l),this._parentTable){for(;this._parentTable._childrenTableIDs.includes(this._id);)this._id=s?s+"_"+ ++l:this._id+"_1";this._parentTable._children.push(this),this._parentTable._childrenTableIDs.push(this._id)}this._result=null}var t=e.prototype;return t.count=function(){return this._executeFunnel().data.length},t.getSchema=function(){return this._executeFunnel().schema},t.getID=function(){return this._id},t.getDataStore=function(){return this._dataStore},t.getChildren=function(e){if(e){for(var t=0;t<this._children.length;t++)if(this._children[t]._id===e)return this._children[t];return null}return this._children},t.getData=function(e,t){var r,n=e,a=t;return n=n||0,a=a&&("string"==typeof a||a instanceof String)||null===a?void 0:a,{data:(r=this._executeFunnel()).data&&r.data.slice(n,a&&a>0?n+a:a),schema:r.schema}},t.dispose=function(){var e=this;if(e._parentTable&&e._parentTable._children){var t;for(t=0;t<e._parentTable._children.length&&("undefined"==typeof e._id||e._id!==e._parentTable._children[t]._id);t++);t!==e._parentTable._children.length&&e._parentTable._children.splice(t,1)}delete e._dataStore,delete e._parentTable,delete e._opsFunnel,delete e._data,delete e._schema,delete e._config,delete e._result,delete e._id,e.disposeChildren(),delete e._children,delete e._childrenTableIDs,e._trigger("disposed"),delete e._evtHandlers,e.disposed=!0,e=null},t.disposeChildren=function(){for(var e=(this._children&&this._children.length||0)-1;e>=0;e--)this._children[e].dispose();this._children=[],this._childrenTableIDs=[]},t.min=function(e){var t=this.getData();return(0,n.columnMinValue)(e,t.data,t.schema)},t.max=function(e){var t=this.getData();return(0,n.columnMaxValue)(e,t.data,t.schema)},t.unique=function(e){var t=this.getData();return(0,n.columnUnique)(e,t.data,t.schema)},t.extents=function(e){var t=this.getData();return(0,n.columnExtents)(e,t.data,t.schema)},t.addColumns=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var n=t.length;if(n>0){this._calcColumns=this._calcColumns||[];for(var a=0;a<n;a++){if(!t[a].name)throw new Error("name is required in column "+(a+1));if(t[a].calcFn&&!(t[a].calcFn instanceof Function))throw new Error("calcFn must be a function in column "+(a+1));t[a].calcFn||(t[a].calcFn=function(){}),this._calcColumns.push(Object.assign({},t[a]))}}this._trigger("updated",t)},t.query=function(t){var r=t;return r&&r.constructor!==Array&&(r=[r]),new e(this._dataStore,this._data,this._schema,this._config,this,r)},t.indexOf=function(e){var t=this._executeFunnel();return(0,n.columnIndexOf)(e,t.schema)},t.on=function(e,t){(0,a.addHandler)(e,t,this)},t.off=function(e,t){(0,a.removeHandler)(e,t,this)},t._trigger=function(e,t){(0,a.triggerEvent)(e,this,t)},t._executeFunnel=function(){if(!this._result)if(this._opsFunnel){var e,t,r,a,i;t=(e=this._parentTable._executeFunnel()).data.slice(0),r=e.schema.slice(0),a=Object.assign({},e.config),i=this._opsFunnel.length;for(var o=0;o<i;o++)if(this._opsFunnel[o]&&this._opsFunnel[o].fn){var s=this._opsFunnel[o].fn(t,r,a);t=s.generatorFn?s.generatorFn():s.data,r=s.schema,void 0===(a=Object.assign(a,s.config)).indexBy&&(a.enableIndex=!1)}this._result={data:t,schema:r,config:a}}else this._result={data:this._data,schema:this._schema,config:this._config};if(this._calcColumns&&this._calcColumns.length>0){var l=(0,n.addColumnsSchema)(this._result.schema,this._calcColumns);this._result.schema=l.schema,this._result.data=(0,n.addColumnsData)(this._result.data,this._result.schema,l.calcColumns),delete this._calcColumns}return this._result},t.flushResults=function(){var e=this._result&&this._result.schema.length||0,t=this._children&&this._children.length||0;e&&(this._calcColumns=[]);for(var r=0;r<e;r++)this._result.schema[r].calcFn&&this._calcColumns.push(this._result.schema[r]);this._result&&(this._result=null);for(var n=0;n<t;n++)this._children[n].flushResults()},t.propagate=function(e){this.getDataStore()._propagate({trigger:this,payload:e})},t._payloadReceiver=function(e){var t=this._children&&this._children.length||0;e&&e.trigger&&e.trigger!==this&&this._trigger("payloadReceived",e);for(var r=0;r<t;r++)this._children[r]._payloadReceiver(e)},t.getMinDiff=function(e){var t=this.getData();return(0,n.columnMinDiff)(e,t.data,t.schema,this._config.indexBy)},t.isUTCEnabled=function(e){return(0,n.isUTCEnabled)(e,this.getSchema())},e}();t["default"]=i},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t.columnIndexOf=d,t.columnMinValue=function(e,t,r){var n,a;if(null===(n=d(e,r))||-1===n)return null;if(t&&t.length>0){var o;a=Number.POSITIVE_INFINITY;for(var s=0;s<t.length;s++)o="interval"===r[n].type?t[s][n]?t[s][n].start:null:t[s][n],(0,i.isNumber)(o)&&o<a&&(a=o)}return a},t.columnMaxValue=function(e,t,r){var n,a;if(null===(n=d(e,r))||-1===n)return null;if(t&&t.length>0){var o;a=Number.NEGATIVE_INFINITY;for(var s=0;s<t.length;s++)o="interval"===r[n].type?t[s][n]?t[s][n].end:null:t[s][n],(0,i.isNumber)(o)&&o>a&&(a=o)}return a},t.columnMinDiff=function(e,t,r,n){var a,s,l=t,c=t.length;if(null===(a=d(e,r))||-1===a)return null;if(r[a]&&["date","number"].indexOf(r[a].type)<0)throw new Error("Operation valid only on date or number columns");n&&e===n||(l=t.slice(0)).sort((function(e,t){return(0,o.numberComparator)(e[a],t[a])}));if(l&&c>0){var u,h,f;s=Number.POSITIVE_INFINITY;for(var g=0;g<l.length-1&&(h=l[g][a],f=l[g+1][a],(0,i.isNumber)(f)&&(0,i.isNumber)(h))&&(u=f-h,0!==(s=(0,i.isNumber)(u)&&u>=0&&u<s?u:s));g++);}return s===Number.POSITIVE_INFINITY?null:s},t.columnExtents=function(e,t,r){var n,a=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,s=d(e,r);if(null===s||-1===s)return null;if(t&&t.length>0)for(var l=0;l<t.length;l++)n="interval"===r[s].type?t[l][s]?t[l][s].start:null:t[l][s],(0,i.isNumber)(n)&&n<a&&(a=n),n="interval"===r[s].type?t[l][s]?t[l][s].end:null:t[l][s],(0,i.isNumber)(n)&&n>o&&(o=n);return{min:a,max:o}},t.columnUnique=function(e,t,r){var n,a=d(e,r),i=[];if(null===a||-1===a)return[];for(var o=0;o<t.length;o++)i.push(t[o][a]);if(t&&t.length>0)return 1===(n=Array.from(new Set(i))).length&&"undefined"==typeof n[0]?[]:n;return[]},t.addColumnsSchema=function(e,t){for(var r=t.length,n=e.slice(0),a=0;a<r;a++){var i=n.length;t[a].originalName=t[a].name;for(var o=0;o<i;o++)t[a].name===n[o].name&&(t[a].i=t[a].i&&++t[a].i||1,t[a].name=t[a].originalName+" "+t[a].i),t[a].type&&-1!==["string","number","date"].indexOf(t[a].type)||(t[a].type="string");delete t[a].originalName,delete t[a].i,n.push({name:t[a].name,type:t[a].type||"string"}),t[a].calcFn&&(n[n.length-1].calcFn=t[a].calcFn),t[a].format&&(n[n.length-1].format=t[a].format),t[a].enableUTC&&(n[n.length-1].enableUTC=t[a].enableUTC),t[a].columnIndex=n.length-1}return{schema:n,calcColumns:t}},t.addColumnsData=function(e,t,r){for(var n,a=e.length,i=r.length,o=t.length,s={},l=f(r),c=0;c<o;c++)s[t[c].name]=c;for(var u=0;u<a;u++)for(var d=0;d<i;d++)r[d].calcFn&&(n=r[d].calcFn(e[u],s,u),n=h(r[d],n,l),e[u][r[d].columnIndex]=n);return e},t.parseAndIndexData=function(e,t,r){var n=f(t),a=g(e,t,n);return p(a,t,r,n),a},t.createTableID=function(e){var t=e.length+1;for(;e.includes("table-"+t);)t++;return"table-"+t},t.buildDateColumnsFormatter=f,t.parseData=g,t.indexData=p,t.isUTCEnabled=function(e,t){var r;if(null===(r=d(e,t))||-1===r||"date"!==t[r].type&&"interval"!==t[r].type)return null;return t[r].enableUTC!==a?t[r].enableUTC:(0,l.getConfig)("enableUTC")};var a,i=r(344),o=r(345),s=n(r(346)),l=r(347),c=n(r(348)),u=n(r(363));function d(e,t){if(!t||!e)return null;for(var r=0;r<t.length;r++)if(t[r]&&t[r].hasOwnProperty("name")&&t[r].name===e)return r;return-1}function h(e,t,r){return r[e.name]!==a&&t?r[e.name]?+r[e.name].parse(t):+new Date(t):"number"===e.type?(0,i.isNumber)(t)?t:t?parseFloat(t):null:t}function f(e){for(var t={},r=0;r<e.length;r++){if(!e[r].name)throw new Error("Input schema is not in a correct format - each column must have a name");e[r].type&&"date"===e[r].type&&(t[e[r].name]=e[r].format?(e[r].enableUTC!==a?e[r].enableUTC:(0,l.getConfig)("enableUTC"))?c["default"].utcParser(e[r].format):c["default"].parser(e[r].format):null)}return t}function g(e,t,r){var n=[];if(e.length>0){var a,i=r,o=t.findIndex((function(e){return"_row_id"===e.name}));i||(i=f(t)),-1===o&&(o=t.push({name:"_row_id",type:"string"})-1);for(var s=0;s<e.length;s++)e[s][o]=(0,u["default"])();try{for(var l,c,d,g=t.length,p=0;p<e.length;p++){if(l=[],(c=e[p]).constructor===Array)for(d=Math.min(g,c.length),a=0;a<d;a++)l[a]=h(t[a],c[a],i);else{if("object"!=typeof c)continue;for(a=0;a<g;a++)c[t[a].name]&&(l[a]=h(t[a],c[t[a].name],i))}n.push(l)}}catch(m){throw new Error("Error while parsing the data - "+m)}}return n}function p(e,t,r,n){if(r.enableIndex){var a,i,l;if(!r.indexBy){(l=n)||(l=f(t));var c=Object.keys(l);if(c.length>0)r.indexBy=c[0];else{for(a=0;a<t.length;a++)if(t[a].type&&"number"===t[a].type){r.indexBy=t[a].name;break}a===t.length&&(r.indexBy=t[0].name)}}for(a=0;a<t.length&&(!t[a]||t[a].name!==r.indexBy);a++);if(a===t.length)throw new Error("Index column is not found in schema");switch(t[a].type){case"number":case"date":i=o.numberComparator;break;default:i=o.stringComparator}(0,s["default"])(e,(function(e,t){return i(e[a],t[a])}))}}},function(e,t,r){"use strict";t.__esModule=!0,t.isNumber=void 0;t.isNumber=function(e){return"number"==typeof e&&!isNaN(e-e)}},function(e,t,r){"use strict";t.__esModule=!0,t.stringComparator=t.numberComparator=void 0;var n=r(344);t.stringComparator=function(e,t){return null==e?t===e?0:1:(0,n.isNumber)(t)?(0,n.isNumber)(e)?e-t:-1:e===t?0:e<t?-1:1},t.numberComparator=function(e,t){return null==e?t===e?0:1:(0,n.isNumber)(t)?e-t:isNaN(e)&&isNaN(t)?0:-1}},function(e,t,r){"use strict";function n(e,t,r,n,a){var i=r||0,o=n||e.length,s=a||i+1,l=t;for(l||(l=function(e,t){return e-t}),i===s&&++s;s<o;++s){var c=i,u=s,d=e[u];do{var h=c+(u-c>>1);l(d,e[h])<0?u=h:c=h+1}while(c<u);for(var f=s;f>c;--f)e[f]=e[f-1];e[c]=d}}t.__esModule=!0,t.binaryInsertionSort=n,t.mergeSort=function f(e,t){var r,n,a,i=t;if(e.constructor!==Array)throw new TypeError("Merge sort can only be applied on Array.");if(1===e.length)return e;i||(i=function(e,t){return e-t});r=Math.floor(e.length/2);n=e.slice(0,r);a=e.slice(r);return function(e,t,r){var n=[],a=0,i=0;for(;a<e.length&&i<t.length;)r(e[a],t[i])<=0?(n.push(e[a]),a++):(n.push(t[i]),i++);return n.concat(e.slice(a)).concat(t.slice(i))}(f(n,i),f(a,i),i)},t["default"]=void 0;var a=64,i=7,o=256,s=40;function l(e,t,r,n){var a=r+1;if(a===n)return 1;if(t(e[a++],e[r])<0){for(;a<n&&t(e[a],e[a-1])<0;)a++;!function(e,t,r){var n=r,a=t;for(--n;a<n;){var i=e[a];e[a++]=e[n],e[n--]=i}}(e,r,a)}else for(;a<n&&t(e[a],e[a-1])>=0;)a++;return a-r}function c(e,t,r,n,a,i){var o,s,l=0,c=0,u=1;if(i(e,t[r+a])>0){for(c=n-a;u<c&&i(e,t[r+a+u])>0;)l=u,(u=1+(u<<1))<=0&&(u=c);u>c&&(u=c),l+=a,u+=a}else{for(c=a+1;u<c&&i(e,t[r+a-u])<=0;)l=u,(u=1+(u<<1))<=0&&(u=c);u>c&&(u=c),o=l,l=a-u,u=a-o}for(l++;l<u;)i(e,t[r+(s=l+(u-l>>>1))])>0?l=s+1:u=s;return u}function u(e,t,r,n,a,i){var o,s,l=0,c=0,u=1;if(i(e,t[r+a])<0){for(c=a+1;u<c&&i(e,t[r+a-u])<0;)l=u,(u=1+(u<<1))<=0&&(u=c);u>c&&(u=c),o=l,l=a-u,u=a-o}else{for(c=n-a;u<c&&i(e,t[r+a+u])>=0;)l=u,(u=1+(u<<1))<=0&&(u=c);u>c&&(u=c),l+=a,u+=a}for(l++;l<u;)i(e,t[r+(s=l+(u-l>>>1))])<0?u=s:l=s+1;return u}var d=function(){function e(e,t){this.arr=e,this.comparer=t,this.length=e.length,this.tmpStorageLen=this.length<2*o?this.length>>>1:o,this.tmp=new Array(this.tmpStorageLen),this.runBaseArr=new Array(s),this.runLenArr=new Array(s),this.minGallop=i,this.stackSize=0}var t=e.prototype;return t.pushRun=function(e,t){this.runBaseArr[this.stackSize]=e,this.runLenArr[this.stackSize]=t,this.stackSize++},t.mergeCollapse=function(){for(var e;this.stackSize>1;){if((e=this.stackSize-2)>=1&&this.runLenArr[e-1]<=this.runLenArr[e]+this.runLenArr[e+1]||e>=2&&this.runLenArr[e-2]<=this.runLenArr[e]+this.runLenArr[e-1])this.runLenArr[e-1]<this.runLenArr[e+1]&&e--;else if(this.runLenArr[e]>this.runLenArr[e+1])break;this.mergeAt(e)}},t.mergeForceCollapse=function(){for(var e;this.stackSize>1;)(e=this.stackSize-2)>0&&this.runLenArr[e-1]<this.runLenArr[e+1]&&e--,this.mergeAt(e)},t.mergeAt=function(e){var t,r=this.comparer,n=this.arr,a=this.runBaseArr[e],i=this.runLenArr[e],o=this.runBaseArr[e+1],s=this.runLenArr[e+1];this.runLenArr[e]=i+s,e===this.stackSize-3&&(this.runBaseArr[e+1]=this.runBaseArr[e+2],this.runLenArr[e+1]=this.runLenArr[e+2]),this.stackSize--,a+=t=u(n[o],n,a,i,0,r),0!==(i-=t)&&0!==(s=c(n[a+i-1],n,o,s,s-1,r))&&(i<=s?this.mergeLo(a,i,o,s):this.mergeHi(a,i,o,s))},t.mergeLo=function(e,t,r,n){var a,o,s,l,d=0,h=0,f=r,g=e,p=t,m=n;for(d=0;d<p;d++)this.tmp[d]=this.arr[e+d];if(this.arr[g++]=this.arr[f++],0!=--m)if(1!==p){for(a=this.minGallop;;){o=0,s=0,l=!1;do{if(this.comparer(this.arr[f],this.tmp[h])<0){if(this.arr[g++]=this.arr[f++],s++,o=0,0==--m){l=!0;break}}else if(this.arr[g++]=this.tmp[h++],o++,s=0,1==--p){l=!0;break}}while((o|s)<a);if(l)break;do{if(0!==(o=u(this.arr[f],this.tmp,h,p,0,this.comparer))){for(d=0;d<o;d++)this.arr[g+d]=this.tmp[h+d];if(g+=o,h+=o,(p-=o)<=1){l=!0;break}}if(this.arr[g++]=this.arr[f++],0==--m){l=!0;break}if(0!==(s=c(this.tmp[h],this.arr,f,m,0,this.comparer))){for(d=0;d<s;d++)this.arr[g+d]=this.arr[f+d];if(g+=s,f+=s,0===(m-=s)){l=!0;break}}if(this.arr[g++]=this.tmp[h++],1==--p){l=!0;break}a--}while(o>=i||s>=i);if(l)break;a<0&&(a=0),a+=2}if(this.minGallop=a,a<1&&(this.minGallop=1),1===p){for(d=0;d<m;d++)this.arr[g+d]=this.arr[f+d];this.arr[g+m]=this.tmp[h]}else for(d=0;d<p;d++)this.arr[g+d]=this.tmp[h+d]}else{for(d=0;d<m;d++)this.arr[g+d]=this.arr[f+d];this.arr[g+m]=this.tmp[h]}else for(d=0;d<p;d++)this.arr[g+d]=this.tmp[h+d]},t.mergeHi=function(e,t,r,n){var a,o,s,l,d=0,h=t,f=n,g=e+h-1,p=f-1,m=r+f-1,v=0,b=0;for(d=0;d<f;d++)this.tmp[d]=this.arr[r+d];if(this.arr[m--]=this.arr[g--],0!=--h)if(1!==f){for(a=this.minGallop;;){o=0,s=0,l=!1;do{if(this.comparer(this.tmp[p],this.arr[g])<0){if(this.arr[m--]=this.arr[g--],o++,s=0,0==--h){l=!0;break}}else if(this.arr[m--]=this.tmp[p--],s++,o=0,1==--f){l=!0;break}}while((o|s)<a);if(l)break;do{if(0!==(o=h-u(this.tmp[p],this.arr,e,h,h-1,this.comparer))){for(h-=o,b=(m-=o)+1,v=(g-=o)+1,d=o-1;d>=0;d--)this.arr[b+d]=this.arr[v+d];if(0===h){l=!0;break}}if(this.arr[m--]=this.tmp[p--],1==--f){l=!0;break}if(0!==(s=f-c(this.arr[g],this.tmp,0,f,f-1,this.comparer))){for(f-=s,b=(m-=s)+1,v=(p-=s)+1,d=0;d<s;d++)this.arr[b+d]=this.tmp[v+d];if(f<=1){l=!0;break}}if(this.arr[m--]=this.arr[g--],0==--h){l=!0;break}a--}while(o>=i||s>=i);if(l)break;a<0&&(a=0),a+=2}if(this.minGallop=a,a<1&&(this.minGallop=1),1===f){for(b=(m-=h)+1,v=(g-=h)+1,d=h-1;d>=0;d--)this.arr[b+d]=this.arr[v+d];this.arr[m]=this.tmp[p]}else for(v=m-(f-1),d=0;d<f;d++)this.arr[v+d]=this.tmp[d]}else{for(b=(m-=h)+1,v=(g-=h)+1,d=h-1;d>=0;d--)this.arr[b+d]=this.arr[v+d];this.arr[m]=this.tmp[p]}else for(v=m-(f-1),d=0;d<f;d++)this.arr[v+d]=this.tmp[d]},e}();var h=function(e,t,r,i){var o,s,c,u,h,f=r,g=i,p=t;if(e.constructor!==Array)throw new TypeError("Sorting can only be applied on arrays.");if(f=f||0,p||(p=function(e,t){return e-t}),!((o=(g=g||e.length)-f)<2))if(o<a)n(e,p,f,g,f+(s=l(e,p,f,g)));else{c=function(e){for(var t=0,r=e;r>=a;)t|=1&r,r>>=1;return r+t}(o),u=new d(e,p);do{(s=l(e,p,f,f+o))<c&&(n(e,p,f,f+(h=o<=c?o:c),f+s),s=h),u.pushRun(f,s),u.mergeCollapse(),o-=s,f+=s}while(0!==o);u.mergeForceCollapse()}};t["default"]=h},function(e,t,r){"use strict";t.__esModule=!0,t.getConfig=function(e){if(!e)throw new Error("configName is missing");return n[e]},t.setConfig=function(e,t){if(!e)throw new Error("configName is missing");n[e]=t};var n={enableUTC:!1}},function(e,t,r){"use strict";var n=r(182),a=r(178);t.__esModule=!0,t["default"]=t.TimeConverter=void 0;var i=a(r(349)),o=n(r(351)),s=r(357),l=r(356),c=a(r(352)),u=a(r(358)),d=a(r(355)),h=a(r(360)),f=a(r(362)),g=/^\s*\d+/,p=/^\s*Q\d+/,m=/^%/,v=/[\\^$*+?|[\]().{}]/g,b=function(e,t,r){var n=e<0?"-":"",a=(n?-e:e)+"",i=a.length;return n+(i<r?new Array(r-i+1).join(t)+a:a)},y=function(e){return e.replace(v,"\\$&")},x=function(e){return new RegExp("^(?:"+e.map(y).join("|")+")","i")},C=function(e){for(var t={},r=-1,n=e.length;++r<n;)t[e[r].toLowerCase()]=r;return t},w=function(e,t,r){var n=g.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1},_=function(e,t,r){var n=g.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1},k=function(e,t,r){var n=g.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1},S=function(e,t,r){var n=g.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1},E=function(e,t,r){var n=g.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1},A=function(e,t,r){var n=p.exec(t.slice(r,r+2));return n?(e.m=3*(n[0][1]-1),r+n[0].length):-1},T=function(e,t,r){var n=g.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1},M=function(e,t,r){var n=g.exec(t.slice(r,r+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1},F=function(e,t,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return n?(e.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1},I=function(e,t,r){var n=g.exec(t.slice(r,r+2));return n?(e.m=n[0]-1,r+n[0].length):-1},L=function(e,t,r){var n=g.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1},N=function(e,t,r){var n=g.exec(t.slice(r,r+3));return n?(e.m=0,e.d=+n[0],r+n[0].length):-1},D=function(e,t,r){var n=g.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1},O=function(e,t,r){var n=g.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1},R=function(e,t,r){var n=g.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1},P=function(e,t,r){var n=g.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1},V=function(e,t,r){var n=g.exec(t.slice(r,r+6));return n?(e.L=Math.floor(n[0]/1e3),r+n[0].length):-1},B=function(e,t,r){var n=m.exec(t.slice(r,r+1));return n?r+n[0].length:-1},j=function(e,t,r){var n=g.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1},G=function(e,t,r){var n=g.exec(t.slice(r));return n?(e.Q=1e3*+n[0],r+n[0].length):-1},H=function(e,t){return b(e.getDate(),t,2)},z=function(e,t){return b(e.getHours(),t,2)},U=function(e,t){return b(e.getHours()%12||12,t,2)},X=function(e,t){return b(1+c["default"].count(u["default"].floor(e),e),t,3)},W=function(e,t){return b(e.getMilliseconds(),t,3)},$=function(e,t){return W(e,t)+"000"},Y=function(e,t){return b(e.getMonth()+1,t,2)},q=function(e,t){return b(e.getMinutes(),t,2)},K=function(e,t){return b(e.getSeconds(),t,2)},J=function(e,t){return"Q"+Math.ceil((e.getMonth()+1)/3)},Z=function(e){var t=e.getDay();return 0===t?7:t},Q=function(e,t){return b(s.sunday.count(u["default"].floor(e),e),t,2)},ee=function(e,t){var r=e,n=r.getDay();return r=n>=4||0===n?s.thursday.floor(r):s.thursday.ceil(r),b(s.thursday.count(u["default"].floor(r),r)+(4===u["default"].floor(r).getDay()),t,2)},te=function(e){return e.getDay()},re=function(e,t){return b(s.monday.count(u["default"].floor(e),e),t,2)},ne=function(e,t){return b(e.getFullYear()%100,t,2)},ae=function(e,t){return b(e.getFullYear()%1e4,t,4)},ie=function(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+b(t/60|0,"0",2)+b(t%60,"0",2)},oe=function(e,t){return b(e.getUTCDate(),t,2)},se=function(e,t){return b(e.getUTCHours(),t,2)},le=function(e,t){return b(e.getUTCHours()%12||12,t,2)},ce=function(e,t){return b(1+d["default"].count(h["default"].floor(e),e),t,3)},ue=function(e,t){return b(e.getUTCMilliseconds(),t,3)},de=function(e,t){return ue(e,t)+"000"},he=function(e,t){return b(e.getUTCMonth()+1,t,2)},fe=function(e,t){return b(e.getUTCMinutes(),t,2)},ge=function(e,t){return b(e.getUTCSeconds(),t,2)},pe=function(e,t){return"Q"+Math.ceil((e.getUTCMonth()+1)/3)},me=function(e){var t=e.getUTCDay();return 0===t?7:t},ve=function(e,t){return b(l.utcSunday.count(h["default"].floor(e),e),t,2)},be=function(e,t){var r=e,n=r.getUTCDay();return r=n>=4||0===n?l.utcThursday.floor(r):l.utcThursday.ceil(r),b(l.utcThursday.count(h["default"].floor(r),r)+(4===h["default"].floor(r).getUTCDay()),t,2)},ye=function(e){return e.getUTCDay()},xe=function(e,t){return b(l.utcMonday.count(h["default"].floor(e),e),t,2)},Ce=function(e,t){return b(e.getUTCFullYear()%100,t,2)},we=function(e,t){return b(e.getUTCFullYear()%1e4,t,4)},_e=function(){return"+0000"},ke=function(){return"%"},Se=function(e){return+e},Ee=function(e){return Math.floor(+e/1e3)},Ae=function(){function e(e){var t=this,r=e.dateTime,n=e.date,a=e.time,s=e.periods,l=e.days,c=e.shortDays,u=e.months,d=e.shortMonths,h=x(s),f=C(s),g=x(l),p=C(l),m=x(c),v=C(c),b=x(u),y=C(u),Ae=x(d),Te=C(d);this._formats={a:function(e){return c[e.getDay()]},A:function(e){return l[e.getDay()]},b:function(e){return d[e.getMonth()]},B:function(e){return u[e.getMonth()]},d:H,e:H,f:$,H:z,I:U,j:X,L:W,m:Y,M:q,p:function(e){return s[+(e.getHours()>=12)]},q:J,Q:Se,s:Ee,S:K,u:Z,U:Q,V:ee,w:te,W:re,y:ne,Y:ae,Z:ie,"%":ke},this._utcFormats={a:function(e){return c[e.getUTCDay()]},A:function(e){return l[e.getUTCDay()]},b:function(e){return d[e.getUTCMonth()]},B:function(e){return u[e.getUTCMonth()]},d:oe,e:oe,f:de,H:se,I:le,j:ce,L:ue,m:he,M:fe,p:function(e){return s[+(e.getUTCHours()>=12)]},q:pe,Q:Se,s:Ee,S:ge,u:me,U:ve,V:be,w:ye,W:xe,y:Ce,Y:we,Z:_e,"%":ke},this._parses={a:function(e,t,r){var n=m.exec(t.slice(r));return n?(e.w=v[n[0].toLowerCase()],r+n[0].length):-1},A:function(e,t,r){var n=g.exec(t.slice(r));return n?(e.w=p[n[0].toLowerCase()],r+n[0].length):-1},b:function(e,t,r){var n=Ae.exec(t.slice(r));return n?(e.m=Te[n[0].toLowerCase()],r+n[0].length):-1},B:function(e,t,r){var n=b.exec(t.slice(r));return n?(e.m=y[n[0].toLowerCase()],r+n[0].length):-1},c:null,d:L,e:L,f:V,H:D,I:D,j:N,L:P,m:I,M:O,p:function(e,t,r){var n=h.exec(t.slice(r));return n?(e.p=f[n[0].toLowerCase()],r+n[0].length):-1},Q:j,q:A,s:G,S:R,u:_,U:k,V:S,w:w,W:E,x:null,X:null,y:M,Y:T,Z:F,"%":B},this._formats.x=function(e){return new i["default"](n,t._formats).format(e)},this._formats.X=function(e){return new i["default"](a,t._formats).format(e)},this._formats.c=function(e){return new i["default"](r,t._formats).format(e)},this._utcFormats.x=function(e){return new i["default"](n,t._utcFormats).format(e)},this._utcFormats.X=function(e){return new i["default"](a,t._utcFormats).format(e)},this._utcFormats.c=function(e){return new i["default"](r,t._utcFormats).format(e)},this._parses.c=function(e,n,a){return new o["default"](r,t._parses).parseSpecifier(e,n,a)},this._parses.x=function(e,r,a){return new o["default"](n,t._parses).parseSpecifier(e,r,a)},this._parses.X=function(e,r,n){return new o["default"](a,t._parses).parseSpecifier(e,r,n)}}var t=e.prototype;return t.formatter=function(e){return void 0===e&&(e=""),new i["default"](e.toString(),this._formats)},t.utcFormatter=function(e){return void 0===e&&(e=""),new i["default"](e.toString(),this._utcFormats)},t.parser=function(e){var t=e;return new o["default"](t+="",this._parses,(function(e){if(e.y>=0&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}))},t.utcParser=function(e){var t=e;return new o["default"](t+="",this._parses,o.utcDate)},e}();t.TimeConverter=Ae;var Te=new Ae(f["default"]);t["default"]=Te},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(350)),i=function(){function e(e,t){this._specifier=e,this._formats=t}var t=e.prototype;return t.format=function(e){var t,r,n,i=[],o=e,s=-1,l=0,c=this._specifier,u=c.length;for(o instanceof Date||(o=new Date(+o));++s<u;)37===c.charCodeAt(s)&&(i.push(c.slice(l,s)),t=c.charAt(++s),r=a["default"][t],null==r?r="e"===t?" ":"0":t=c.charAt(++s),n=this._formats[t],n&&(t=n(o,r)),i.push(t),l=s+1);return i.push(c.slice(l,s)),i.join("")},t.toString=function(){return this._specifier},e}();t["default"]=i},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]={"-":"",_:" ",0:"0"}},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=t.utcDate=void 0;var a=n(r(350)),i=n(r(352)),o=n(r(355)),s=r(356),l=r(357),c=function(e){return{y:e,m:0,d:1,H:0,M:0,S:0,L:0}},u=function(e){if(e.y>=0&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))};t.utcDate=u;var d=function(){function e(e,t,r){this._specifier=e,this._parses=t,this._newDate=r}var t=e.prototype;return t.parseSpecifier=function(e,t,r){for(var n,i,o=0,s=this._specifier.length,l=t.length,c=r;o<s;){if(c>=l)return-1;if(37===(n=this._specifier.charCodeAt(o++))){if(n=this._specifier.charAt(o++),!(i=this._parses[n in a["default"]?this._specifier.charAt(o++):n])||(c=i(e,t,c))<0)return-1}else if(n!==t.charCodeAt(c++))return-1}return c},t.parse=function(e){var t,r,n=c(1900),a=e;if(a+="",this.parseSpecifier(n,a,0)!==a.length)return null;if("Q"in n)return new Date(n.Q);if("p"in n&&(n.H=n.H%12+12*n.p),"V"in n){if(n.V<1||n.V>53)return null;"w"in n||(n.w=1),"Z"in n?(r=(t=u(c(n.y))).getUTCDay(),t=r>4||0===r?s.utcMonday.ceil(t):s.utcMonday.floor(t),t=o["default"].offset(t,7*(n.V-1)),n.y=t.getUTCFullYear(),n.m=t.getUTCMonth(),n.d=t.getUTCDate()+(n.w+6)%7):(r=(t=this._newDate(c(n.y))).getDay(),t=r>4||0===r?l.monday.ceil(t):l.monday.floor(t),t=i["default"].offset(t,7*(n.V-1)),n.y=t.getFullYear(),n.m=t.getMonth(),n.d=t.getDate()+(n.w+6)%7)}else("W"in n||"U"in n)&&("w"in n||(n.w="u"in n?n.u%7:"W"in n?1:0),r="Z"in n?u(c(n.y)).getUTCDay():this._newDate(c(n.y)).getDay(),n.m=0,n.d="W"in n?(n.w+6)%7+7*n.W-(r+5)%7:n.w+7*n.U-(r+6)%7);return"Z"in n?(n.H+=n.Z/100|0,n.M+=n.Z%100,u(n)):this._newDate(n)},t.toString=function(){return this._specifier},e}();t["default"]=d},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(353)),i=r(354),o=new a["default"]("day",(function(e){return e.setHours(0,0,0,0)}),(function(e,t){return e.setDate(e.getDate()+t)}),(function(e,t){return(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*i.durationMinute)/i.durationDay}),(function(e){return e.getDate()-1}));t["default"]=o},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n=new Date,a=new Date,i=function(e){return null==e},o=function(){function e(e,t,r,n,a){this._name=e,this._floori=t,this._offseti=r,this._count=n,this._field=a}var t=e.prototype;return t.name=function(){return this._name},t.floor=function(e){var t=new Date(Number(e));return this._floori(t),t},t.ceil=function(e){var t=new Date(e-1);return this._floori(t),this._offseti(t,1),this._floori(t),t},t.round=function(e){var t=this.floor(e),r=this.ceil(e);return e-t<r-e?t:r},t.offset=function(e,t){var r=new Date(Number(e));return this._offseti(r,i(t)?1:Math.floor(t)),r},t.range=function(e,t,r){var n,a=[],o=this.ceil(e),s=i(r)?1:Math.floor(r);if(!(o<t&&s>0))return a;do{n=new Date(Number(o)),a.push(n),this._offseti(o,s),this._floori(o)}while(n<o&&o<t);return a},t.filter=function(t){var r=this;return new e(this.name(),(function(e){if(!Number.isNaN(Number(e)))for(;r._floori(e),!t(e);)e.setTime(e-1)}),(function(e,n){var a=n;if(!Number.isNaN(Number(e)))if(a<0)for(;++a<=0;){0;do{r._offseti(e,-1)}while(!t(e))}else for(;--a>=0;)do{r._offseti(e,1)}while(!t(e))}))},t.count=function(e,t){var r=0;return this._count&&(n.setTime(Number(e)),a.setTime(Number(t)),this._floori(n),this._floori(a),r=Math.floor(this._count(n,a))),r},t.every=function(e){var t=this,r=Math.floor(e);return this._count&&Number.isFinite(r)&&r>0?r>1?this.filter(this._field?function(e){return t._field(e)%r==0}:function(e){return t.count(0,e)%r==0}):this:null},e}();t["default"]=o},function(e,t,r){"use strict";t.__esModule=!0,t.durationYear=t.durationQuarter=t.durationMonth=t.durationWeek=t.durationDay=t.durationHour=t.durationMinute=t.durationSecond=void 0;t.durationYear=315576e5,t.durationQuarter=78894e5,t.durationMonth=2592e6,t.durationWeek=6048e5,t.durationDay=864e5,t.durationHour=36e5,t.durationMinute=6e4,t.durationSecond=1e3},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(353)),i=r(354),o=new a["default"]("day",(function(e){return e.setUTCHours(0,0,0,0)}),(function(e,t){return e.setUTCDate(e.getUTCDate()+t)}),(function(e,t){return(t-e)/i.durationDay}),(function(e){return e.getUTCDate()-1}));t["default"]=o},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t.utcSaturday=t.utcFriday=t.utcThursday=t.utcWednesday=t.utcTuesday=t.utcMonday=t.utcSunday=t["default"]=void 0;var a=n(r(353)),i=r(354),o=function(e,t){return new a["default"](t,(function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)}),(function(e,t){return e.setUTCDate(e.getUTCDate()+7*t)}),(function(e,t){return(t-e)/i.durationWeek}))},s=o(0,"week"),l=o(0,"sunday"),c=o(1,"monday"),u=o(2,"tuesday"),d=o(3,"wednesday"),h=o(4,"thursday"),f=o(5,"friday"),g=o(6,"saturday");t.utcSaturday=g,t.utcFriday=f,t.utcThursday=h,t.utcWednesday=d,t.utcTuesday=u,t.utcMonday=c,t.utcSunday=l;var p=s;t["default"]=p},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t.saturday=t.friday=t.thursday=t.wednesday=t.tuesday=t.monday=t.sunday=t["default"]=void 0;var a=n(r(353)),i=r(354),o=function(e,t){return new a["default"](t,(function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)}),(function(e,t){return e.setDate(e.getDate()+7*t)}),(function(e,t){return(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*i.durationMinute)/i.durationWeek}))},s=o(0,"week"),l=o(0,"sunday"),c=o(1,"monday"),u=o(2,"tuesday"),d=o(3,"wednesday"),h=o(4,"thursday"),f=o(5,"friday"),g=o(6,"saturday");t.saturday=g,t.friday=f,t.thursday=h,t.wednesday=d,t.tuesday=u,t.monday=c,t.sunday=l;var p=s;t["default"]=p},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=new(n(r(359))["default"])("year",(function(e){e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,t){return e.setFullYear(e.getFullYear()+t)}),(function(e,t){return t.getFullYear()-e.getFullYear()}),(function(e){return e.getFullYear()}));t["default"]=a},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(353)),o=function(e){function t(){return e.apply(this,arguments)||this}return(0,a["default"])(t,e),t.prototype.every=function(e){var t=Math.floor(e);return this.count&&Number.isFinite(t)&&t>0?new i["default"]("year",(function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,r){return e.setFullYear(e.getFullYear()+r*t)})):null},t}(i["default"]);t["default"]=o},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=new(n(r(361))["default"])("year",(function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,t){return e.setUTCFullYear(e.getUTCFullYear()+t)}),(function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()}),(function(e){return e.getUTCFullYear()}));t["default"]=a},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(353)),o=function(e){function t(){return e.apply(this,arguments)||this}return(0,a["default"])(t,e),t.prototype.every=function(e){var t=e;return isFinite(t=Math.floor(t))&&t>0?new i["default"]("year",(function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,r){return e.setUTCFullYear(e.getUTCFullYear()+r*t)})):null},t}(i["default"]);t["default"]=o},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n={dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]};t["default"]=n},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n=0,a=function(e){return void 0===e&&(e=""),e+""+n++};t["default"]=a},function(e,t,r){"use strict";function n(e,t){if("string"!=typeof e)throw new Error("eventName must be a non-empty string");if(!(t instanceof Object))throw new Error("sender must be an object");return t._evtHandlers&&t._evtHandlers[e]||[]}t.__esModule=!0,t.addHandler=function a(e,t,r){var n;if(t instanceof Array){for(var i=[],o=t.length,s=0;s<o;s+=1)i.push(a(e,t[s],r));return i}if(!e||"string"!=typeof e)throw new Error("eventName must be a non-empty string");if("function"!=typeof t)throw new Error("handler must be a function");if(!(r instanceof Object))throw new Error("sender must be an object");r._evtHandlers=r._evtHandlers||{};r._evtHandlers[e]&&r._evtHandlers[e]instanceof Array||(r._evtHandlers[e]=[]);n=r._evtHandlers[e].length;for(var l=0;l<n;l++)if(r._evtHandlers[e][l]===t)return!1;r._evtHandlers[e].push(t);return!0},t.getHanlders=n,t.removeHandler=function i(e,t,r){var a,o;if(t instanceof Array){for(var s=[],l=t.length,c=0;c<l;c+=1)s.push(i(e,t[c],r));return s}if(!e||"string"!=typeof e)throw new Error("eventName must be a non-empty string");if(t&&"function"!=typeof t)throw new Error("handler must be a function");if(!(r instanceof Object))throw new Error("sender must be an object");a=n(e,r);if(!(a instanceof Array)||0===a.length)return;if(!t)return delete r._evtHandlers[e],!0;o=a.length;for(var u=0;u<o;u++)a[u]===t&&a.splice(u,1);return!0},t.triggerEvent=function(e,t,r){var a,i,o;if(!e||"string"!=typeof e)throw new Error("eventName must be a non-empty string");if(!(t instanceof Object))throw new Error("sender must be an object");if(a=n(e,t),o={eventName:e,sender:t,data:r},!(a instanceof Array)||0===a.length)return;i=a.length;for(var s=0;s<i;s++)a[s](o);return!0}},function(e,t,r){"use strict";t.__esModule=!0;var n=r(366);t.between=n.between,t.equals=n.equals,t.less=n.less,t.lessEquals=n.lessEquals,t.greater=n.greater,t.greaterEquals=n.greaterEquals,t.filter=n.filter,t.select=n.select,t.groupBy=n.groupBy,t.pipe=n.pipe,t.sort=n.sort,t.pivot=n.pivot},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0;var a=r(367);t.indexColBetween=a.indexColBetween,t.between=a.between,t.indexColEquals=a.indexColEquals,t.equals=a.equals,t.indexColLess=a.indexColLess,t.less=a.less,t.indexColLessEquals=a.indexColLessEquals,t.lessEquals=a.lessEquals,t.indexColGreater=a.indexColGreater,t.greater=a.greater,t.indexColGreaterEquals=a.indexColGreaterEquals,t.greaterEquals=a.greaterEquals;var i=r(370);t.filter=i.filter,t.select=i.select;var o=n(r(371));t.groupBy=o["default"];var s=n(r(391));t.pipe=s["default"];var l=n(r(392));t.sort=l["default"];var c=n(r(393));t.pivot=c["default"]},function(e,t,r){"use strict";t.__esModule=!0,t.indexColBetween=s,t.between=function(e,t,r){var n=t,o=r;return{ops:"between",type:i.OperatorTypes.GenericFilter,_updateArgs:function(e,t){n=e,o=t},fn:function(t,r,i,l){var c,u,d=t;if(l&&(d=l.call()),(c=(0,a.columnIndexOf)(e,r))>=0)return u=f(r,c),i&&i.indexBy===e?s(c,n,o,u).fn(d,r,i):{data:d,schema:r,config:i,generatorFn:function(){return d.filter((function(e){return u(e,n)>=0&&u(e,o)<=0}))}};throw new Error("Column '"+e+"' is not found in the schema.")}}},t.indexColEquals=l,t.equals=function(e,t){var r=t;return{ops:"equals",type:i.OperatorTypes.GenericFilter,_updateArgs:function(e){r=e},fn:function(t,n,i,o){var s,c,u=t;if(o&&(u=o.call()),(s=(0,a.columnIndexOf)(e,n))>=0)return c=f(n,s),i&&i.indexBy===e?l(s,r,c).fn(u,n,i):{data:u,schema:n,config:i,generatorFn:function(){return u.filter((function(e){return 0===c(e,r)}))}};throw new Error("Column '"+e+"' is not found in the schema.")}}},t.indexColLess=c,t.less=function(e,t){var r=t;return{ops:"less",type:i.OperatorTypes.GenericFilter,_updateArgs:function(e){r=e},fn:function(t,n,i,o){var s,l,u=t;if(o&&(u=o.call()),(s=(0,a.columnIndexOf)(e,n))>=0)return l=f(n,s),i&&i.indexBy===e?c(s,r,l).fn(u,n,i):{data:u,schema:n,config:i,generatorFn:function(){return u.filter((function(e){return l(e,r)<0}))}};throw new Error("Column '"+e+"' is not found in the schema.")}}},t.indexColLessEquals=u,t.lessEquals=function(e,t){var r=t;return{ops:"lessEquals",type:i.OperatorTypes.GenericFilter,_updateArgs:function(e){r=e},fn:function(t,n,i,o){var s,l,c=t;if(o&&(c=o.call()),(s=(0,a.columnIndexOf)(e,n))>=0)return l=f(n,s),i&&i.indexBy===e?u(s,r,l).fn(c,n,i):{data:c,schema:n,config:i,generatorFn:function(){return c.filter((function(e){return l(e,r)<=0}))}};throw new Error("Column '"+e+"' is not found in the schema.")}}},t.indexColGreater=d,t.greater=function(e,t){var r=t;return{ops:"greater",type:i.OperatorTypes.GenericFilter,_updateArgs:function(e){r=e},fn:function(t,n,i,o){var s,l,c=t;if(o&&(c=o.call()),(s=(0,a.columnIndexOf)(e,n))>=0)return l=f(n,s),i&&i.indexBy===e?d(s,r,l).fn(c,n,i):{data:c,schema:n,config:i,generatorFn:function(){return c.filter((function(e){return null!==e[s]&&"undefined"!=typeof e[s]&&l(e,r)>0}))}};throw new Error("Column '"+e+"' is not found in the schema.")}}},t.indexColGreaterEquals=h,t.greaterEquals=function(e,t){var r=t;return{ops:"greaterEquals",type:i.OperatorTypes.GenericFilter,_updateArgs:function(e){r=e},fn:function(t,n,i,o){var s,l,c=t;if(o&&(c=o.call()),(s=(0,a.columnIndexOf)(e,n))>=0)return l=f(n,s),i&&i.indexBy===e?h(s,r,l).fn(c,n,i):{data:c,schema:n,config:i,generatorFn:function(){return c.filter((function(e){return null!==e[s]&&"undefined"!=typeof e[s]&&l(e,r)>=0}))}};throw new Error("Column '"+e+"' is not found in the schema.")}}};var n=r(368),a=r(343),i=r(369),o=r(345);function s(e,t,r,a){var s=t,l=r,c=a;return{ops:"indexColBetween",type:i.OperatorTypes.IndexOpsFilter,_updateArgs:function(e,t){s=e,l=t},fn:function(t,r,a,i){var u,d,h,g=t;return i&&(g=i.call()),c||(c=f(r,e)),h="interval"===r[e].type?function(t,r){return(0,o.numberComparator)(t[e].end,r)}:c,u=(0,n.leftMostExactOrGreater)(s,g,c,0,g.length),d=(0,n.rightMostExactOrLesser)(l,g,h,u,g.length),{data:g,schema:r,config:a,generatorFn:function(){return g.slice(u,d+1)}}}}}function l(e,t,r){var a=t,o=r;return{ops:"indexColEquals",type:i.OperatorTypes.IndexOpsFilter,_updateArgs:function(e){a=e},fn:function(t,r,i,s){var l,c,u=t;return s&&(u=s.call()),o||(o=f(r,e)),(l=(0,n.leftMostExactOrGreater)(a,u,o,0,u.length))>=u.length||0!==o(u[l],a)?{data:[],schema:r,config:i}:(c=(0,n.rightMostExactOrLesser)(a,u,o,l,u.length),{data:u,schema:r,config:i,generatorFn:function(){return u.slice(l,c+1)}})}}}function c(e,t,r){var a=t,o=r;return{ops:"indexColLess",type:i.OperatorTypes.IndexOpsFilter,_updateArgs:function(e){a=e},fn:function(t,r,i,s){var l,c=t;return s&&(c=s.call()),o||(o=f(r,e)),l=(0,n.leftMostExactOrGreater)(a,c,o,0,c.length),{data:c,schema:r,config:i,generatorFn:function(){return c.slice(0,l)}}}}}function u(e,t,r){var a=t,o=r;return{ops:"indexColLessEquals",type:i.OperatorTypes.IndexOpsFilter,_updateArgs:function(e){a=e},fn:function(t,r,i,s){var l,c=t;return s&&(c=s.call()),o||(o=f(r,e)),l=(0,n.rightMostExactOrLesser)(a,c,o,0,c.length),{data:c,schema:r,config:i,generatorFn:function(){return c.slice(0,l+1)}}}}}function d(e,t,r){var a=t,o=r;return{ops:"indexColGreater",type:i.OperatorTypes.IndexOpsFilter,_updateArgs:function(e){a=e},fn:function(t,r,i,s){var l,c,u=t;return s&&(u=s.call()),o||(o=f(r,e)),l=(0,n.rightMostExactOrLesser)(a,u,o,0,u.length),c=(0,n.leftMostExactOrGreater)(null,u,o,l,u.length),{data:u,schema:r,config:i,generatorFn:function(){return u.slice(l+1,c)}}}}}function h(e,t,r){var a=t,o=r;return{ops:"indexColGreaterEquals",type:i.OperatorTypes.IndexOpsFilter,_updateArgs:function(e){a=e},fn:function(t,r,i,s){var l,c,u=t;return s&&(u=s.call()),o||(o=f(r,e)),l=(0,n.leftMostExactOrGreater)(a,u,o,0,u.length),c=(0,n.leftMostExactOrGreater)(null,u,o,l,u.length),{data:u,schema:r,config:i,generatorFn:function(){return u.slice(l,c)}}}}}var f=function(e,t){switch(e[t].type){case"interval":return function(e,r){return(0,o.numberComparator)(e[t].start,r)};case"number":case"date":return function(e,r){return(0,o.numberComparator)(e[t],r)};default:return function(e,r){return(0,o.stringComparator)(String(e[t]).toLowerCase(),String(r).toLowerCase())}}}},function(e,t,r){"use strict";t.__esModule=!0,t.leftMostExactOrGreater=function(e,t,r,n,a){var i=n,o=a;for(;i<o;){var s=i+Math.floor((o-i)/2);r(t[s],e)<0?i=s+1:o=s}return i},t.rightMostExactOrLesser=function(e,t,r,n,a){var i=n,o=a;for(;i<o;){var s=i+Math.floor((o-i)/2);r(t[s],e)>0?o=s:i=s+1}return i-1}},function(e,t,r){"use strict";t.__esModule=!0,t.OperatorTypes=void 0;t.OperatorTypes={IndexOpsFilter:0,GenericFilter:1,GroupBy:2,Sort:3,Select:4}},function(e,t,r){"use strict";t.__esModule=!0,t.select=function(e,t){var r=e,i=t;return r=r&&r.constructor!==Array?[r]:r,{ops:"select",type:n.OperatorTypes.Select,fn:function(e,t,n,o){var s,l,c=[],u=[];if(r)if((i=i||{exclude:!1}).exclude)for(s=0;s<t.length;s++)r.includes(t[s].name)||(c.push(t[s]),u.push(s));else for(s=0;s<r.length;s++)(l=(0,a.columnIndexOf)(r[s],t))>-1&&!u.includes(l)&&(c.push(t[l]),u.push(l));else c=t;return{data:e,schema:c,config:n,generatorFn:function(){var t=u.length;if(t>0){var r,n,a,i=[];for(r=0;r<e.length;r++){for(a=[],n=0;n<t;n++)a[n]=e[r][u[n]];i[r]=a}return i}return e.slice(0)}}}}},t.filter=function(e){var t=this;return{ops:"filter",type:n.OperatorTypes.GenericFilter,fn:function(r,n,a,i){var o=r;return{data:o,schema:n,config:a,generatorFn:function(){i&&(o=i.call());for(var r={},a=0;a<n.length;a++)r[n[a].name]=a;return o.filter((function(n){return e.call(t,n,r)}))}}}}};var n=r(369),a=r(343)},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t._singleSortedAddRow=p,t._singleSortedAddRowDate=m,t["default"]=void 0;var a,i=r(343),o=r(372),s=r(387),l=r(388),c=n(r(389)),u=r(347),d=r(369),h=r(368),f=r(345);function g(e,t,r,n){var i,o,s,l,u,d=[],h=t,f=r,g=h.length,p=f.length;for(h=h instanceof Array?h:[h],f=f instanceof Array?f:[f],s=0;s<g;s++)i=n(h[s].column,e),u={name:h[s].outputAs||h[s].column,type:"date"===i.type?"interval":i.type},i.enableUTC!==a&&(u.enableUTC=i.enableUTC),d.push(u);for(s=0;s<p;s++){if(l=f[s].operation||"avg",i=n(f[s].column,e),!c["default"].resolve(l))throw new Error(l+" is not a defined operation");switch(l){case"first":case"last":o=i.type;break;case"count":o="number";break;default:if("number"!==i.type)throw new Error(l+" can apply only on numbers");o="number"}d.push({name:f[s].outputAs||f[s].column+(l?" - "+l:""),type:o})}return d}function p(e,t,r){var n=t;return n&&r===n[0]||(n=[r],e.push(n)),n}function m(e,t,r,n,a){var i=t;if(r>=i[0].end){var s;switch(n.duration.Unit){case"Month":case"Quarter":case"Year":s=(0,o.getDateStart)(r,n.duration,n.enableUTC,n.weekStartFrom,a);break;default:s=r-(r-a)%n.duration.ms}i=[(0,l.interval)(s,n)],e.push(i)}return i}function v(){var e={};return function(t,r,n){if(!e[t]){var o=(0,i.columnIndexOf)(t,r),s=r[o];if(s===a)throw new Error("incorrect column name in config - "+t);e[t]=s,e[t].column=t,e[t].index=o,"date"===s.type&&n&&(e[t].peaks=(0,i.columnExtents)(t,n,r))}return e[t]}}function b(e,t,r,n,a,i,s,c,u,d){var h,f,g,p,m="",v=[],b=r.length,x=c;if(e.length>0){for(h=0;h<b;h++)if("date"===(f=a(r[h].column,t)).type){if(i[h].startValFloorVal>e[f.index])return x;switch(r[h].timeUnit.name){case"Month":case"Quarter":case"Year":i[h].value=(0,o.getDateStart)(e[f.index],i[h].intervalConfig.duration,i[h].intervalConfig.enableUTC,i[h].intervalConfig.weekStartFrom,i[h].startValFloorVal);break;default:i[h].value=e[f.index]-(e[f.index]-i[h].startValFloorVal)%i[h].intervalConfig.duration.ms}m+=i[h].value+"-"}else v[h]=e[f.index],m+=e[f.index]+"-";if(s[m=m.slice(0,-1)]>=0)v=u[s[m]],g=s[m];else{for(var C in s[m]=x++,i)p=(0,l.interval)(i[C].value,i[C].intervalConfig),v[C]=p;u.push(v),g=u.length-1}return d[g]=d[g]||{},v&&y(e,t,v,b,n,a,d[g]),x}}function y(e,t,r,n,i,o,s){var l,u,d,h,f=i.length;for(h=0;h<f;h++)if(e[(l=o(i[h].column,t)).index]!==a&&null!==e[l.index]){switch(u=i[h].operation||"avg"){case"sum":case"min":case"max":case"first":case"last":d=null;break;default:d=s[h]=s[h]&&s[h]+1||1}r[n+h]="count"===u?d:c["default"].resolve(u)(r[n+h]!==a?r[n+h]:null,e[l.index],d)}}var x=function(e,t){var r=e,n=t;return{ops:"groupBy",type:d.OperatorTypes.GroupBy,_updateArgs:function(e,t){r=e,n=t},fn:function(e,t,c,d){var x=e;if(d&&(x=d.call()),!r||0===r.length)throw new Error("groupConfigArray cannot be empty");if(!n||0===n.length)throw new Error("aggrConfigArray cannot be empty");return!(r instanceof Array)&&r instanceof Object&&(r=[r]),!(n instanceof Array)&&n instanceof Object&&(n=[n]),1===r.length&&c&&r[0].column===c.indexBy?function(e,t,r,n,c){var d,b,x,C,w,_,k,S,E,A=[],T=e.length,M=0,F=v(),I=[];if((b=F(n.column,t)).outputAs=n.outputAs,d=g(t,[b],c,F),T>0){if(S=b.enableUTC||(0,u.getConfig)("enableUTC"),"date"===b.type){var L,N,D;if(C=(0,s.duration)(n.timeUnit,Math.abs(n.binSize)||1),e[0]&&e[0][b.index]&&e[T-1]&&e[T-1][b.index]||(L=(0,i.columnExtents)(n.column,e,t,r.indexBy)),N=e[0]&&e[0][b.index]||L.min,D=n.startValue&&parseInt(n.startValue,10))if(D>=N){w=(0,o.getDateStart)(D,(0,s.duration)(n.timeUnit,1),S,n.weekStartFrom),M=(0,h.leftMostExactOrGreater)(w,e,(function(e,t){return(0,f.numberComparator)(e[b.index],t)}),0,e.length)}else w=(0,o.getDateStart)(N,C,S,n.weekStartFrom,D);else w=(0,o.getDateStart)(N,(0,s.duration)(n.timeUnit,1),S,n.weekStartFrom);x=e[T-1]&&e[T-1][b.index]||L.max}if(w===a||w<=x){var O={duration:C,outputFormat:n.outputFormat,enableUTC:S,weekStartFrom:n.weekStartFrom};for(w!==a&&(_=[(0,l.interval)(w,O)],A.push(_)),E=M;E<T;E++)e[E].length>0&&("date"===b.type?_=m(A,_,e[E][b.index],O,w):"string"!==b.type&&"number"!==b.type||(_=p(A,_,e[E][b.index])),k=A.length-1,I[k]=I[k]||{},_&&y(e[E],t,_,1,c,F,I[k]))}}return{data:A,schema:d,config:{indexBy:n.outputAs||n.column}}}(x,t,c,r[0],n):function(e,t,r,n,a){var i,l,c,d,h,f=[],p=[],m=!0,y=e.length,x=n.length,C={},w=[],_=v(),k={},S=0;for(h=0;h<x;h++)(l=_(n[h].column,t,e)).outputAs=n[h].outputAs,"date"===l.type&&(C[h]||(n[h].startValue>=l.peaks.max&&(m=!1),C[h]=Object.assign({},l),C[h].intervalConfig={duration:(0,s.duration)(n[h].timeUnit,Math.abs(n[h].binSize)||1),outputFormat:n[h].outputFormat,enableUTC:l.enableUTC||(0,u.getConfig)("enableUTC"),weekStartFrom:n[h].weekStartFrom},c=parseInt(n[h].startValue,10)||l.peaks.min,C[h].startValFloorVal=c&&(0,o.getDateStart)(c,(0,s.duration)(n[h].timeUnit,1),C[h].intervalConfig.enableUTC,C[h].intervalConfig.weekStartFrom,parseInt(n[h].startValue,10)),C[h].max=l.peaks.max)),p[h]=l,d||n[h].column!==r.indexBy||(d=n[h].outputAs||n[h].column);if(i=g(t,p,a,_),m&&y>0)for(h=0;h<y;h++)S=b(e[h],t,n,a,_,C,k,S,f,w);return{data:f,schema:i,config:{indexBy:d}}}(x,t,c,r,n)}}};t["default"]=x},function(e,t,r){"use strict";var n=r(178),a=r(182);t.__esModule=!0,t.getDefaultOutputFormat=function(e){switch(e){case"Millisecond":case"Second":case"Minute":case"Hour":case"Day":case"Month":case"Year":return c[e];case"Week":return c.Day;case"Quarter":return c.Month}},t.dateIntervalToString=function(){var e,t=this.config;switch(e="undefined"!=typeof t.enableUTC&&t.enableUTC?l["default"].utcFormatter(t.outputFormat):l["default"].formatter(t.outputFormat),t.duration.Unit){case"Millisecond":case"Second":case"Minute":case"Hour":case"Day":case"Month":case"Year":return e.format(new Date(this.start))+(t.duration.number>1?" - "+e.format(new Date(this.end-1)):"");case"Week":case"Quarter":return e.format(new Date(this.start))+" - "+e.format(new Date(this.end-1))}},t.dateRangeCaclulator=function(e,t,r,n,a){void 0===a&&(a=!1);var i,o,s;i=e,a&&((s=Object.assign({},t)).number=1,i=h(i,s,r,n));return o=f(i,t.Unit,t.number,r,n),{startDate:i,endDate:o}},t.getDateStart=h,t.getDateOffset=f;var i=a(r(373)),o=a(r(381)),s=r(386),l=n(r(348)),c={Year:"%Y",Month:"%b %Y",Day:"%b %d, %Y",Hour:"%b %d, %Y %H hrs",Minute:"%b %d, %Y %H:%M",Second:"%b %d, %Y %H:%M:%S",Millisecond:"%b %d, %Y %H:%M:%S:%L"},u={Millisecond:i.timeMillisecond,Second:i.timeSecond,Minute:i.timeMinute,Hour:i.timeHour,Day:i.timeDay,Week:{0:i.timeSunday,1:i.timeMonday,2:i.timeTuesday,3:i.timeWednesday,4:i.timeThursday,5:i.timeFriday,6:i.timeSaturday},Month:i.timeMonth,Quarter:i.timeQuarter,Year:i.timeYear},d={Millisecond:o.utcMillisecond,Second:o.utcSecond,Minute:o.utcMinute,Hour:o.utcHour,Day:o.utcDay,Week:{0:o.utcSunday,1:o.utcMonday,2:o.utcTuesday,3:o.utcWednesday,4:o.utcThursday,5:o.utcFriday,6:o.utcSaturday},Month:o.utcMonth,Quarter:o.utcQuarter,Year:o.utcYear};function h(e,t,r,n,a){var i,o=void 0!==r&&r?d[t.Unit]:u[t.Unit],l=n;if(l&&!s.Weekdays[l.name])throw new Error("Invalid weekStartFrom provided: "+l);return 1===t.number?"Week"===t.Unit?+o[(l=l||s.Weekdays.Sunday).id].floor(new Date(e)):+o.floor(new Date(e)):a?"Week"===t.Unit?(i=o[(l=l||s.Weekdays.Sunday).id].count(a,e)%t.number)?f(+o[l.id].floor(e),t.Unit,-i,r,l):+o[l.id].floor(e):(i=o.count(a,e)%t.number)?f(+o.floor(e),t.Unit,-i,r,l):+o.floor(e):"Week"===t.Unit?+o[(l=l||s.Weekdays.Sunday).id].every(t.number).floor(new Date(e)):+o.every(t.number).floor(new Date(e))}function f(e,t,r,n,a){switch(t){case"Month":case"Quarter":case"Year":return+(void 0!==n&&n?d[t]:u[t]).offset(new Date(e),r);default:return e+s.DatetimeUnits[t].ms*r}}},function(e,t,r){"use strict";var n=r(182),a=r(178);t.__esModule=!0;var i=a(r(374));t.timeMillisecond=i["default"];var o=a(r(376));t.timeSecond=o["default"];var s=a(r(377));t.timeMinute=s["default"];var l=a(r(378));t.timeHour=l["default"];var c=a(r(352));t.timeDay=c["default"];var u=n(r(357));t.timeWeek=u["default"],t.timeSunday=u.sunday,t.timeMonday=u.monday,t.timeTuesday=u.tuesday,t.timeWednesday=u.wednesday,t.timeThursday=u.thursday,t.timeFriday=u.friday,t.timeSaturday=u.saturday;var d=a(r(379));t.timeQuarter=d["default"];var h=a(r(380));t.timeMonth=h["default"];var f=a(r(358));t.timeYear=f["default"]},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=new(n(r(375))["default"])("millisecond",(function(){}),(function(e,t){return e.setTime(Number(e)+Number(t))}),(function(e,t){return t-e}));t["default"]=a},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(353)),o=function(e){function t(){return e.apply(this,arguments)||this}return(0,a["default"])(t,e),t.prototype.every=function(e){var t=Math.floor(e);return this.count&&Number.isFinite(t)&&t>0?t>1?new i["default"]("millisecond",(function(e){return e.setTime(Math.floor(e/t)*t)}),(function(e,r){return e.setTime(Number(e)+r*t)}),(function(e,r){return(r-e)/t})):this:null},t}(i["default"]);t["default"]=o},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(353)),i=r(354),o=new a["default"]("second",(function(e){return e.setTime(Math.floor(e/i.durationSecond)*i.durationSecond)}),(function(e,t){return e.setTime(Number(e)+t*i.durationSecond)}),(function(e,t){return(t-e)/i.durationSecond}),(function(e){return e.getUTCSeconds()}));t["default"]=o},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(353)),i=r(354),o=new a["default"]("minute",(function(e){return e.setTime(Math.floor(e/i.durationMinute)*i.durationMinute)}),(function(e,t){return e.setTime(Number(e)+t*i.durationMinute)}),(function(e,t){return(t-e)/i.durationMinute}),(function(e){return e.getMinutes()}));t["default"]=o},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(353)),i=r(354),o=new a["default"]("hour",(function(e){var t=e.getTimezoneOffset()*i.durationMinute%i.durationHour;t<0&&(t+=i.durationHour),e.setTime(Math.floor((Number(e)-t)/i.durationHour)*i.durationHour+t)}),(function(e,t){return e.setTime(Number(e)+t*i.durationHour)}),(function(e,t){return(t-e)/i.durationHour}),(function(e){return e.getHours()}));t["default"]=o},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=new(n(r(353))["default"])("quarter",(function(e){e.setMonth(e.getMonth()-(e.getMonth()+3)%3,1),e.setHours(0,0,0,0)}),(function(e,t){return e.setMonth(e.getMonth()+3*t)}),(function(e,t){return(t.getMonth()-(t.getMonth()+3)%3-(e.getMonth()-(e.getMonth()+3)%3))/3+4*(t.getFullYear()-e.getFullYear())}),(function(e){return Math.floor(e.getMonth()/3)}));t["default"]=a},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=new(n(r(353))["default"])("month",(function(e){e.setDate(1),e.setHours(0,0,0,0)}),(function(e,t){return e.setMonth(e.getMonth()+t)}),(function(e,t){return t.getMonth()-e.getMonth()+12*(t.getFullYear()-e.getFullYear())}),(function(e){return e.getMonth()}));t["default"]=a},function(e,t,r){"use strict";var n=r(182),a=r(178);t.__esModule=!0,t["default"]=void 0;var i=a(r(374));t.utcMillisecond=i["default"];var o=a(r(376));t.utcSecond=o["default"];var s=a(r(382));t.utcMinute=s["default"];var l=a(r(383));t.utcHour=l["default"];var c=a(r(355));t.utcDay=c["default"];var u=n(r(356));t.utcWeek=u["default"],t.utcSunday=u.utcSunday,t.utcMonday=u.utcMonday,t.utcTuesday=u.utcTuesday,t.utcWednesday=u.utcWednesday,t.utcThursday=u.utcThursday,t.utcFriday=u.utcFriday,t.utcSaturday=u.utcSaturday;var d=a(r(384));t.utcQuarter=d["default"];var h=a(r(385));t.utcMonth=h["default"];var f=a(r(360));t.utcYear=f["default"];var g={getInterval:function(e){switch(e+""){case"millisecond":return i["default"];case"second":return o["default"];case"minute":return s["default"];case"hour":return l["default"];case"day":return c["default"];case"week":return u["default"];case"sunday":return u.utcSunday;case"monday":return u.utcMonday;case"tuesday":return u.utcTuesday;case"wednesday":return u.utcWednesday;case"thursday":return u.utcThursday;case"friday":return u.utcFriday;case"saturday":return u.utcSaturday;case"quarter":return d["default"];case"month":return h["default"];case"year":return f["default"]}}};t["default"]=g},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(353)),i=r(354),o=new a["default"]("minute",(function(e){return e.setUTCSeconds(0,0)}),(function(e,t){return e.setTime(Number(e)+t*i.durationMinute)}),(function(e,t){return(t-e)/i.durationMinute}),(function(e){return e.getUTCMinutes()}));t["default"]=o},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(353)),i=r(354),o=new a["default"]("hour",(function(e){return e.setUTCMinutes(0,0,0)}),(function(e,t){return e.setTime(Number(e)+t*i.durationHour)}),(function(e,t){return(t-e)/i.durationHour}),(function(e){return e.getUTCHours()}));t["default"]=o},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=new(n(r(353))["default"])("quarter",(function(e){e.setUTCMonth(e.getUTCMonth()-(e.getUTCMonth()+3)%3,1),e.setUTCHours(0,0,0,0)}),(function(e,t){return e.setUTCMonth(e.getUTCMonth()+3*t)}),(function(e,t){return(t.getUTCMonth()-(t.getUTCMonth()+3)%3-(e.getUTCMonth()-(e.getUTCMonth()+3)%3))/3+4*(t.getUTCFullYear()-e.getUTCFullYear())}),(function(e){return Math.floor(e.getMonth()/3)}));t["default"]=a},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=new(n(r(353))["default"])("month",(function(e){e.setUTCDate(1),e.setUTCHours(0,0,0,0)}),(function(e,t){return e.setUTCMonth(e.getUTCMonth()+t)}),(function(e,t){return t.getUTCMonth()-e.getUTCMonth()+12*(t.getUTCFullYear()-e.getUTCFullYear())}),(function(e){return e.getUTCMonth()}));t["default"]=a},function(e,t,r){"use strict";t.__esModule=!0,t.Weekdays=t.DatetimeUnits=void 0;var n=r(354),a={Millisecond:{name:"Millisecond",ms:1},Second:{name:"Second",ms:n.durationSecond},Minute:{name:"Minute",ms:n.durationMinute},Hour:{name:"Hour",ms:n.durationHour},Day:{name:"Day",ms:n.durationDay},Week:{name:"Week",ms:n.durationWeek},Month:{name:"Month",ms:n.durationMonth},Quarter:{name:"Quarter",ms:n.durationQuarter},Year:{name:"Year",ms:n.durationYear}};t.Weekdays={Sunday:{name:"Sunday",id:0},Monday:{name:"Monday",id:1},Tuesday:{name:"Tuesday",id:2},Wednesday:{name:"Wednesday",id:3},Thursday:{name:"Thursday",id:4},Friday:{name:"Friday",id:5},Saturday:{name:"Saturday",id:6}},t.DatetimeUnits=a},function(e,t,r){"use strict";t.__esModule=!0,t.duration=function(e,t){var r=t;if(!e||!n.DatetimeUnits[e.name])throw new Error("Invalid Unit provided: "+e);return r=Math.abs(r)||1,{Unit:e.name,number:r,ms:e.ms*r}};var n=r(386)},function(e,t,r){"use strict";t.__esModule=!0,t.interval=function(e,t,r){void 0===r&&(r=!1);if(t.duration.ms){var i=(0,a.dateRangeCaclulator)(e,t.duration,t.enableUTC,t.weekStartFrom||n.Weekdays.Sunday,r),o=i.startDate,s=i.endDate;return t.outputFormat=t.outputFormat||(0,a.getDefaultOutputFormat)(t.duration.Unit),{start:o,end:s,config:t,toString:a.dateIntervalToString}}};var n=r(386),a=r(372)},function(e,t,r){"use strict";var n=r(182);t.__esModule=!0,t["default"]=void 0;var a={store:{},_defaultAggregators:n(r(390)),register:function(e,t){return this.store[e]=t,this},getRegisteredAggregations:function(){return Object.assign(this.store)},getDefaultAggregations:function(){return Object.assign(this._defaultAggregators)},resolve:function(e){return this._defaultAggregators[e]||this.store[e]}};t["default"]=a},function(e,t,r){"use strict";t.__esModule=!0,t.stddev=t.variance=t.last=t.first=t.max=t.min=t.count=t.avg=t.sum=void 0;var n=function(e,t,r){return((r-1)*e+t)/r},a=function(e,t,r){var a,i=t,o=0;return e&&(i=e.avg,o=e.variance),a=i,r>1&&(o=(o*(r-2)+(t-(i=n(i,t,r)))*(t-a))/(r-1)),{avg:i,variance:o}};t.stddev=function(e,t,r){var n,i;return e&&(n={avg:e.avg,variance:e.stddev*e.stddev}),{avg:(i=a(n,t,r)).avg,stddev:Math.sqrt(i.variance)}},t.variance=a,t.last=function(e,t){return t},t.first=function(e,t){return null===e?t:e},t.max=function(e,t){return null!==e?e<t?t:e:t},t.min=function(e,t){return null!==e?e>t?t:e:t},t.count=function(e){return e+1},t.avg=n,t.sum=function(e,t){return e+t}},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=function(){for(var e,t=[],r=[],i=[],o=function(e,t){for(var r=[],n=e.length,i=0;i<n;i++)t[i]||r.push(e[i]);return r&&r.length>0&&(0,a.binaryInsertionSort)(r,(function(e,t){return e.type-t.type})),r},s=arguments.length,l=new Array(s),c=0;c<s;c++)l[c]=arguments[c];e=l.length;for(var u=0;u<e;u++)switch(l[u].type){case n.OperatorTypes.IndexOpsFilter:case n.OperatorTypes.GenericFilter:t.push(l[u]),r.push(!1);break;case n.OperatorTypes.Select:case n.OperatorTypes.Sort:t.push(l[u]),r.push(!0);break;case n.OperatorTypes.GroupBy:i=i.concat(o(t,r),l[u]),t=[],r=[]}return i=i.concat(function(e){var t=[],r=e.length;(0,a.binaryInsertionSort)(e,(function(e,t){return e.type-t.type})),t.push(e[0]);for(var n=1;n<r;n++)e[n].type>=3&&e[n].type===t[t.length-1].type&&t.pop(),t.push(e[n]);return t}(t))};var n=r(369),a=r(346)},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a,i=r(369),o=r(343),s=r(345),l=n(r(346));var c=function(e){var t=e;return{ops:"sort",type:i.OperatorTypes.Sort,_updateArgs:function(e){t=e},fn:function(e,r,n,i){var c=e;return{data:c,schema:r,config:t.constructor===Array&&t.length?{indexBy:t[0].column}:t.constructor===Object?{indexBy:t.column}:a,generatorFn:function(){var e;if(i&&(c=i.call()),t.constructor===Function)e=t;else{t.constructor!==Array&&(t=[t]);var n,a,u,d=[],h=[];for(n=0;n<t.length;n++)if(t[n].column){if(a=(0,o.columnIndexOf)(t[n].column,r),h.push(a),-1===a)throw new Error("Sort column is not found in schema - "+t[n].column);switch(r[a].type){case"number":case"interval":case"date":d.push(s.numberComparator);break;default:d.push(s.stringComparator)}}e=function(e,a){for(n=0;n<t.length;n++){if(0!==(u="interval"===r[h[n]].type?"desc"===t[n].order?d[n](a[h[n]].start,e[h[n]].start):d[n](e[h[n]].start,a[h[n]].start):"desc"===t[n].order?d[n](a[h[n]],e[h[n]]):d[n](e[h[n]],a[h[n]])))return u;if(n===t.length-1)return 0}}}return(0,l["default"])(c,e),c}}}}};t["default"]=c},function(e,t,r){"use strict";var n=r(182),a=r(178);t.__esModule=!0,t["default"]=void 0;var i,o=r(343),s=r(372),l=r(387),c=r(388),u=a(r(389)),d=r(347),h=r(369),f=n(r(371)),g=r(345),p=r(368);function m(e,t,r,n,a,o,s,l,c){var d,h,f,g,p,m=a.length;for(g=0;g<m;g++)if(e[d=l(a[g].column,t)]!==i&&null!==e[d]){switch(h=a[g].operation||"avg",p=s[e[o]+" - "+(a[g].outputAs||a[g].column+(h?" - "+h:""))],h){case"sum":case"min":case"max":case"first":case"last":f=null;break;default:f=c[p]=c[p]&&c[p]+1||1}r[n+p]="count"===h?f:u["default"].resolve(h)(r[n+p]!==i?r[n+p]:null,e[d],f)}}var v=function(e,t,r){var n=e,a=t,v=r;return{ops:"pivot",type:h.OperatorTypes.GroupBy,_updateArgs:function(e,t,r){n=e,a=t,v=r},fn:function(e,t,r,h){if(0===n.length)throw new Error("groupConfigArray cannot be empty");if(0===v.length)throw new Error("aggrConfigArray cannot be empty");if(!a)throw new Error("pivotCol cannot be empty");return!(n instanceof Array)&&n instanceof Object&&(n=[n]),!(v instanceof Array)&&v instanceof Object&&(v=[v]),1===n.length&&r&&n[0].column===r.indexBy?function(e,t,r,n,a,h){var v,b,y,x,C,w,_,k,S,E,A,T,M,F,I,L=[],N=e.length,D=0,O=(P={},function(e,t){return P[e]||(P[e]=(0,o.columnIndexOf)(e,t)),P[e]}),R=[];var P;if(-1===(x=(0,o.columnIndexOf)(n.column,t)))throw new Error("incorrect column name in groupConfigArr - "+n);if(-1===(w=(0,o.columnIndexOf)(h,t)))throw new Error("incorrect pivot column name");if(C=t[x],_=t[w],(S=Object.assign({},n)).type=C.type,S.outputAs=n.outputAs,y=function(e,t,r,n,a){var s,l,c,d,h,f,p,m,v,b,y,x,C,w=[],_={},k=0,S=r,E=n;for(S=S instanceof Array?S:[S],E=E instanceof Array?E:[E],d=S.length,h=E.length,b=0;b<d;b++){if(f=(0,o.columnIndexOf)(S[b].column,t),p=t[f],-1===f)throw new Error("incorrect column name in groupConfigArr - "+S[b].column);C={name:S[b].outputAs||S[b].column,type:"date"===p.type?"interval":p.type},p.enableUTC!==i&&(C.enableUTC=p.enableUTC),w.push(C)}switch(a.type){case"number":case"date":s=g.numberComparator;break;default:s=g.stringComparator}for((l=(0,o.columnUnique)(a.name,e,t)).sort((function(e,t){return s(e,t)})),c=l.length,b=0;b<h;b++){if(x=E[b].operation||"avg",f=(0,o.columnIndexOf)(E[b].column,t),p=t[f],-1===f)throw new Error("incorrect column name in aggrConfigArr - "+E[b].column);if(!u["default"].resolve(x))throw new Error(x+" is not a defined operation");switch(x){case"first":case"last":m=p.type;break;case"count":m="number";break;default:if("number"!==p.type)throw new Error(x+" can apply only on numbers");m="number"}for(y=0;y<c;y++)v=l[y]+" - "+(E[b].outputAs||E[b].column+(x?" - "+x:"")),_[v]=k++,w.push({name:v,type:m})}return{schema:w,pivots:_}}(e,t,S,a,_),v=y.schema,b=y.pivots,N>0){if(F=C.enableUTC||(0,d.getConfig)("enableUTC"),"date"===C.type){var V,B,j;if(E=(0,l.duration)(n.timeUnit,Math.abs(n.binSize)||1),e[0]&&e[0][x]&&e[N-1]&&e[N-1][x]||(V=(0,o.columnExtents)(n.column,e,t,r.indexBy)),B=e[0]&&e[0][x]||V.min,j=n.startValue&&parseInt(n.startValue,10))if(j>=B){A=(0,s.getDateStart)(j,(0,l.duration)(n.timeUnit,1),F,n.weekStartFrom),D=(0,p.leftMostExactOrGreater)(A,e,(function(e,t){return(0,g.numberComparator)(e[x],t)}),0,e.length)}else A=(0,s.getDateStart)(B,E,F,n.weekStartFrom,j);else A=(0,s.getDateStart)(B,(0,l.duration)(n.timeUnit,1),F,n.weekStartFrom);k=e[N-1]&&e[N-1][x]||V.max}if(A===i||A<=k){var G={duration:E,outputFormat:n.outputFormat,enableUTC:F,weekStartFrom:n.weekStartFrom};for(A!==i&&(T=[(0,c.interval)(A,G)],L.push(T)),I=D;I<N;I++)e[I].length>0&&("date"===C.type?T=(0,f._singleSortedAddRowDate)(L,T,e[I][x],G,A):"string"!==C.type&&"number"!==C.type||(T=(0,f._singleSortedAddRow)(L,T,e[I][x])),M=L.length-1,R[M]=R[M]||{},T&&m(e[I],t,T,1,a,w,b,O,R[M]))}}return{data:L,schema:v,config:{indexBy:n.outputAs||n.column}}}(e,t,r,n[0],v,a):function(e,t,r,n,a,s,l){var c,u,d,h,p,m,v,b,y,x,C={},w={},_=function(e){return w.hasOwnProperty(e)?w[e]:-1},k=function(e,t){w[e]=t},S=function(e,t,r,n){return e+" - "+(t||r+(n?" - "+n:""))},E=[];switch(c=(0,f["default"])(a.concat({column:l}),s),u=c.fn(e,t,r,n),h=(0,o.columnUnique)(l,e,t),v=(0,o.columnIndexOf)(l,u.schema),u.schema[v].type){case"number":case"date":d=g.numberComparator;break;default:d=g.stringComparator}p=h&&h.sort((function(e,t){return d(e,t)}))||[],m=u.schema.filter((function(e){return e.name!==l})),b=m.length,y=a.map((function(e){return e.outputAs||e.column})),x=function(){for(var e,t=[],r=function(r){if(y.includes(m[r].name))t.push(m[r]),C[m[r].name]=r;else{e=s.filter((function(e){return(e.outputAs||e.column+(e.operation?" - "+e.operation:""))===m[r].name}))[0];for(var n=0;n<p.length;n++)t.push({name:S(p[n],e.outputAs,e.column,e.operation),type:m[r].type})}},n=0;n<b;n++)r(n);return t}(),u.data.length>0&&(E=function(e){var t,r,n,a,i,o=[],c=e.length,d={},h={},f="";for(t=0;t<c;t++)d[e[t].name]=t;for(t=0;t<u.data.length;t++){for(h={},f="",r=0;r<u.schema.length;r++)C.hasOwnProperty(u.schema[r].name)?(h[d[u.schema[r].name]]=u.data[t][r],"interval"===u.schema[r].type?f+=u.data[t][r].start:f+=u.data[t][r]):u.schema[r].name!==l&&(a=s.filter((function(e){return(e.outputAs||e.column+(e.operation?" - "+e.operation:""))===u.schema[r].name}))[0],(i=d[S(u.data[t][v],a.outputAs,a.column,a.operation)])&&(h[i]=u.data[t][r]));if((n=_(f))>-1){var g=o[n];for(var p in h)g[p]=h[p]}else{var m=new Array(c);for(var b in h)m[b]=h[b];o.push(m),k(f,o.length-1)}}return o}(x));return{data:E,schema:x,config:{indexBy:u.config.indexBy===l?i:u.config.indexBy}}}(e,t,r,h,n,v,a)}}};t["default"]=v},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0;var a=n(r(389));t.aggregatorStore=a["default"]},function(e,t,r){"use strict";t.__esModule=!0;var n=r(396);t.before=n.before,t.after=n.after;var a=r(397);t.parseDate=a.parseDate,t.formatDate=a.formatDate;var i=r(387);t.duration=i.duration;var o=r(386);t.DatetimeUnits=o.DatetimeUnits,t.Weekdays=o.Weekdays},function(e,t,r){"use strict";t.__esModule=!0,t.before=function(e,t,r,i){if(!e)throw new Error("duration is missing");if(t&&(isNaN(t)||isNaN(+new Date(t))))throw new Error("timestamp is incorrect");return(0,n.getDateOffset)(isNaN(t)?+new Date:t,e.Unit,-e.number,r,i||a.Weekdays.Sunday)},t.after=function(e,t,r,i){if(!e)throw new Error("duration is missing");if(t&&(isNaN(t)||isNaN(+new Date(t))))throw new Error("timestamp is incorrect");return(0,n.getDateOffset)(isNaN(t)?+new Date:t,e.Unit,e.number,r,i||a.Weekdays.Sunday)};var n=r(372),a=r(386)},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t.parseDate=function(e,t,r){var n,i;t&&(n=void 0!==r&&r?a["default"].utcParser(t):a["default"].parser(t),i=(i=n.parse(e))&&i.getTime());i||(i=void 0!==r&&r?+new Date(e+"Z"):+new Date(e));if(!i)throw new Error("Incorrect string or format provided");return i},t.formatDate=function(e,t,r){var n,o,s=t;if(isNaN(parseInt(e,10)))throw new Error("Timestamp must be a number: "+e);s||(s=i);if(n=void 0!==r&&r?a["default"].utcFormatter(s):a["default"].formatter(s),!(o=n.format(new Date(e))))throw new Error("Incorrect format provided: "+s);return o};var a=n(r(348)),i="%a, %-d %b %Y, %H:%M:%S:%L"},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]={column2d:"charts",column3d:"charts",bar2d:"charts",bar3d:"charts",pie2d:"charts",pie3d:"charts",line:"charts",area2d:"charts",doughnut2d:"charts",doughnut3d:"charts",pareto2d:"charts",pareto3d:"charts",mscolumn2d:"charts",mscolumn3d:"charts",msline:"charts",msarea:"charts",msbar2d:"charts",msbar3d:"charts",stackedcolumn2d:"charts",marimekko:"charts",stackedcolumn3d:"charts",stackedarea2d:"charts",stackedcolumn2dline:"charts",stackedcolumn3dline:"charts",stackedbar2d:"charts",stackedbar3d:"charts",msstackedcolumn2d:"charts",mscombi2d:"charts",mscombi3d:"charts",mscolumnline3d:"charts",mscombidy2d:"charts",mscombidy3d:"charts",mscolumn3dlinedy:"charts",stackedcolumn2dlinedy:"charts",stackedarea2dlinedy:"charts",stackedcolumn3dlinedy:"charts",msstackedcolumn2dlinedy:"charts",scatter:"charts",bubble:"charts",ssgrid:"charts",scrollbar2d:"charts",scrollcolumn2d:"charts",scrollcolumn3d:"charts",scrollline2d:"charts",scrollarea2d:"charts",scrollstackedcolumn2d:"charts",scrollstackedbar2d:"charts",scrollcombi2d:"charts",scrollmsstackedcolumn2d:"charts",scrollmsstackedcolumn2dlinedy:"charts",scrollcombidy2d:"charts",spline:"charts",splinearea:"charts",msspline:"charts",mssplinearea:"charts",mssplinedy:"charts",multiaxisline:"powercharts",multilevelpie:"powercharts",sunburst:"powercharts",waterfall2d:"powercharts",msstepline:"powercharts",inversemsline:"powercharts",inversemscolumn2d:"powercharts",inversemsarea:"powercharts",errorbar2d:"powercharts",errorscatter:"powercharts",errorline:"powercharts",logmsline:"powercharts",logmscolumn2d:"powercharts",logstackedcolumn2d:"powercharts",radar:"powercharts",chord:"powercharts",dragnode:"powercharts",candlestick:"powercharts",selectscatter:"powercharts",dragcolumn2d:"powercharts",dragline:"powercharts",dragarea:"powercharts",boxandwhisker2d:"powercharts",kagi:"powercharts",heatmap:"powercharts",sankey:"powercharts",angulargauge:"widgets",bulb:"widgets",cylinder:"widgets",drawingpad:"widgets",funnel:"widgets",hbullet:"widgets",hled:"widgets",hlineargauge:"widgets",vlineargauge:"widgets",pyramid:"widgets",realtimearea:"widgets",realtimecolumn:"widgets",realtimeline:"widgets",realtimelinedy:"widgets",realtimestackedarea:"widgets",realtimestackedcolumn:"widgets",sparkcolumn:"widgets",sparkline:"widgets",sparkwinloss:"widgets",thermometer:"widgets",vbullet:"widgets",vled:"widgets",zoomline:"zoomline",zoomlinedy:"zoomline",gantt:"gantt",treemap:"treemap",zoomscatter:"zoomscatter",overlappedbar2d:"overlappedbar2d",overlappedcolumn2d:"overlappedcolumn2d",msstackedcolumn2dsplinedy:"msstackedcolumn2dsplinedy",timeseries:"timeseries"}},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n=r(184),a=12e4,i="utf-8",o={};var s=function(e){var t=e;if(!o[t]){var r=document.getElementsByTagName("head")[0],s=document.createElement("script"),l=setTimeout((function(){s.onerror({type:"timeout",target:s})}),a);s.charset=i,s.timeout=a,o[t]=new Promise((function(e,t){s.onreadystatechange=function(){"loaded"===s.readyState&&s.onload({})},s.onload=function(t){s.onerror=s.onload=null,clearTimeout(l),e(t)},s.onerror=function(e){s.onerror=s.onload=null,clearTimeout(l),t(e)}})),(0,n.isXSSSafe)(t,!1)||(t="function"==typeof window.encodeURIComponent?window.encodeURIComponent(t):window.escape(t)),s.src=t,r.appendChild(s)}return o[t]};t["default"]=s},function(e,t){(function(t){e.exports=t}).call(this,{})}])["default"]}));(window.webpackJsonpFusionCharts=window.webpackJsonpFusionCharts||[]).push([[2],{1015:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(334))["default"];t["default"]=n},1117:function(e,t,a){"use strict";t.__esModule=!0,t.symbolList=void 0;var i,n=(0,a(192).getDep)("redraphael","plugin"),o=Math.cos,r=Math.sin,l=Math.PI;t.symbolList=i,t.symbolList=i={pinModeIcon:function(e,t,a){var i=.5*a,n=e-a,o=e+a,r=e-i,l=e+i,s=e+.5,c=s+1,h=s+1.5,u=t-a,d=t+i,g=t-i,p=t+(a-i);return["M",n,u,"L",r,g,r,p,n,d,e-.5,d,e,t+a+.5,s,d,o,d,l,p,l,g,o,u,h,u,h,g,h,p,c,p,c,g,h,g,h,u,"Z"]},zoomOutIcon:function(e,t,a){var i=e-.2*a,l=t-.2*a,s=.8*a,c=n.rad(43),h=n.rad(48),u=i+s*o(c),d=l+s*r(c),g=i+s*o(h),p=l+s*r(h),f=a,m=n.rad(45);return["M",u,d,"A",s,s,0,1,0,g,p,"Z","M",u+1,d+1,"L",u+f*o(m),d+f*r(m),g+f*o(m),p+f*r(m),g+1,p+1,"Z","M",i-2,l,"L",i+2,l,"Z"]},resetIcon:function(e,t,a){var i=a,n=e-i,s=t,c=(l/2+l)/2,h=e+i*o(c),u=t+i*r(c),d=2*i/3;return["M",n,s,"A",i,i,0,1,1,h,u,"L",h+d,u-1,h+2,u+d-.5,h,u]},zoomInIcon:function(e,t,a){var i=e-.2*a,l=t-.2*a,s=.8*a,c=n.rad(43),h=n.rad(48),u=i+s*o(c),d=l+s*r(c),g=i+s*o(h),p=l+s*r(h),f=a,m=n.rad(45);return["M",u,d,"A",s,s,0,1,0,g,p,"Z","M",u+1,d+1,"L",u+f*o(m),d+f*r(m),g+f*o(m)-1,p+f*r(m)-1,g+1,p+1,"Z","M",i-2,l,"L",i+2,l,"Z","M",i,l-2,"L",i,l+2,"Z"]},zoomModeIcon:function(e,t,a){var i=[],l=e-.2*a,s=t-.2*a,c=.8*a,h=n.rad(43),u=n.rad(48),d=l+c*o(h),g=s+c*r(h),p=l+c*o(u),f=s+c*r(u),m=a,v=n.rad(45),b=d+m*o(v),x=g+m*r(v),y=p+m*o(v)-1,C=f+m*r(v)-1;return i=i.concat(["M",d,g,"A",c,c,0,1,0,p,f,"Z","M",d+1,g+1,"L",b,x,y,C,y+1,C-1,y+1.5,C+1.5,y-1,C+1,y,C,p+1,f+1,"Z","M",l-2,s,"L",l+2,s,"Z","M",l,s-2,"L",l,s+2,"Z"])},panModeIcon:function(e,t,a){var i,n=a;return[].concat(["M",(i=e)-(n*=2.5)/16,t-n/8,"L",i+n/16,t-n/8,"L",i+n/16,t-n/3.2,"L",i+6*n/32,t-10*n/32,"L",i,t-n/2,"L",i-6*n/32,t-10*n/32,"L",i-n/16,t-n/3.2,"Z","M",i+4*n/32,t-2*n/32,"L",i+10*n/32,t-2*n/32,"L",i+10*n/32,t-6*n/32,"L",i+16*n/32,t,"L",i+10*n/32,t+6*n/32,"L",i+10*n/32,t+2*n/32,"L",i+4*n/32,t+2*n/32,"Z","M",i+2*n/32,t+5*n/32,"L",i+2*n/32,t+10*n/32,"L",i+6*n/32,t+10*n/32,"L",i,t+16*n/32,"L",i-6*n/32,t+10*n/32,"L",i-2*n/32,t+10*n/32,"L",i-2*n/32,t+5*n/32,"Z","M",i-4*n/32,t-2*n/32,"L",i-10*n/32,t-2*n/32,"L",i-10*n/32,t-6*n/32,"L",i-16*n/32,t,"L",i-10*n/32,t+6*n/32,"L",i-10*n/32,t+2*n/32,"L",i-4*n/32,t+2*n/32,"Z"])}}},1158:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(566)),r=a(184),l=function(e){function t(){return e.apply(this,arguments)||this}(0,n["default"])(t,e);var a=t.prototype;return a.getType=function(){return"group"},a.getName=function(){return"columnOverlappedGroup"},a.setColumnPosition=function(){var e,t=this.getFromEnv("chart-attrib"),a=this.getFromEnv("xAxis"),i=this.getFromEnv("chart"),n=this.getFromEnv("numOfColumns"),o=Math.max((0,r.pluckNumber)(t.plotspacepercent),0),l=Math.max((0,r.pluckNumber)(o,20)%100,0),s=l/200,c=a.getPixel(0),h=a.getPixel(1),u=i.isBar?i.config.maxBarHeight:i.config.maxColWidth,d=Math.abs(h-c),g=!0,p=0,f=0;this.addToEnv("groupMaxWidth",d),this._mapChildren((function(e){e.getState("removed")||!1===e.getState("visible")||f++})),this.addToEnv("numOfColumns",f),this.addToEnv("numColDiff",(0,r.pluckNumber)(n-f,0)),void 0===(e=this.getFromEnv("plotWidth"))&&(e=(1-.01*o)*d||Math.min(d*(1-2*s),u*(f||1))),this._mapChildren((function(t){t.getState("removed")||!1===t.getState("visible")||(t.addToEnv("plotWidth",e-e/f*p),p++)})),h-NaN-(c-NaN+void 0)<4&&(g=!1),0===l&&(g=!0),this.addToEnv("isCrisp",g)},t}(o["default"]);t["default"]=l},1168:function(e,t,a){"use strict";(function(e){/*! +* The buffer module from node.js, for the browser. +* +* @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org> +* @license MIT +*/var i=a(1169),n=a(1170),o=a(1171);function r(){return s.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function l(e,t){if(r()<t)throw new RangeError("Invalid typed array length");return s.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=s.prototype:(null===e&&(e=new s(t)),e.length=t),e}function s(e,t,a){if(!(s.TYPED_ARRAY_SUPPORT||this instanceof s))return new s(e,t,a);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return u(this,e)}return c(this,e,t,a)}function c(e,t,a,i){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,a,i){if(t.byteLength,a<0||t.byteLength<a)throw new RangeError("'offset' is out of bounds");if(t.byteLength<a+(i||0))throw new RangeError("'length' is out of bounds");t=a===undefined&&i===undefined?new Uint8Array(t):i===undefined?new Uint8Array(t,a):new Uint8Array(t,a,i);s.TYPED_ARRAY_SUPPORT?(e=t).__proto__=s.prototype:e=d(e,t);return e}(e,t,a,i):"string"==typeof t?function(e,t,a){"string"==typeof a&&""!==a||(a="utf8");if(!s.isEncoding(a))throw new TypeError('"encoding" must be a valid string encoding');var i=0|p(t,a),n=(e=l(e,i)).write(t,a);n!==i&&(e=e.slice(0,n));return e}(e,t,a):function(e,t){if(s.isBuffer(t)){var a=0|g(t.length);return 0===(e=l(e,a)).length?e:(t.copy(e,0,0,a),e)}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(i=t.length)!=i?l(e,0):d(e,t);if("Buffer"===t.type&&o(t.data))return d(e,t.data)}var i;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function h(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function u(e,t){if(h(t),e=l(e,t<0?0:0|g(t)),!s.TYPED_ARRAY_SUPPORT)for(var a=0;a<t;++a)e[a]=0;return e}function d(e,t){var a=t.length<0?0:0|g(t.length);e=l(e,a);for(var i=0;i<a;i+=1)e[i]=255&t[i];return e}function g(e){if(e>=r())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r().toString(16)+" bytes");return 0|e}function p(e,t){if(s.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var a=e.length;if(0===a)return 0;for(var i=!1;;)switch(t){case"ascii":case"latin1":case"binary":return a;case"utf8":case"utf-8":case undefined:return H(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*a;case"hex":return a>>>1;case"base64":return z(e).length;default:if(i)return H(e).length;t=(""+t).toLowerCase(),i=!0}}function f(e,t,a){var i=!1;if((t===undefined||t<0)&&(t=0),t>this.length)return"";if((a===undefined||a>this.length)&&(a=this.length),a<=0)return"";if((a>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return _(this,t,a);case"utf8":case"utf-8":return A(this,t,a);case"ascii":return F(this,t,a);case"latin1":case"binary":return E(this,t,a);case"base64":return L(this,t,a);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,t,a);default:if(i)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),i=!0}}function m(e,t,a){var i=e[t];e[t]=e[a],e[a]=i}function v(e,t,a,i,n){if(0===e.length)return-1;if("string"==typeof a?(i=a,a=0):a>2147483647?a=2147483647:a<-2147483648&&(a=-2147483648),a=+a,isNaN(a)&&(a=n?0:e.length-1),a<0&&(a=e.length+a),a>=e.length){if(n)return-1;a=e.length-1}else if(a<0){if(!n)return-1;a=0}if("string"==typeof t&&(t=s.from(t,i)),s.isBuffer(t))return 0===t.length?-1:b(e,t,a,i,n);if("number"==typeof t)return t&=255,s.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?n?Uint8Array.prototype.indexOf.call(e,t,a):Uint8Array.prototype.lastIndexOf.call(e,t,a):b(e,[t],a,i,n);throw new TypeError("val must be string, number or Buffer")}function b(e,t,a,i,n){var o,r=1,l=e.length,s=t.length;if(i!==undefined&&("ucs2"===(i=String(i).toLowerCase())||"ucs-2"===i||"utf16le"===i||"utf-16le"===i)){if(e.length<2||t.length<2)return-1;r=2,l/=2,s/=2,a/=2}function c(e,t){return 1===r?e[t]:e.readUInt16BE(t*r)}if(n){var h=-1;for(o=a;o<l;o++)if(c(e,o)===c(t,-1===h?0:o-h)){if(-1===h&&(h=o),o-h+1===s)return h*r}else-1!==h&&(o-=o-h),h=-1}else for(a+s>l&&(a=l-s),o=a;o>=0;o--){for(var u=!0,d=0;d<s;d++)if(c(e,o+d)!==c(t,d)){u=!1;break}if(u)return o}return-1}function x(e,t,a,i){a=Number(a)||0;var n=e.length-a;i?(i=Number(i))>n&&(i=n):i=n;var o=t.length;if(o%2!=0)throw new TypeError("Invalid hex string");i>o/2&&(i=o/2);for(var r=0;r<i;++r){var l=parseInt(t.substr(2*r,2),16);if(isNaN(l))return r;e[a+r]=l}return r}function y(e,t,a,i){return W(H(t,e.length-a),e,a,i)}function C(e,t,a,i){return W(function(e){for(var t=[],a=0;a<e.length;++a)t.push(255&e.charCodeAt(a));return t}(t),e,a,i)}function k(e,t,a,i){return C(e,t,a,i)}function S(e,t,a,i){return W(z(t),e,a,i)}function w(e,t,a,i){return W(function(e,t){for(var a,i,n,o=[],r=0;r<e.length&&!((t-=2)<0);++r)a=e.charCodeAt(r),i=a>>8,n=a%256,o.push(n),o.push(i);return o}(t,e.length-a),e,a,i)}function L(e,t,a){return 0===t&&a===e.length?i.fromByteArray(e):i.fromByteArray(e.slice(t,a))}function A(e,t,a){a=Math.min(e.length,a);for(var i=[],n=t;n<a;){var o,r,l,s,c=e[n],h=null,u=c>239?4:c>223?3:c>191?2:1;if(n+u<=a)switch(u){case 1:c<128&&(h=c);break;case 2:128==(192&(o=e[n+1]))&&(s=(31&c)<<6|63&o)>127&&(h=s);break;case 3:o=e[n+1],r=e[n+2],128==(192&o)&&128==(192&r)&&(s=(15&c)<<12|(63&o)<<6|63&r)>2047&&(s<55296||s>57343)&&(h=s);break;case 4:o=e[n+1],r=e[n+2],l=e[n+3],128==(192&o)&&128==(192&r)&&128==(192&l)&&(s=(15&c)<<18|(63&o)<<12|(63&r)<<6|63&l)>65535&&s<1114112&&(h=s)}null===h?(h=65533,u=1):h>65535&&(h-=65536,i.push(h>>>10&1023|55296),h=56320|1023&h),i.push(h),n+=u}return function(e){var t=e.length;if(t<=N)return String.fromCharCode.apply(String,e);var a="",i=0;for(;i<t;)a+=String.fromCharCode.apply(String,e.slice(i,i+=N));return a}(i)}t.Buffer=s,t.SlowBuffer=function(e){+e!=e&&(e=0);return s.alloc(+e)},t.INSPECT_MAX_BYTES=50,s.TYPED_ARRAY_SUPPORT=e.TYPED_ARRAY_SUPPORT!==undefined?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(t){return!1}}(),t.kMaxLength=r(),s.poolSize=8192,s._augment=function(e){return e.__proto__=s.prototype,e},s.from=function(e,t,a){return c(null,e,t,a)},s.TYPED_ARRAY_SUPPORT&&(s.prototype.__proto__=Uint8Array.prototype,s.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&s[Symbol.species]===s&&Object.defineProperty(s,Symbol.species,{value:null,configurable:!0})),s.alloc=function(e,t,a){return function(e,t,a,i){return h(t),t<=0?l(e,t):a!==undefined?"string"==typeof i?l(e,t).fill(a,i):l(e,t).fill(a):l(e,t)}(null,e,t,a)},s.allocUnsafe=function(e){return u(null,e)},s.allocUnsafeSlow=function(e){return u(null,e)},s.isBuffer=function(e){return!(null==e||!e._isBuffer)},s.compare=function(e,t){if(!s.isBuffer(e)||!s.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var a=e.length,i=t.length,n=0,o=Math.min(a,i);n<o;++n)if(e[n]!==t[n]){a=e[n],i=t[n];break}return a<i?-1:i<a?1:0},s.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},s.concat=function(e,t){if(!o(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return s.alloc(0);var a;if(t===undefined)for(t=0,a=0;a<e.length;++a)t+=e[a].length;var i=s.allocUnsafe(t),n=0;for(a=0;a<e.length;++a){var r=e[a];if(!s.isBuffer(r))throw new TypeError('"list" argument must be an Array of Buffers');r.copy(i,n),n+=r.length}return i},s.byteLength=p,s.prototype._isBuffer=!0,s.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)m(this,t,t+1);return this},s.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)m(this,t,t+3),m(this,t+1,t+2);return this},s.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)m(this,t,t+7),m(this,t+1,t+6),m(this,t+2,t+5),m(this,t+3,t+4);return this},s.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?A(this,0,e):f.apply(this,arguments)},s.prototype.equals=function(e){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===s.compare(this,e)},s.prototype.inspect=function(){var e="",a=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,a).match(/.{2}/g).join(" "),this.length>a&&(e+=" ... ")),"<Buffer "+e+">"},s.prototype.compare=function(e,t,a,i,n){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(t===undefined&&(t=0),a===undefined&&(a=e?e.length:0),i===undefined&&(i=0),n===undefined&&(n=this.length),t<0||a>e.length||i<0||n>this.length)throw new RangeError("out of range index");if(i>=n&&t>=a)return 0;if(i>=n)return-1;if(t>=a)return 1;if(this===e)return 0;for(var o=(n>>>=0)-(i>>>=0),r=(a>>>=0)-(t>>>=0),l=Math.min(o,r),c=this.slice(i,n),h=e.slice(t,a),u=0;u<l;++u)if(c[u]!==h[u]){o=c[u],r=h[u];break}return o<r?-1:r<o?1:0},s.prototype.includes=function(e,t,a){return-1!==this.indexOf(e,t,a)},s.prototype.indexOf=function(e,t,a){return v(this,e,t,a,!0)},s.prototype.lastIndexOf=function(e,t,a){return v(this,e,t,a,!1)},s.prototype.write=function(e,t,a,i){if(t===undefined)i="utf8",a=this.length,t=0;else if(a===undefined&&"string"==typeof t)i=t,a=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(a)?(a|=0,i===undefined&&(i="utf8")):(i=a,a=undefined)}var n=this.length-t;if((a===undefined||a>n)&&(a=n),e.length>0&&(a<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var o=!1;;)switch(i){case"hex":return x(this,e,t,a);case"utf8":case"utf-8":return y(this,e,t,a);case"ascii":return C(this,e,t,a);case"latin1":case"binary":return k(this,e,t,a);case"base64":return S(this,e,t,a);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return w(this,e,t,a);default:if(o)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),o=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var N=4096;function F(e,t,a){var i="";a=Math.min(e.length,a);for(var n=t;n<a;++n)i+=String.fromCharCode(127&e[n]);return i}function E(e,t,a){var i="";a=Math.min(e.length,a);for(var n=t;n<a;++n)i+=String.fromCharCode(e[n]);return i}function _(e,t,a){var i=e.length;(!t||t<0)&&(t=0),(!a||a<0||a>i)&&(a=i);for(var n="",o=t;o<a;++o)n+=G(e[o]);return n}function T(e,t,a){for(var i=e.slice(t,a),n="",o=0;o<i.length;o+=2)n+=String.fromCharCode(i[o]+256*i[o+1]);return n}function P(e,t,a){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>a)throw new RangeError("Trying to access beyond buffer length")}function D(e,t,a,i,n,o){if(!s.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>n||t<o)throw new RangeError('"value" argument is out of bounds');if(a+i>e.length)throw new RangeError("Index out of range")}function I(e,t,a,i){t<0&&(t=65535+t+1);for(var n=0,o=Math.min(e.length-a,2);n<o;++n)e[a+n]=(t&255<<8*(i?n:1-n))>>>8*(i?n:1-n)}function M(e,t,a,i){t<0&&(t=4294967295+t+1);for(var n=0,o=Math.min(e.length-a,4);n<o;++n)e[a+n]=t>>>8*(i?n:3-n)&255}function O(e,t,a,i,n,o){if(a+i>e.length)throw new RangeError("Index out of range");if(a<0)throw new RangeError("Index out of range")}function R(e,t,a,i,o){return o||O(e,0,a,4),n.write(e,t,a,i,23,4),a+4}function V(e,t,a,i,o){return o||O(e,0,a,8),n.write(e,t,a,i,52,8),a+8}s.prototype.slice=function(e,t){var a,i=this.length;if((e=~~e)<0?(e+=i)<0&&(e=0):e>i&&(e=i),(t=t===undefined?i:~~t)<0?(t+=i)<0&&(t=0):t>i&&(t=i),t<e&&(t=e),s.TYPED_ARRAY_SUPPORT)(a=this.subarray(e,t)).__proto__=s.prototype;else{var n=t-e;a=new s(n,undefined);for(var o=0;o<n;++o)a[o]=this[o+e]}return a},s.prototype.readUIntLE=function(e,t,a){e|=0,t|=0,a||P(e,t,this.length);for(var i=this[e],n=1,o=0;++o<t&&(n*=256);)i+=this[e+o]*n;return i},s.prototype.readUIntBE=function(e,t,a){e|=0,t|=0,a||P(e,t,this.length);for(var i=this[e+--t],n=1;t>0&&(n*=256);)i+=this[e+--t]*n;return i},s.prototype.readUInt8=function(e,t){return t||P(e,1,this.length),this[e]},s.prototype.readUInt16LE=function(e,t){return t||P(e,2,this.length),this[e]|this[e+1]<<8},s.prototype.readUInt16BE=function(e,t){return t||P(e,2,this.length),this[e]<<8|this[e+1]},s.prototype.readUInt32LE=function(e,t){return t||P(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},s.prototype.readUInt32BE=function(e,t){return t||P(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},s.prototype.readIntLE=function(e,t,a){e|=0,t|=0,a||P(e,t,this.length);for(var i=this[e],n=1,o=0;++o<t&&(n*=256);)i+=this[e+o]*n;return i>=(n*=128)&&(i-=Math.pow(2,8*t)),i},s.prototype.readIntBE=function(e,t,a){e|=0,t|=0,a||P(e,t,this.length);for(var i=t,n=1,o=this[e+--i];i>0&&(n*=256);)o+=this[e+--i]*n;return o>=(n*=128)&&(o-=Math.pow(2,8*t)),o},s.prototype.readInt8=function(e,t){return t||P(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},s.prototype.readInt16LE=function(e,t){t||P(e,2,this.length);var a=this[e]|this[e+1]<<8;return 32768&a?4294901760|a:a},s.prototype.readInt16BE=function(e,t){t||P(e,2,this.length);var a=this[e+1]|this[e]<<8;return 32768&a?4294901760|a:a},s.prototype.readInt32LE=function(e,t){return t||P(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},s.prototype.readInt32BE=function(e,t){return t||P(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},s.prototype.readFloatLE=function(e,t){return t||P(e,4,this.length),n.read(this,e,!0,23,4)},s.prototype.readFloatBE=function(e,t){return t||P(e,4,this.length),n.read(this,e,!1,23,4)},s.prototype.readDoubleLE=function(e,t){return t||P(e,8,this.length),n.read(this,e,!0,52,8)},s.prototype.readDoubleBE=function(e,t){return t||P(e,8,this.length),n.read(this,e,!1,52,8)},s.prototype.writeUIntLE=function(e,t,a,i){(e=+e,t|=0,a|=0,i)||D(this,e,t,a,Math.pow(2,8*a)-1,0);var n=1,o=0;for(this[t]=255&e;++o<a&&(n*=256);)this[t+o]=e/n&255;return t+a},s.prototype.writeUIntBE=function(e,t,a,i){(e=+e,t|=0,a|=0,i)||D(this,e,t,a,Math.pow(2,8*a)-1,0);var n=a-1,o=1;for(this[t+n]=255&e;--n>=0&&(o*=256);)this[t+n]=e/o&255;return t+a},s.prototype.writeUInt8=function(e,t,a){return e=+e,t|=0,a||D(this,e,t,1,255,0),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},s.prototype.writeUInt16LE=function(e,t,a){return e=+e,t|=0,a||D(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):I(this,e,t,!0),t+2},s.prototype.writeUInt16BE=function(e,t,a){return e=+e,t|=0,a||D(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):I(this,e,t,!1),t+2},s.prototype.writeUInt32LE=function(e,t,a){return e=+e,t|=0,a||D(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},s.prototype.writeUInt32BE=function(e,t,a){return e=+e,t|=0,a||D(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},s.prototype.writeIntLE=function(e,t,a,i){if(e=+e,t|=0,!i){var n=Math.pow(2,8*a-1);D(this,e,t,a,n-1,-n)}var o=0,r=1,l=0;for(this[t]=255&e;++o<a&&(r*=256);)e<0&&0===l&&0!==this[t+o-1]&&(l=1),this[t+o]=(e/r>>0)-l&255;return t+a},s.prototype.writeIntBE=function(e,t,a,i){if(e=+e,t|=0,!i){var n=Math.pow(2,8*a-1);D(this,e,t,a,n-1,-n)}var o=a-1,r=1,l=0;for(this[t+o]=255&e;--o>=0&&(r*=256);)e<0&&0===l&&0!==this[t+o+1]&&(l=1),this[t+o]=(e/r>>0)-l&255;return t+a},s.prototype.writeInt8=function(e,t,a){return e=+e,t|=0,a||D(this,e,t,1,127,-128),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},s.prototype.writeInt16LE=function(e,t,a){return e=+e,t|=0,a||D(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):I(this,e,t,!0),t+2},s.prototype.writeInt16BE=function(e,t,a){return e=+e,t|=0,a||D(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):I(this,e,t,!1),t+2},s.prototype.writeInt32LE=function(e,t,a){return e=+e,t|=0,a||D(this,e,t,4,2147483647,-2147483648),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},s.prototype.writeInt32BE=function(e,t,a){return e=+e,t|=0,a||D(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},s.prototype.writeFloatLE=function(e,t,a){return R(this,e,t,!0,a)},s.prototype.writeFloatBE=function(e,t,a){return R(this,e,t,!1,a)},s.prototype.writeDoubleLE=function(e,t,a){return V(this,e,t,!0,a)},s.prototype.writeDoubleBE=function(e,t,a){return V(this,e,t,!1,a)},s.prototype.copy=function(e,t,a,i){if(a||(a=0),i||0===i||(i=this.length),t>=e.length&&(t=e.length),t||(t=0),i>0&&i<a&&(i=a),i===a)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(a<0||a>=this.length)throw new RangeError("sourceStart out of bounds");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),e.length-t<i-a&&(i=e.length-t+a);var n,o=i-a;if(this===e&&a<t&&t<i)for(n=o-1;n>=0;--n)e[n+t]=this[n+a];else if(o<1e3||!s.TYPED_ARRAY_SUPPORT)for(n=0;n<o;++n)e[n+t]=this[n+a];else Uint8Array.prototype.set.call(e,this.subarray(a,a+o),t);return o},s.prototype.fill=function(e,t,a,i){if("string"==typeof e){if("string"==typeof t?(i=t,t=0,a=this.length):"string"==typeof a&&(i=a,a=this.length),1===e.length){var n=e.charCodeAt(0);n<256&&(e=n)}if(i!==undefined&&"string"!=typeof i)throw new TypeError("encoding must be a string");if("string"==typeof i&&!s.isEncoding(i))throw new TypeError("Unknown encoding: "+i)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<a)throw new RangeError("Out of range index");if(a<=t)return this;var o;if(t>>>=0,a=a===undefined?this.length:a>>>0,e||(e=0),"number"==typeof e)for(o=t;o<a;++o)this[o]=e;else{var r=s.isBuffer(e)?e:H(new s(e,i).toString()),l=r.length;for(o=0;o<a-t;++o)this[o+t]=r[o%l]}return this};var B=/[^+\/0-9A-Za-z-_]/g;function G(e){return e<16?"0"+e.toString(16):e.toString(16)}function H(e,t){var a;t=t||Infinity;for(var i=e.length,n=null,o=[],r=0;r<i;++r){if((a=e.charCodeAt(r))>55295&&a<57344){if(!n){if(a>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(r+1===i){(t-=3)>-1&&o.push(239,191,189);continue}n=a;continue}if(a<56320){(t-=3)>-1&&o.push(239,191,189),n=a;continue}a=65536+(n-55296<<10|a-56320)}else n&&(t-=3)>-1&&o.push(239,191,189);if(n=null,a<128){if((t-=1)<0)break;o.push(a)}else if(a<2048){if((t-=2)<0)break;o.push(a>>6|192,63&a|128)}else if(a<65536){if((t-=3)<0)break;o.push(a>>12|224,a>>6&63|128,63&a|128)}else{if(!(a<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(a>>18|240,a>>12&63|128,a>>6&63|128,63&a|128)}}return o}function z(e){return i.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(B,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function W(e,t,a,i){for(var n=0;n<i&&!(n+a>=t.length||n>=e.length);++n)t[n+a]=e[n];return n}}).call(this,a(6))},1169:function(e,t,a){"use strict";t.byteLength=function(e){var t=c(e),a=t[0],i=t[1];return 3*(a+i)/4-i},t.toByteArray=function(e){var t,a,i=c(e),r=i[0],l=i[1],s=new o(function(e,t,a){return 3*(t+a)/4-a}(0,r,l)),h=0,u=l>0?r-4:r;for(a=0;a<u;a+=4)t=n[e.charCodeAt(a)]<<18|n[e.charCodeAt(a+1)]<<12|n[e.charCodeAt(a+2)]<<6|n[e.charCodeAt(a+3)],s[h++]=t>>16&255,s[h++]=t>>8&255,s[h++]=255&t;2===l&&(t=n[e.charCodeAt(a)]<<2|n[e.charCodeAt(a+1)]>>4,s[h++]=255&t);1===l&&(t=n[e.charCodeAt(a)]<<10|n[e.charCodeAt(a+1)]<<4|n[e.charCodeAt(a+2)]>>2,s[h++]=t>>8&255,s[h++]=255&t);return s},t.fromByteArray=function(e){for(var t,a=e.length,n=a%3,o=[],r=0,l=a-n;r<l;r+=16383)o.push(h(e,r,r+16383>l?l:r+16383));1===n?(t=e[a-1],o.push(i[t>>2]+i[t<<4&63]+"==")):2===n&&(t=(e[a-2]<<8)+e[a-1],o.push(i[t>>10]+i[t>>4&63]+i[t<<2&63]+"="));return o.join("")};for(var i=[],n=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l=0,s=r.length;l<s;++l)i[l]=r[l],n[r.charCodeAt(l)]=l;function c(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var a=e.indexOf("=");return-1===a&&(a=t),[a,a===t?0:4-a%4]}function h(e,t,a){for(var n,o,r=[],l=t;l<a;l+=3)n=(e[l]<<16&16711680)+(e[l+1]<<8&65280)+(255&e[l+2]),r.push(i[(o=n)>>18&63]+i[o>>12&63]+i[o>>6&63]+i[63&o]);return r.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},1170:function(e,t){t.read=function(e,t,a,i,n){var o,r,l=8*n-i-1,s=(1<<l)-1,c=s>>1,h=-7,u=a?n-1:0,d=a?-1:1,g=e[t+u];for(u+=d,o=g&(1<<-h)-1,g>>=-h,h+=l;h>0;o=256*o+e[t+u],u+=d,h-=8);for(r=o&(1<<-h)-1,o>>=-h,h+=i;h>0;r=256*r+e[t+u],u+=d,h-=8);if(0===o)o=1-c;else{if(o===s)return r?NaN:(g?-1:1)*Infinity;r+=Math.pow(2,i),o-=c}return(g?-1:1)*r*Math.pow(2,o-i)},t.write=function(e,t,a,i,n,o){var r,l,s,c=8*o-n-1,h=(1<<c)-1,u=h>>1,d=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,g=i?0:o-1,p=i?1:-1,f=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===Infinity?(l=isNaN(t)?1:0,r=h):(r=Math.floor(Math.log(t)/Math.LN2),t*(s=Math.pow(2,-r))<1&&(r--,s*=2),(t+=r+u>=1?d/s:d*Math.pow(2,1-u))*s>=2&&(r++,s/=2),r+u>=h?(l=0,r=h):r+u>=1?(l=(t*s-1)*Math.pow(2,n),r+=u):(l=t*Math.pow(2,u-1)*Math.pow(2,n),r=0));n>=8;e[a+g]=255&l,g+=p,l/=256,n-=8);for(r=r<<n|l,c+=n;c>0;e[a+g]=255&r,g+=p,r/=256,c-=8);e[a+g-p]|=128*f}},1171:function(e,t){var a={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==a.call(e)}},404:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(405)),r=i(a(480)),l=function(e){function t(){var t;return(t=e.call(this)||this).registerFactory("dataset",r["default"],["vCanvas"]),t}(0,n["default"])(t,e),t.getName=function(){return"SSCartesian"};var a=t.prototype;return a.getName=function(){return"SSCartesian"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;t.hasLegend=!1,t.linethickness=4},a._checkInvalidSpecificData=function(){var e=this.getFromEnv("dataSource").data;if(!e||!e.length)return!0},a._setCategories=function(){var e=this.getFromEnv("dataSource"),t=this.getChildren("xAxis"),a=e.dataset,i=e.data||a&&a[0].data;t[0].setTickValues(i)},t}(o["default"]);t["default"]=l},405:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(406)),r=a(184),l=i(a(421)),s=i(a(472)),c=i(a(475)),h=i(a(477)),u=i(a(479)),d=Math.max,g=Math.min,p=function(e,t){return e<t&&t>0?t-e:0},f=function(e){function t(){var t;return(t=e.call(this)||this).registerFactory("axis",l["default"],["canvas"]),t.registerFactory("canvas",s["default"]),t.registerFactory("vCanvas",c["default"],["axis"]),t.registerFactory("mouseTracker",h["default"],["canvas"]),t}(0,n["default"])(t,e),t.getName=function(){return"Cartesian"};var a=t.prototype;return a.getName=function(){return"Cartesian"},a.getType=function(){return"chartAPI"},a._allocateXAxisLabelSpace=function(e){var t,a=this.config,i=e.getAxisEndLabelDisplaySpace(),n=i.left,o=i.right,r=i.top,l=i.bottom,s=a.availableWidth,c=a.availableHeight,h=a.canvasLeft,u=a.canvasRight,d=a.canvasTop,g=a.canvasBottom,f=a.width,m=a.height;r+l>c&&(r=c*r/(t=r+l),l=c*l/t),n+o>s&&(n=s*n/(t=n+o),o=s*o/t),n=p(h,n),o=p(f-u,o),r=p(d,r),l=p(m-g,l),this._allocateSpace({left:n,right:o,top:r,bottom:l})},a._setCategories=function(){var e=this.getFromEnv("dataSource"),t=this.getChildren("xAxis"),a=e.categories&&e.categories.length&&e.categories[0].category;t&&t[0].setTickValues(a)},a._feedAxesRawData=function(){var e,t,a=this.config,i=this.getFromEnv("dataSource");return e=this.getSpecificxAxisConf(),t=this.getSpecificyAxisConf(),e.vtrendlines=(0,r.extend2)([],i.vtrendlines),t.trendlines=(0,r.extend2)([],i.trendlines),a.isstacked&&(t.isPercent=(0,r.pluckNumber)(a.stack100percent,0)),{yAxisConf:[t],xAxisConf:[e]}},a.getSpecificxAxisConf=function(){var e=this.getFromEnv("chart-attrib"),t=this.config,a=this.config.is3D,i=this.getBasexAxisConf();return i.isReverse=t.reverseXAxis,i.axisLineColor=(0,r.pluck)(e.xaxislinecolor,e.axislinecolor,"#000000"),i.showAlternateGridColor=(0,r.pluckNumber)(e.showalternatevgridcolor,0),i.numDivLines=(0,r.pluckNumber)(e.numvdivlines,t.numVDivLines),i.axisName=e.xaxisname,i.setAdaptiveMin=(0,r.pluckNumber)(e.setadaptivexmin,t.setadaptivexmin,t.setadaptivexmin),i.showLimits=(0,r.pluckNumber)(e.showvlimits,t.showvlimits),i.showDivLineValues=(0,r.pluckNumber)(e.showvdivlinevalues,e.showvdivlinevalues,t.showvdivlinevalues),i.zeroPlaneThickness=(0,r.pluckNumber)(e.vzeroplanethickness,e.vdivlinethickness,t.zeroplanethickness,2),i.zeroPlaneAlpha=(0,r.pluckNumber)(e.vzeroplanealpha,e.vdivlinealpha,t.zeroplanealpha),i.showZeroPlaneValue=(0,r.pluckNumber)(e.showvzeroplanevalue,t.showzeroplanevalue),i.showAxisLine=a?0:(0,r.pluckNumber)(e.showxaxisline,e.showaxislines,e.drawAxisLines,t.showxaxisline,0),i.maxLabelHeight=e.maxlabelheight,i.showZeroPlane=(0,r.pluckNumber)(e.showvzeroplane,t.showzeroplane),i},a.getSpecificyAxisConf=function(){var e=this.getFromEnv("chart-attrib"),t=this.config,a=this.config.is3D,i=a?r.chartPaletteStr.chart3D:r.chartPaletteStr.chart2D,n=t.isInverse,o=this.getFromEnv("color-manager"),l=(0,r.pluckNumber)(e.showzeroplane,t.showzeroplane,1),s=(0,r.pluckNumber)(e.showzeroplanevalue,t.showzeroplanevalue);return l||void 0!==s||(s=0),{isVertical:!0,isReverse:!n,isOpposit:(0,u["default"])(e.yaxisposition,"right"),outCanfontFamily:(0,r.pluck)(e.outcnvbasefont,e.basefont,"Verdana,sans"),outCanfontSize:(0,r.pluckFontSize)(e.outcnvbasefontsize,e.basefontsize,10),outCancolor:(0,r.pluck)(e.outcnvbasefontcolor,e.basefontcolor,o.getColor(i.baseFontColor)).replace(/^#? ([a-f0-9]+)/gi,"#$1"),axisBreaks:e.yaxisbreaks,axisNamePadding:e.yaxisnamepadding,axisValuePadding:e.yaxisvaluespadding,axisNameFont:e.yaxisnamefont,axisNameFontSize:e.yaxisnamefontsize,axisNameFontColor:e.yaxisnamefontcolor,axisNameFontBold:e.yaxisnamefontbold,axisNameFontItalic:e.yaxisnamefontitalic,axisNameBgColor:e.yaxisnamebgcolor,axisNameBorderColor:e.yaxisnamebordercolor,axisNameAlpha:e.yaxisnamealpha,axisNameFontAlpha:e.yaxisnamefontalpha,axisNameBgAlpha:e.yaxisnamebgalpha,axisNameBorderAlpha:e.yaxisnameborderalpha,axisNameBorderPadding:e.yaxisnameborderpadding,axisNameBorderRadius:e.yaxisnameborderradius,axisNameBorderThickness:e.yaxisnameborderthickness,axisNameBorderDashed:e.yaxisnameborderdashed,axisNameBorderDashLen:e.yaxisnameborderdashlen,axisNameBorderDashGap:e.yaxisnameborderdashgap,axisNameWidth:e.yaxisnamewidth,useEllipsesWhenOverflow:e.useellipseswhenoverflow,rotateAxisName:(0,r.pluckNumber)(e.rotateyaxisname,1),axisName:e.yaxisname,divLineColor:(0,r.pluck)(e.divlinecolor,o.getColor(i.divLineColor)),divLineAlpha:(0,r.pluck)(e.divlinealpha,a?o.getColor("divLineAlpha3D"):o.getColor("divLineAlpha")),divLineThickness:(0,r.pluckNumber)(e.divlinethickness,1),divLineIsDashed:Boolean((0,r.pluckNumber)(e.divlinedashed,e.divlineisdashed,0)),divLineDashLen:(0,r.pluckNumber)(e.divlinedashlen,4),divLineDashGap:(0,r.pluckNumber)(e.divlinedashgap,2),showAlternateGridColor:(0,r.pluckNumber)(e.showalternatehgridcolor,1),alternateGridColor:(0,r.pluck)(e.alternatehgridcolor,o.getColor("altHGridColor")),alternateGridAlpha:(0,r.pluck)(e.alternatehgridalpha,o.getColor("altHGridAlpha")),numDivLines:(0,r.pluckNumber)(e.numdivlines,t.numDivLines),axisMinValue:t.yRangeMin||e.yaxisminvalue,axisMaxValue:t.yRangeMax||e.yaxismaxvalue,setAdaptiveMin:(0,r.pluckNumber)(e.setadaptivesymin,e.setadaptiveymin,t.setAdaptiveMin),adjustDiv:e.adjustdiv,labelStep:e.yaxisvaluesstep,showAxisValues:(0,r.pluckNumber)(e.showyaxisvalues,e.showyaxisvalue,t.showyaxisvalues),showLimits:(0,r.pluckNumber)(e.showyaxislimits,e.showlimits,this.showLimits),showDivLineValues:(0,r.pluckNumber)(e.showdivlinevalues,e.showdivlinevalue,t.showdivlinevalues),showZeroPlane:l,zeroPlaneColor:e.zeroplanecolor,zeroPlaneThickness:(0,r.pluckNumber)(e.zeroplanethickness,e.divlinethickness,t.zeroplanethickness,2),zeroPlaneAlpha:(0,r.pluckNumber)(e.zeroplanealpha,e.divlinealpha,t.zeroplanealpha),showZeroPlaneValue:s,showZeroPlaneOnTop:t.showzeroplaneontop,trendlineColor:e.trendlinecolor,trendlineToolText:e.trendlinetooltext,trendlineThickness:e.trendlinethickness,trendlineAlpha:e.trendlinealpha,showTrendlinesOnTop:e.showtrendlinesontop,showAxisLine:a?0:(0,r.pluckNumber)(e.showyaxisline,e.showaxislines,e.drawAxisLines,t.showyaxisline,0),axisLineThickness:(0,r.pluckNumber)(e.yaxislinethickness,e.axislinethickness,1),axisLineAlpha:(0,r.pluckNumber)(e.yaxislinealpha,e.axislinealpha,100),axisLineColor:(0,r.pluck)(e.yaxislinecolor,e.axislinecolor,"#000000"),forceTrendBelow:!!t.is3D,labelFont:e.yaxisvaluefont,labelFontSize:e.yaxisvaluefontsize,labelFontColor:e.yaxisvaluefontcolor,labelAlpha:e.yaxisvaluealpha,labelFontBold:e.yaxisvaluefontbold,labelFontItalic:e.yaxisvaluefontitalic,labelBdrColor:e.yaxisvaluebordercolor,labelBdrAlpha:e.yaxisvalueborderalpha,labelBgAlpha:e.yaxisvaluebgalpha,labelLink:e.yaxisvaluelink,labelBgColor:e.yaxisvaluebgcolor,labelBdrThickness:e.yaxisvalueborderthickness,labelBdrPadding:e.yaxisvalueborderpadding,labelBdrRadius:e.yaxisvalueborderradius,labelBdrDashed:e.yaxisvalueborderdashed,labelBdrDashLen:e.yaxisvalueborderdashlen,labelBdrDashGap:e.yaxisvalueborderdashgap}},a.getBasexAxisConf=function(){var e=this.getFromEnv("chart-attrib"),t=this.config.is3D,a=t?r.chartPaletteStr.chart3D:r.chartPaletteStr.chart2D,i=this.getFromEnv("color-manager");return{isVertical:!1,isOpposit:(0,u["default"])(e.xaxisposition,"top"),outCanfontFamily:(0,r.pluck)(e.outcnvbasefont,e.basefont,"Verdana,sans"),outCanfontSize:(0,r.pluckFontSize)(e.outcnvbasefontsize,e.basefontsize,10),outCancolor:(0,r.pluck)(e.outcnvbasefontcolor,e.basefontcolor,i.getColor(a.baseFontColor)).replace(/^#? ([a-f0-9]+)/gi,"#$1"),axisNamePadding:e.xaxisnamepadding,axisValuePadding:e.labelpadding,axisNameFont:e.xaxisnamefont,axisNameFontSize:e.xaxisnamefontsize,axisNameFontColor:e.xaxisnamefontcolor,axisNameFontBold:e.xaxisnamefontbold,axisNameFontItalic:e.xaxisnamefontitalic,axisNameBgColor:e.xaxisnamebgcolor,axisNameBorderColor:e.xaxisnamebordercolor,axisNameAlpha:e.xaxisnamealpha,axisNameFontAlpha:e.xaxisnamefontalpha,axisNameBgAlpha:e.xaxisnamebgalpha,axisNameBorderAlpha:e.xaxisnameborderalpha,axisNameBorderPadding:e.xaxisnameborderpadding,axisNameBorderRadius:e.xaxisnameborderradius,axisNameBorderThickness:e.xaxisnameborderthickness,axisNameBorderDashed:e.xaxisnameborderdashed,axisNameBorderDashLen:e.xaxisnameborderdashlen,axisNameBorderDashGap:e.xaxisnameborderdashgap,useEllipsesWhenOverflow:e.useellipseswhenoverflow,divLineColor:(0,r.pluck)(e.vdivlinecolor,e.divlinecolor,i.getColor(a.divLineColor)),divLineAlpha:(0,r.pluck)(e.vdivlinealpha,e.divlinealpha,t?i.getColor("divLineAlpha3D"):i.getColor("divLineAlpha")),divLineThickness:(0,r.pluckNumber)(e.vdivlinethickness,e.divlinethickness,1),divLineIsDashed:Boolean((0,r.pluckNumber)(e.vdivlinedashed,e.vdivlineisdashed,e.divlinedashed,e.divlineisdashed,0)),divLineDashLen:(0,r.pluckNumber)(e.vdivlinedashlen,e.divlinedashlen,4),divLineDashGap:(0,r.pluckNumber)(e.vdivlinedashgap,e.divlinedashgap,2),alternateGridColor:(0,r.pluck)(e.alternatevgridcolor,i.getColor("altVGridColor")),alternateGridAlpha:(0,r.pluck)(e.alternatevgridalpha,i.getColor("altVGridAlpha")),labelFont:e.labelfont,labelFontSize:e.labelfontsize,labelFontColor:e.labelfontcolor,labelAlpha:e.labelalpha,labelFontBold:e.labelfontbold,labelFontItalic:e.labelfontitalic,labelBdrColor:e.labelbordercolor,labelBdrAlpha:e.labelborderalpha,labelLink:e.labellink,labelBgColor:e.labelbgcolor,labelBdrThickness:e.labelborderthickness,labelBdrPadding:e.labelborderpadding,labelBdrRadius:e.labelborderradius,labelBdrDashed:e.labelborderdashed,labelBgAlpha:e.labelbgalpha,labelBdrDashLen:e.labelborderdashlen,labelBdrDashGap:e.labelborderdashgap,axisMinValue:e.xaxisminvalue,axisMaxValue:e.xaxismaxvalue,adjustDiv:e.adjustvdiv,labelDisplay:e.labeldisplay,showLabels:e.showlabels,rotateLabels:e.rotatelabels,slantLabel:(0,r.pluckNumber)(e.slantlabels,e.slantlabel),labelStep:(0,r.pluckNumber)(e.labelstep,e.xaxisvaluesstep),showAxisValues:(0,r.pluckNumber)(e.showxaxisvalues,e.showxaxisvalue),zeroPlaneColor:e.vzeroplanecolor,trendlineColor:e.trendlinecolor,trendlineToolText:e.trendlinetooltext,trendlineThickness:e.trendlinethickness,trendlineAlpha:e.trendlinealpha,showTrendlinesOnTop:e.showtrendlinesontop,axisLineThickness:(0,r.pluckNumber)(e.xaxislinethickness,e.axislinethickness,1),axisLineAlpha:(0,r.pluckNumber)(e.xaxislinealpha,e.axislinealpha,100)}},a.getConfig=function(e){return e?this.config[e]:this.config},a._getSumValueSpace=function(e){var t,a={},i=this.config,n=this.isBar,o=this.getFromEnv("dataSource").chart,l=i.showSum=(0,r.pluckNumber)(o.showsum,i.showSum,0),s=(0,r.pluckNumber)(i.stack100percent),c=i.isstacked,h=0,u=[],d=0;if(this.iterateComponents((function(e){"cartesianStackGroup"!==e.getName()&&"marimekkoStackgroup"!==e.getName()||u.push(e)})),l&&s&&c&&u.length){for(t=u.length-1;t>=0;t--)a=u[t].getMaxSumValueSpace(),n?h=Math.max(h,a.maxWidth):d=Math.max(d,a.maxHeight);d>e&&(d=e),h>e&&(h=e)}return{top:d,right:h}},a.setAxisDimention=function(){var e,t,a=this.getChildren("xAxis")&&this.getChildren("xAxis")[0],i=this.getChildren("yAxis")&&this.getChildren("yAxis")[0],n=this.config,o=n.xDepth||0,l=this.getFromEnv("chart-attrib"),s=(0,r.pluckNumber)(l.canvasleftpadding),c=(0,r.pluckNumber)(l.canvasrightpadding),h=this.getChildren("canvas")&&this.getChildren("canvas")[0].config,u=h&&h.canvasBorderWidth,d=a&&a.isScrollEnabled(),g=(d||n.is3D)&&n.shift||0,p=h.canvasPadding,f=h.canvasLeft,m=f+h.canvasWidth,v=h.canvasPaddingLeft,b=h.canvasPaddingRight,x=h.canvasTop,y=n.sumValueSpace&&n.sumValueSpace.top||0,C=h.canvasPaddingTop;e=null==s?Math.max(v,p):s,t=null==c?Math.max(b,p):c,a&&a.setAxisConfig({canvasPaddingLeft:e,canvasPaddingRight:t}),a&&a.setAxisDimention({x:f+o+e,y:a.config.isOpposit?x-u-(d?g:0)-y:n.canvasBottom+g+u,opposite:a.config.isOpposit?n.canvasBottom+g+u:x-u-g,axisLength:h.canvasWidth-o-e-t}),i&&i.setAxisDimention({x:i.config.isOpposit?m+u:f-u,y:x+C,opposite:i.config.isOpposit?f-u:m+u,axisLength:h.canvasHeight-C-h.canvasPaddingBottom})},a._getTrendLineMinMax=function(e,t){var a,i,n,o,r,l=t,s="v"===e?this.getFromEnv("dataSource").vtrendlines:this.getFromEnv("dataSource").trendlines,c={max:-Infinity,min:Infinity};if(l=l||"p",s)for(i=0,o=s.length;i<o;i+=1)for(n=0,r=s[i].line?s[i].line.length:0;n<r;n+=1)a=s[i].line[n],"s"===l&&"s"!==a.parentyaxis||"s"!==l&&"s"===a.parentyaxis||(c.max=d(a.startvalue||-Infinity,a.endvalue||-Infinity,c.max),c.min=g(a.startvalue||Infinity,a.endvalue||Infinity,c.min));return c},t}(o["default"]);t["default"]=f},406:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(407)),r=a(184),l=function(e){function t(){return e.apply(this,arguments)||this}(0,n["default"])(t,e);var a=t.prototype;return a._spaceManager=function(){var e,t,a,i,n,o,l,s,c,h,u,d,g,p,f=this.config,m=this.getChildren("xAxis")&&this.getChildren("xAxis")[0],v=f.legendposition,b=f.xDepth,x=f.yDepth,y=f.canvasBgDepth,C=f.canvasBaseDepth,k=f.canvasBasePadding,S=this.getChildren("canvas")[0],w=S.config.canvasBorderWidth,L=f.realTimeConfig&&f.realTimeConfig.showRTValue,A=f.borderWidth,N=f.canvasMarginTop,F=f.canvasMarginBottom,E=f.canvasMarginLeft,_=f.canvasMarginRight,T=f.minCanvasHeight,P=f.minCanvasWidth,D=f.minChartWidth,I=f.minChartHeight,M=f.height,O=f.width,R=!1,V=!1,B=f.origCanvasTopMargin,G=f.origCanvasBottomMargin,H=f.origCanvasLeftMargin,z=f.origCanvasRightMargin;f.canvasWidth-2*A<D&&(h=(f.canvasWidth-D)/2),f.canvasHeight-2*A<I&&(c=(f.canvasHeight-I)/2),this._allocateSpace({top:c||A,bottom:c||A,left:h||A,right:h||A}),this._manageYAxisSpace(),this._allocateSpace(this._manageActionBarSpace&&this._manageActionBarSpace(.225*f.availableHeight)||{}),this._manageLegendSpace&&f.showLegend&&this._manageLegendSpace(void 0),e=v===r.POSITION_BOTTOM?.6*f.availableHeight:.6*f.availableWidth,x&&(this._allocateSpace({bottom:x}),f.shift=b+k+C),y&&this._allocateSpace({right:y}),f.canvasWidth-2*w<P&&(d=(f.canvasWidth-P)/2),this._allocateSpace({left:d||w,right:d||w}),P>O-E-_&&(V=!0,t=f.canvasWidth-P,p=E+_,E=f.canvasMarginLeft=t*E/p,_=f.canvasMarginRight=t*_/p),n=E>f.canvasLeft?E-f.canvasLeft:0,o=_>O-f.canvasRight?_+f.canvasRight-O:0,this._allocateSpace({left:n,right:o}),V&&(p=H+z,(s=f.canvasWidth)>P&&(n=(t=s-P)*H/p,o=t*z/p),this._allocateSpace({left:n,right:o})),f.actualCanvasMarginRight=o,f.actualCanvasMarginBottom=i,this._manageChartMenuBar(e),e=.2*f.availableHeight,this._getSumValueSpace?(f.sumValueSpace=this._getSumValueSpace(e),this._allocateSpace(f.sumValueSpace)):f.sumValueSpace={top:0,right:0},e=.3*f.availableHeight,f.realtimeEnabled&&(L?this._allocateSpace(this._realTimeValuePositioning(e)):this._hideRealTimeValue()),this._resetViewPortConfig&&this._resetViewPortConfig(),this._setAxisScale&&this._setAxisScale(),e=.6*f.availableHeight,f.xAxisSpaceAllocation=g=m&&m.placeAxis(e),m&&this._allocateSpace(g),f.canvasHeight-2*w<T&&(u=(f.canvasHeight-T)/2),this._allocateSpace({top:u||w,bottom:u||w}),this._allocateSpace({bottom:C}),T>M-N-F&&(R=!0,t=f.canvasHeight-T,p=N+F,N=f.canvasMarginTop=t*N/p,F=f.canvasMarginBottom=t*F/p),a=N>f.canvasTop?N-f.canvasTop:0,i=F>M-f.canvasBottom?F+f.canvasBottom-M:0,this._allocateSpace({top:a,bottom:i}),R&&(p=B+G,(l=f.canvasHeight)>T&&(a=(t=l-T)*B/p,i=t*G/p),this._allocateSpace({top:a,bottom:i})),f.actualCanvasMarginTop=a,f.actualCanvasMarginLeft=n,S.setDimension({top:f.canvasTop,left:f.canvasLeft,width:f.canvasWidth,height:f.canvasHeight})},a._manageYAxisSpace=function(){var e,t,a,i=this.config,n=this.getChildren("yAxis"),o=[];for(t=0;t<(n&&n.length);t++)a=(e=n[t])&&e.placeAxis(.7*i.availableWidth)||{},o.push({axisIndex:t,spaceTaken:a}),e&&this._allocateSpace(a);i.yAxisSpaceAllocation=o},a._postSpaceManagement=function(){var e,t=this.config,a=this.getChildren(),i=a.xAxis&&a.xAxis[0],n=a.legend&&a.legend[0],o=t.xDepth,r=this.getChildren("canvas");for(this.setAxisDimention&&this.setAxisDimention(),i&&this._allocateXAxisLabelSpace(i),i&&i.shiftLabels(-o,0),n&&n.postSpaceManager(),e=0;e<(r&&r.length);e++)r[e].setCanvasPadding();this.setAxisDimention&&this.setAxisDimention(),this.allocateDimensionOfChartMenuBar()},t}(o["default"]);t["default"]=l},407:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t._drawDataset=M,t.configurer=O,t["default"]=void 0;var n=i(a(198)),o=i(a(227)),r=i(a(408)),l=i(a(411)),s=a(192),c=i(a(412)),h=a(293),u=i(a(414)),d=i(a(416)),g=i(a(418)),p=i(a(209)),f=a(191),m=i(a(420)),v=a(184),b=i(a(186)),x=(0,s.getDep)("redraphael","plugin"),y="VML"===x.type,C=Math.max,k=Math.min,S=Math.round,w={datalabelclick:!0,connectorclick:!0,categoryclick:!0,processclick:!0,milestoneclick:!0,labelclick:!0,dataplotclick:!0},L=v.preDefStr.SEVENTYSTRING,A=v.preDefStr.AUTOSTRING,N="onpointerover"in window.document,F=function(e,t,a){return a.getFromEnv("animationManager").setAnimation({el:"group",attr:e,container:t,state:"appearing",component:a,label:"group"})},E=function(e){var t=e.data.config;t._containerMouseState="mousedown",t._mdx1=e.clientX!==v.UNDEF?e.clientX:e.changedTouches&&e.changedTouches[0].clientX,t.mdy1=e.clientY!==v.UNDEF?e.clientY:e.changedTouches&&e.changedTouches[0].clientY,"touchstart"===e.type&&(t._touchStartedAt=(new Date).getTime())},_=function(e){var t=e.data.config,a=e.clientX!==v.UNDEF?e.clientX:e.changedTouches&&e.changedTouches[0].clientX,i=e.clientY!==v.UNDEF?e.clientY:e.changedTouches&&e.changedTouches[0].clientY;(Math.abs(t._mdx1-a)>=2.5||Math.abs(t.mdy1-i)>=2.5)&&(e.data.config._containerMouseState=v.UNDEF)},T=function(e){(new Date).getTime()-e.data.config._touchStartedAt<500&&setTimeout((function(){P(e)}))},P=function(e){var t,a=e.data,i=a.getFromEnv("chartInstance"),n=e.originalEvent,o=a.config,r=(0,v.getMouseCoordinate)(a.getFromEnv("chart-container"),n,a);i.ref&&"mousemove"!==o._containerMouseState&&(t=(0,v.extend2)({height:i.args.height,width:i.args.width,pixelHeight:a.getFromEnv("chartWidth"),pixelWidth:a.getFromEnv("chartHeight"),id:i.args.id,renderer:i.args.renderer,container:i.options.containerElement},r),a.fireChartInstanceEvent("chartclick",t),o.link&&(!o.hotElemClicked||o.clickURLOverridesPlotLinks)&&a.getFromEnv("linkClickFN").call({link:o.link}),o.hotElemClicked=!1)},D=function(e){var t=e.type,a=e.data,i=a.getFromEnv("eventListeners");"mouseover"!==t&&"touchstart"!==t||!1!==a.config.mouseStateIn?"mouseout"!==t&&"touchend"!==t||(a.config.posOb=!1):(a.config.mouseStateIn=!0,R.onContainerRollOver(e),i.push(b["default"].listen(y?document:window,"mouseover",R.winMouseHover,a)))};function I(){var e,t,a,i,n=this,o=n,r=n.config,l="t"===r.toolbarVAlign?"chartMenuBar":"actionBar",s=n.getFromEnv("tool-config");e=n.getChildren(l)[0],t=r.printOption.enabled,a=o.config.realTimeConfig||{},i=e.attachChild(h.Hamburger,"tool","hamburgerMenu-"+e.getId()+"-"+n.getId()+"-0"),n.addToEnv("hamburger",i),i.configure(Object.assign({},s,{name:"ContextIcon"})),i._mouseOutEvent||(i._mouseOutEvent=function(){this.getChild("listContainer").hide()}),i._mouseOverEvent||(i._mouseOverEvent=function(){this.getChild("listContainer").show()}),i.addEventListener("fc-mouseover",i._mouseOverEvent),i.addEventListener("fc-mouseout",i._mouseOutEvent),t&&i.appendInMenu([{name:"Print",action:"click",handler:function(){n.getFromEnv("chartInstance").print()}}]),o._setRTmenu&&o._setRTmenu(a.showRTmenuItem,a.useMessageLog)}function M(){this.getChildren("canvas")[0]._mapChildren((function(e){e.syncDraw()}))}function O(e){this.config.skipConfigureIteration={},this.parseChartAttr(e),this.createComponent(e),this.setTooltipStyle(),this.configureChildren()}(0,s.addDep)({name:"commonAnimation",type:"animationRule",extension:m["default"]});var R=function(e){(0,n["default"])(a,e),a.getName=function(){return"CommonAPI"};var t=a.prototype;function a(){var t;return(t=e.call(this)||this).addToEnv("stringConstants",{COMPONENT:"component",CANVAS:"canvas",CAPTION:"caption"}),t.addToEnv("getMouseCoordinate",v.getMouseCoordinate),t._drawDataset=M,t.config.mouseStateIn=!1,t.registerFactory("toolbox",l["default"]),t.registerFactory("canvas",r["default"]),t._firstConfigure=!0,t}return t.plotEventHandler=function(e,t,a,i){void 0===t&&(t={});var n,o,r=t.type,l=a,s=(0,v.getMouseCoordinate)(this.getFromEnv("chart-container"),t,this),c=e&&e.data("eventArgs")||i,h=(0,v.extend2)(s,c),u=this.fireGroupEvent,d=e&&e.data("groupId"),g=function(e,a){t.FusionChartsPreventEvent=!0};"index"in h&&!("dataIndex"in h)&&(h.dataIndex=h.index),"value"in h&&!("dataValue"in h)&&(h.dataValue=h.value),"dataplotrollover"===(l=(0,v.pluck)(l,"dataplotclick").toLowerCase())?(t.FusionChartsPreventEvent=!1,u?(0,f.raiseEventGroup)(d,l,h,this.getFromEnv("chartInstance"),v.UNDEF,v.UNDEF,g):this.fireChartInstanceEvent(l,h,v.UNDEF,v.UNDEF,g)):u&&!w[l]?(0,f.raiseEventGroup)(d,l,h,this.getFromEnv("chartInstance")):this.fireChartInstanceEvent(l,h),"fc-click"!==r&&"click"!==r&&"mouseup"!==r&&"touchend"!==r||!/click/i.test(l)||(o=(n=this.getFromEnv())&&n.linkClickFN,h.link&&o&&o.call({link:h.link},!0))},t.getName=function(){return"Cartesian"},t.preConfigure=function(t){var a=this.getFromEnv("number-formatter");this.addToEnv("chart-attrib",t.chart),a?a.configure():this.addToEnv("number-formatter",new p["default"](this)),e.prototype.preConfigure.call(this,t)},t.postConfigure=function(t){e.prototype.postConfigure.call(this,t),this._firstConfigure=!1},t.setDefaults=function(){e.prototype.setDefaults.call(this);var t=this.getFromEnv("number-formatter");t&&t.setDefaults&&t.setDefaults()},t.getType=function(){return"chartAPI"},t.parseChartAttr=function(e){var t,a,i,n,o,r,l,s,c,h,u,d,p,f,m=e||this.getFromEnv("dataSource"),b=this.config.is3D,x=b?v.chartPaletteStr.chart3D:v.chartPaletteStr.chart2D,y=this.isBar,S=this.getFromEnv("color-manager");S||(S=new g["default"](this),this.addToEnv("color-manager",S)),m.chart=m.chart||m.graph||m.map||{},delete m.map,delete m.graph,!(t=m.chart)&&(t=m.chart={}),a=this.config||(this.config={}),(0,v.parseConfiguration)(t,a,{},{showvalues:!0,crosslinecolor:!0,drawcrosslineontop:!0,crosslinealpha:!0,drawcrossline:!0}),a.showValues=(0,v.pluckNumber)(t.showvalues,a.showvalues),a.viewPortConfig={scaleY:1,scaleX:1,x:0,y:0},this.addToEnv("tool-config",function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];var i=t[0],n=t.slice(1);return n.forEach((function(e){for(var t in e)e.hasOwnProperty(t)&&e[t]!==v.UNDEF&&(i[t]=e[t])})),i}({},{scale:t.toolbarbuttonscale,width:t.toolbarbuttonwidth,height:t.toolbarbuttonheight,radius:t.toolbarbuttonradius,spacing:t.toolbarbuttonspacing,marginTop:t.toolbarbuttonmargintop,marginLeft:t.toolbarbuttonmarginleft,marginRight:t.toolbarbuttonmarginright,marginBottom:t.toolbarbuttonmarginbottom,fill:t.toolbarbuttoncolor,labelFill:t.toolbarlabelcolor,symbolFill:t.toolbarsymbolcolor,hoverFill:t.toolbarbuttonhovercolor,stroke:t.toolbarbuttonbordercolor,symbolStroke:t.toolbarsymbolbordercolor,strokeWidth:t.toolbarbuttonborderthickness,symbolStrokeWidth:t.toolbarsymbolborderthickness,bSymbolPadding:t.toolbarsymbolpadding,symbolHPadding:t.toolbarsymbolhpadding,symbolVPadding:t.toolbarsymbolvpadding,hAlign:t.toolbarhalign,vAlign:t.toolbarvalign})),b&&(y?(a.xDepth=5,a.yDepth=5):(a.xDepth=10,a.yDepth=10),a.showCanvasBase=f=Boolean((0,v.pluckNumber)(t.showcanvasbase,1)),a.canvasBasePadding=(0,v.pluckNumber)(t.canvasbasepadding,2),a.canvasBaseDepth=f?(0,v.pluckNumber)(t.canvasbasedepth,10):0,a.canvasBgDepth=(0,v.pluckNumber)(t.canvasbgdepth,3)),S&&S.configure(),a.placeAxisLabelsOnTop=(0,v.pluckNumber)(t.placexaxislabelsontop,0),a.enableAnimation=(0,v.pluckNumber)(t.animation,t.defaultanimation,1),a.showToolTip=(0,v.pluckNumber)(t.showtooltip,1),a.printOption={enabled:(0,v.pluckNumber)(t.printshowbutton,t.showprintmenuitem,0)},a.drawCrossLineOnTop=(0,v.pluckNumber)(t.drawcrosslineontop,1),l=a.style={},this.addToEnv("style",l),a.textDirection="1"===t.hasrtltext?"rtl":v.BLANKSTRING,l.inCanfontFamily=i=(0,v.pluck)(t.basefont,"Verdana,sans"),l.inCanfontSize=n=(0,v.pluckFontSize)(t.basefontsize,10),l.inCancolor=o=(0,v.pluck)(t.basefontcolor,S.getColor(x.baseFontColor)),l.outCanfontFamily=(0,v.pluck)(t.outcnvbasefont,i),l.fontSize=r=(0,v.pluckFontSize)(t.outcnvbasefontsize,n),l.outCanfontSize=r+v.PXSTRING,l.outCancolor=(0,v.pluck)(t.outcnvbasefontcolor,o).replace(/^#? ([a-f0-9]+)/gi,"#$1"),l.baseFontSize=n,l.inCanfontSize=n+v.PXSTRING,l.inCancolor=o.replace(/^#? ([a-f0-9]+)/gi,"#$1"),l.inCanvasStyle=h={fontFamily:i,fontSize:n,color:o},a.valueFontAlpha=(0,v.pluckNumber)(t.valuefontalpha,t.valuealpha,100),a.valueBgAlpha=(0,v.pluckNumber)(t.valuebgalpha,t.valuealpha,100),a.valueBorderAlpha=(0,v.pluckNumber)(t.valueborderalpha,t.valuealpha,100),a.valueFontColor=(0,v.pluck)(t.valuefontcolor,o),a.valueBgColor=(0,v.pluck)(t.valuebgcolor)||v.BLANKSTRING,l.inCanLineHeight=u=(0,v.setLineHeight)(h),p=(0,v.getFirstValue)(t.valuebordercolor,v.BLANKSTRING),p=a.valueBorderColor=p?(0,v.convertColor)(p,a.valueBorderAlpha):v.BLANKSTRING,a.reverseXAxis=this.config.allowreversexaxis&&(0,v.pluckNumber)(t.reversexaxis,0),a.showBorder=(0,v.pluckNumber)(t.showborder,a.showBorder,b?0:1),a.borderWidth=C(a.showBorder?(0,v.pluckNumber)(t.borderthickness,1):0,0),a.useplotgradientcolor=(0,v.pluckNumber)(t.plotgradientcolor,a.useplotgradientcolor,0),a.valuefontbold=(0,v.pluckNumber)(t.valuefontbold,a.valuefontbold),a.dataLabelStyle=d={fontFamily:(0,v.pluck)(t.valuefont,i),fontSize:(0,v.pluck)(t.valuefontsize,(0,v.pInt)(n,10))+v.PXSTRING,lineHeight:u,color:(0,v.convertColor)((0,v.pluck)(t.valuefontcolor,o),a.valueFontAlpha),fontWeight:a.valuefontbold?"bold":"normal",fontStyle:(0,v.pluckNumber)(t.valuefontitalic)?"italic":"normal",border:p||t.valuebgcolor?(0,v.pluckNumber)(t.valueborderthickness,1)+"px solid":v.BLANKSTRING,borderColor:p,borderThickness:(0,v.pluckNumber)(t.valueborderthickness,1),borderPadding:(0,v.pluckNumber)(t.valueborderpadding,2),borderRadius:(0,v.pluckNumber)(t.valueborderradius,0),backgroundColor:t.valuebgcolor?(0,v.convertColor)(t.valuebgcolor,a.valueBgAlpha):v.BLANKSTRING,borderDash:(0,v.pluckNumber)(t.valueborderdashed,0)?(0,v.getDashStyle)((0,v.pluckNumber)(t.valueborderdashlen,4),(0,v.pluckNumber)(t.valueborderdashgap,2)):v.DASH_DEF},(0,v.setLineHeight)(d),a.legendposition=(0,v.pluck)(t.legendposition,v.POSITION_BOTTOM),a.alignLegendWithCanvas=(0,v.pluckNumber)(t.alignlegendwithcanvas,1),a.origMarginTop=(0,v.pluckNumber)(t.charttopmargin,this.chartTopMargin,15),a.origMarginLeft=(0,v.pluckNumber)(t.chartleftmargin,this.chartLeftMargin,15),a.origMarginBottom=(0,v.pluckNumber)(t.chartbottommargin,this.chartBottomMargin,15),a.origMarginRight=(0,v.pluckNumber)(t.chartrightmargin,this.chartRightMargin,15),a.origCanvasLeftMargin=(0,v.pluckNumber)(t.canvasleftmargin,0),a.origCanvasRightMargin=(0,v.pluckNumber)(t.canvasrightmargin,0),a.origCanvasTopMargin=(0,v.pluckNumber)(t.canvastopmargin,0),a.origCanvasBottomMargin=(0,v.pluckNumber)(t.canvasbottommargin,0),a.minChartWidthPercent=(0,v.pluckNumber)(t.minchartwidth,this.minChartWidth,50)/100,a.minChartHeightPercent=(0,v.pluckNumber)(t.minchartheight,this.minChartHeight,50)/100,a.minCanvasWidthPercent=(0,v.pluckNumber)(t.mincanvaswidth,this.minCanvasWidth,60)/100,a.minCanvasHeightPercent=(0,v.pluckNumber)(t.mincanvasheight,this.minCanvasHeight,30)/100,s=(0,v.pluck)(t.zeroplanecolor,t.divlinecolor,S.getColor(x.divLineColor)),c=(0,v.pluck)(t.zeroplanealpha,t.divlinealpha,S.getColor("divLineAlpha")),a.zeroPlaneColor=(0,v.convertColor)(s,c),a.zeroPlaneBorderColor=(0,v.convertColor)((0,v.pluck)(t.zeroplanebordercolor,s),(0,v.pluckNumber)(t.zeroplaneshowborder,1)?c:0),a.zeroPlaneShowBorder=(0,v.pluckNumber)(t.zeroplaneshowborder,1),a.realtimeEnabled=(0,v.pluckNumber)(t.realtimeenabled,this.isRealTime),a.showLegend=(0,v.pluckNumber)(t.showlegend,this.showLegend,1),a.link=t.clickurl,a.transposeAxis=(0,v.pluckNumber)(this.transposeAxis,t.transposeaxis,0),a.useEllipsesWhenOverflow=(0,v.pluckNumber)(t.useellipseswhenoverflow,t.useellipsewhenoverflow,1),a.drawTrendRegion=(0,v.pluckNumber)(t.drawcrossline,0),a.plotcolorintooltip=(0,v.pluckNumber)(t.plotcolorintooltip,this.config.singleseries?0:1),a.plotbinsize=k((0,v.pluckNumber)(t.plotbinsize,this.plotbinsize,.5),1),a.labelbinsize=k((0,v.pluckNumber)(t.labelbinsize,1),1),a.labelbinsize=a.plotbinsize>a.labelbinsize?a.plotbinsize:a.labelbinsize,a.enableMouseOutEvent=(0,v.pluckNumber)(t.enablemouseoutevent,this.enableMouseOutEvent,1),a.plotSpacePercent=Math.max((0,v.pluckNumber)(t.plotspacepercent,this.plotSpacePercent),0),a.maxColWidth=Math.abs((0,v.pluckNumber)(t.maxcolwidth,50)),a.maxBarHeight=Math.abs((0,v.pluckNumber)(t.maxbarheight,50)),a.overlapColumns=(0,v.pluckNumber)(t.overlapcolumns,t.overlapbars,a.is3D?0:1),a.plotPaddingPercent=t.plotpaddingpercent,a.tooltipgrayoutcolor=(0,v.pluck)(t.tooltipgrayoutcolor,v.preDefStr.colors.AAAAAA),a.clickURLOverridesPlotLinks=(0,v.pluckNumber)(t.clickurloverridesplotlinks,0),a.toolbarX=(0,v.pluckNumber)(t.toolbarx),a.toolbarY=(0,v.pluckNumber)(t.toolbary),a.toolbarPosition=function(e){var t=e;switch(t){case"tr":case"rt":case"top right":case"right top":t="tr";break;case"br":case"rb":case"bottom right":case"right bottom":t="br";break;case"tl":case"lt":case"top left":case"left top":t="tl";break;case"bl":case"lb":case"bottom left":case"left bottom":t="bl";break;default:t="tr"}return t}((0,v.pluck)(t.toolbarposition,"tr").toLowerCase()),a.toolbarHAlign="left"===(v.BLANKSTRING+t.toolbarhalign).toLowerCase()?"l":a.toolbarPosition.charAt(1),a.toolbarVAlign="bottom"===(v.BLANKSTRING+t.toolbarvalign).toLowerCase()?"b":a.toolbarPosition.charAt(0),a.toolbarVMargin=(0,v.pluckNumber)(t.toolbarvmargin,6),a.toolbarHMargin=(0,v.pluckNumber)(t.toolbarhmargin,10),this.addToEnv("chartConfig",a),this.addToEnv("linkClickFN",(0,v.getLinkAction)(this.getFromEnv("dataSource"),this)),this.addToEnv("dataLabelStyle",d)},t.createComponent=function(){var e;e=this.config.skipConfigureIteration,this.createBaseComponent(),this.getFromEnv("animationManager").setAnimationState(this._firstConfigure?"initial":"update"),(0,v.componentFactory)(this,c["default"],"caption"),e.caption=!0,(0,v.componentFactory)(this,u["default"],"subCaption"),e.subCaption=!0,(0,v.componentFactory)(this,d["default"],"background"),e.background=!0,this._createConfigurableComponents&&this._createConfigurableComponents(),this.config.realtimeEnabled&&this._realTimeConfigure&&this._realTimeConfigure()},t.configureChildren=function(){var e=this;e._mapChildren((function(t){!t.getState("removed")&&e.config.skipConfigureIteration[t.getName()]&&t.configure&&t.configure()}))},t.attachMenuButtons=function(){I.call(this)},t.configureAttributes=function(e){O.call(this,e)},t.setTooltipStyle=function(){var e=this.config;this.getFromEnv("toolTipController").setStyle({backgroundColor:v.hasSVG?(0,v.convertColor)(e.tooltipbgcolor||"FFF",e.tooltipbgalpha||100):(e.tooltipbgcolor||"FFF").replace(/\s+/g,"").replace(/^#?([a-f0-9]+)/gi,"#$1"),color:(e.tooltipcolor||e.basefontcolor||"545454").replace(/\s+/g,"").replace(/^#?([a-f0-9]+)/gi,"#$1"),borderColor:v.hasSVG?(0,v.convertColor)(e.tooltipbordercolor||"666",e.tooltipborderalpha||100):(e.tooltipbordercolor||"666").replace(/\s+/g,"").replace(/^#?([a-f0-9]+)/gi,"#$1"),borderWidth:(0,v.pluckNumber)(e.tooltipborderthickness,1)+"px",showToolTipShadow:(0,v.pluckNumber)(e.showtooltipshadow,e.showshadow,1),borderRadius:(0,v.pluckNumber)(e.tooltipborderradius,0)+"px",fontSize:(0,v.pluckNumber)(e.basefontsize,10)+"px",fontFamily:e.basefont||this.getFromEnv("style").inCanfontFamily,padding:(0,v.pluckNumber)(e.tooltippadding||3)+"px"})},t.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;t.valuefontbold=0,t.stickytracking=1,t.usemessagelog=0,t.zeroplanethickness=v.UNDEF,t.animationeffect="linear",t.showshadow=1,t.showhovereffect=v.UNDEF,t.plothovereffect=v.UNDEF,t.anchorhovereffect=v.UNDEF,t.plotborderdashed=v.UNDEF,t.stack100percent=v.UNDEF,t.showpercentvalues=v.UNDEF,t.showpercentintooltip=v.UNDEF,t.plotbordercolor=v.UNDEF,t.showtooltip=1,t.seriesnameintooltip=1,t.rotatevalues=0,t.minimizetendency=0,t.plotfillangle=270,t.valuepadding=2,t.useplotgradientcolor=1,t.plotborderthickness=1,t.plotfillalpha=L,t.showvalues=1,t.valueposition=A,t.drawcrossline=v.UNDEF,t.tooltipsepchar=", ",t.usedataplotcolorforlabels=0,t.placevaluesinside=0,t.showplotborder=1,t.use3dlighting=1,t.useroundedges=0,t.plotspacepercent=20,t.plotpaddingpercent=v.UNDEF,t.plotfillratio=v.UNDEF,t.maxcolwidth=50,t.plotborderdashlen=5,t.plotborderdashgap=4,t.useScaleRecursively=!0,t.formatnumberscale=1,t.decimals=2,t.decimalprecision=10,t.tooltipbgcolor="FFF",t.tooltipcolor=v.UNDEF,t.tooltipbordercolor="666",t.tooltipbgalpha=100,t.tooltipborderthickness=1,t.showtooltipshadow=v.UNDEF,t.basefontsize=10,t.basefont="Verdana, sans",t.tooltipborderradius=0,t.tooltippadding=3,t.tooltipborderalpha=100,t.origw=v.UNDEF,t.origh=v.UNDEF,t.showBorder=v.UNDEF},t.configure=function(t){var a=t;this.sanitizeData(a),this.addToEnv("dataSource",a),this.fireEvent("internal.dataSanitized",{}),a=this.getFromEnv("dataSource"),e.prototype.configure.call(this,a)},t._checkInvalidData=function(){var e=this.getFromEnv("dataSource"),t=this.getFromEnv("chartInstance");if(!(this.isWidget||this.isMap||e.data&&0!==e.data.length||e.dataset||e.value||e.lineset||e.annotations||e.category||e.tasks||e.process||e.axis))return t.__state.dataReady=!1,t.jsVars.hasNativeMessage=!0,t.jsVars.drawCount+=1,!0},t._checkInvalidSpecificData=function(){var e=this.getFromEnv("dataSource"),t=e.dataset,a=e.categories;if(!t||!a||0===a.length||!a[0].category)return!0},t.sanitizeData=function(e){e.chart=e.chart||e.graph||e.map||{}},t.setChartEvents=function(){var e=this.getFromEnv("eventListeners"),t=this.getFromEnv("dataSource"),i=t&&t.chart,n=this.getFromEnv("paper")&&this.getFromEnv("paper").canvas,o=this.getFromEnv("chart-container"),r=i&&(0,v.pluckNumber)(i.enablechartmousemoveevent,0);(i||n)&&(b["default"].unlisten(o,N?"click":"touchend",N?P:T),e.push(b["default"].listen(o,"mousedown touchstart",E,this)),e.push(b["default"].listen(o,"mousemove touchmove",_,this)),e.push(b["default"].listen(o,N?"click":"touchend",N?P:T,this)),b["default"].unlisten(n,"mouseover",D,this),b["default"].unlisten(n,"touchstart",D,this),b["default"].unlisten(n,"mouseout",D,this),b["default"].unlisten(n,"touchend",D,this),e.push(b["default"].listen(n,"mouseover touchstart mouseout touchend",D,this)),b["default"].unlisten(o,"mousemove",a.onContainerMouseMove,this),b["default"].unlisten(o,"touchmove",a.onContainerMouseMove,this),r&&e.push(b["default"].listen(o,"mousemove touchmove",a.onContainerMouseMove,this)))},t.get=function(e,t){var a=this[e];return t?a&&a[t]:a},t.prepareAttributes=function(){this.config.hasChartMessage||e.prototype.prepareAttributes.call(this)},t.disposeChartStyleSheet=function(){var e=this.getFromEnv("paper");e&&e.cssClear()},t.createChartStyleSheet=function(){this.getFromEnv("paper").cssRender()},t._dispose=function(){for(var t=this.getFromEnv("eventListeners"),a=t&&t.length;a--;)t[a].unlisten();e.prototype._dispose.call(this)},t._allocateSpace=function(e){var t,a,i=this.getChildren("canvas"),n=i&&i[0].config,o=this.config,r=o.canvasHeight,l=o.canvasWidth,s=o.availableHeight,c=o.availableWidth;a=o.canvasLeft+=e.left||0,t=o.canvasTop+=e.top||0,l=o.canvasWidth=C(l-((e.left||0)+(e.right||0)),0),r=o.canvasHeight=C(r-((e.top||0)+(e.bottom||0)),0),o.availableHeight=C(s-((e.top||0)+(e.bottom||0)),0),o.availableWidth=C(c-((e.left||0)+(e.right||0)),0),o.canvasRight=a+l,o.canvasBottom=t+r,n&&(n.canvasPaddingLeft=C(n.canvasPaddingLeft,e.paddingLeft||0),n.canvasPaddingRight=C(n.canvasPaddingRight,e.paddingRight||0),n.canvasPaddingTop=C(n.canvasPaddingTop,e.paddingTop||0),n.canvasPaddingBottom=C(n.canvasPaddingBottom,e.paddingBottom||0)),i&&i[0].setDimension({top:t,left:a,width:l,height:r})},t._fetchCaptionPos=function(e){var t=this.config,a=t.width,i=this.getChildren("chartMenuBar")&&this.getChildren("chartMenuBar")[0],n=(i?i.getLogicalSpace():{}).width||0,o=(this.getChildren("caption")&&this.getChildren("caption")[0]).config,r=o.width,l="l"===t.toolbarHAlign,s=t.width-e,c=l?e:s,h=t.origMarginRight,u=t.origMarginLeft,d=l?u:h;return o.align===v.POSITION_MIDDLE?c-r/2-d-n:"start"===o.align?l?-1:a-t.canvasLeft-d-r-n+o.horizontalPadding:l?a-(h+u+n+r):-1},t._manageCaptionSpacing=function(e,t){return this.getChildren("caption")[0].manageSpace(e,t)},t._manageChartMenuBar=function(e){var t,a,i=this.config,n=this.getChildren("chartMenuBar")&&this.getChildren("chartMenuBar")[0],o=i.toolbarY!==v.UNDEF,r=n?n.getLogicalSpace():{height:0,width:0},l=(this.getChildren("caption")&&this.getChildren("caption")[0]).config,s=l.isOnTop,c=i.width/2,h=i.canvasRight,u=h?(i.canvasLeft+h)/2:c,d=0,g=l.alignWithCanvas?u:c;return o&&(r.height=0),n&&n.setDimension({x:i.toolbarX!==v.UNDEF?i.toolbarX:(0,v.pluckNumber)("l"===i.toolbarHAlign?0:+i.width),y:i.toolbarY!==v.UNDEF?i.toolbarY:(0,v.pluckNumber)("t"===i.toolbarVAlign?0:+i.height),width:r.width,height:r.height}),delete l._offsetHeight,a=l.alignWithCanvas?i.canvasWidth:i.width-i.origMarginLeft-i.origMarginRight,s?(t=this._manageCaptionSpacing(e,a),d=this._fetchCaptionPos(g),l._offsetHeight=d<0?r.height:0,t.top=d<0?(0,v.pluckNumber)(t.top,0)+r.height:C(t.top,r.height),this._allocateSpace(t)):(this._allocateSpace({top:r.height}),t=this._manageCaptionSpacing(e,a),this._allocateSpace(t)),{top:r?C(r.height,t.top):t.top,bottom:t.bottom}},t._manageSpace=function(){var e,t,a,i,n,o,r,l,s,c,h,u,d=this.getChildren("canvas")&&this.getChildren("canvas")[0],g=d&&d.config,p=this.config,f=this.getFromEnv("chartWidth"),m=this.getFromEnv("chartHeight");p.width=f,p.height=m,p.minChartHeight=s=p.minChartHeightPercent*m,p.minChartWidth=c=p.minChartWidthPercent*f,p.minCanvasWidth=e=p.minCanvasWidthPercent*c,p.minCanvasHeight=t=p.minCanvasHeightPercent*s,p.marginTop=a=p.origMarginTop,p.marginLeft=i=p.origMarginLeft,p.marginBottom=n=p.origMarginBottom,p.marginRight=o=p.origMarginRight,p.canvasMarginTop=p.origCanvasTopMargin,p.canvasMarginLeft=p.origCanvasLeftMargin,p.canvasMarginBottom=p.origCanvasBottomMargin,p.canvasMarginRight=p.origCanvasRightMargin,p.canvasHeight=r=p.height-p.marginTop-p.marginBottom,p.canvasWidth=l=p.width-p.marginLeft-p.marginRight,p.availableHeight=r-t,p.availableWidth=l-e,r<s&&(h=m-s,p.canvasHeight=s,u=a+n,p.marginTop=h*a/u,p.marginBottom=h*n/u,p.availableHeight=s-t),l<c&&(h=f-c,u=o+i,p.canvasWidth=c,p.marginLeft=h*i/u,p.marginRight=h*o/u,p.availableWidth=c-e),p.canvasLeft=p.marginLeft,p.canvasTop=p.marginTop,g&&(g.canvasPaddingLeft=k(g.origCanvasLeftPad,S(.1*p.height)),g.canvasPaddingRight=k(g.origCanvasRightPad,S(.1*p.height)),g.canvasPaddingTop=k(g.origCanvasTopPad,S(.1*p.height)),g.canvasPaddingBottom=k(g.origCanvasBottomPad,S(.1*p.height))),this._spaceManager()},t._preDraw=function(){this._mapChildren((function(e){e.getState("removed")||e.preDraw&&e.preDraw()})),this._setAxisLimits&&this._setAxisLimits(),this._createToolBoxGantt&&this._createToolBoxGantt()},t._clearTimers=function(){var e,t=this.config&&this.config.realTimeConfig,a=this.config.timers,i=a&&a.setTimeout,n=a&&a.setInterval;for(e in t&&(t.refreshIntervalFlag=!1),i)clearTimeout(i[e]);for(e in n)clearInterval(n[e])},t.setChartCursor=function(){var e=this.config.link,t=this.getFromEnv("paper").canvas.style;x.svg?t.cursor=e?v.POINTER:"default":this.getFromEnv("paper").canvas.style.cursor=e?v.HAND:"default"},t._createLayers=function(){var e,t=this.getFromEnv("animationManager");e=this.getContainer("parentgroup")||this.addContainer("parentgroup",t.setAnimation({el:"group",attr:{name:"parentgroup"},component:this})),!this.getChildContainer("backgroundGroup")&&this.addChildContainer("backgroundGroup",F({name:"background"},e,this)),!this.getChildContainer("axisBottomGroup")&&this.addChildContainer("axisBottomGroup",F({name:"axisbottom"},e,this)),!this.getChildContainer("belowPlotGroup")&&this.addChildContainer("belowPlotGroup",F({name:"belowplot"},e,this)),!this.getChildContainer("plotGroup")&&this.addChildContainer("plotGroup",F({name:"plots"},e,this)),!this.getChildContainer("axisTopGroup")&&this.addChildContainer("axisTopGroup",F({name:"axistop"},e,this)),!this.getChildContainer("sumLabelsLayer")&&this.addChildContainer("sumLabelsLayer",F({name:"sumlabels","class":"fusioncharts-datalabels"},e,this)),!this.getChildContainer("datalabelsGroup")&&this.addChildContainer("datalabelsGroup",F({name:"datalabel"},e,this)),!this.getChildContainer("abovePlotGroup")&&this.addChildContainer("abovePlotGroup",F({name:"aboveplot"},e,this)),!this.getChildContainer("captionGroup")&&this.addChildContainer("captionGroup",F({name:"caption"},e,this)),!this.getChildContainer("defaultGroup")&&this.addChildContainer("defaultGroup",F({name:"chartdefault"},e,this)),!this.getChildContainer("defaultShadowGroup")&&this.addChildContainer("defaultShadowGroup",F({name:"chartdefault-shadow"},e,this)),!this.getChildContainer("trackerGroup")&&this.addChildContainer("trackerGroup",F({name:"tracker"},e,this)),!this.getChildContainer("logoGroup")&&this.addChildContainer("logoGroup",F({name:"logo"},e,this)),this.getChildren("legend")!==v.UNDEF&&!this.getChildContainer("legendGroup")&&this.addChildContainer("legendGroup",F({name:"legend"},e,this)),!this.getChildContainer("toolbar-master")&&this.addChildContainer("toolbar-master",F({name:"toolbar-master"},e,this))},t._setDataLabelStyle=function(){var e=this.config.dataLabelStyle,t={fontFamily:e.fontFamily,fontSize:e.fontSize,fontWeight:e.fontWeight,fontStyle:e.fontStyle};this.getChildContainer("datalabelsGroup").css(t)},t._manageCaptionPosition=function(){var e,t,a,i=this.config,n=this.getChildren(),o=n.caption&&n.caption[0],r=n.subCaption&&n.subCaption[0],l=o.config,s=l.widgetValueHeight||0,c=r.config,h=i.canvasWidth,u=l.align,d=l.text,g=l.alignWithCanvas,p=l.horizontalPadding,f=i.width,m=i.canvasLeft,b=i.canvasRight,x=i.marginRight,y=i.marginLeft,C=i.marginTop,k=(S(m)||0)+(0,v.pluckNumber)(h,f)/2,w=l.height,L=c.height,A=n.legend&&n.legend[0]&&n.legend[0].config||{},N=A.height||0,F=A.legendPadding||0,E=i.legendposition,_=this.getFromEnv("gLegend")||{},T=0,P=!!(_.conf||{}).showLegend,D=this.config.borderWidth,I=n.actionBar,M=0;switch(A.isActive||(N=0),P&&this.config.gLegendEnabled&&(T=_.getLogicalSpace().height),u){case"end":e=g?b-p:f-p;break;case"start":e=g?m+p:p;break;default:e=g?k:y+.5*(f-y-x)||f/2}l.isOnTop?t=(D||0)+(C||0):("right"===E.toLowerCase()&&(F=0,N=0,T=0),I&&I.length&&((M=(I[0].getLogicalSpace&&I[0].getLogicalSpace()||{}).height)===v.UNDEF||M===Infinity||M<0)&&(M=0),t=this.config.height-this.config.marginBottom-w-(L||0)-(D||0)-(F||0)-(N||0)-T-s-M),t+=l._offsetHeight||0,o.setDimention({x:e,y:t}),a=d?t+w+2:t||C||0,r.setDimention({x:e,y:a})},t.resizeCanvas=function(){var e=this.getFromEnv("paper"),t=this.config,a=this.getFromEnv("animationManager"),i=this.getFromEnv("chartWidth"),n=this.getFromEnv("chartHeight");v.hasSVG||!t._prevWidth&&!t._prevHeight||e.setSize(t._prevWidth,t._prevHeight),a.setAnimation({el:e,attr:{width:i,height:n},component:this})},t._updateVisuals=function(){var e=this.getFromEnv("core-options"),t=this.getFromEnv("paper"),a=this.config,i=this.getFromEnv("chartWidth"),n=this.getFromEnv("chartHeight");e&&!e._SVGDefinitionURLUpdated&&(/^\s*absolute\s*$/i.test(e.SVGDefinitionURL)&&(x._url=(x._g&&x._g.win||window).location.href.replace(/#.*?$/,v.BLANKSTRING)),e._SVGDefinitionURLUpdated=!0),t?this.resizeCanvas():((t=new x(this.getFromEnv("chart-container"),i,n)).setHTMLClassName("fusioncharts-div"),this.addToEnv("paper",t),t.setConfig("stroke-linecap",v.ROUND),this.setChartEvents()),a._prevWidth=i,a._prevHeight=n,this.setChartCursor(),this._createLayers(),this._setDataLabelStyle(),this._drawTexts()},t.allocateDimensionOfChartMenuBar=function(){var e=this.config,t=this.getFromEnv("toolbar"),a=t.config,i=a.hDirection,n=a.vDirection,o=t.getLogicalSpace(),r=t.getDimension(),l=r.y,s=r.x;"t"===e.toolbarVAlign?(l+=e.toolbarVMargin*n+k(0,o.height*n),s+=e.toolbarHMargin*i-C(0,o.width*i),s="l"===e.toolbarHAlign?s+o.width:s-o.width):(l=e.height-e.marginBottom-o.height,s="b"===e.toolbarVAlign&&"r"===e.toolbarHAlign?e.width-e.marginRight-o.width:e.marginLeft),e.toolbarX!==v.UNDEF&&(s=e.toolbarX),e.toolbarY!==v.UNDEF&&(l=e.toolbarY),t.setDimension({x:s,y:l,width:o.width,height:o.height}),t.manageSpace()},t.draw=function(){var e=this.getFromEnv("chartInstance");this.config.hasChartMessage?(this._hide(),this.resizeCanvas(),this.drawChartMessage(),this.fireChartInstanceEvent("nodatatodisplay",{},[e.id]),e.jsVars.drawCount+=1,e.__state.dataReady=!1,e.jsVars.hasNativeMessage=!0):(this._hideChartMessage(),this._clearTimers&&this._clearTimers(),this.config.plotOverFlow=!1,this._show(),this._updateVisuals(),this.setState("initiated",!0),e.jsVars.drawCount+=1,e.jsVars.hasNativeMessage=!1)},t.manageSpace=function(){this.config.hasChartMessage?this.getChildren("chartMessage")[0].manageSpace():(this._preDraw(),this.addToolbar&&this.addToolbar(),this._manageSpace(),this._postSpaceManagement&&this._postSpaceManagement())},t._show=function(){this.getContainer("parentgroup")&&this.getContainer("parentgroup").show()},t._manageActionBarSpace=function(){var e=this.config,t=this.getChildren("actionBar"),a=(t&&t[0]&&t[0].getLogicalSpace()||{}).height||0;return e.actionBarHeight=a,{bottom:a}},t._hide=function(){this.getContainer("parentgroup")&&this.getContainer("parentgroup").hide()},a.onContainerMouseMove=function(e){var t,a=e.data,i=a.getFromEnv("chartInstance"),n=e.originalEvent,o=(0,v.getMouseCoordinate)(a.getFromEnv("chart-container"),n,a);i.ref&&(t=(0,v.extend2)({height:i.args.height,width:i.args.width,pixelHeight:a.getFromEnv("chartWidth"),pixelWidth:a.getFromEnv("chartHeight"),id:i.args.id,renderer:i.args.renderer,container:i.options.containerElement},o),a.fireChartInstanceEvent("chartMouseMove",t))},a.onContainerRollOver=function(e){var t,a=e.data,i=a.getFromEnv("chartInstance"),n=e.originalEvent,o=(0,v.getMouseCoordinate)(a.getFromEnv("chart-container"),n,a);i.ref&&(t=(0,v.extend2)({height:i.args.height,width:i.args.width,pixelHeight:a.getFromEnv("chartWidth"),pixelWidth:a.getFromEnv("chartHeight"),id:i.args.id,renderer:i.args.renderer,container:i.options.containerElement},o),a.fireChartInstanceEvent("chartRollOver",t))},a.onContainerRollOut=function(e){var t,a=e.chart,i=a.getFromEnv("chartInstance"),n=e.event,o=(0,v.getMouseCoordinate)(a.getFromEnv("chart-container"),n,a);i.ref&&(t=(0,v.extend2)({height:i.args.height,width:i.args.width,pixelHeight:a.getFromEnv("chartWidth"),pixelWidth:a.getFromEnv("chartHeight"),id:i.args.id,renderer:i.args.renderer,container:i.options.containerElement},o),a.fireChartInstanceEvent("chartRollOut",t))},a.winMouseHover=function(e){var t=e.originalEvent,i=t.target||t.originalTarget||t.srcElement||t.relatedTarget||t.fromElement,n=e.data,o=n.getFromEnv("paper"),r={chart:n,event:e.originalEvent};y?o.getById(i.parentNode.raphaelid)||(a.onContainerRollOut(r),n.config.mouseStateIn=!1,b["default"].unlisten(document,"mouseover",a.winMouseHover)):i.viewportElement||(n.config.mouseStateIn=!1,a.onContainerRollOut(r),b["default"].unlisten(window,"mouseover",a.winMouseHover))},a}(o["default"]),V=R;t["default"]=V},408:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=function(e){var t;(0,o.componentFactory)(e,n["default"],"canvas",e.config.showVolumeChart?2:1),t=e.getChildren("canvas");for(var a=0,i=t.length;a<i;a++)t[a].configure()};var n=i(a(409)),o=a(184)},409:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(201)),o=i(a(198)),r=a(199),l=a(184),s=a(192),c=i(a(410)),h=Math.max,u=l.preDefStr.miterStr,d=l.preDefStr.noneStr,g=l.preDefStr.ROUND,p=function(e,t,a){return a.getFromEnv("animationManager").setAnimation({el:"group",attr:{name:e},container:t,component:a,label:"group"})};(0,s.addDep)({name:"canvasAnimation",type:"animationRule",extension:c["default"]});var f=function(e){function t(){var t;t=e.call(this)||this;var a=(0,n["default"])(t);return a.config={},a.config.axes=a.config.axes||[],a.setLinkedItem("axes",[]),a.setLinkedItem("primaryAxis",{}),a.addToEnv("canvasConfig",t.config),t}(0,o["default"])(t,e);var a=t.prototype;return a.getName=function(){return"canvas"},a.getType=function(){return"canvas"},a.createGroup=function(){var e=this.getFromEnv("chart"),t=e.getChildContainer(),a=e.getContainer("parentgroup"),i=this.getEffectiveDimensions(),n=this.getFromEnv("chart-attrib"),o=(0,l.pluckNumber)(n.areaovercolumns,1),r=this.getChildContainer("axisReferenceVisualsFloor"),s=this.getChildContainer("axisReferenceVisualsBottom"),c=this.getChildContainer("axisReferenceVisualsMiddle"),h=this.getChildContainer("axisReferenceVisualsTop"),u=this.getChildContainer("axisReferenceVisualsCeil"),d=this.getChildContainer("areaGroup"),g=this.getChildContainer("areaShadowGroup"),f=this.getChildContainer("columnGroup"),m=this.getChildContainer("columnShadowGroup"),v=t.plotGroup,b=[i.left,i.top,i.width,i.height].toString();!this.getContainer("canvasGroup")&&this.addContainer("canvasGroup",p("canvas",a,this)).insertAfter(t.backgroundGroup),s||(s=this.addChildContainer("axisReferenceVisualsBottom",p("axisReferenceVisualsBottom",a,this)).insertAfter(t.axisBottomGroup)),r||(r=this.addChildContainer("axisReferenceVisualsFloor",p("axisReferenceVisualsFloor",a,this)).insertAfter(t.axisBottomGroup)),r.attr({"clip-rect":b}),!this.getChildContainer("crossline")&&this.addChildContainer("crossline",p("crossline",a,this)).insertBefore(t.plotGroup),!this.getChildContainer("crosslineBottom")&&this.addChildContainer("crosslineBottom",p("crosslineBottom",a,this)).insertBefore(t.plotGroup),!this.getChildContainer("crosslineTop")&&this.addChildContainer("crosslineTop",p("crosslineTop",a,this)).insertBefore(t.abovePlotGroup),!this.getChildContainer("datalabelsGroup")&&this.addChildContainer("datalabelsGroup",p("canvasdatalabel",e.getChildContainer("datalabelsGroup"),this)),c||(c=this.addChildContainer("axisReferenceVisualsMiddle",p("axisReferenceVisualsMiddle",a,this)).insertBefore(t.plotGroup)),c.attr({"clip-rect":b}),h||(h=this.addChildContainer("axisReferenceVisualsTop",p("axisReferenceVisualsTop",a,this)).insertBefore(t.datalabelsGroup)),!this.getChildContainer("quadrantGroup")&&this.addChildContainer("quadrantGroup",p("quadrant",a,this)).insertAfter(c),u||this.addChildContainer("axisReferenceVisualsCeil",p("axisReferenceVisualsCeil",a,this)).insertBefore(t.datalabelsGroup),!this.getChildContainer("sumLabelsLayer")&&this.addChildContainer("sumLabelsLayer",t.sumLabelsLayer),m||(m=this.addChildContainer("columnShadowGroup",p("column-shadow-group",v,this))),f||(f=this.addChildContainer("columnGroup",p("column",v,this))),g||(g=this.addChildContainer("areaShadowGroup",p("area-shadow-group",v,this))),d||(d=this.addChildContainer("areaGroup",p("area",v,this))),o?(m.insertBefore(g),f.insertBefore(g)):(g.insertBefore(m),d.insertBefore(m)),!this.getChildContainer("lineShadowGroup")&&this.addChildContainer("lineShadowGroup",p("line-shadow-group",v,this)),!this.getChildContainer("lineGroup")&&this.addChildContainer("lineGroup",p("line",v,this)),!this.getChildContainer("defaultShadowGroup")&&this.addChildContainer("defaultShadowGroup",p("default-shadow-group",v,this)),!this.getChildContainer("defaultGroup")&&this.addChildContainer("defaultGroup",p("default",v,this))},a.isWithinCanvas=function(e,t){var a=this.config,i=a.canvasLeft,n=i+a.canvasWidth,o=a.canvasTop,r=o+a.canvasHeight;return e>=i&&e<=n&&t>=o&&t<=r},a.setCanvasPadding=function(){var e,t=this.config;e=this.getCanvasPadding(),t.canvasPaddingLeft=h(t.canvasPaddingLeft,e.paddingLeft||0),t.canvasPaddingRight=h(t.canvasPaddingRight,e.paddingRight||0),t.canvasPaddingTop=h(t.canvasPaddingTop,e.paddingTop||0),t.canvasPaddingBottom=h(t.canvasPaddingBottom,e.paddingBottom||0)},a.getEffectiveDimensions=function(){var e=this.config;return{left:e.canvasLeft,top:e.canvasTop,width:e.canvasWidth,height:e.canvasHeight,paddingLeft:e.canvasPaddingLeft,paddingTop:e.canvasPaddingTop,paddingRight:e.canvasPaddingRight,paddingBottom:e.canvasPaddingBottom}},a.setDimension=function(e){var t=this.config;t.canvasTop=e.top,t.canvasLeft=e.left,t.canvasWidth=e.width,t.canvasHeight=e.height},a.getCanvasPadding=function(){var e,t,a,i,n=this.getFromEnv("chartConfig").canvasWidth,o=this.config.maxPaddingPercent*n/100,r={paddingLeft:0,paddingRight:0,paddingTop:0,paddingBottom:0};return this._mapChildren((function(a){for(t in e=a.getCanvasPadding&&a.getCanvasPadding()||{})e.hasOwnProperty(t)&&(r[t]=h(e[t],r[t]))})),a=r.paddingLeft||0,i=r.paddingRight||0,o<a&&(r.paddingLeft=o),o<i&&(r.paddingRight=o),r},a.configureAttributes=function(e){void 0===e&&(e={});var t,a,i,n,o,r=this.getLinkedParent(),s=this.getFromEnv("chartConfig"),c=this.config,u=this.getFromEnv("chart-attrib"),d=this.getFromEnv("color-manager"),g=s.is3D,p=g?l.chartPaletteStr.chart3D:l.chartPaletteStr.chart2D,f=c.isRoundEdges=(0,l.pluckNumber)(u.useroundedges,0),m=(0,l.pluckNumber)(u.showxaxisline,u.showyaxisline,u.showaxislines,0)?0:1;c.canvasBorderRadius=(0,l.pluckNumber)(u.plotborderradius,f?2:0),i=c.showCanvasBorder=Boolean((0,l.pluckNumber)(u.showcanvasborder,m,t,f?0:1)),o=c.oriCanvasBorderThickness=h((0,l.pluckNumber)(u.canvasborderthickness,f?0:(0,l.pluckNumber)(r.config.canvasborderthickness,2),0)),t=c.canvasBorderWidth=g?0:i?o:0,c.canvasBorderColor=(0,l.convertColor)((0,l.pluck)(u.canvasbordercolor,d.getColor(l.canvasBorderColorStr)),(0,l.pluck)(u.canvasborderalpha,d.getColor("canvasBorderAlpha"))),a=c.canBGAlpha=(0,l.pluck)(u.canvasbgalpha,d.getColor(l.canvasBGAlphaStr)),c.canBGColor={FCcolor:{color:(0,l.pluck)(u.canvasbgcolor,d.getColor(p.canvasBgColor)),alpha:(0,l.pluck)(u.canvasbgalpha,100),angle:(0,l.pluck)(u.canvasbgangle,0),ratio:(0,l.pluck)(u.canvasbgratio)}},n=c.shadow=(0,l.pluckNumber)(u.showshadow,f,0)&&f?{enabled:!0,opacity:a/100}:0,c.shadowOnCanvasFill=n&&n.enabled,c.canvasPadding=(0,l.pluckNumber)(u.canvaspadding,0),c.origCanvasTopPad=(0,l.pluckNumber)(u.canvastoppadding,0),c.origCanvasBottomPad=(0,l.pluckNumber)(u.canvasbottompadding,0),c.origCanvasLeftPad=(0,l.pluckNumber)(u.canvasleftpadding,0),c.origCanvasRightPad=(0,l.pluckNumber)(u.canvasrightpadding,0),Object.assign(c,e),this.config.inputComponents=[],this.config.maxPaddingPercent=12.5,this._mapChildren((function(e){e.getState("removed")||e.getType&&"dataset"===e.getType()||"axisRefVisuals"===e.getType()||e.configure&&e.configure()}))},a.disposeAllInputs=function(){this.config.inputComponents.forEach((function(e){e.dispose()})),this.config.inputComponents.length=0},a.axisExists=function(e){var t,a,i=this.getLinkedItem("axes"),n=!1;for(t=0,a=i.length;t<a;t++)if(i[t].axis===e){n=!0;break}return n},a.attachAxis=function(e,t,a){var i=this.getLinkedItem("axes"),n=t?"yAxis":"xAxis",o=this.getFromEnv(n)||[];return this.axisExists(e)||(i.push({axis:e,isY:t,config:a||{}}),o.push(e),this.addToEnv(n,o)),this},a.setPrimaryAxis=function(e,t){this.getLinkedItem("primaryAxis")[e]=this.getLinkedItem("axes").find((function(e){return e.axis===t}))},a.getAxes=function(){var e;return Object.keys(e=this.getLinkedItem("primaryAxis")).length?[e.xAxis,e.yAxis]:this.getLinkedItem("axes").slice(0)},a.detachAxis=function(e,t){var a=this.getLinkedItem("axes"),i=Infinity;return t?a.splice(t,1):(a.forEach((function(t,a){t.axis===e&&(i=a)})),a.splice(i,1))},a.preDraw=function(){this._mapChildren((function(e){e.getState("removed")||e.preDraw&&e.preDraw()}))},a.draw=function(){this.createGroup(),!this.getFromEnv("chart").config.skipCanvasDrawing&&this.drawCanvas()},a.drawCanvas=function(){var e,t,a,i,n,o,r,s=this,c=s.getFromEnv("chart"),p=c.isBar,f=s.getFromEnv("chart-attrib"),m=s.getFromEnv("animationManager"),v=c.config,b=s.config,x=b.clip={},y=c.getChildContainer("plotGroup"),C=c.getChildContainer("datalabelsGroup"),k=s.getGraphicalElement("canvasBorderElement"),S=s.getGraphicalElement("canvasElement"),w=b.canvasLeft||(b.canvasLeft=v.canvasLeft),L=b.canvasTop||(b.canvasTop=v.canvasTop),A=b.canvasWidth||(b.canvasWidth=v.canvasWidth),N=b.canvasHeight||(b.canvasHeight=v.canvasHeight),F=b.xDepth=v.xDepth||0,E=b.yDepth=v.yDepth||0,_=s.getContainer("canvasGroup"),T=s.getChildContainer("quadrantGroup"),P=b.canvasBorderRadius,D=b.canvasBorderWidth,I=.5*D,M=b.canvasBorderColor,O=b.canBGColor,R=b.canBGAlpha,V=b.shadow,B=b.showCanvasBG=Boolean((0,l.pluckNumber)(f.showcanvasbg,1)),G=b.shadowOnCanvasFill,H=b.showCanvasBorder;i=O,n={x:w-I,y:L-I,width:A+D,height:N+D,r:P,"stroke-width":D,stroke:M,"stroke-linejoin":D>2?g:u},H?(k&&k.show(),t=m.setAnimation({el:k||"rect",component:s,attr:{x:w-I,y:L-I,width:A+D,height:N+D,r:P,"stroke-width":D,stroke:M,"stroke-linejoin":D>2?g:u},label:"rect",container:_}).shadow(V),k||s.addGraphicalElement("canvasBorderElement",t)):k&&(s.removeGraphicalElement(k),m.setAnimation({el:k,component:s,callback:function(){k.hide()}})),o=H?0:b.oriCanvasBorderThickness,x["clip-canvas"]=[h(0,w-F-o),h(0,L-E-o),h(1,A+2*F+2*o),h(1,N+E+2*o)],x["clip-sum-value"]=[h(0,w-F),p?L:0,h(1,p?v.width-w:A+2*F),h(1,p?N+E:L+N)],x["clip-canvas-init"]=[h(0,w-F),h(0,L-E),1,h(1,N+2*E)],e=x["clip-canvas"].slice(0),r=function(e,t){m.setAnimation({el:e,attr:{"clip-rect":t},label:"container",component:s,state:e.attrs["clip-rect"]?"updating":"appearing"})},v.skipClipping||(r(y,e),r(C,e),r(T,e),r(s.getChildContainer("sumLabelsLayer"),x["clip-sum-value"])),B?(n={x:w,y:L,width:A,height:N,r:P,"stroke-width":0,stroke:d,fill:(0,l.toRaphaelColor)(i)},S&&S.show(),a=m.setAnimation({el:S||"rect",attr:n,label:"rect",container:_,component:s}),S||s.addGraphicalElement("canvasElement",a),G?a.shadow({opacity:R/100}):a.shadow(!1)):S&&m.setAnimation({el:S,component:s,callback:function(){S.hide()}})},t}(r.ComponentInterface);t["default"]=f},410:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]={"initial.canvas.canvas":function(){return{"rect.appearing":function(){return[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"initial"}]},"*":null}},"update.canvas.canvas":{"rect.updating":[{slot:"middle"}]}}},411:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=function(e){var t,a=e,l=a.config,s=a.getFromEnv("chart-attrib"),c="t"===l.toolbarVAlign?"chartMenuBar":"actionBar",h="t"===l.toolbarVAlign?"actionBar":"chartMenuBar";(0,i.componentFactory)(a,n.ToolBar,h,0,[s]),(0,i.componentFactory)(a,n.ToolBar,c,1,[s]),t=a.getChildren(c)[0],a.addToEnv("toolbar",t),o.SymbolStore.register("ContextIcon",(function(e,t,a){var i=e,n=t,o=2*a,l=r(o/4),s=.7*r(o/2),c=i-s,h=i+s,u=n+l,d=n-l;return["M",c,n,"L",h,n,"M",c,u,"L",h,u,"M",c,d,"L",h,d]})),a.attachMenuButtons()};var i=a(184),n=a(293),o=a(297),r=Math.round},412:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=a(184),r=a(199),l=a(192),s=i(a(413)),c=Math.max,h=Math.min,u=Math.ceil;(0,l.addDep)({name:"captionAnimation",type:"animationRule",extension:s["default"]});var d=function(e){function t(){return e.apply(this,arguments)||this}(0,n["default"])(t,e);var a=t.prototype;return a.getType=function(){return"caption"},a.getName=function(){return"caption"},a.configure=function(){var e=this.getFromEnv("chart"),t=e.getFromEnv("chart-attrib"),a=this.config||{},i=e.getFromEnv("style"),n=i.outCanfontFamily,r=i.outCancolor,l=i.fontSize,s=["top","center"];switch(this.config.text=(0,o.parseUnsafeString)(t.caption),a.style={fontFamily:(0,o.pluck)(t.captionfont,n),color:(0,o.convertColor)((0,o.pluck)(t.captionfontcolor,r).replace(/^#? ([a-f0-9]+)/gi,"#$1")),fontSize:(0,o.pluckNumber)(t.captionfontsize,l+3)+"px",fontWeight:0===(0,o.pluckNumber)(t.captionfontbold)?o.NORMAL:o.BOLD},a.align||(a.align=o.BLANKSTRING),a.align=(0,o.pluck)(t.captionposition,t.captionalignment,"center"),a.align&&((s=a.align.split("-"))[0]&&(s[0]=s[0].toLowerCase()),s[1]&&(s[1]=s[1].toLowerCase()),s.length<2&&(s[1]=s[0])),s[0]){case"top":a.isOnTop=1;break;case"bottom":a.isOnTop=0;break;default:a.isOnTop=(0,o.pluckNumber)(t.captionontop,1)}switch(s[1]){case"right":a.align="end";break;case"left":a.align="start";break;default:a.align="middle"}a.isOnLeft=!(0,o.pluckNumber)(t.captiononright,0),a.captionPosition=(0,o.getValidValue)(t.captionposition,"top").toLowerCase(),a.alignWithCanvas=(0,o.pluckNumber)(t.aligncaptionwithcanvas,e.config.alignCaptionWithCanvas,1),a.horizontalPadding=(0,o.pluckNumber)(t.captionhorizontalpadding,a.alignWithCanvas?0:15),a.drawCaption=!0,(0,o.setLineHeight)(a.style)},a.allocatePosition=function(){this.getFromEnv("chart")._manageCaptionPosition()},a.draw=function(){var e,t=this.getFromEnv("chart"),a=t.config,i=t.getFromEnv("animationManager"),n=t.config.textDirection,r=t.getChildContainer().captionGroup,l=t.getFromEnv("smartLabel"),s=this.getGraphicalElement("captionElement"),c=this.getFromEnv("toolTipController"),h=this.config,u=h.style,d=h.text,g=h.x,p=h.align;d?(e={text:h.text,fill:u.color,x:g,y:h.y,"text-anchor":p||"middle","vertical-align":h.verticalAlign||"top",visibility:h.drawCaption?o.visibleStr:o.hiddenStr,direction:n},(s=this.addGraphicalElement("captionElement",i.setAnimation({el:s||"text",attr:e,container:r,state:void 0,component:this,label:"text"}))).css(u),a.showtooltip?c.enableToolTip(s,h.originalText):c.disableToolTip(s),l&&(l.useEllipsesOnOverflow(a.useEllipsesWhenOverflow),l.setStyle(u))):s&&i.setAnimation({el:s,component:this,callback:function(){this.hide()},doNotRemove:!0}),a.savedCaption=s},a.manageSpace=function(e,t){var a,i,n,r,l,s=this.getFromEnv("chart"),d=s.config,g=s.getChildren("caption")[0],p=s.getChildren("subCaption")[0],f=g.config,m=p.config,v=s.getFromEnv("dataSource").chart,b=s.getFromEnv("smartLabel"),x=e,y=(0,o.parseUnsafeString)(v.caption),C=(0,o.parseUnsafeString)(v.subcaption),k=(0,o.pluckNumber)(v.captionpadding,10),S=k,w=!1,L=0,A=0,N=0,F=0,E=0,_=s.getChildren("canvas"),T=c(_&&_[0].config.canvasBorderThickness,0),P=0,D=0;return x>3?(k<T&&(k=T+2),y!==o.BLANKSTRING&&(n=f.style,F=u((0,o.pluckNumber)(parseFloat(n.fontHeight,10),parseFloat(n.lineHeight,10),12))),C!==o.BLANKSTRING&&(l=m.style,E=(0,o.pluckNumber)(parseInt(l.fontHeight,10),parseInt(l.lineHeight,10),12)),(F>0||E>0)&&((L=F+E+k)>(x=c(x,0))?(w=!0,(A=L-x)<k?k=c(A,5):(A-=k,k=0,E>A?(N=E-A+10,E=0,m._originalText=m.text,m.text=o.BLANKSTRING):(A-=E,E=0,F>A&&(N=F-A)))):N=x-L,b.useEllipsesOnOverflow(d.useEllipsesWhenOverflow),F>0&&(b.setStyle(n),N=(F+=N)-(a=b.getSmartText(y,t,F)).height,f.height=F=a.height,f.text=a.text,f.originalText=!!a.tooltext&&a.tooltext,P=a.width),E>0&&(b.setStyle(l),N=(E+=N)-(i=b.getSmartText(C,t,E)).height,E=i.height,m.text=i.text,m.height=i.height,m.originalText=!!i.tooltext&&i.tooltext,D=i.width),w&&N>0&&(k+=h(S-k,N)),f.captionPadding=k,f.height=F,f.width=P,m.width=D,m.height=E,L=F+E+k),L>d.canvasHeight?(L=0,f.drawCaption=!1):f.drawCaption=!0,r=f.isOnTop?{top:L}:{bottom:L,top:5}):(r={bottom:0,top:0},f.drawCaption=!1),r},a.setDimention=function(e){var t=this.config;t.x=e.x,t.y=e.y},t}(r.ComponentInterface);t["default"]=d},413:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]={"initial.caption.caption":function(){return{"text.appearing":function(){return[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"initial"}]}}}}},414:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=a(184),r=i(a(412)),l=a(192),s=i(a(415)),c=Math.max;(0,l.addDep)({name:"subcaptionAnimation",type:"animationRule",extension:s["default"]});var h=function(e){function t(){return e.apply(this,arguments)||this}(0,n["default"])(t,e);var a=t.prototype;return a.getType=function(){return"caption"},a.getName=function(){return"subCaption"},a.configure=function(){var e=this.getFromEnv("chart"),t=e.getFromEnv("chart-attrib"),a=this.config||{},i=e.getFromEnv("style"),n=e.getChildren("caption")[0],r=i.outCanfontFamily,l=i.outCancolor,s=i.fontSize,h=["top","center"];switch(a.text=(0,o.parseUnsafeString)(t.subcaption),a.align||(a.align=o.BLANKSTRING),a.align=(0,o.pluck)(t.captionposition,t.captionalignment,"center"),n.config.align&&((h=n.config.align.split("-"))[0]&&(h[0]=h[0].toLowerCase()),h[1]&&(h[1]=h[1].toLowerCase()),h.length<2&&(h[1]=h[0])),h[0]){case"top":a.isOnTop=1;break;case"bottom":a.isOnTop=0;break;default:a.isOnTop=(0,o.pluckNumber)(t.captionontop,1)}a.alignWithCanvas=(0,o.pluckNumber)(e.aligncaptionwithcanvas,t.aligncaptionwithcanvas,1),a.horizontalPadding=(0,o.pluckNumber)(t.captionhorizontalpadding,n.config.alignWithCanvas?0:15),a.style={fontFamily:(0,o.pluck)(t.subcaptionfont,t.captionfont,r),color:(0,o.convertColor)((0,o.pluck)(t.subcaptionfontcolor,t.captionfontcolor,l).replace(/^#? ([a-f0-9]+)/gi,"#$1")),fontSize:(0,o.pluckNumber)(t.subcaptionfontsize,(0,o.pluckNumber)(c((0,o.pluckNumber)(t.captionfontsize)-3,-1),s)+(0,o.pluckNumber)(e.subTitleFontSizeExtender,1))+"px",fontWeight:0===(0,o.pluckNumber)(t.subcaptionfontbold,e.subTitleFontWeight,t.captionfontbold)?o.NORMAL:o.BOLD},(0,o.setLineHeight)(a.style)},a.draw=function(){var e,t=this.getFromEnv("chart"),a=t.getFromEnv("animationManager"),i=t.getChildren("caption")[0],n=t.config,r=n.textDirection,l=t.getChildContainer().captionGroup,s=this.getGraphicalElement("subCaptionElement"),c=this.getFromEnv("toolTipController"),h=this.config,u=h.style,d=h.text,g=i.config.align;d?(e={text:h.text,fill:u.color,x:h.x,y:h.y,"text-anchor":g||"middle","vertical-align":"top",direction:r,visibility:i.config.drawCaption?o.visibleStr:o.hiddenStr},(s=this.addGraphicalElement("subCaptionElement",a.setAnimation({el:s||"text",attr:e,container:l,state:void 0,component:this,hookFn:function(){this.css(u)},label:"text"}))).css(u),n.showtooltip?c.enableToolTip(s,h.originalText):c.disableToolTip(s)):s&&this.removeGraphicalElement(s),n.savedSubCaption=s},a.setDimention=function(e){this.config.x=e.x,this.config.y=e.y},t}(r["default"]);t["default"]=h},415:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n={"initial.caption.subCaption":i(a(413))["default"]["initial.caption.caption"]};t["default"]=n},416:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(201)),o=i(a(198)),r=a(199),l=a(184),s=a(192),c=i(a(417)),h="BackgroundLoaded",u="BackgroundLoadError",d="none",g=function(e){var t=e.config;return{load:function(){var a=t.bgImageDisplayMode,i=t.bgImageVAlign,n=t.bgImageHAlign,o=t.bgImageScale,r=t.bgSWFAlpha,l=t.bgSWF,s=e.getGraphicalElement("backgroundImage")._.RefImg;e.getFromEnv("chart").fireChartInstanceEvent(h,{url:l,bgImageAlpha:r,bgImageDisplayMode:a,bgImageVAlign:i,bgImageHAlign:n,bgImageScale:o,imageheight:s.height,imagewidth:s.width})},error:function(a){var i=t.bgImageDisplayMode,n=t.bgImageVAlign,o=t.bgImageHAlign,r=t.bgImageScale,l=t.bgSWFAlpha,s=t.bgSWF;e.getFromEnv("chart").fireChartInstanceEvent(u,{url:s,bgImageAlpha:l,error:a,bgImageDisplayMode:i,bgImageVAlign:n,bgImageHAlign:o,bgImageScale:r})}}};(0,s.addDep)({name:"backgroundAnimation",type:"animationRule",extension:c["default"]});var p=function(e){function t(){var t;return(t=e.call(this)||this).config.handler=g((0,n["default"])(t)),t}(0,o["default"])(t,e);var a=t.prototype;return a.getName=function(){return"background"},a.getType=function(){return"background"},a._getBackgroundCosmetics=function(){var e=this.getFromEnv("chart-attrib"),t=this.getFromEnv("color-manager"),a=this.getFromEnv("chartConfig").is3D?l.chartPaletteStr.chart3D:l.chartPaletteStr.chart2D;return{FCcolor:{color:(0,l.pluck)(e.bgcolor,t.getColor(a.bgColor)),alpha:(0,l.pluck)(e.bgalpha,t.getColor(a.bgAlpha)),angle:(0,l.pluck)(e.bgangle,t.getColor(a.bgAngle)),ratio:(0,l.pluck)(e.bgratio,t.getColor(a.bgRatio))}}},a.configureAttributes=function(){var e,t,a,i=this.config,n=this.getFromEnv("chart-attrib"),o=this.getFromEnv("chartConfig"),r=o.is3D,s=this.getFromEnv("color-manager"),c=i.bgImageDisplayMode=(0,l.pluck)(n.bgimagedisplaymode,"none").toLowerCase();i.bgSWF=(0,l.pluck)(n.bgimage,n.bgswf),i.bgSWFAlpha=(0,l.pluckNumber)(n.bgimagealpha,n.bgswfalpha,100),e=i.showBorder=(0,l.pluckNumber)(n.showborder,o.showBorder,r?0:1),i.borderWidth=Math.max(e?(0,l.pluckNumber)(n.borderthickness,1):0,0),i.borderRadius=(0,l.pluckNumber)(n.borderradius,0),i.borderDashStyle=(0,l.pluckNumber)(n.borderdashed,0)?(0,l.getDashStyle)((0,l.pluckNumber)(n.borderdashlen,4),(0,l.pluckNumber)(n.borderdashgap,2),void 0):d,i.borderAlpha=(0,l.pluck)(n.borderalpha,r?"100":s&&s.getColor("borderAlpha")),i.borderColor=(0,l.convertColor)((0,l.pluck)(n.bordercolor,r?"#666666":s&&s.getColor("borderColor")),i.borderAlpha),i.bgImageVAlign=t=(0,l.getValidValue)(n.bgimagevalign,"").toLowerCase(),i.bgImageHAlign=a=(n.bgimagehalign||"").toLowerCase(),i.bgImageScale=(0,l.pluckNumber)(n.bgimagescale,100),i.containerBackgroundColor=(0,l.getContainerBackgroundColor)(this.getFromEnv("chartInstance")),i.backgroundColor=this._getBackgroundCosmetics(),"tile"===c||"fill"===c||"fit"===c?("top"!==t&&"middle"!==t&&"bottom"!==t&&(i.bgImageVAlign="middle"),"left"!==a&&"middle"!==a&&"right"!==a&&(i.bgImageHAlign="middle")):("top"!==t&&"middle"!==t&&"bottom"!==t&&(i.bgImageVAlign="top"),"left"!==a&&"middle"!==a&&"right"!==a&&(i.bgImageHAlign="left"))},a.draw=function(){var e,t,a,i,n,o,r=this.getFromEnv("paper"),s=this.getGraphicalElement("backgroundElement"),c=this.getGraphicalElement("borderElement"),h=this.config,u=this.getFromEnv("chart"),d=this.getFromEnv("chartConfig"),g=h.backgroundColor,p=this.getFromEnv("animationManager"),f=this.getGraphicalElement("backgroundImage"),m=h.bgSWF,v=u.getChildContainer("backgroundGroup"),b=d.width,x=d.height,y=h.borderWidth||0,C=h.borderRadius,k=h.borderDashStyle,S=h.borderColor,w=h.bgSWFAlpha,L=y+","+y+","+(b-2*y)+","+(x-2*y),A=h.bgImageDisplayMode,N=h.bgImageVAlign,F=h.bgImageHAlign,E=h.bgImageScale;r.canvas.style.backgroundColor=h.containerBackgroundColor,a={x:y,y:y,width:(o=b-2*y)<0?0:o,height:(n=x-2*y)>0?n:0,stroke:l.preDefStr.noneStr,fill:(0,l.toRaphaelColor)(g)},(e=p.setAnimation({el:s||"rect",attr:a,container:v,component:this,label:"rect"})).show(),s||this.addGraphicalElement("backgroundElement",e),a={x:y/2,y:y/2,width:(o=b-y)<0?0:o,height:(n=x-y)>0?n:0,stroke:S,"stroke-width":y,"stroke-dasharray":k,fill:l.preDefStr.noneStr,r:C||0},(t=p.setAnimation({el:c||"rect",attr:a,container:v,component:this,label:"rect"})).show(),c||this.addGraphicalElement("borderElement",t),m&&!this.getState("removed")?((i=p.setAnimation({el:f||"imagegrid",attr:{imagegrid:[A,N,F,E,y,b,x],src:m,opacity:.01*w,"clip-rect":L},container:v,component:this,label:"imagegrid"})).show(),f||(this.addGraphicalElement("backgroundImage",i),i.on("load",h.handler.load),i.on("error",h.handler.error))):f&&this.removeGraphicalElement(f)},t}(r.ComponentInterface);t["default"]=p},417:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]={"initial.background.background":function(){return{"rect.appearing":function(){return[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"initial"}]}}}}},418:function(e,t,a){"use strict";var i=a(178),n=a(182);t.__esModule=!0,t["default"]=void 0;var o=a(184),r=n(a(419)),l=i(a(321));function s(e,t){var a,i,n,r,l,s,c,h,d,g,p,f=u.stringConstants,m=t.replace(/\s/g,f.BLANK).toLowerCase(),v=[];if(m===f.BLANK||null==m)v=[e];else for(n=m.split(f.COMMASTRING),r=e.split(f.COMMASTRING),l=Math.max(n.length,r.length,1),s=n[0],c=r[0],g=/[\{\}]/gi,p=0;p<l;p++)h=(n[p]||s).replace(g,""),d=r[p]||c,"color"===h?v.push(d):"light"===h.substr(0,5)?(i=100-(i=-1===(a=h.indexOf("-"))?1:h.substr(a+1,h.length-a)),v.push((0,o.getLightColor)(d,i))):"dark"===h.substr(0,4)?(i=100-(i=-1===(a=h.indexOf("-"))?1:h.substr(a+1,h.length-a)),v.push((0,o.getDarkColor)(d,i))):v.push(h);return v}function c(e,t){var a,i,n=e.toString().split(u.stringConstants.COMMASTRING),r=[],l=100;for(i=0;i<t;i++)a=(0,o.pluckNumber)(n[i]),u.defined(a)&&(l=a),r[i]=l;return r.join()}function h(e,t){var a,i,n=e.split(u.stringConstants.COMMASTRING),o=[],r=0;for(i=0;i<t;i++)a=n[i],a=(a=isNaN(a)||void 0===a?0:Math.abs(Number(a)))>100?100:a,o[i]=a,r+=a;if(r=r>100?100:r,n.length<t)for(i=n.length;i<t;i++)o[i]=(100-r)/(t-n.length);return o[-1]=0,o.join()}var u=function(){function e(e){this.parseColorMix=s,this.parseAlphaList=c,this.parseRatioList=h,this.linkedItems={iapi:e},this.configure(),this.paletteColors=["AFD8F8","F6BD0F","8BBA00","FF8E46","008E8E","D64646","8E468E","588526","B3AA00","008ED6","9D080D","A186BE","CC6600","FDC689","ABA000","F26D7D","FFF200","0054A6","F7941C","CC3300","006600","663300","6DCFF6"]}var t=e.prototype;return t.configure=function(){var t=this,a=e.stringConstants,i=t.linkedItems.iapi,n=i.getFromEnv("dataSource").chart||{},s=t.paletteOptions=(0,o.extend2)((0,o.extend2)({},r),i.defaultPaletteOptions||{},!1,!0),c=t.themeEnabled=n.palettethemecolor;t.paletteIndex=(n.palette>0&&n.palette<6?n.palette:(0,o.pluckNumber)(i.paletteIndex,1))-1,t.iterator=0,t.paletteColors=s.paletteColors[t.themeEnabled?0:t.paletteIndex],e.defined(n.palettecolors)&&n.palettecolors!==a.BLANK&&(t.paletteColors=(0,l["default"])(n.palettecolors)?n.palettecolors.slice():n.palettecolors.split(/\s*\,\s*/)),t.paletteLen=t.paletteColors.length,t.useFlatColors=(0,o.pluckNumber)(n.useflatdataplotcolor,i.useFlatColor,0),c&&(t.paletteIndex=5,s.bgColor[5]=(0,o.getLightColor)(c,35)+a.COMMASTRING+(0,o.getLightColor)(c,10),s.bgAngle[5]=270,s.bgRatio[5]=a.BGRATIOSTRING,s.bgAlpha[5]="50,50",s.canvasBgColor[5]=a.COLOR_WHITE,s.canvasBgAngle[5]=0,s.canvasBgAlpha[5]=a.HUNDREDSTRING,s.canvasBgRatio[5]=a.BLANK,s.canvasBorderColor[5]=(0,o.getDarkColor)(c,80),s.canvasBorderAlpha[5]=100,s.showShadow[5]=1,s.divLineColor[5]=(0,o.getDarkColor)(c,20),s.divLineAlpha[5]=40,s.altHGridColor[5]=(0,o.getLightColor)(c,20),s.altHGridAlpha[5]=15,s.altVGridColor[5]=(0,o.getLightColor)(c,80),s.altVGridAlpha[5]=10,s.anchorBgColor[5]=a.COLOR_WHITE,s.toolTipBgColor[5]=a.COLOR_WHITE,s.toolTipBorderColor[5]=(0,o.getDarkColor)(c,80),s.baseFontColor[5]=c.split&&c.split(a.COMMASTRING)[0],s.borderColor[5]=(0,o.getDarkColor)(c,60),s.borderAlpha[5]=50,s.legendBgColor[5]=a.COLOR_WHITE,s.legendBorderColor[5]=(0,o.getDarkColor)(c,80),s.plotGradientColor[5]=a.COLOR_WHITE,s.plotBorderColor[5]=(0,o.getDarkColor)(c,85),s.plotFillColor[5]=(0,o.getDarkColor)(c,85),s.bgColor3D[5]=a.COLOR_WHITE,s.bgAlpha3D[5]=a.HUNDREDSTRING,s.bgAngle3D[5]=90,s.bgRatio3D[5]=a.BLANK,s.canvasBgColor3D[5]=(0,o.getLightColor)(c,20),s.canvasBaseColor3D[5]=(0,o.getLightColor)(c,40),s.divLineColor3D[5]=(0,o.getDarkColor)(c,20),s.divLineAlpha3D[5]=40,s.legendBgColor3D[5]=a.COLOR_WHITE,s.legendBorderColor3D[5]=(0,o.getDarkColor)(c,80),s.toolTipbgColor3D[5]=a.COLOR_WHITE,s.toolTipBorderColor3D[5]=(0,o.getDarkColor)(c,80),s.baseFontColor3D[5]=c.split&&c.split(a.COMMASTRING)[0],s.anchorBgColor3D[5]=a.COLOR_WHITE,s.tickColor&&(s.tickColor[5]=(0,o.getDarkColor)(c,90)),s.trendDarkColor&&(s.trendDarkColor[5]=(0,o.getDarkColor)(c,90)),s.trendLightColor&&(s.trendLightColor[5]=(0,o.getLightColor)(c,s.TrendLightShadeOffset)),s.msgLogColor&&(s.msgLogColor[5]=(0,o.getLightColor)(c,80)),s.dialColor&&(s.dialColor[5]=(0,o.getDarkColor)(c,95)+",FFFFFF,"+(0,o.getDarkColor)(c,95)),s.dialBorderColor&&(s.dialBorderColor[5]=(0,o.getDarkColor)(c,95)+",FFFFFF,"+(0,o.getDarkColor)(c,95)),s.pivotColor&&(s.pivotColor[5]=(0,o.getLightColor)(c,95)+",FFFFFF,"+(0,o.getLightColor)(c,95)),s.pivotBorderColor&&(s.pivotBorderColor[5]=(0,o.getDarkColor)(c,95)+",FFFFFF,"+(0,o.getDarkColor)(c,95)),s.pointerBorderColor&&(s.pointerBorderColor[5]=(0,o.getDarkColor)(c,75)),s.pointerBgColor&&(s.pointerBgColor[5]=(0,o.getDarkColor)(c,75)),s.thmBorderColor&&(s.thmBorderColor[5]=(0,o.getDarkColor)(c,90)),s.thmFillColor&&(s.thmFillColor[5]=(0,o.getLightColor)(c,55)),s.gaugeBorderColor&&(s.gaugeBorderColor[5]=(0,o.getDarkColor)(c,90)),s.gaugeFillColor&&(s.gaugeFillColor[5]=(0,o.getLightColor)(c,55)),s.cylFillColor&&(s.cylFillColor[5]=(0,o.getLightColor)(c,55)),s.periodColor&&(s.periodColor[5]=(0,o.getLightColor)(c,10)),s.winColor&&(s.winColor[5]="666666"),s.lossColor&&(s.lossColor[5]="CC0000"),s.drawColor&&(s.drawColor[5]="666666"),s.scorelessColor&&(s.scorelessColor[5]="FF0000"),s.gridColor&&(s.gridColor[5]=(0,o.getLightColor)(c,30)),s.categoryBgColor&&(s.categoryBgColor[5]=(0,o.getLightColor)(c,10)),s.dataTableBgColor&&(s.dataTableBgColor[5]=(0,o.getLightColor)(c,10)),s.gridResizeBarColor&&(s.gridResizeBarColor[5]=(0,o.getDarkColor)(c,90)),s.scrollBarColor&&(s.scrollBarColor[5]=(0,o.getLightColor)(c,50)))},t.getColor=function(e){return this.paletteOptions[e][this.paletteIndex]},t.getPlotColor=function(e){var t=this,a=t.paletteColors,i=t.useFlatColors?t.getColor("plotFillColor"):a[e%t.paletteLen];return i||(t.iterator===t.paletteLen&&(t.iterator=0),i=a[t.iterator],t.iterator+=1),i},e}();u.stringConstants={BLANK:"",COMMASTRING:",",BGRATIOSTRING:"0,100",COLOR_WHITE:"FFFFFF",HUNDREDSTRING:"100"},u.defined=function(e){return null!=e};var d=u;t["default"]=d},419:function(e,t,a){"use strict";t.__esModule=!0,t.anchorBgColor3D=t.baseFontColor3D=t.toolTipBorderColor3D=t.toolTipbgColor3D=t.legendBorderColor3D=t.legendBgColor3D=t.divLineAlpha3D=t.divLineColor3D=t.canvasBaseColor3D=t.canvasBgColor3D=t.bgRatio3D=t.bgAngle3D=t.bgAlpha3D=t.bgColor3D=t.plotFillColor=t.plotBorderColor=t.plotGradientColor=t.legendBorderColor=t.legendBgColor=t.borderAlpha=t.borderColor=t.baseFontColor=t.toolTipBorderColor=t.toolTipBgColor=t.anchorBgColor=t.altVGridAlpha=t.altVGridColor=t.altHGridAlpha=t.altHGridColor=t.divLineAlpha=t.divLineColor=t.showShadow=t.canvasBorderAlpha=t.canvasBorderColor=t.canvasBgRatio=t.canvasBgAlpha=t.canvasBgAngle=t.canvasBgColor=t.bgAlpha=t.bgRatio=t.bgAngle=t.bgColor=t.paletteColors=void 0;var i=["AFD8F8","F6BD0F","8BBA00","FF8E46","008E8E","D64646","8E468E","588526","B3AA00","008ED6","9D080D","A186BE","CC6600","FDC689","ABA000","F26D7D","FFF200","0054A6","F7941C","CC3300","006600","663300","6DCFF6"],n=[i,i,i,i,i],o=[270,270,270,270,270],r=["0,100","0,100","0,100","0,100","0,100"],l=["FFFFFF","FFFFFF","FFFFFF","FFFFFF","FFFFFF"],s=["100","100","100","100","100"],c=["","","","",""],h=[100,100,100,90,100],u=["FFFFFF","FFFFFF","FFFFFF","FFFFFF","FFFFFF"],d=["FFFFFF","FFFFFF","FFFFFF","FFFFFF","FFFFFF"],g=["FFFFFF","FFFFFF","FFFFFF","FFFFFF","FFFFFF"],p=["FFFFFF","FFFFFF","FFFFFF","FFFFFF","FFFFFF"],f=["333333","8A8A8A","FFFFFF","FFFFFF","FFFFFF"],m=["FFFFFF","FFFFFF","FFFFFF","FFFFFF","FFFFFF"],v=["100","100","100","100","100"],b=["","","","",""],x=[100,100,100,100,100],y=["FFFFFF","FFFFFF","FFFFFF","FFFFFF","FFFFFF"],C=["FFFFFF","FFFFFF","FFFFFF","FFFFFF","FFFFFF"];t.anchorBgColor3D=C,t.baseFontColor3D=["49563A","4A4A4A","49351D","48505A","681C09"],t.toolTipBorderColor3D=["49563A","666666","49351D","576373","681C09"],t.toolTipbgColor3D=y,t.legendBorderColor3D=["C6CFB8","C8C8C8","DFC29C","CFD5DA","FAD1C7"],t.legendBgColor3D=["F0F3ED","F3F3F3","F7F0E8","EEF0F2","FEF8F5"],t.divLineAlpha3D=x,t.divLineColor3D=["ACBB99","A4A4A4","BE9B6B","7C8995","D49B8B"],t.canvasBaseColor3D=["ACBB99","BCBCBD","C8A06C","96A4AF","FAC7BC"],t.canvasBgColor3D=["DDE3D5","D8D8D7","EEDFCA","CFD2D8","FEE8E0"],t.bgRatio3D=b,t.bgAngle3D=[90,90,90,90,90],t.bgAlpha3D=v,t.bgColor3D=m,t.plotFillColor=["767575","D8DCC5","99C4CD","DEC49C","FEC1D0"],t.plotBorderColor=f,t.plotGradientColor=p,t.legendBorderColor=["545454","545454","415D6F","845001","D55979"],t.legendBgColor=g,t.borderAlpha=[50,50,50,50,50],t.borderColor=["767575","545454","415D6F","845001","68001B"],t.baseFontColor=["555555","60634E","025B6A","A15E01","68001B"],t.toolTipBorderColor=["545454","545454","415D6F","845001","68001B"],t.toolTipBgColor=d,t.anchorBgColor=u,t.altVGridAlpha=[10,20,10,15,10],t.altVGridColor=["767575","D8DCC5","99C4CD","DEC49C","FEC1D0"],t.altHGridAlpha=[50,35,10,20,15],t.altHGridColor=["EEEEEE","D8DCC5","99C4CD","DEC49C","FEC1D0"],t.divLineAlpha=[40,45,65,40,30],t.divLineColor=["717170","7B7D6D","92CDD6","965B01","68001B"],t.showShadow=[0,1,1,1,1],t.canvasBorderAlpha=h,t.canvasBorderColor=["545454","545454","415D6F","845001","68001B"],t.canvasBgRatio=c,t.canvasBgAlpha=s,t.canvasBgAngle=[0,0,0,0,0],t.canvasBgColor=l,t.bgAlpha=["50,50","60,50","40,20","20,10","30,30"],t.bgRatio=r,t.bgAngle=o,t.bgColor=["CBCBCB,E9E9E9","CFD4BE,F3F5DD","C5DADD,EDFBFE","A86402,FDC16D","FF7CA0,FFD1DD"],t.paletteColors=n},420:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]={"*.*.*":{"*.disappearing":[{finalAttr:{opacity:0},slot:"initial",callback:function(){this.hide()}}]}}},421:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=function(e){var t,a,i=e.getChildren("canvas")[0],l=i.getChildren("axisRefVisualCartesian")[0],s={zoomable:!0,pannable:!0},c=e._feedAxesRawData(),h=function(e){var t=e.sender;l.addexplicitDrawItems(t.getId(),t),l.asyncDraw()};(0,n.componentFactory)(e,o["default"],"yAxis",1,c.yAxisConf),(0,n.componentFactory)(e,r["default"],"xAxis",1,c.xAxisConf),t=e.getChildren("yAxis")[0],a=e.getChildren("xAxis")[0],t.setLinkedItem("canvas",i),a.setLinkedItem("canvas",i),l.setLinkedItem(t.getId(),t),l.setLinkedItem(a.getId(),a),l.addExtEventListener("visiblerangeset",h,a),l.addExtEventListener("visiblerangeset",h,t),i.attachAxis(a,!1,e.zoomX?s:{}),i.attachAxis(t,!0,e.zoomY?s:{}),e._setCategories()};var n=a(184),o=i(a(422)),r=i(a(470))},422:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(423)),r=i(a(426)),l=i(a(449)),s=i(a(450)),c=i(a(451)),h=a(458),u=a(184),d=function(e){function t(){var t;return(t=e.call(this)||this).config.scale=new r["default"],t}(0,n["default"])(t,e);var a=t.prototype;return a.getName=function(){return"numeric"},a.generateTicks=function(){var e,t,a,i=this.getScale(),n=this.config,o=n.numDivLines+1,r=i.getDomain(),c=r[0],h=r[1],u=n.axisRange,d=u.min,g=u.max,p=n.dataLimit;return c===d&&h===g?((0,s["default"])(p.min,p.max,i,n),n.ticks):(e=i.ticks(o),t=Math.abs(e[1]-e[0]),c===d&&-1===e.indexOf(d)&&e.unshift(d),h===g&&-1===e.indexOf(g)&&e.push(g),(a=Math.abs(d%t))&&(d-=a),(a=Math.abs(g%t))&&(g-=a),n._allTicks=(0,l["default"])(d,g,t).concat(g),u.tickInterval=t,e)},a.setTickValues=function(e){this.config.userTicks=e||[],this.config.tickValues={tickValue:[]}},a._parseTickValues=function(e){var t,a,i,n,o=this.getFromEnv("chart"),r=this.config,l=e&&e.length,s=0;for(r.tickValues={},t=r.tickValues.tickValue=[],i=0;i<l;i+=1)if(a=(0,u.extend2)({},e[i]),n=Number(a.x),!a.vline){if((0,h.extractStyleInfo)(a,o),!n&&0!==n)continue;a.x=n,r.irregularCatAxis=!0,t.push(a),t[s].label=(0,u.parseUnsafeString)(t[s].label),s+=1}r.oriCatLen=s},a.calculateTicksOnLabelMode=function(){var e,t,a,i,n,o,r,l=this.config,s=l.xAxisLabelMode,c=Object.assign([],l.userTicks),h=this.getFromEnv("number-formatter");if("mixed"===s||"auto"===s){if(t=[],e=h.xAxis,"mixed"===s)for(a=0,n=c.length;a<n;a+=1)t[c[a].x||c[a].y||a]=!0;else c=[];for(r=this.getAxisConfig(),o=l.ticks,i=0;i<o.length;++i)t[a=o[i]]||c.push({label:u.BLANKSTRING+e.call(h,a),x:a,showverticalline:0===a?r.showZeroPlane:1,isNumeric:!0,linecolor:0===a?r.zeroPlaneColor:r.divLineColor,linealpha:0===a?r.zeroPlaneAlpha:r.divLineAlpha,linethickness:0===a?r.zeroPlaneThickness:r.divLineThickness,linedashed:r.divLineIsDashed,linedashLen:r.divLineDashLen,linedashgap:r.divLineDashGap})}this._parseTickValues(c)},a.getInterval=function(){return this.config.axisRange.tickInterval},a._setAxisRange=function(e){var t,a,i,n=e.min,r=e.max,l=this.config,c=l.axisRange,h=l.dataLimit,u=l.dependentInfo;if(!(n>r))if(h.min===n&&h.max===r||(a=!0),void 0===l.visibleMin||l.setPadding||a){var d=(0,o["default"])([n,r,h.min,h.max]);if(n=d[0],r=d[1],h.min=n,h.max=r,this.fireEvent("dataLimitSet",Object.assign({},h)),u){if(u.limit){if(!(t=u.dataLimit))return;var g=(0,o["default"])([n,r,t.min,t.max]);n=g[0],r=g[1],l.isDataLimitSet=!0}if(u.count&&void 0===u.numDivLines)return}(0,s["default"])(n,r,this.getScale(),l),i=l.isZeroTickForced?3:2,this.fireEvent("divlinesSet",l.ticks.length-i),l.tickValues&&this.calculateTicksOnLabelMode(),this.setVisibleConfig(c.min,c.max)}else l.setPadding=!1},a.getTicks=function(){return this.config.ticks},t}(c["default"]);d.prototype.setDataLimit=h.setDataLimit;var g=d;t["default"]=g},423:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(424)),o=i(a(425)),r=function(e,t){return void 0===e&&(e=[]),[(0,n["default"])(e,t),(0,o["default"])(e,t)]};t["default"]=r},424:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(e,t){void 0===e&&(e=[]);var a,i,n=e.length,o=-1;if("function"==typeof t){for(;++o<n;)if(null!=(a=t(e[o],o,e))&&a<=a)for(i=a;++o<n;)null!=(a=t(e[o],o,e))&&a<i&&(i=a)}else for(;++o<n;)if(null!=(a=e[o])&&a<=a)for(i=a;++o<n;)null!=(a=e[o])&&a<i&&(i=a);return i};t["default"]=i},425:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(e,t){void 0===e&&(e=[]);var a,i,n=e.length,o=-1;if("function"==typeof t){for(;++o<n;)if(null!=(a=t(e[o],o,e))&&a>=a)for(i=a;++o<n;)null!=(a=t(e[o],o,e))&&a>i&&(i=a)}else for(;++o<n;)if(null!=(a=e[o])&&a>=a)for(i=a;++o<n;)null!=(a=e[o])&&a>i&&(i=a);return i};t["default"]=i},426:function(e,t,a){"use strict";var i=a(182),n=a(178);t.__esModule=!0,t["default"]=void 0;var o=n(a(198)),r=i(a(427)),l=i(a(444)),s=n(a(429)),c=a(445),h=function(e){function t(){return e.call(this,r.deInterpolateLinear,s["default"])||this}(0,o["default"])(t,e);var a=t.prototype;return a.ticks=function(e){void 0===e&&(e=7);var t=this.getDomain();return this.majorTicks=(0,l["default"])(t[0],t[t.length-1],e)},a.tickFormat=function(e,t){return(0,c.tickFormat)(this.getDomain(),e,t,this._localeConverter)},a.nice=function(e){void 0===e&&(e=7);var t,a=this.getDomain(),i=0,n=a.length-1,o=a[i],r=a[n];return r<o&&(t=o,o=r,r=t,t=i,i=n,n=t),(t=(0,l.tickIncrement)(o,r,e))>0?(o=Math.floor(o/t)*t,r=Math.ceil(r/t)*t,t=(0,l.tickIncrement)(o,r,e)):t<0&&(o=Math.ceil(o*t)/t,r=Math.floor(r*t)/t,t=(0,l.tickIncrement)(o,r,e)),t>0?(a[i]=Math.floor(o/t)*t,a[n]=Math.ceil(r/t)*t,this.setDomain(a)):t<0&&(a[i]=Math.ceil(o*t)/t,a[n]=Math.floor(r*t)/t,this.setDomain(a)),this},a.copy=function(){return(0,r.copyScale)(this,new t)},a.minorTicks=function(e,t){void 0===e&&(e=4),void 0===t&&(t=this.majorTicks||this.ticks());var a,i,n,o,r=t.length,l=t[1]-t[0],s=[];for(o=0;o<r-1;++o)for(n=t[o],i=l/(Number(e)+1),a=1;a<=e;a+=1)s.push(n+i*a);return s},a.contextTicks=function(){return this.contextTicksArr||[]},a.getType=function(){return"linear"},t}(r["default"]);t["default"]=h},427:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t.copyScale=function(e,t){return t.setInterpolate(e.getInterpolate()).setClamp(e.getClamp()).setDomain(e.getDomain()).setRange(e.getRange())},t.deInterpolateLinear=d,t.bimap=u,t["default"]=void 0;var n=i(a(428)),o=i(a(431)),r=i(a(430)),l=i(a(432)),s=a(433),c=0,h=[0,1];function u(e,t,a,i){var n,o;return e[0]>e[1]?(n=a(e[1],e[0]),o=i(t[1],t[0])):(n=a(e[0],e[1]),o=i(t[0],t[1])),function(e){return o(n(e))}}function d(e,t){var a=Number(e),i=Number(t)-a;return i?function(e){return(e-a)/i}:(0,r["default"])(i)}var g=function(){function e(e,t){this.domain=h,this.range=h,this.deInterpolate=e,this.reInterpolate=t,this.interpolate=n["default"],this.clamp=!1,this.input=null,this.output=null,this.locale=l["default"],this._localeConverter=new s.NumberConverter(l["default"]),this._rescale(),this._id="scale_"+c++}var t=e.prototype;return t._rescale=function(){return this.input=null,this.output=null,this},t.setDomain=function(e){return void 0===e&&(e=h),this.domain=e.map(Number),this._rescale()},t.getDomain=function(){return this.domain.slice()},t.setRange=function(e){return void 0===e&&(e=h),this.range=e.slice(),this._rescale()},t.getRange=function(){return this.range.slice()},t.setInterpolate=function(e){return void 0===e&&(e=n["default"]),this.interpolate=e,this._rescale()},t.getInterpolate=function(){return this.interpolate},t.setClamp=function(e){return void 0===e&&(e=!1),this.clamp=!!e,this._rescale()},t.getClamp=function(){return this.clamp},t.rangeRound=function(e){return void 0===e&&(e=h),this.range=e.slice(),this.interpolate=o["default"],this._rescale()},t.getRangeValue=function(e){var t=null!==e?e:void 0,a=this.getClamp()?function(e){return function(t,a){var i=Number(t),n=Number(a),o=e(i,n);return function(e){return e<=i?0:e>=n?1:o(e)}}}(this.deInterpolate):this.deInterpolate;return this.output||(this.output=u(this.getDomain(),this.getRange(),a,this.interpolate)),this.output(Number(t))},t.getDomainValue=function(e){var t=this.getClamp()?function(e){return function(t,a){var i=Number(t),n=Number(a),o=e(i,n);return function(e){return e<=0?i:e>=1?n:o(e)}}}(this.reInterpolate):this.reInterpolate;return this.input||(this.input=u(this.getRange(),this.getDomain(),d,t)),this.input(Number(e))},t.setLocale=function(e){return void 0===e&&(e=l["default"]),this.locale=e,this._localeConverter=new s.NumberConverter(e),this},t.getLocale=function(){return this.locale},t.getId=function(){return this._id},e}();t["default"]=g},428:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(429)),o=i(a(430));function r(e){return null!=e}var l=function(e,t){var a=n["default"];return r(t)&&r(e)&&"boolean"!=typeof t?a(e,t):(0,o["default"])(t)};t["default"]=l},429:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(e,t){var a=Number(e),i=Number(t)-a;return function(e){return i*e+a}};t["default"]=i},430:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(e){return function(){return e}};t["default"]=i},431:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(e,t){var a=Number(e),i=Number(t)-a;return function(e){return Math.round(i*e+a)}};t["default"]=i},432:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i={decimal:".",thousands:",",grouping:[3],prefix:"$",suffix:""};t["default"]=i},433:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=t.NumberConverter=void 0;var n=i(a(432)),o=i(a(434)),r=i(a(436)),l=i(a(442)),s=i(a(443)),c=i(a(437)),h=function(e){return e},u=function(){function e(e){this.localeInfo={group:e.grouping&&e.thousands?(0,l["default"])(e.grouping,e.thousands):h,prefix:e.prefix,suffix:e.suffix,decimal:e.decimal,numerals:e.numerals?(0,s["default"])(e.numerals):h,percent:e.percent||"%",prefixes:e.prefixes||["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"]}}var t=e.prototype;return t.formatter=function(e){return new r["default"](e,this.localeInfo)},t.formatPrefix=function(e,t){var a=new c["default"](e);a.type="f";var i=this.localeInfo.prefix,n=this.localeInfo.suffix,l=Object.assign({},this.localeInfo,{prefix:"",suffix:""}),s=new r["default"](a,l),h=3*Math.max(-8,Math.min(8,Math.floor((0,o["default"])(t)/3))),u=Math.pow(10,-h),d=this.localeInfo.prefixes[8+h/3];return{format:function(e){return i+s.format(u*e)+d+n},setCustomPrefix:function(e){return s.setCustomPrefix(e),this},getCustomPrefix:function(e){return s.getCustomPrefix(e)},setCustomSuffix:function(e){return s.setCustomSuffix(e),this},getCustomSuffix:function(e){return s.getCustomSuffix(e)}}},e}();t.NumberConverter=u;var d=new u(n["default"]);t["default"]=d},434:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(435)),o=function(e){var t=(0,n["default"])(Math.abs(e));return t?t[1]:NaN};t["default"]=o},435:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(e,t){var a,i,n;return(a=(n=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0?null:[(i=n.slice(0,a)).length>1?i[0]+i.slice(2):i,+n.slice(a+1)]};t["default"]=i},436:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(437)),o=i(a(438)),r=i(a(441)),l=a(439),s="=",c="g",h="",u="0",d=function(e){return null==e},g=function(){function e(e,t){this.specifier=new n["default"](e),this.localeInfo=t;var a=this.specifier.symbol;this.fill=this.specifier.fill,this.align=this.specifier.align,this.sign=this.specifier.sign,this.zero=this.specifier.zero,this.width=this.specifier.width,this.comma=this.specifier.comma,this.precision=this.specifier.precision,this.trim=this.specifier.trim,this.type=this.specifier.type,"n"===this.type?(this.comma=!0,this.type=c):o["default"][this.type]||(d(this.precision)&&(this.precision=12),this.trim=!0,this.type=c),(this.zero||"0"===this.fill&&"="===this.align)&&(this.zero=!0,this.fill=u,this.align=s),"$"===a?this.prefix=this.localeInfo.prefix:"#"===a&&/[boxX]/.test(this.type)?this.prefix="0"+this.type.toLowerCase():this.prefix=h,"$"===a?this.suffix=this.localeInfo.suffix:/[%p]/.test(this.type)?this.suffix=this.localeInfo.percent:this.suffix=h,this.formatType=o["default"][this.type],this.mayHaveSuffix=/[defgprs%]/.test(this.type),d(this.precision)?this.precision=6:/[gprs]/.test(this.type)?this.precision=Math.max(1,Math.min(21,this.precision)):this.precision=Math.max(0,Math.min(20,this.precision)),this.setCustomPrefix(""),this.setCustomSuffix("")}var t=e.prototype;return t.format=function(e){var t,a,i,n,o,s,c=this.prefix,u=this.suffix,d=this.formatType,g=e;if("c"===this.type)u=d(g)+u,g=h;else if(t=(g=+g)<0,g=d(Math.abs(g),this.precision),this.trim&&(g=(0,r["default"])(g)),t&&0==+g&&(t=!1),c=t?("("===this.sign?this.sign:"-")+c:"-"===this.sign||"("===this.sign?""+c:this.sign+c,u="s"===this.type?this.localeInfo.prefixes[8+l.prefixExponent/3]+u:""+u,u+=t&&"("===this.sign?")":"",this.mayHaveSuffix)for(n=-1,o=g.length;++n<o;)if((s=g.charCodeAt(n))<48||s>57){u=(46===s?this.localeInfo.decimal+g.slice(n+1):g.slice(n))+u,g=g.slice(0,n);break}switch(this.comma&&!this.zero&&(g=this.localeInfo.group(g,Infinity)),i=(a=c.length+g.length+u.length)<this.width?new Array(this.width-a+1).join(this.fill):"",this.comma&&this.zero&&(g=this.localeInfo.group(i+g,i.length?this.width-u.length:Infinity),i=h),this.align){case"<":g=c+g+u+i;break;case"=":g=c+i+g+u;break;case"^":a=i.length/2,g=i.slice(0,a)+c+g+u+i.slice(a);break;default:g=i+c+g+u}return this.getCustomPrefix()+this.localeInfo.numerals(g)+this.getCustomSuffix()},t.setCustomPrefix=function(e){return this._customPrefix=e+"",this},t.getCustomPrefix=function(){return this._customPrefix},t.setCustomSuffix=function(e){return this._customSuffix=e+"",this},t.getCustomSuffix=function(){return this._customSuffix},t.toString=function(){return this.specifier.toString()},e}();t["default"]=g},437:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=/^(?:(.)?([<>=^]))?([+\-\( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i,n=function(e){return null==e},o=function(){function e(e){var t=i.exec(e);if(!t)throw new Error("Invalid number format specifier: "+e);this.fill=t[1]||" ",this.align=t[2]||">",this.sign=t[3]||"-",this.symbol=t[4]||"",this.zero=Boolean(t[5]),this.width=t[6]&&Number(t[6]),this.comma=Boolean(t[7]),this.precision=t[8]&&Number(t[8].slice(1)),this.trim=Boolean(t[9]),this.type=t[10]||""}return e.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(n(this.width)?"":Math.max(1,0|this.width))+(this.comma?",":"")+(n(this.precision)?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type},e}();t["default"]=o},438:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(439)),o=i(a(440)),r={"%":function(e,t){return(100*e).toFixed(t)},b:function(e){return Math.round(e).toString(2)},c:function(e){return e+""},d:function(e){return Math.round(e).toString(10)},e:function(e,t){return e.toExponential(t)},f:function(e,t){return e.toFixed(t)},g:function(e,t){return e.toPrecision(t)},o:function(e){return Math.round(e).toString(8)},p:function(e,t){return(0,o["default"])(100*e,t)},r:o["default"],s:n["default"],X:function(e){return Math.round(e).toString(16).toUpperCase()},x:function(e){return Math.round(e).toString(16)}};t["default"]=r},439:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=t.prefixExponent=void 0;var n,o=i(a(435));t.prefixExponent=n;var r=function(e,a){var i,r,l,s,c=(0,o["default"])(e,a);return c?(i=c[0],(l=(r=c[1])-(t.prefixExponent=n=3*Math.max(-8,Math.min(8,Math.floor(r/3))))+1)===(s=i.length)?i:l>s?i+new Array(l-s+1).join("0"):l>0?i.slice(0,l)+"."+i.slice(l):"0."+new Array(1-l).join("0")+(0,o["default"])(e,Math.max(0,a+l-1))[0]):e+""};t["default"]=r},440:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(435)),o=function(e,t){var a,i,o=(0,n["default"])(e,t);return o?(a=o[0],i=o[1],Number(i)<0?"0."+new Array(-i).join("0")+a:a.length>i+1?a.slice(0,i+1)+"."+a.slice(i+1):a+new Array(i-a.length+2).join("0")):e+""};t["default"]=o},441:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(e){for(var t,a=e.length,i=1,n=-1;i<a;++i)if("."===e[i])n=t=i;else if("0"===e[i])0===n&&(n=i),t=i;else if(n>0){if(!+e[i])break;n=0}return n>0?e.slice(0,n)+e.slice(t+1):e};t["default"]=i},442:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(e,t){return function(a,i){for(var n=a.length,o=[],r=0,l=e[0],s=0;n>0&&l>0&&(s+l+1>i&&(l=Math.max(1,i-s)),o.push(a.substring(n-=l,n+l)),!((s+=l+1)>i));)l=e[r=(r+1)%e.length];return o.reverse().join(t)}};t["default"]=i},443:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(e){return function(t){return t.replace(/[0-9]/g,(function(t){return e[+t]}))}};t["default"]=i},444:function(e,t,a){"use strict";t.__esModule=!0,t.tickIncrement=l,t.tickStep=function(e,t,a){void 0===e&&(e=0);void 0===t&&(t=1);void 0===a&&(a=7);var r=Math.abs(t-e)/Math.max(0,a),l=Math.floor(Math.log(r)/Math.LN10),s=Math.pow(10,l),c=r/s;c>=i?s*=10:c>=n?s*=5:c>=o&&(s*=2);return t<e?-s:s},t["default"]=void 0;var i=Math.sqrt(50),n=Math.sqrt(10),o=Math.sqrt(2);function r(e){return e>=i?10:e>=n?5:e>=o?2:1}function l(e,t,a){void 0===e&&(e=0),void 0===t&&(t=1),void 0===a&&(a=7);var i=(t-e)/Math.max(0,a),n=Math.floor(Math.log(i)/Math.LN10),o=i/Math.pow(10,n);return n>=0?r(o)*Math.pow(10,n):-Math.pow(10,-n)/r(o)}var s=function(e,t,a){void 0===e&&(e=0),void 0===t&&(t=1),void 0===a&&(a=7);var i,n,o,r=-1,s=[],c=+t,h=+e,u=+a;if(h===c&&u>0)return[h];if((i=c<h)&&(n=h,h=c,c=n),0===(o=l(h,c,u))||!isFinite(o))return[];if(o>0)for(h=Math.ceil(h/o),c=Math.floor(c/o),n=Math.ceil(c-h+1);++r<n;)s[r]=(h+r)*o;else for(h=Math.floor(h*o),c=Math.ceil(c*o),n=Math.ceil(h-c+1);++r<n;)s[r]=(h-r)/o;return i&&s.reverse(),s};t["default"]=s},445:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t.tickIncrement=p,t.tickStep=f,t.tickFormat=function(e,t,a,i){void 0===i&&(i=n["default"]);var c,h,u,g=e[0],p=e[e.length-1],m=f(g,p,d(t)?7:t);switch((u=new l["default"](d(a)?",f":a)).type){case"s":return h=Math.max(Math.abs(g),Math.abs(p)),c=(0,s["default"])(m,h),d(u.precision)&&!isNaN(c)&&(u.precision=c),function(e){return i.formatPrefix(u,h).format(e)};case"":case"e":case"g":case"p":case"r":c=(0,r["default"])(m,Math.max(Math.abs(g),Math.abs(p))),d(u.precision)&&!isNaN(c)&&(u.precision=c-("e"===u.type));break;case"f":case"%":c=(0,o["default"])(m),d(u.precision)&&!isNaN(c)&&(u.precision=c-2*("%"===u.type))}return function(e){return i.formatter(u).format(e)}},t["default"]=void 0;var n=i(a(433)),o=i(a(446)),r=i(a(447)),l=i(a(437)),s=i(a(448)),c=Math.sqrt(50),h=Math.sqrt(10),u=Math.sqrt(2),d=function(e){return null==e};function g(e){return e>=c?10:e>=h?5:e>=u?2:1}function p(e,t,a){void 0===e&&(e=0),void 0===t&&(t=1),void 0===a&&(a=7);var i=(t-e)/Math.max(0,a),n=Math.floor(Math.log(i)/Math.LN10),o=i/Math.pow(10,n);return n>=0?g(o)*Math.pow(10,n):-Math.pow(10,-n)/g(o)}function f(e,t,a){void 0===e&&(e=0),void 0===t&&(t=1),void 0===a&&(a=7);var i=Math.abs(t-e)/Math.max(0,a),n=Math.floor(Math.log(i)/Math.LN10),o=Math.pow(10,n),r=i/o;return r>=c?o*=10:r>=h?o*=5:r>=u&&(o*=2),t<e?-o:o}var m=function(e,t,a){void 0===e&&(e=0),void 0===t&&(t=1),void 0===a&&(a=7);var i,n,o,r,l,s,c=-1,h=[];if(s=+a,(r=+e)===(l=+t)&&s>0)return[r];if((i=l<r)&&(n=r,r=l,l=n),0===(o=p(r,l,s))||!isFinite(o))return[];if(o>0)for(r=Math.ceil(r/o),l=Math.floor(l/o),n=Math.ceil(l-r+1);++c<n;)h[c]=(r+c)*o;else for(r=Math.floor(r*o),l=Math.ceil(l*o),n=Math.ceil(r-l+1);++c<n;)h[c]=(r-c)/o;return i&&h.reverse(),h};t["default"]=m},446:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(434)),o=function(e){return Math.max(0,-(0,n["default"])(Math.abs(e)))};t["default"]=o},447:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(434)),o=function(e,t){var a=Math.abs(e),i=Math.abs(t)-a;return Math.max(0,(0,n["default"])(i)-(0,n["default"])(a))+1};t["default"]=o},448:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(434)),o=function(e,t){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor((0,n["default"])(t)/3)))-(0,n["default"])(Math.abs(e)))};t["default"]=o},449:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(){var e,t,a,i,n,o=[];if(arguments.length>2?(e=arguments.length<=0?undefined:arguments[0],t=arguments.length<=1?undefined:arguments[1],a=arguments.length<=2?undefined:arguments[2]):1===arguments.length?(e=0,t=arguments.length<=0?undefined:arguments[0],a=1):(e=arguments.length<=0?undefined:arguments[0],t=arguments.length<=1?undefined:arguments[1],a=1),i=Math.floor(Math.max(0,Math.ceil((t-e)/a))),isFinite(i))for(n=0;n<i;++n)o.push(a*n+e);return o};t["default"]=i},450:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(449)),o=a(427),r=i(a(429)),l=i(a(424)),s=a(184),c=(0,o.bimap)([2,100],[80,20],o.deInterpolateLinear,r["default"]),h=function(e,t,a,i){var o,r,h,u,d,g,p,f,m,v,b,x,y,C,k,S,w,L,A,N,F,E,_,T=t,P=e,D=i.isPercent?0:i.axisMinValue,I=i.isPercent?100:i.axisMaxValue,M=!!i.adjustDiv,O=i.numDivLines,R=!!i.setAdaptiveMin,V=i.axisRange,B=Math.pow(2,-24),G=!0,H=.2,z=!0,W=i.xAxisLabelMode,j=i.dependentInfo;if(o=i.majorTMNumber!==s.UNDEF?Math.max(0,O-2):O,j&&j.count&&!j.limit&&j.numDivLines!==s.UNDEF&&(o=O=j.numDivLines,M=!1),r=o+1,P===s.UNDEF&&T===s.UNDEF&&(P=0,T=1,G=!1),T===P&&0===T&&(T=1,G=!1),"categories"!==W&&"mixed"!==W||(G=!1),G?(u=Math.floor(Math.log(Math.abs(T))/Math.LN10),h=Math.floor(Math.log(Math.abs(P))/Math.LN10),d=Math.max(h,u),g=Math.pow(10,d),Math.abs(T)/g<2&&Math.abs(P)/g<2&&(d--,g=Math.pow(10,d)),x=Math.floor(Math.log(T-P)/Math.LN10),y=Math.pow(10,x),T-P>0&&g/y>=10&&(g=y,d=x),f=(Math.floor(T/g)+1)*g,m=P<0?(Math.floor(Math.abs(P/g))+1)*g*-1:R?(m=Math.floor(Math.abs(P/g)-1)*g)<0?0:m:0,!R&&T<=0&&(f=0),v=!(!I&&0!==I),b=!(!D&&0!==D),i.freezeLimit||(!1===v||!0===v&&Number(I)<T&&T-Number(I)>B?(T=f,v=!1):T=Number(I),!1===b||!0===b&&Number(D)>P&&Number(D)-P>B?(P=m,b=!1):P=Number(D))):(b=!(!D&&0!==D),!0===(v=!(!I&&0!==I))&&(Number(I)>=T||t===s.UNDEF)?T=Number(I):v=!1,!0===b&&(Number(D)<=P||e===s.UNDEF)?P=Number(D):b=!1),b&&!v&&t===s.UNDEF&&(T=P<0?0:P+1),v&&!b&&e===s.UNDEF&&(P=T>0?0:T-1),w=[P,T],a.setDomain(w),M&&!i.freezeLimit)v||b?(F=(C=(N=function(e,t,a,i,n,o){for(var r,l,c,h,u,d,g,p,f,m,v,b,x=t-e,y=e,C=Math.ceil(a*(1-i)),k=Math.floor(a*(1+i)),S=[],w=-1,L=function(e){return function(e){var t,a,i=[10,5,2,1],n=i.length;for(t=0;t<n;++t)if(e%i[t]%1==0){a=!0;break}return a}(r=x/(e+1))?e:s.UNDEF};!(m&&v||((b=a+ ++w)>=k&&(v=!0),h=L(b))||((b=a-w)<=C&&(m=!0),h=L(b))););for(e<0&&t>0&&n&&(c=!0),l=0;l<h;l++)c&&y<0&&y+r>0&&(S.push(0),u=!0),y+=r,S.push(y);return h===s.UNDEF&&n&&((g=(S=o.ticks(a)).length)>1?(d=.2*(r=Math.abs(S[0]-S[1])),p=S[0],f=S[g-1],Math.abs(e-p)<=d&&0!==p&&S.shift(),Math.abs(t-f)<=d&&0!==f&&S.pop(),0!==p&&0!==f||(u=!0)):0===S[0]&&(u=!0)),c&&!u&&-1===S.indexOf(0)&&(e<0&&S[0]>0?S=[0].concat(S):t>0&&S[S.length-1]<0?S.push(0):S=[0],u=!0),{output:S,interval:r,isZeroTickForced:u}}(P,T,o,H=(_=o)>=100?.2:_<=1?0:c(_)/100,i.forceZeroTick,a)).output).length,E=N.isZeroTickForced,Math.abs((o-F+(E?1:0))/o)>H?p=(T-P)/r:(p=0===F||1===F&&E?T-P:N.interval,i.isZeroTickForced=E,i.ticks=E&&0===P?C.concat(T):[P].concat(C,T),z=!1)):(i.ticks=o?a.nice(r).ticks(r):a.getDomain(),p=Math.abs(i.ticks[1]-i.ticks[0]),z=!1);else if(v||b||i.freezeLimit)p=(T-P)/r;else{var U=a.nice(r).getDomain();((S=(k=U[0])+(p=function(e){if(e<=1)return 1;var t=[],a=Math.ceil(e);return t[2]=a%2,t[5]=a%5,t[10]=a%10,(0,l["default"])(t)+a}(g=((S=U[1])-k)/r))*r)-T)/T>H||(k-P)/P>H?(a.setDomain([P,T]),p=(T-P)/r):(P=k,T=S,a.setDomain([P,T]))}z&&(P<0&&T>0&&i.forceZeroTick?(0===(A=(L=(0,n["default"])(P,0,p))[L.length-1]+p)?A+=p:i.isZeroTickForced=!0,i.ticks=L.concat(0,(0,n["default"])(A,T,p),T)):i.ticks=(0,n["default"])(P,T,p).concat(T));var q=a.getDomain();P=q[0],T=q[1],i._allTicks=i.ticks.slice(),V.tickInterval=p,V.min=P,V.max=T};t["default"]=h},451:function(e,t,a){"use strict";var i=a(182),n=a(178);t.__esModule=!0,t["default"]=void 0;var o=n(a(198)),r=i(a(452)),l=a(184),s=a(458),c=n(a(425)),h=function(e){function t(){return e.apply(this,arguments)||this}(0,o["default"])(t,e);var a=t.prototype;return a._getHMaxLabelDimention=function(e){var t,a,i,n,o,s,h,u,d,g,p,f,m,v,b,x,y,C,k,S,w,L,A,N,F,E,_,T,P,D,I,M,O,R,V,B=this,G=e,H=B.config,z=B.getFromEnv("chart"),W=z.config,j=z.getFromEnv("smartLabel"),U=H.axisRange,q=H.labels,Y=H.labelDisplay,X=H.slantLabel,K=q.style,Z=H.maxLabelHeight,J=B.getInterval(),$=H.staggerLines,Q=H.labelStep,ee=W.canvasLeft,te=W.canvasRight,ae=$-2,ie=U.max,ne=U.min,oe=0,re=H.tickValues&&H.tickValues.tickValue,le=re&&re.length,se=z.distributedColumns,ce=0,he={text:l.UNDEF,width:0,style:l.UNDEF},ue=0,de=4,ge=l.stubFN,pe=l.stubFN,fe=l.stubFN,me={},ve=0,be=!1,xe=0,ye=!1,Ce=Number.POSITIVE_INFINITY,ke=H.ticks,Se=Number.POSITIVE_INFINITY;if(se)for(x=0;x<le;x++)re[x+1]?re[x].x&&(re[x].plotWidth=B.getPixel(re[x+1].x-re[x].x)-B.getPixel(0)):re[x].plotWidth=B.getPixel(W.canvasRight-re[x].x)-B.getPixel(0);if(H.tickValues&&(!re||0===re.length))return{width:0,height:0};function we(e,t){switch(t.toLowerCase()){case"left":return Math.abs(B._getCustomPixel(e));case"right":return Math.abs(W.width-B._getCustomPixel(e))}}if("rotate"===Y&&(H.rotateLabels=1),H.tickValues||(H.irregularCatAxis=!1),H.sWidthAdjstFactor=a=0===ae?1:1===ae?1.5:ae,j.useEllipsesOnOverflow(W.useEllipsesWhenOverflow),j.setStyle({fontSize:K.fontSize,fontFamily:K.fontFamily,lineHeight:K.lineHeight,fontWeight:K.fontWeight}),H.irregularCatAxis){for(re.sort((function(e,t){return e.x-t.x})),x=0,ce=re.length;x<ce;x++){if(o=re[x],void 0!==L){if(Se=Math.abs(o.x-L),N=Math.abs(B._getCustomPixel(ne)-B._getCustomPixel(ne+Se)),j.setStyle(Object.assign({},o.style)),N<1.2*j.getOriSize("W").width){o.label=l.BLANKSTRING,Se=Ce;continue}F._individualIWR=N,o._individualIWL=N,Ce=Se}F=o,L=o.x}for(Se===Number.POSITIVE_INFINITY&&(Se=Math.floor(Math.min(o.x,ie-o.x)),Se=Math.max(Se,4)),x=0,ce=re.length;x<ce;x++)o=re[x],x||(o._individualIWL=Infinity),x===ce-1&&(o._individualIWR=Infinity),o.individualIW=Math.min(o._individualIWL,o._individualIWR);h=Math.abs(B._getCustomPixel(ne)-B._getCustomPixel(ne+Se)),h=Math.min(2*we(re[0].x,"left"),2*we(re[ce-1].x,"right"),h)}else h=Math.abs(B._getCustomPixel(ne)-B._getCustomPixel(ne+J));if(G=Z||G,me.__root__={getHeight:function(e){var t=re[e]._ovrStyle.lineHeight;return parseInt(t.replace(/(\d+)px/,"$1"),10)},getWidth:function(){return G},getCalculatedLabelStep:function(e){var t,a,i,n,o,r,d,g,p,f,m,v=0,b=e.length,x=Number.NEGATIVE_INFINITY,y={},C=0,k=H.rotateLabels,S="wrap"===Y||"auto"===Y;for(v=0;v<b;v++)(n=e[v]).style=n.style||{};if(H.irregularCatAxis)return H.labelStep;for(v=0;v<b;v++)(n=e[v])&&(n.label||(n.label=""),o=n.oriLabel||n.label,s={fontSize:K.fontSize,fontFamily:K.fontFamily,lineHeight:K.lineHeight,fontWeight:K.fontWeight},C++,n.style=n.style||{},(0,l.extend2)(s,n.style),y[t=s.fontSize+s.fontFamily+s.lineHeight+s.fontWeight]?o.length>y[t].label.length&&(y[t].label=o):y[t]={label:o,style:s});for(r in y)y.hasOwnProperty(r)&&(a=y[r].style,i=y[r].label,a.lineHeight=(0,l.setLineHeight)(a),j.setStyle(a),k&&(p=parseInt(a.lineHeight,10)),u=j.getSmartText(i,l.UNDEF,p),(g=0===k?u.width>60?60:u.width:u.height)>x&&(x=g,f=y[r]));if((S&&(x=Math.min(R,x)),d=Math.floor(Math.abs(B._getCustomPixel(ie)-B._getCustomPixel(ne))/x),m=Math.max(Math.ceil(C/d),H.labelStep),h=Math.abs(B._getCustomPixel(ne)-B._getCustomPixel(ne+m)),S&&0===k)&&(j.setStyle(f.style),(0,c["default"])(Object.values(j.getOriSize(f.label).detailObj))>h-2*de))return m+=1,h=Math.abs(B._getCustomPixel(ne)-B._getCustomPixel(ne+m)),m;return C<=d?H.labelStep:m}},me._inProp={},me.getCopyById=function(e){var t,a=this._inProp,i=this.__root__,n=a.copyStore;return(t=(n=n||{})[e])?t:((0,l.extend2)(t=n[e]={},i),t)},H.tickValues){switch(Y){case"rotate":q.rotation=X?300:270,p=me.getCopyById("rotate");break;case"stagger":(p=me.getCopyById("stagger")).getHeight=function(e){var t,a;return a=(t=H.tickValues.tickValue[e])&&t.style||(t.style={}),s={fontSize:K.fontSize,fontFamily:K.fontFamily,lineHeight:K.lineHeight,fontWeight:K.fontWeight},(0,l.extend2)(s,a),j.setStyle(s),j.getOriSize(t.label).height},p.getWidth=function(e){return de=1,e.individualIW?e.individualIW:2*h*a-de},fe=function(e){var t,a,i,n,o,r,l=e.length,s=0;if(j.setStyle(K),i=j.getOriSize("WWW").height,a=e[l-1],Math.floor(a._cumulativeSum)<=Math.ceil(l*(i+2)))o=Math.floor(G/i),$=o-$<0?o:$;else{o=Math.floor(G/(i+4));do{for(s=0,n=(r=o)-1,l=e.length;n<l;){if(l-n<o&&(n=l-1),~~((t=e[n])._cumulativeSum-s)>-~G){be=!0;break}be=!1,s=t._cumulativeSum,n+=r}}while(o--&&be);o++,$=Math.min($,o)}H.drawnStaggerLines=$},ge=function(e){var t,a,n,o,r=0;for(o=0,a=e.length;o<a;o++)(t=e[o]).stepSkipped||((n=(t&&t.style||{}).lineHeight)||(n=K.lineHeight),i=r++%$,t.labelPadding=i?n.replace(/px/i,"")*i:0)};break;case"none":(p=me.getCopyById("none")).getHeight=l.stubFN,p.getWidth=l.stubFN,pe=l.stubFN,H.rotateLabels&&(q.rotation=X?300:270,A=G),p.getCalculatedLabelStep=function(){return H.labelStep};break;default:(p=me.getCopyById("auto")).getHeight=function(){return G},p.getWidth=function(e){return e.individualIW?e.individualIW:h-2*de},j.setStyle(he.style),V=j.getOriSize("WWW"),R=V.width,pe=function(e,t){var a,i,n,o;if(!H.irregularCatAxis&&(j.setStyle(e),V=j.getOriSize("WWW"),(R=V.width)>=h&&0!==H.rotateLabels)){for(q.rotation=X?300:270,q.forceRotate=!0,p=me.getCopyById("rotate"),d=p.getWidth,g=p.getHeight,he.width=0,a=0,i=t.length;a<i;a++)(n=t[a])&&(n.label||n.oriLabel)&&0!==(0,l.pluckNumber)(n.showlabel,H.showLabels,1)&&!0!==n.stepSkipped&&(o=n._ovrStyle,j.setStyle({fontSize:o.fontSize,fontFamily:o.fontFamily,lineHeight:o.lineHeight,fontWeight:o.fontWeight}),u=j.getSmartText(n.oriLabel,d(n),g(a)),n.label=u.text,n.labelTooltext=u.tooltext,n._sLabel=u,he.width<u.width&&(he.text=u.text,he.width=u.width,he.height=u.height,he.style=o));f=he.text}}}for(d=p.getWidth,g=p.getHeight,Q=H.labels.step=H.labelStep=H._oriLabelStep,Q=H.labels.step=H.labelStep=p.getCalculatedLabelStep(re),x=(0,r.minimumEnquiry)(re),m=0,y=0,ce=re.length;x<ce;x++,m++)(o=re[x])&&(o.label||o.oriLabel)&&0!==(0,l.pluckNumber)(o.showlabel,H.showLabels,1)&&(ye=!0,s={fontSize:K.fontSize,fontFamily:K.fontFamily,lineHeight:K.lineHeight,fontWeight:K.fontWeight},(0,l.extend2)(s,o.style),s.lineHeight=(0,l.setLineHeight)(s),(I=s.fontSize+s.fontFamily+s.lineHeight+s.fontWeight)!==D&&(j.setStyle(s),D=I),m%Q?(o.stepSkipped=!0,o.appliedSmartLabel=!1,xe++):(o.appliedSmartLabel=!0,o.stepSkipped=!1,o._ovrStyle=s,re[x].plotWidth?t=Math.max("rotate"===Y?re[x].plotWidth-6:0,g(x)):("rotate"===Y?x<ce-1&&(n=B.getPixel(x+1)-B.getPixel(x)-10):n=0,"rotate"===Y&&isNaN(+n)&&(n=W.canvasWidth/B.getVisibleLength()-3),t=Math.max(n,g(x))),ve+=(u=j.getSmartText(o.oriLabel||o.label,d(o),t)).height+2,B.components.labels[y++]={config:{width:u.width,height:u.height,props:{label:{}}}},o._cumulativeSum=ve,o.oriLabel=o.oriLabel||o.label,o.label=u.text,o.labelTooltext=u.tooltext,o._sLabel=u,he.width<u.oriTextWidth&&((0,l.extend2)(he,u),he.style=s),ue<u.height&&(ue=u.height)));if(!ye)return{height:0,width:0};if(fe(re,xe),ge(re,xe),pe(he.style,re),f=he.text||"","mixed"===H.xAxisLabelMode)for(S=H.isPercent?z.getFromEnv("number-formatter").percentValue:z.getFromEnv("number-formatter").xAxis,oe=f.length,x=0,M=ke&&ke.length;x<M;++x)k=ke[x],(C=""+S.call(z.getFromEnv("number-formatter"),k,H.axisIndex)).length>oe&&(f=C,oe=C.length);for(he.height=Math.max(ue,he.height||0),T=re.length,x=0,ce=re.length;x<ce&&!(E=re[x])._sLabel;x++);for(x=(ce=re.length)-1;x>=0&&!(_=re[x])._sLabel;x--);P=1!==B.getZoom(),q.rotation||P||!E._sLabel?(H.axisEndLabelDisplaySpace.left=0,H.axisEndLabelDisplaySpace.right=0):(H.axisEndLabelDisplaySpace.left=Math.max(ee-(B._getCustomPixel(E.x||0)-E._sLabel.width/2),0),H.axisEndLabelDisplaySpace.right=Math.max(B._getCustomPixel(_.x||T-1)+_._sLabel.width/2-te,0)),w=he}else{for(S=H.numberFormatterFn?z.getFromEnv("number-formatter")[H.numberFormatterFn]:H.isPercent?z.getFromEnv("number-formatter").percentValue:z.getFromEnv("number-formatter").xAxis,x=0,M=ke&&ke.length;x<M;++x)O=ke[x],k=(0,l.toPrecision)(O,10),C=""+S.call(z.getFromEnv("number-formatter"),k,H.axisIndex),O===ne&&(v=C),O===ie&&(b=C),w=j.getOriSize(C),B.components.labels[x]={config:{width:w.width,height:w.height,props:{label:{}}}},C.length>oe&&(f=C,oe=C.length);j.setStyle({fontSize:K.fontSize,fontFamily:K.fontFamily,lineHeight:K.lineHeight,fontWeight:K.fontWeight}),w=j.getOriSize(f||""),"rotate"===Y&&(q.rotation=270),H.rotateLabels&&(q.rotation=X?300:270),q.rotation||(v=j.getOriSize(v||""),b=j.getOriSize(b||""),H.axisEndLabelDisplaySpace.left=v.width/2+2,H.axisEndLabelDisplaySpace.right=b.width/2+2)}return H.tickValues&&"stagger"===Y&&(w.height=$*he.height),w.width=A?Math.min(A,w.width):w.width,w.width=(0,l.pluckNumber)(w.width),w.maxWidth=(0,l.pluckNumber)(w.maxWidth),w},a._getVMaxLabelDimention=function(e){var t,a,i,n,o,r,s,c,h,u,d,g,p,f,m=e,v=this.config,b=this.getFromEnv("chart"),x=b.config,y=b.getFromEnv("smartLabel"),C=v.labels.style,k=v.useEllipsesWhenOverflow,S=v.maxLabelWidthPercent,w=v.minLabelWidthPercent,L=0,A=b.getFromEnv("dataSource").categories,N={height:0,width:0},F=v.ticks,E={};if(y.useEllipsesOnOverflow(x.useEllipsesWhenOverflow),y.setStyle({fontSize:C.fontSize,fontFamily:C.fontFamily,lineHeight:C.lineHeight,fontWeight:C.fontWeight}),v.tickValues){for(A&&(E={fontFamily:A[0].font,fontSize:A[0].fontsize,color:A[0].fontcolor}),S&&(a=S/100*x.width)<m&&(m=a),w&&(i=w/100*x.width)>m&&(m=i),n=0,h=(c=v.tickValues.tickValue).length;n<h;n++)u=c[n],0!==(0,l.pluckNumber)(u.showlabel,v.showLabels)&&(p={fontFamily:(0,l.pluck)(u.font,u.labelfont,E.fontFamily,C.fontFamily),fontSize:(0,l.pluck)(u.fontsize,u.labelfontsize,E.fontSize,C.fontSize).replace(/px/i,"")+"px",fontWeight:"normal"===C.fontWeight?(0,l.pluckNumber)(u.fontbold,u.labelfontbold,0)?"bold":"normal":C.fontWeight,fontStyle:"normal"===C.fontStyle?(0,l.pluckNumber)(u.fontitalic,u.labelfontitalic,0)?"italic":"normal":C.fontStyle},(f={fontFamily:(0,l.pluck)(p.fontFamily,E.fontFamily,C.fontFamily),fontSize:(0,l.pluck)(p.fontSize,E.fontSize,C.fontSize),fontWeight:(0,l.pluck)(p.fontWeight,C.fontWeight),fontStyle:(0,l.pluck)(p.fontStyle,C.fontStyle)}).lineHeight=(0,l.setLineHeight)(f),y.setStyle(f),d=y.getSmartText(u.oriLabel||u.label,m,C.lineHeight,k),this.components.labels[n]={config:{width:d.width,height:d.height,props:{label:{}}}},u.oriLabel=u.oriLabel||u.label,u.label=s=d.text,u.labelTooltext=d.tooltext,d.width>L&&(N=d,L=d.width));return N}for(g=v.numberFormatterFn?b.getFromEnv("number-formatter")[v.numberFormatterFn]:v.isPercent?b.getFromEnv("number-formatter").yAxisPercentValue:b.getFromEnv("number-formatter").yAxis,n=0,o=F&&F.length;n<o;++n)r=(0,l.toPrecision)(F[n],10),s=""+g.call(b.getFromEnv("number-formatter"),r,v.axisIndex),d=y.getSmartText(s),this.components.labels[n]={config:{width:d.width,height:d.height,props:{label:{}}}},s.length>L&&(t=s,L=s.length);return y.getOriSize(t)},a.getCleanValue=function(e,t){return this.getFromEnv("number-formatter").getCleanValue(e,t)},a.generateMinorTicks=function(){if(this)return[]},a.setCanvas=function(e){this.config.canvas=e},a._adjustNumberFormatter=function(e){var t,a,i=this.config,n=i.axisIndex,o=i.isVertical,r=this.getFromEnv("chart").getFromEnv("number-formatter"),s=i._defaultDecimalPrecision,c=i._defaultForceDecimal,h=0;a=o||"yAxis"===i.numberFormatterFn?(r.Y[n]||r.Y[0]).yAxisLabelConf:r.paramX,s!==l.UNDEF?a.decimalprecision=s:i._defaultDecimalPrecision=a.decimalprecision,c!==l.UNDEF?a.forcedecimals=c:i._defaultForceDecimal=a.forcedecimals,parseInt(e,10)>0||(t=e.toString().split(".")[1])&&((h=t.match(/^[0]*/)[0].length+1)>a.decimalprecision&&(a.forcedecimals=1),a.decimalprecision=Math.max(h,a.decimalprecision))},a.setLabelConfig=function(e){var t,a=this.config.labels;for(t in e)e.hasOwnProperty(t)&&(a[t]=e[t])},t}(r["default"]);h.prototype._parseLabel=s._parseLabel,h.prototype._drawLabel=s._drawLabel,h.prototype.getTrendLineLimits=s.getTrendLineLimits,h.prototype.setAxisPadding=s.setAxisPadding,h.prototype.getLabel=s.getLabel;var u=h;t["default"]=u},452:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t.minimumEnquiry=t.getCrispPath=t["default"]=void 0;var n=i(a(198)),o=i(a(453)),r=a(184),l=i(a(454)),s=i(a(429)),c=i(a(455)),h=i(a(456)),u=a(192),d=a(294),g=a(458),p=function(e,t){var a,i,n=!1,o=t%2;return e[1]===e[4]&&(a=e[1],i=Math.round(a),e[1]=e[4]=o?i>a?i-.5:i+.5:i,n=!0),e[2]===e[5]&&(a=e[2],i=Math.round(a),e[2]=e[5]=o?i>a?i-.5:i+.5:i,n=!0),{path:e,isCrisped:n}},f=function(e){return function(t,a){return!!(e.minValue<=t&&e.maxValue>=t||e.minValue<=a&&e.maxValue>=a)}},m=function(e){return function(t){return!!(e.minValue<=t&&e.maxValue>=t)}},v={wrtVisible:!0},b=function(e){for(var t=0,a=e.length;t<a;t++)if(e[t].label||e[t].oriLabel)return t};t.minimumEnquiry=b,t.getCrispPath=p,(0,u.addDep)({name:"cartesianAxisAnimation",type:"animationRule",extension:l["default"]});var x=function(e){function t(){var t;return(t=e.call(this)||this).config.referenceInfo=[],t.config.prevTicks=[],t.config.prevIntervalArr=[],t.config.prevTrendLabels=[],t.config.prevCategoryIntervalArr=[],t}(0,n["default"])(t,e);var a=t.prototype;return a.placeAxis=function(e){var t,a=this.getScale(),i=this.getFromEnv("chart"),n=this.getChildren("scrollBar")&&this.getChildren("scrollBar")[0],o=this.config.isVertical,r=this.config.isOpposit,l=this.config.isReverse,s=i.config,c={};return n&&!n.getState("removed")&&(t=n.getLogicalSpace())&&(o?(i.config.shift=t.width+n.config.conf.padding,c[r?"right":"left"]=i.config.shift):(i.config.shift=t.height+n.config.conf.padding,c[r?"top":"bottom"]=i.config.shift),i._allocateSpace(c)),o?(l?a.setRange([s.canvasBottom,s.canvasTop]):a.setRange([s.canvasTop,s.canvasBottom]),this._placeVerticalAxis(e)):(l?a.setRange([s.canvasRight,s.canvasLeft]):a.setRange([s.canvasLeft,s.canvasRight]),this._placeHorizontalAxis(e))},a._placeVerticalAxis=function(e){var t,a,i,n,o,l,s,c,h,u,d,g,p,f,m,v,b,x,y=e,C=this.config,k=this.getFromEnv("chart"),S=k.config,w=k.getFromEnv("smartLabel"),L=C.axisRange,A=C.minLabelWidthPercent,N=C.name,F=C.isOpposit,E=this.getFromEnv("number-formatter"),_=S.canvasHeight,T=C.labelPadding=(0,r.pluckNumber)(C.rawAttr.axisValuePadding,4),P=(0,r.pluckNumber)(C.rawAttr.axisNamePadding,5),D=C.useEllipsesWhenOverflow,I=C.name.style,M=C.trend.trendStyle,O=C.axisName,R=C.trendLines,V=C.drawLabelsOpposit,B=C.drawAxisNameOpposit,G=0,H=0,z=0,W=0,j=0,U=0,q={left:0,right:0},Y=r.BLANKSTRING,X=r.BLANKSTRING,K=0,Z=-1;if(A&&(Z=A/100*S.width),C.oriCanvasHeight=_,T<0&&(C.labelPadding=2),v=C.drawTick&&C.tickLength?C.axisLineThickness+C.tickLength:C.axisLineThickness,C.showAxisLine?(C.labelPadding=(0,r.pluckNumber)(T,2)+v,C.labelPadding<0&&(C.labelPadding=(C.axisLineThickness<0?0:v)+2),y-=C.axisLineThickness):(C.labelPadding=(0,r.pluckNumber)(T,2),C.labelPadding<0&&(C.labelPadding=2)),h=L.max,u=L.min,C.name.rotation=0,C.labels.step=C.labelStep,C.labels.isDraw=1,C.labels.drawNormalVal=C.showDivLineValues,C.labels.drawLimitVal=C.showLimits,K=I.lineHeight,K=Number(K.replace(/px/i,"")),O&&K<y&&(y-=K),1!==C.showLimits&&1!==C.showDivLineValues&&(C.labels.isDraw=0),((g=C.drawLabels?this._getVMaxLabelDimention(y-C.labelPadding):{width:0,height:0}).width+C.labelPadding>y&&!C.tickValues||0===g.width)&&(C.labels.isDraw=0),C.labels.isDraw&&(C.labelMaxW=g.width>Z?g.width:Z,C.labelMaxH=g.height,z=G=C.labelMaxW+C.labelPadding),C.drawTrendLines&&C.drawTrendLabels&&R&&R.length){for(n=C.isPercent?E.percentValue:C.isVertical?E.yAxis:E.xAxis,w.useEllipsesOnOverflow(S.useEllipsesWhenOverflow),w.setStyle({fontSize:M.fontSize,fontFamily:M.fontFamily,lineHeight:M.lineHeight,fontWeight:M.fontWeight}),t=0,a=R.length;t<a;t+=1)for(c=0,p=R[t].line&&R[t].line.length;c<p;c+=1)f=R[t].line[c],b=E.getCleanValue((0,r.pluck)(f.startvalue,f.value,0)),x=(0,r.pluckNumber)(f.endvalue,b),b<=h&&b>=u&&x<=h&&x>=u&&(s=1===(m=(0,r.pluckNumber)(f.valueonright,F?1:0))?f.endvalue||f.startvalue:f.startvalue||f.endvalue,(d=(0,r.parseUnsafeString)(f.origText||f.displayvalue||s||""))===s&&(d=""+n.call(E,d)),m?d.length>X.length&&(X=d):d.length>Y.length&&(Y=d));for(U=(g=w.getOriSize(X)).width?g.width+C.labelPadding:0,j=(g=w.getOriSize(Y)).width?g.width+C.labelPadding:0,F?(U>z&&U>y&&(U=y),j>y-(z=Math.max(z,U+C.labelPadding))&&(j=Math.min(j,y-z))):(j>z&&j>y&&(j=y),U>y-(z=Math.max(z,j+C.labelPadding))&&(U=Math.min(U,y-z))),t=0,a=R.length;t<a;t+=1)for(c=0,p=R[t].line&&R[t].line.length;c<p;c+=1)f=R[t].line[c],b=E.getCleanValue((0,r.pluck)(f.startvalue,f.value,0)),x=(0,r.pluckNumber)(f.endvalue,b),d=1===Number(f.valueonright)?f.origText||f.displayvalue||""+x||"":f.origText||f.displayvalue||""+b||"",(d=(0,r.parseUnsafeString)(""+d))!==f.endvalue&&d!==f.startvalue||(d=""+n.call(E,d)),f.origText=d,l=(m=(0,r.pluckNumber)(f.valueonright,F?1:0))?w.getSmartText(d,U,k.config.canvasHeight,D):w.getSmartText(d,j,k.config.canvasHeight,D),(i=C.parsedTrendLabels[H++])&&(i.attr.text=f.displayvalue=l.text),l.tooltext?(f.valueToolText=l.tooltext,i&&(i.valueToolText=f.valueToolText)):(delete f.valueToolText,i&&delete i.valueToolText)}return y+=K,!C.drawAxisName||y-z-U<=0||""===O?(N.isDraw=!1,N.value=r.BLANKSTRING):(w.setStyle({fontSize:I.fontSize,fontFamily:I.fontFamily,lineHeight:I.lineHeight,fontWeight:I.fontWeight}),N.isDraw=!0,C.rotateAxisName?(C.name.rotation=F?90:270,o=w.getSmartText(O,_,y-z-U),N.value=O,C.nameMaxW=Math.min(o.height),W=C.nameMaxW+P):(o=w.getSmartText(O,y-z-U,_),N.value=O,C.nameMaxW=Math.min(o.width,y-z),C.nameMaxH=o.height,C.axisNameWidth>=0&&(C.nameMaxW=Math.min(C.nameMaxW,C.axisNameWidth)),W=C.nameMaxW+P)),F?(V?(q.left+=Math.max(G,j),q.right+=U):(q.left+=j,q.right+=Math.max(G,U)),B?(C.axisNamePadding=q.left+P,q.left+=W):(C.axisNamePadding=q.right+P,q.right+=W)):(V?(q.left+=j,q.right+=Math.max(G,U)):(q.left+=Math.max(G,j),q.right+=U),B?(C.axisNamePadding=q.right+P,q.right+=W):(C.axisNamePadding=q.left+P,q.left+=W)),N.isDraw&&C.axisNamePadding+C.nameMaxW>y&&(C.axisNamePadding=y-C.nameMaxW,W=C.nameMaxW+C.axisNamePadding-z),q},a._placeHorizontalAxis=function(e){var t,a,i,n,o,l,s,c,h,u,d,g,p,f,m,v,b,x,y=e,C=this.config,k=this.getFromEnv("chart"),S=k.config,w=k.getFromEnv("smartLabel"),L=C.axisRange,A=C.name,N=C.isOpposit,F=k.getFromEnv("number-formatter"),E=C.drawLabelsOpposit,_=C.drawAxisNameOpposit,T=0,P=S.canvasWidth,D=C.labelPadding=(0,r.pluckNumber)(C.rawAttr.axisValuePadding,4),I=(0,r.pluckNumber)(C.rawAttr.axisNamePadding,5),M=C.useEllipsesWhenOverflow,O=C.name.style,R=C.trend.trendStyle,V=C.axisName,B=C.vTrendLines,G=0,H=0,z=0,W={top:0,bottom:0},j=0,U=0;if(D<0&&(C.labelPadding=2),v=C.drawTick&&C.tickLength?C.axisLineThickness+C.tickLength:C.axisLineThickness,C.showAxisLine?(C.labelPadding=(0,r.pluckNumber)(D,2)+v,C.labelPadding<0&&(C.labelPadding=(C.axisLineThickness<0?0:v)+2),y-=C.axisLineThickness):(C.labelPadding=(0,r.pluckNumber)(D,2),C.labelPadding<0&&(C.labelPadding=2)),s=L.max,c=L.min,C.labels.rotation=0,C.labels.step=C.labelStep,C.labels.isDraw=1,C.labels.drawNormalVal=C.showDivLineValues,C.labels.drawLimitVal=C.showLimits,U=O.lineHeight,U=Number(U.replace(/px/i,"")),V&&U<y&&(y-=U),C.rotateLabels&&"stagger"!==C.labelDisplay&&"none"!==C.labelDisplay&&(C.labelDisplay="rotate"),1!==C.showLimits&&1!==C.showDivLineValues&&(C.labels.isDraw=0),f=C.drawLabels?this._getHMaxLabelDimention(y-C.labelPadding):{width:0,height:0},C.labels.rotation?f.width+C.labelPadding>y&&!C.tickValues&&(C.labels.isDraw=0):f.height+C.labelPadding>y&&!C.tickValues&&(C.labels.isDraw=0),C.labels.isDraw&&(C.labels.rotation?(C.labelMaxW=f.height,C.labelMaxH=f.width,T=f.width+C.labelPadding):(C.labelMaxW=f.width,C.labelMaxH=f.height,T=f.height+C.labelPadding),G=T),d=(G=Math.max(G,C.labelPadding))<=y?y-G:y,C.drawTrendLines&&C.drawTrendLabels&&B&&C.isActive)for(m=C.isPercent?this.getFromEnv("number-formatter").percentValue:C.isVertical?this.getFromEnv("number-formatter").yAxis:this.getFromEnv("number-formatter").xAxis,w.useEllipsesOnOverflow(S.useEllipsesWhenOverflow),w.setStyle({fontSize:R.fontSize,fontFamily:R.fontFamily,lineHeight:R.lineHeight,fontWeight:R.fontWeight}),a=0,i=B.length;a<i;a+=1)for(l=0,u=B[a].line&&B[a].line.length;l<u;l+=1)g=B[a].line[l],b=F.getCleanValue((0,r.pluck)(g.startvalue,g.value,0)),x=(0,r.pluckNumber)(g.endvalue,b),b<=s&&b>=c&&x<=s&&x>=c&&(t=1===(0,r.pluckNumber)(g.valueonright,0)?g.endvalue||g.startvalue:g.startvalue||g.endvalue,(h=(0,r.parseUnsafeString)(g.origText||g.displayvalue||t||""))===t&&(h=""+m.call(k.getFromEnv("number-formatter"),h)),g.origText=h,d-((p=w.getSmartText(h,k.canvasWidth,R.lineHeight,M)).height+2)<0?g.displayvalue=r.BLANKSTRING:((n=C.parsedTrendLabels[H++])&&(n.attr.text=g.displayvalue=p.text),j=j<p.height?p.height:j),p.tooltext?(g.valueToolText=p.tooltext,n&&(n.valueToolText=g.valueToolText)):(delete g.valueToolText,n&&delete n.valueToolText));return d-=j,G+=N?0:j,d+=U,y+=U,!C.drawAxisName||d<=0||""===V?(A.isDraw=!1,A.value=r.BLANKSTRING):(w.setStyle({fontSize:O.fontSize,fontFamily:O.fontFamily,lineHeight:O.lineHeight,fontWeight:O.fontWeight}),A.isDraw=!0,o=w.getSmartText(V,P,d),A.value=V,C.nameMaxW=P,C.nameMaxH=o.height,z=o.height+I,C.axisNamePadding=I+G,C.axisNamePadding+o.height>y&&(C.axisNamePadding=y-o.height,z=o.height+C.axisNamePadding-G)),N?(E?W.bottom+=T+j:(W.top+=T,W.bottom+=j),C.trendBottomPadding=W.bottom-j+2,_?W.bottom+=z:W.top+=z):(E?(W.top+=T,W.bottom+=j):W.bottom+=T+j,C.trendBottomPadding=W.bottom-j+2,_?W.top+=z:W.bottom+=z),W},a._parseCategoryPlotLine=function(){var e,t,a,i=this.config,n=i.axisRange,o=i.tickValues.tickValue,l=(0,r.convertColor)(i.divLineColor,i.divLineAlpha),s=i.divLineThickness,c=i.divLineIsDashed?(0,r.getDashStyle)(i.divLineDashLen,i.divLineDashGap,s):r.DASH_DEF,h=m(this.getVisibleConfig()),u=i._allTicks,d=u.length;if(e={stroke:l,"stroke-width":s,"stroke-dasharray":c},(!o[0]||o[0].x===r.UNDEF&&o[0].y===r.UNDEF)&&i.lines.isDraw&&i.categoryNumDivLines)for(t=0;t<d;++t)h(a=u[t])&&a!==n.min&&a!==n.max&&this.setReferenceInfo({from:a,type:"line",layer:1,attr:e})},a._drawComponents=function(){var e=this.config;e.drawAxisName&&this._drawAxisName(),e.drawAxisLine&&this._drawAxisLine(),e.tickValues?e.drawLabels&&this._drawCategory():e.drawLabels&&this._drawLabel(),e.drawTrendLines&&this.drawTrendLabel()},a.drawTrendLabel=function(){var e,t,a,i,n,o,l,s,c,u,d,g,p,f,m,b,x=this.config,y=x.parsedTrendLabels,C=this.getFromEnv("animationManager"),k=this.getFromEnv("toolTipController"),S=x.axisTrendLabelContainer,w=x.isOpposit,L=x.labelPadding,A=x.vTrendLines,N=x.trendLines,F=x.axisDimention,E=this.getVisibleConfig(),_=E.minValue,T=E.maxValue,P=!0;for(m=0,b=y.length;m<b;m++)y[m].id=m+"_trend";for(A?i=w?F.opposite+(x.trendBottomPadding||0):F.y+(x.trendBottomPadding||0):(i=w?F.opposite-(L||0):F.x-(L||0),n=w?F.x+(L||0):F.opposite+(L||0)),m=0,b=(p=(0,h["default"])((function(e,t){return e.attr.text===t.attr.text}),x.prevTrendLabels,y)).length;m<b;m++)(g=this.getGraphicalElement(p[m].id))&&this.removeGraphicalElement(g);if(x.prevTrendLabels=(0,r.extend2)([],y),x.drawTrendLabels)for(m=0,b=y.length;m<b;m++)t=y[m],a=this.getGraphicalElement(m+"_trend"),l=+t.from,c=+t.to,P=!0,(f=!isNaN(c))?(_>(s=l+(c-l)/2)||T<s)&&(P=!1):(_>l||T<l)&&(P=!1),P?(A?(u=this.getPixel(l,v),d=c?this.getPixel(c,v):0,o=(0,r.pluckNumber)(t.isTrendZone,x.isTrendZone,1),f&&c!==l&&o?(t.attr.x=u+(d-u)/2,t.attr.y=i):(t.attr.x=c?d:u,t.attr.y=i)):N&&(u=this.getPixel(l,v),d=c?this.getPixel(c,v):0,e=(0,r.pluckNumber)(t.valueOnRight,x.isOpposit?1:0),o=(0,r.pluckNumber)(t.isTrendZone,x.isTrendZone,0),f&&c!==l&&o?(t.attr.x=e?n:i,t.attr.y=u+(d-u)/2):(t.attr.x=e?n:i,t.attr.y=c&&e?d:u)),a=this.addGraphicalElement(m+"_trend",C.setAnimation({container:S,el:a||"text",attr:t.attr,css:t.css,data:{value:s||l},component:this,label:"text"})),x.showTooltip&&t.valueToolText?k.enableToolTip(a,t.valueToolText):k.disableToolTip(a)):a&&this.removeGraphicalElement(a);else for(m=0,b=y.length;m<b;m++)(g=this.getGraphicalElement(y[m].id))&&this.removeGraphicalElement(g)},a._drawAxisName=function(){var e,t,a,i,n,o,l=this.config,s=this.getFromEnv("toolTipController"),c=this.getLinkedItem("canvas").getEffectiveDimensions(),h=this.getFromEnv("animationManager"),u=c.left,d=c.top,g=c.width,p=c.height,f=d+p,m=u+g,v=this.getFromEnv("chart").config,b=l.name.style,x=l.name.value,y=l.isOpposit,C=l.isVertical,k=this.getFromEnv("smartLabel"),S=l.axisNameContainer,w=l.axisNamePadding,L=l.nameMaxH,A=l.nameMaxW,N=l.axisDimention,F=C?N.x:N.y,E=N.opposite,_=this.getGraphicalElement("axisName"),T=(0,r.pluckNumber)(l.name.rotation,C?90:270),P=this.getFromEnv("paper"),D={fontFamily:b.fontFamily,fontSize:b.fontSize,lineHeight:b.lineHeight,fontWeight:b.fontWeight,fontStyle:b.fontStyle};l.name.isDraw?(e={fontFamily:b.fontFamily,fill:b.color,"vertical-align":"middle","font-size":b.fontSize,"line-height":b.lineHeight},k.useEllipsesOnOverflow(v.useEllipsesWhenOverflow),k.setStyle({fontSize:b.fontSize,fontFamily:b.fontFamily,lineHeight:b.lineHeight,fontWeight:b.fontWeight}),l.drawAxisNameOpposit&&(y=!y,F=E),C?(w=Math.max(w,function(e,t){var a=0;return e.relativeAxis&&e.relativeAxis.config&&e.relativeAxis.config.axisNamePadding&&(a=Math.max(e.relativeAxis.config.axisNamePadding,a)),e.isOpposit&&t.canvasMarginRight&&(a=Math.max(a,t.canvasMarginRight-t.marginLeft-e.nameMaxW)),!e.isOpposit&&t.canvasMarginLeft&&(a=Math.max(a,t.canvasMarginLeft-t.marginRight-e.nameMaxW)),a}(l,v)),i=l.axisNameAlignCanvas||v.captionalignment&&"left"===v.captionalignment?p:Math.max(p,l.oriCanvasHeight||0),T?(a=(t=k.getSmartText(x,i,A)).tooltext,n=t.width):(a=(t=k.getSmartText(x,A,i)).tooltext,n=t.height),o=l.drawAxisNameFromBottom?f-n/2:n>p?v.height/2:d+p/2,e.text=t.text,e.x=y?(F||m)+w+A/2:(F||u)-w-A/2,e.y=o):(a=(t=k.getSmartText(x,g,L)).tooltext,y&&v.canvasMarginTop&&(w=Math.max(w,v.canvasMarginTop-v.marginTop-L)),!y&&v.canvasMarginBottom&&(w=Math.max(w,v.canvasMarginBottom-v.marginBottom-L)),e.text=t.text,e.x=u+g/2,e.y=y?(F||d)-w-L/2:(F||f)+w+L/2),e["text-bound"]=""===t.text?[]:[b.backgroundColor,b.borderColor,b.borderColor?b.borderThickness:0,b.borderPadding,b.borderRadius,b.borderDash],e.transform=P.getSuggestiveRotation(C?T:0,e.x,e.y),_=this.addGraphicalElement("axisName",h.setAnimation({css:D,el:_||"text",attr:e,container:S,component:this,label:"text"})),l.showTooltip?s.enableToolTip(_,a):s.disableToolTip(_)):_&&this.removeGraphicalElement(_)},a._drawAxisLine=function(){var e,t,a,i,n,o,l,s,h,u,d,g,f,m,b,x,y,C,k=this.config,S=k.isVertical,w=k.isOpposit,L=this.getFromEnv("chart"),A=this.getLinkedItem("canvas").getEffectiveDimensions(),N=this.getFromEnv("animationManager"),F=A.top,E=A.left,_=F+A.height,T=E+A.width,P=k.axisDimention,D=S?P.x:P.y,I=k.drawAxisLineWRTCanvas,M=L.getFromEnv("chart-attrib"),O=k.axisAxisLineContainerBottom,R=this.getGraphicalElement("axisLine"),V=[];if(i=1===(0,r.pluckNumber)(M.showyaxisline,M.showyaxisline)?(0,r.pluckNumber)(M.yaxislinethickness,M.pyaxislinethickness,1):0,k.showAxisLine){if(S?(n=w?(D=I?T:D)+k.axisLineThickness/2:(D=I?E:D)-k.axisLineThickness/2,a=(x=p(["M",n,_,"L",n,F],k.axisLineThickness)).path):(n=w?(D=I?F:D)-k.axisLineThickness/2:(D=I?_:D)+k.axisLineThickness/2,a=(x=p(["M",E-i,n,"L",T,n],k.axisLineThickness)).path),s={path:a,stroke:k.axisLineColor,"stroke-linecap":"butt","stroke-width":k.axisLineThickness,"shape-rendering":x.isCrisped?"crisp":r.UNDEF},k.drawTick&&k.tickLength)for(e={stroke:k.tickColor,"stroke-width":k.tickWidth},o=S?w?n+k.tickLength:n-k.tickLength:w?n-k.tickLength:n+k.tickLength,b=0,C=(y=k.tickValues?k.tickValues.tickValue.map((function(e){return S?e.y:e.x})):k.ticks).length;b<C;b+=1)f=(g=y[b])+"_tick",u=this.getGraphicalElement(f),l=this.getPixel(g,v),e.path=p(S?["M",n,l,"L",o,l]:["M",l,n,"L",l,o],k.tickWidth).path,h=N.setAnimation({el:u||"path",attr:e,data:{value:g,path:e.path},container:O,component:this,label:"path"}),u||this.addGraphicalElement(f,h),V.push(f);t=N.setAnimation({el:R||"path",attr:s,container:O,component:this,label:"path"}),R||this.addGraphicalElement("axisLine",t),V.push("axisLine")}for(b=0,C=(m=(0,c["default"])(k.prevTicks,V)).length;b<C;b++)(d=this.getGraphicalElement(m[b]))&&this.removeGraphicalElement(d);k.prevTicks=V},a._parseCategory=function(){var e,t,a,i,n,o,l,s,c,h,u,d,g,p,f,m,b,x,y,C,k,S,w,L,A,N,F,E,_,T=this.config,P=T.axisDimention||{},D=this.getFromEnv("chart"),I=D.getFromEnv("smartLabel"),M=this.components,O=M.labels,R=this.getLinkedItem("canvas").getEffectiveDimensions(),V=D.config,B=T.isOpposit,G=T.labels,H=G.style,z=T.isVertical,W=R.top,j=R.left,U=W+R.height,q=j+R.width,Y=T.labelPadding,X=z?P.x:P.y,K=P.opposite,Z=D.getFromEnv("dataSource").categories,J={},$=T.tickValues.tickValue,Q=T.axisRange.min,ee=T.drawnStaggerLines,te=(T.labelStep!==T.labels.step||1!==this.getZoom())&&"stagger"===T.labelDisplay;if(T.labels.isDraw)for(z&&(A=Math.abs(this.getPixel(0,v)-this.getPixel(0+T.axisRange.tickInterval,v)),T.labelMaxH>A&&(k=Math.ceil(T.labelMaxH/A)),k>T.labels.step&&(T.labels.step=k)),te&&(L=2*Math.abs(this.getPixel(Q,v)-this.getPixel(Q+T.labels.step,v))*T.sWidthAdjstFactor-1),F=(i=T.labels.rotation)?T.labelMaxH:T.labelMaxW,E=i?T.labelMaxW:T.labelMaxH,T.drawLabelsOpposit&&(B=!B,X=K),Z&&Z[0]&&"auto"!==T.xAxisLabelMode&&(J.fontFamily=Z[0].font,J.fontSize=Z[0].fontsize,J.color=Z[0].fontcolor),T.ParentCss=g={fontFamily:(0,r.pluck)(J.fontFamily,H.fontFamily),fontSize:(0,r.pluck)(J.fontSize,H.fontSize),fontWeight:(0,r.pluck)(H.fontWeight),fontStyle:(0,r.pluck)(H.fontStyle)},g.lineHeight=(0,r.setLineHeight)(g),y=this._getCategoryArr(),M.labelIndexArr=[],e=0,C=y.length;e<C;e+=1)t=$[_=y[e].index],b=y[e].value,M.labelIndexArr.push(_),c=(0,r.pluck)(t.font,t.labelfont),h=(0,r.pluck)(t.fontsize,t.labelfontsize),u=(0,r.pluck)(t.fontbold,t.labelfontbold)?(0,r.pluckNumber)(t.fontbold,t.labelfontbold,0)?"bold":r.NORMAL:r.UNDEF,d=(0,r.pluck)(t.fontitalic,t.labelfontitalic)?(0,r.pluckNumber)(t.fontitalic,t.labelfontitalic,0)?"italic":r.NORMAL:r.UNDEF,f=(0,r.convertColor)((0,r.pluck)(t.fontcolor,t.labelfontcolor,J.color,H.color),(0,r.pluckNumber)(t.labelalpha,T.rawAttr.labelAlpha,D.config.singleseries?r.UNDEF:t.alpha,100)),c||h||u||d?(s={},c&&(s.fontFamily=c),h&&(s.fontSize=h),u&&(s.fontWeight=u),d&&(s.fontStyle=d),s.lineHeight=h?(0,r.setLineHeight)(s):g.lineHeight):s=r.UNDEF,(s||g)&&-1!==(o=(s||g).lineHeight).indexOf("px")&&(n=o.replace(/px/i,""),n=parseFloat(n)),!1===t.appliedSmartLabel&&(I.setStyle(t._ovrStyle||g),N=I.getSmartText(t.oriLabel||t.label,F,E),t.oriLabel=t.oriLabel||t.label,t.label=N.text,t.labelTooltext=N.labelTooltext,t.appliedSmartLabel=!0),m=this.getPixel(b,v),z?(a=t.label||"",l=Number(t.labelPadding)||0,p={fill:f,"line-height":n,opacity:1,"text-anchor":B?r.POSITION_START:r.POSITION_END,text:a,cursor:!V.singleseries&&t.link||t.labellink||H.labelLink?r.POINTER:"",x:B?(X||q)+Y:(X||j)-Y,y:l?m+l:m}):(a=t.label||"",l=Number(t.labelPadding)||0,p={fill:f,"line-height":n,opacity:1,text:a,cursor:!V.singleseries&&t.link||t.labellink||H.labelLink?r.POINTER:"",x:m,y:B?(X||W)-Y:(X||U)+Y},i?(p["text-anchor"]=B?r.POSITION_START:r.POSITION_END,p["vertical-align"]=r.POSITION_MIDDLE):(p["text-anchor"]=r.POSITION_MIDDLE,p["vertical-align"]=B?r.POSITION_BOTTOM:r.POSITION_TOP),te?((S=t.labelCount%ee)&&((n=t.style.lineHeight)||(n=T.labels.style.lineHeight),w=n.replace(/px/i,"")*S,p.y=B?p.y-w:p.y+w),I.setStyle(t._ovrStyle||g),N=I.getSmartText(t.oriLabel||t.label,L,E),t.oriLabel=t.oriLabel||t.label,p.text=t.label=N.text,t.labelTooltext=N.labelTooltext,t.appliedSmartLabel=!0):l&&(B?p.y-=l:p.y+=l)),x={label:t.label,lineHeight:o,border:(0,r.pluckNumber)(t.borderthickness,t.labelborderthickness)?(0,r.pluckNumber)(t.borderthickness,t.labelborderthickness,1)+"px solid":"",borderColor:t.bordercolor||t.labelbordercolor?(0,r.convertColor)(t.bordercolor||t.labelbordercolor,(0,r.pluckNumber)(t.borderalpha,t.labelborderalpha,t.alpha,t.labelalpha,100)):r.BLANKSTRING,borderThickness:(0,r.pluckNumber)(t.borderthickness,t.labelborderthickness),borderPadding:(0,r.pluckNumber)(t.borderpadding,t.labelborderpadding),borderRadius:(0,r.pluckNumber)(t.borderradius,t.labelborderradius),backgroundColor:t.bgcolor||t.labelbgcolor?(0,r.convertColor)(t.bgcolor||t.labelbgcolor,(0,r.pluckNumber)(t.bgalpha,t.labelbgalpha,t.alpha,t.labelalpha,T.rawAttr.labelAlpha,100)):r.BLANKSTRING,borderDash:(0,r.pluckNumber)(t.borderdashed,t.labelborderdashed,0)?(0,r.getDashStyle)((0,r.pluckNumber)(t.borderdashlen,t.labelborderdashlen,4),(0,r.pluckNumber)(t.borderdashgap,t.labelborderdashgap,2)):0===(0,r.pluckNumber)(t.borderdashed,t.labelborderdashed)?r.DASH_DEF:H.borderDash},t.label?p["text-bound"]=[(0,r.pluck)(x.backgroundColor,H.backgroundColor),(0,r.pluck)(x.borderColor,H.borderColor),(0,r.pluck)(x.borderThickness,H.borderThickness),(0,r.pluck)(x.borderPadding,H.borderPadding),(0,r.pluck)(x.borderRadius,H.borderRadius),(0,r.pluck)(x.borderDash,H.borderDash)]:p["text-bound"]=[],G.shiftX&&(p.x+=G.shiftX),G.shiftY&&(p.y+=G.shiftY),p.transform=(0,r.getSuggestiveRotation)(i,p.x,p.y),O[_]=O[_]||{config:{props:{label:{}}}},O[_].config.props.label.attr=p,O[_].config.props.label.css=s},a.allocatePosition=function(){var e=this.config;e.tickValues?e.drawLabels&&this._parseCategory():e.drawLabels&&this._parseLabel(),this.getChildren("scrollBar")&&this.getChildren("scrollBar")[0]&&this.getChildren("scrollBar")[0].setDimension(this.getScrollbarDimension())},a._drawCategory=function(){var e,t,a,i,n,o,l,s,c,u,d,g=this.config,p=this.getFromEnv("chart"),f=p.config,m=g.labels,v=this.getFromEnv("animationManager"),b=m.style,x=this.getFromEnv("toolTipController"),y=g.axisContainer,C=this.config.categoryLabel||(this.config.categoryLabel=[]),k=function(e){return function(t){p.plotEventHandler(this,t,e)}},S=g.tickValues.tickValue,w=[];if(g.labels.isDraw){for(y.css(g.ParentCss),o=this._getCategoryArr(),e=0,s=(n=(0,h["default"])((function(e,t){return e.value===t.value}),g.prevCategoryIntervalArr,o)).length;e<s;e++)(u=this.getGraphicalElement(n[e].value+"_label"))&&this.removeGraphicalElement(u);for(g.prevCategoryIntervalArr=(0,r.extend2)([],o),e=0,s=o.length;e<s;e+=1)w[e]=o[e].value+"_label";for(e=0,s=o.length;e<s;e+=1)t=S[d=o[e].index],i=(c=this.components.labels[d].config).props.label.attr,l=this.getGraphicalElement(w[e]),a=v.setAnimation({el:l||"text",attr:i,container:y,data:{value:void 0},component:this,label:"text",css:c.props.label.css}),l||(this.addGraphicalElement(w[e],a),a.on("fc-click",k("dataLabelClick")).hover(k("dataLabelRollOver"),k("dataLabelRollOut"))),a.data("eventArgs",{link:!f.singleseries&&t.link||t.labellink||b.labelLink,text:i.text,index:d}),t.labelTooltext?x.enableToolTip(a,t.labelTooltext):x.disableToolTip(a),C[d]=a}else for(e=0,s=g.prevCategoryIntervalArr.length;e<s;e++)(u=this.getGraphicalElement(g.prevCategoryIntervalArr[e].value+"_label"))&&this.removeGraphicalElement(u)},a._getCategoryArr=function(){var e,t,a,i,n,o,l,s,c,h,u=this.config,d=u.isVertical,g=0,p=0,f=[];for(e=u.tickValues.tickValue,i=b(e),a=e?e.length-1:0,d&&(c=Math.abs(this.getPixel(0,v)-this.getPixel(1,v)),u.labelMaxH>c&&(g=Math.ceil(u.labelMaxH/c)),g>u.labels.step&&(u.labels.step=g)),s=u.labels.step>0?u.labels.step:1,h=1!==this.getZoom(),o=this.getVisibleConfig(),t=i;t<=a;t+=s)(n=e[t])&&(l=(0,r.pluckNumber)(n.x,n.y,t),0!==(0,r.pluckNumber)(n.showlabel,u.showLabels,1)&&(h&&(l<o.minValue||l>o.maxValue)?n.labelCount=p++:("auto"!==u.xAxisLabelMode&&"mixed"!==u.xAxisLabelMode||0!==u.showZeroPlane&&0!==u.showZeroPlaneValue||0!==l)&&(u.labels.drawNormalVal||u.labels.drawLimitVal&&(t===i||t===a))&&(u.labels.drawNormalVal||t===i||t===a)&&(u.labels.drawLimitVal||t!==i&&t!==a)&&(n.labelCount=p++,f.push({index:t,value:l}))));return f},a.getValue=function(e,t){void 0===t&&(t={wrtVisible:!1});var a=this.getScale(),i=this.getTranslation();return a.getDomainValue(t.wrtVisible?e:e-i)},a.getPixel=function(e,t){void 0===t&&(t={wrtVisible:!1});var a=this.getScale(),i=this.getTranslation(),n=a.getRangeValue(e);return t.wrtVisible?n:n+i},a._getCustomPixel=function(e,t,a){if(void 0===a&&(a={wrtVisible:!1}),!t)return this.getPixel(e,a);var i=this.getScale().copy(),n=i.getRange(),o=n[0],r=n[1],l=Math.min(o,r),s=i.getRangeValue(e),c=this.getTranslation();return i.setRange([l,l+t]),a.wrtVisible?s:s+c},a.getTranslation=function(){return this.config.translation||0},a.setScrollType=function(e){"none"!==e&&"smart"!==e&&"always"!==e||(this.config.scrollType=e,"none"===e?this.disableScroll():this.enableScroll())},a.getScrollType=function(){return this.config.scrollType},a._createScrollBar=function(){var e,t=this,a=t.config,i=t.getFromEnv("chart"),n=t.getFromEnv("animationManager"),o=t.getChildren("scrollBar")&&t.getChildren("scrollBar")[0];o||(o=t.attachChild(new d.ScrollBar,"scrollBar")),o.configure({isHorizontal:!a.isVertical}),o.attachEventHandlers({scrollStart:function(t){e=t,i.fireChartInstanceEvent("scrollstart",{scrollPosition:t})},scroll:function(e){var o=a.axisRange.max,r=a.axisRange.min,l=t.getVisibleConfig(),c=l.minValue,h=l.maxValue-c,u=o-h,d=(0,s["default"])(r,u),g=a.isReverse?d(1-e):d(e);t.setState("scrolling",!0),n.setAnimationState("scroll"),i.fireChartInstanceEvent("onScroll",{scrollPosition:e}),t.setVisibleConfig(g,g+h)},scrollEnd:function(t){i.fireChartInstanceEvent("scrollend",{scrollPosition:t,prevScrollPosition:e})}})},a._disposeScrollBar=function(){var e=this.getChildren("scrollBar")&&this.getChildren("scrollBar")[0];e&&e.remove()},a.getScrollbarDimension=function(){var e,t,a,i,n,o,l,s,c,h,u,d,g,p,f,m,b,x=this.getFromEnv("chart"),y=this.config,C=y.isOpposit,k=y.axisRange,S=y.scrollOptions||(y.scrollOptions={}),w=k.max,L=k.min,A=S.vxLength,N=this.getChildren("scrollBar")[0],F=x.getChildren("canvas")[0].config,E=y.scrollbarContainer;if(N)return e=N.config,t=F.canvasLeft,a=F.canvasTop,i=F.canvasHeight,n=F.canvasWidth,o=F.canvasBorderWidth,l=y.showAxisLine&&y.axisLineThickness||0,s=(0,r.pluckNumber)(o,y.lineStartExtension),c=(0,r.pluckNumber)(o,y.lineEndExtension),S.viewPortMin=L,S.viewPortMax=w,h=(f=(g=this.getVisibleConfig()).maxValue-(p=g.minValue))/(m=k.max-k.min),b=(p-k.min)/(m-f),u=S.windowedCanvasWidth=this.getPixel(A,v),d=S.fullCanvasWidth=this.getPixel(w-L,v)-u,e.scrollRatio=h,e.roundEdges=F.isRoundEdges,e.fullCanvasWidth=d,e.windowedCanvasWidth=u,e.parentLayer=E,e.scrollPosition=b,y.isVertical?(e.scrollPosition=y.isReverse?1-b:b,{x:C?t+n+o+(e.padding||0):t-x.config.shift-o,y:a-o-(e.padding||0),height:i+2*o}):(e.scrollPosition=b,{x:t-s,y:C?a-o-l-(x.config.shift||0)-(e.padding||0):a+i+o+l,width:n+s+c})},a.enableScroll=function(){this._createScrollBar()},a.disableScroll=function(){this._disposeScrollBar()},a.isScrollEnabled=function(){var e=this.getChildren("scrollBar");return!(!e||!e[0]||e[0].getState("removed"))},a.setVisibleConfig=function(e,t){var a,i=this.config,n=this.getZoom(),o=this.getScale();return!(e>=t||e<i.axisRange.min||t>i.axisRange.max)&&(a=o.setDomain([e,t]).getDomain(),i.visibleMin=a[0],i.visibleMax=a[1],i.zoom=this._computeZoom(),i.translation=this._computeTranslation(),1===n&&1===this.getZoom()||(i.ticks=this.generateTicks(),i.minorTicks=this.generateMinorTicks(),i.tickValues&&this.calculateTicksOnLabelMode&&this.calculateTicksOnLabelMode()),this.clearReferenceInfo(),this._parseReferenceVisuals(),this.fireEvent("visiblerangeset",{minValue:e,maxValue:t}),this.asyncDraw(),!0)},a.hide=function(){var e=this.config;e.axisContainer&&(e.axisLabelContainerTop.hide(),e.axisContainer.hide(),e.axisNameContainer.hide(),e.axisTrendLabelContainer.hide(),e.axisAxisLineContainer.hide(),e.axisAxisLineContainerBottom.hide())},a.show=function(){var e=this.config;e.axisContainer&&(e.axisLabelContainerTop.show(),e.axisContainer.show(),e.axisNameContainer.show(),e.axisTrendLabelContainer.show(),e.axisAxisLineContainer.show(),e.axisAxisLineContainerBottom.show())},a.getZoom=function(){return this.config.zoom||1},a._computeTranslation=function(){var e=this.config,t=this.getVisibleConfig(),a=(0,r.pluckNumber)(t.minValue,e.axisRange.min,0),i=(0,r.pluckNumber)(e.axisRange.min,t.minValue,0);return this.getPixel(a)-this.getPixel(i)},a._computeZoom=function(){var e=this.config,t=this.getVisibleConfig(),a=(0,r.pluckNumber)(t.minValue,e.axisRange.min,0),i=(0,r.pluckNumber)(t.maxValue,e.axisRange.max,1),n=(0,r.pluckNumber)(e.axisRange.min,t.minValue,0),o=(0,r.pluckNumber)(e.axisRange.max,t.maxValue,1),l=e.maxZoomLimit,s=(o-n)/(i-a);return s>l?l:s},a.getTickValues=function(){var e=this.config.tickValues;return e&&e.tickValue||[]},a.dataLabels=function(e){var t=this.config.axisIndex;return this.getFromEnv("number-formatter").dataLabels(e,t)},a.getAxisBase=function(){var e=this.getVisibleConfig(),t=e.minValue,a=e.maxValue;return t<0&&a>0?0:a<=0?a:t},a._parseReferenceVisuals=function(){var e,t,a=this.config,i=this.getTickValues(),n=i.length,o=this.getFromEnv("chartConfig").is3D;a.isActive||(e=a.lines.isDraw,t=a.band.isDraw,a.lines.isDraw=0,a.band.isDraw=0),a.tickValues?a.drawLabels&&this._parseCategoryLine(i,0,n):a.drawPlotlines&&this._parsePlotLine(),a.tickValues&&"auto"!==a.xAxisLabelMode?(a.drawPlotlines&&!o&&this._parseCategoryPlotLine(),a.drawPlotBands&&!o&&this._parseCategoryPlotBand(),"mixed"===a.xAxisLabelMode&&a.drawPlotBands&&!o&&this._parsePlotBand()):a.drawPlotBands&&!o&&this._parsePlotBand(),a.isActive||(a.lines.isDraw=e,a.band.isDraw=t),a.drawTrendLines&&this._parseTrendLine()},a._parseCategoryPlotBand=function(){var e,t,a,i,n,o=this.config,l=o.tickValues.tickValue,s=o.showAlternateGridColor,c=o.alternateGridColor,h=o.alternateGridAlpha,u=o._allTicks,d=this.getLimit(),g=d.min,p=d.max,m=f(this.getVisibleConfig());if((!l[0]||l[0].x===r.UNDEF&&l[0].y===r.UNDEF)&&s&&o.band.isDraw&&o.categoryNumDivLines)for(e={fill:(0,r.toRaphaelColor)((0,r.convertColor)(c,h)),"stroke-width":0},t=0,n=0;n<u.length;++t,++n)m(u[n],u[n+1])&&(a=u[n],t%2==0&&(i=u[n+1])!==r.UNDEF&&(a===g&&(a="canvasStart"),i===p&&(i="canvasEnd"),this.setReferenceInfo({from:a,to:i,layer:0,type:"band",attr:e})))},a._parseTrendLine=function(){var e,t,a,i,n,o,l,s,c,h,u,d,g,p,f,m,v,b,x,y,C=this.config,k=C.isVertical,S=C.axisIndex,w=this.getFromEnv("chart-attrib"),L=this.getFromEnv("number-formatter"),A=C.axisRange,N=A.max,F=A.min,E=C.trend.trendStyle,_={fontFamily:E.fontFamily,fontSize:E.fontSize,lineHeight:E.lineHeight,fontWeight:E.fontWeight,fontStyle:E.fontStyle},T=C.vTrendLines,P=C.trendLines,D=0;if(l=P||T)for(a=0,i=l.length;a<i;a+=1)for(e=0,t=l[a].line&&l[a].line.length;e<t;e+=1)v=k?"yAxis":"xAxis",(u=l[a].line[e]).startvalue||u.value||0,p=L.getCleanValue((0,r.pluck)(u.startvalue,u.value,0)),f=Number(u.endvalue)||r.UNDEF,n=(0,r.getValidValue)((0,r.parseUnsafeString)((0,r.pluck)(l[a].line[e].tooltext,l[0].tooltext,C.trendlineToolText))),n=(0,r.parseTooltext)(n,[7,15,16,17,18,19],{startValue:p,startDataValue:L[v](p,S),endValue:f||p,endDataValue:L[v](f||p,S),axisName:C.axisName},u),p>N||p<F||f>N||f<F||(T?(d=(0,r.parseUnsafeString)(u.displayvalue||""),s=(0,r.pluckNumber)(u.istrendzone,C.isTrendZone,1),f!==r.UNDEF&&""!==f&&f!==p&&s?(c={fill:(0,r.convertColor)((0,r.pluck)(u.color,C.trendlineColor),(0,r.pluck)(u.alpha,C.trendlineAlpha,40)),"stroke-width":0},h={fill:(0,r.convertColor)((0,r.pluck)(u.color,E.color),(0,r.pluck)(E.valueAlpha,u.alpha,C.trendlineAlpha,99)),"vertical-align":r.POSITION_TOP,text:d}):(m=(0,r.pluckNumber)(u.thickness,C.trendlineThickness,1),c={stroke:(0,r.convertColor)((0,r.pluck)(u.color,C.trendlineColor),(0,r.pluck)(u.alpha,C.trendlineAlpha,99)),"stroke-width":m,"stroke-dasharray":(0,r.pluck)(u.dashed,C.trendlinesAreDashed)===r.ONESTRING?(0,r.getDashStyle)((0,r.pluckNumber)(u.dashlen,C.trendlinesDashLen),(0,r.pluckNumber)(u.dashgap,C.trendlinesDashGap)):r.DASH_DEF},h={fill:(0,r.convertColor)((0,r.pluck)(u.color,E.color),(0,r.pluck)(E.valueAlpha,u.alpha,C.trendlineAlpha,99)),"vertical-align":r.POSITION_TOP,text:d})):P&&(d=(0,r.pluck)((0,r.parseUnsafeString)(u.displayvalue),u.startvalue,""),g=(0,r.pluckNumber)(u.valueonright,C.isOpposit?1:0),s=(0,r.pluckNumber)(u.istrendzone,C.isTrendZone,0),f!==r.UNDEF&&""!==f&&f!==p&&s?(c={fill:(0,r.convertColor)((0,r.pluck)(u.color,C.trendlineColor),(0,r.pluck)(u.alpha,C.trendlineAlpha,40)),"stroke-width":0},h={"text-anchor":g?r.POSITION_START:r.POSITION_END,fill:(0,r.convertColor)((0,r.pluck)(u.color,E.color),(0,r.pluck)(E.valueAlpha,u.alpha,C.trendlineAlpha,99)),text:d}):(m=(0,r.pluckNumber)(u.thickness,C.trendlineThickness,1),c={stroke:(0,r.convertColor)((0,r.pluck)(u.color,C.trendlineColor),(0,r.pluck)(u.alpha,C.trendlineAlpha,99)),"stroke-width":m,"stroke-dasharray":(0,r.pluck)(u.dashed,C.trendlinesAreDashed)===r.ONESTRING?(0,r.getDashStyle)((0,r.pluckNumber)(u.dashlen,C.trendlinesDashLen),(0,r.pluckNumber)(u.dashgap,C.trendlinesDashGap)):r.DASH_DEF},h={"text-anchor":g?r.POSITION_START:r.POSITION_END,fill:(0,r.convertColor)((0,r.pluck)(u.color,E.color),(0,r.pluck)(E.valueAlpha,u.alpha,C.trendlineAlpha,99)),text:d})),h["text-bound"]=h.text?[E.backgroundColor,E.borderColor,E.borderThickness,E.borderPadding,E.borderRadius,E.borderDash]:[],C.showTooltip&&n||(n=r.BLANKSTRING),o=C.forceTrendBelow?0:(0,r.pluckNumber)(u.showontop,w.showtrendlinesontop,0),k?(b=p,y=f!==r.UNDEF?f:p):(b=f!==r.UNDEF?f:p,y=p),x=s&&b!==y?"band":"line",b!==r.UNDEF&&this.setReferenceInfo({from:b,to:y,toolText:n,attr:c,layer:o?3:2,type:x,id:"trend"+D+x}),C.parsedTrendLabels.push({css:_,valueOnRight:g,isTrendZone:s,from:p,to:f,attr:h}),D+=1)},a._parsePlotLine=function(){var e,t,a,i,n,o=this.config,l=o.axisRange,s=l.max,c=l.min,h=m(this.getVisibleConfig()),u=o.showCanvasBorder,d=(0,r.convertColor)(o.divLineColor,o.divLineAlpha),g=o.divLineThickness,p=o.divLineIsDashed?(0,r.getDashStyle)(o.divLineDashLen,o.divLineDashGap):r.DASH_DEF,f=(0,r.convertColor)(o.zeroPlaneColor,o.zeroPlaneAlpha),v=o.zeroPlaneThickness,b=o._allTicks,x=b.length,y=o.showZeroPlaneOnTop,C=o.minorTicks,k=C&&C.length;if(o.lines.isDraw)for(t=0;t<x;++t)h(e=b[t])&&(i={"stroke-dasharray":p},0===o.showZeroPlane&&0===e||u&&(e===s||e===c)||(0===e&&e!==c&&e!==s?(i.stroke=f,i["stroke-width"]=v,y=o.showZeroPlaneOnTop):(y=0,i.stroke=d,i["stroke-width"]=g),this.setReferenceInfo({type:"line",from:e,layer:0===e&&y?3:1,attr:i})));for(n={stroke:o.minorDivlinecolor,"stroke-width":o.minorDivLineThickness,"stroke-dasharray":p},t=0;t<k;++t)a=C[t],this.setReferenceInfo({type:"line",from:a,layer:1,attr:n})},a._parseCategoryLine=function(e,t,a){var i,n,o,l,s,c,h=t,u=a,d=this.config,g=this.getFromEnv("color-manager"),p=this.getFromEnv("chartInstance").getJSONData().categories,f={};if(h=h||0,u=u||e?e.length-1:0,d.drawPlotlines)for(c=1!==this.getZoom(),o=this.getVisibleConfig(),p&&p[0]&&(f.verticalLineColor=p[0].verticallinecolor,f.verticalLineAlpha=p[0].verticallinealpha,f.verticalLineThickness=p[0].verticallinethickness,f.verticalLineDashed=p[0].verticallinedashed,f.verticalLineDashLen=p[0].verticallinedashlen,f.verticalLineDashGap=p[0].verticallinedashgap),i=h;i<=u;i+=1)(n=e[i])&&(s=(0,r.pluckNumber)(n.x,n.y,i),1===Number(n.showverticalline)&&(c&&(s<o.minValue||s>o.maxValue)||((l={stroke:(0,r.convertColor)((0,r.pluck)(n.linecolor,f.verticalLineColor,d.divLineColor,g.getColor("divLineColor")),(0,r.pluck)(n.linealpha,f.verticalLineAlpha,g.getColor("divLineAlpha"))),"stroke-width":(0,r.pluckNumber)(n.linethickness,f.verticalLineThickness,1)})["stroke-dasharray"]=(0,r.pluckNumber)(n.linedashed,f.verticalLineDashed,0)?(0,r.getDashStyle)((0,r.pluckNumber)(n.linedashLen,f.verticalLineDashLen,4),(0,r.pluckNumber)(n.linedashgap,f.verticalLineDashGap,2),l["stroke-width"]):r.DASH_DEF,this.setReferenceInfo({type:"line",from:s,layer:1,attr:l}))))},a._parsePlotBand=function(){var e,t,a,i,n,o,l=this.config,s=l.showAlternateGridColor,c=l.alternateGridColor,h=l.alternateGridAlpha,u=l._allTicks,d=f(this.getVisibleConfig()),g=l.isReverse;if(s&&l.band.isDraw)for(t=1,e={fill:(0,r.toRaphaelColor)((0,r.convertColor)(c,h)),"stroke-width":0},i=0,a=u.length;i<a;++i,++t)d(u[i],u[i+1])&&t%2==0&&u[i+1]!==r.UNDEF&&(o=g?Math.max(u[i],u[i+1]):Math.min(u[i],u[i+1]),n=g?Math.min(u[i],u[i+1]):Math.max(u[i],u[i+1]),this.setReferenceInfo({from:o,to:n,type:"band",layer:0,attr:e}))},a.getReferenceInfo=function(){return this.config.referenceInfo},a.setReferenceInfo=function(e){this.config.referenceInfo.push(e)},a.clearReferenceInfo=function(){var e=this.config;e.referenceInfo=[],e.parsedTrendLabels=[],e.parsedVlineInfo=[]},a.resetStoredLimits=function(){this.config.dataLimit={}},a.decideScroll=function(){var e=this.getScrollType();"always"===e||"smart"===e&&1!==this.getZoom()?this.enableScroll():this.disableScroll()},a.getAxisDimension=function(){var e=this.config.axisDimention;return{x:e.x,y:e.y,opposite:e.opposite,axisLength:e.axisLength}},t}(o["default"]);x.prototype.setAxisDimention=g.setAxisDimention,x.prototype.shiftLabels=g.shiftLabels,x.prototype._createContainer=g._createContainer;var y=x;t["default"]=y},453:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=a(199),r=a(184),l=function(e,t){return e<t?t:e},s=function(e){function t(){return e.apply(this,arguments)||this}(0,n["default"])(t,e);var a=t.prototype;return a.getType=function(){return"axis"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this),this.components={labels:[]};var t=this.config;t.setAdaptiveMin=0,t.adjustDiv=1,t.axisNameWidth=r.UNDEF,t.rotateAxisName=0,t.useEllipsesWhenOverflow=1,t.divLineColor=r.UNDEF,t.divLineAlpha=r.UNDEF,t.divLineThickness=r.UNDEF,t.divLineIsDashed=r.UNDEF,t.divLineDashLen=r.UNDEF,t.divLineDashGap=r.UNDEF,t.showAlternateGridColor=r.UNDEF,t.alternateGridColor=r.UNDEF,t.alternateGridAlpha=r.UNDEF,t.showZeroPlane=1,t.zeroPlaneAlpha=80,t.showZeroPlaneValue=1,t.showZeroPlaneOnTop=1,t.showAxisLine=r.UNDEF,t.axisLineThickness=r.UNDEF,t.axisLineAlpha=r.UNDEF,t.tickLength=0,t.trendlineToolText=r.UNDEF,t.trendlineColor="333333",t.trendlineThickness=1,t.trendlineAlpha=r.UNDEF,t.showTrendlinesOnTop=0,t.trendlinesAreDashed=0,t.trendlinesDashLen=5,t.trendlinesDashGap=2,t.isTrendZone=r.UNDEF,t.showTrendlines=1,t.showTrendlineLabels=1,t.showLabels=1,t.maxLabelHeight=r.UNDEF,t.rotateLabels=r.UNDEF,t.slantLabel=0,t.showAxisValues=1,t.showTooltip=1,t.isActive=!0,t.drawLabels=!0,t.drawOnlyCategoryLine=!1,t.drawLabelsOpposit=!1,t.drawPlotlines=!0,t.drawAxisLine=!0,t.drawPlotBands=!0,t.drawAxisName=!0,t.drawAxisNameOpposit=!1,t.axisNameAlignCanvas=!1,t.drawAxisNameFromBottom=!1,t.drawTrendLines=!0,t.drawTrendLabels=!0,t.drawTick=!0,t.drawTickMinor=!0,t.animateAxis=!0,t.drawAxisLineWRTCanvas=!0,t.isRelativeAxisInverse=!1,t.axisIndex=0,t.uniqueClassName=0,t.viewPortRatio={},t.canvas={},t.axisRange={},t.drawnStaggerLines=r.UNDEF,t.axisDimention={},t.forceZeroTick=!0,t.isZeroTickForced=!1,t.extremeLabels={firstLabel:{},lastLabel:{}},t._setRangeAgain=!1,t._defaultForceDecimal=r.UNDEF,t._defaultDecimalPrecision=r.UNDEF,t.rangeChanged=!1,t.dimensionChanged=!1,t.apparentScrollPos=0,t.visibleMin=r.UNDEF,t.visibleMax=r.UNDEF,t.setPadding=!1,t.trendLimits=r.UNDEF},a.configureAttributes=function(e){var t,a,i,n,o=this.config,s=this.getFromEnv("chart"),c=this.getFromEnv("dataSource"),h=s.config.is3D,u=c.chart,d=this.getFromEnv("number-formatter");t=o.rawAttr=e,o.referenceInfo=[],o.parsedTrendLabels=[],o.parsedVlineInfo=[],o.trendLines=t.trendlines,o.vTrendLines=t.vtrendlines,(0,r.parseConfiguration)(t,o),o.axisName=(0,r.parseUnsafeString)(t.axisName),o.axisValuePadding=o.axisNamePadding||(0,r.pluckNumber)(t.axisValuePadding,4),o.axisNamePadding=o.axisNamePadding||(0,r.pluckNumber)(t.axisNamePadding,5),o.maxLabelWidthPercent=(0,r.pluckNumber)(t.maxLabelWidthPercent),o.maxLabelWidthPercent=Math.abs(o.maxLabelWidthPercent),o.minLabelWidthPercent=Math.abs((0,r.pluckNumber)(t.minLabelWidthPercent)),o.numDivLines=(0,r.pluckNumber)(t.numDivLines,4),o.numDivLines=l(o.numDivLines,0),o.categoryNumDivLines=(0,r.pluckNumber)(t.numDivLines,0),o.axisValuePadding=l(o.axisValuePadding,0),o.isReverse=(0,r.pluckNumber)(t.isReverse,0),o.isOpposit=(0,r.pluckNumber)(t.isOpposit,0),o.isVertical=(0,r.pluckNumber)(t.isVertical,0),o.categoryDivLinesFromZero=1,o.axisMinValue=d.getCleanValue(t.axisMinValue),o.axisMaxValue=d.getCleanValue(t.axisMaxValue),o.zeroPlaneColor=(0,r.pluck)(t.zeroPlaneColor,t.divLineColor),o.zeroPlaneThickness=(0,r.pluck)(t.zeroPlaneThickness,t.divLineThickness),o.axisLineColor=(0,r.convertColor)(t.axisLineColor,t.axisLineAlpha),o.tickAlpha=(0,r.pluckNumber)(t.tickAlpha,o.axisLineAlpha),o.tickColor=(0,r.convertColor)((0,r.pluck)(t.tickColor,t.axisLineColor),o.tickAlpha),o.tickWidth=(0,r.pluckNumber)(t.tickWidth,o.axisLineThickness),o.maxZoomLimit=(0,r.pluckNumber)(u.maxzoomlimit,s.maxzoomlimit,1e3),o.showVLines=(0,r.pluckNumber)(u.showvlines,1),o.showVLinesOnTop=(0,r.pluckNumber)(u.showvlinesontop,0),o.showVLineLabels=(0,r.pluckNumber)(u.showvlinelabels,this.showVLineLabels,1),o.showVLineLabelBorder=(0,r.pluckNumber)(u.showvlinelabelborder,1),o.rotateVLineLabels=(0,r.pluckNumber)(u.rotatevlinelabels,0),o.vLineColor=(0,r.pluck)(u.vlinecolor,"333333"),o.vLineLabelColor=(0,r.pluck)(u.vlinelabelcolor),o.vLineThickness=(0,r.pluck)(u.vlinethickness,1),o.vLineAlpha=(0,r.pluckNumber)(u.vlinealpha,80),o.vLineLabelBgColor=(0,r.pluck)(u.vlinelabelbgcolor,"ffffff"),o.vLineLabelBgAlpha=(0,r.pluckNumber)(u.vlinelabelbgalpha,h?50:100),o.staggerLines=Math.max((0,r.pluckNumber)(u.staggerlines,2),2),o.staggerLines=l(o.staggerLines,1),o.trendlineValuesOnOpp=(0,r.pluck)(t.trendlineValuesOnOpp,t.trendlineValuesOnOpp,0),o.labelDisplay=(0,r.pluck)(t.labelDisplay,"auto").toLowerCase(),o.labelStep=(0,r.pluckNumber)(t.labelStep,1),o.labelStep=Math.round(o.labelStep),o.labelStep=l(o.labelStep,1),o.startPad=0,o.endPad=0,o._oriLabelStep=o.labelStep,o.showLimits=(0,r.pluckNumber)(t.showLimits,o.showAxisValues),o.showUpperLimit=t.showLimits,o.showDivLineValues=(0,r.pluckNumber)(t.showDivLineValues,o.showAxisValues),o.showCanvasBorder=s.getChildren("canvas")[0].config.showCanvasBorder?1:0,o.axisBreak=t.axisBreaks,o.isBreak=!!o.axisBreak,o.isBreak&&this._processAxisBreak(),a=(a=(0,r.getFirstValue)(t.axisNameBorderColor,r.BLANKSTRING))?(0,r.convertColor)(a,(0,r.pluckNumber)(t.axisNameBorderAlpha,t.axisNameAlpha,100)):r.BLANKSTRING,o.name=o.name||{},o.name.style={fontFamily:(0,r.pluck)(t.axisNameFont,t.outCanfontFamily),fontSize:(0,r.pluck)(t.axisNameFontSize,(0,r.pInt)(t.outCanfontSize))+r.PXSTRING,color:(0,r.convertColor)((0,r.pluck)(t.axisNameFontColor,t.outCancolor),(0,r.pluckNumber)(t.axisNameFontAlpha,t.axisNameAlpha,100)),fontWeight:(0,r.pluckNumber)(t.axisNameFontBold,1)?"bold":r.NORMAL,fontStyle:(0,r.pluckNumber)(t.axisNameFontItalic)?"italic":r.NORMAL,border:a||t.axisNameBgColor?(0,r.pluckNumber)(t.axisNameBorderThickness,1)+"px solid":r.UNDEF,borderColor:a,borderThickness:(0,r.pluckNumber)(t.axisNameBorderThickness,1),borderPadding:(0,r.pluckNumber)(t.axisNameBorderPadding,2),borderRadius:(0,r.pluckNumber)(t.axisNameBorderRadius,0),backgroundColor:t.axisNameBgColor?(0,r.convertColor)(t.axisNameBgColor,(0,r.pluckNumber)(t.axisNameBgAlpha,t.axisNameAlpha,100)):r.BLANKSTRING,borderDash:(0,r.pluckNumber)(t.axisNameBorderDashed,0)?(0,r.getDashStyle)((0,r.pluckNumber)(t.axisNameBorderDashLen,4),(0,r.pluckNumber)(t.axisNameBorderDashGap,2)):r.DASH_DEF},o.name.style.lineHeight=(0,r.setLineHeight)(o.name.style),i=(i=(0,r.getFirstValue)(u.trendvaluebordercolor,r.BLANKSTRING))?(0,r.convertColor)(i,(0,r.pluckNumber)(u.trendvalueborderalpha,u.trendvaluealpha,100)):r.BLANKSTRING,o.trend=o.trend||{},o.trend.trendStyle={fontFamily:(0,r.pluck)(u.trendvaluefont,t.outCanfontFamily),color:(0,r.pluck)(u.trendvaluefontcolor,t.trendlineColor,t.outCancolor,"333333"),valueAlpha:u.trendvaluealpha,fontSize:(0,r.pluckFontSize)(u.trendvaluefontsize,(0,r.pInt)(t.outCanfontSize))+r.PXSTRING,fontWeight:(0,r.pluckNumber)(u.trendvaluefontbold)?"bold":r.NORMAL,fontStyle:(0,r.pluckNumber)(u.trendvaluefontitalic)?"italic":r.NORMAL,border:i||u.trendvaluebgcolor?(0,r.pluckNumber)(u.trendvalueborderthickness,1)+"px solid":"",borderColor:i,borderThickness:(0,r.pluckNumber)(u.trendvalueborderthickness,1),borderPadding:(0,r.pluckNumber)(u.trendvalueborderpadding,2),borderRadius:(0,r.pluckNumber)(u.trendvalueborderradius,0),backgroundColor:u.trendvaluebgcolor?(0,r.convertColor)(u.trendvaluebgcolor,(0,r.pluckNumber)(u.trendvaluebgalpha,u.trendvaluealpha,100)):r.BLANKSTRING,borderDash:(0,r.pluckNumber)(u.trendvalueborderdashed,0)?(0,r.getDashStyle)((0,r.pluckNumber)(u.trendvalueborderdashlen,4),(0,r.pluckNumber)(u.trendvalueborderdashgap,2)):r.DASH_DEF},o.trend.trendStyle.lineHeight=(0,r.setLineHeight)(o.trend.trendStyle),o.labels=o.labels||{},o.lines=o.lines||{},o.band=o.band||{},n=(n=(0,r.getFirstValue)(t.labelBdrColor,r.BLANKSTRING))?(0,r.convertColor)(n,(0,r.pluckNumber)(t.labelBdrAlpha,t.labelAlpha,100)):r.BLANKSTRING,o.labels.style={fontFamily:(0,r.pluck)(t.labelFont,t.outCanfontFamily),fontSize:(0,r.pluckNumber)(t.labelFontSize,(0,r.pInt)(t.outCanfontSize))+r.PXSTRING,fontWeight:(0,r.pluckNumber)(t.labelFontBold)?"bold":r.NORMAL,fontStyle:(0,r.pluckNumber)(t.labelFontItalic)?"italic":r.NORMAL,color:(0,r.convertColor)((0,r.pluck)(t.labelFontColor,t.outCancolor),(0,r.pluckNumber)(t.labelAlpha,100)),labelLink:t.labelLink,border:n||t.labelBgColor?(0,r.pluckNumber)(t.labelBdrThickness,1)+"px solid":"",borderColor:n,borderThickness:(0,r.pluckNumber)(t.labelBdrThickness,1),borderPadding:(0,r.pluckNumber)(t.labelBdrPadding,2),borderRadius:(0,r.pluckNumber)(t.labelBdrRadius,0),backgroundColor:t.labelBgColor?(0,r.convertColor)(t.labelBgColor,(0,r.pluckNumber)(t.labelBgAlpha,t.labelAlpha,100)):r.BLANKSTRING,borderDash:(0,r.pluckNumber)(t.labelBdrDashed,0)?(0,r.getDashStyle)((0,r.pluckNumber)(t.labelBdrDashLen,4),(0,r.pluckNumber)(t.labelBdrDashGap,2)):r.DASH_DEF},o.labels.style.lineHeight=(0,r.setLineHeight)(o.labels.style),o.numberFormatterFn=(0,r.pluck)(t.numberFormatterFn),o.apparentScrollPos=t.apparentScrollPos||o.apparentScrollPos,o.axisRange={},o.dataLimit={},o.axisEndLabelDisplaySpace={left:0,right:0,top:0,bottom:0},o.isConfigured=!0,o._defaultForceDecimal=r.UNDEF,o._defaultDecimalPrecision=r.UNDEF,o.lines.isDraw=(0,r.pluckNumber)(t.lines&&t.lines.isDraw,1),o.band.isDraw=(0,r.pluckNumber)(t.band&&t.band.isDraw,1)},a.createContainer=function(e,t,a){var i=this.getFromEnv("animationManager");return this.addContainer(e,i.setAnimation({container:a,attr:t,el:this.getContainer(e)||"group",component:this,label:"group"}))},a.createGroup=function(e,t,a,i){return void 0===i&&(i="group"),this.getFromEnv("animationManager").setAnimation({container:a,attr:t,el:this.config[e]||"group",component:this,label:i})},a.getValuePadding=function(){var e=this.config;return{left:e.startPad,right:e.endPad}},a.draw=function(){var e,t,a,i,n=this.config,o=this.getFromEnv("chart").config,r=n.isVertical,l=o.viewPortConfig,s=this.getChildren().limitUpdater,c=n.viewPortRatio||{};this._createContainer(),a=l.y*l.scaleY,i=l.x*l.scaleX,c.scaleX&&c.scaleY&&(c.scaleX!==l.scaleX||c.scaleY!==l.scaleY)?(c.scaleX=l.scaleX,c.scaleY=l.scaleY,this._drawComponents()):(r?(t=a-l.y*l.scaleY,n.axisContainer.transform("t0,"+t),n.axisLabelContainerTop.transform("t0,"+t)):(e=i-l.x*l.scaleX,n.axisContainer.transform("t"+e+",0"),n.axisLabelContainerTop.transform("t"+e+",0")),this._drawComponents()),this.addExtEventListener("animationcomplete",(function(){s&&s.forEach((function(e){e.draw()}))}),this.getFromEnv("animationmanager")),this.addToEnv("prevScale",this.getScale().copy())},a.setScale=function(e){this.config.scale=e},a.getScale=function(){return this.config.scale},a.getLimit=function(){var e=this.config.axisRange;return{min:e.min,max:e.max,tickInterval:e.tickInterval}},a.getVisibleConfig=function(){var e=this.config;return{minValue:e.visibleMin,maxValue:e.visibleMax}},a.setAxisConfig=function(e){var t,a=this.config;for(t in e)e.hasOwnProperty(t)&&(a[t]=e[t])},a.getAxisConfig=function(e){var t=this.config;return e?t[e]:t},a.getVisibleLength=function(){var e=this.getVisibleConfig();return Math.abs(e.maxValue-e.minValue)},a.getAxisEndLabelDisplaySpace=function(){return this.config.axisEndLabelDisplaySpace||{}},a.getTicksLen=function(){var e=this.config.tickValues;return e&&e.tickValue.length||0},t}(o.ComponentInterface);t["default"]=s},454:function(e,t,a){"use strict";t.__esModule=!0,t.axisAnimationFinal=t.axisAnimationAxis=t.appearingFinal=t.appearingAxis=t["default"]=void 0;var i=[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"axis"}],n=[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}],o={"text.appearing":n,"path.appearing":n,"rect.appearing":n},r={"text.appearing":i,"path.appearing":i,"rect.appearing":i,"scrollbar.appearing":i};t.axisAnimationAxis=r,t.axisAnimationFinal=o,t.appearingFinal=n,t.appearingAxis=i;var l={"initial.axis.numeric":r,"initial.axis.category":r,"initial.axis.log":r,"update.axis.numeric":o,"update.axis.category":o,"update.axis.log":o};t["default"]=l},455:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(e,t){return e.filter((function(e){return t.indexOf(e)<0}))};t["default"]=i},456:function(e,t,a){var i=a(457),n=a(273)((function(e,t,a){for(var n=[],o=0,r=t.length;o<r;)i(e,t[o],a)||i(e,t[o],n)||n.push(t[o]),o+=1;return n}));e.exports=n},457:function(e,t){e.exports=function(e,t,a){for(var i=0,n=a.length;i<n;){if(e(t,a[i]))return!0;i+=1}return!1}},458:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t._parseLabel=t.extractStyleInfo=t.getLabel=t.setAxisPadding=t._createContainer=t.shiftLabels=t.setTickValues=t._drawLabel=t.getPixel=t.getTrendLineLimits=t.setDataLimit=t.setAxisDimention=void 0;var n=i(a(459)),o=i(a(423)),r=a(184),l={wrtVisible:!0},s=function(e,t){var a,i,n,o,l,s,c,h={labelfont:["fontFamily"],labelfontcolor:["fontColor"],labelfontsize:["fontSize",function(e){return e?(0,r.pluckNumber)(e)+"px":r.UNDEF}],labelfontbold:["fontWeight",function(e){return e?"bold":"normal"}],labelfontitalic:["fontStyle",function(e){return e?"italic":"normal"}],labelfontalpha:["fontAlpha"]},u=t.getFromEnv("dataSource").categories,d=u&&u[0]||{},g=function(e){return e},p=!1,f={};for(a in d)"category"===a||a in e||(i=d[a],e[a]=i);for(a in h)l=(o=h[a])[0],s=o[1]||g,i=e[a],n=e[l.toLowerCase()],i===r.UNDEF&&n===r.UNDEF||(c=s(i))===r.UNDEF&&(c=s(n))===r.UNDEF||(f[l]=c,p=!0),p&&(e.style=f)};t.getLabel=function(e){var t=this.config,a=t.tickValues&&t.tickValues.tickValue[e],i={};return a&&a.tooltext&&(i.label=a.label,a.tooltext=(0,r.parseTooltext)(a.tooltext,[3],i)),{label:a&&(a.oriLabel||a.label),tooltext:a&&a.tooltext}},t.setAxisPadding=function(e,t){void 0===e&&(e=0),void 0===t&&(t=0);var a,i=this.config,n=e,o=t,r=this.getScale().getDomain(),l=r[0],s=r[1];1===i.oriCatLen&&(0===n&&(n=.5),0===o&&(o=.5)),a=n-i.startPad,i.startPad=Math.max(i.startPad,n),i.endPad=Math.max(i.endPad,o),a>0&&(i.setPadding=!0,this._setAxisRange({min:l-a,max:s+a})),i.tickValues||i.originalMax&&i.originalMin&&this.setDataLimit(i.originalMax,i.originalMin)},t._createContainer=function(){var e,t,a,i,n,o=this.config,r=o.isVertical,l=this.getLinkedParent().getChildContainer(),s=l.axisBottomGroup,c=l.axisTopGroup,h=-this.getTranslation(),u=r?"T0,"+h:"T"+h+",0";t=this.createContainer("axisNameGroup",{name:"dataset-Name-group"},s),e=this.createContainer("axisLineGroup",{name:"axis-Line-group"},c),a=this.createContainer("axisTrendGroupTop",{name:"dataset-Trend-group-top"},c),i=this.createContainer("axisLabelGroup",{name:"dataset-Label-group"},s),n=this.createContainer("axisLabelGroupTop",{name:"dataset-Label-group"},c),this.getGraphicalElement("scrollbarContainer")||this.addGraphicalElement("scrollbarContainer",this.createGroup("scrollbarContainer",{name:"scrollbar-container"},e,"scrollbar")),o.axisContainer=this.createGroup("axisContainer",{name:"dataset-axis",transform:u},i),o.axisLabelContainerTop=this.createGroup("axisLabelContainerTop",{name:"dataset-top-label",transform:u},n),o.axisAxisLineContainer=this.createGroup("axisAxisLineContainer",{name:"axis-line-tick"},e),o.axisTrendLabelContainer=this.createGroup("axisTrendLabelContainer",{name:"dataset-axis-trend-label"},a),o.axisNameContainer=this.createGroup("axisNameContainer",{name:"dataset-axis-name"},t),o.axisAxisLineContainerBottom=this.createGroup("axisAxisLineContainerBottom",{name:"axis-line-tick-bottom"},s)},t.shiftLabels=function(e,t){var a=this.config.labels;a.shiftX=e,a.shiftY=t},t.setTickValues=function(e){var t,a,i,n=e&&e.length,o=this.config,l=o.startPad||0,c=this.getFromEnv("chart"),h=0,u=o.tickValues={},d=u.tickValue=[],g=u.vline=[],p=u.tickIdMap={},f=o.endPad||0;for(o.hasCategory=1,t=0;t<n;t+=1)i=(a=(0,r.extend2)({},e[t])).id||""===a.id,a.vline?(a.startIndex=d.length-1,g.push(a)):(i&&(p[a.id.toLowerCase()]={tickObj:a,index:h}),(o.mapTickValuesById&&i||!o.mapTickValuesById)&&(s(a,c),d.push(a),d[h].label=(0,r.parseUnsafeString)(d[h].label),h+=1));o.oriCatLen=h,this._setAxisRange({max:Number((0,r.toPrecision)(h-1+f,10)),min:Number((0,r.toPrecision)(0-l,10)),tickInterval:Number((0,r.toPrecision)(1,10))})},t._parseLabel=function(){var e,t,a,i,n,o,s,c,h,u,d,g,p,f,m,v,b=this,x=b.config,y=b.getLinkedItem("canvas").getEffectiveDimensions(),C=x.axisDimention,k=b.getFromEnv("chart"),S=k.config,w=x.axisRange,L=x.isOpposit,A=x.labels,N=b.components,F=N.labels,E=A.style,_=k.getFromEnv("smartLabel"),T=x.isVertical,P=w.max,D=w.min,I=b.getFromEnv("number-formatter"),M=y.top,O=y.left,R=M+y.height,V=O+y.width,B=x.labelPadding,G=x.extremeLabels,H=T?C.x:C.y,z=C.opposite,W=x.labelMaxH,j=x.labelMaxW,U=w.tickInterval,q=Math.abs(b.getPixel(D,l)-b.getPixel(D+U,l)),Y=[],X=x.ticks,K=0,Z=x.isReverse,J=(0,r.pluckNumber)(b.getFromEnv("chart-attrib").showzeroplanevalue),$=!0,Q=b.getLimit();if(_.useEllipsesOnOverflow(S.useEllipsesWhenOverflow),_.setStyle({fontSize:E.fontSize,fontFamily:E.fontFamily,lineHeight:E.lineHeight,fontWeight:E.fontWeight}),(i=E.lineHeight)&&-1!==i.indexOf("px")&&(i=parseFloat(i.replace("px",""))),0===J&&($=!1),x.labels.isDraw){var ee;if(x.drawLabelsOpposit&&(L=!L,H=z),h={fill:E.color,"line-height":i,"font-size":E.fontSize,opacity:1,cursor:E.labelLink?"pointer":""},a=x.labels.rotation,T?(x.labelMaxH>q&&!x.tickValues&&(s=Math.ceil(x.labelMaxH/q)),h["text-anchor"]=L?r.POSITION_START:r.POSITION_END):(x.labelMaxW>q&&!x.tickValues&&(s=Math.ceil(x.labelMaxW/q)),a?(h["text-anchor"]=L?r.POSITION_START:r.POSITION_END,h["vertical-align"]="middle"):h["vertical-align"]=L?r.POSITION_BOTTOM:r.POSITION_TOP,d=O,g=S.width-V),s>x.labels.step&&(x.labels.step=s),c=x.numberFormatterFn?I[x.numberFormatterFn]:x.isPercent?I.yAxisPercentValue:T?I.yAxis:I.xAxis,G.firstLabel={},G.lastLabel={},v=X.filter((function(e,t,a){return 0!==e||x.showZeroPlaneValue?!(!T&&(x.isReverse?0!==t:t!==a.length-1)&&b.getPixel(e,l)+x.labelMaxW>V)&&(t%x.labels.step==0?(Y[K++]=t,!0):!(!x.labels.drawLimitVal||0!==t&&t!==a.length-1)&&(Y[K++]=t,!0)):!(!$||$&&Q.max!==e&&Q.min!==e)&&(Y[K++]=t,!0)})),x.isZeroTickForced&&-1!==v.indexOf(0))K=0,Y=[],m=b.getPixel(0),v=v.filter((function(e,t,a){return ee=b.getPixel(e),0===a[t+1]||0===a[t-1]?T?!(ee+W>=m&&m>=ee-W)&&(Y[K++]=t,!0):!(ee+j>=m&&m>=ee-j)&&(Y[K++]=t,!0):(Y[K++]=t,!0)}));for(n=(T?j:q/2)*x.labels.step,o=T?q/2:W,N.labelIndexArr=Y.slice(),e=0,t=v.length;e<t;e+=1)p=v[e],F[Y[e]]=F[Y[e]]||{config:{props:{label:{}}}},u=Object.assign({},h),f=r.UNDEF,(x.labels.drawNormalVal||p===D||p===P)&&(x.labels.drawLimitVal||p!==D&&p!==P)?p===D&&x.lowerLimitDisplay&&x.labels.drawLimitVal?(f=_.getSmartText(x.lowerLimitDisplay,n,o+i/2),u.text=f.text,u.tooltext=f.tooltext):p===P&&x.upperLimitDisplay&&x.labels.drawLimitVal?(f=_.getSmartText(x.upperLimitDisplay,n,o+i/2),u.text=f.text,u.tooltext=f.tooltext):(u.text=r.BLANKSTRING+c.call(I,p,x.axisIndex),f=_.getOriSize(u.text)):u.text=r.BLANKSTRING,T?(u.x=L?(H||V)+B:(H||O)-B,u.y=b.getPixel(p,l),(Z&&p===D&&x.lowerLimitDisplay||!Z&&p===P&&x.upperLimitDisplay)&&f&&f.height>i&&(u["vertical-align"]=r.POSITION_BOTTOM),(Z&&p===P&&x.upperLimitDisplay||!Z&&p===D&&x.lowerLimitDisplay)&&f&&f.height>i&&(u["vertical-align"]=r.POSITION_TOP),x.placeValuesInside&&(u["text-anchor"]=L?r.POSITION_END:r.POSITION_START)):(u.x=b.getPixel(p,l),u.y=L?(H||M)-B:(H||R)+B,(!Z&&p===D||Z&&p===P)&&f&&f.width>2*d&&(u["text-anchor"]=r.POSITION_START),(!Z&&p===P||Z&&p===D)&&f&&f.width>2*g&&(u["text-anchor"]=r.POSITION_END),x.placeValuesInside?u["vertical-align"]=L?r.POSITION_TOP:r.POSITION_BOTTOM:u["vertical-align"]=L?r.POSITION_BOTTOM:r.POSITION_TOP),u["text-bound"]=void 0===p?[]:[(0,r.pluck)(E.backgroundColor,r.BLANKSTRING),(0,r.pluck)(E.borderColor,r.BLANKSTRING),(0,r.pluck)(E.borderThickness,r.BLANKSTRING),(0,r.pluck)(E.borderPadding,0),(0,r.pluck)(E.borderRadius,0),(0,r.pluck)(E.borderDash,"none")],A.shiftX&&(u.x+=A.shiftX),A.shiftY&&(u.y+=A.shiftY),u.transform=(0,r.getSuggestiveRotation)(a,u.x,u.y),F[Y[e]].config.props.label.attr=u}},t._drawLabel=function(){var e,t,a,i,o,r,l,s,c,h,u,d=this.getFromEnv("chart"),g=this.config,p=this.getFromEnv("animationManager"),f=this.getFromEnv("toolTipController"),m=g.axisRange,v=g.labels.style,b=this.components,x=m.max,y=m.min,C=g.axisContainer,k=g.extremeLabels,S=g.ticks,w=[],L={fontFamily:v.fontFamily,fontSize:v.fontSize,fontWeight:v.fontWeight,fontStyle:v.fontStyle,lineHeight:v.lineHeight},A=function(e){return function(t){d.plotEventHandler(this,t,e)}};if(g.labels.isDraw)for(u=b.labels,h=b.labelIndexArr,C.css(L),t=0,a=h&&h.length;t<a;t+=1)o=(s=S[e=h[t]])+"_label",i=this.getGraphicalElement(o),l=u[e].config.props.label.attr,(i=this.addGraphicalElement(o,p.setAnimation({el:i||"text",attr:l,container:C,data:{value:s},component:this,label:"text"}))).on("fc-click",A("dataLabelClick")).hover(A("dataLabelRollOver"),A("dataLabelRollOut")),i.data("eventArgs",{link:v.labelLink,text:l.text,index:e}),l.tooltext?f.enableToolTip(i,l.tooltext):f.disableToolTip(i),s===x?k.lastLabel.graphic=i:s===y&&(k.firstLabel.graphic=i),w.push(o);for(e=0,a=(c=(0,n["default"])(g.prevIntervalArr,w)).length;e<a;e++)(r=this.getGraphicalElement(c[e]))&&this.removeGraphicalElement(r);g.prevIntervalArr=w},t.getPixel=function(e){return this.getScale().getRangeValue(e)},t.getTrendLineLimits=function(){var e,t,a,i,n=this.config,l=n.trendLines||n.vTrendLines||n.trendPoints,s=l&&l[0]&&l[0].line||l&&l.point;if(n.trendLimits)return n.trendLimits;var c=(0,o["default"])(s,(function(e){return""===e.startvalue?r.UNDEF:Number(e.startvalue)}));e=c[0],t=c[1];var h=(0,o["default"])(s,(function(e){return""===e.endvalue?r.UNDEF:Number(e.endvalue)}));return a=h[0],i=h[1],n.trendLimits=(0,o["default"])([e,t,a,i],(function(e){return Number(e)})),n.trendLimits},t.setDataLimit=function(e,t){var a,i,n,l,s=e,c=t,h=this.config,u=this.getFromEnv("dataSource").categories,d=u&&u[0]&&u[0].category,g=h.startPad||0,p=h.endPad||0,f=h.xAxisLabelMode;if("categories"===f||"mixed"===f){var m=(0,o["default"])(d,(function(e){return Number(e.x)}));a=m[0],i=m[1]}var v=this.getTrendLineLimits();n=v[0],l=v[1];var b=(0,o["default"])([n,l,a,i,c,s],(function(e){return Number(e)}));c=b[0],s=b[1],h.originalMax=s,h.originalMin=c,s=h.isPercent?100:s+p,c=h.isPercent?0:c-g,this._setAxisRange({min:c,max:s}),h.axisRange.tickInterval!==r.UNDEF&&this._adjustNumberFormatter(h.axisRange.tickInterval)},t.setAxisDimention=function(e){var t=this.getScale(),a=this.config,i=this.getFromEnv("chart").config,n=a.axisDimention||(a.axisDimention={}),o=a.isReverse;n.opposite=(0,r.pluckNumber)(e.opposite,n.opposite),n.x=(0,r.pluckNumber)(e.x,n.x,i.canvasLeft),n.y=(0,r.pluckNumber)(e.y,n.y,i.canvasTop),n.axisLength=(0,r.pluckNumber)(e.axisLength,n.axisLength),a.isVertical?o?t.setRange([n.y+n.axisLength,n.y]):t.setRange([n.y,n.y+n.axisLength]):o?t.setRange([n.x+n.axisLength,n.x]):t.setRange([n.x,n.x+n.axisLength]),a.translation=this._computeTranslation()},t.extractStyleInfo=s},459:function(e,t,a){var i=a(460),n=a(269)((function(e,t){for(var a=[],n=0,o=e.length;n<o;)i(e[n],t)||i(e[n],a)||(a[a.length]=e[n]),n+=1;return a}));e.exports=n},460:function(e,t,a){var i=a(461);e.exports=function(e,t){return i(t,e,0)>=0}},461:function(e,t,a){var i=a(462);e.exports=function(e,t,a){var n,o;if("function"==typeof e.indexOf)switch(typeof t){case"number":if(0===t){for(n=1/t;a<e.length;){if(0===(o=e[a])&&1/o===n)return a;a+=1}return-1}if(t!=t){for(;a<e.length;){if("number"==typeof(o=e[a])&&o!=o)return a;a+=1}return-1}return e.indexOf(t,a);case"string":case"boolean":case"function":case"undefined":return e.indexOf(t,a);case"object":if(null===t)return e.indexOf(t,a)}for(;a<e.length;){if(i(e[a],t))return a;a+=1}return-1}},462:function(e,t,a){var i=a(269),n=a(463),o=i((function(e,t){return n(e,t,[],[])}));e.exports=o},463:function(e,t,a){var i=a(464),n=a(457),o=a(465),r=a(276),l=a(466),s=a(467),c=a(469);function h(e,t,a,o){var r=i(e),l=i(t);function s(e,t){return u(e,t,a.slice(),o.slice())}return!n((function(e,t){return!n(s,t,e)}),l,r)}function u(e,t,a,i){if(l(e,t))return!0;var n=c(e);if(n!==c(t))return!1;if(null==e||null==t)return!1;if("function"==typeof e["fantasy-land/equals"]||"function"==typeof t["fantasy-land/equals"])return"function"==typeof e["fantasy-land/equals"]&&e["fantasy-land/equals"](t)&&"function"==typeof t["fantasy-land/equals"]&&t["fantasy-land/equals"](e);if("function"==typeof e.equals||"function"==typeof t.equals)return"function"==typeof e.equals&&e.equals(t)&&"function"==typeof t.equals&&t.equals(e);switch(n){case"Arguments":case"Array":case"Object":if("function"==typeof e.constructor&&"Promise"===o(e.constructor))return e===t;break;case"Boolean":case"Number":case"String":if(typeof e!=typeof t||!l(e.valueOf(),t.valueOf()))return!1;break;case"Date":if(!l(e.valueOf(),t.valueOf()))return!1;break;case"Error":return e.name===t.name&&e.message===t.message;case"RegExp":if(e.source!==t.source||e.global!==t.global||e.ignoreCase!==t.ignoreCase||e.multiline!==t.multiline||e.sticky!==t.sticky||e.unicode!==t.unicode)return!1}for(var d=a.length-1;d>=0;){if(a[d]===e)return i[d]===t;d-=1}switch(n){case"Map":return e.size===t.size&&h(e.entries(),t.entries(),a.concat([e]),i.concat([t]));case"Set":return e.size===t.size&&h(e.values(),t.values(),a.concat([e]),i.concat([t]));case"Arguments":case"Array":case"Object":case"Boolean":case"Number":case"String":case"Date":case"Error":case"RegExp":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"ArrayBuffer":break;default:return!1}var g=s(e);if(g.length!==s(t).length)return!1;var p=a.concat([e]),f=i.concat([t]);for(d=g.length-1;d>=0;){var m=g[d];if(!r(m,t)||!u(t[m],e[m],p,f))return!1;d-=1}return!0}e.exports=u},464:function(e,t){e.exports=function(e){for(var t,a=[];!(t=e.next()).done;)a.push(t.value);return a}},465:function(e,t){e.exports=function(e){var t=String(e).match(/^function (\w*)/);return null==t?"":t[1]}},466:function(e,t,a){var i=a(269)((function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}));e.exports=i},467:function(e,t,a){var i=a(270),n=a(276),o=a(468),r=!{toString:null}.propertyIsEnumerable("toString"),l=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],s=function(){"use strict";return arguments.propertyIsEnumerable("length")}(),c=function(e,t){for(var a=0;a<e.length;){if(e[a]===t)return!0;a+=1}return!1},h=i("function"!=typeof Object.keys||s?function(e){if(Object(e)!==e)return[];var t,a,i=[],h=s&&o(e);for(t in e)!n(t,e)||h&&"length"===t||(i[i.length]=t);if(r)for(a=l.length-1;a>=0;)n(t=l[a],e)&&!c(i,t)&&(i[i.length]=t),a-=1;return i}:function(e){return Object(e)!==e?[]:Object.keys(e)});e.exports=h},468:function(e,t,a){var i=a(276),n=Object.prototype.toString;e.exports=function(){return"[object Arguments]"===n.call(arguments)?function(e){return"[object Arguments]"===n.call(e)}:function(e){return i("callee",e)}}},469:function(e,t,a){var i=a(270)((function(e){return null===e?"Null":e===undefined?"Undefined":Object.prototype.toString.call(e).slice(8,-1)}));e.exports=i},470:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(451)),r=i(a(449)),l=i(a(471)),s=a(184),c=a(458),h=s.preDefStr.POSITION_START,u=s.preDefStr.POSITION_MIDDLE,d=s.preDefStr.POSITION_TOP,g=s.preDefStr.POSITION_BOTTOM,p=s.preDefStr.POSITION_END,f={wrtVisible:!0},m=function(e){function t(){var t;return(t=e.call(this)||this).config.scale=new l["default"],t}(0,n["default"])(t,e);var a=t.prototype;return a.getName=function(){return"category"},a.getCategoryFromId=function(e){var t=this.config.tickValues;return(t&&t.tickIdMap)[e]||{}},a.generateTicks=function(){var e=this.getScale(),t=this.config,a=e.getDomain(),i=t.categoryNumDivLines+1,n=(a[1]-a[0])/i,o=t.axisRange,l=o.min,s=o.max,c=(s-l)/i;return t._allTicks=(0,r["default"])(l,s,c).concat(s),o.tickInterval=c,(0,r["default"])(a[0],a[1],n).concat(a[1])},a._parseCategoryVline=function(){var e,t,a,i,n,o,r,l,c,f,m,v,b,x,y,C,k,S,w,L,A,N,F,E,_,T,P,D,I,M,O=this.config,R=O.axisRange,V=R.min,B=R.max,G=this.getFromEnv("chart").config,H=G.style||{},z=O.isVertical,W={fontFamily:G.style.inCanfontFamily,fontSize:G.style.inCanfontSize,color:G.style.inCancolor,lineHeight:G.style.inCanLineHeight};for(a=(t=O.tickValues.vline).length,P=1!==this.getZoom(),D=this.getVisibleConfig(),o=0;o<a;o++)i=t[o],n=(0,s.parseUnsafeString)(i.label),r=Boolean((0,s.pluckNumber)(i.showlabelborder,O.showVLineLabelBorder,1)),e=Boolean((0,s.pluckNumber)(i.showlabelbackground,1)),"center"===(l=(0,s.pluck)(i.labelhalign,z?h:u))?l=u:"left"===l?l=h:"right"===l&&(l=p),(c=(0,s.pluck)(i.labelvalign,z?u:g).toLowerCase())===u?c=u:c===d?c=g:c===g&&(c=d),f=(0,s.pluckNumber)(i.labelposition,0),m=(0,s.pluckNumber)(i.lineposition,.5),v=(0,s.pluckNumber)(i.showvlines,O.showVLines,1),b=(0,s.pluckNumber)(i.alpha,O.vLineAlpha,80),x=(0,s.pluck)(i.color,O.vLineColor).replace(/^#?/,"#"),y=e?(0,s.pluck)(i.labelbgcolor,O.vLineLabelBgColor,"333333").replace(/^#?/,"#"):s.BLANKSTRING,E=(0,s.pluck)(i.labelcolor,O.vLineLabelColor,i.color,H.inCancolor,O.vLineColor).replace(/^#?/,"#"),C=(0,s.pluckNumber)(i.thickness,O.vLineThickness,1),2,k=Boolean(Number((0,s.pluck)(i.dashed,0))),S=(0,s.pluckNumber)(i.dashlen,5),L=(0,s.pluckNumber)(i.dashgap,2),w=W.fontSize,w=parseInt(w.replace(/px/i,""),10),_=(0,s.pluckNumber)(i.rotatelabel,O.rotateVLineLabels)?270:0,m=m<0||m>1?.5:m,f=f<0||f>1?0:f,x=(0,s.convertColor)(x,v?b:"0"),M=i.animate&&!z?i.startIndex+1:i.startIndex,T=this._getVlinePos(M,m)-(i.animate?i.leftShift:0),P&&(T<D.minValue||T>D.maxValue)||T<V||T>B||(A={opacity:1,stroke:x,"stroke-width":C,"stroke-dasharray":k?(0,s.getDashStyle)(S,L):"none"},F={opacity:1,text:n,"text-anchor":l,"vertical-align":c,"text-bound":[]},N={fontSize:W.fontSize,fontFamily:W.fontFamily,lineHeight:W.lineHeight},I={from:T,layer:(0,s.pluckNumber)(i.showontop,O.showVLinesOnTop,0)?3:2,attr:A,type:"line",startIndex:i.startIndex,linePosition:m},n&&(F["text-bound"]=[y,v&&r?x:s.BLANKSTRING,v&&r?1:0,2,s.UNDEF,v&&r?"solid":s.BLANKSTRING],F.fill=v?E:x,I.text={label:n,attr:F,layer:4,labelRotation:_,labelPosition:f,css:N}),this.setReferenceInfo(I),this.config.parsedVlineInfo.push(I))},a._parseReferenceVisuals=function(){e.prototype._parseReferenceVisuals.call(this),this.config.drawPlotlines&&this._parseCategoryVline()},a.categoryInsert=function(e,t,a){var i,n,o,r,l,c=e,h=this.config,u=h.axisRange.min,d=t.length,g=h.endPad||0;for(i=h.tickValues.tickValue,o=h.tickValues.tickIdMap,n=h.tickValues.vline,r=0;r<d;r+=1)"true"!==(l=(0,s.extend2)({},t[r])).vline&&!0!==l.vline&&1!==l.vline&&"1"!==l.vline?(l.id&&(o[l.id]={tickObj:l,i:c}),i.splice(c,0,l),c+=1):(l.startIndex=c-2,n.push(l));a&&this._setAxisRange({min:u,max:Number((0,s.toPrecision)(i.length-1+g,10))})},a.categoryDelete=function(e,t,a){var i,n,o,r=this.config,l=r.axisRange,s=l.min;for(n=0,o=(i=r.tickValues.vline).length;n<o;n++)i[n].animate=!0,i[n].leftShift=t;r.tickValues.tickValue.splice(e,t),this._shiftVline(e,t,"left"),a&&this._setAxisRange({min:s,max:l.max-t})},a._shiftVline=function(e,t,a){var i,n,o=this.config,r=o.tickValues.vline,l=o.tickValues.tickValue.length,s=r.length;for(i=0;i<s;i+=1)(n=r[i]).startIndex>=e&&("right"===a?n.startIndex+=t:n.startIndex-=t,(n.startIndex<0||n.startIndex>=l)&&(r.splice(i,1),s-=1,i-=1))},a.categoryTranslate=function(e){var t,a=e,i=this.config;a=(a||0)*(this.getPixel(1,f)-this.getPixel(0,f)),i.isReverse&&(a=-a),t=["T",a,",","0"].join(""),this.realTimeTranslatableGroups=[{group:i.axisContainer,translationStr:t},{group:i.axisTrendLabelContainer,translationStr:t}]},a.updateTicksValues=function(e,t){var a,i,n,o,r,l,s,c=this.config,h=c.parsedVlineInfo;if((a=c.tickValues.tickValue)[e])for(s in t)t.hasOwnProperty(s)&&("x"===s&&(i=!0),a[e][s]=t[s]);if(i)for(o=0,r=h.length;o<r;++o)if((l=(n=h[o]).startIndex)===e)n.from=this._getVlinePos(l,n.linePosition);else if(l+1===e){n.from=this._getVlinePos(l,n.linePosition);break}},a._getVlinePos=function(e,t){var a,i,n,o=this.getTickValues(),r=this.config,l=this.getLimit(),c=l.min,h=l.max,u=o[e],d=o[e+1];return u?d||(a=o[0]&&o[0].x?h:r.oriCatLen-1,n=!0):(a=o[0]&&o[0].x?c:-1,n=!0),i=n?t:((a=(0,s.pluckNumber)(u.x,u.y,e))-(0,s.pluckNumber)(d.x,d.y,e+1))*t,a+Math.abs(i)},a.getInterval=function(){if(this)return 1},a._setAxisRange=function(e){var t,a,i=e.min,n=e.max,o=this.config,l=o.axisRange,c=o.periodLength,h=o.dataLimit,u=h.max,d=h.min;i>n||(u===n&&d===i||(t=!0),o.visibleMin===s.UNDEF||o.setPadding||t?(h.max=n,h.min=i,c&&(o.categoryNumDivLines=(n-i)/c-1),a=(n-i)/(o.categoryNumDivLines+1),this.getScale().setDomain([i,n]),o.ticks=(0,r["default"])(i,n,a).concat(n),o._allTicks=o.ticks.slice(),l.min=i,l.max=n,l.tickInterval=a,this.setVisibleConfig(l.min,l.max)):o.setPadding=!1)},t}(o["default"]);m.prototype.setTickValues=c.setTickValues;var v=m;t["default"]=v},471:function(e,t,a){"use strict";var i=a(182),n=a(178);t.__esModule=!0,t["default"]=void 0;var o=n(a(198)),r=i(a(427)),l=n(a(429)),s=function(e){function t(){return e.call(this,r.deInterpolateLinear,l["default"])||this}return(0,o["default"])(t,e),t.prototype.copy=function(){return(0,r.copyScale)(this,new t)},t}(r["default"]);t["default"]=s},472:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=function(e){var t,a=e._parseCanvasCosmetics&&e._parseCanvasCosmetics();if((0,r.componentFactory)(e,n["default"],"canvas",e.config.showVolumeChart?2:1),t=e.getChildren("canvas"))for(var i=0,l=t.length;i<l;i++)t[i].configure(a),(0,r.componentFactory)(t[i],o["default"],"axisRefVisualCartesian")};var n=i(a(409)),o=i(a(473)),r=a(184)},473:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=a(199),r=i(a(429)),l=i(a(455)),s=a(452),c=i(a(474)),h=a(192);(0,h.addDep)({name:"cartesianAxisRefAnimation",type:"animationRule",extension:c["default"]});var u=function(e){function t(){var t;return(t=e.call(this)||this).config.map={},t.config.explicitDrawItems={},t}(0,n["default"])(t,e);var a=t.prototype;return a.getType=function(){return"axisRefVisuals"},a.getName=function(){return"axisRefVisualsCartesian"},a.draw=function(){var e,t,a,i,n,o,r,l=this.getDrawingInfo(),s=this.getexplicitDrawItems(),c=this.config,h=c.map,u={},d=this.getLinkedParent(),g=d.getAxes(),p=[],f=d.getChildContainer("axisReferenceVisualsFloor"),m=d.getChildContainer("axisReferenceVisualsBottom"),v=d.getChildContainer("axisReferenceVisualsMiddle"),b=d.getChildContainer("axisReferenceVisualsTop"),x=d.getChildContainer("axisReferenceVisualsCeil");for(d.config.trendlines=[],d.config.vtrendlines=[],t=0;t<g.length;++t)p.push(g[t].axis.getId());for(i in c.containers=[f,m,v,b,x],l)if(l.hasOwnProperty(i)&&(n=this.getLinkedItem(i),p.indexOf(n.getId())>=0))for((o=u[i])||(o=u[i]=[]),e=l[i],t=0;t<e.length;++t)"band"===(a=(r=e[t]).type)?o.push.apply(o,this.createBand(r,n)):"line"===a&&o.push.apply(o,this.createLine(r,n));if(c.isSmartDrawing)for(i in h)h.hasOwnProperty(i)&&!s[i]&&this.getLinkedItem(i)&&(u[i]=h[i]);this.resetexplicitDrawItems(),this.removeExtraElements(u)},a.getDrawingInfo=function(){var e,t,a={},i=this.getexplicitDrawItems(),n=this.isCanvasChnaged(),o=(this.config.isSmartDrawing=Object.keys(i).length&&!n)?i:this.getLinkedItem();for(e in o)o.hasOwnProperty(e)&&(t=o[e],a[e]=t.getReferenceInfo());return a},a.createLine=function(e,t){var a,i,n,o,l=this.config.containers,c=l[e.layer],h=t.config,u=this.getFromEnv("paper"),d=this.getFromEnv("chart").getName(),g=this.getLinkedParent(),p=this.getFromEnv("animationManager"),f=this.getFromEnv("toolTipController"),m=g.config,v=m.trendlines,b=h.isVertical,x=m.canvasLeft,y=m.canvasTop,C=y+m.canvasHeight,k=x+m.canvasWidth,S=(0,r["default"])(x,k),w=(0,r["default"])(y,C),L=t.getScale(),A=L.getRangeValue(e.from),N=void 0!==e.to&&L.getRangeValue(e.to)||A,F=b?["M",x,A,"L",k,N]:["M",A,C,"L",N,y],E=e.attr,_=e.text,T=_&&_.attr,P=_&&_.labelPosition||0,D=t.getId(),I=e.id||e.from,M=D+"_"+I,O=this.getGraphicalElement(M),R=e.handlers,V={start:e.from,end:e.to};for(n in E.path=(0,s.getCrispPath)(F,(o=E["stroke-width"],null!==o?E["stroke-width"]:1)).path.toString(),/trend/.test(e.id)&&v.push({x1:F[1],y1:F[2],x2:F[4],y2:F[5],tooltext:e.toolText,tolerance:E["stroke-width"]<5?2.5:E["stroke-width"]/2}),E["stroke-linecap"]="butt",(O=this.addGraphicalElement(M,p.setAnimation({container:c,el:O||"path",attr:E,component:this,axis:t,data:{value:V,path:F},label:"path"}))).data("data",V),_&&(a=D+"_"+I+T.text,i=this.getGraphicalElement(a),b?(T.x=S(P),T.y=A):(T.x=A,T.y=w(P)),T.text=_.label,T.transform=u.getSuggestiveRotation(_.labelRotation,T.x,T.y),(i=this.addGraphicalElement(a,p.setAnimation({container:l[_.layer],el:i||"text",attr:T,component:this,axis:t,data:{value:e.from},label:"text",css:_.css}))).data("data",e.from)),/zoomscatter/i.test(d)||(e.toolText?f.enableToolTip(O,e.toolText):f.disableToolTip(O)),R)R.hasOwnProperty(n)&&(O.on(n,R[n].bind(t)),i&&i.on(n,R[n].bind(t)));return _?[M,a]:[M]},a.createBand=function(e,t){var a,i,n,o,r,l,s=this.config.containers[e.layer],c=t.config,h=this.getFromEnv("animationManager"),u=this.getFromEnv("toolTipController"),d=this.getLinkedParent(),g=this.getFromEnv("chart").getName(),p=d.config,f=c.isVertical,m=p.canvasLeft,v=p.canvasTop,b=v+p.canvasHeight,x=m+p.canvasWidth,y=t.getScale(),C=e.from,k=void 0!==e.to?e.to:C,S=t.getId(),w=e.attr,L=e.handlers;for(r in a="canvasStart"===C?f?v:m:y.getRangeValue(C),i="canvasEnd"===k?f?b:x:y.getRangeValue(k),l=Math.abs(a-i),f?(w.x=m,w.y=Math.min(a,i),w.width=x-m,w.height=l):(w.x=Math.min(a,i),w.y=v,w.width=l,w.height=b-v),n=S+"_"+(e.id||w.x+"_"+w.y),o=this.getGraphicalElement(n),/trend/.test(e.id)&&d.config.vtrendlines.push({x1:w.x,y1:w.y,x2:w.x+w.width,y2:w.y+w.height,tooltext:e.toolText,tolerance:w["stroke-width"]<5?2.5:w["stroke-width"]/2,isTrendZone:1}),o=this.addGraphicalElement(n,h.setAnimation({container:s,el:o||"rect",attr:w,component:this,label:"rect"})),/zoomscatter/i.test(g)||(e.toolText?u.enableToolTip(o,e.toolText):u.disableToolTip(o)),L)L.hasOwnProperty(r)&&o.on(r,L[r].bind(t));return[n]},a.removeExtraElements=function(e){var t,a,i,n,o,r,s=this.config.map;for(t in s)if(e[t])for(n=(r=(0,l["default"])(s[t],e[t])).length,i=0;i<n;++i)(o=this.getGraphicalElement(r[i]))&&this.removeGraphicalElement(o);else for(n=(a=s[t]).length,i=0;i<n;++i)(o=this.getGraphicalElement(a[i]))&&this.removeGraphicalElement(o);this.config.map=e},a.setLinkedItem=function(t,a){e.prototype.setLinkedItem.call(this,t,a);var i,n=this;"axis"===a.getType()&&n.addExtEventListener("predraw",(function(e){(i=e.sender).getState("removed")&&(n.removeLinkedItem(i.getId()),n.asyncDraw())}),a)},a.addexplicitDrawItems=function(e,t){this.config.explicitDrawItems[e]=t},a.getexplicitDrawItems=function(){return this.config.explicitDrawItems},a.resetexplicitDrawItems=function(){this.config.explicitDrawItems={}},a.isCanvasChnaged=function(){var e,t=this.getLinkedParent().getEffectiveDimensions(),a=this.config;return e=JSON.stringify(t)!==JSON.stringify(a.canvasDim),a.canvasDim=t,e},t}(o.ComponentInterface);t["default"]=u},474:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=a(454),n={"initial.axisRefVisuals.axisRefVisualsCartesian":i.axisAnimationAxis,"update.axisRefVisuals.axisRefVisualsCartesian":i.axisAnimationFinal};t["default"]=n},475:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=function(e){var t,a,i,r,l,s,c,h=e.getChildren("canvas"),u=h.length,d=[],g=[];for(r=0;r<u;r++,d=[],g=[])if(!(t=h[r]).getState("removed")){for(i=t.getFromEnv("xAxis"),s=0;s<(i&&i.length);s++)i[s].getState("removed")||d.push(i[s]);for(i=t.getFromEnv("yAxis"),s=0;s<(i&&i.length);s++)i[s].getState("removed")||g.push(i[s]);for((0,o.componentFactory)(t,n["default"],"vCanvas",d.length*g.length),a=t.getChildren("vCanvas"),l=0,s=0;l<(d&&d.length);l++)for(c=0;c<(g&&g.length);c++,s++)a[s].xAxis(d[l]).yAxis(g[c]).canvas(t),a[s].configure(),a[s].addToEnv("vCanvas",a[s])}};var n=i(a(476)),o=a(184)},476:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=a(199),r=a(184),l=function(e,t){var a=e;return a="comp_"+a,t&&(this.config[a]=t),(t||!this.config[a])&&this||this.config[a]},s=function(e,t){return["T",e,",",t].join("")},c=function(e){return-e.getTranslation()},h=function(e,t){return{h:e,v:t}},u=["columnShadowVcanvasGroup","columnVcanvasGroup","areaShadowVcanvasGroup","areaVcanvasGroup","lineShadowVcanvasGroup","lineVcanvasGroup","defaultShadowVcanvasGroup","defaultVcanvasGroup","sumLabelsLayer","vcanvasLabelGroup"],d=function(e,t,a){return a.getFromEnv("animationManager").setAnimation({el:"group",attr:{name:e},container:t,state:"appearing",component:a,label:"group"})},g=function(e){return!/category/i.test(e.getName())},p=function(e){function t(){return e.apply(this,arguments)||this}(0,n["default"])(t,e);var a=t.prototype;return a.getName=function(){return"virtualCanvas"},a.getType=function(){return"canvas"},a.xAxis=function(e){var t=l.call(this,"xAxis",e);return e&&this.listenToAxis(e),e&&this.addToEnv("xAxis",e),t},a.yAxis=function(e){var t=l.call(this,"yAxis",e);return e&&this.listenToAxis(e),e&&this.addToEnv("yAxis",e),t},a.paper=function(e){return l.call(this,"paper",e)},a.canvas=function(e){return l.call(this,"canvas",e)},a.configure=function(e){void 0===e&&(e={});var t=this.getFromEnv("chartConfig"),a=this.config;Object.assign(a,e),a.transposeAxis=t.transposeAxis,this._mapChildren((function(e){e.getState("removed")||"dataset"===e.getType()||e.configure&&e.configure()}))},a.getHorizontalVerticalAxes=function(){var e=this.xAxis(),t=this.yAxis();return t.config.isVertical?h(e,t):h(t,e)},a.preDraw=function(){this._mapChildren((function(e){e.getState("removed")||"dataset"===e.getType()||e.setVisibility&&e.setVisibility()}));var e,t=this.config.transposeAxis,a=this.getFromEnv("chart"),i=this.getAxisValuePadding(),n=i.left,o=i.right,r=i.top,l=i.bottom;(e=this.getDataLimits(!t)).min!==Infinity||e.max!==-Infinity?(this._setYAxisLimits(e.min,e.max),a._storeIntialLimit&&a._storeIntialLimit(e.min,e.max)):(this._setYAxisLimits(void 0,void 0),a._storeIntialLimit&&a._storeIntialLimit(void 0,void 0)),this._setXAxisLimits(e.xMin,e.xMax),this._setAxisValuePadding(n,o,r,l)},a.childChanged=function(e){void 0===e&&(e={});var t,a=this.config,i=a.transposeAxis;!1!==e.dataLimitChanged&&(t=this.getDataLimits(!i),!i||t.min===a.range.min&&t.max===a.range.max||(a.range.min=t.min,a.range.max=t.max,this.getFromEnv("yAxis").resetStoredLimits(),t.min!==Infinity||t.max!==-Infinity?this._setYAxisLimits(t.min,t.max):this._setYAxisLimits(void 0,void 0)),t.xMin===a.range.xMin&&t.xMax===a.range.xMax||(a.range.xMin=t.xMin,a.range.xMax=t.xMax,this.getFromEnv("xAxis").resetStoredLimits(),this._setXAxisLimits(t.xMin,t.xMax))),this.asyncDraw()},a._setAxisValuePadding=function(e,t,a,i){this.getFromEnv("xAxis").setAxisPadding(e,t),a&&i&&this.getFromEnv("yAxis").setAxisPadding(e,t)},a.getAxisValuePadding=function(){var e={},t=-Infinity,a=-Infinity,i=-Infinity,n=-Infinity;return this._mapChildren((function(o){o.getState("removed")||(e=o.getAxisValuePadding&&o.getAxisValuePadding()||{},t=Math.max(t,e.left||-Infinity),a=Math.max(a,e.right||-Infinity),i=Math.max(i,e.top||-Infinity),n=Math.max(n,e.bottom||-Infinity))})),t===-Infinity&&(t=0),a===-Infinity&&(a=0),i===-Infinity&&(i=0),n===-Infinity&&(n=0),this.config.padding||(this.config.padding={},this.config.padding.left=t,this.config.padding.right=a,this.config.padding.top=i,this.config.padding.bottom=n),{left:t,right:a,top:i,bottom:n}},a._setYAxisLimits=function(e,t){var a=this.getFromEnv("yAxis");g(a)&&a.setDataLimit(t,e)},a._setXAxisLimits=function(e,t){var a=this.getFromEnv("xAxis");g(a)&&(t!==-Infinity||e!==+Infinity?a.setDataLimit(t,e):a.setDataLimit(void 0,void 0))},a.getDataLimits=function(e){var t,a,i,n=this.getFromEnv("chart"),o=-Infinity,l=+Infinity,s=o,c=l,h=l,u=o;return this._mapChildren((function(n){var d;n.getDataLimits&&!n.getState("removed")&&(e||n.getState("visible"))&&(t=n.getDataLimits(e),d=t,a=(0,r.pluck)(d.xMax,o),i=(0,r.pluck)(d.xMin,l),s=Math.max(s,d.max),c=Math.min(c,d.min),u=Math.max(u,a),h=Math.min(h,i))})),this.config.range||(this.config.range={},this.config.range.min=c,this.config.range.max=s,this.config.range.xMin=h,this.config.range.xMax=u),n.config.yMax=s,n.config.yMin=c,{min:c,max:s,xMin:h,xMax:u}},a.listenToAxis=function(e){var t,a=this;t=function(){a.getState("drawn")&&a.asyncDraw()},this.getState("visiblerangeset"+e.getId())||(this.setState("visiblerangeset"+e.getId(),!0),a.addExtEventListener("visiblerangeset",t,e))},a.createContainer=function(){var e=this.getLinkedParent();!this.getChildContainer("columnShadowVcanvasGroup")&&this.addChildContainer("columnShadowVcanvasGroup",d("vcanvas-column-shadow",e.getChildContainer("columnShadowGroup"),this)),!this.getChildContainer("columnVcanvasGroup")&&this.addChildContainer("columnVcanvasGroup",d("vcanvas-column-plot",e.getChildContainer("columnGroup"),this)),!this.getChildContainer("areaShadowVcanvasGroup")&&this.addChildContainer("areaShadowVcanvasGroup",d("vcanvas-area-shadow",e.getChildContainer("areaShadowGroup"),this)),!this.getChildContainer("areaVcanvasGroup")&&this.addChildContainer("areaVcanvasGroup",d("vcanvas-area-plot",e.getChildContainer("areaGroup"),this)),!this.getChildContainer("lineShadowVcanvasGroup")&&this.addChildContainer("lineShadowVcanvasGroup",d("vcanvas-line-shadow",e.getChildContainer("lineShadowGroup"),this)),!this.getChildContainer("lineVcanvasGroup")&&this.addChildContainer("lineVcanvasGroup",d("vcanvas-line-plot",e.getChildContainer("lineGroup"),this)),!this.getChildContainer("defaultShadowVcanvasGroup")&&this.addChildContainer("defaultShadowVcanvasGroup",d("vcanvas-default-shadow",e.getChildContainer("defaultShadowGroup"),this)),!this.getChildContainer("defaultVcanvasGroup")&&this.addChildContainer("defaultVcanvasGroup",d("vcanvas-default-plot",e.getChildContainer("defaultGroup"),this)),!this.getChildContainer("vcanvasLabelGroup")&&this.addChildContainer("vcanvasLabelGroup",d("vcanvas-label",e.getChildContainer("datalabelsGroup"),this)),!this.getChildContainer("columnTrendGroup")&&this.addChildContainer("columnTrendGroup",d("columnTrendGroup",this.getChildContainer("columnVcanvasGroup"),this)),!this.getChildContainer("sumLabelsLayer")&&this.addChildContainer("sumLabelsLayer",d("vcanvas-sumLabelsLayer",e.getChildContainer("sumLabelsLayer"),this))},a.applyTranslation=function(){var e=this,t=function(e){return s(c(e.h),c(e.v))}(e.getHorizontalVerticalAxes());e.createContainer(),u.forEach((function(a){var i;i=a,(i=e.getChildContainer(i)).attr({transform:t})}))},a.draw=function(){this.applyTranslation(),this.setState("drawn",!0)},a.getCanvasPadding=function(){var e,t,a={paddingLeft:0,paddingRight:0,paddingTop:0,paddingBottom:0};return this._mapChildren((function(i){if(i.getCanvasPadding&&!i.getState("removed")&&i.getState("visible"))for(t in e=i.getCanvasPadding()||{})e.hasOwnProperty(t)&&(a[t]=Math.max(e[t],a[t]))})),a},a.rtShiftAnim=function(e,t){var a,i=this,n=e,o=t,r=i.getFromEnv("xAxis"),l=i.getFromEnv("yAxis"),c=r.getPixel(1)-r.getPixel(0),h=l.getPixel(1)-l.getPixel(0),d=i.getFromEnv("animationManager");a=s(n=(n||0)*c,o=(o||0)*h),u.forEach((function(e){i.getChildContainer(e).attr({transform:a}),d.setAnimation({el:i.getChildContainer(e),attrs:{transform:"T0,0"}})}))},t}(o.ComponentInterface);t["default"]=p},477:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=function(e){var t;e.config.enablemousetracking?((0,o.componentFactory)(e,n["default"],"mouseTracker"),t=e.getChildren("mouseTracker")[0],e.config.mouseTrackerEventAdded||(t.addEvents(),e.config.mouseTrackerEventAdded=!0)):((t=e.getChildren("mouseTracker")&&e.getChildren("mouseTracker")[0])&&t._removeListners(),e.config.mouseTrackerEventAdded=!1)};var n=i(a(478)),o=a(184)},478:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(201)),o=i(a(198)),r=a(199),l="fc-mouseover",s="fc-mousedown",c="fc-mouseup",h="fc-mousemove",u="fc-click",d=function(e){function t(){var t,a;return(t=e.call(this)||this).pIndex=1,t.handler=(a=(0,n["default"])(t),function(e){e.originalEvent&&a.getFromEnv("chart")._mouseEvtHandler(e,a.config.evtData)}),t.eventsList=[s,c,h,u,l],t.config={},t.config.evtData={},t}(0,o["default"])(t,e);var a=t.prototype;return a.getMouseEvents=function(e,t,a){var i=this._lastDatasetIndex,n=this._lastPointIndex,o={fireOut:!1,events:[]};switch(e.type){case u:o.events.push(u);break;case h:i===t&&n===a?(clearTimeout(this.mouseoutTimer),o.events.push(h)):(o.events.push(l),o.fireOut=!0);break;case s:i===t&&n===a||(o.fireOut=!0,o.events.push(l)),o.events.push(s);break;case l:i===t&&n===a?clearTimeout(this.mouseoutTimer):(o.fireOut=!0,o.events.push(l));break;case c:this.hasTouchEvent=!1,o.events.push(c);break;case"fc-mouseout":o.fireOut=!0}return o},a.addEvents=function(){var e,t,a,i=this.getFromEnv("chart"),n=i.getChildren("canvas"),o=this.config.evtData,r=this.eventsList;for(i.config.enableMouseOutEvent&&r.push("fc-mouseout"),this._removeListners(),o.chart=i,o.mouseTracker=this,t=0;t<n.length;t++)for(a in e=n[t],r)e.addEventListener(r[a],this.handler)},a._removeListners=function(){var e,t,a,i=this.getFromEnv("chart").getChildren("canvas"),n=this.eventsList;for(a=0;a<i.length;a++)for(t in e=i[a],n)e.removeEventListener(n[t],this.handler);this._removeDocEvents()},a._removeDocEvents=function(){this.eventOutput&&this.eventOutput.unlisten(),this.eventOutput=void 0},a._dispose=function(){this._removeListners(),e.prototype._dispose.call(this)},t}(r.ComponentInterface);t["default"]=d},479:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]=function(e,t){return String(e).toLowerCase()===String(t).toLowerCase()}},480:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=function(e){var t,a,i=e.getChildren(),s=i.canvas&&i.canvas[0],c=s&&s.getChildren("vCanvas"),h=c&&c[0]||s||e,u=e.getFromEnv("dataSource"),d=u.dataset,g=(0,r["default"])(d)&&d[0].data,p=u.data||g;a=g?(0,n["default"])({},d[0],{},l(p)):l(p);if(!p||0===p.length)return void e.setChartMessage();t=e.getDSdef(),(0,o.datasetFactory)(h,t,"dataset",1,[a])};var n=i(a(183)),o=a(184),r=i(a(320)),l=function(e){var t=[],a=[];return(0,o.fcEach)(e,(function(e,i){"true"!==e.vline&&!0!==e.vline&&1!==e.vline&&"1"!==e.vline?t.push(e):a.push({index:i,data:e})})),{catData:a,data:t}}},481:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=t._removePlots=void 0;var n,o=i(a(201)),r=i(a(198)),l=a(184),s=a(199),c=a(192),h=i(a(482)),u=a(196),d="column",g=l.hasTouch?l.TOUCH_THRESHOLD_PIXELS:l.CLICK_THRESHOLD_PIXELS,p=l.regex.dropHash,f=l.preDefStr.DEFAULT,m=l.preDefStr.showHoverEffectStr,v=l.preDefStr.setRolloverAttrStr,b=l.preDefStr.setRolloutAttrStr,x=Math,y=x.min,C=x.max,k=x.abs,S={top:!0},w={right:!0},L={left:!0},A={bottom:!0},N=x.ceil,F=x.round,E=function(e,t){if(void 0===e&&(e={}),"function"==typeof t){var a=function(a){if(e.hasOwnProperty(a)){var i=e[a];Array.isArray(i)?i.forEach((function(e){return t(e,a)})):e[a]&&t(e[a],a)}};for(var i in e)a(i)}},_=function(e,t,a){return a.getFromEnv("animationManager").setAnimation({el:"group",attr:{name:e},container:t,state:"appearing",component:a,label:"group"})},T=function(e,t){void 0===e&&(e=[]),e.forEach((function(e){return E(e&&e.graphics,t)})),e.length=0};t._removePlots=T,(0,c.addDep)({name:"columnAnimation",type:"animationRule",extension:h["default"]});var P=function(e){function t(){var t;t=e.call(this)||this;var a=(0,o["default"])(t);return a.components={},a.components.removeDataArr=[],a.__hideElem=function(e,t){a._setRemoveAnim(e,"label"===t?"plotLabel":"rect")},a.__removeElem=function(e,t){a.__hideElem(e,t)},a.config.primitiveType=d,t}(0,r["default"])(t,e);var a=t.prototype;return a.getType=function(){return"dataset"},a.getName=function(){return"column"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;t.showvalues=n,t.includeinlegend=1,t.plotfillalpha=n,t.plotfillangle=n,t.ratio=n},a.preConfigure=function(t){if(!t)return!1;this.trimData(t),this.config.JSONData=t,e.prototype.preConfigure.call(this,t)},a.setSkippingInfo=function(e){this.addToEnv("skipInfo",e||{plotsPerBin:1,drawOnlyMap:[],draw:[],hide:[],skippingApplied:!1,dragHashMap:[]})},a.getSkippingInfo=function(){return this.getFromEnv("skipInfo")||{plotsPerBin:1,drawOnlyMap:[],draw:[],hide:[],skippingApplied:!1,dragHashMap:[]}},a.configure=function(t){if(!t)return!1;e.prototype.configure.call(this,t)},a.configureAttributes=function(){var e=this.getFromEnv("chart"),t=this.config;this.parseAttributes(),this._setConfigure(),this.getState("visible")&&!1===t.oldVisible&&(t.appearing=!0),t.oldVisible=this.getState("visible"),this._realTimeConfigure&&this._realTimeConfigure(),!1!==e.config.hasLegend&&e.config.showLegend&&this._addLegend(),this.ErrorValueConfigure&&this.ErrorValueConfigure(),this.config.YForStackUpdated=!1,this.setState("dirty",!0)},a.parseAttributes=function(){var e,t,a,i=this.getFromEnv("chart"),n=i.getChildren("yAxis")[0].config.isReverse,o=this.config,r=this.config.JSONData,s=i.config.singleseries,c=i.config,h=i.getFromEnv("chart-attrib"),u=this.getFromEnv("color-manager"),d=this.getJSONIndex(),g=o.plotColor=u.getPlotColor(d),p=(0,l.pluckNumber)(r.dashed,h.plotborderdashed,0),f=(0,l.pluckNumber)(h.useplotgradientcolor,1),m=i.isBar,v=i.config.is3D,b=i.config.isdual;o.showTextOutline=(0,l.pluckNumber)(h.textoutline,0),o.dashed=p,o.parentYAxis=b&&"s"===(0,l.pluck)(r.parentyaxis&&r.parentyaxis.toLowerCase(),"p")?1:0,o.maxValue=-Infinity,o.minValue=Infinity,o.defaultPadding={left:.5,right:.5},(0,l.parseConfiguration)(r,o,c,{data:!0}),o.seriesname=(0,l.parseUnsafeString)(r.seriesname),o.showValues=(0,l.pluckNumber)(r.showvalues,h.showvalues,1),o.minplotheightforvalue=(0,l.pluckNumber)(r.minplotheightforvalue,h.minplotheightforvalue,0),o.showplotborder=(0,l.pluckNumber)(h.showplotborder,v?0:1),e=c.plotborderdashlen,t=c.plotborderdashgap,o.plotfillangle=(0,l.pluckNumber)(360-h.plotfillangle,m?180:n?90:270),o.plotfillalpha=a=(0,l.pluck)(r.alpha,h.plotfillalpha,l.HUNDREDSTRING),o.plotColor=g=(0,l.pluck)(r.color,g),o.legendSymbolColor=(0,l.getFirstColor)(o.plotColor),o.plotgradientcolor=(0,l.getDefinedColor)(h.plotgradientcolor,u.getColor("plotGradientColor")),!f&&(o.plotgradientcolor=""),o.plotborderalpha=(0,l.pluck)(h.plotborderalpha,a,l.HUNDREDSTRING),o.plotbordercolor=(0,l.pluck)(h.plotbordercolor,v&&!s?"#ffffff":u.getColor("plotBorderColor")),o.plotborderdashstyle=p?(0,l.getDashStyle)(e,t,void 0):"none",o.showShadow=v?(0,l.pluckNumber)(h.showshadow,1):(0,l.pluckNumber)(h.showshadow,u.getColor("showShadow")),o.definedGroupPadding=C(c.plotSpacePercent,0),o.includeinlegend=(0,l.pluckNumber)(r.includeinlegend,o.seriesname?1:0),this.setState("visible",1===(0,l.pluckNumber)(r.visible,!Number(r.initiallyhidden),1)),!0===this.getState("visible")?this._conatinerHidden=!1:this._containerHidden=!0,o.legendInteractivity=!1,this.setState("visible",1===(0,l.pluckNumber)(this.getState("visible"),o.JSONData.visible,!Number(o.JSONData.initiallyhidden),1))},a.trimData=function(e){if(this.components||!this.components.data||!this.components.data.length){var t,a,i=this.components,n=this.config,o=n&&n.context,r=this.getFromEnv("chart").isRealTime,l=o&&o.prevCatlen,s=this.getFromEnv("xAxis"),c=r?0:s.getTicksLen(),h=l-c,u=i&&i.data,d=u&&u.length,g=e.data&&e.data.length||0,p=d-g;h>p?(t=h,a=c):(t=p,a=g),t>0&&this.removeData(a,t,!1)}},a.hidePlots=function(){var e,t=this,a=t.components.data,i=t.getSkippingInfo(),n=i.hide,o=i.hideLabel;n.forEach((function(i){(e=a[i])&&e.graphics&&(E(e.graphics,t.__removeElem),e&&(e.graphics={}))})),o.forEach((function(i){(e=a[i])&&e.graphics&&(E(e.graphics,t.__removeElem),e&&(e.graphics={}))}))},a._setConfigure=function(e,t){var a,i,o,r,s,c,h,d,p=this,f=p.getFromEnv("chart"),m=f.config,v=p.config,b=p.getFromEnv("xAxis"),x=f.isRealTime,y=m.realTimeConfig&&m.realTimeConfig.numDisplaySets,C=p.getFromEnv("dataSource").categories&&p.getFromEnv("dataSource").categories[0]&&p.getFromEnv("dataSource").categories[0].category,k=v.initCatLen=x?C&&Array.isArray(C)&&C.filter((function(e){return!e.vline})).length||0:b.getTicksLen(),S=v.JSONData||[],w=e||S.data,L=e&&e.data.length,A=v.showplotborder,N=m.plotborderthickness,F=p.components.data,E=m.isDrag,_=p.getSkippingInfo&&p.getSkippingInfo(),T=_&&_.draw||[],P=_&&_.skippingApplied;for(h=L===n&&k>y?k-y:0,a=x?(0,l.pluckNumber)(L,k):Math.min(k,w&&w.length),m.dragTolerance=E?(A&&N>5?N/2+1:5)+g:0,F||(F=p.components.data=[]),P&&(a=T.length),c=h;c<a;c++)s=T[c]||c,e?(i=e&&e.data[s]||{},r=t!==n?F[d=t+s]:F[d=F.length-a+s],o=d):(i=w&&w[s]||{},r=F[s-=h],o=s),r||(r=F[o]={}),r.config||(r.config={},r.graphics={}),p._plotConfigure(o,i,L),d&&d++;P&&p.addJob("configureRestID",(function(){p._configureRestData()}),u.priorityList.postRender)},a._configureRestData=function(){var e,t,a,i,o,r=this.config,s=this.config.JSONData,c=s.data,h=this.getFromEnv("chart-attrib"),u=this.getFromEnv("xAxis").getTicksLen(),d=(this.getSkippingInfo&&this.getSkippingInfo()).drawOnlyMap,g=this.components.data;for(g||(g=this.components.data=[]),r.maxValue=-Infinity,r.minValue=Infinity,i=0;i<u;i++)d[i]||(a=g[i],t=i,(e=c&&c[i]||{}).tooltext!==n&&(e.tooltext=(0,l.parseTooltext)(e.tooltext,[3],{label:e.label},e,h,s)),a||(a=g[i]={}),a.config||(g[i].config={}),this._plotConfigure(t,e),o&&o++)},a._plotConfigure=function(e,t,a){var i,o,r,s,c,h,u,d,g,p,f,m,v,b,x,k,S,w,L,A,N,F,E,_,T,P,D,I,M,O,R,V,B,G,H=this.getFromEnv("chart"),z=H.config,W=this.config,j=W.JSONData,U=H.config.singleseries,q=this.getFromEnv("yAxis"),Y=this.getFromEnv("xAxis"),X=this.components.data[e],K=H.getFromEnv("dataSource").chart,Z=this.getFromEnv("color-manager"),J=W.showplotborder,$=W.plotColor,Q=z.showtooltip,ee=z.yaxisname,te=z.xaxisname,ae=z.tooltipsepchar,ie=z.seriesnameintooltip,ne=z.plotborderdashlen,oe=z.plotborderdashgap,re=z.plotborderthickness,le=(0,l.pluckNumber)(z.useroundedges,0),se=z.plothovereffect,ce=W.plotfillangle,he=W.plotborderdashstyle,ue=X.config,de=H.isBar,ge=H.config.is3D,pe=z.use3dlighting,fe=z.realTimeConfig&&z.realTimeConfig.numDisplaySets,me=fe-W.initCatLen,ve=fe&&me>=0?me:0,be=z.usedataplotcolorforlabels;G=Y.getLabel(a?e-a:ve+e),ue.origLabel=B=(0,l.getValidValue)((0,l.parseUnsafeString)(G.label)),v=ue.label=(0,l.getValidValue)((0,l.parseUnsafeString)(G.tooltext))||B,t.tooltext!==n&&(t.tooltext=(0,l.parseTooltext)(t.tooltext,[3],{label:G.label},t,K,j)),ue.dataLabelStyle=this._configureDataLabelStyle(t),ue.minplotheightforvalue=(0,l.pluckNumber)(t.minplotheightforvalue,W.minplotheightforvalue),ue.showValue=(0,l.pluckNumber)(t.showvalue,W.showValues),ue.givenPlotShowValue=(0,l.pluckNumber)(t.showvalue),ue.setValue=m=q.getCleanValue(t.value,(0,l.pluckNumber)(z.stack100percent)),ue.setLink=(0,l.pluck)(t.link),ue.toolTipValue=I=q.dataLabels(m),ue.setDisplayValue=M=(0,l.parseUnsafeString)(t.displayvalue),ue.displayValue=(0,l.pluck)(M,I),ue.dashed=O=(0,l.pluckNumber)(t.dashed,W.dashed),R=(0,l.pluckNumber)(t.dashlen,ne),V=oe=(0,l.pluckNumber)(t.dashgap,oe),null!==m&&(W.maxValue=C(W.maxValue,m),W.minValue=y(W.minValue,m)),ue.plotBorderDashStyle=f=1===O?(0,l.getDashStyle)(R,V):0===O?"none":he,U?($=Z.getPlotColor((0,l.pluckNumber)(e-a,e)),$=(0,l.pluck)(t.color,$),be&&Y.updateTicksValues(e,{labelfontcolor:(0,l.convertColor)($)}),p=(0,l.pluck)(t.alpha,t.borderalpha,W.plotborderalpha,d).toString()):($=(0,l.pluck)(t.color,W.plotColor),p=(0,l.pluck)(t.alpha,W.plotborderalpha,d).toString()),g=(0,l.pluck)(t.ratio,W.ratio),d=(0,l.pluck)(t.alpha,W.plotfillalpha),ue.plotFillAlpha=d,ue.plotBorderAlpha=p,ue.shadow={opacity:W.showShadow?d/100:0},m<0&&!le&&(h=W.plotfillangle,ce=de?180-ce:360-ce),ue.colorArr=b=(0,l.getColumnColor)($+","+W.plotgradientcolor,d,g,ce,le,W.plotbordercolor,p,de?1:0,!!ge),ue.originalPlotColor=$,0!==se&&(x=(0,l.pluck)(t.hovercolor,j.hovercolor,K.plotfillhovercolor,K.columnhovercolor,$),k=(0,l.pluck)(t.hoveralpha,j.hoveralpha,K.plotfillhoveralpha,K.columnhoveralpha,d),!(S=(0,l.pluck)(t.hovergradientcolor,j.hovergradientcolor,K.plothovergradientcolor,W.plotgradientcolor))&&(S=""),w=(0,l.pluck)(t.hoverratio,j.hoverratio,K.plothoverratio,g),L=(0,l.pluckNumber)(360-t.hoverangle,360-j.hoverangle,360-K.plothoverangle,ce),A=(0,l.pluck)(t.borderhovercolor,j.borderhovercolor,K.plotborderhovercolor,W.plotbordercolor),N=(0,l.pluck)(t.borderhoveralpha,j.borderhoveralpha,K.plotborderhoveralpha,K.plotfillhoveralpha,K.columnhoveralpha,p,d),F=(0,l.pluckNumber)(t.borderhoverthickness,j.borderhoverthickness,K.plotborderhoverthickness,W.showplotborder&&re),E=t.borderhoverdashed||j.borderhoverdashed||K.plotborderhoverdashed,_=(0,l.pluckNumber)(t.borderhoverdashgap,j.borderhoverdashgap,K.plotborderhoverdashgap,ne),T=(0,l.pluckNumber)(t.borderhoverdashlen,j.borderhoverdashlen,K.plotborderhoverdashlen,oe),P=E!==n?Number(E)?(0,l.getDashStyle)(T,_):"":f,(z.drawTrendRegion&&!ge||1===se&&x===$)&&(x=(0,l.getLightColor)(x,70)),D=(0,l.getColumnColor)(x+","+S,k,w,L,le,A,N.toString(),de?1:0,!!ge),ue.setRolloutAttr={fill:ge?[(0,l.toRaphaelColor)(b[0]),!pe]:(0,l.toRaphaelColor)(b[0]),stroke:J?(0,l.toRaphaelColor)(b[1]):l.TRACKER_FILL,"stroke-width":J?re:0,"stroke-dasharray":f},ue.setRolloverAttr={fill:ge?[(0,l.toRaphaelColor)(D[0]),!pe]:(0,l.toRaphaelColor)(D[0]),stroke:A?(0,l.toRaphaelColor)(D[1]):l.TRACKER_FILL,"stroke-width":F,"stroke-dasharray":P},ue.hoverColor=x,ue.hoverAlpha=k,ue.hoverBorderColor=A,ue.hoverBorderAlpha=N),i=ue.toolTipValue,ue.origToolText=r=(0,l.getValidValue)((0,l.parseUnsafeString)((0,l.pluck)(t.tooltext,j.plottooltext,K.plottooltext))),Q?null===i?u=!1:r!==n?(c=[1,2,3,4,5,6,7],o={yaxisName:ee,xaxisName:te,formattedValue:i,label:v},u=(0,l.parseTooltext)(r,c,o,t,K,j)):(ie&&(s=(0,l.getFirstValue)(j&&j.seriesname)),u=s?s+ae:"",u+=v?v+ae:""):u=!1,ue.toolText=u,ue.setTooltext=u,h&&(ce=h),ue._x=e,ue._y=m},a.updateYForStack=function(){var e,t,a,i,o,r,s=this.getFromEnv("chartConfig"),c=(0,l.pluckNumber)(s.showpercentvalues),h=(0,l.pluckNumber)(s.showpercentintooltip),u=this.config.JSONData,d=this.getFromEnv("chart-attrib"),g=this.getFromEnv("xAxis").getTicksLen(),p=this.components.data,f=this.getFromEnv("stackValues"),m=c||h?-1:1,v=this.getSkippingInfo&&this.getSkippingInfo(),b=v&&v.skippingApplied,x=v&&v.draw||[],y=x&&x.length;for(b&&(g=y),i=0;i<g;i++)t=(e=p[a=x[i]||i])&&e.config,e!==n&&(o=(0,l.getValidValue)((0,l.parseUnsafeString)((0,l.pluck)(t.origToolText,u.plottooltext,d.plottooltext))),r=f[a]&&f[a].positive+m*f[a].negative||1,t._b=this._parseValues(a,t._b,r,o),s.stack100percent&&(t._y=t.value+t._b))},a._parseValues=function(e,t,a,i){var n,o,r=t,s=this.getFromEnv("chartConfig"),c=this.components.data[e].config,h=(0,l.pluckNumber)(s.showpercentvalues),u=(0,l.pluckNumber)(s.showpercentintooltip),d=this.getState("visible"),g=c.setValue,p=(0,l.pluckNumber)(s.stack100percent),f=this.getFromEnv("number-formatter"),m=this.getFromEnv("yAxis"),v=c.setDisplayValue;return o=(d&&g||0)/a*100,n=f.percentValue(o),p&&(c.value=o,r=(r||0)/a*100),u&&(c.toolTipValue=n),h&&!v&&(c.displayValue=n),i&&(c.toolText=(0,l.parseTooltext)(c.setTooltext,[14,24,25,112],{percentValue:n,sum:m.dataLabels(a),unformattedSum:a})),r},a._addLegend=function(){var e,t,a,i=this.getFromEnv("chart").isBar,n=this.getFromEnv("chart-attrib"),o=this.config,r=(0,l.getFirstColor)(o.legendSymbolColor),s=this.getFromEnv("legend"),c=(0,l.pluckNumber)(n.use3dlighting,n.useplotgradientcolor,1),h=(0,l.getLightColor)(r,60).replace(p,l.HASHSTRING);o.includeinlegend?(e=c?{FCcolor:{color:r+","+r+","+(0,l.getLightColor)(r,40)+","+r+","+r,ratio:"0,30,30,30,10",angle:i?0:270,alpha:"100,100,100,100,100"}}:{FCcolor:{color:r,angle:i?0:270,ratio:"0",alpha:"100"}},a=s.getItem(this.config.legendItemId),t={type:this.getName(),index:this.getJSONIndex(),label:(0,l.getFirstValue)(this.config.JSONData.seriesname)},a||(this.config.legendItemId=s.createItem(this),a=s.getItem(this.config.legendItemId),this.addExtEventListener("fc-click",(function(){a.itemClickFn()}),a)),a.configure(t),a.setStateCosmetics("default",{symbol:{fill:(0,l.toRaphaelColor)(e),rawFillColor:r,stroke:(0,l.toRaphaelColor)(h)}}),this.getState("visible")?a.removeLegendState("hidden"):a.setLegendState("hidden")):this.config.legendItemId&&s.disposeItem(this.config.legendItemId)},a.legendInteractivity=function(e){var t=e.getLinkedParent().getFromEnv("chart"),a=this.getState("visible"),i=this.config;if(t.getFromEnv("animationManager").setAnimationState("legendInteraction"),i.legendInteractivity=!0,a?this.hide():this.show(),l.isFirefox){var n=t.getChildContainer("plotGroup");n.attrs["clip-rect"]&&n.attr({"clip-rect":n.attrs["clip-rect"]})}i.drawnEvtListenerAttached||(i.drawnEvtListenerAttached=!0,this.addEventListener("drawn",(function(){i.legendInteractivity=!1})))},a.createPinElem=function(){var e,t,a,i=this,n=i.getFromEnv("chart"),o=arguments[1].group,r=i.components.data,l=i.graphics.pinElems||(i.graphics.pinElems=[]),s=i.getLinkedParent().getChildContainer().columnVcanvasGroup;for(e=l.length-1;e>=0;e--)l[e].remove(),l.pop();if(i.getState("visible"))for(e=i.config.scrollMinVal;e<i.config.scrollMaxVal;e++)(a=r[e])&&a.graphics&&(t=a.graphics.element.clone().attr({transform:["T",-(n.config._visx+k(s.transform()[0][1])),-n.config.canvasBottom]}),o.appendChild(t),l.push(t))},a._checkPointerOverColumn=function(e,t,a){var i,o,r,l,s,c,h,u,d,p=this.getFromEnv("chart").config,f=p.plotborderthickness,m=p.showplotborder,v=this.components.data,b=v&&v.length,x=0,y=0,C=p.dragTolerance||0,k=(this.getSkippingInfo&&this.getSkippingInfo()).plotsPerBin;for(h=d=(d=(u=(N(e/k)-1)*k+1)+k-1)<b?d:b;h>=u;h--){if(!(i=v[h]))return;if(i._height<g&&(x=g),i._width<g&&(y=g),(i._xPos||i._yPos)&&(o=i.config.setValue,m&&f!==n?c=f/2:f=c=0,null!==o&&(r=t-i._xPos+c,l=a-i._yPos+c+(o>=0?C:0),s=r>=-y/2&&r<=(y||i._width)+f&&l>=-x/2&&l<=(x||i._height)+f+(o<0?2*C:C))))return{pointIndex:h,hovered:s,pointObj:v[h]}}},a._getHoveredPlot=function(e,t){var a,i,n=e,o=t,r=this.getFromEnv("chart").isBar,l=this.getFromEnv("xAxis");return r?o+=l.getTranslation():n+=l.getTranslation(),a=l.getValue(r?o:n),(i=Math.round(a))-a>0?this._checkPointerOverColumn(i,n,o)||this._checkPointerOverColumn(i-1,n,o):this._checkPointerOverColumn(i+1,n,o)||this._checkPointerOverColumn(i,n,o)},a.getPlotInCategoryAt=function(e,t){void 0===e&&(e=0),void 0===t&&(t=0);var a,i,n,o,r=this.components.data,l=this.getFromEnv("xAxis"),s=this.getFromEnv("yAxis"),c=l.getTranslation()||0,h=s.getTranslation()||0,u=this.getState("visible"),d=e+c,g=t+h;if("category"===l.getName()&&l.config.hasCategory)i=l;else{if("category"!==s.getName()||!s.config.hasCategory)return!1;i=s}return null!=(n=i.config.isVertical)&&(a=r[Math.round(i.getValue(n?g:d))],o=this._getHoveredPlot(e,t),u&&o?o:!(!u||!a)&&{pointIndex:a._index,hovered:!1,pointObj:a})},a._decideTooltipType=function(e,t){var a=this.getFromEnv("chart").config.drawTrendRegion,i=this.components,n=this.getFromEnv("toolTipController"),o=i.data[e],r=o&&(o.config.finalTooltext||o.config.toolText),l=this.config.currentToolTip,s=t.originalEvent;r&&!a&&(l?n.draw(s,r,l):l=this.config.currentToolTip=n.draw(s,r))},a._firePlotEvent=function(e,t,a){var i,o=this.getFromEnv("chart"),r=this.components,l=this.getFromEnv("toolTipController"),s=r.data[t],c=s.graphics&&s.graphics.element,h=this.config.currentToolTip;if(c)switch(i=s.config.setLink,e){case"fc-mouseover":this._decideTooltipType(t,a),function(e,t,a,i,n){var o=t.graphics,r=o&&o.element,l=e.getFromEnv("animationManager"),s=r&&r.getData();!0!==s.draged&&(r&&0!==s.showHoverEffect&&(l.setAnimationState("mouseOver"),l.setAnimation({el:r,label:"rect",component:n,attr:r.getData().setRolloverAttr})),!i&&r&&e.plotEventHandler(r,a,"DataPlotRollOver"))}(o,s,a,n,this),i&&(c.node.style.cursor="pointer");break;case"fc-mouseout":l.hide(h),function(e,t,a,i,n){var o=t.graphics,r=o&&o.element,l=e.getFromEnv("animationManager"),s=r&&r.getData();!0!==s.draged&&(r&&0!==s.showHoverEffect&&(l.setAnimationState("mouseOut"),l.setAnimation({el:r,label:"rect",component:n,attr:r.getData().setRolloutAttr})),!i&&r&&e.plotEventHandler(r,a,"DataPlotRollOut"))}(o,s,a,n,this),i&&(c.node.style.cursor=f);break;case"fc-click":o.plotEventHandler(c,a);break;case"fc-mousemove":this._decideTooltipType(t,a)}},a.createContainer=function(){var e,t,a,i,n,o=this.getType(),r=this.getFromEnv("chart"),l=this.getLinkedParent(),s=this.config.primitiveType||o;!l.getChildContainer(s+"VcanvasGroup")&&(s="default"),e=l.getChildContainer(s+"VcanvasGroup"),n=l.getChildContainer(s+"ShadowVcanvasGroup"),t=l.getChildContainer("commonElemGroup")||e,i=l.getChildContainer("commonElemGroupLine"),a=l.getChildContainer("anchorGroup")||e,!this.getContainer("shadowGroup")&&this.addContainer("shadowGroup",_("shadow-group",n,this)),!this.getContainer("errorShadowGroup")&&this.addContainer("errorShadowGroup",_("error-shadow-group",n,this)),!this.getContainer("commonElemsGroup")&&this.addContainer("commonElemsGroup",_("common-elems-group",t,this)),i?!this.getContainer("commonElemsGroupLine")&&this.addContainer("commonElemsGroupLine",_("common-elems-group",i,this)):this.removeContainer("commonElemsGroupLine"),!this.getContainer("plotGroup")&&this.addContainer("plotGroup",_("plot-group",a,this)),!this.getContainer("errorPlotGroup")&&this.addContainer("errorPlotGroup",_("error-plot-group",e,this)),r.hasAnchor&&this.getContainer("errorPlotGroup").insertBefore(this.getContainer("plotGroup")),!this.getContainer("labelGroup")&&this.addContainer("labelGroup",_("label-group",l.getChildContainer("vcanvasLabelGroup"),this).attr("class","fusioncharts-datalabels"))},a.createCoordinates=function(){var e,t,a,i,o,r,l,s,c,h,u=this.config,d=this.components.data,g=this.getFromEnv("chart"),p=g.isBar,f=this.getFromEnv("yAxis"),m=this.getFromEnv("xAxis"),v=f.getAxisBase(),b=f.getPixel(v),x=m.config.isVertical,y=g.config.xDepth||0,C=g.config.yDepth||0,k=d.length,S=this.components,w=this.getLinkedParent(),L=w.getstackConf&&w.getstackConf(),A=S.data,N=this.getSkippingInfo&&this.getSkippingInfo(),F=N&&N.skippingApplied,E=N&&N.draw||[],_=E&&E.length;for(!p&&(y=-y),p&&(C=-C),F&&(k=_),o=0;o<k;o++)t=(e=A[i=E[o]||o])&&e.config,e!==n&&(a=t._b,c=m.getPixel(L&&L[i]&&L[i].x||t._x),r=(isFinite(c)?c:0)+y,h=f.getPixel(t._y),l=(isFinite(h)?h:0)+C,s=(a?f.getPixel(a):b)+C,x?(t._Px=l,t._Py=r,t._Pby=r,t._Pbx=s):(t._Px=r,t._Py=l,t._Pby=s,t._Pbx=r),0===t.givenPlotShowValue?t.showValue=0:1===t.givenPlotShowValue?t.showValue=1:1!==t.givenPlotShowValue&&u.showValues&&(Math.sqrt((s-l)*(s-l))<t.minplotheightforvalue?t.showValue=0:t.showValue=1),this.getLineShift&&(t._Py+=this.getLineShift("y")))},a.setContainerVisibility=function(e){var t,a=this.getContainer();for(t in a)a.hasOwnProperty(t)&&(!1!==this.getState("visible")||!1!==this._conatinerHidden&&this._conatinerHidden!==n||e?(a[t].show(),this._conatinerHidden=!1):(a[t].hide(),this._conatinerHidden=!0))},a.plotAnimManager=function(e,t,a,i){var n,o,r,l,s,c,h=this.getFromEnv("chart"),u=h.getFromEnv("animationManager"),d=h.config.is3D,g=h.config,p=this.getState("visible"),f=t.x,m=this.getSkippingInfo&&this.getSkippingInfo(),v=m&&m.draw||[],b=this.getFromEnv("plotGroup3d");c=((r=e&&e.config)&&r.setValue)<0,s=d?(o=c?b.negativeGroupArray:b.positiveGroupAarray)[h.isBar?o.length-1-a:a]:this.getContainer("plotGroup"),l={el:(n=e.graphics.element)||(d?"cubepath":"rect"),container:s,attr:p&&t,doNotRemove:!0,props:{originalIndex:v[a]||a},index:a,length:i,component:this,label:"rect"},p||(l.callback=function(){this.hide()}),e.graphics.element=n=u.setAnimation(l),d&&(n.appendTo(s),(g.isstacked&&c||!g.isstacked&&h.isBar)&&n.toBack()),null!==e.config.setValue?this.getState("visible")&&n.show():(n.remove(),delete e.graphics.element),r._oldPx=r._Px,r._oldX=f,p&&(e.oldPrevDataObj=e.prevDataObj)},a.flushOnScroll=function(e,t){for(var a,i=this.components.data,n=e,o=t-1;n<=o;n++)(a=i[n])&&a.graphics&&(E(a.graphics,this.__removeElem),a.graphics={})},a.removingDraw=function(){var t=this;t.components.data.forEach((function(e){E(e.graphics,t.__removeElem),delete e.graphics})),e.prototype.removingDraw.call(this)},a._contextChanged=function(){var e;this.config.context||(this.config.context={});var t,a=this.config.context,i=a.shift,n=this.getFromEnv("xAxis"),o=this.getFromEnv("yAxis"),r=a.axisLimit,l=!1,s={yAxis:{limit:o.getVisibleConfig()},xAxis:{limit:n.getVisibleConfig()}};return s.yAxis.limitPixel={min:o.getPixel(s.yAxis.limit.minValue),max:o.getPixel(s.yAxis.limit.maxValue)},s.xAxis.limitPixel={min:n.getPixel(s.xAxis.limit.minValue),max:n.getPixel(s.xAxis.limit.maxValue)},r!==(t=JSON.stringify(s))&&(a.axisLimit=t,l=!0),i!==this.getFromEnv("shift")&&(a.shift=this.getFromEnv("shift"),l=!0),a.prevColNum!==this.getFromEnv("numOfColumns")&&(a.prevColNum=this.getFromEnv("numOfColumns"),l=!0),n.getProcessLen?e=n.getProcessLen():n.getTicksLen&&(e=n.getTicksLen()),a.prevCatlen!==e&&(a.prevCatlen=e,l=!0),!!this.getFromEnv("chart").isRealTime||l},a.calculateScrollRange=function(){var e,t=this.config,a=this.getFromEnv("xAxis"),i=a.getTicksLen(),n=this.getSkippingInfo&&this.getSkippingInfo()||{},o=n.skippingApplied,r=n.draw||[],l=n.labelDraw||[],s=r.length;e=o?s-1:i,t.scrollMinVal=C(F(a.getVisibleConfig().minValue),0)-1,t.scrollMaxVal=y(F(a.getVisibleConfig().maxValue)+1,e)+1,e=o?l.length-1:i,t.scrollMinValForLabel=C(F(a.getVisibleConfig().minValue),0)-1,t.scrollMaxValForLabel=y(F(a.getVisibleConfig().maxValue)+1,e)+1},a.drawPlots=function(){var e,t,a,i,n,o,r,l,s,c=this.getFromEnv("chart"),h=this.config,u=c.config.plothovereffect,d=this.components.data,g=this.getContainer("shadowGroup"),p=h._oldStartIndex,f=h._oldEndIndex,x=this.getSkippingInfo&&this.getSkippingInfo(),y=x&&x.draw;for(r=h.scrollMinVal,l=h.scrollMaxVal,r>p&&this.flushOnScroll(p,r>f?f:r),l<f&&this.flushOnScroll(l<p?p:l,f),h._oldStartIndex=r,h._oldEndIndex=l,e=r,s=l-1;e<l;e++,s--)(t=d[y[e]||e])&&(o=(i=t.config).props.element.attr,this.plotAnimManager(t,o,e,l),n=t.trackerConfig,(a=t.graphics.element)&&(a.shadow(i.shadow,g).data("BBox",void 0),c.config.enablemousetracking&&a.data("eventArgs",n.eventArgs).data(m,u).data(v,i.setRolloverAttr||{}).data(b,i.setRolloutAttr||{})));h.appearing&&(h.appearing=!1)},a.setColumnPosition=function(){var e,t;if((e=this.getFromEnv("plotWidth"))===n){var a,i,o=this.getFromEnv("xAxis"),r=this.getFromEnv("chartConfig"),s=this.getSkippingInfo().plotsPerBin,c=C(r.plotSpacePercent,0),h=C((0,l.pluckNumber)(c,20)%100,0),u=1===s?h/200:0,d=o.getPixel(0),g=o.getPixel(s),p=this.getFromEnv("chart"),f=p.isBar?p.config.maxBarHeight:p.config.maxColWidth,m=k(g-d),v=!0;e=(a=(1-.01*c)*m||y(m*(1-2*u),1*f))/1,g-(i=a/2)-(d-i+a)<4&&(v=!1),0===h&&(v=!0),this.addToEnv("isCrisp",v)}this.addToEnv("columnWidth",e),t=this.getFromEnv("shift")||0,this.addToEnv("columnXShift",t-this.getFromEnv("columnWidth")/2)},a.addDatasetSpecificEvtArgs=function(e){var t=this.config,a=e,i=a.config,n=this.getFromEnv("chart").config,o=a.trackerConfig.eventArgs;Object.assign(o,{color:i.originalPlotColorl,gradientColor:t.plotgradientcolor,alpha:i.plotFillAlpha,borderColor:i.plotbordercolor||t.plotbordercolor,borderAlpha:i.plotBorderAlpha,borderThickness:n.plotborderthickness,borderDashed:i.dashed,hoverColor:i.hoverColor,hoverAlpha:i.hoverAlpha,borderHoverColor:i.hoverBorderColor,borderHoverAlpha:i.hoverBorderAlpha})},a.parsePlotAttributes=function(e,t){var a,i,n,o,r,s,c,h,u,d,p,f,m,v,b,x,C,N,F,E,_,T,P,D,I=this.config,M=this.config.JSONData,O=this.getFromEnv("chart"),R=O.getFromEnv("dataSource").chart,V=O.config.isstacked,B=this.config,G=this.groupManager,H=this.getJSONIndex(),z=t,W=this.getState("visible"),j=O.config,U=O.config.is3D,q=O.isBar,Y=j.xDepth||0,X=j.yDepth||0,K=this.getFromEnv("yAxis"),Z=this.getFromEnv("xAxis"),J=j.showtooltip,$=!1!==this.getState("visible"),Q=this.components.data,ee=e.config,te=K.getAxisBase(),ae=K.yBasePos=K.getPixel(te),ie=(0,l.pluckNumber)(B.plotborderthickness,j.plotborderthickness),ne=(0,l.pluckNumber)(j.useroundedges,0),oe=B.use3dlighting,re=y(I.yAxisMinPixel,I.yAxisMaxPixel),le=G&&G.stackConf,se=this.getFromEnv("columnXShift"),ce=O.config.viewPortConfig,he=ce.x,ue=ce.scaleX,de=(0,l.pluckNumber)(j.showplotborder);m=ee.setLink,b=ee.colorArr||[],Z.config.isVertical?(h=this.getFromEnv("columnWidth"),c=se):(r=this.getFromEnv("columnWidth"),s=se),e.graphics||(Q[z].graphics={}),v=ee.displayValue,!$&&(ee._Py=ee._Pby),F=y(ee._Px,ee._Pbx)+(s||0)+he*ue,E=y(ee._Py,ee._Pby)+(c||0),le&&(F-=r/2),_=r||k(ee._Px-ee._Pbx),T=h||k(ee._Py-ee._Pby),a=q?ee._Px-ee._Pbx>0?w:L:ee._Py-ee._Pby>0?A:S,f=(0,l.getValidValue)((0,l.parseUnsafeString)((0,l.pluck)(ee.origToolText,M.plottooltext,R.plottooltext))),this.fineTunePlotDimension&&(F=(D=this.fineTunePlotDimension(F,E,T,_,z)).xPos,E=D.yPos,_=D.width,T=D.height),i=F,n=E,u=_,d=T,o=Z.getPixel(1)-Z.getPixel(0)-(q?d:u),!isFinite(d)&&(d=0),W&&(o<5&&this.getFromEnv("columnWidth")<5||(C=(0,l.crispBound)(F,E,u,d,ie,a,V)),C?(i=C.x,n=C.y,ie=C["stroke-width"],u=C.width,d=C.height||1):(i=F,n=E),Z.config.isVertical?i===re&&(i-=ie,u+=ie):n+d===re?d+=ie:n===re&&(n-=ie,d+=ie),ee.setRolloutAttr&&(ee.setRolloutAttr["stroke-width"]=I.showplotborder?ie:0)),p=ee.finalTooltext=!1!==ee.toolText?ee.toolText+(f?"":ee.toolTipValue):"",x=ee.plotBorderDashStyle,(N=e.trackerConfig={}).eventArgs={index:z,link:m,value:ee.setValue,displayValue:v,categoryLabel:ee.origLabel,toolText:p,id:"",datasetIndex:H,datasetName:M.seriesname,visible:W},this.addDatasetSpecificEvtArgs(e),P=ae===n+0,ee.props={element:{attr:{x:i||0,width:u||0,height:d||0,y:n||0,r:ne,fill:(0,l.toRaphaelColor)(b[0])||"",stroke:de?(0,l.toRaphaelColor)(b[1])||"":l.TRACKER_FILL,"stroke-width":de?ie:0,"stroke-dasharray":x,"stroke-linejoin":"miter",visibility:W,cursor:m?"pointer":""}}},U&&(ee.props.element.attr.noGradient=!oe,ee.props.element.attr.xDepth=Y,ee.props.element.attr.yDepth=X),e._xPos=i+Y,e._width=u,e._yPos=n-X,e._height=d,e._index=z,e._plotBorderThickness=ie,(m||J)&&(d<g&&(n-=(g-d)/2,d=g),N.attr={x:i,y:n,width:u,height:d,r:ne,cursor:m?"pointer":"",stroke:l.TRACKER_FILL,"stroke-width":de?ie:0,fill:l.TRACKER_FILL,visibility:W}),ee.oldValue=void 0,e._oldYBaseTouched=P},a.parseLabelAttributes=function(e){var t,a,i,o,r,l,s,c,h,u,d,g,p,f=this.getFromEnv("chart"),m=f.config,v=f.getFromEnv("smartLabel"),b=f.config.dataLabelStyle,x=this.config.legendInteractivity,y=this.getState("visible"),C=m.rotatevalues?270:0;if(u=(d=e&&e.config)&&d.setValue,e===n||u===n||null===u||!0===d.labelSkip)return d&&delete d.labelSkip,void((p=e&&e.graphics)&&p.label&&p.label.hide());(r=e.graphics)&&(c=e._yPos,h=e._xPos,i=d.displayValue,d.showValue&&null!==u?(x&&d._state||(v.setStyle(b),o=v.getOriSize(i),d._state=C?{labelWidth:o.height,labelHeight:o.width}:{labelWidth:o.width,labelHeight:o.height}),s=(g=this._getValuePosition({labelWidth:d._state.labelWidth,labelHeight:d._state.labelHeight,width:e._width,height:e._height,yPos:c,xPos:h,value:u})).textX,l=g.textY,d.props||(d.props={}),t=d.dataLabelStyle,d.props.label={attr:{x:s,y:l,text:i,"text-bound":[t.backgroundColor,t.borderColor,b.borderThickness,b.borderPadding,b.borderRadius,b.borderDash],opacity:y?1:0}},a=d.props.label.attr,x||(a["line-height"]=b.lineHeight,a.fill=t.color)):r.label&&(r.label.attr({"text-bound":[]}),r.label.hide()))},a.allocatePosition=function(){var e,t,a,i,n,o,r,l,s=this.getFromEnv("chart"),c=s.config,h=this.config,u=this.components.data.length,d=this.getFromEnv("yAxis"),g=this.components.data,p=c.isstacked,f=this.getSkippingInfo&&this.getSkippingInfo(),m=f&&f.draw;for(this.deleteFromEnv("columnWidth"),this.setColumnPosition(),this.calculateScrollRange(),p&&this.updateYForStack(),this.createCoordinates(),i=d.getLimit(),r=d.getPixel(i.max),l=d.getPixel(i.min),n=h.scrollMinVal,o=h.scrollMaxVal,r>l?(h.yAxisMaxPixel=r,h.yAxisMinPixel=l):(h.yAxisMaxPixel=l,h.yAxisMinPixel=r),t=0;t<u;t++)e=m[t]||t,s.hasScroll&&(e<n||e>o)||(a=g[e])&&(this.parsePlotAttributes(a,e),this.parseLabelAttributes(a))},a.draw=function(){var e,t,a=this,i=a.config,n=a.getState("visible"),o=a.getFromEnv("xAxis"),r=o.getPixel(0),l=o.getPixel(1),s=a.getFromEnv("groupMaxWidth"),c=a.getFromEnv("chart").config.xDepth||0,h=a.getFromEnv("yAxis"),d=i.drawn,g=h.getLimit(),p=g.max,f=g.min,m=p>0&&f<0,v=a._contextChanged(),b=(a.getSkippingInfo&&a.getSkippingInfo()||{}).skippingApplied;s||(s=k(l-r),a.addToEnv("groupMaxWidth",s)),(a.getState("removed")||a.getState("dirty")||v&&n)&&(!d&&a.createContainer(),a.setContainerVisibility(!0),b&&a.hidePlots(),a.drawPlots(),a.drawCommonElements&&!a.config.skipCommonElements&&a.drawCommonElements(),e=i.scrollMinValForLabel,t=i.scrollMaxValForLabel,i.drawn?a.drawLabel(e,t):a.addJob("labelDrawID",(function(){a.drawLabel(e,t)}),u.priorityList.label),i.drawn=!0,a.removePlots(),i.oldGroupMaxWidth=s,i.oldDataIsPositiveNegative=m,i.oldZeroAxisPos=h.getPixel(h.getAxisBase())+c,a.drawErrorValue&&a.drawErrorValue(),i.prevVisible=n,i.catDiff=0)},a.show=function(){var e=this.getLinkedParent(),t=this.getFromEnv("legend");t&&t.getItem(this.config.legendItemId)&&t.getItem(this.config.legendItemId).removeLegendState("hidden"),this.setState("visible",!0),this.config.appearing=!0,this._conatinerHidden=!1,this.setState("dirty",!0),e.childChanged(),this.config.appearing=!1,this.asyncDraw()},a.hide=function(){var e=this.getLinkedParent(),t=this.getFromEnv("legend");t&&t.getItem(this.config.legendItemId)&&t.getItem(this.config.legendItemId).setLegendState("hidden"),this.setState("dirty",!0),this.setState("visible",!1),e.childChanged(),this.asyncDraw()},a.drawLabel=function(e,t){var a,i,o,r,s,c,h,u,d,g,p,f,m=this.getFromEnv("chart"),v=this.getFromEnv("animationManager"),b=m.config,x=this.getFromEnv("xAxis"),y=this.getFromEnv("paper"),C=this.getState("visible"),k=m.getFromEnv("smartLabel"),S=m.config.dataLabelStyle,w=this.config,L=x.getTicksLen(),A=this.components,N=A.data,F=A.pool,E=b.rotatevalues?270:0,_=w.labelDrawn,T=this.getSkippingInfo&&this.getSkippingInfo(),P=T&&T.skippingApplied,D=T&&T.labelDraw||[],I=D.length,M=(0,l.pluckNumber)(e,0),O=(0,l.pluckNumber)(t,P?I:L),R=I===Math.abs(O-(M+1)),V=function(){this.attr({"text-bound":[]}),this.hide()};for((f=this.getContainer("labelGroup")).css({fontFamily:S.fontFamily,fontSize:S.fontSize,fontWeight:S.fontWeight,fontStyle:S.fontStyle}),f.show(),k.useEllipsesOnOverflow(m.config.useEllipsesWhenOverflow),k.setStyle(S),r=M;r<O;r++)h=(u=(a=N[o=P&&R?D[r]:r])&&a.config)&&u.setValue,a!==n&&h!==n&&null!==h&&!0!==u.labelSkip?(s=a.graphics)&&(u.showValue&&null!==h?(i=u.props.label.attr,c=a._xPos,!s.label&&_&&m.isRealTime&&((d=(0,l.extend2)({},i)).x=i.x-c+(a._newXPos||0),d.transform=y.getSuggestiveRotation(E,d.x,i.y),F&&F.label[0]&&(s.label=F.label[0],F.label.splice(0,1))),i.transform=y.getSuggestiveRotation(E,i.x,i.y),(g=s.label)||F&&F.label[0]&&(g=s.label=F.label[0],F.label.splice(0,1)),(g=v.setAnimation({el:s.label||"text",attr:i,component:this,label:"plotLabel",index:o,container:f,callback:!C&&V}))&&g.show(),g&&g.outlineText(w.showTextOutline,i.fill),s.label||(s.label=this.addGraphicalElement("plotLabel",g,!0))):s.label&&(s.label.attr({"text-bound":[]}),s.label.hide())):(u&&delete u.labelSkip,(p=a&&a.graphics)&&p.label&&p.label.hide());w.labelDrawn=!0},a._getValuePosition=function(e){var t,a,i,n,o,r,s,c,h,u=this.getFromEnv("chart"),d=u.getChildren(),g=u.config,p=d.yAxis[0],f=g.xDepth||0,m=g.yDepth||0,v=g.canvasTop,b=g.canvasHeight+m,x=e.yPos,k=u.config.is3D,S=u.config.isstacked,w=g.valuepadding+2,L=e.height,A=e.width,N=g.placevaluesinside,F=e.labelHeight,E=p.getAxisConfig("isReverse"),_=e.value;return E||(c=!(_<0)),r=h=F+w,n=L,i=x-(s=.5*h+w),a=e.xPos+.5*A,(o=(0,l.pluck)(c,_<0))?(t=v+b-(x+L+m),i=x):t=x-v,S?(i=y(v+b-.5*r,i=x+.5*L+(m||0)),i=C(v+.5*r,i),a-=f):N?n>=r?(i=x+(o?L-s:s),k&&(a-=f,i+=m)):t>=r?(i=x+(o?L+s:-s),k&&o&&(a-=f,i+=m)):(i=x+(o?L-s:s),k&&(a-=f,i+=m)):t>=r?(i=x+(o?L+s:-s),k&&(o?(a-=f,i+=m):a-=f/2)):(i=x+(o?L-s:s),k&&(a-=f,i+=m)),{textX:a,textY:i}},a.getDataLimits=function(){return{max:this.config.maxValue,min:this.config.minValue}},a.addData=function(e,t,a){var i,o=this.components,r=o.data,l=e.data.length;for(o.addDataArr=e.data,0===t?this.startPosition=!0:t+l!==r.length&&t!==n||(this.startPosition=!1),i=0;i<l;i++)t!==n?r.splice(t+i,0,{config:{}}):r.push({config:{}});this._setConfigure(e,t),a&&this.asyncDraw()},a.removeData=function(e,t,a){var i,o,r=e,l=t,s=this.getFromEnv("chart"),c=this.components,h=c.data,u=c.removeDataArr||(c.removeDataArr=[]);for(l===n&&(l=1),(r=r||0)+l!==h.length&&s.isRealTime?0!==r&&r!==n||(this.endPosition=!1):this.endPosition=!0,c.removeDataArr=u=u.concat(h.splice(r,l)),i=(o=u.length)-1;i>=0;i--)u[i]||u.splice(i,1);this.removeDataLen=o,a&&this.asyncDraw()},a.updateData=function(e,t,a){var i=this.config,n=i.maxValue,o=i.prevMin,r=this.getFromEnv("chart"),l=this.groupManager||this,s=r.getFromEnv("xAxis"),c=r.getFromEnv("yAxis");this._setConfigure(e,t),this.getDataLimits(),i.maxValue===n&&i.minValue===o||(this.maxminFlag=!0),a&&(r._setAxisLimits(),s&&s[0].asyncDraw(),c&&c[0].asyncDraw(),l.asyncDraw())},a.removePlots=function(){var e=this.components,t=e&&e.removeDataArr;T(t,this.__removeElem)},a.removeGraphicElem=function(e,t){this.__removeElem(e,t)},a.getAxisValuePadding=function(){return this.config.defaultPadding},a.getCanvasPadding=function(){var e,t,a,i,o,r,s=this.config||(this.config={}),c=this.components||{},h=this.getFromEnv("chart"),u=h.config.rotatevalues,d=this.getFromEnv("xAxis"),g=this.getFromEnv("yAxis"),p=h.config.dataLabelStyle,f=this.getSkippingInfo(),m=f.skippingApplied,v=f.draw,b=c.data||[],x=m?v[0]:0,y=m?v[v.length-1]:b.length-1,k=s.leftMostData||b[x],S=s.rightMostData||b[y],w={},L={},A=0,N=0,F=0,E=d.getPixel(0),_=this.getFromEnv("smartLabel"),T={paddingLeft:0,paddingRight:0,paddingTop:0,paddingBottom:0},P=0,D=d.getValuePadding(),I=s.topMostData,M=s.bottomMostData;return this.setColumnPosition(),r={xPosOffset:this.getFromEnv("columnXShift"),columnWidth:this.getFromEnv("columnWidth"),height:n},k&&(i=(e=k.config).showValue,a=e&&e.anchorProps||{},i&&(t=e.displayValue,_.useEllipsesOnOverflow(h.config.useEllipsesWhenOverflow),_.setStyle(p),L=_.getOriSize(t),P=u?L.height:L.width),null!==e.setValue&&(o=d.getPixel(D.left),(F=(A=a.enabled&&(0,l.pluckNumber)(a.radius,0)+(0,l.pluckNumber)(a.borderThickness,0)/2||0)-(o-E))<0&&(F=0),(N=(P||0)/2-(o-E)-(r&&r.xPosOffset+r.columnWidth/2||0))<0&&(N=0)),T.paddingLeft=C(F,N)),F=N=0,S&&(i=(e=S.config).showValue,a=e&&e.anchorProps||{},i&&!u&&(t=e.displayValue,_.setStyle(p),w=_.getOriSize(t),P=u?w.height:w.width),null!==e.setValue&&(o=d.getPixel(D.right),(F=(A=a.enabled&&(0,l.pluckNumber)(a.radius,0)+(0,l.pluckNumber)(a.borderThickness,0)/2||0)-(o-E))<0&&(F=0),(N=(P||0)/2-(o-E)+(r&&r.xPosOffset+r.columnWidth/2||0))<0&&(N=0)),T.paddingRight=C(F,N)),I&&(i=(e=I.config).showValue,a=e&&e.anchorProps||{},null!==e.setValue&&(A=(0,l.pluckNumber)(a.radius,0)+(0,l.pluckNumber)(a.borderThickness,0)/2,N=Math.max(A-(g.getPixel(e.setValue.y)-g.getPixel(g.getLimit().max)),0)),T.paddingTop=N),M&&(a=(e=M.config)&&e.anchorProps||{},null!==e.setValue&&(A=(0,l.pluckNumber)(a.radius,0)+(0,l.pluckNumber)(a.borderThickness,0)/2,N=Math.max(A-(g.getPixel(g.getLimit().min)-g.getPixel(e.setValue.y)),0)),T.paddingBottom=N),T},a.getEventArgs=function(){var e=this.config||{};return{datasetName:(this.config.JSONData||{}).seriesname,datasetIndex:this.getJSONIndex(),id:e.userID,visible:!this.getState("visible")}},a.getData=function(){return this.components.data},a.setJSONIndex=function(e){this.config.index=e},a.getJSONIndex=function(){return this.config.index||0},a.remove=function(t){var a=this.config.legendItemId,i=this.getFromEnv("chart").getChildren("legend"),n=this.getFromEnv("legend");i&&i.length&&n&&a&&n.disposeItem(a),e.prototype.remove.call(this,t)},a.setMaxMin=function(e){var t,a,i,o=this.components,r=o.data,l=o.removeDataArr,s=this.config,c=r.length,h=-Infinity,u=+Infinity,d=s.maxValue,g=s.minValue,p=l.length,f=!1;if(e)f=d===e.startValue||g===e.startValue||d<e.config.setValue||g>e.config.setValue;else if(p)for(t=0;t<p;++t)if(d===(i=l[t]&&l[t].config&&l[t].config.setValue)||g===i){f=!0;break}if(f){for(t=0;t<c;t++)r[t]&&(a=r[t].config.setValue)!==n&&(h=C(h,a),u=y(u,a));s.maxValue=h,s.minValue=u}},t}(s.ComponentInterface);P.prototype._configureDataLabelStyle=l.configureDataLabelStyle;var D=P;t["default"]=D},482:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=a(184),n={"initial.dataset.column":function(){var e=this,t=e.getFromEnv("chart"),a=t.config.yDepth||0,n="y",o="height",r="x",l="width",s=e.getFromEnv("yAxis"),c=e.getFromEnv("xAxis"),h=function(i,c){var h,u,d,g,p=e.config,f=c&&c.graphics&&c.graphics.element,m=i.attr,v=s.getPixel(s.getAxisBase())+(t.isBar?-a:a),b={},x=p.oldZeroAxisPos;if(h=f.attr(),b[n]=u=h[n],b[o]=h[o],b[r]=h[r],b[l]=h[l],d=h[n]+h[o],v!==x&&(x-v>=0?(u>v&&u<=x+.7&&(b[n]=v,d>x&&(b[o]=d-b[n])),d>v&&d<=x+.7&&(b[o]=v-(b[n]||0===b[n]?b[n]:u))):(u<v&&u>=x-.7&&(b[n]=v,d>v&&(b[o]=d-b[n])),d<v&&d>=x-.7&&(b[o]=v-(b[n]||0===b[n]?b[n]:u))),g=!0),e.config.catDiff&&(b[r]=m[r],b[l]=m[l],g=!0),c._plot_1Start=b,g)return{finalAttr:b,slot:"axis"}};return{"rect.appearing":function(h){var u,d,g,p,f=s.getPixel(s.getAxisBase())+(t.isBar?-a:a),m=h.props&&h.props.originalIndex||h.index,v=e.components.data[m],b=h.attr;return c.config.isVertical&&(n="x",o="width",r="y",l="height"),u=b[n],d=b[o],p=Math.sign(u+d/2-f),g=1===p?u:u+d,v._posWRT0=p,[{initialAttr:function(){var e={};return e[n]=g,e.opacity=0,e[o]=0,e},finalAttr:{opacity:1},startEnd:function(){var t=h.length;return i.animHelperFN.getTimeByValue(i.animHelperFN.animByWeight(h.index,t,.6),{startPx:f,endPx:1===p?e.config.yAxisMaxPixel:e.config.yAxisMinPixel},{startPx:g,endPx:1===p?b[n]+b[o]:b[n]})},hookFn:function(){this.attr({opacity:1})},effect:"linear",slot:"plot"}]},"rect.updating":function(i){var u,d,g,p,f,m,v,b,x,y,C,k,S,w,L,A,N,F,E,_,T,P,D,I,M,O,R,V,B=[],G=e.components.data[i.props&&i.props.originalIndex||i.index],H=i.attr,z=G&&G.graphics&&G.graphics.element,W=s.getPixel(s.getAxisBase())+(t.isBar?-a:a),j=0,U=e.getFromEnv("numColDiff");return c.config.isVertical&&(n="x",o="width",r="y",l="height"),(V=h(i,G))&&B.push(V),S=(k=G.prevDataObj)&&k._plot_1Start,E=k&&k._plot_1End,w=k&&k._plot_2Start,L=G.oldPrevDataObj,A=G.oldPrevDataObj&&G.oldPrevDataObj._plot_1End,g=(u=(b=G._plot_1Start)[n])+(d=b[o]),p=u+d/2,v=(f=H[n])+(m=H[o])/2,N=(g+(f+m))/2,_=Math.sign(p-W),T=Math.sign(v-W),(C={})[n]=(y={})[n]=(u+f)/2,C[o]=y[o]=(d+m)/2,d?_!==T?(C[o]=y[o]=0,y[n]=L&&L._oldPosWRT0===_?A[n]+(1===_?A[o]:0):W,C[n]=w?w[n]+(1===T?w[o]:0):W,F=x=!0):k!==L&&(D=(P=A||!(!E||Math.sign(E[n]+E[o]/2-W)!==_)&&E)?P[n]+(1===_?P[o]:0):W,1===_?(C[n]=y[n]=D,C[o]=y[o]=N-y[n]):C[o]=y[o]=D-y[n],x=!0):k&&k._oldPosWRT0===T||0===e.stackIndex?((O={})[o]=0,O[n]=S?S[n]+(k._posWRT0>0?S[o]:0):W,G._posWRT0=T,G._plot_1Start=O,C[n]=y[n]=(O[n]+f)/2,C[o]=y[o]=m/2):p===W&&(T!==G._posWRT0?j=.5:(x=!0,y[n]=1===T?W:W-y[o])),U<0?(y[r]=H[r],y[l]=H[l],x=!0):U>0?j=.5:b[r]===H[r]&&b[l]===H[l]||(.5===j?((O={})[r]=H[r],O[l]=H[l],I=function(){F&&z.attr(C),z.attr(O)}):(y[r]=H[r],y[l]=H[l],x=!0,I&&(M=function(){z.attr(O)},I=void 0))),x&&(B.push({finalAttr:y,startEnd:{start:0,end:.5},hookFn:M,slot:"plot"}),j=.5),!I&&(I=function(){F&&z.attr(C)}),B.push({effect:"linear",startEnd:{start:j,end:1},finalAttr:{x:H.x,y:H.y,width:H.width,height:H.height},callback:function(){null!==G.config.setValue&&void 0!==G.config.setValue||this.hide()},hookFn:I,slot:"plot"}),delete(R=Object.assign({},H)).x,delete R.y,delete R.width,delete R.height,B.push({finalAttr:R,effect:"linear",slot:"plot"}),G._plot_1End=y,G._plot_2Start=C,G._oldPosWRT0=G._posWRT0,G._posWRT0=T,B},"rect._disappearing":function(i){var r,l,c,u,d,g=s.getPixel(s.getAxisBase())+(t.isBar?-a:a),p=e.components.removeDataArr,f=p&&p[i.props&&i.props.originalIndex||i.index]||e.components.data[i.props&&i.props.originalIndex||i.index],m=f&&f.graphics&&f.graphics.element,v=f.oldPrevDataObj&&f.oldPrevDataObj._plot_1End,b=[];if(m)return(u=h(i,f))&&b.push(u),s.config.isVertical||(n="x",o="width"),r=(l=(d=f._plot_1Start)[n])+d[o]/2>g?v?v[n]+v[o]:l:v?v[n]:g,(c={})[n]=r,c[o]=0,c.width=f._width,c.x=f._xPos,b.push({startEnd:{start:0,end:e.getFromEnv("numOfColumns")<1?1:.5},finalAttr:c,slot:"plot"}),f._plot_1End=i.finalAttr,b},"plotLabel.appearing":[{initialAttr:{opacity:0},slot:"final"}],"plotLabel._disappearing":[{hookFn:function(){this.hide()},slot:"initial"}],"plotLabel.updating":[{hookFn:function(){this.hide()},slot:"initial"},{hookFn:function(){this.show()},initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}],"group.appearing":function(e){return"label-group"===e.attr.name?[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}]:[{initialAttr:{opacity:1},finalAttr:{opacity:1},slot:"final"}]},"*":null}}};t["default"]=n},498:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(499)),r=a(184),l=a(192),s=i(a(501)),c=Math.abs,h="line";(0,l.addDep)({name:"lineAnimation",type:"animationRule",extension:s["default"]});var u=function(e){function t(){var t;return(t=e.call(this)||this).updateYForStack=r.stubFN,t.config.primitiveType=h,t}(0,n["default"])(t,e);var a=t.prototype;return a.getType=function(){return"dataset"},a.getName=function(){return"line"},a.createPinElem=function(){var e,t,a,i=this,n=i.getFromEnv("chart"),o=arguments[1].group,r=i.config.lineOb,l=i.getGraphicalElement("pinElems")||i.addGraphicalElement("pinElems",[]),s=i.getFromEnv("paper"),h=i.getLinkedParent().getChildContainer("lineVcanvasGroup");for(t=l.length-1;t>=0;t--)l[t].remove(),l.pop();if(i.getState("visible"))for(a in r)e=r[a].el,l.push(s.path(o).attr({path:e.attrs.path,transform:["T",-(n.config._visx+c(h.transform()[0][1])),-n.config.canvasBottom]}).attr(i.config.pin))},a._addLegend=function(){var e,t,a,i=this.getFromEnv("chart"),n=this.config,o=i.getChildren("legend")[0],l=(0,r.pluckNumber)(n.drawanchors,1);n.includeinlegend?(a={enabled:n.includeinlegend,type:this.getName(),drawLine:(0,r.pluck)(n.drawLine,!0),index:this.getJSONIndex(),anchorSide:l?n.anchorsides:0,label:(0,r.getFirstValue)(this.config.JSONData.seriesname)},(e=o.getItem(this.config.legendItemId))||(this.config.legendItemId=o.createItem(this),e=o.getItem(this.config.legendItemId),this.addExtEventListener("fc-click",(function(){e.itemClickFn()}),e)),t={symbol:{fill:(0,r.toRaphaelColor)({color:n.anchorbgcolor,alpha:n.anchorbgalpha}),rawFillColor:n.anchorbgcolor,rawStrokeColor:n.anchorbordercolor,stroke:(0,r.toRaphaelColor)({color:n.anchorbordercolor,alpha:"100"}),"stroke-width":n.anchorborderthickness,lineWidth:n.linethickness}},e.setStateCosmetics("default",t),this.getState("visible")?e.removeLegendState("hidden"):e.setLegendState("hidden"),e.configure(a)):this.config.legendItemId&&o.disposeItem(this.config.legendItemId)},a._getDataLimits=function(){var e=this.config,t=this.getFromEnv("chart").config,a=e.maxValue,i=e.minValue,n=-Infinity,o=+Infinity,r=t.transposeAxis;return!1===this.getState("visible")&&r&&(a=n,i=o),{max:a,min:i}},a._drawCommonElementsHelper=function(e){var t,a,i,n=this,o=r.BLANKSTRING,l={},s=n.getFromEnv("animationManager"),c=n.config,h=c.shadow,u=c.linethickness,d=n.getContainer("commonElemsGroup"),g=function(){!1===n.getState("visible")&&this.hide()};for(o in e){for(t=["M0,0"],a=0,i=(l=e[o]).path&&l.path.length;a<i;++a)t=t.concat(l.path[a].getPathArr());n.config.drawLine?(l.el=s.setAnimation({el:l.el||"path",container:d,component:n,attr:!1!==n.getState("visible")&&Object.assign({path:t},l.attr),label:"line",callback:g}),n.getState("visible")&&l.el&&l.el.show()):l.el&&(l.el=s.setAnimation({el:l.el,component:n,doNotRemove:!0,callback:function(){this.hide()}})),!l.used&&delete e[o],l.el&&(u?l.el.shadow(h,d):l.el.shadow({opacity:0},d),l.el.toFront()),l.old=!0,l.used=!1,l.prevPath=l.path,l.attrs=void 0,l.path=void 0}},a.getLineShift=function(e){var t=this.getFromEnv("chart"),a=t.config.is3D,i=t.config.use3dlineshift;return"y"===e?a?i?0:-10:0:a?10:0},a.drawCommonElements=function(){var e,t,a,i,n,o,l,s,c,h,u=this.components.data,d=this.config,g=this.getFromEnv("xAxis"),p=this.getFromEnv("yAxis"),f=d.lineDashStyle,m=d.linethickness,v={color:d.linecolor,alpha:d.alpha},b=[(0,r.toRaphaelColor)(v),f].join(":"),x=b,y={x:g.getLimit(),y:p.getLimit()},C=u.length,k=this.config.lineOb||{},S=0,w=!1,L=this.getSkippingInfo&&this.getSkippingInfo(),A=L&&L.draw||[],N=A.length,F=L&&L.skippingApplied,E=function(e,t,a){var i=k[e];i||(i=k[e]={}),e!==x&&(i.hasDifferentColor=!0),i.used=!0,i.pathWithNull=a,i.path=i.path||[],i.stroke=e.split(":")[0],i.dashStyle=e.split(":")[1],i.path.push(t),i.dashStyle=i.dashStyle&&i.dashStyle.split(","),i.attr={"stroke-dasharray":i.dashStyle,"stroke-width":m,stroke:i.stroke,"stroke-linecap":"round","stroke-linejoin":m>2?"round":"miter"}},_=[];for(y.x.minPixel=g.getPixel(y.x.min),y.x.maxPixel=g.getPixel(y.x.max),y.y.minPixel=p.getPixel(y.y.min),y.y.maxPixel=p.getPixel(y.y.max),y.y.base=p.getPixel(0),y.x.base=g.getPixel(0),F&&(C=N),i=0;i<C;++i)(n=u[a=A[i]||i])&&((l=n.config||{})._Pbx=void 0,l._Pby=void 0,_[a]={config:{_Px:l._Px,_Py:l._Py,setValue:l.setValue}},t={color:l.setColor,alpha:l.setAlpha},e=l.dashStyle,b!==(o=[(0,r.toRaphaelColor)({color:(0,r.pluck)(t.color,v.color),alpha:(0,r.pluck)(t.alpha,v.alpha)}),e||f].join(":"))&&null!==n._yVal&&(w=!0,s=a,c=this.getLinePath(u,{begin:S,end:s+1}),h=this.getLinePath(u,{begin:S,end:s+1},void 0),l.connStartIndex=S,l.connEndIndex=s,E(b,c,h.getPathArr()),b=o,S=a,s=null),null!==n._yVal&&(b=o));o||(o=r.BLANKSTRING),d.pathStartIndex=S,d.pathEndIndex=s,E(o,c=this.getLinePath(u,{begin:w?S:d.scrollMinVal,end:w?s:d.scrollMaxVal}),(h=this.getLinePath(u,{begin:S,end:s},void 0)).getPathArr()),this._drawCommonElementsHelper(k),this.config.lineOb=k,d.prevLim=y,d.prevDataStore=_},a.show=function(){e.prototype.show.call(this),this.fireEvent("datasetVisibilityChanged",{dataset:this,state:"show"})},a.hide=function(){e.prototype.hide.call(this),this.fireEvent("datasetVisibilityChanged",{dataset:this,state:"hide"})},t}(o["default"]);t["default"]=u},499:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n,o=i(a(201)),r=i(a(198)),l=i(a(481)),s=a(184),c=a(196),h=a(192),u=i(a(500)),d=!s.hasSVG,g="DataPlotRollOver",p="DataPlotRollOut",f="area",m="L",v="Z",b=s.hasTouch?s.TOUCH_THRESHOLD_PIXELS:s.CLICK_THRESHOLD_PIXELS,x=s.preDefStr.DEFAULT,y=s.preDefStr.setRolloverAttrStr,C=s.preDefStr.setRolloutAttrStr,k=function(e){void 0===e&&(e="full");var t=this.pathMap,a=this.path2Map,i=[],n=[],o=!0;switch(e){case"detailed":for(var r in t)if(t.hasOwnProperty(r)&&(i.push(t[r]),a[r].length)){var l=t[r],s=Object.assign([],a[r]);if(s[s.length-1]===v&&s.pop(),s.length){var c=Object.assign([],l[l.length-1]),h=Object.assign([],l[0]);c[0]="M",h[0]=m,s.unshift(c),s.push(h)}n.push(s)}return(i=i.flat()).length?{top:i,bottom:n.flat()}:{top:["M0,0"],bottom:["M0,0"]};case"top":o=!1;default:for(var u in t)t.hasOwnProperty(u)&&(i.push(t[u]),o&&i.push(a[u]));return(i=i.flat()).length?i:["M0,0"]}},S=function(e){return e!==n&&null!==e&&""!==e},w=Math,L=w.min,A=w.max,N=w.ceil,F=function(e,t){var a,i,n,o,r,l,c,h,u,g,p,f,m,v,b,x,k=e.getFromEnv("chart").config,S=t.config,w=t.graphics,N=w.image||w.element,F=S.eventArgs,E=N._.RefImg,_=t._xPos,T=t._yPos,P=S.anchorProps,D=e.getContainer("shadowGroup"),I=S.hoverEffects,M=S.setLink,O=P.imageScale,R=P.imageAlpha,V=I.imageHoverAlpha,B=I.imageHoverScale,G=E.height*O*.01,H=E.width*O*.01,z=E.width*B*.01,W=E.height*B*.01;v=P.isAnchorRadius,P.markerRadius=i=P.radius=v?P.radius:L(H,G)/2,d?(f={x:_-E.width*O*.005,y:T-E.height*O*.005,width:H,height:G},p={x:_-E.width*B*.005,y:T-E.height*B*.005,width:z,height:E.height*B*.01,alpha:V},S.isAnchorsDrawn=!0,k.dragTolerance=k.dragTolerance<G?G+.5:k.dragTolerance,N.data("alwaysInvisible",!O).data("setRolloverProperties",I).data("hoverEnabled",I).data(y,p).data(C,f).data("imgRef",E).data("anchorRadius",O).data("anchorHoverRadius",B),N.attr(f),f.alpha=R):(a=P.symbol[1],b=I.isAnchorHoverRadius,n=P.shadow,h=P.imagePadding,I.radius=b?I.anchorRadius:i+1,r=I.radius-h-.5*I.anchorBorderThickness,c=i-h-.5*P.borderThickness,p=f={},k.dragTolerance=k.dragTolerance<i?i+.5:k.dragTolerance,x={fill:(0,s.toRaphaelColor)({color:P.bgColor,alpha:P.bgAlpha}),"stroke-width":P.borderThickness,stroke:(0,s.toRaphaelColor)({color:P.borderColor,alpha:P.borderAlpha})},f=(0,s.extend2)({path:(0,s.polyPathToPath)([a||2,_,T,i,P.startAngle,void 0])},x),I&&(p={path:(0,s.polyPathToPath)([I.anchorSides||2,_,T,I.radius,I.startAngle,I.dip]),fill:(0,s.toRaphaelColor)({color:I.anchorColor,alpha:I.anchorBgAlpha}),"stroke-width":I.anchorBorderThickness,stroke:(0,s.toRaphaelColor)({color:I.anchorBorderColor,alpha:I.anchorBorderAlpha})},V>(g=A(I.anchorAlpha,I.anchorBorderAlpha))&&(V=g)),P.bgAlpha&&P.borderAlpha&&R>(u=A(P.bgAlpha,P.borderAlpha))&&(R=u),(m=w.element).attr(Object.assign(x,{path:f.path})),m.attr({cursor:M?"pointer":""}).data("alwaysInvisible",!i).data("setRolloverProperties",I).data("hoverEnabled",I.enabled).data(y,p).data(C,f).data("anchorRadius",i).data("anchorHoverRadius",I&&I.radius).data("eventArgs",F).shadow(n,D),l=(0,s.polyPathToPath)([a||2,_,T,c>0?c:0,P.startAngle,void 0]),o=(0,s.polyPathToPath)([a||2,_,T,r>0?r:0,I.startAngle,I.dip]),P.imgRefWidth=E.width,P.imgRefHeight=E.height,P.imgRefScale=O,P.rolloutClipRadius=c,f={x:_-E.width*O*.005,y:T-E.height*O*.005,width:H,height:G,"clip-path":l},p={x:_-E.width*B*.005,y:T-E.height*B*.005,width:z,height:W,alpha:V,"clip-path":o},N.attr({x:f.x,y:f.y,width:f.width,height:f.height,"clip-path":f["clip-path"]}).data("alwaysInvisible",!O).data("setRolloverProperties",I).data(y,p).data(C,f).data("anchorRadius",O).data("imgRef",E).data("anchorHoverRadius",B),S.isAnchorsDrawn=!0,i=A(i,I&&I.anchorRadius||0,2)),t._xPos=_,t._yPos=T,e.parseLabelAttributes(t,t._index)};(0,h.addDep)({name:"areaAnimation",type:"animationRule",extension:u["default"]});var E=function(e){function t(){var t;t=e.call(this)||this;var a=(0,o["default"])(t);return a.__removeElem=function(e,t){a._setRemoveAnim(e,"element"===t||"image"===t?"anchor":"label")},a.config.primitiveType=f,t}(0,r["default"])(t,e);var a=t.prototype;return a.getType=function(){return"dataset"},a.getName=function(){return"area"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;t.valueposition=n,t.plotborderdashlen=n,t.plotborderdashgap=n,t.plotborderdashstyle=n,t.plotborderthickness=n,t.linethickness=n,t.linedashlen=n,t.linedashgap=n,t.dashed=n,t.linedashstyle=n,t.linecolor=n,t.linealpha=n,t.anchorbgcolor=n,t.anchorbordercolor=n,t.anchorradius=n,t.anchoralpha=n,t.anchorimageurl=n,t.anchorsides=n,t.anchorbgalpha=n,t.anchorborderthickness=n,t.anchorshadow=n,t.anchorstartangle=n,t.anchorimagealpha=n,t.anchorimagescale=n,t.anchorimagepadding=n,t.alpha=n,t.parentyaxis=n,t.inheritplotbordercolor=n},a._getHoveredPlot=function(e,t){var a,i,n,o,r,l,s=e,c=this.getFromEnv("xAxis"),h=this.components.data,u=h.length,d=this.config,g=this.getFromEnv("chartConfig").viewPortConfig.step||1,p=d&&d.radius||0,f=(this.getSkippingInfo&&this.getSkippingInfo()).plotsPerBin;for(s+=c.getTranslation(),i=Math.floor(Math.max(c.getValue(s-p),0)),n=Math.ceil(Math.min(c.getValue(s+p),u-1)),r+f-1,f>1&&(i=r=(N(i/f)-1)*f+1,n=N(n/f)*f),l=n;l>=i&&(!(a=h[l])||l%g||!(o=this.isWithinShape(a,l,s,t)));l--);return o},a.getClip=function(e){var t=this.getFromEnv("xAxis"),a=this.getFromEnv("yAxis"),i=a.getLimit(),n=t.getLimit(),o=t.getPixel(n.min),r=a.getPixel(i.min),l=a.getPixel(i.max),s=Math.abs(t.getPixel(n.max)-o),c=r-l,h=[];return h.push(o),h.push(c<0?r:l),"init"===e?h.push(0):"canvas"===e&&h.push(s),h.push(Math.abs(c)),h},a.isWithinShape=function(e,t,a,i,n){var o,r,l,c,h,u,d,g,p,f,m,v,x,y,C=n;if(e&&((C=e.config.setValue)||0===C))return o=e.config.anchorProps,r=e.config,c=o&&o.borderThickness,this,h=this.getFromEnv("chart").config.viewPortConfig,u=this.components.data,d=(0,s.pluckNumber)(r.dragTolerance,0),y=h?h.x*h.scaleX:0,g=e._xPos-y,null!==(p=e._yPos)?(x=e.config.hoverEffects,(l=Math.max(o&&o.radius,x&&x.anchorRadius||0,b)+c/2)||(l=3),f=a-g,m=i-p,((v=Math.sqrt(Math.pow(f,2)+Math.pow(m,2)))<=l||v<=d)&&{pointIndex:t,hovered:!0,pointObj:u[t]}):void 0},a._parseShadowOptions=function(){var e=this.getFromEnv("chart"),t=this.config,a=e.getFromEnv("dataSource").chart,i=this.getFromEnv("color-manager"),n=(0,s.pluckNumber)(e.defaultPlotShadow,i.getColor("showShadow"));return{opacity:(0,s.pluckNumber)(a.showshadow,n)?t.alpha/100:0}},a._firePlotEvent=function(e,t,a){var i,o,r,l=this.getFromEnv("chart"),s=this.components,c=this.getFromEnv("toolTipController"),h=s.data[t]||{},u=this.getGraphicalElement("sharedAnchor"),d=h.graphics&&h.graphics.element||(h.config&&h.config.setValue)!==n&&u,g=this.config.currentToolTip,p=l.getFromEnv("paper").canvas.style;if(d)switch(r=(i=h.config).setLink,o=i.eventArgs,e){case"fc-mouseover":this._decideTooltipType(t,a),this._rolloverResponseSetter(l,h,a),r&&(p.cursor="pointer");break;case"fc-mouseout":c.hide(g),this._rolloutResponseSetter(l,h,a),p.cursor=x;break;case"fc-click":l.plotEventHandler(d,a,"dataplotclick",o);break;case"fc-mousemove":this._decideTooltipType(t,a)}},a._rolloverResponseSetter=function(e,t,a,i){var n=t.graphics,o=n&&(n.element||this.getAnchor(t)),r=o&&o.data("draged"),l=o&&o.data("hoverEnabled");!0!==r&&(this._hoverFunc(t,g,l,e.getFromEnv("dataSource").chart),!i&&o&&e.plotEventHandler(o,a,g))},a._rolloutResponseSetter=function(e,t,a,i){var n=t.graphics,o=n&&(n.element||this.getAnchor(t)),r=o&&o.data("draged"),l=o&&o.data("hoverEnabled"),s=this.type,c=t.config,h=c.anchorProps,u=h.radius&&h.anchorAlpha;!0!==r&&(this._hoverFunc(t,p,l,e.getFromEnv("dataSource").chart),!i&&o&&e.plotEventHandler(o,a,p)),c.isAnchorsDrawn&&!u&&"area"===s&&o&&o.hide()},a.getAnchor=function(e){void 0===e&&(e={});var t,a,i,n,o,r,l,s,c,h=this.getFromEnv("animationManager"),u=this.getGraphicalElement("sharedAnchor"),d=e.config;return u?(t=d.anchorProps,a=d.eventArgs,(r=(o=d.hoverEffects).enabled)&&(i=o.attrs&&o.attrs.setRolloutAttr,n=o.attrs&&o.attrs.setRolloverAttr),l=t.radius,s=t.shadow,c=this.getFromEnv("chartConfig").prevAnchorHovered,o.anchorAnimation=0,e._index!==c&&(u.shadow(s,this.getContainer("shadowGroup")).data("anchorRadius",l).data("anchorHoverRadius",o.anchorRadius).data("hoverEnabled",r).data("eventArgs",a),r&&u.data(y,n).data(C,i)),this.getFromEnv("chartConfig").prevAnchorHovered=e._index,u):(u=h.setAnimation({el:"path",container:this.getContainer("plotGroup"),label:"anchor",doNotRemove:!0,component:this}),this.addGraphicalElement("sharedAnchor",u),u)},a.configureAttributes=function(e){if(!e)return!1;this.trimData(e);var t=this.getFromEnv("chart");this.config.JSONData=e,this.parseAttributes(),this._setConfigure(),this._realTimeConfigure&&this._realTimeConfigure(),!1!==t.config.hasLegend&&t.config.showLegend&&this._addLegend(),this.setState("dirty",!0)},a.parseAttributes=function(){var e,t,a=this.getFromEnv("chart"),i=a.config,o=this.config,r=this.getName(),l=this.config.JSONData,c=a.getFromEnv("chart-attrib"),h=a.config.singleseries,u=this.getFromEnv("color-manager"),d=Math.floor(this.getJSONIndex()),g=(0,s.pluckNumber)(l.showplotborder,c.showplotborder||1),p=(0,s.getFirstColor)(!h||(0,s.getValidValue)(c.palettecolors)?u.getPlotColor(d):u.getColor("plotFillColor").split(/\s*\,\s*/)[0]),f=i.isdual,m=i.haslineset;o.showTextOutline=(0,s.pluckNumber)(c.textoutline,0),o.maxValue=-Infinity,o.minValue=Infinity,(0,s.parseConfiguration)(l,o,a.config,{data:!0}),o.inheritplotbordercolor=(0,s.pluckNumber)(l.inheritplotbordercolor,c.inheritplotbordercolor,0),o.showValues=(0,s.pluckNumber)(l.showvalues,c.showvalues,"radar"===r?0:1),o.anchorimageurl=(0,s.pluck)(l.anchorimageurl,c.anchorimageurl,n),o.plotColor=p,o.parentYAxis=f?m?1:"s"===(0,s.pluck)(l.parentyaxis&&l.parentyaxis.toLowerCase(),"p")?1:0:0,o.valueposition=o.valueposition.toLowerCase(),o.plotfillcolor=(0,s.pluck)(l.color,c.plotfillcolor,p),o.seriesname=(0,s.parseUnsafeString)(l.seriesname),e=i.useplotgradientcolor,o.plotgradientcolor=0!==e?(0,s.getDefinedColor)(c.plotgradientcolor,u.getColor("plotGradientColor")):"",o.plotfillalpha=(0,s.pluck)(l.alpha,i.plotfillalpha),o.fillColor={color:o.plotfillcolor+(o.plotgradientcolor?","+o.plotgradientcolor:""),alpha:o.plotfillalpha,angle:o.plotfillangle},o.plotborderalpha=g?(0,s.pluck)(l.plotborderalpha,c.plotborderalpha,l.alpha,o.inheritplotbordercolor?"100":c.plotfillalpha,"95"):0,o.plotbordercolor=(0,s.pluck)(l.plotbordercolor,c.plotbordercolor,c.areabordercolor,o.inheritplotbordercolor?o.fillColor.color:h?(0,s.getValidValue)(c.palettecolors)?u.getPlotColor(0):u.getColor("plotBorderColor").split(/\s*\,\s*/)[0]:"666666"),o.plotborderColorObject={color:o.plotbordercolor,alpha:o.plotborderalpha,angle:o.plotfillangle},o.drawLine=(0,s.pluckNumber)(l.drawline,c.drawlines,1),o.plotborderdashstyle=o.dashed?(0,s.getDashStyle)(o.plotborderdashlen,o.plotborderdashgap):"none",o.linecolor=(0,s.pluck)(l.color,c.linecolor,o.plotColor),o.legendSymbolColor="line"===this.type?o.linecolor:o.plotfillcolor,o.includeinlegend=(0,s.pluckNumber)(l.includeinlegend,o.seriesname?1:0),t=(0,s.getDashStyle)(o.linedashlen,o.linedashgap),o.lineDashStyle=o.dashed?t:"none",o.defaultPadding={left:0,right:0},o.shadow=this._parseShadowOptions(),o.drawanchors=(0,s.pluckNumber)(l.drawanchors,l.showanchors,c.showanchors,c.drawanchors),o.anchorbgcolor=(0,s.getFirstColor)((0,s.pluck)(l.anchorbgcolor,i.anchorbgcolor,u.getColor("anchorBgColor"))),o.anchorbordercolor=(0,s.getFirstColor)((0,s.pluck)(l.anchorbordercolor,i.anchorbordercolor,o.linecolor,o.plotColor)),this.setState("visible",1===(0,s.pluckNumber)(l.visible,!Number(l.initiallyhidden),1)&&o.drawLine)},a._setConfigure=function(e,t){var a,i,o,r,l,h,u,d,g,p=this.getFromEnv("chart"),f=this.config,m=p.config,v=this.config.JSONData||[],x=this.getFromEnv("xAxis"),y=p.isRealTime,C=m.realTimeConfig&&m.realTimeConfig.numDisplaySets,k=this.getFromEnv("dataSource").categories&&this.getFromEnv("dataSource").categories[0]&&this.getFromEnv("dataSource").categories[0].category,S=f.initCatLen=y?k&&Array.isArray(k)&&k.filter((function(e){return!e.vline})).length||0:x.getTicksLen(),w=e||v.data,L=e&&e.data.length,A=m.isDrag,N=this.getSkippingInfo&&this.getSkippingInfo(),F=N&&N.draw||[],E=F.length,_=N&&N.skippingApplied;for(g=L===n&&S>C?S-C:0,o=y?(0,s.pluckNumber)(L,S):Math.min(S,w&&w.length),f.imageCount=0,(r=this.components.data)||(r=this.components.data=[]),f.maxRadius=-Infinity,m.dragTolerance=m.dragTolerance||-Infinity,_&&(o=E),h=g;h<o;h++)l=F[h]||h,e?(a=e&&e.data[l]||{},i=t!==n?r[d=t+l]:r[d=r.length-o+l],u=d):(a=w&&w[l]||{},i=r[l-=g],u=l),i||(i=r[u]={}),i.config||(i.config={}),i.graphics||(i.graphics={}),this._plotConfigure(u,a,L),d&&d++;_&&this.addJob("configureRestID",this._configureRestData.bind(this),c.priorityList.postRender),m.dragTolerance=A?(m.dragTolerance>5?m.dragTolerance:5.5)+b:0,this.ErrorValueConfigure&&this.ErrorValueConfigure()},a._configureRestData=function(){var e,t,a,i,n,o,r=this.getFromEnv("chart"),l=this.config,s=r.config,c=this.config.JSONData.data||[],h=(this.getSkippingInfo&&this.getSkippingInfo()).drawOnlyMap,u=this.getFromEnv("xAxis").getTicksLen();for(l.imageCount=0,(a=this.components.data)||(a=this.components.data=[]),l.maxRadius=-Infinity,s.dragTolerance=s.dragTolerance||-Infinity,l.maxValue=-Infinity,l.minValue=Infinity,i=0;i<u;i++)h[i]||(t=a[i],e=c&&c[i]||{},n=i,t||(t=a[i]={}),t.config||(a[i].config={}),t.graphics||(t.graphics={}),this._plotConfigure(n,e),o&&o++)},a._plotConfigure=function(e,t,a){var i,o,r,l,c,h,u,d,g,p,f=this.getFromEnv("chart"),m=this.config,v=f.config,x=this.config.JSONData,y=f.getFromEnv("dataSource").chart,C=this.components.data[e],k=this.getFromEnv("xAxis"),S=this.getFromEnv("yAxis"),w=v.isDrag,N=C&&C.config,F=(0,s.parseUnsafeString)(v.yaxisname),E=(0,s.parseUnsafeString)(v.xaxisname),_=v.tooltipsepchar,T=m.dashed,P=v.realTimeConfig&&v.realTimeConfig.numDisplaySets,D=P-m.initCatLen,I=P&&D>=0?D:0;g=k.getLabel(a?e-a:I+e),N.label=(0,s.getValidValue)((0,s.parseUnsafeString)(g.tooltext||g.label)),t.tooltext!==n&&(t.tooltext=(0,s.parseTooltext)(t.tooltext,[3],{label:g.label},t,y,x)),N.dataLabelStyle=this._configureDataLabelStyle(t),N.setValue=r=S.getCleanValue(t.value,m.stack100percent),N.setLink=(0,s.pluck)(t.link),N.anchorProps=this._parseAnchorProperties(e),m.maxRadius=A(N.anchorProps.radius+N.anchorProps.borderThickness/2,m.maxRadius),p=N.anchorProps.radius+N.anchorProps.borderThickness/2,N.dragTolerance=w?(p<6?5.5:p+.5)+b:0,N.label=(0,s.getValidValue)((0,s.parseUnsafeString)(g.tooltext||g.label)),N.showValue=(0,s.pluckNumber)(t.showvalue,m.showValues),N.givenPlotShowValue=(0,s.pluckNumber)(t.showvalue),N.dashed=(0,s.pluckNumber)(t.dashed,T),N.dashStyle=N.dashed?(0,s.getDashStyle)(m.linedashlen,m.linedashgap):"none",N.color=(0,s.pluck)(t.color,m.linecolor),N.setColor=t.color,N.setAlpha=t.alpha,N.setDashed=t.dashed,N.alpha=(0,s.pluck)(t.alpha,t.linealpha,m.alpha,m.linealpha),N.origLabel=(0,s.getValidValue)((0,s.parseUnsafeString)(g.label)),null!==r&&(m.maxValue=A(m.maxValue,r),m.minValue=L(m.minValue,r)),N.setTooltext=(0,s.parseUnsafeString)(t.toolText),N.toolTipValue=o=S.dataLabels(r),N.setDisplayValue=l=(0,s.parseUnsafeString)(t.displayvalue),N.displayValue=(0,s.pluck)(l,o),N.formatedVal=u=N.toolTipValue,N.setTooltext=(0,s.getValidValue)((0,s.parseUnsafeString)((0,s.pluck)(t.tooltext,x.plottooltext,y.plottooltext))),N.valuePosition=(0,s.pluck)(t.valueposition,m.valueposition),N.valuePosition&&(N.valuePosition=N.valuePosition.toLowerCase()),v.showtooltip?null===u?i=!1:N.setTooltext!==n?(c=[1,2,3,4,5,6,7],h={yaxisName:F,xaxisName:E,formattedValue:u,label:N.label},i=(0,s.parseTooltext)(N.setTooltext,c,h,t,y,x)):(v.seriesnameintooltip&&(d=(0,s.getFirstValue)(x&&x.seriesname)),i=d?d+_:"",i+=N.label?N.label+_:"",i+=N.setTooltext?"":N.toolTipValue):i=!1,N.toolText=i,N.setTooltext=i,N.setLevelTooltext=N.setTooltext,N._x=t.index===n?e:t.index,N._y=r,N.finalTooltext=N.setTooltext=i,N.hoverEffects=this._parseHoverEffectOptions(C,t),N.anchorProps.isAnchorHoverRadius=N.hoverEffects.anchorRadius,v.dragTolerance=A(v.dragTolerance,m.maxRadius,N.hoverEffects.anchorRadius)},a.drawCommonElements=function(){var e,t,a,i,o,r,l,c,h,u,d,g,p,f=this,m=f.components.data,v=f.getFromEnv("chart"),b=f.config,x=v.config,y=f.getLinkedParent(),C=f.getJSONIndex(),k=y.config.firstDataSetIndex,S=f.getFromEnv("xAxis"),w=f.getFromEnv("yAxis"),L=b.scrollMinVal,A=b.scrollMaxVal,N=!x.drawfullareaborder,F=b.plotborderColorObject,E=b.plotborderdashstyle,_=b.plotborderthickness,T=b.fillColor,P=f.getFromEnv("animationManager"),D={x:S.getLimit(),y:w.getLimit()},I=[],M=b.shadow,O=f.getContainer("shadowGroup"),R=S.getState("scrolling"),V=f.getSkippingInfo&&f.getSkippingInfo(),B=V&&V.draw||[],G=B.length,H=V&&V.skippingApplied;for(D.x.minPixel=S.getPixel(D.x.min),D.x.maxPixel=S.getPixel(D.x.max),D.y.minPixel=w.getPixel(D.y.min),D.y.maxPixel=w.getPixel(D.y.max),D.y.base=w.getPixel(0),D.x.base=S.getPixel(0),H&&(L=0,A=G),g=L;g<A;g++)m[d=B[g]||g]&&m[d].config&&(I[d]={config:{_Px:m[d].config._Px,_Pbx:m[d].config._Pbx,_Py:m[d].config._Py,_Pby:m[d].config._Pby,setValue:m[d].config.setValue}});if(p={begin:L,end:A},r={path:(a=this.getLinePath(m,R?p:null,!f.getState("visible")&&"base")).getPathArr(),stroke:"none",fill:(0,s.toRaphaelColor)(T)},t=f.getGraphicalElement("lineElement"),e=P.setAnimation({el:t||"path",container:f.getContainer("commonElemsGroup"),attr:f.getState("visible")&&r,component:f,doNotRemove:!0,label:"line",callback:function(){!f.getState("visible")&&this.hide()}}),!t&&e&&f.addGraphicalElement("lineElement",e),f.getState("visible")&&e&&e.show(),f.getState("visible")&&!R&&e.shadow(M,O),l=f.getGraphicalElement("connector"),u=f.getGraphicalElement("bottomConnector"),f.getState("visible")&&l&&l.show(),N)i=a.getPathArr("top"),o="topBorderPath";else if(k===n||C===k)i=a.getPathArr(),o="line";else{var z=a.getPathArr("detailed");i=z.top,c=z.bottom,o="topBorderPath",f.getState("visible")&&u&&u.show(),h=f.addGraphicalElement("bottomConnector",P.setAnimation({attr:{path:c,stroke:(0,s.toRaphaelColor)(F),"stroke-width":_,"stroke-linecap":"round","stroke-linejoin":_>2?"round":"miter","stroke-dasharray":E},el:u||"path",container:f.getContainer("commonElemsGroup"),component:f,label:"bottomPath",callback:function(){!f.getState("visible")&&this.hide()}}))}u&&!h&&f.removeGraphicalElement(u),l=f.addGraphicalElement("connector",P.setAnimation({attr:{path:i,stroke:(0,s.toRaphaelColor)(F),"stroke-width":_,"stroke-linecap":"round","stroke-linejoin":_>2?"round":"miter","stroke-dasharray":E},el:l||"path",container:f.getContainer("commonElemsGroupLine")||f.getContainer("commonElemsGroup"),component:f,label:o,callback:function(){!f.getState("visible")&&this.hide()}})),b.prevLim=D,b.prevDataStore=I,"realTimeUpdate"===v.state&&(f.realTimeUpdated=!0),x.connectnulldataOld=x.connectnulldata},a.addDatasetSpecificEvtArgs=function(e){var t=e.config,a=t.anchorProps,i=t.eventArgs,n=t.hoverEffects;Object.assign(i,{color:t.color,alpha:t.alpha,anchorBgColor:a.bgColor,anchorBgAlpha:a.anchorBgAlpha,anchorAlpha:a.anchorAlpha,anchorBorderColor:a.borderColor,anchorBorderThickness:a.borderThickness,anchorRadius:a.radius,anchorSides:a.sides,anchorStartAngle:a.startAngle,anchorHoverColor:n.anchorColor,anchorHoverAlpha:n.anchorAlpha,anchorHoverSides:n.anchorSides,dashed:t.dashed,valuePosition:t.valuePosition})},a.parsePlotAttributes=function(e,t){var a,i,n,o,r,l,c,h,u,d,g,p=this.getJSONIndex(),f=this.getState("visible"),m=this.config,v=this.config.JSONData,b=t,x={},k={},S={};h=(g=e.config)._Px,u=g._Py,a=g._x,i=g._y,o=g.setLink,n=g.setValue,x=g.anchorProps,d=g.displayValue,c=g.hoverEffects,l=g.finalTooltext=g.toolText,g.eventArgs={index:b,link:o,value:n,displayValue:d,categoryLabel:g.origLabel,toolText:l,id:m.userID,datasetIndex:p||0,datasetName:v.seriesname,visible:f},this.addDatasetSpecificEvtArgs(e),r=x.symbol,e._xPos=h,e._yPos=u,e._xVal=a,e._yVal=i,e._index=b,null!==i&&null!==a?(g.eventArgs.x=a,g.eventArgs.y=i,c.enabled&&(S={path:(0,s.polyPathToPath)([c.anchorSides||2,h,u,c.anchorRadius,c.startAngle,c.dip?c.dip:+("spoke"===m.dip)]),fill:(0,s.toRaphaelColor)({color:c.anchorColor,alpha:c.anchorBgAlpha}),stroke:(0,s.toRaphaelColor)({color:c.anchorBorderColor,alpha:c.anchorBorderAlpha}),"stroke-width":c.anchorBorderThickness},k={path:(0,s.polyPathToPath)([r[1]||2,h,u,x.radius,x.startAngle,g.dip||0]),fill:(0,s.toRaphaelColor)({color:x.bgColor,alpha:x.bgAlpha}),stroke:(0,s.toRaphaelColor)({color:x.borderColor,alpha:x.borderAlpha}),"stroke-width":x.borderThickness},c.attrs={hoverEnabled:c.enabled,anchorRadius:x.radius,anchorHoverRadius:c.anchorRadius},c.attrs[y]=S,c.attrs[C]=k,x.isAnchorHoverRadius=c.attrs.anchorRadius),x.imageUrl&&(g.anchorImageLoaded=!1),g.props={element:{attr:{path:(0,s.polyPathToPath)([r[1]||2,h,u,x.radius,x.startAngle,g.dip||0]),fill:(0,s.toRaphaelColor)({color:x.bgColor,alpha:x.bgAlpha}),stroke:(0,s.toRaphaelColor)({color:x.borderColor,alpha:x.borderAlpha}),"stroke-width":x.borderThickness}}}):n&&(n.isNull=!0)},a.parseLabelAttributes=function(e,t){var a,i,o,r,l,s,c,h,u,d,g,p,f,m,v,b,x,y,C,k,w,L,A,N,F=this.getFromEnv("chart"),E=F.config,_=this.getFromEnv("smartLabel"),T=F.config.dataLabelStyle,P=this.components.data,D=E.stack100percent,I=E.rotatevalues?270:0,M=E.canvasTop,O=E.canvasHeight,R=F.config.isstacked,V=t;if(L=(m=e&&e.config)&&m.setValue,e!==n&&L!==n&&null!==L&&!0!==m.labelSkip){switch(d=m.anchorProps,b=e._yPos||e.config._Py,v=e._xPos||e.config._Px,w=d.markerRadius||d.radius-3,o=E.valuepadding+2+w,m.valuePosition){case"above":g=0;break;case"below":g=1;break;default:x=P[V-1]&&P[V-1].config||{},R&&D?(y=x.value,C=m.value):(y=x.setValue,C=m.setValue),g=V&&y>C?1:0}if(a=m.displayValue,k=m.showValue,i=m.dataLabelStyle,S(a)&&""!==a&&null!==C&&k){if(N={text:a,fill:i.color,"text-bound":[i.backgroundColor,i.borderColor,T.borderThickness,T.borderPadding,T.borderRadius,T.borderDash]},r=_.getOriSize(a),m._state=m._state||{},I?(m._state.labelWidth=r.height,m._state.labelHeight=r.width,m._rotated=!0):(m._state.labelWidth=r.width,m._state.labelHeight=r.height,m._rotated=!1),l=s=m._state.labelHeight,u=.5*s+o,p=b-M,f=M+O-b,c=b,h=v,A=(l+=o)+4,g?f>A?(c+=u,m._valueBelowPoint=1):p>A&&(c-=u,m._valueBelowPoint=0):p>A?(c-=u,m._valueBelowPoint=0):f>A&&(c+=u,m._valueBelowPoint=1),this.getFromEnv("useImprovedLabelPlacement")&&E.showSum&&!D){var B=l+2;c<M+B+l/2?c=M+B+l/2:c>M+O-B-l/2&&(c=M+O-B-l/2)}N.x=h,N.y=c}m.props=m.props||{},m.props.label={attr:N}}else m&&delete m.labelSkip},a.allocatePosition=function(){var e,t,a=this,i=a.config,o=a.getFromEnv("chart"),r=o.config,l=a.components,s=l.data,c=a.getFromEnv("xAxis"),h=0,u=0,d=r.isstacked,g=r.viewPortConfig.step||1,p=o.hasScroll,f=a.getSkippingInfo&&a.getSkippingInfo(),m=f&&f.labelDraw||[],v=f&&f.draw||[];for(t=l.animAttrs=[],a.calculateScrollRange(),c.getState("scrolling")||d&&a.updateYForStack(),a.createCoordinates(),u=i.scrollMinVal;u<i.scrollMaxVal;u+=g)h=v[u]||u,p&&!r.skipAttr&&(h<void 0||h>void 0)||((e=s[h])&&e.config?a.parsePlotAttributes(e,h):t[h]=n);for(g>1&&i.skipIgnorerIndices.map((function(e){return s[e]})).filter((function(e){return e||e.config})).forEach((function(e){return a.parsePlotAttributes(e,h)})),u=i.scrollMinValForLabel;u<i.scrollMaxValForLabel;u+=g)h=m[u]||u,e=s[h],a.parseLabelAttributes(e,h)},a.drawPlot=function(e,t){var a,i,o,r=this.config,l=e.config,s=e.graphics,c=l.anchorProps,h=this.getState("visible"),u=c.radius,d=c.shadow,g=c.anchorAlpha,p=u&&g,f=this.getContainer("plotGroup"),m=this.getContainer("shadowGroup"),v=this.getFromEnv("animationManager");null!==l._y&&null!==l._x?(c.imageUrl?this.drawAnchorImage(e):(a=s.element,(o=s.image)&&o.remove(),delete s.image,(r.drawanchors||p)&&h&&null!==e.config.setValue?(a=s.element=v.setAnimation({el:a||"path",container:f,attr:l.props.element.attr,index:t,length:length,callback:function(){this.show()},component:this,label:"anchor"})).shadow(d,m):a&&(this.__removeElem(s.element,"element"),delete s.element,a=n)),i=l.hoverEffects,a&&(i.enabled?a.data("hoverEnabled",i.attrs.hoverEnabled).data("anchorRadius",i.attrs.anchorRadius).data("anchorHoverRadius",i.attrs.anchorHoverRadius).data(y,i.attrs[y]).data(C,i.attrs[C]):a.data("hoverEnabled",!1),a.data("eventArgs",l&&l.eventArgs))):s.element&&(s.element=v.setAnimation({el:s.element,component:this}))},a.drawPlots=function(){var e,t,a,i=this,o=i.getFromEnv("chart").config,r=i.components,l=i.config,s=r.data,c=0,h=0,u=r.animAttrs,d=l._oldStartIndex,g=l._oldEndIndex,p=i.getGraphicalElement("sharedAnchor"),f=o.viewPortConfig.step||1,m=i.getSkippingInfo&&i.getSkippingInfo(),v=m&&m.draw||[];for(u=r.animAttrs=[],t=l.scrollMinVal,a=l.scrollMaxVal,t>d&&i.flushOnScroll(d,t>g?g:t),a<g&&i.flushOnScroll(a<d?d:a,g),l._oldStartIndex=t,l._oldEndIndex=a,i.hideAllAnchors&&i.hideAllAnchors(),h=t;h<a;h+=f)c=v[h]||h,(e=s[c])&&e.config?i.drawPlot(e,c):u[c]=n;f>1&&l.skipIgnorerIndices.map((function(e){return s[e]})).filter((function(e){return e||e.config})).forEach((function(e){return i.drawPlot(e,c)})),0===c||l.drawanchors?p&&p.hide():p?p.hide():i.getAnchor()},a.drawAnchorImage=function(e){var t,a=this.getContainer("plotGroup"),i=e.graphics,n=this.getFromEnv("animationManager"),o=d?i.element:i.image,r=e.config.anchorProps,l=r.anchorAlpha&&r.radius,s=r.imageAlpha;this.getState("visible")&&l?(d||(i.element=n.setAnimation({el:i.element||"path",container:a,attr:e.config.props.element.attr,label:"anchor",component:this}).show()),e.config.props.element.attr.opacity=.01*s,t=n.setAnimation({el:o||"image",container:a,component:this,label:"anchor",attr:{opacity:.01*s}}),d?i.element=t:i.image=t,o?t.attrs.src!==r.imageUrl?t.attr("src",r.imageUrl):t._.RefImg&&F(this,e):(t.on("load",this._onAnchorImageLoad(e)),t.attr("src",r.imageUrl)),t.show()):(i.image&&n.setAnimation({el:i.image,state:"disappearing",component:this,doNotRemove:!0,callback:function(){this.hide()}}),i.element&&n.setAnimation({el:i.element,state:"disappearing",component:this,doNotRemove:!0,callback:function(){this.hide()}}))},a.getLineSegment=function(e,t,a){var i=t._Px,o=t._Py,r=t._Pbx,l=t._Pby,s=this.getFromEnv("yAxis").getPixel(0),c=t.setValue,h="path-"+e.pathCount,u=this.getFromEnv("chart").config.connectnulldata;return"zero"===a?(o=s,l=s):"base"===a&&(o=t._Pby),e.pathMap[h]||(e.pathMap[h]=[]),e.path2Map[h]||(e.path2Map[h]=[]),null===c||c.isNull?u||(e.pointsJoined>0&&e.path2Map[h][e.path2Map[h].length-1]!==v&&l!==n&&e.path2Map[h].push(v),e.temp=[],e.temp2=[],e.lastValidValue=!1):e.lastValidValue?(e.temp.length&&(e.pathMap[h]=e.pathMap[h].concat(e.temp),r!==n&&(e.path2Map[h]=e.temp2,e.temp2=[]),e.temp=[],e.pointsJoined++),e.pathMap[h].push([m,i,o]),l!==n&&e.path2Map[h].unshift([m,i,l])):(e.temp.push(["M",i,o]),l!==n&&e.temp2.push([m,r,l]),e.pointsJoined=0,e.lastValidValue=!0,e.pathCount++),e},a.getLinePath=function(e,t,a){var i,o,r,l,s,c,h,u,d,g=this,p=g.getFromEnv("chart").config,f=e.length,m=t&&t.begin||0,b=g.getState("visible")?t&&t.end||f:0,x=p.viewPortConfig.step||1,y=(g.removeDataLen,[]),C=g.getSkippingInfo&&g.getSkippingInfo(),S=C&&C.draw||[],w=S.length,L=C&&C.skippingApplied,A=g.config.skipIgnorerIndices,N=[],F={},E=0;for(0,y=y.concat(e),L&&(m=0,b=w),o=m+0;o<b+0;o+=x)if(s=y[i=S[o]||o])if((r=s.config).setValue===n||r&&!0===r.isSkipped)r&&delete r.isSkipped;else{if(x>1)for(;A[E]<o;)(h=y[A[E]])&&((u=h.config).setValue===n||u&&!0===u.isSkipped?u&&delete u.isSkipped:(N=N.concat(u),E++));N=N.concat(r),l=r._Pby,c=o}if(x>1)for(i=c+1;i<=o;i++)(s=y[S[i]||i])&&((r=s.config).setValue===n||r&&!0===r.isSkipped?r&&delete r.isSkipped:A.includes(i)&&(N=N.concat(r),l=r._Pby));return d="path-"+(F=N.reduce((function(e,t){return g.getLineSegment(e,t,a)}),{temp:[],temp2:[],pathMap:{},path2Map:{},pointsJoined:0,lastValidValue:!1,getPathArr:k,pathCount:0})).pathCount,F.path2Map[d]&&F.path2Map[d][F.path2Map[d].length-1]!==v&&F.pointsJoined>0&&l!==n&&F.path2Map[d].push(v),F},a._removeDataVisuals=function(e){var t,a,i,n,o=this.components.pool||(this.components.pool={});if(e)for(a in i=e.graphics)t=o[a]||(o[a]=[]),(n=i[a]).hide&&"function"==typeof n.hide&&(n.attr({"text-bound":[]}),n.hide(),n.shadow&&n.shadow(!1)),t.push(i[a])},a._parseAnchorProperties=function(e,t){var a,i,o,r=this.config,l=this.getName(),c=this.getFromEnv("chart"),h=c.config.anchoralpha,u=!c.config.anchoralpha&&/area/gi.test(l)?0:1,d=r.JSONData,g=c.getFromEnv("dataSource").chart,p=(t||d.data||[])[e]||{},f={};return i=(0,s.pluck)(p.anchorstartangle,d.anchorstartangle,g.anchorstartangle,p.anchorimagealpha,d.anchorimagealpha,g.anchorimagealpha,p.anchorimagescale,d.anchorimagescale,g.anchorimagescale,p.anchorimagepadding,d.anchorimagepadding,g.anchorimagepadding,p.anchorimageurl,d.anchorimageurl,g.anchorimageurl,p.anchorradius,d.anchorradius,g.anchorradius,p.anchorbgcolor,d.anchorbgcolor,g.anchorbgcolor,p.anchorbordercolor,d.anchorbordercolor,g.anchorbordercolor,p.anchoralpha,d.anchoralpha,g.anchoralpha,p.anchorsides,d.anchorsides,g.anchorsides,p.anchorborderthickness,d.anchorborderthickness,g.anchorborderthickness,n)!==n,o=(0,s.pluckNumber)(p.drawanchors,r.drawanchors),f.enabled=i?(0,s.pluckNumber)(o,i):(0,s.pluckNumber)(o,u),f.startAngle=(0,s.pluckNumber)(p.anchorstartangle,r.anchorstartangle),f.imageAlpha=(0,s.pluckNumber)(p.anchorimagealpha,r.anchorimagealpha),f.imageScale=(0,s.pluckNumber)(p.anchorimagescale,r.anchorimagescale),f.imagePadding=(0,s.pluckNumber)(p.anchorimagepadding,r.anchorimagepadding),f.imagePadding<0&&(f.imagePadding=0),f.imageUrl=(0,s.pluck)(p.anchorimageurl,r.anchorimageurl),f.imageUrl&&r.imageCount++,f.radius=f.enabled?(0,s.pluckNumber)(p.anchorradius,r.anchorradius):0,f.isAnchorRadius=(0,s.pluck)(p.anchorradius,d.anchorradius,g.anchorradius),f.bgColor=(0,s.pluck)(p.anchorbgcolor,r.anchorbgcolor),h=f.enabled?(0,s.getFirstAlpha)((0,s.pluck)(p.anchoralpha,r.anchoralpha,f.enabled?s.HUNDREDSTRING:"0")):0,f.anchorAlpha=h,f.anchorBgAlpha=(0,s.pluckNumber)(p.anchorbgalpha,r.anchorbgalpha,h),f.bgAlpha=(0,s.getFirstAlpha)(f.anchorBgAlpha)*h/100,f.imageAlpha=f.imageAlpha*h/100,f.borderColor=(0,s.pluck)(p.anchorbordercolor,r.anchorbordercolor),f.borderAlpha=h,f.sides=(0,s.pluck)(p.anchorsides,r.anchorsides),f.borderThickness=(0,s.pluck)(p.anchorborderthickness,r.anchorborderthickness),f.symbol=(0,s.mapSymbolName)(f.sides).split("_"),a=(0,s.pluckNumber)(p.anchorshadow,r.anchorshadow)&&f.radius>=1,f.shadow={opacity:a?h/100:0},f},a._hideGraphics=function(e){var t,a;for(a in e)if(e.hasOwnProperty(a)){if(!(t=e[a]))continue;t.hide?t.hide():this._hideGraphics(t)}},a._parseHoverEffectOptions=function(e,t){var a=t,i=this.config.JSONData,o=this.getFromEnv("chart"),r=o.getFromEnv("dataSource").chart,l=o.config,c=e.config,h=this.config,u=c.anchorProps||{},d=l.plothovereffect,g=h.drawanchors,p={enabled:!1};return a=a||{},0!==d&&0!==g&&(p.enabled=(0,s.pluck)(a.hovercolor,a.anchorhovercolor,a.hovercolor,i.hovercolor,a.anchorbghovercolor,i.anchorbghovercolor,r.anchorbghovercolor,i.anchorhovercolor,r.anchorhovercolor,a.hoveralpha,a.anchorhoveralpha,i.anchorhoveralpha,r.anchorhoveralpha,a.bghoveralpha,a.anchorbghoveralpha,i.anchorbghoveralpha,r.anchorbghoveralpha,a.anchorborderhovercolor,a.borderhovercolor,i.anchorborderhovercolor,r.anchorborderhovercolor,a.anchorborderhoverthickness,a.borderhoverthickness,i.anchorborderhoverthickness,r.anchorborderhoverthickness,a.anchorborderhoveralpha,a.borderhoveralpha,i.anchorborderhoveralpha,r.anchorborderhoveralpha,a.hoverdip,a.anchorhoverdip,i.anchorhoverdip,r.anchorhoverdip,a.anchorhoverstartangle,i.anchorhoverstartangle,r.anchorhoverstartangle,a.hoversides,a.anchorhoversides,i.anchorhoversides,r.anchorhoversides,a.hoverradius,a.anchorhoverradius,i.anchorhoverradius,r.anchorhoverradius,i.plotfillhovercolor,r.plotfillhovercolor,l.plothovereffect,n)!==n,p.startAngle=(0,s.pluckNumber)(a.anchorhoverstartangle,i.anchorhoverstartangle,r.anchorhoverstartangle,u.startAngle),p.hoverColor=(0,s.pluck)(a.hovercolor,a.anchorhovercolor,i.hovercolor,a.anchorbghovercolor,i.anchorbghovercolor,r.anchorbghovercolor,i.anchorhovercolor,r.anchorhovercolor,r.plotfillhovercolor),p.hoverAlpha=(0,s.pluck)(a.hoveralpha,a.anchorhoveralpha,i.anchorhoveralpha,r.anchorhoveralpha,a.bghoveralpha,a.anchorbghoveralpha,i.anchorbghoveralpha,r.anchorbghoveralpha,i.hoveralpha,r.plotfillhoveralpha),p.anchorSides=(0,s.pluckNumber)(a.hoversides,a.anchorhoversides,i.anchorhoversides,r.anchorhoversides,u.sides),p.anchorRadius=(0,s.pluckNumber)(a.anchorhoverradius,i.anchorhoverradius,r.anchorhoverradius),p.isAnchorHoverRadius=p.anchorRadius,p.anchorRadius=(0,s.pluckNumber)(p.anchorRadius,u.radius+(d?2:0)),p.anchorScale=(0,s.pluck)(a.hoverscale,i.anchorscale,r.anchorscale),p.imageHoverScale=(0,s.pluckNumber)(a.anchorimagehoverScale,i.anchorimagehoverscale,r.anchorimagehoverscale,110),p.imageHoverAlpha=(0,s.pluckNumber)(a.anchorimagehoveralpha,i.anchorimaghoverealpha,r.anchorimagehoveralpha),p.anchorAlpha=(0,s.pluck)(a.anchorhoveralpha,a.hoveralpha,i.anchorhoveralpha,r.anchorhoveralpha,u.anchorAlpha),p.anchorColor=(0,s.getFirstColor)((0,s.pluck)(a.hovercolor,a.anchorhovercolor,a.hoverColor,a.anchorbghovercolor,i.anchorbghovercolor,i.anchorhovercolor,i.hovercolor,r.anchorbghovercolor,r.anchorhovercolor,r.plotfillhovercolor,u.bgColor)),p.anchorBgAlpha=(0,s.pluck)(a.bghoveralpha,a.anchorbghoveralpha,i.anchorbghoveralpha,r.anchorbghoveralpha,r.plotfillhoveralpha,u.bgAlpha),p.anchorBgAlpha=p.anchorBgAlpha*p.anchorAlpha/100,p.anchorBorderColor=(0,s.pluck)(a.borderhovercolor,a.anchorborderhovercolor,i.anchorborderhovercolor,r.anchorborderhovercolor,u.borderColor),p.anchorBorderAlpha=(0,s.pluck)(a.borderhoveralpha,a.anchorborderhoveralpha,i.anchorborderhoveralpha,r.anchorborderhoveralpha,p.anchorAlpha,u.borderAlpha),p.anchorBorderThickness=(0,s.pluckNumber)(a.borderhoverthickness,a.anchorborderhoverthickness,i.anchorborderhoverthickness,r.anchorborderhoverthickness,r.anchorBorderThickness,u.borderThickness),p.dip=(0,s.pluck)(a.hoverdip,a.anchorhoverdip,i.anchorhoverdip,r.anchorhoverdip,u.dip),p.anchorAnimation=(0,s.pluckNumber)(a.anchorhoveranimation,i.anchorhoveranimation,r.anchorhoveranimation,1)),p},a._hoverPlotAnchor=function(e,t){var a,i,n,o,r,l=this.getFromEnv("smartLabel"),s=this.getFromEnv("chart").getChildren("canvas")[0].getEffectiveDimensions(),c=s.top,h=c+s.height,u=e.config._Py,f=this.getFromEnv("animationManager"),m=this.getGraphicalElement("sharedAnchor"),v=e.graphics.element||m,b=e.graphics.label,x=e.config||{},k=x.anchorProps.anchorAlpha,S=x&&x.anchorProps.imageUrl,w=d&&S?e.graphics.element:e.graphics.image,L="image"===v.type,A=v.data("anchorRadius"),N=v.data("anchorHoverRadius"),F=v.data(y),E=v.data(C),_=b&&(b.data("isBelow")?1:-1)*(L?.5*(F.height-E.height):N-A),T=t===g?F:E,P=!0,D={path:T.path},I={fill:T.fill,"stroke-width":T["stroke-width"],stroke:T.stroke},M=b&&b.data("rotation")||"";u-3*(a=l.getOriSize(x.displayValue).height)/2+_<c?_=c-u+3*a/2:u+3*a/2+_>h&&(_=h-u-3*a/2),r={transform:"T0,"+(t===g?_:0)+M},f.setAnimationState(t===g?"mouseOver":"mouseOut"),w&&(n=w.data(y),o=w.data(C),(i=t===g?n:o).alpha*=.01),L?D.alpha*=.01:Object.assign(D,I),(t===g&&!N||t===p&&!A)&&(P=!1),f.setAnimation({el:v,label:"anchor",component:this,doNotRemove:!0,callback:function(){!P&&v.hide()},attr:P&&D}),P&&v.show(),w&&(f.setAnimation({el:w,label:"anchor",component:this,attr:P&&i}),P&&w.show()),(e.graphics&&e.graphics.element||m&&m.element)&&k&&b&&f.setAnimation({el:b,label:"label",component:this,doNotRemove:!0,attr:r})},a.drawLabel=function(e,t){var a,i,o,r,l,c,h,u,d,g,p,f,m=this.config,v=this.getFromEnv("chart"),b=v.config,x=this.getFromEnv("smartLabel"),y=v.config.dataLabelStyle,C=this.components.data,k=this.getFromEnv("paper"),w=this.getFromEnv("animationManager"),L="",A=b.rotatevalues?270:0,N=this.getContainer("labelGroup"),F=this.getState("visible"),E=C.length,_=this.getSkippingInfo&&this.getSkippingInfo(),T=_&&_.skippingApplied,P=_&&_.labelDraw||[],D=P.length,I=(0,s.pluckNumber)(e,0),M=(0,s.pluckNumber)(t,T?D:E),O=D===Math.abs(M-(I+1));for(h={"font-weight":y.fontWeight,"font-style":y.fontStyle,"font-family":y.fontFamily,"font-size":y.fontSize,"line-height":y.lineHeight},x.setStyle(h),d=I;d<M;d++)g=(r=(u=C[T&&O?P[d]:d])&&u.config)&&r.setValue,u!==n&&g!==n&&null!==g&&!0!==r.labelSkip?(a=u.graphics,L=r.displayValue,l=r.showValue,c=a.label,p=r.props.label.attr,S(L)&&l&&F?(o=r.props.label.attr.x,i=r.props.label.attr.y,p.transform=k.getSuggestiveRotation(A,o,i),a.label=c=w.setAnimation({el:c||"text",container:N,component:this,attr:p,label:"label"}),c.data("isBelow",r._valueBelowPoint),c.data("rotation",p.transform),c&&c.outlineText(m.showTextOutline,p.fill)):c&&(a.label=w.setAnimation({el:c,component:this,label:"label"}))):(r&&delete r.labelSkip,(f=u&&u.graphics)&&f.label&&(f.label=w.setAnimation({el:f.label,component:this})))},a.getAxisValuePadding=function(){return this.config.defaultPadding},a._hoverFunc=function(e,t,a,i){if(a)return this._hoverPlotAnchor(e,t,i)},a._onAnchorImageLoad=function(e){var t=this;return function(){var a=e._index;F(t,e),t.config.drawn?t.drawLabel(a,a+1):t.addJob("labelUpdateOnImageLoadID"+a,(function(){t.drawLabel(a,a+1)}),c.priorityList.label)}},t}(l["default"]);t["default"]=E},500:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(e){var t=e.component,a=t.components.data,i=t.getFromEnv("chartConfig").isstacked,n=t.getLinePath(a).getPathArr("detailed").bottom,o=t.getState("_total"),r=t.config._childIndex;if(n.length&&Array.isArray(n[0])){var l=n.length;n[0]=Object.assign([],n[1]),n[0][0]="M",n[l-1]=Object.assign([],n[l-2])}return[{initialAttr:{opacity:0,path:n},finalAttr:{opacity:1,path:e.attr.path},startEnd:{start:i?.5/o*r:0,end:i?.5/o*(r+1):.5},slot:"plot",hookFn:function(){this.attr({opacity:1})}}]},n=function(e){var t=e.component,a=t.components.data,i=t.getFromEnv("chartConfig").isstacked,n=t.getFromEnv("chartConfig").is3D,o=t.getLinePath(a,null,i||n?"base":"zero").getPathArr("top"),r=e.attr,l=t.getState("_total"),s=t.config._childIndex;return[{initialAttr:{opacity:0,path:o},finalAttr:{opacity:1,path:r.path},startEnd:{start:i?.5/l*s:0,end:i?.5/l*(s+1):.5},slot:"plot",hookFn:function(){this.attr({opacity:1})}}]},o=function(){return[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}]},r=function(e){return"label-group"===e.attr.name?[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}]:"plot-group"===e.attr.name?[{initialAttr:{opacity:0},finalAttr:{opacity:1},startEnd:{start:.5,end:1},slot:"plot"}]:[{initialAttr:{opacity:1},finalAttr:{opacity:1},slot:"final"}]},l=function(e){var t=e.component,a=t.components.data,i=t.getFromEnv("chartConfig").isstacked,n=t.getFromEnv("chartConfig").is3D,o=t.getLinePath(a,null,i||n?"base":"zero"),r=e.attr,l=t.getState("_total"),s=t.config._childIndex;return[{initialAttr:{opacity:0,path:o.getPathArr()},finalAttr:{opacity:1,path:r.path},startEnd:{start:i?.5/l*s:0,end:i?.5/l*(s+1):.5},slot:"plot",hookFn:function(){this.attr({opacity:1})}}]},s={"*.dataset.area":function(){return{"anchor.appearing":[{initialAttr:{opacity:0},finalAttr:{opacity:1},startEnd:{start:.5,end:1},slot:"plot"}],"anchor.updating":[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}],"anchor.disappearing":[{finalAttr:{opacity:0,"fill-opacity":0,"stroke-opacity":0},slot:"final"}],"line.appearing":l,"topBorderPath.appearing":n,"bottomPath.appearing":i,"label.appearing":[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}],"label.updating":o,"group.appearing":r,"*":null}}};t["default"]=s},501:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]={"*.dataset.line":function(){var e=this.getClip("canvas"),t=this.getClip("init");return{"anchor.appearing":function(){return[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}]},"anchor.updating":function(){return[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"plot"}]},"anchor.disappearing":function(){return[{finalAttr:{opacity:0,"fill-opacity":0,"stroke-opacity":0},slot:"plot"}]},"line.appearing":function(){return[{initialAttr:{"clip-rect":t},finalAttr:{"clip-rect":e},slot:"middle",callback:function(){this.attr({"clip-rect":null})}}]},"line.updating":function(){return[{initialAttr:{opacity:1,"clip-rect":t},finalAttr:{opacity:1,"clip-rect":e},slot:"plot"}]},"label.appearing":[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}],"group.appearing":function(e){return"label-group"===e.attr.name?[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}]:"plot-group"===e.attr.name?[{initialAttr:{opacity:0},finalAttr:{opacity:1},startEnd:{start:.5,end:1},slot:"plot"}]:[{initialAttr:{opacity:1},finalAttr:{opacity:1},slot:"final"}]},"*":null}}}},507:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t.__feedAxesRawData=c,t.__spaceManager=h,t.__postSpaceManagement=u,t["default"]=void 0;var n=i(a(198)),o=i(a(508)),r=i(a(481)),l=a(184),s=i(a(479));function c(){var e,t,a=this.config,i=this.getFromEnv("color-manager"),n=this.getFromEnv("dataSource"),o=n.chart,r=this.config.is3D,c=r?l.chartPaletteStr.chart3D:l.chartPaletteStr.chart2D;return e={isVertical:!0,isReverse:!1,isOpposit:(0,s["default"])(o.xaxisposition,"right"),outCanfontFamily:(0,l.pluck)(o.outcnvbasefont,o.basefont,"Verdana,sans"),outCanfontSize:(0,l.pluckFontSize)(o.outcnvbasefontsize,o.basefontsize,10),outCancolor:(0,l.pluck)(o.outcnvbasefontcolor,o.basefontcolor,i.getColor(c.baseFontColor)).replace(/^#? ([a-f0-9]+)/gi,"#$1"),axisNamePadding:o.xaxisnamepadding,maxLabelWidthPercent:o.maxlabelwidthpercent,minLabelWidthPercent:o.minlabelwidthpercent,axisValuePadding:o.labelpadding,axisNameFont:o.xaxisnamefont,axisNameFontSize:o.xaxisnamefontsize,axisNameFontColor:o.xaxisnamefontcolor,axisNameFontBold:o.xaxisnamefontbold,axisNameFontItalic:o.xaxisnamefontitalic,axisNameBgColor:o.xaxisnamebgcolor,axisNameBorderColor:o.xaxisnamebordercolor,axisNameAlpha:o.xaxisnamealpha,axisNameFontAlpha:o.xaxisnamefontalpha,axisNameBgAlpha:o.xaxisnamebgalpha,axisNameBorderAlpha:o.xaxisnameborderalpha,axisNameBorderPadding:o.xaxisnameborderpadding,axisNameBorderRadius:o.xaxisnameborderradius,axisNameBorderThickness:o.xaxisnameborderthickness,axisNameBorderDashed:o.xaxisnameborderdashed,axisNameBorderDashLen:o.xaxisnameborderdashlen,axisNameBorderDashGap:o.xaxisnameborderdashgap,axisNameWidth:o.xaxisnamewidth,useEllipsesWhenOverflow:o.useellipseswhenoverflow,divLineColor:(0,l.pluck)(o.vdivlinecolor,o.divlinecolor,i.getColor(c.divLineColor)),divLineAlpha:(0,l.pluck)(o.vdivlinealpha,o.divlinealpha,r?i.getColor("divLineAlpha3D"):i.getColor("divLineAlpha")),divLineThickness:(0,l.pluckNumber)(o.vdivlinethickness,o.divlinethickness,1),divLineIsDashed:Boolean((0,l.pluckNumber)(o.vdivlinedashed,o.vdivlineisdashed,o.divlinedashed,o.divlineisdashed,0)),divLineDashLen:(0,l.pluckNumber)(o.vdivlinedashlen,o.divlinedashlen,4),divLineDashGap:(0,l.pluckNumber)(o.vdivlinedashgap,o.divlinedashgap,2),showAlternateGridColor:0,alternateGridColor:(0,l.pluck)(o.alternatehgridcolor,i.getColor("altHGridColor")),alternateGridAlpha:(0,l.pluck)(o.alternatehgridalpha,i.getColor("altHGridAlpha")),numDivLines:o.numvdivlines,labelFont:o.labelfont,labelFontSize:o.labelfontsize,labelFontColor:o.labelfontcolor,labelAlpha:o.labelalpha,labelFontBold:o.labelfontbold,labelFontItalic:o.labelfontitalic,labelBdrColor:o.labelbordercolor,labelBdrAlpha:o.labelborderalpha,labelLink:o.labellink,labelBgColor:o.labelbgcolor,labelBgAlpha:o.labelbgalpha,labelBdrThickness:o.labelborderthickness,labelBdrPadding:o.labelborderpadding,labelBdrRadius:o.labelborderradius,labelBdrDashed:o.labelborderdashed,labelBdrDashLen:o.labelborderdashlen,labelBdrDashGap:o.labelborderdashgap,axisName:o.xaxisname,axisMinValue:o.xaxisminvalue,axisMaxValue:o.xaxismaxvalue,setAdaptiveMin:o.setadaptivexmin,adjustDiv:o.adjustvdiv,labelDisplay:o.labeldisplay,showLabels:o.showlabels,rotateLabels:o.rotatelabels,slantLabel:(0,l.pluckNumber)(o.slantlabels,o.slantlabel),labelStep:(0,l.pluckNumber)(o.labelstep,o.xaxisvaluesstep),showAxisValues:(0,l.pluckNumber)(o.showxaxisvalues,o.showxaxisvalue),showLimits:o.showvlimits,showDivLineValues:(0,l.pluckNumber)(o.showvdivlinevalues,o.showvdivlinevalues),zeroPlaneColor:o.vzeroplanecolor,zeroPlaneThickness:(0,l.pluckNumber)(o.vzeroplanethickness,o.vdivlinethickness,2),zeroPlaneAlpha:(0,l.pluckNumber)(o.vzeroplanealpha,o.vdivlinealpha,a.zeroplanealpha),showZeroPlaneValue:o.showvzeroplanevalue,trendlineColor:o.trendlinecolor,trendlineToolText:o.trendlinetooltext,trendlineThickness:o.trendlinethickness,rotateAxisName:(0,l.pluckNumber)(o.rotatexaxisname,1),trendlineAlpha:o.trendlinealpha,showTrendlinesOnTop:o.showtrendlinesontop,showAxisLine:r?0:(0,l.pluckNumber)(o.showxaxisline,o.showaxislines,o.drawAxisLines,0),axisLineThickness:(0,l.pluckNumber)(o.xaxislinethickness,o.axislinethickness,1),axisLineAlpha:(0,l.pluckNumber)(o.xaxislinealpha,o.axislinealpha,100),axisLineColor:(0,l.pluck)(o.xaxislinecolor,o.axislinecolor,"#000000")},(t={isVertical:!1,isReverse:!1,isOpposit:(0,s["default"])(o.yaxisposition,"top"),outCanfontFamily:(0,l.pluck)(o.outcnvbasefont,o.basefont,"Verdana,sans"),outCanfontSize:(0,l.pluckFontSize)(o.outcnvbasefontsize,o.basefontsize,10),outCancolor:(0,l.pluck)(o.outcnvbasefontcolor,o.basefontcolor,i.getColor(c.baseFontColor)).replace(/^#? ([a-f0-9]+)/gi,"#$1"),axisNamePadding:o.yaxisnamepadding,axisValuePadding:o.yaxisvaluespadding,axisNameFont:o.yaxisnamefont,axisNameFontSize:o.yaxisnamefontsize,axisNameFontColor:o.yaxisnamefontcolor,axisNameFontBold:o.yaxisnamefontbold,axisNameFontItalic:o.yaxisnamefontitalic,axisNameBgColor:o.yaxisnamebgcolor,axisNameBorderColor:o.yaxisnamebordercolor,axisNameAlpha:o.yaxisnamealpha,axisNameFontAlpha:o.yaxisnamefontalpha,axisNameBgAlpha:o.yaxisnamebgalpha,axisNameBorderAlpha:o.yaxisnameborderalpha,axisNameBorderPadding:o.yaxisnameborderpadding,axisNameBorderRadius:o.yaxisnameborderradius,axisNameBorderThickness:o.yaxisnameborderthickness,axisNameBorderDashed:o.yaxisnameborderdashed,axisNameBorderDashLen:o.yaxisnameborderdashlen,axisNameBorderDashGap:o.yaxisnameborderdashgap,axisNameWidth:o.yaxisnamewidth,useEllipsesWhenOverflow:o.useellipseswhenoverflow,axisName:o.yaxisname,divLineColor:(0,l.pluck)(o.divlinecolor,i.getColor(c.divLineColor)),divLineAlpha:(0,l.pluck)(o.divlinealpha,r?i.getColor("divLineAlpha3D"):i.getColor("divLineAlpha")),divLineThickness:(0,l.pluckNumber)(o.divlinethickness,1),divLineIsDashed:Boolean((0,l.pluckNumber)(o.divlinedashed,o.divlineisdashed,0)),divLineDashLen:(0,l.pluckNumber)(o.divlinedashlen,4),divLineDashGap:(0,l.pluckNumber)(o.divlinedashgap,2),showAlternateGridColor:(0,l.pluckNumber)(o.showalternatevgridcolor,1),alternateGridColor:(0,l.pluck)(o.alternatevgridcolor,i.getColor("altVGridColor")),alternateGridAlpha:(0,l.pluck)(o.alternatevgridalpha,i.getColor("altVGridAlpha")),numDivLines:o.numdivlines,axisMinValue:o.yaxisminvalue,axisMaxValue:o.yaxismaxvalue,setAdaptiveMin:o.setadaptiveymin,adjustDiv:o.adjustdiv,labelStep:o.yaxisvaluesstep,showAxisValues:(0,l.pluckNumber)(o.showyaxisvalues,o.showyaxisvalue),showLimits:(0,l.pluckNumber)(o.showyaxislimits,o.showlimits,this.showLimits),showDivLineValues:(0,l.pluckNumber)(o.showdivlinevalues,o.showdivlinevalue),zeroPlaneColor:o.zeroplanecolor,zeroPlaneThickness:(0,l.pluckNumber)(o.zeroplanethickness,o.divlinethickness,2),zeroPlaneAlpha:(0,l.pluckNumber)(o.zeroplanealpha,o.divlinealpha,a.zeroplanealpha),showZeroPlaneValue:o.showzeroplanevalue,trendlineColor:o.trendlinecolor,trendlineToolText:o.trendlinetooltext,trendlineThickness:o.trendlinethickness,trendlineAlpha:o.trendlinealpha,isTrendZone:0,showTrendlinesOnTop:o.showtrendlinesontop,showAxisLine:r?0:(0,l.pluckNumber)(o.showyaxisline,o.showaxislines,o.drawAxisLines,0),axisLineThickness:(0,l.pluckNumber)(o.yaxislinethickness,o.axislinethickness,1),axisLineAlpha:(0,l.pluckNumber)(o.yaxislinealpha,o.axislinealpha,100),axisLineColor:(0,l.pluck)(o.yaxislinecolor,o.axislinecolor,"#000000"),numberFormatterFn:"yAxis",showZeroPlaneOnTop:a.showzeroplaneontop,forceTrendBelow:!!a.is3D,labelFont:o.yaxisvaluefont,labelFontSize:o.yaxisvaluefontsize,labelFontColor:o.yaxisvaluefontcolor,labelAlpha:o.yaxisvaluealpha,labelFontBold:o.yaxisvaluefontbold,labelFontItalic:o.yaxisvaluefontitalic,labelBdrColor:o.yaxisvaluebordercolor,labelBdrAlpha:o.yaxisvalueborderalpha,labelBgAlpha:o.yaxisvaluebgalpha,labelLink:o.yaxisvaluelink,labelBgColor:o.yaxisvaluebgcolor,labelBdrThickness:o.yaxisvalueborderthickness,labelBdrPadding:o.yaxisvalueborderpadding,labelBdrRadius:o.yaxisvalueborderradius,labelBdrDashed:o.yaxisvalueborderdashed,labelBdrDashLen:o.yaxisvalueborderdashlen,labelBdrDashGap:o.yaxisvalueborderdashgap}).vtrendlines=n.trendlines,e.trendlines=n.vtrendlines,a.isstacked&&(t.isPercent=(0,l.pluckNumber)(a.stack100percent,0)),{xAxisConf:[e],yAxisConf:[t]}}function h(){var e,t,a,i,n,o,r,s,c,h,u,d,g,p,f,m,v,b,x,y=this.config,C=this.getChildren(),k=C.yAxis&&C.yAxis[0],S=C.xAxis&&C.xAxis||[],w=l.preDefStr.POSITION_BOTTOM,L=y.legendposition,A=y.xDepth,N=y.yDepth,F=C.canvas[0],E=y.canvasBgDepth,_=y.canvasBaseDepth,T=y.canvasBasePadding,P=C.canvas[0].config.canvasBorderWidth,D=y.realTimeConfig&&y.realTimeConfig.showRTValue,I=y.borderWidth,M=y.canvasMarginTop,O=y.canvasMarginBottom,R=y.canvasMarginLeft,V=y.canvasMarginRight,B=y.minCanvasHeight,G=y.minCanvasWidth,H=y.minChartWidth,z=y.minChartHeight,W=y.height,j=y.width,U=!1,q=!1,Y=y.origCanvasTopMargin,X=y.origCanvasBottomMargin,K=y.origCanvasLeftMargin,Z=y.origCanvasRightMargin;y.canvasWidth-2*I<H&&(d=(y.canvasWidth-H)/2),y.canvasHeight-2*I<z&&(u=(y.canvasHeight-z)/2),this._allocateSpace({top:u||I,bottom:u||I,left:d||I,right:d||I}),a=S[0],this._resetViewPortConfig&&this._resetViewPortConfig(),this._setAxisScale&&this._setAxisScale(),e=.7*y.availableWidth,y.yAxisSpaceAllocation=v=a&&a.placeAxis(e),a&&this._allocateSpace(v),f=.225*y.availableHeight,p=this._manageActionBarSpace&&this._manageActionBarSpace(f)||{},this._allocateSpace(p),this._manageLegendSpace&&this._manageLegendSpace(),t=L===w?.6*y.availableHeight:.6*y.availableWidth,N&&(this._allocateSpace({left:N}),y.shift=A+T+_),E&&this._allocateSpace({top:E}),y.canvasWidth-2*P<G&&(m=(y.canvasWidth-G)/2),this._allocateSpace({left:m||P,right:m||P}),G>j-R-V&&(q=!0,i=y.canvasWidth-G,x=R+V,R=y.canvasMarginLeft=i*R/x,V=y.canvasMarginRight=i*V/x),r=R>y.canvasLeft?R-y.canvasLeft:0,s=V>j-y.canvasRight?V+y.canvasRight-j:0,this._allocateSpace({left:r,right:s}),this._allocateSpace({left:_}),q&&(x=K+Z,(h=y.canvasWidth)>G&&(r=(i=h-G)*K/x,s=i*Z/x),this._allocateSpace({left:r,right:s})),y.actualCanvasMarginRight=s,y.actualCanvasMarginBottom=o,this._manageChartMenuBar(t),t=.2*y.availableHeight,y.sumValueSpace=this._getSumValueSpace(t),this._allocateSpace(y.sumValueSpace),t=.3*y.availableHeight,y.realtimeEnabled&&(D?this._allocateSpace(this._realTimeValuePositioning(t)):this._hideRealTimeValue()),t=.6*y.availableHeight,y.xAxisSpaceAllocation=b=k&&k.placeAxis(t),k&&this._allocateSpace(b),t=.3*y.availableHeight,this._manageScrollbarPosition&&this._manageScrollbarPosition(t),y.canvasHeight-2*P<B&&(g=(y.canvasHeight-B)/2),this._allocateSpace({top:g||P,bottom:g||P}),B>W-M-O&&(U=!0,i=y.canvasHeight-B,x=M+O,M=y.canvasMarginTop=i*M/x,O=y.canvasMarginBottom=i*O/x),n=M>y.canvasTop?M-y.canvasTop:0,o=O>W-y.canvasBottom?O+y.canvasBottom-W:0,this._allocateSpace({top:n,bottom:o}),U&&(x=Y+X,(c=y.canvasHeight)>B&&(n=(i=c-B)*Y/x,o=i*X/x),this._allocateSpace({top:n,bottom:o})),y.actualCanvasMarginTop=n,y.actualCanvasMarginLeft=r,F.setDimension({top:y.canvasTop,left:y.canvasLeft,width:y.canvasWidth,height:y.canvasHeight})}function u(){var e,t,a,i,n=this.config,o=this.getChildren(),r=o.xAxis&&o.xAxis[0],l=o.yAxis&&o.yAxis[0],s=o.legend&&o.legend[0],c=n.xDepth||0,h=o.canvas[0].config,u=h.canvasBorderWidth,d=h.canvasPadding,g=h.canvasTop,p=h.canvasLeft,f=g-u,m=g+h.canvasHeight+u,v=p-(n.shift||0)-u,b=p+h.canvasWidth+u+n.sumValueSpace.right+(r.isScrollEnabled()&&n.shift||0);l&&this._allocateXAxisLabelSpace(l),e=h.canvasPaddingLeft,t=h.canvasPaddingRight,a=h.canvasPaddingTop,i=h.canvasPaddingBottom,l&&l.setAxisDimention({x:h.canvasLeft+e,y:l.config.isOpposit?f:m,opposite:l.config.isOpposit?m:f,axisLength:h.canvasWidth-e-t}),r&&r.setAxisDimention({x:r.config.isOpposit?b:v,y:g+c+Math.max(a,d),opposite:r.config.isOpposit?v:b,axisLength:h.canvasHeight-c-Math.max(a,d)-Math.max(i,d)}),s&&s.postSpaceManager(),this.allocateDimensionOfChartMenuBar()}var d=function(e){function t(){return e.apply(this,arguments)||this}(0,n["default"])(t,e);var a=t.prototype;return a.getName=function(){return"MSBarCartesian"},t.getName=function(){return"MSBarCartesian"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this),this.config.enablemousetracking=!0},a._feedAxesRawData=function(){return c.call(this)},a._spaceManager=function(){h.call(this)},a._postSpaceManagement=function(){u.call(this)},a.getDSdef=function(){return r["default"]},a.getDSGroupdef=function(){},t}(o["default"]);t["default"]=d},508:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(405)),r=a(509),l=i(a(510)),s=i(a(511)),c=function(e){function t(){var t;return(t=e.call(this)||this).registerFactory("dataset",l["default"],["vCanvas"]),t.registerFactory("legend",s["default"]),t}(0,n["default"])(t,e),t.getName=function(){return"MSCartesian"};var a=t.prototype;return a.getName=function(){return"MSCartesian"},a.getType=function(){return"chartAPI"},a._manageLegendSpace=function(){r._manageLegendSpace.call(this)},a.manageGradientLegendSpace=function(e){return r.manageGradientLegendSpace.call(this,e)},t}(o["default"]);t["default"]=c},509:function(e,t,a){"use strict";t.__esModule=!0,t._manageLegendSpace=function(){var e,t,a,n,o=this.config,r=this.getChildren("legend")&&this.getChildren("legend")[0],l=this.getChildren("gLegend")&&this.getChildren("gLegend")[0],s=this.getFromEnv("dataSource").colorrange,c=o.hasLegend,h={},u=this.hasGradientLegend,d=this.getFromEnv("dataSource").chart,g=(0,i.pluckNumber)(d.mapbycategory,0);u&&s&&(0,i.pluckNumber)(s.gradient)&&!g?(e=l.conf,u=!0,o.gLegendEnabled=!0,n=.5,t=e.legendPosition):(e=r&&r.config,u=!1,o.gLegendEnabled=!1,t=e&&e.legendPos,n=t===i.POSITION_RIGHT?.8:.4);a=t===i.POSITION_RIGHT?o.availableWidth*n:o.availableHeight*n;u?h=this.manageGradientLegendSpace(a):!1!==c&&r&&!r.getState("removed")&&(h=r&&r._manageLegendPosition(a));this._allocateSpace({bottom:h&&h.bottom||0,right:h&&h.right||0})},t.manageGradientLegendSpace=function(e){var t,a,n,o,r=this.config,l=this.getFromEnv("gLegend"),s=l&&l.conf;r.gLegendPadding=(0,i.pluckNumber)(this.getFromEnv("chart-attrib").legendpadding,10),n=Math.min(r.gLegendPadding,.5*e),s?(t=s.legendPosition,o=l.getLogicalSpace(e),a=t===i.POSITION_BOTTOM?{bottom:(o.height||0)+n}:{right:(o.width||0)+n}):a={bottom:0,right:0};return a};var i=a(184)},510:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=function(e){var t,a,n,o,r=e.getFromEnv("dataSource").dataset,l=e.getChildren().canvas[0],s=t=l.getChildren("vCanvas")[0],c=e.config.defaultDatasetType||"";if(!r)return void e.setChartMessage();(n=e.getDSGroupdef())&&((0,i.componentFactory)(t,n,"datasetGroup_"+c,1,[r]),o=t.getChildren("datasetGroup_"+c));o&&(s=o[0]),a=e.getDSdef(),(0,i.datasetFactory)(s,a,"dataset",r.length,r)};var i=a(184)},511:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=function(e){var t;(0,n.componentFactory)(e,o["default"],"legend"),(t=e.getChildren("legend")[0]).configure(),e.addToEnv("legend",t),e.config.showLegend||t.remove()};var n=a(184),o=i(a(512))},512:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(201)),o=i(a(198)),r=a(184),l=a(199),s=i(a(513)),c=a(192),h=a(293),u=i(a(515)),d=a(196),g={left:r.POSITION_START,right:r.POSITION_END,center:r.POSITION_MIDDLE},p=Math,f=p.min,m=p.max,v=p.floor,b=p.ceil,x=r.preDefStr.NORMAL,y={fontWeight:{1:r.preDefStr.BOLD,0:x},fontStyle:{1:"italic",0:x},textDecoration:{1:"underline",0:r.preDefStr.noneStr}},C=function(e){var t,a;return{dragstart:function(){t=e.config.xL||e.config.xPos,a=e.config.yL||e.config.yPos},dragmove:function(i){var n,o,r=i.originalEvent.data[0],l=i.originalEvent.data[1],s=e.config,c=e.getFromEnv("chartConfig"),h=(s.borderWidth||0)+2;n=f(m(t+r,h),c.width-s.width-h),o=f(m(a+l,h),c.height-s.height-h),s.xPos=s.xL=n,s.yPos=s.yL=o,e.addJob("draw",e.dragDraw,d.priorityList&&d.priorityList.draw)}}};(0,c.addDep)({name:"legendAnimation",type:"animationRule",extension:u["default"]});var k=function(e){function t(){var t;t=e.call(this)||this;var a=(0,n["default"])(t);return a._stateCosmetics={},a._legendState=[],a.dragDraw=function(){a.draw()},a.drawScroll=function(){a.createItemGroup()},a.config.handlers=C(a),t}(0,o["default"])(t,e);var a=t.prototype;return a.createItem=function(e){var t;return t=new s["default"],this.attachChild(t,"legendItem"),t.setLinkedItem("owner",e),t.addEventListener("mouseover",(function(){t.setLegendState("hover",!0)})),t.addEventListener("mouseout",(function(){t.removeLegendState("hover")})),t.getId()},a.getItem=function(e){var t=this.getChildren().legendItem;if(void 0===e)return!1;if(t)for(var a=0;a<t.length;a++)if(t[a].getId()===e)return t[a]},a.getSortedLegendItems=function(){var e,t,a=this.getChildren("legendItem")||[],i=this.config.reverselegend,n={},o=[];for(e=0,t=a.length;e<t;e++)void 0===a[e].config.index?n[t+e]=a[e]:n[a[e].config.index]=a[e];return Object.keys(n).sort((function(e,t){return i?t-e:e-t})).forEach((function(e){o.push(n[e])})),o},a.disposeItem=function(e){var t=this.getItem(e);t&&t.remove()},a.getName=function(){return"legend"},a.getType=function(){return"legend"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;t.enabled=!0,t.symbolWidth=12,t.borderRadius=1,t.lastScrollPos=0,t.oriSymbolPadding=3,t.textPadding=4,t.scrollY=0,t.backgroundColor="#ffffff",t.initialItemX=0,t.title={text:r.BLANKSTRING,x:0,y:0,padding:2},t.scroll={},t.itemStyle={}},a.createLegendGroup=function(){var e,t=this.config,a=this.getFromEnv("chart"),i=a.config,n=this.getFromEnv("animationManager"),o=.5*(t.borderWidth||0)+2,r=this.getContainer("legendGroup");t.xL&&(t.xL=f(m(t.xL,o),i.width-t.width-o)),t.yL&&(t.yL=f(m(t.yL,o),i.height-t.height-o)),e=n.setAnimation({el:r||"group",attr:{name:"legendGroup",transform:["T",t.xL||t.xPos,t.yL||t.yPos]},container:a.getChildContainer("legendGroup"),component:this}),r||this.addContainer("legendGroup",e)},a.draw=function(){this.createLegendGroup(),this.drawLegendBox(),this.createItemGroup(),this.drawCaption(),this.createScrollGroup(),this.decideScroll()},a.decideScroll=function(){var e=this.config;e.scroll.enabled?this.createScrollBar():e.hasScroll&&(this.getChildren("legendScrollBar")[0].remove(),e.hasScroll=!1)},a.createItemGroup=function(){var e,t=this.getFromEnv("animationManager"),a=this.getContainer("legendGroup"),i=this.getChildContainer("itemGroup"),n=(0,r.pluckNumber)(this.config.padding,4),o=.5*n,l=Math.max(this.config.height-n,0),s=","+this.config.width+","+l;return e=t.setAnimation({el:i||"group",attr:{name:"item",transform:["T",0,this.config.scrollY||0]},container:a,component:this}),i||this.addChildContainer("itemGroup",e),this.config.scroll.enabled?e.attr({"clip-rect":"0,"+o+s}):e.attr({"clip-rect":null}),e},a.createScrollGroup=function(){var e=this.getFromEnv("animationManager"),t=this.getChildContainer("scrollGroup"),a=this.getContainer("legendGroup");this.config.scroll.enabled&&!this.getGraphicalElement("scrollbarContainer")&&this.addGraphicalElement("scrollbarContainer",e.setAnimation({el:t||"group",attr:{name:"scrollGroup"},container:a,component:this,label:"scrollbar"}))},a.createScrollBar=function(){var e,t,a,i,n,o,l=this,s=l.config,c=l.getFromEnv("chart-attrib"),u=l.getChildren("legendScrollBar")&&l.getChildren("legendScrollBar")[0],g=s.borderWidth||0,p=.5*g,f=(0,r.pluckNumber)(s.padding,4),m=s.width,v=s.height;e={conf:{isHorizontal:!1},handler:{scroll:function(e){s.lastScrollPos=e,s.scrollY=(a-s.totalHeight)*e,l.addJob("scrollDraw",l.drawScroll,d.priorityList&&d.priorityList.draw)},mousedown:function(e){e.preventDefault(),e.stopPropagation()}}},c.legendscrollbgcolor&&(e.conf.color=(0,r.convertColor)(c.legendscrollbgcolor)),u||(u=l.attachChild(new h.ScrollBar,"legendScrollBar"),this.config.hasScroll=!0),u.configure(e.conf),u.attachEventHandlers(e.handler),t=u.config,a=Math.max(v-f,0),i=m-u.getLogicalSpace().width-g+.5*f,n=p,o=Math.max(v-g,0),t.scrollRatio=(a+f)/s.totalHeight,t.startPercent=0,t.scrollPosition=s.lastScrollPos,t.parentLayer=l.getChildContainer("scrollGroup"),u.setDimension({x:i,y:n,height:o})},a.drawCaption=function(){var e,t,a,i,n=this.getChildContainer("itemGroup"),o=this.getGraphicalElement("caption"),l=this.getFromEnv("animationManager"),s=this.config,c=(0,r.pluckNumber)(s.padding,4),h=s.scroll.enabled,u=s.width;if(s.title&&s.title.text!==r.BLANKSTRING&&s.validLegendItem){switch(s.title.align){case r.POSITION_START:a=c;break;case r.POSITION_END:a=u-c-(h?10:0);break;default:a=.5*u}t=s.title.style,e={text:s.title.text,title:s.title.originalText||r.BLANKSTRING,x:a,y:c,fill:s.title.style.color,direction:s.textDirection,"line-height":t.lineHeight,"vertical-align":r.POSITION_TOP,"text-anchor":s.title.align,opacity:1},i={"font-weight":t.fontWeight,"font-style":t.fontStyle,"font-family":t.fontFamily,"font-size":t.fontSize},o&&o.show(),o?l.setAnimation({el:o,attr:e,component:this}):(o=l.setAnimation({el:"text",attr:e,component:this,container:n}),(o=this.addGraphicalElement("caption",o)).css(i)),this.getFromEnv("toolTipController").enableToolTip(o,s.title.originalText)}else o&&l.setAnimation({el:o,component:this,doNotRemove:!0,callback:function(){o.hide()}})},a.drawLegendBox=function(){var e,t=this.getFromEnv("animationManager"),a=this.config,i=this.getContainer("legendGroup"),n=a.width,o=this.getGraphicalElement("box"),r=a.height,l=a.borderRadius,s=a.backgroundColor,c=a.borderColor,h=a.borderAlpha,u=a.backgroundAlpha,d=a.borderWidth||0;return e=t.setAnimation({el:o||"rect",attr:{x:0,y:0,width:n,height:r,r:l,stroke:c,"stroke-width":d,fill:s||"none","stroke-opacity":h/100,"fill-opacity":u/100,cursor:a.legendAllowDrag?"move":"default"},container:i,component:this,label:"legendGroup"}),o||(this.addGraphicalElement("box",e),e.shadow(a.shadow)),e},a.getPosition=function(){var e,t,a,i,n,o=this.getFromEnv("chart").config,l=this.config,s=o.height-o.canvasBottom,c=o.canvasLeft,h=o.canvasWidth,u=l.chartMarginLeft||0,d=l.chartMarginRight||0,g=l.chartMarginBottom||0,p=o.actionBarHeight||0,f=l.actualCanvasMarginLeft||0,m=o.actualCanvasMarginBottom||0,v=o.actualCanvasMarginRight||0,b=l.alignLegendWithCanvas,x=o.height,y=o.canvasTop,C=l.width||0,k=l.height||0,S=o.borderWidth,w=o.oriCanvasLeft,L=o.oriTopSpace,A=o.oriBottomSpace,N=0,F=l.borderWidth||0;return l.legendPos===r.POSITION_RIGHT&&(l.align=r.POSITION_RIGHT,l.verticalAlign=r.POSITION_MIDDLE,n=l.layout="vertical"),n?(e=o.width-d-v-C-S,t=(N=(0,r.pluckNumber)(L,y))+.5*(x-(0,r.pluckNumber)(A,s)-N-k)+(l.y||0)):(a=o.width-(u+f+(d+v)),i=b?h-C:a-C,e=(b?(0,r.pluckNumber)(w,c):u+f)+i/2,t=x-k-m-g-p),(0,r.crispBound)(e,t,C,k,F)},a.setTranslation=function(e,t){var a=this.config;a._translateX=e,a._translateY=t,a.translate="t"+e+","+t},a.allocatePosition=function(){var e,t=this.config;e=t.translate?(0,r.crispBound)(t._translateX,t._translateY,t.width,t.height,t.borderWidth):this.getPosition(),t.xPos=e.x,t.yPos=e.y,t.width=e.width,t.height=e.height},a._manageLegendPosition=function(e){var t=this.config,a=t.legendPos;return t.padding=4,t.textPadding=4,a===r.POSITION_RIGHT?this._placeLegendBlockRight(e):this._placeLegendBlockBottom(e)},a.setDimension=function(e){var t,a,i,n,o,l,s,c,h,u,d,g,p,x,y,C,k,S,w,L,A,N,F,E,_=this.config,T=this.getSortedLegendItems(),P=T.length,D=e.width,I=e.height,M=I,O=0,R=0,V=0,B=0,G=0,H=0,z=0,W=0,j=[],U=!1,q=_.padding,Y=_.textPadding,X=this.getFromEnv("smartLabel"),K=this.getStateCosmetics("default"),Z=parseInt(K.text["font-size"],10)||10,J=0,$=0,Q=_.title,ee=Q.padding,te=_.minimiseWrappingInLegend,ae=_.legendPadding,ie=_.legendScale,ne=_.alignLegendWithCanvas,oe=_.numColumns,re=_.oriSymbolPadding,le=D;for(x={width:2*q,height:2*q},(p=Z+1)<=0&&(p=1),D=Math.max(D-2*q,0),re*=ie,(p=f(p*=ie,D))<=0&&(re=p=0),_.symbolWidth=p,_.textPadding=4,_.legendHeight=g=p+2*re,_.rowHeight=l=m(parseInt(K.text["line-height"],10)||12,g),o=Y+re+q,X.setStyle((0,r.extend2)({},K.text)),y=X.getOriSize(r.TESTSTR).height,s=ae+_.borderWidth/2+1,s=m(f(s,I-y-8),0),ae=.05*l,_.initialItemY=0,_.initialItemX=0,C=0;C<P;C+=1)a=t=(n=T[C]).config||(n.config={}),(i=t.name=(0,r.parseUnsafeString)(a.label))===r.BLANKSTRING||0===a.enabled||!1===a.enabled||n.getState("removed")?t.enabled=0:(t.enabled=1,V+=1,A=!0,N=X.getOriSize(i),O=m(O,N.width),H=m(H,f(N.height,M)),R+=N.width);if(_.validLegendItem=A,B=R/V,R+=(E=g+ae+Y+re+2*q)*V,_.x=!ne&&R>le?0:_.x,A){for(B+=E,O+=E,oe>0&&V<oe&&(oe=V),R<=D&&(oe<=0||oe===V)?(oe=V,G=B=R/V,U=!0,H>l&&(W=(H-l)/2,l=H)):oe>0&&(G=D/oe)>B?G>O&&(G=O):D>O&&(te||1.5*B>O)?(V<(oe=v(D/O))&&(oe=V),G=O):D>=2*B?(V<(oe=v(D/B))&&(oe=V),(G=v(D/oe))>O&&(G=O)):(oe=1,G=D),_.itemWidth=G,(c=b(G-E))<0&&(re=c=Y=0),_.symbolPadding=re,_.textPadding=Y,_.width=Math.max(G*oe-ae,0),Q.oriText!==r.BLANKSTRING&&(X.setStyle(Q.style),N=X.getSmartText(Q.oriText,D,M),Q.text=N.text,N.tooltext&&(Q.originalText=N.tooltext),d=N.width+2*q,_.width<d&&(_.initialItemX=(d-_.width)/2,_.width=d),_.initialItemY=z=N.height+ee),X.setStyle((0,r.extend2)({},K.text)),C=0;C<P;C+=1)if(0!==(t=(n=T[C]).config).enabled){if(0===c&&(j[$]=!0,t.name=r.BLANKSTRING,k=1,w=parseInt($/oe,10),S=$%oe,t._legendX=S*G,t._legendY=w*l+2*q,t._legendH=k*l,t._totalWidth=p+re),U)(N=X.getOriSize(t.name)).height<l&&(t._legendTestY=(l-N.height)/2),t._markerYGutter=W,t._legendX=J,t._legendY=2*q,t._legendH=l,t._totalWidth=p+o+N.width,J+=N.width+E;else{for(N=X.getSmartText(t.name,c,M),t.name=N.text,N.tooltext&&(t.originalText=N.tooltext);!0===j[$];)$+=1;for(h=N.height/l,u=$,k=0;k<h;k+=1,u+=oe)j[u]=!0;N.height<l&&(t._legendTestY=(l-N.height)/2),w=parseInt($/oe,10),S=$%oe,t._legendX=S*G,t._legendY=w*l+2*q,t._legendH=k*l,t._totalWidth=p+o+N.width}$++}L=U?1:b(j.length/oe),x.height+=L*l+z,_.height=_.totalHeight=x.height,_.rowHeight=l,_.legendNumColumns=oe,_.height-2*re>I?(_.height=I,(F=_.scroll||(_.scroll={})).enabled=!0,F.flatScrollBars=_.flatScrollBars,F.scrollBar3DLighting=_.scrollBar3DLighting,_.width=_.width+12>D?_.width:_.width+12):_.scroll.enabled=!1,s+=_.height,_.isActive=!0,_.enabled=!0}else _.enabled=!1,_.width=0,s=0;return{width:D,height:s}},a._placeLegendBlockBottom=function(e){var t,a,i,n,o,l=this.getFromEnv("chart"),s=l.config,c=l.getFromEnv("chartWidth"),h=l.getFromEnv("chartHeight"),u=s.canvasLeft,d=s.width-(s.canvasRight||0),g=l.getFromEnv("smartLabel"),p=this.config,f=p.chartMarginLeft,m=p.chartMarginRight,v=p.chartMarginTop,b=p.alignLegendWithCanvas,x=this.getSortedLegendItems().length,y=p.legendPadding,C=s.canvasMarginRight,k=s.canvasMarginLeft,S=l.getChildren("yAxis"),w=S&&S[0].config.isVertical?S:l.getChildren("xAxis"),L=w&&w[0],A=w&&w[1],N=L&&L.config||{},F=A&&A.config||{},E=N.nameMaxW,_=F.nameMaxW,T=N.name&&N.name.style||{},P=F.name&&F.name.style||{},D=N.axisName||r.BLANKSTRING,I=F.axisName||r.BLANKSTRING,M=s.canvasWidth-s.canvasMarginLeft-s.canvasMarginRight;return p.paddingBottom=s.height-s.canvasBottom,g.useEllipsesOnOverflow(s.useEllipsesWhenOverflow),g.setStyle(T),n=g.getOriSize(D),g.setStyle(P),o=g.getOriSize(I),M<y&&(p.padding=y=M=0),(n||o)&&(a=(0,r.pluckNumber)(n.height,0)>(0,r.pluckNumber)(o.height,0)?(i=E)&&n.width:(i=_)&&o.width),M=b?M:c-(a+v>h-e?2*i+m+f+C+k:m+f+k+C),p.showLegend&&0!==x?(p.x=(u-f-d+m)/2,t=this.setDimension({width:M,height:e}).height):(t=0,p.height=0,p.width=0),{bottom:t,right:0}},a._placeLegendBlockRight=function(e){var t,a,i,n,o,l,s,c,h,u,d=e,g=this.config,p=this.getFromEnv("chart"),v=p.config,b=p.getFromEnv("smartLabel"),x=p.getChildren("canvas")&&p.getChildren("canvas")[0].config.canvasBorderThickness||0,y=g.textPadding,C=g.title.padding,k=g.oriSymbolPadding,S=g.legendPadding,w=g.legendScale,L=this.getStateCosmetics("default"),A=parseInt(L.text["font-size"],10),N=2*v.canvasHeight,F=0,E=2*g.padding,_={width:E,height:E},T={},P=!1,D=this.getSortedLegendItems(),I=D.length,M=0;if(g.initialItemY=0,g.initialItemX=0,(d-=E+S)<S&&(g.padding=S=d=0),(n=A+1)<=0&&(n=1),k*=w,(n=f(n*=w,d))<=0&&(k=n=0),g.symbolPadding=k,g.symbolWidth=n,g.legendHeight=o=n+2*k,g.rowHeight=m(parseInt(L.text["line-height"],10)||12,o),t=S+g.borderWidth/2+x,(i=d-o-S-y)<0&&(i=0),b.useEllipsesOnOverflow(v.useEllipsesWhenOverflow),b.setStyle((0,r.extend2)({},L.text)),g.showLegend&&0!==I){for(M=0;M<I;M+=1)D[M].getState("removed")||(h=l=(u=D[M]).config||(u.config={}),s=l.name=(0,r.parseUnsafeString)(h.label),l._legendX=0,l._legendY=_.height,0!==h.enabled&&!1!==h.enabled&&s!==r.BLANKSTRING?(l.enabled=1,P=!0,0===i?(_.height+=l._legendH=o,l.name=r.BLANKSTRING,l._totalWidth=n+k):(a=b.getSmartText(s,i,N),l.name=a.text,a.tooltext&&(l.originalText=a.tooltext),a.height<o&&(l._legendTestY=(o-a.height)/2),l._totalWidth=n+k+y+a.width+S,_.height+=l._legendH=m(a.height,o),F=m(a.width,F))):l.enabled=0);g.validLegendItem=P,P?(g.itemWidth=F+o+S+y,g.width=g.itemWidth+E,g.title.oriText!==r.BLANKSTRING&&(b.setStyle(g.title.style),a=b.getSmartText(g.title.oriText,d,N),g.title.text=a.text,a.tooltext&&(g.title.originalText=a.tooltext),c=a.width+E,g.width<c&&(g.initialItemX=(c-g.width)/2,g.width=c),g.initialItemY=a.height+C,_.height+=g.initialItemY),g.height=g.totalHeight=_.height,t=f(g.width+t,d),T.right=t+S,g.isActive=!0,g.enabled=!0):(g.enabled=!1,g.width=0,T.right=0)}else T.right=0,g.height=0,g.width=0;return T},a.postSpaceManager=function(){var e=this.config,t=e.legendPos,a=this.getFromEnv("chart").config.canvasHeight;t===r.POSITION_RIGHT&&(e.height>a?(e.height=a,e.scroll.enabled=!0,e.scroll.flatScrollBars=e.flatScrollBars,e.scroll.scrollBar3DLighting=e.scrollBar3DLighting,e.width+=(e.scroll.scrollBarWidth=10)+(e.scroll.scrollBarPadding=2)):e.scroll.enabled=!1)},a.configureAttributes=function(t){void 0===t&&(t={}),e.prototype.configureAttributes.call(this,t);var a,i,n,o,l,s=this.config,c=this.getFromEnv("chart"),h=c.config,u=this.getFromEnv("style"),d=c.getFromEnv("chart-attrib"),p=c.config.is3D,f=this.getFromEnv("color-manager"),v=p?r.chartPaletteStr.chart3D:r.chartPaletteStr.chart2D,b=s.interactiveLegend=!1!==c.hasInteractiveLegend&&Boolean((0,r.pluckNumber)(d.interactivelegend,1)),x=(0,r.pluckNumber)(d.useroundedges,0),C=u.outCancolor,k=t.style&&t.style.text,S=(0,r.pluck)(d.legenditemfont,k&&k["font-family"],u.outCanfontFamily),w=(0,r.pluckNumber)(d.legendiconscale,1),L=(0,r.pluckFontSize)(d.legenditemfontsize,k&&k["font-size"],u.fontSize)+"px",A=(0,r.pluck)(d.legenditemfontcolor,k&&k.color,C).replace(/^#?([a-f0-9]+)/gi,"#$1"),N=(0,r.getFirstColor)((0,r.pluck)(d.legenditemhoverfontcolor,A));s.isActive=!1,s.chartMarginTop=h.origMarginTop,s.chartMarginRight=h.origMarginRight,s.chartMarginBottom=h.origMarginBottom,s.chartMarginLeft=h.origMarginLeft,s.reverselegend=(0,r.pluckNumber)(d.reverselegend,0),s.showLegend=(0,r.pluckNumber)(d.showlegend,!c.dontShowLegendByDefault,1),a=(0,r.setLineHeight)({fontSize:L}),s.legendPos=(0,r.pluck)(d.legendposition,c.legendposition,t.legendPosition,r.POSITION_BOTTOM).toLowerCase(),s.numColumns=(0,r.pluckNumber)(d.legendnumcolumns,0),s.xL=s.yL=0,(w<=0||w>5)&&(w=1),s.drawCustomLegendIcon=(0,r.pluckNumber)(d.drawcustomlegendicon,t.drawcustomlegendicon,0),s.legendScale=w,s.legendPadding=(0,r.pluckNumber)(d.legendpadding,7),s.alignLegendWithCanvas=(0,r.pluckNumber)(t.alignlegendwithcanvas,h.alignLegendWithCanvas),s.title.style={fontFamily:(0,r.pluck)(d.legendcaptionfont,S),fontSize:(0,r.pluckFontSize)(d.legendcaptionfontsize,u.fontSize)+"px",color:(0,r.pluck)(d.legendcaptionfontcolor,C).replace(/^#?([a-f0-9]+)/gi,"#$1"),fontWeight:y.fontWeight[(0,r.pluckNumber)(d.legendcaptionfontbold,1)]||r.BLANKSTRING},l=d.legendcaptionalignment?d.legendcaptionalignment.toLowerCase():g.center,s.title.align=g[l]||g.center,s.title.style["text-anchor"]=s.title.align,s.padding=4,i=(0,r.pluck)(d.legendbordercolor,f.getColor(v.legendBorderColor)),n=s.borderAlpha=(0,r.pluckNumber)(d.legendborderalpha,100),s.borderColor=(0,r.convertColor)(i,n),s.borderWidth=(0,r.pluckNumber)(d.legendborderthickness,t.legendborderthickness,!x||d.legendbordercolor?1:0),s.borderRadius=(0,r.pluckNumber)(x,0),s.backgroundAlpha=o=(0,r.pluckNumber)(d.legendbgalpha,t.legendbgalpha,100),s.backgroundColor=(0,r.convertColor)((0,r.pluck)(d.legendbgcolor,f.getColor(v.legendBgColor)),o),s.symbol3DLighting=Boolean((0,r.pluckNumber)(d.use3dlighting,d.useplotgradientcolor,1)),s.shadow=Boolean((0,r.pluckNumber)(d.legendshadow,1)),s.shadow&&(s.shadow={enabled:s.shadow,opacity:m(n,o)/100}),s.prevReversed=Boolean((0,r.pluckNumber)(s.reversed,0)),s.reversed=Boolean((0,r.pluckNumber)(d.reverselegend,0)),s.lineWidth=(0,r.pluckNumber)(d.linethickness,2),s.borderRadius=(0,r.pluckNumber)(d.legendborderradius,x?3:0),s.legendAllowDrag=Boolean((0,r.pluckNumber)(d.legendallowdrag,0)),s.title.oriText=(0,r.parseUnsafeString)((0,r.getFirstValue)(d.legendcaption,r.BLANKSTRING)),s.legendScrollBgColor=(0,r.getFirstColor)((0,r.pluck)(d.legendscrollbgcolor,d.scrollcolor,f.getColor("altHGridColor"))),s.legendScrollBarColor=(0,r.pluck)(d.legendscrollbarcolor,i),s.legendScrollBtnColor=(0,r.pluck)(d.legendscrollbtncolor,i),s.minimiseWrappingInLegend=(0,r.pluckNumber)(d.minimisewrappinginlegend,0),s.flatScrollBars=(0,r.pluckNumber)(d.flatscrollbars,0),s.scrollBar3DLighting=(0,r.pluckNumber)(d.scrollbar3dlighting,1),s.orderReversed=!1,this.setStateCosmetics("hidden",{symbol:{fill:(0,r.convertColor)((0,r.pluck)(d.legenditemhiddencolor,"cccccc").replace(/^#?([a-f0-9]+)/gi,"#$1")),stroke:(0,r.convertColor)((0,r.pluck)(d.legenditemhiddencolor,"cccccc").replace(/^#?([a-f0-9]+)/gi,"#$1"))},text:{fill:(0,r.convertColor)((0,r.pluck)(d.legenditemhiddencolor,"cccccc").replace(/^#?([a-f0-9]+)/gi,"#$1"))}}),this.setStateCosmetics("default",{text:{fill:(0,r.convertColor)(A),"font-family":S,cursor:b?r.preDefStr.POINTER:"default","font-size":L,"line-height":a,"vertical-align":r.POSITION_TOP,"text-anchor":r.POSITION_START,direction:"rtl"===h.textDirection?"rtl":"initial","font-weight":y.fontWeight[(0,r.pluckNumber)(d.legenditemfontbold,0)]||r.BLANKSTRING},symbol:{bgColor:(0,r.pluck)(d.legendiconbgcolor),cursor:b?r.preDefStr.POINTER:"default",borderColor:(0,r.pluck)(d.legendiconbordercolor),bgAlpha:(0,r.pluck)(d.legendiconbgalpha,d.legendiconalpha,100),borderAlpha:(0,r.pluck)(d.legendiconborderalpha,d.legendiconalpha,100),borderThickness:(0,r.pluckNumber)(d.legendiconborderthickness),startAngle:(0,r.pluckNumber)(d.legendiconstartangle,45),sides:(0,r.pluckNumber)(d.legendiconsides,t.legendiconsides,4)}}),this.setStateCosmetics("hover",(function(e,t){return t.hasState("hidden")||(e.text||(e.text={}),e.text.fill=(0,r.convertColor)(N.replace(/^#?([a-f0-9]+)/gi,"#$1")),e.text.cursor="inherit"),e})),s.legendAllowDrag&&!s._dragEvtListenerBinded?(this.addEventListener("fc-dragstart",s.handlers.dragstart),this.addEventListener("fc-dragmove",s.handlers.dragmove),s._dragEvtListenerBinded=!0):!s.legendAllowDrag&&s._dragEvtListenerBinded&&(this.removeEventListener("fc-dragstart",s.handlers.dragstart),this.removeEventListener("fc-dragmove",s.handlers.dragmove),s._dragEvtListenerBinded=!1)},a.getLegendState=function(){return this._legendState},a.hasState=function(e){var t,a,i=this.getLegendState();for(t=0,a=i.length;t<a;t++)if(i[t]===e)return!0;return!1},a.setLegendState=function(e,t){this.hasState(e)||(t?this._legendState.push(e):this._legendState.unshift(e)),this.asyncDraw()},a.removeLegendState=function(e){var t,a,i=1;if(e)for(t=0,a=this._legendState.length;t<a&&i;t++)e===this._legendState[t]&&(this._legendState.splice(t,1),i=0);else this._legendState.length=0;this.asyncDraw()},a.setStateCosmetics=function(e,t){this._stateCosmetics[e]=t},a.removeStateCosmetics=function(e){delete this._stateCosmetics[e]},a.getStateCosmetics=function(e){return this._stateCosmetics[e]},a.hide=function(){var e=this.getFromEnv("chart").getChildContainer("legendGroup");e&&e.hide()},t}(l.ComponentInterface);t["default"]=k},513:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=a(184),r=a(199),l=a(192),s=i(a(514)),c=o.preDefStr.POINTER,h="M",u="L",d="Z",g=function(e,t){var a=e.config,i=e.getLinkedParent().config,n=i.symbolWidth,r=(0,o.pluckNumber)(i.padding,4),l=.5*n,s=(i.initialItemX||0)+a._legendX+r,h=(i.initialItemY||0)+a._legendY-r,u=s+i.symbolPadding+l,d=h+(a._markerYGutter||0)+i.symbolPadding+l,g=(0,o.mapSymbolName)(a.anchorSide),p=a.symbol=g&&g.split("_")||[],f="spoke"===p[0]?1:0;return("line"===a.type||a.drawLine)&&(l*=.6),{path:(0,o.polyPathToPath)([p[1]||2,u,d,l,a.startAngle,a.spoke||f]),cursor:t.cursor||c,stroke:t.stroke,fill:t.fill,"stroke-width":t["stroke-width"]||.5}};(0,l.addDep)({name:"legendItemAnimation",type:"animationRule",extension:s["default"]});var p=function(e){function t(){var t;return(t=e.call(this)||this)._stateCosmetics={},t._legendState=[],t}(0,n["default"])(t,e);var a=t.prototype;return a.getName=function(){return"legendItem"},a.parseLegendCosmetics=function(){var e,t,a,i=this.getLinkedParent(),n=i.getLegendState(),r=this.getLegendState(),l=["default"],s={};for(l=l.concat(n,r),a=0;a<l.length;a++)e=i.getStateCosmetics(l[a]),t=this.getStateCosmetics(l[a]),e&&("function"==typeof e?s=e(s,this):(0,o.extend2)(s,e)),t&&("function"==typeof t?s=t(s,this):(0,o.extend2)(s,t));return s},a.getType=function(){return"legendItem"},a.configure=function(e){var t,a,i=this.config;for(t in e)if(e.hasOwnProperty(t))if("object"!=typeof e[t])i[t]=e[t];else{var n=i[t]?i[t]:{};for(a in e[t])n[a]=e[t][a];i[t]=n}},a.itemClickFn=function(){var e=this.getFromEnv("chart-attrib"),t=(0,o.pluckNumber)(e.interactivelegend,1),a=this.getLinkedItem("owner");t&&a.legendInteractivity(this)},a.dispose=function(){this.removeEventListener("fc-click",this.click),this.removeEventListener("fc-mouseover",this.mouseover),this._dispose()},a.getLegendState=function(){return this._legendState},a.hasState=function(e){var t,a,i=this.getLegendState();for(t=0,a=i.length;t<a;t++)if(i[t]===e)return!0;return!1},a.setLegendState=function(e,t){this.hasState(e)||(t?this._legendState.push(e):this._legendState.unshift(e)),this.asyncDraw()},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this),this.config.eventArguments={}},a.removeLegendState=function(e){var t,a,i=1;if(e)for(t=0,a=this._legendState.length;t<a&&i;t++)e===this._legendState[t]&&(this._legendState.splice(t,1),i=0);else this._legendState.length=0;this.asyncDraw()},a.removeStateCosmetics=function(e){delete this._stateCosmetics[e]},a.setStateCosmetics=function(e,t){this._stateCosmetics[e]=t},a.getStateCosmetics=function(e){return this._stateCosmetics[e]},a.draw=function(){var e,t,a,i,n,r,l,s,p,f,m,v,b,x,y,C,k,S,w,L,A,N,F,E,_,T,P,D,I,M,O,R,V,B,G,H,z,W,j=this.getLinkedParent(),U=j.getFromEnv("chart").config,q=this.getFromEnv("animationManager"),Y=this.config,X=j.config,K=X.legendHeight,Z=X.symbolPadding,J=X.symbolWidth,$=X.interactiveLegend,Q=X.textPadding||2,ee=(0,o.pluckNumber)(X.padding,4),te=X.itemHoverStyle,ae=j.getChildContainer("itemGroup"),ie=X.drawCustomLegendIcon,ne=this.hasState("hidden"),oe={};a=(e=this.parseLegendCosmetics()).symbol,i=X.initialItemX||0,n=X.initialItemY||0,p=Y.type,w=e.symbol.stroke||"000000",L=e.symbol.fill,t=e.symbol.lineWidth||X.lineWidth,N=Y.anchorSide,F=Y.drawLine,f=i+Y._legendX+ee,m=n+Y._legendY-ee,O=this.getGraphicalElement("legendItemBackground"),s=this.getGraphicalElement("legendItemText"),v=this.getGraphicalElement("legendItemLine"),x=this.getGraphicalElement("legendItemSymbol"),!($=(0,o.pluck)(Y.interactiveLegend,$))&&(e.cursor="default"),R=e.text,z=f+K+Q-2,W=m+(Y._legendTestY||0),R.text=Y.name,R.x=z,R.y=W,l=q.setAnimation({el:s||"text",attr:R,component:this,container:ae,label:"icon"}),s||(l=this.addGraphicalElement("legendItemText",l)),l.data("legendItem",Y),V=!1,ie&&!1!==Y.customLegendIcon?(T=!ne&&a.borderColor,P=(0,o.pluck)(a.borderAlpha),E=!ne&&a.bgColor,_=(0,o.pluck)(a.bgAlpha,"100"),D=e.symbol.rawFillColor,L=ne?e.symbol.fill:E||D,L=(0,o.convertColor)(L,_),I=e.symbol.rawStrokeColor,w=ne?e.symbol.stroke:T||I||D,w=(0,o.convertColor)(w,P),y=f+Z+(C=.5*J),r=m+(Y._markerYGutter||0)+Z+C,k="spoke"===(S=(0,o.mapSymbolName)(a.sides)&&(0,o.mapSymbolName)(a.sides).split("_")||[])[0]?1:0,B={path:(0,o.polyPathToPath)([S[1]||2,y,r,C,a.startAngle||0,k]),cursor:e.symbol.cursor||c,stroke:w,fill:L,"stroke-width":(0,o.pluckNumber)(a.borderThickness,1)}):"line"===p||F?(r=m+(Y._markerYGutter||0)+Z+.5*J,H={path:[h,f+Z,r,u,f+Z+J,r]},V=!0,oe={opacity:U.legendiconalpha||1,"stroke-width":t,stroke:w,cursor:e.cursor||c},N&&(B=g(this,e.symbol))):N?B=g(this,e.symbol):"line"!==p&&(w=Y.symbolStroke||w,B={path:function(e,t,a,i,n){var o,r,l,s,c,g,p,f,m,v=[h];switch(n){case"column":case"dragColumn":case"column3D":case"realtimeColumn":case"errorBar2D":r=.5*(o=.25*a),l=.7*i,s=.4*i,v=v.concat([e,t+i,"l",0,-l,o,0,0,l,"z","m",o+r,0,"l",0,-i,o,0,0,i,"z","m",o+r,0,"l",0,-s,o,0,0,s,"z"]);break;case"bar2D":case"bar3D":o=.3*a,r=.6*a,s=(l=i/4)/2,v=v.concat([e,t,u,e+r,t,e+r,t+l,e,t+l,d,h,e,t+l+s,u,e+a,t+l+s,e+a,t+l+s+l,e,t+2*l+s,d,h,e,t+2*(l+s),u,e+o,t+2*(l+s),e+o,t+i,e,t+i,d]);break;case"area":case"area3d":case"areaspline":case"dragArea":case"realTimeArea":case"splinearea":o=.3*a,r=.6*a,l=.6*i,s=.2*i,c=.8*i,v=v.concat([e,t+c,u,e,t+l,e+o,t+s,e+r,t+l,e+a,t+s,e+a,t+c,d]);break;case"pie2D":case"pie3d":case"doughnut2D":case"doughnut3D":r=.9*(o=.5*a),1,1,g=e+o+1,f=t+o-1,p=e+o-1,m=t+o+1,v=v.concat([g,f,u,g,f-r+1,"A",r-1,r-1,0,0,1,g+r-1,f,d,h,p,m,u,p,m-r,"A",r,r,0,1,0,p+r,m,d]);break;case"boxandwhisker2d":v=v.concat([e,t,u,e+a,t,e+a,t+i,e,t+i,d]);break;default:v=v.concat([e,t,u,e+a,t,e+a,t+i,e,t+i,d])}return{path:v}}(f+Z,m+(Y._markerYGutter||0)+Z,J,J,p).path,"stroke-width":.5,stroke:w,fill:L,cursor:e.cursor||c}),H&&V?(Object.assign(H,oe),v=q.setAnimation({el:v||"path",attr:H,component:this,callback:function(){this.show()},container:ae}),this.getGraphicalElement("legendItemLine")||(v=this.addGraphicalElement("legendItemLine",v))):v&&v.hide(),B?(B.opacity=(0,o.pluckNumber)(e.symbol.opacity,1),b=q.setAnimation({el:x||"path",attr:B,component:this,callback:function(){this.show()},container:ae,label:"icon"}),x&&x.node||(b=this.addGraphicalElement("legendItemSymbol",b)),b.data("legendItem",Y)):x&&x.hide(),A=e.background&&e.background.legendBackgroundColor?(0,o.convertColor)(e.background.legendBackgroundColor,e.background.alpha):o.TRACKER_FILL,G={x:f,y:m,width:Y._totalWidth,height:Y._legendH,r:0,fill:A,opacity:1,"stroke-width":1,stroke:"none",cursor:e.symbol.cursor||c},M=q.setAnimation({el:O||"rect",attr:G,css:void 0,component:this,label:"background",container:ae}),O||this.addGraphicalElement("legendItemBackground",M),M.data("legendItem",this).data("interactive",$).data("itemHoverStyle",te).data("itemStyle",e)},t}(r.ComponentInterface);t["default"]=p},514:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=a(184),n={"*.legendItem.legendItem":function(){return{"icon.appearing":function(e){return[{initialAttr:{opacity:0},slot:"plot",startEnd:{start:.5,end:1},finalAttr:{opacity:(0,i.pluckNumber)(e.attr.opacity,1)}}]},"background.appearing":function(e){return[{initialAttr:{opacity:0},slot:"plot",startEnd:{start:.5,end:1},finalAttr:{opacity:e.attr.opacity}}]},"icon.disappearing":function(){return[{finalAttr:{opacity:0},slot:"initial"}]}}}};t["default"]=n},515:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"plot"}],n=[{slot:"plot",startEnd:{start:0,end:.5}}],o=[{slot:"intial"}],r={"*.legend.legend":function(){return{"legendGroup.appearing":i,"legendGroup.updating":n,"legendGroup.disappearing":o,"scrollbar.appearing":i,"scrollbar.updating":n,"scrollbar.disappearing":o}}};t["default"]=r},516:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=t.drawLabel=void 0;var n=i(a(198)),o=i(a(481)),r=a(184),l=a(192),s=i(a(517)),c=r.preDefStr.visibleStr,h=r.preDefStr.hiddenStr,u=r.preDefStr.POSITION_MIDDLE,d=r.preDefStr.POSITION_START,g=r.preDefStr.POSITION_END,p=Math,f=p.min,m=p.max,v=function(e,t){var a,i,n,o,l,s,p,v,b,x,y,C,k,S,w,L,A,N,F,E,_,T,P,D=this.getFromEnv("chart"),I=D.config,M=this.config,O=M.JSONData,R=this.getFromEnv("animationManager"),V=D.getChildren("canvas")[0].config,B=D.config.dataLabelStyle,G=O.data,H=D.config.categories,z=D.config.is3D,W=D.config.isstacked,j=H&&H.length,U=G&&G.length,q=this.getData(),Y=D.getFromEnv("smartLabel"),X=V.yDepth,K=V.xDepth,Z=D.getFromEnv("number-formatter"),J=r.BLANKSTRING,$=I.placevaluesinside,Q=I.canvasWidth,ee=I.canvasLeft,te=I.valuepadding+2,ae=this.getContainer("labelGroup"),ie=this.getSkippingInfo&&this.getSkippingInfo(),ne=ie&&ie.skippingApplied,oe=ie&&ie.labelDraw||[],re=oe.length,le=(0,r.pluckNumber)(e,0),se=(0,r.pluckNumber)(t,ne?re:j<U?j:U),ce=re===Math.abs(se-(le+1)),he=this.getState("visible"),ue=function(){this.hide()};for(he&&ae.show(),Y.setStyle(B),l=le;l<se;l++)L=(E=(i=q[o=ne&&ce?oe[l]:l])&&i.config)&&E.setValue,void 0!==i&&null!=L&&!0!==E.labelSkip?(p=i.graphics)&&(s=G[o],k=i._yPos,S=i._xPos,L=Z.getCleanValue(s.value),C=(0,r.pluckNumber)(L)<0,v=i._height,w=i._width,A=W?u:C?$?d:g:$?g:d,J=E.displayValue,T=p.label,E.showValue&&null!=J&&J!==r.BLANKSTRING&&null!==L?(n={text:J,fill:(a=E.dataLabelStyle).color,"text-bound":[a.backgroundColor,a.borderColor,B.borderThickness,B.borderPadding,B.borderRadius,B.borderDash],"line-height":B.lineHeight,visibility:this.getState("visible")?c:h},N=Y.getOriSize(J).width,N+=te,F=te,b=k+.5*v,x=S+(C?0:w),y=C?S-ee:ee+Q-(S+w),W?(x=m(ee+.5*N,x+=.5*(C?w:-w)),x=f(ee+Q-.5*N,x),x-=z?K:0,b+=z?X:0):$?w>=N?(x+=C?F:-F,z&&(b+=X,x-=K)):N<y?(x+=C?-F:F,A=C?g:d,z&&C&&(x-=K)):(C?(x=S+w+m(N-S-w+ee,0)-F,A=g):(x=S-m(N-(ee+Q-S),0)+F,A=d),z&&(x-=K,b+=X)):y>=N?(x+=C?-F:F,z&&C&&(x-=K,b+=K)):(x+=C?F+N:-(F+N),z&&(x-=K,b+=X)),(x>ee+Q||x<ee)&&(x=ee+4,A=d),n["text-anchor"]=A,n.x=x,n.y=b,n.opacity=he?1:0,(_=R.setAnimation({el:T||"text",container:ae,component:this,attr:n,callback:!he&&ue,label:"plotLabel"})).outlineText(M.showTextOutline,n.fill),T||(p.label=_)):p.label&&(p.label=R.setAnimation({el:p.label,component:this}))):((P=i&&i.graphics)&&P.label&&P.label.hide(),E&&delete E.labelSkip);this.config.labelDrawn=!0};t.drawLabel=v,(0,l.addDep)({name:"barAnimation",type:"animationRule",extension:s["default"]});var b=function(e){function t(){return e.apply(this,arguments)||this}(0,n["default"])(t,e);var a=t.prototype;return a.getType=function(){return"dataset"},a.getName=function(){return"bar2D"},a.drawLabel=function(){var e=this.config;v.call(this,e.scrollMinValForLabel,e.scrollMaxValForLabel)},t}(o["default"]);t["default"]=b},517:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=a(184),n={"initial.dataset.bar2D":function(){var e=this,t=e.getFromEnv("chart"),a=t.config.yDepth||0,n=e.getFromEnv("yAxis");return{"rect.appearing":function(o){var r,l,s,c,h=n.getPixel(n.getAxisBase())+(t.isBar?-a:a),u=o.index,d=e.components.data[u],g=o.attr;return r=g.x,l=g.width,c=Math.sign(r+l/2-h),s=1===c?r:r+l,d._posWRT0=c,[{initialAttr:function(){var e={};return e.x=s,e.width=0,e.opacity=0,e},finalAttr:{opacity:1},startEnd:function(){var t=o.length;return i.animHelperFN.getTimeByValue(i.animHelperFN.animByWeight(u,t,.6),{startPx:h,endPx:1===c?e.config.yAxisMaxPixel:e.config.yAxisMinPixel},{startPx:s,endPx:1===c?g.x+g.width:g.x})},hookFn:function(){this.attr({opacity:1})},effect:"linear",slot:"plot"}]},"plotLabel.appearing":function(){return[{initialAttr:{opacity:0},slot:"final"}]},"*":null}}};t["default"]=n},525:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t.trimData=q,t.hideFn=t.plotClickHandler=t.labelClickFn=t.plotGraphicClick=t["default"]=void 0;var n,o=i(a(183)),r=i(a(201)),l=i(a(198)),s=i(a(499)),c=a(184),h=a(192),u=i(a(526)),d=i(a(262)),g=a(196),p=i(a(248)),f=a(527),m=(0,h.getDep)("redraphael","plugin"),v=window,b=v.document,x=!c.hasSVG,y="createTouch"in b,C=y&&!(v.navigator.maxTouchPoints||v.navigator.msMaxTouchPoints),k=Math,S=k.atan2,w=k.sin,L=k.cos,A=k.max,N=k.min,F=k.abs,E=k.floor,_=k.PI,T=180/k.PI,P=2*_,D=function(e){var t,a,i,n=[[],[],[],[]];for(t=0,a=e.length;t<a;t++)i=(0,f.getCleanAngle)(e[t].point.config.angle),n[(0,f.getQuadrant)(i)].push({point:e[t].point,angle:i});return n},I=function(e,t,a){return a.getFromEnv("animationManager").setAnimation({el:"group",attr:{name:e},container:t,component:a,label:"group"})},M=function(e,t){var a=t?1:n;return(0,c.toRaphaelColor)({color:(0,c.getFirstColor)(e.color,a),alpha:(0,c.getFirstAlpha)(e.alpha,a)})},O=function(e,t,a,i,n){return S((t-a[1]-i.top)/n,e-a[0]-i.left)},R=function(e,t){return function(a){!t.data("plotItem").seriesData.isRotating&&e.plotGraphicClick.call(t,a)}},V=function(e){return function(t){var a,i,n,o,r,l,s,c,h,u,d,g,p,f=this.element||this,m=f.plotItem||f.data("plotItem"),v=f.data("eventArgs")||{},b=m.chart,x=e.getFromEnv("animationManager"),k=m.index,S=e.config,w=S.enableMultiSlicing,L=e.components.data[k],A=L.graphics,N=L.config,F=N.doNotSlice,E=N.slicedTranslation;if(!S.isRotating&&t&&b.plotEventHandler(f,t),!(S.isRotating||S.singletonCase||F)&&b.config&&(i=!w&&e.sliceInOtherPies(k),!(l=N.sliced)||!i)){if(y&&!C){if(d=(new Date).getTime(),m.lastSliceTimeStamp&&d-m.lastSliceTimeStamp<400)return;m.lastSliceTimeStamp=d}return n=A.element,h=A.connector,o=A.label||A.dataLabel,r=A.innerLabel,E="object"==typeof E?"t"+E:E,u=N.connectorPath,s=(l?-1:1)*N.transX,c=(l?-1:1)*N.transY,g=n.data("eventArgs")||n.data("eventArgs",{}),b.fireChartInstanceEvent("slicingStart",{slicedState:l,dataIndex:"index"in v&&v.index,data:e.getPlotData(k,l)}),x.setAnimationState("slicing"),x.setAnimation({el:n,attr:{transform:l?"t0,0":E},component:e,label:"slice",callback:function(){b.fireChartInstanceEvent("slicingEnd",{slicedState:l,dataIndex:"index"in v&&v.index,data:e.getPlotData(k,!l)})}}),o&&o.x&&((a=o.data("textPos"))||(a=o.data("textPos",{x:o.x,y:o.y})),x.setAnimation({el:o,attr:{x:o.x+(l?0:s),y:o.y+(l?0:c)},label:"label-sliced",component:e}),a.x=o.x+(l?0:s)),r&&x.setAnimation({el:r,attr:{x:r.x+(l?0:s),y:r.y+(l?0:c)},label:"label-sliced",component:e}),h&&u&&((p=u.slice(0))[1]+=s,p[2]+=c,p[4]+=s,p[5]+=c,p[6]+=s,p[7]+=c,x.setAnimation({el:h,attr:{path:p},label:"connector-sliced",component:e}),N.connectorPath=p),g.isSliced=l=N.sliced=!l,l}}},B=function(e){var t=e.getFromEnv("animationManager");return{plotDragMove:function(t){var a,i=this.data("plotItem"),n=i.chart,o=t.data,r=o[0],l=o[1],s=o[2],c=o[3],h=i.seriesData,u=e.config;isNaN(r)||isNaN(l)||!u.enableRotation||h.singletonCase||h.isRightClicked||(a=O.call(t,s,c,h.pieCenter,h.chartPosition,1),h.dragStartAngle===a||h.isRotating||(h.isRotating=!0,n.fireChartInstanceEvent("RotationStart",{startingAngle:h._rotationalStartAngle=n._startingAngle()})),u.startAngle+=a-h.dragStartAngle,h.dragStartAngle=a,h.moveDuration=0,u.updateInited||(u.updateInited=!0,n.addJob("pie_batch_rotate",n._batchRotate||(n._batchRotate=function(){e._rotate(),u.updateInited=!1}),g.priorityList.draw,{oneInAFrame:!0})))},plotDragStart:function(t){var a,i=this.data("plotItem"),n=i.chart,o=i.seriesData,r=e.config,l=(0,c.pluckNumber)(t.button,t.originalEvent.button),s=-r.startAngle*T,h=t.data[0],u=t.data[1];o.isRightClicked=!(c.touchEnabled||0===l||1===l),r.enableRotation&&!o.isRightClicked&&(o.isRotating=!1,o.chartPosition=function(e,t){var a,i={left:0,top:0},n=e;if(n.getBoundingClientRect)a=n.getBoundingClientRect(),i.top=a.top+(v.pageYOffset||b.scrollTop||0)-(b.clientTop||0),i.left=a.left+(v.pageXOffset||b.scrollLeft||0)-(b.clientLeft||0);else for(;n;)i.left+=n.offsetLeft||0,i.top+=n.offsetTop||0,n===b.body||n===b.documentElement||t||(i.left-=n.scrollLeft||0,i.top-=n.scrollTop||0),n=n.offsetParent;return i}(n.getFromEnv("chart-container")),a=O.call(t,h,u,o.pieCenter,o.chartPosition,1),o.dragStartAngle=a,o.startingAngleOnDragStart=s)},plotDragEnd:function(){var t=this.data("plotItem"),a=t.chart,i=a.getChildren("dataset")[0].config,n=a.config,o=t.seriesData,r=-i.startAngle*T;o.isRightClicked||(n.clicked=!0,a.disposed||e._rotate(),delete n.clicked,o.isRotating&&(setTimeout((function(){o.isRotating=!1}),0),a.fireChartInstanceEvent("RotationEnd",{startingAngle:(0,c.normalizeAngle)(r,!0),changeInAngle:r-i.startingAngleOnDragStart})),!o.isHovered&&e.config.handlersAPI.onPlotHover(this,!1))},plotRollOver:function(e){var t=this.plotItem||this.data("plotItem"),a=t.chart,i=t.seriesData,n=a.getDatasets()[0],o=n.getFromEnv("animationManager");i.isRotating||(a.plotEventHandler(this,e,"DataPlotRollOver"),n.config.handlersAPI.onPlotHover(this,!0,o)),n.fireEvent("datasetrollover",t),i.isHovered=!0},plotRollOut:function(e){var t=this.plotItem||this.data("plotItem"),a=t.chart,i=t.seriesData,n=a.getDatasets()[0];i.isRotating||(a.plotEventHandler(this,e,"DataPlotRollOut"),n.config.handlersAPI.onPlotHover(this,!1)),n.fireEvent("datasetrollout",t),i.isHovered=!1},onPlotHover:function(a,i){var n=a.data("plotItem"),o=n.center,r=n.rolloverProperties||{},l=i?r.color:n.color,s=i?r.borderWidth:n.borderWidth,h=i?r.borderColor:n.borderColor;l&&(i&&(l.cx=o[0],l.cy=o[1],l.r=n.radius),r.enabled&&t.setAnimation({el:n.graphic,component:e,attr:{fill:(0,c.toRaphaelColor)(l),"stroke-width":s,stroke:h}}))}}},G=function(e,t){return e.point.config.value-t.point.config.value},H=function(e,t){return e.angle-t.angle},z=function(e,t){t&&e.getFromEnv("linkClickFN")&&e.getFromEnv("linkClickFN").call({link:t},!0)},W=function(){this.remove()},j=[1,1,-1,-1],U=[1,-1,-1,1];function q(e){if(this.config.JSONData){var t,a,i,n,o=this.getFromEnv("legend"),r=this.config.JSONData,l=r.data&&r.data.length,s=e.data&&e.data.length||0,c=l-s;for(c>0&&this.removeData(s,c,!1),t=0,a=(i=this.components.removeDataArr||[]).length;t<a;t++)(n=i[t].config).legendItemId&&o.disposeItem(n.legendItemId)}}t.hideFn=function(){this.hide()},t.labelClickFn=z,t.plotGraphicClick=V,t.plotClickHandler=R,(0,h.addDep)({name:"pie2dAnimation",type:"animationRule",extension:u["default"]}),(0,d["default"])(m);var Y=function(e){function t(){var t;return(t=e.call(this)||this).plotGraphicClick=V((0,r["default"])(t)),t}(0,l["default"])(t,e);var a=t.prototype;return a.getType=function(){return"dataset"},a.getName=function(){return"pie2D"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this),this.config.doughnutradius=0},a.configureAttributes=function(e){if(!e)return!1;this.trimData(e),this.config.JSONData=e;var t,a,i,o,r,l=this.getFromEnv("chart"),s=l.config,h=this.config,u=this.config.JSONData,d=this.getFromEnv("chart-attrib"),g=l.config.is3D,p=/pie/.test(this.getName());h.handlersAPI=B(this),this.setState("visible",1===(0,c.pluckNumber)(this.config.JSONData.visible,!Number(this.config.JSONData.initiallyhidden),1)),(0,c.parseConfiguration)({},this.config,l&&l.config),r=h.enableAnimation=(0,c.pluckNumber)(d.animation,d.defaultanimation,1),h.animation=!!r&&{duration:1e3*(0,c.pluckNumber)(d.animationduration,d.moveduration,1)},h.transposeAnim=!(!r&&!(0,c.pluckNumber)(h.transposeanimation,1))&&{duration:1e3*(0,c.pluckNumber)(d.transposeanimduration,.2)},h.showPlotBorder=(0,c.pluckNumber)(d.showplotborder,1),h.showHoverEffect=(0,c.pluckNumber)(d.plothovereffect,d.showhovereffect,n),h.showTooltip=(0,c.pluckNumber)(d.showtooltip,1),h.toolText=(0,c.getValidValue)((0,c.parseUnsafeString)((0,c.pluck)(u.plottooltext,d.plottooltext))),o=h.enableMultiSlicing=(0,c.pluckNumber)(d.enablemultislicing,1),a=h.use3DLighting=(0,c.pluckNumber)(d.use3dlighting,1),t=h.radius3D=a?(0,c.pluckNumber)(d.radius3d,90):100,h.showZeroPies=(0,c.pluckNumber)(d.showzeropies,1),h.showPercentInToolTip=(0,c.pluckNumber)(d.showpercentintooltip,1),h.showLabels=(0,c.pluckNumber)(d.showlabels,1),h.showTextOutline=(0,c.pluckNumber)(d.textoutline,0),h.labelFontColor=(0,c.pluck)(u.labelfontcolor,d.labelfontcolor,s.labelfontcolor),h.labelFont=(0,c.pluck)(u.labelfont,d.labelfont,s.basefont),h.showValues=(0,c.pluckNumber)(u.showvalues,d.showvalues,1),h.showPercentValues=(0,c.pluckNumber)(d.showpercentvalues,d.showpercentagevalues,0),i=h.toolTipSepChar=(0,c.pluck)(d.tooltipsepchar,d.hovercapsepchar,c.COMMASPACE),h.labelSepChar=(0,c.pluck)(d.labelsepchar,i),h.pieBorderColor=(0,c.pluck)(d.plotbordercolor,d.piebordercolor),h.pieBorderAlpha=(0,c.pluckNumber)(d.plotborderalpha,d.pieborderalpha),h.pieBorderThickness=h.showPlotBorder?(0,c.pluckNumber)(d.plotborderthickness,d.pieborderthickness,s.plotborderthickness,1):0,h.plotDashLen=(0,c.pluckNumber)(d.plotborderdashlen,5),h.plotDashGap=(0,c.pluckNumber)(d.plotborderdashgap,4),h.showValueInLegend=(0,c.pluckNumber)(d.showvalueinlegend,0),h.showLabelInLegend=(0,c.pluckNumber)(d.showlabelinlegend,1),h.valueBeforeLabelInLegend=(0,c.pluckNumber)(d.valuebeforelabelinlegend,0),h.showValueAsPercentInLegend=(0,c.pluckNumber)(d.showvalueaspercentinlegend,1),h.legendSepChar=(0,c.pluck)(d.legendsepchar,", "),h.showvalues=(0,c.pluckNumber)(d.showvalues,1),h.chartPosition=(0,c.getPosition)(l.getFromEnv("chart-container"),l),h.timerThreshold=30,t>100&&(t=100),t<0&&(t=0),h.showLegend=(0,c.pluckNumber)(d.showlegend,0),h.reverselegend=!(0,c.pluckNumber)(d.reverselegend,0),l.config.is3D=g,h.pieYScale=(0,c.pluckNumber)(d.pieyscale,40),h.pieYScale<1&&(h.pieYScale=1),h.pieYScale>=100&&(h.pieYScale=80),h.pieYScale/=100,h.pieSliceDepth=(0,c.pluckNumber)(d.pieslicedepth,15),h.pieSliceDepth<1&&(h.pieSliceDepth=1),h.managedPieSliceDepth=h.pieSliceDepth,h.enableMultiSlicing=!!o,h.startAngle=(0,c.pluckNumber)(d.startingangle,0)%360*(-_/180),h.usePerPointLabelColor=d.colorlabelsfromplot===c.ONESTRING,h.reversePlotOrder=(0,c.pluckNumber)(d.reverseplotorder,0),h.animateClockWise=(0,c.pluckNumber)(d.animateclockwise,h.reversePlotOrder),h.showShadow=(0,c.pluckNumber)(d.showshadow,1),h.innerLabelRadiusPercent=(0,c.pluckNumber)(d.innerlabelradiuspercent,67)/100,h.minAngleForValue=(0,c.pluckNumber)(d.minangleforvalue,0)*(_/180),h.minAngleForLabel=(0,c.pluckNumber)(d.minangleforlabel,0)*(_/180),h.singletonCase=1===u.data.length,h.labelPosition=(0,c.pluck)(d.labelposition,h.singletonCase&&p?"inside":"outside").toLowerCase(),h.valuePosition=(0,c.pluck)(d.valueposition,h.singletonCase&&p?"inside":"outside").toLowerCase(),h.valueTotal=0,this._setConfigure(),s.showLegend&&this._addLegend()},a.trimData=function(e){q.call(this,e)},a._parseDisplayProperties=function(e,t){var a,i,o,r,l,s,h,u,d,g,p,f,m=c.BLANKSTRING,v=this.getFromEnv("chart"),b=this.getFromEnv("number-formatter"),x=v.getFromEnv("chart-attrib"),y=this.config,C=(0,c.pluckNumber)(t.y,b.getCleanValue(e.value,!0)),k=y.valueTotal,S=y.showLabels,w=(0,c.parseUnsafeString)((0,c.pluck)(t.seriesName,e.label,e.name,c.BLANKSTRING)),L=y.showPercentValues,A=y.showPercentInToolTip,N=y.labelSepChar,F=y.toolTipSepChar,E=y.showTooltip;a=(0,c.getValidValue)((0,c.parseUnsafeString)((0,c.pluck)(e.tooltext,y.toolText))),i=t.pValue=b.percentValue(C/k*100),r=t.value=b.dataLabels(C)||c.BLANKSTRING,d=t.showLabel=(0,c.pluckNumber)(e.showlabel,S),g=t.showValue=(0,c.pluckNumber)(e.showvalue,y.showValues),t.labelFontColor=(0,c.pluck)(e.labelfontcolor,y.labelFontColor),t.labelFont=(0,c.pluck)(e.labelfont,y.labelFont),l=t.labelText=1===d?w:c.BLANKSTRING,s=t.valueText=1===g?1===L?i:r:c.BLANKSTRING,o=A?i:r,h=(0,c.getValidValue)((0,c.parseUnsafeString)(e.displayvalue)),t.labelPosition=(0,c.pluck)(e.labelposition,y.labelPosition).toLowerCase(),t.valuePosition=(0,c.pluck)(e.valueposition,y.valuePosition).toLowerCase(),p=(0,c.pluckNumber)(e.minangleforlabel),isNaN(p)?t.minAngleForLabel=y.minAngleForLabel:t.minAngleForLabel=p%360*(_/180),f=(0,c.pluckNumber)(e.minangleforvalue),isNaN(f)?t.minAngleForValue=y.minAngleForValue:t.minAngleForValue=f%360*(_/180),t.innerLabelRadiusPercent=(0,c.pluckNumber)(e.innerlabelradiuspercent,y.innerLabelRadiusPercent),u=(0,c.pluck)(h,w+N+(L?i:r),c.BLANKSTRING),h!==n&&g?(s=t.labelText=h,t.valueText=c.BLANKSTRING):s=s!==c.BLANKSTRING&&l!==c.BLANKSTRING?l+N+s:(0,c.pluck)(l,s),E&&(m=a!==n?(0,c.parseTooltext)(a,[1,2,3,5,6,7,14,24,25],{formattedValue:r,label:w,yaxisName:(0,c.parseUnsafeString)(x.yaxisname),xaxisName:(0,c.parseUnsafeString)(x.xaxisname),percentValue:i,sum:b.dataLabels(k),unformattedSum:k},e,x):(m=w)!==c.BLANKSTRING?m+F+o:o),t.displayValue=s,t.displayValueArgs=u,t.toolText=m,t.seriesName=w,t.categoryLabel=w},a._isStyled=function(e){if(this.getFromEnv("chart").config.usedataplotcolorforlabels||e.labelbordercolor||e.labelbgcolor||e.labelborderthickness||e.labelborderalpha||e.labelalpha||e.labelfont||e.labelfontsize||e.labelfontcolor||e.labelfontalpha||e.labelalpha||e.labelfontbold||e.labelfontitalic||e.labelborderpadding||e.labelborderradius||e.labelbgalpha||e.labelborderdashed||e.labelborderdashlen||e.labelborderdashgap)return!0},a._setConfigure=function(e,t){var a,i,o,r,l,s,h,u,d,g,f,m,v,b,x,y,C,k,S,w=this.components,L=w.removeDataArr=w.removeDataArr||[],N=this.getFromEnv("chart"),F=N.getFromEnv("dataSource").chart,E=N.config,_=this.config,T=this.config.JSONData,P=(e||T).data,D=P&&P.length,I=_.showZeroPies,M=_.valueTotal||0,O=[],R=(0,c.pluckNumber)(F.plotborderdashed,0),V=this.components.data||(this.components.data=[]),B=this.getFromEnv("number-formatter"),G=this.getFromEnv("color-manager"),H=_.labelInLeg,z=_.valInLeg,W=_.pieBorderThickness,j=_.reversePlotOrder,U=_.radius3D,q=_.enableMultiSlicing,Y=_.lastSlicedid||0,X=(0,c.pluckNumber)(F.plotBorderDashed,5),K=(0,c.pluckNumber)(F.plotborderdashgap,4),Z=(0,c.pluckNumber)(F.valuebeforelabelinlegend,0),J=(0,c.pluckNumber)(F.showvalueaspercentinlegend,1),$=0,Q=[],ee=(0,c.pluck)(F.legendsepchar,", ");for(E.dataLabelStyle=(0,c.parsexAxisStyles)({},{},F,E.dataLabelStyle,o),a=0;a<D;a+=1)b=P[a],null===(C=B.getCleanValue(b.value,!0))||!I&&0===C?$+=1:(O.push(b),Q.push(a),M+=C);if(!_.singletonCase&&(_.singletonCase=D-$==1),$&&V.length>D-$)for(a=V.length-1;$>0;a-=1,$-=1)V[a]&&(k=(b=V[a]).config,L.push(b),k.y=null);for(0===M&&(O=[]),_.valueTotal=M,_.dataLabelCounter=0,E.allPlotSliceEnabled=E.enableslicing,a=(D=O.length)-1;a>=0;a-=1)x=a,e?(S=O[a],b=t!==n?V[x=t+a]:V[x=V.length-D+a]):(b=V[a]||(V[a]={graphics:{},config:{}}),S=O[a]),(y=b&&b.config)||(y=V[x].config={}),b.graphics||(V[x].graphics={}),y.y=C=B.getCleanValue(S.value,!0),y.seriesName=i=(0,c.parseUnsafeString)((0,c.pluck)(S.label,S.name,c.BLANKSTRING)),y.labellink=(0,c.pluck)(S.labellink,F.labellink),o=(0,c.pluck)(S.color,G.getPlotColor(Q[a])),r=(0,c.pluck)(S.alpha,F.plotfillalpha,c.HUNDREDSTRING),s=(l=y.borderConfig=this._parseBorderConfig(o,r,S)).setPlotBorderColor,h=l.setPlotBorderAlpha,u={opacity:A(r,h)/100},(f=Boolean((0,c.pluckNumber)(S.issliced,F.issliced,0)))&&(q||(-1!==Y&&(V[V.length-Y-1].sliced=!1),_.lastSlicedid=a),_.preSliced=f),v=(m=(0,c.pluckNumber)(S.dashed,R))?(0,c.getDashStyle)((0,c.pluck)(S.dashlen,X),(0,c.pluck)(S.dashgap,K),W):"none",this._parseDisplayProperties(S,y),d=H?i:c.BLANKSTRING,z&&(g=J?B.legendPercentValue(C/M*100):B.legendValue(C),d=Z?g+(d&&ee+d):(d&&d+ee)+g),_.dataLabelCounter+=1,this._isStyled(S)?y.style=(0,c.parsexAxisStyles)(S,{},F,E.dataLabelStyle,o):y.style&&delete y.style,y.showInLegend=d!==c.BLANKSTRING,y.isVisible=!0,y.name=d,y.shadow=u,y.setColor=o,y.setAlpha=r,y.color=(0,p["default"])(o,r,U,_.doughnutradius),y._3dAlpha=r,y.borderColor=(0,c.convertColor)(s,h),y.borderWidth=W,y.link=(0,c.getValidValue)(S.link),y.sliced=f,y.dashStyle=v,y.setBorderDashed=m,(y.doNotSlice=(0,c.pluck)(S.enableslicing,E.enableslicing)!==c.ONESTRING)||E.allPlotSliceEnabled!==c.ZEROSTRING||(E.allPlotSliceEnabled=c.ONESTRING),this._parseHoverEffectOptions(a),y.centerLabelConfig=void 0,y.radius3D=U;j&&V&&V.reverse(),_.dataArr=O,_.enableRotation=V.length>1?(0,c.pluckNumber)(F.enablerotation,1):0},a._parseHoverEffectOptions=function(e){var t,a,i,o,r,l,s,h,u,d,g=this.getFromEnv("chart").getFromEnv("dataSource").chart,p=this.config,f=this.components.data[e].config,m=this.config.JSONData,v=m.data[e],b=f.setColor,x=f._3dAlpha,y=p.radius3D,C=f.borderConfig,k=C.setPlotBorderAlpha,S=C.setPlotBorderColor,w=p.setBorderWidth,L=(0,c.pluckNumber)(f.hovereffect,p.showHoverEffect),A=f.hoverEffects={enabled:L};if(L===n&&(L=A.enabled=(0,c.pluck)(v.hovercolor,m.hovercolor,g.plotfillhovercolor,v.hoveralpha,m.hoveralpha,g.plotfillhoveralpha,v.borderhovercolor,m.borderhovercolor,g.plotborderhovercolor,v.borderhoveralpha,m.borderhoveralpha,g.plotborderhoveralpha,g.plotfillhoveralpha,v.borderhoverthickness,m.borderhoverthickness,g.plotborderhoverthickness,n)!==n),L){if(t=(0,c.pluckNumber)(v.highlightonhover,m.highlight,g.highlight,1),(a=(0,c.pluck)(v.hovercolor,m.hovercolor,g.plotfillhovercolor))&&t&&(t=0),a=(0,c.pluck)(a,b),i=(0,c.pluck)(v.hoveralpha,m.hoveralpha,g.plotfillhoveralpha,x),o=(0,c.pluck)(v.borderhovercolor,m.borderhovercolor,g.plotborderhovercolor,S),f.hoverBorderColor=o,r=(0,c.pluck)(v.borderhoveralpha,m.borderhoveralpha,g.plotborderhoveralpha,g.plotfillhoveralpha,k),l=(0,c.pluckNumber)(v.borderhoverthickness,m.borderhoverthickness,g.plotborderhoverthickness,w),a.replace(/,+?$/,""),1===t){for(u=(h=(s="string"==typeof a)?a.split(/\s{0,},\s{0,}/):a.color.split(/\s{0,},\s{0,}/)).length,d=0;d<u;d++)h[d]=(0,c.getLightColor)(h[d],70);s?a=h.join(","):a.color=h.join(",")}this._setHoverColor(A,a,i,y),A.hoverColor=a,A.alpha=i,A.borderColor=(0,c.convertColor)(o,r),A.borderAlpha=r,A.borderWidth=l}else A.enabled=!1},a.organizeDatalabels=function(){var e,t,a,i,n,o=this.config,r=this.components.data,l=[],s=[],c=r.length;for(e=0;e<c;e++)i=(t=r[e].config).labelPosition,n=t.valuePosition,null!==t.y&&"undefined"!=typeof t.y&&!1!==t.isVisible&&("outside"===i&&"outside"===n?l.push({point:r[e]}):"inside"===i&&"inside"===n?s.push({point:r[e]}):(l.push({point:r[e]}),s.push({point:r[e]})));a=D(l),o.labelsPlacedOutside=this.skipOverlappingLabels(a),o.labelsPlacedInside=s,this.rotateDataLabels()},a.skipOverlappingLabels=function(e){var t,a,i,n,o,r,l=e,s=this.config,c=s.dataLabelOptions,h=c.distance+s.pieMinRadius,u=[];for(o=s.labelLineHeight=parseInt(c.style.fontSize,10),s.labelsMaxInQuadrant=r=E(h/o),a=0;a<4;a++)if(c.skipOverlapLabels&&(t=l[a].length-r)>0)for(l[a].sort(G),i=0,n=(t=l[a].splice(0,t)).length;i<n;i++)this.disposeLabelAndConnector(t[i].point.graphics,[{el:"label",animLabel:"label"},{el:"innerLabel",animLabel:"label"},{el:"connector",animLabel:"connector"}]);for(a=0;a<4;a++)for(i=0,n=l[a].length;i<n;i++)u.push(l[a][i]);return u},a.rotateDataLabels=function(){this.rotateOuterLabels(),this.rotateInnerLabels()},a.rotateOuterLabels=function(){var e,t,a,i,n,r,l,s,h,u,d,g,p,m,v,b,x,y,C,k,S,E,_,T,P,I=this.config,M=this.getFromEnv("chart"),O=M.getFromEnv("animationManager"),V=M.getChildren("legend")[0],B=V&&V.config||{},G=this.getFromEnv("smartLabel"),W=M.config,q=I.dataLabelOptions,Y=I.labelLineHeight,X=I.pieMinRadius,K=M.config,Z=K.canvasLeft,J=K.canvasWidth,$=K.useEllipsesWhenOverflow,Q=q.connectorPadding,ee=q.manageLabelOverflow,te=q.distance,ae=q.enableSmartLabels,ie=D(I.labelsPlacedOutside),ne=te+X,oe=A(ie[0].length,ie[1].length,ie[2].length,ie[3].length),re=Z+.5*J,le=W.canvasTop+.5*W.canvasHeight,se=I.handlersAPI,ce=se.plotDragStart,he=se.plotDragEnd,ue=se.plotDragMove,de=se.plotRollOver,ge=se.plotRollOut,pe=[],fe=[],me=this.getFromEnv("toolTipController"),ve=this.getContainer("label-group");for(t=A(N(oe,I.labelsMaxInQuadrant)*Y,ne+Y),a=0;a<4;a++)ie[a].sort(H);for(ie[0].reverse(),ie[2].reverse(),i=0;i<4;i++){for(k=t,C=ie[i].length*Y,pe=[],a=0,n=ie[i].length;a<n;a++)x=ie[i][a],(l=F(t*w(x.angle)))>k?l=k:l<C&&(l=C),C-=Y,k=l-Y,pe.push(l);for(C=0,k=t-(n-1)*Y,fe=[],a=ie[i].length-1;a>=0;a--)x=ie[i][a],(l=F(t*w(x.angle)))<C?l=C:l>k&&(l=k),C=l+Y,k+=Y,fe.push(l);for(a=0;a<n;a++)l=N(t,(pe[a]+fe[n-1-a])/2),s=t*L(Math.asin(l/t)),p=(r=(x=ie[i][a]).point).config,m=r.graphics,v=p.props.connector.attr,g=c.BLANKSTRING,(S=Object.assign({},p.props.label.attr))["text-anchor"]=0===i||3===i?"start":"end",S.y=u=le+j[i]*l,S.x=h=re+U[i]*(s+2*Q),p.sliced&&(S.y+=p.transY,S.x+=p.transX),"outside"===p.labelPosition&&"outside"===p.valuePosition?this.disposeLabelAndConnector(m,[{el:"innerLabel",animLabel:"label"}]):S.text="outside"===p.labelPosition?p.labelText:p.valueText,S.text?(y={x:re+X*L(x.angle),y:le+X*w(x.angle)},b=p.connectorPath=(0,f.getConnectorPath)(y,{x:re+U[i]*s,y:le+j[i]*l},{isSlanted:q.isSmartLineSlanted,padding:Q,quadrant:i,transX:p.sliced?p.transX:0,transY:p.sliced?p.transY:0}),ee&&(d=1===i||2===i?S.x-Z:Z+J-S.x,"right"!==B.align&&"left"!==B.align||(d-=B.symbolWidth+2*B.borderWidth),G.useEllipsesOnOverflow($),G.setStyle(p.style),e=G.getSmartText(S.text,d,parseFloat(G.style.lineHeight)),S.text=e.text,g=e.tooltext),P=m.label,m.label=T=O.setAnimation({el:P||"text",attr:S,css:p.props.label.css,component:this,container:ve,label:"label"}),T.outlineText(I.showTextOutline,S.fill),P||T.on("fc-dragstart",ce).on("fc-dragmove",ue).on("fc-dragend",he).on("fc-click",z.bind(T,M,p.labellink)).on("fc-click",R(this,T)).on("fc-mouseover",de).on("fc-mouseout",ge),g?g&&me.enableToolTip(T,g):me.disableToolTip(T),T.x=h,T.y=u,T&&T.data("textPos",{x:S.x,y:S.y}).data("plotItem",p.plotItem).data("eventArgs",p.eventArgs),_=m.connector,ae?(m.connector=E=O.setAnimation({el:_||"path",attr:(0,o["default"])({path:b},v),container:ve,component:this,label:"connector"}),_||E.on("fc-dragstart",ce).on("fc-dragmove",ue).on("fc-dragend",he).on("fc-mouseover",de).on("fc-mouseout",ge),E.data("connectorPath",{path:b}).data("plotItem",p.plotItem).data("eventArgs",p.eventArgs)):_&&this.disposeLabelAndConnector(m,[{el:"connector",animLabel:"connector"}])):this.disposeLabelAndConnector(m,[{el:"label",animLabel:"label"},{el:"connector",animLabel:"connector"}])}},a.rotateInnerLabels=function(){var e,t,a,i,n,o,r,l,s,h,u,d,g,p,m=this.config,v=m.labelsPlacedInside,b=m.pieCenter,x=this.getFromEnv("animationManager"),y=b[0],C=b[1],k=v.length,S=this.components.data.length,A=m.handlersAPI,N=A.plotDragStart,E=A.plotDragEnd,_=A.plotDragMove,T=A.plotRollOver,P=A.plotRollOut;for(a=0;a<k;a++)n=(i=v[a].point).config,o=i.graphics,d=Object.assign({},n.props.label.attr),u=F(n.startAngle-n.endAngle),s=n.minAngleForLabel,h=n.minAngleForValue,"inside"===n.valuePosition&&"inside"===n.labelPosition?(this.disposeLabelAndConnector(o,[{el:"label",animLabel:"label"},{el:"connector",animLabel:"connector"}]),u>=h&&u<s?d.text=n.valueText:u<h&&u>=s?d.text=n.labelText:u<h&&u<s&&(d.text=c.BLANKSTRING)):"inside"===n.valuePosition?d.text=u>=h?n.valueText:c.BLANKSTRING:d.text=u>=s?n.labelText:c.BLANKSTRING,d.text?(l=m.pieMinRadius*n.innerLabelRadiusPercent,r=(0,f.getCleanAngle)(n.angle),d.x=e=y+(S>1?l*L(r):0),d.y=t=C+(S>1?l*w(r):0),n.sliced&&(d.y+=n.transY,d.x+=n.transX),d["text-anchor"]="middle",p=o.innerLabel,o.innerLabel=g=x.setAnimation({el:p||"text",attr:d,css:n.props.label.css,component:this,container:this.getContainer("label-group"),label:"label"}),g.outlineText(m.showTextOutline,d.fill),p||g.on("fc-dragstart",N).on("fc-dragmove",_).on("fc-dragend",E).on("fc-click",z.bind(g,this.getFromEnv("chart"),n.labellink)).on("fc-click",R(this,g)).on("fc-mouseover",T).on("fc-mouseout",P),g.x=e,g.y=t,g&&g.data("textPos",{x:d.x,y:d.y}).data("plotItem",n.plotItem).data("eventArgs",n.eventArgs)):this.disposeLabelAndConnector(o,[{el:"innerLabel",animLabel:"label"}])},a.disposeLabelAndConnector=function(e,t){void 0===t&&(t=[]);var a,i,n,o=this.getFromEnv("animationManager"),r=t.length;for(a=0;a<r;a++)e[n=(i=t[a]).el]&&(e[n]=o.setAnimation({el:e[n],component:this,label:i.animLabel})),delete e[n]},a._setHoverColor=function(e,t,a,i){i?e.color=(0,p["default"])(t,a,i,this.config.doughnutradius):(e.color=t,e.alpha=a)},a.updateData=function(){var t=this,a=t.config,i=t.components.data;a.valueTotal-=i[arguments[1]].config.y,e.prototype.updateData.call(this,arguments)},a._rotate=function(){var e,t,a,i,o,r,l,s,h,u=this.getFromEnv("chart"),d=this.config,g=this.components.data,p=u.config,f=d.piePlotOptions,m=(d.startAngle||0)%P,v=d.slicingDistance,b=d.valueTotal,x=P/b,y=p.canvasLeft+.5*p.canvasWidth,C=p.canvasTop+.5*p.canvasHeight,k=d.pieMinRadius,S=.5*(f.innerSize||0);for(o=r=m,h=0;h<g.length;h+=1)l=g[h].config,s=g[h].graphics,null!==(a=l.y)&&a!==n&&(r=o,i=.5*((o-=d.singletonCase?P:a*x)+r),l.angle=i,l.transX=L(i)*v,l.transY=w(i)*v,l.slicedTranslation="t"+L(i)*v+c.COMMASTRING+w(i)*v,(t=l._rotateAttrs)||(t=l._rotateAttrs={ringpath:[],transform:c.BLANKSTRING}),(e=t.ringpath)[0]=y,e[1]=C,e[2]=k,e[3]=S,e[4]=o,e[5]=r,s.element.attr({ringpath:t.ringpath,transform:l.sliced?l.slicedTranslation:""}));this.organizeDatalabels()},a._parsePiePlotOptions=function(){var e=this.config;return{size:e.pieMinRadius,slicedOffset:e.slicingDistance}},a._parseDataLabelOptions=function(){return{style:this.getFromEnv("chart").config.dataLabelStyle}},a._addLegend=function(){var e,t,a,i,n=this.getFromEnv("legend"),o=this.components.data;for(e=0;e<o.length;e++)if(null!==(t=o[e].config).y&&t.seriesName)i={index:e,type:this.getName(),label:t.seriesName,enabled:(0,c.pluckNumber)(t.includeInLegend,1)},(a=n.getItem(t.legendItemId))||(t.legendItemId=n.createItem(this),a=n.getItem(t.legendItemId),this.addExtEventListener("fc-click",a.itemClickFn,a)),a.configure(i),a.setStateCosmetics("default",{symbol:{fill:(0,c.toRaphaelColor)(t.setColor),rawFillColor:t.setColor,stroke:(0,c.toRaphaelColor)(t.borderColor)}});else{if(!t.legendItemId)continue;(a=n.getItem(t.legendItemId))&&n.disposeItem(a.getId()),delete t.legendItemId}},a.getPlotData=function(e,t){var a,i,n,o=this.components.data[e].config,r=this.config.userData||(this.config.userData=[]);if(r[e])a=r[e];else{for(n in a=r[e]={},o)"object"!=typeof(i=o[n])&&"function"!=typeof i&&0!==n.indexOf("_")&&(a[n]=i);a.value=a.y,a.categoryLabel=a.label=a.seriesName,delete a.y,delete a.total,delete a.doNotSlice,delete a.name,delete a.seriesName,delete a.centerAngle,delete a.showInLegend,delete a.angle,delete a.endAngle,delete a.isVisible,delete a.setColor,delete a.slicedTranslation,delete a.startAngle,delete a.transX,delete a.transY,delete a.pValue}return a.sliced=t,a},a._parseBorderConfig=function(e,t,a){var i=this.config.pieBorderColor,n=this.getFromEnv("chart").getFromEnv("dataSource").chart,o=(0,c.pluck)(a.bordercolor,i),r=(0,c.pluck)(a.borderalpha,n.plotborderalpha,n.pieborderalpha);return{setPlotBorderColor:o=(0,c.pluck)(o,(0,c.getLightColor)(e,25)).split(c.COMMASTRING)[0],setPlotBorderAlpha:r=n.showplotborder===c.ZEROSTRING?c.ZEROSTRING:(0,c.pluck)(r,t,"80")}},a.legendInteractivity=function(e){var t,a,i,n=this.components.data,o=e.getId();for(a=0,t=n.length;a<t;a++)n[a].config.legendItemId===o&&(i=n[a].graphics,this.plotGraphicClick.call(i.element))},a._createContainer=function(){var e,t,a,i,n=this.getName(),o=this.groupName,r=this.getLinkedParent(),l=o||this.dsGroup||n;!r.getChildContainer(l+"Group")&&(l="default"),e=r.getChildContainer("datalabelsGroup"),t=this.getContainer("pie-groups")||this.addContainer("pie-groups",I("pie",e,this)),a=this.getContainer("pie-plot-groups")||this.addContainer("pie-plot-groups",I("pie-plot",t,this)),i=this.getContainer("pie-label-groups")||this.addContainer("pie-label-groups",I("pie-label",t,this)),this.getContainer("plot-group")||this.addContainer("plot-group",I("plots",a,this)),this.getContainer("plot-shadow-group")||this.addContainer("plot-shadow-group",I("plot-shadows",a,this).toBack()),this.getContainer("label-group")||this.addContainer("label-group",I("labels",i,this)),this.getContainer("connector-shadow-group")||this.addContainer("connector-shadow-group",I("connector-shadows",i,this)),this.getContainer("anchor-shadow-group")||this.addContainer("anchor-shadow-group",I("anchor-shadows",i,this))},a.allocatePosition=function(){var e,t,a=this.components.data,i=a.length;for(e=0;e<i;e++)t=a[e],this.parsePlotAttributes(t,e),this.parseLabelAttributes(t,e)},a.parsePlotAttributes=function(e,t){var a,i,o,r,l,s,h,u,d,g,p,f,m,v,b=this.components.data,y=this.getFromEnv("chart"),C=y.config,k=this.config,S=t,A=b.length,N=C.canvasWidth,F=C.canvasHeight,E=C.canvasLeft+.5*N,_=C.canvasTop+.5*F,T=k.valueTotal,D=k.piePlotOptions=this._parsePiePlotOptions(),I=D.slicedOffset,O=D.size,R=.5*(k.innerSize||0),V=(k.startAngle||0)%P,B=V-P,G=k.animateClockWise;m=T&&P/T,k.pieCenter=[E,_],r=V,l=V,t>0&&(r=b[t-1].config.startAngle,l=b[t-1].config.endAngle),h=(s=e.config).y,u=s.displayValue,d=s.sliced,a=s.toolText,i=!!s.link,null!==h&&h!==n&&!1!==s.isVisible&&((g=s.color).r=O,g.cx=E,g.cy=_,l=r,p=.5*((r-=k.singletonCase?P:h*m)+l),G?B:V,f=k.previousData={cx:E,cy:_,r:O,r2:R},o=this.config.drawn?[f.cx,f.cy,f.r,f.r2,r,l]:[E,_,O,R,r,l],d&&(s.slicedTranslation="t"+L(p)*I+","+w(p)*I),v={"stroke-width":s.borderWidth,stroke:s.borderColor,fill:x?M(s.color,k.doughnutradius):(0,c.toRaphaelColor)(s.color),transform:d?s.slicedTranslation:"","stroke-dasharray":s.dashStyle,redrawDataLabels:V,ringpath:o,cursor:i?"pointer":""},s.props={element:{attr:v}},s.eventArgs={index:k.reversePlotOrder?A-1-S:S,link:s.link,value:s.y,displayValue:s.displayValueArgs,categoryLabel:s.categoryLabel,isSliced:d,toolText:a,pValue:s.pValue,color:s.setColor,alpha:s.setAlpha,borderColor:s.borderConfig.setPlotBorderColor,borderAlpha:s.borderConfig.setPlotBorderAlpha,dashed:s.setBorderDashed,showLabel:s.showLabel,showValue:s.showValue,labelPosition:s.labelPosition,valuePosition:s.valuePosition,labelFont:s.labelFont,labelFontColor:s.labelFontColor||"#555555",labelLink:s.labellink,hoverColor:s.hoverEffects.hoverColor,hoverAlpha:s.hoverEffects.alpha,borderHoverColor:s.hoverBorderColor,borderHoverAlpha:s.hoverEffects.borderAlpha},s.plotItem={chart:y,index:S,seriesData:k,value:h,pValue:s.pValue,displayValue:s.displayValue||"",angle:s.angle=p,angle1:s.startAngle=r,angle2:s.endAngle=l,slicedX:L(p)*I,slicedY:w(p)*I,sliced:d,labelText:u,toolText:a,name:s.name,link:s.link,percentage:T?h*T/100:0,originalIndex:A-S-1,style:s.style,color:(0,c.toRaphaelColor)(s.color),borderColor:s.borderColor,borderWidth:s.borderWidth,rolloverProperties:s.hoverEffects,radius:O,center:[E,_],innerDiameter:2*R,centerLabelConfig:s.centerLabelConfig,isVisible:s.isVisible,label:s.seriesName,connector:void 0,transX:s.transX=L(p)*I,transY:s.transY=w(p)*I,slicedTranslation:s.slicedTranslation="t"+L(p)*I+","+w(p)*I})},a.parseLabelAttributes=function(e){var t,a,i,o,r,l=this.getFromEnv("chart").config,s=l.dataLabelStyle,h=this.config,u=l.style,d=l.textDirection,g=h.dataLabelOptions;(o=(t=e.config)._textAttrs)||(o=t._textAttrs={}),a=t.y,i=t.displayValue,u=t.style,null!==a&&a!==n&&!1!==t.isVisible&&(i!==n?(u&&((r=t._textCss)||(r=t._textCss={}),r.fontFamily=u.fontFamily,r.fontSize=u.fontSize,r.lineHeight=u.lineHeight,r.fontWeight=u.fontWeight,r.fontStyle=u.fontStyle),t.plotItem.style=t.style=u||(u=s),o.text=i,o.fill=u.color||"#000000",o["text-bound"]=[u.backgroundColor,u.borderColor,u.borderThickness,u.borderPadding,u.borderRadius,u.borderDash],o.direction=d,o["line-height"]=u.lineHeight):o.text=c.BLANKSTRING,t.props.label={attr:o,css:r},t.props.connector={attr:{"stroke-width":g.connectorWidth,stroke:g.connectorColor||"#606060"}})},a.draw=function(){var e,t,a,i,o,r,l,s,h,u,d,g,p,f,m,v,b,x=this.getFromEnv("animationManager"),y=this.getFromEnv("chart").config,C=y.dataLabelStyle,k=this.config,S=k.showShadow,w=this.components,L=w.removeDataArr=w.removeDataArr||[],A=this.getState("visible"),N=w.data||[],E=N.length,_=y.canvasWidth,T=y.canvasHeight,P=y.canvasLeft+.5*_,D=y.canvasTop+.5*T,I=k.handlersAPI.plotDragStart,M=k.handlersAPI.plotDragEnd,O=k.handlersAPI.plotDragMove,V=k.handlersAPI.plotRollOver,B=k.handlersAPI.plotRollOut,G=function(){var e=k.pieCenter||[],t=k.piePlotOptions||[],a={cx:e[0],cy:e[1],r:t.size,r2:.5*(k.innerSize||0)};return function(e){var t,i=!1;for(t in e)if(F(e[t]-a[t])>5){i=!0;break}return i}}(),H=(k.piePlotOptions=this._parsePiePlotOptions()).size,z=.5*(k.innerSize||0),W=this.getFromEnv("toolTipController");for(this.getContainer("pie-groups")||this._createContainer(),s=this.getContainer("plot-group"),h=this.getContainer("plot-shadow-group"),u=this.getContainer("label-group"),d=this.getContainer("connector-shadow-group"),g=this.getContainer("anchor-shadow-group"),this.config.drawn&&(e=G({cx:P,cy:D,r:H,r2:z})&&!1),u.css(C),b=k.valueTotal,A&&b?(s.show(),h.show(),u.show(),d.show(),g.show()):(s.hide(),h.hide(),u.hide(),d.hide(),g.hide()),L.length&&this.removeElement(),t=0;t<E;t+=1)p=(a=N[t]).graphics,m=(f=a.config).y,i=f.toolText,null!==m&&m!==n&&!1!==f.isVisible&&(r=p.element,o=x.setAnimation({el:r||"ringpath",attr:f.props.element.attr,label:"ringpath",props:{startAngle:this.config.startAngle},container:s,component:this}),r||(p.element=o,o.on("fc-dragstart",I).on("fc-dragmove",O).on("fc-dragend",M).on("fc-click",R(this,o)).on("fc-mouseover",V).on("fc-mouseout",B)),v=f.plotItem,l=f.eventArgs,v.graphic=o,o.show().shadow(S&&f.shadow,h).data("plotItem",v).data("dataset",this).data("eventArgs",l),W.enableToolTip(o,i));this.organizeDatalabels(),!this.config.__attachRestoreColor&&this.addExtEventListener("animationComplete",(function(){var t,a;if(e)for(t=0;t<E;t+=1)(a=N[t]).graphics.element&&a.graphics.element.attr({fill:(0,c.toRaphaelColor)(a.config.color)})}),x),this.config.__attachRestoreColor=!0,this.config.drawn=!0},a.sliceInOtherPies=function(e){var t,a=this.components.data,i=a.length,n=0;for(this.enableMultiSlicing=!0;i--;)i!==e&&(t=a[i]).config.sliced&&++n&&this.plotGraphicClick.call(t.graphics);return this.enableMultiSlicing=!1,!!n},a.removeElement=function(){var e,t,a,i,n=this.getFromEnv("animationManager"),o=this.getFromEnv("chart").config,r=this.components.removeDataArr||[],l=r.length,s=this.config,c=o.canvasWidth,h=o.canvasHeight,u=o.canvasLeft+.5*c,d=o.canvasTop+.5*h,g=s.pieMinRadius,p=.5*(s.innerSize||0),f=s.startAngle-P;for(i=0;i<l;i++){for(t in a=r[0].graphics)if(a.hasOwnProperty(t)){if(!(e=a[t]))continue;"element"===t?(n.setAnimation({el:e,attr:{ringpath:[u,d,g,p,f,f+.01],transform:""},callback:W,component:this}),delete a[t]):this.disposeLabelAndConnector(a,[{el:"label",animLabel:"label"},{el:"innerLabel",animLabel:"label"},{el:"connector",animLabel:"connector"}])}r.splice(0,1)}},a.getEventArgs=function(e){var t=e.config.index,a=this.components.data[t].config||{};return{datasetName:a.seriesName,datasetIndex:t,id:a.userID,visible:a.isVisible,label:a.seriesName,value:a.value,percentValue:a.pValue,tooltext:a.toolText,link:a.link,sliced:a.sliced}},a.remove=function(t){var a=this.config.legendItemId,i=this.getFromEnv("legend");i&&a&&i.disposeItem(a),e.prototype.remove.call(this,t)},t}(s["default"]);t["default"]=Y},526:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i={"initial.dataset.pie2D":function(){return{"group.appearing":function(e){return[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:e.component.getFromEnv("chartConfig").alphaanimation?"plot":"initial"}]},"ringpath.appearing":function(e){var t=e.component,a=e.attr.ringpath.slice(0),i=e.attr.ringpath.slice(0),n=e.props.startAngle,o=e.component.config,r=t.getFromEnv("chartConfig"),l=o.animateClockWise;return r.alphaanimation?[{}]:(l&&(i[4]+=2*Math.PI,i[5]+=2*Math.PI),a[4]=n,a[5]=n,[{initialAttr:{ringpath:a},finalAttr:{ringpath:i,transform:""},startEnd:{start:0,end:.75},effect:"linear",slot:"plot"},{initialAttr:{transform:"",ringpath:i},finalAttr:{ringpath:i},startEnd:{start:.75,end:1},effect:"linear",slot:"plot"}])},"label.appearing":[{initialAttr:{opacity:"0"},finalAttr:{opacity:"1"},slot:"final"}],"connector.appearing":function(e){return[{initialAttr:{path:e.attr.path,opacity:"0"},finalAttr:{opacity:"1"},slot:"final"}]},"label.updating":function(e){return[{initialAttr:{x:e.el.attrs.x},slot:"plot"}]}}},"slicing.dataset.pie2D":function(){return{"slice.updating":function(e){return"t0,0"!==(e.attr&&e.attr.transform)?[{initialAttr:{transform:"t0,0"},slot:"plot"}]:[{finalAttr:{transform:"t0,0"},slot:"plot"}]}}}};t["default"]=i},527:function(e,t,a){"use strict";t.__esModule=!0,t.getConnectorPath=t.getQuadrant=t.getCleanAngle=void 0;var i=Math.PI,n=i/2,o=3*i/2,r=2*i,l=function(e){var t=e%r;return t<0?t+r:t};t.getConnectorPath=function(e,t,a){void 0===a&&(a={});var i=a,n=i.isSlanted,o=i.quadrant,r=i.padding,l=i.transX,s=i.transY,c=e.x+l,h=e.y+s,u=t.x+l,d=t.y+s;return["M",c,h,"L",n?u:c,d,u+(1===o||2===o?-1:1)*(r||0),d]},t.getQuadrant=function(e){var t=l(e);return t>=0&&t<n?0:t<i?1:t<o?2:3},t.getCleanAngle=l},529:function(e,t,a){"use strict";t.__esModule=!0,t._manageLegendSpace=function(){var e,t,a,n,o=this.config,r=this.getChildren("legend")&&this.getChildren("legend")[0],l=this.getChildren("gLegend")&&this.getChildren("gLegend")[0],s=this.getFromEnv("dataSource").colorrange,c=o.hasLegend,h={},u=this.hasGradientLegend,d=this.getFromEnv("dataSource").chart,g=(0,i.pluckNumber)(d.mapbycategory,0);u&&s&&(0,i.pluckNumber)(s.gradient)&&!g?(e=l.conf,u=!0,o.gLegendEnabled=!0,n=.5,t=e.legendPosition):(e=r&&r.config,u=!1,o.gLegendEnabled=!1,t=e&&e.legendPos,n=t===i.POSITION_RIGHT?.8:.4);a=t===i.POSITION_RIGHT?o.availableWidth*n:o.availableHeight*n;u?h=this.manageGradientLegendSpace(a):!1!==c&&r&&!r.getState("removed")&&(h=r&&r._manageLegendPosition(a));this._allocateSpace({bottom:h&&h.bottom||0,right:h&&h.right||0})},t.manageGradientLegendSpace=function(e){var t,a,n,o,r=this.config,l=this.getFromEnv("gLegend"),s=l&&l.conf;r.gLegendPadding=(0,i.pluckNumber)(this.getFromEnv("chart-attrib").legendpadding,10),n=Math.min(r.gLegendPadding,.5*e),s?(t=s.legendPosition,o=l.getLogicalSpace(e),a=t===i.POSITION_BOTTOM?{bottom:(o.height||0)+n}:{right:(o.width||0)+n}):a={bottom:0,right:0};return a};var i=a(184)},536:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=function(e){var t,a,i,n=window.parseFloat,o=e._createNode,r=e._setFillAndStroke,l=e.el.constructor,s={Q:"L",Z:"X",q:"l",z:"x",",":" "},c=/,?([achlmqrstvxz]),?/gi,h=function(){return this.join(",").replace(c,t)};e.svg?(t="$1",a=function(){var a=this,i=e.is(arguments[0],"array")?arguments[0]:Array.prototype.slice.call(arguments);i?"string"==typeof i?i=i.replace(c,t):i.toString=h:i="M0,0",a.node.setAttribute("d",i.toString())},e._engine.litepath=function(t,a,i,n,s){var c,h=o("path");return(n||a).canvas.appendChild(h),(c=new l(h,a,n)).type="litepath",c.id=h.raphaelid=e._oid++,h.raphael=!0,r(c,s||{fill:"none",stroke:"#000"}),c},e._getPath.litepath=function(t){return e.parsePathString(t.node.getAttribute("d"))}):e.vml&&(t=function(e,t){return s[t]||t},i=function(){var e=this;return e._transform.apply(e,arguments),e._.bcoord&&(e.node.coordsize=e._.bcoord),e},a=function(e){var a=e;return a?"string"==typeof a?a=a.replace(c,t):a.toString=h:a="M0,0",this.node.path=a,this},e._engine.litepath=function(t,a,r,s,c){var h,u=o("shape"),d=u.style,g=new l(u,a,s),p=c||{fill:"none",stroke:"#000"},f=r;return d.cssText="position:absolute;left:0;top:0;width:21600px;height:21600px;",f=n(f),isNaN(f)?u.coordsize="21600 21600":(g._.bzoom=f,d.width="1px",d.height="1px",u.coordsize=g._.bcoord=f+" "+f),u.coordorigin=a.coordorigin,g.type="litepath",g.id=u.raphaelid=e._oid++,u.raphael=!0,g._transform=g.transform,g.transform=i,e._setFillAndStroke(g,p),(s||a).canvas.appendChild(u),(h=o("skew")).on=!0,u.appendChild(h),g.skew=h,g},e._getPath.litepath=function(t){return e.parsePathString(t.node.path||"")});e.fn.litepath=function(t,i,n){var o,r,s,c=t,h=i,u=n;return"object"==typeof c&&c.constructor!==l&&(o=c,r=(c=c.litepath).zoom,u=c.group),h&&h.constructor===l?(u=h,r=void 0):r=h,c&&c.constructor===l&&(u=c,c=""),(s=e._engine.litepath(c,this,r,u,o)).ca.litepath=a,c&&s.attr("litepath",e.is(c,"array")?[c]:c),this.__set__&&this.__set__.push(s),this._elementsById[s.id]=s}}},545:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=t.setAxisDimention=t.getSpecificyAxisConf=t.getSpecificxAxisConf=t._feedAxesRawData=void 0;var n,o,r,l,s=i(a(198)),c=i(a(508)),h=i(a(546)),u=a(184),d=i(a(547)),g=i(a(479)),p=i(a(425)),f=Math.max;t.setAxisDimention=l,t.getSpecificyAxisConf=r,t.getSpecificxAxisConf=o,t._feedAxesRawData=n;var m=function(e){function t(){var t;return(t=e.call(this)||this).registerFactory("axis",h["default"],["canvas"]),t.registerFactory("dataset",d["default"],["vCanvas"]),t}(0,s["default"])(t,e),t.getName=function(){return"MSDyBaseCartesian"};var a=t.prototype;return a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this),this.config.syncaxislimits=0},a._feedAxesRawData=function(){var e,t,a,i,n,o,r,l,s,c=this.config,h=this.getFromEnv("color-manager"),d=this.getFromEnv("dataSource"),p=this.getFromEnv("chart-attrib"),f=this.config.is3D,m=f?u.chartPaletteStr.chart3D:u.chartPaletteStr.chart2D,v=c.primaryAxisOnleft=(0,u.pluckNumber)(p.primaryaxisonleft,1),b=(0,u.pluckNumber)(p.syncaxislimits,0),x=[{line:[]}],y=[{line:[]}],C=d.trendlines||[],k=(0,u.pluckNumber)(p.showzeroplane,1),S=(0,u.pluckNumber)(p.showzeroplanevalue);for(k||S!==u.UNDEF||(S=0),e=this.getSpecificxAxisConf(),t=this.getSpecificyAxisConf(),a={isActive:!1,isPercent:this.isPercentage,axisIndex:1,uniqueClassName:1,outCanfontFamily:(0,u.pluck)(p.outcnvbasefont,p.basefont,"Verdana,sans"),outCanfontSize:(0,u.pluckFontSize)(p.outcnvbasefontsize,p.basefontsize,10),outCancolor:(0,u.pluck)(p.outcnvbasefontcolor,p.basefontcolor,h.getColor(m.baseFontColor)).replace(/^#? ([a-f0-9]+)/gi,"#$1"),axisNamePadding:p.yaxisnamepadding,axisValuePadding:p.yaxisvaluespadding,axisNameFont:p.syaxisnamefont,axisNameFontSize:p.syaxisnamefontsize,axisNameFontColor:p.syaxisnamefontcolor,axisNameFontBold:p.syaxisnamefontbold,axisNameFontItalic:p.syaxisnamefontitalic,axisNameBgColor:p.syaxisnamebgcolor,axisNameBorderColor:p.syaxisnamebordercolor,axisNameAlpha:p.syaxisnamealpha,axisNameFontAlpha:p.syaxisnamefontalpha,axisNameBgAlpha:p.syaxisnamebgalpha,axisNameBorderAlpha:p.syaxisnameborderalpha,axisNameBorderPadding:p.syaxisnameborderpadding,axisNameBorderRadius:p.syaxisnameborderradius,axisNameBorderThickness:p.syaxisnameborderthickness,axisNameBorderDashed:p.syaxisnameborderdashed,axisNameBorderDashLen:p.syaxisnameborderdashlen,axisNameBorderDashGap:p.syaxisnameborderdashgap,axisNameWidth:p.syaxisnamewidth,useEllipsesWhenOverflow:p.useellipseswhenoverflow,rotateAxisName:(0,u.pluckNumber)(p.rotateyaxisname,1),axisName:p.syaxisname,divLineColor:(0,u.pluck)(p.divlinecolor,h.getColor(m.divLineColor)),divLineAlpha:(0,u.pluck)(p.divlinealpha,h.getColor("divLineAlpha")),divLineThickness:(0,u.pluckNumber)(p.divlinethickness,1),divLineIsDashed:Boolean((0,u.pluckNumber)(p.divlinedashed,p.divlineisdashed,0)),divLineDashLen:(0,u.pluckNumber)(p.divlinedashlen,4),divLineDashGap:(0,u.pluckNumber)(p.divlinedashgap,2),showAlternateGridColor:(0,u.pluckNumber)(p.showalternatehgridcolor,1),alternateGridColor:(0,u.pluck)(p.alternatehgridcolor,h.getColor("altHGridColor")),alternateGridAlpha:(0,u.pluck)(p.alternatehgridalpha,h.getColor("altHGridAlpha")),numDivLines:p.numdivlines,axisMinValue:b?(0,u.pluckNumber)(p.syaxisminvalue,p.pyaxisminvalue,p.yaxisminvalue):p.syaxisminvalue,axisMaxValue:b?(0,u.pluckNumber)(p.syaxismaxvalue,p.pyaxismaxvalue,p.yaxismaxvalue):p.syaxismaxvalue,setAdaptiveMin:p.setadaptivesymin||p.setadaptiveymin,adjustDiv:p.adjustdiv,labelStep:p.yaxisvaluesstep,showAxisValues:(0,u.pluckNumber)(p.showsyaxisvalues,p.showsyaxisvalue,p.showyaxisvalues,p.showyaxisvalue),showLimits:(0,u.pluckNumber)(p.showsecondarylimits,p.showyaxislimits,p.showlimits),showDivLineValues:(0,u.pluckNumber)(p.showdivlinesecondaryvalue,p.showyaxisvalues,p.showyaxisvalue,1),showZeroPlane:k,zeroPlaneColor:p.zeroplanecolor,zeroPlaneThickness:(0,u.pluckNumber)(p.zeroplanethickness,p.divlinethickness,2),zeroPlaneAlpha:p.zeroplanealpha,showZeroPlaneValue:S,trendlineColor:p.trendlinecolor,trendlineToolText:p.trendlinetooltext,trendlineThickness:p.trendlinethickness,trendlineAlpha:p.trendlinealpha,showTrendlinesOnTop:p.showtrendlinesontop,showAxisLine:f?0:(0,u.pluckNumber)(p.showsyaxisline,p.showaxislines,p.drawAxisLines,0),axisLineThickness:(0,u.pluckNumber)(p.syaxislinethickness,p.axislinethickness,1),axisLineAlpha:(0,u.pluckNumber)(p.syaxislinealpha,p.axislinealpha,100),axisLineColor:(0,u.pluck)(p.syaxislinecolor,p.axislinecolor,"#000000"),labelFont:p.yaxisvaluefont,labelFontSize:p.yaxisvaluefontsize,labelFontColor:p.yaxisvaluefontcolor,labelAlpha:p.yaxisvaluealpha,labelFontBold:p.yaxisvaluefontbold,labelFontItalic:p.yaxisvaluefontitalic,labelBdrColor:p.yaxisvaluebordercolor,labelBdrAlpha:p.yaxisvalueborderalpha,labelBgAlpha:p.yaxisvaluebgalpha,labelLink:p.yaxisvaluelink,labelBgColor:p.yaxisvaluebgcolor,labelBdrThickness:p.yaxisvalueborderthickness,labelBdrPadding:p.yaxisvalueborderpadding,labelBdrRadius:p.yaxisvalueborderradius,labelBdrDashed:p.yaxisvalueborderdashed,labelBdrDashLen:p.yaxisvalueborderdashlen,labelBdrDashGap:p.yaxisvalueborderdashgap},e.vtrendlines=(0,u.extend2)([],d.vtrendlines),l=0,r=C.length;l<r;l++)for(o=(i=C[l]&&C[l].line||[]).length,s=0;s<o;s++)n=i[s]||{},(0,g["default"])(n.parentyaxis,"s")?x[0].line.push(n):y[0].line.push(n);return t.trendlines=(0,u.extend2)([],y),a.trendlines=(0,u.extend2)([],x),1===v?(t.isVertical=!0,t.isReverse=!0,t.isOpposit=!1,a.isVertical=!0,a.isReverse=!0,a.isOpposit=!0):(t.isVertical=!0,t.isReverse=!0,t.isOpposit=!0,a.isVertical=!0,a.isReverse=!0,a.isOpposit=!1),{yAxisConf:[t,a],xAxisConf:[e]}},a.getSpecificxAxisConf=function(){var e=this.getFromEnv("chart-attrib"),t=this.config.is3D,a=this.getBasexAxisConf(),i=this.config;return a.zeroPlaneThickness=(0,u.pluckNumber)(e.vzeroplanethickness,e.vdivlinethickness,2),a.zeroPlaneAlpha=(0,u.pluckNumber)(e.vzeroplanealpha,e.vdivlinealpha,i.zeroplanealpha),a.showZeroPlaneValue=e.showvzeroplanevalue,a.showAxisLine=t?0:(0,u.pluckNumber)(e.showxaxisline,e.showaxislines,e.drawAxisLines,0),a.axisLineColor=(0,u.pluck)(e.xaxislinecolor,e.axislinecolor,"#000000"),a.isReverse=!1,a.showAlternateGridColor=(0,u.pluckNumber)(e.showalternatevgridcolor,0),a.numDivLines=e.numvdivlines,a.maxLabelHeight=e.maxlabelheight,a.axisName=e.xaxisname,a.setAdaptiveMin=e.setadaptivexmin,a.showLimits=e.showvlimits,a.showDivLineValues=(0,u.pluckNumber)(e.showvdivlinevalues,e.showvdivlinevalues),a},a.getSpecificyAxisConf=function(){var e=this.getFromEnv("chart-attrib"),t=this.config.is3D,a=t?u.chartPaletteStr.chart3D:u.chartPaletteStr.chart2D,i=this.config,n=this.getFromEnv("color-manager"),o=(0,u.pluckNumber)(e.syncaxislimits,0),r=(0,u.pluckNumber)(e.showzeroplane,1),l=(0,u.pluckNumber)(e.showzeroplanevalue);return r||l!==u.UNDEF||(l=0),{outCanfontFamily:(0,u.pluck)(e.outcnvbasefont,e.basefont,"Verdana,sans"),outCanfontSize:(0,u.pluckFontSize)(e.outcnvbasefontsize,e.basefontsize,10),outCancolor:(0,u.pluck)(e.outcnvbasefontcolor,e.basefontcolor,n.getColor(a.baseFontColor)).replace(/^#? ([a-f0-9]+)/gi,"#$1"),axisNamePadding:(0,u.pluckNumber)(e.pyaxisnamepadding,e.yaxisnamepadding),axisValuePadding:(0,u.pluckNumber)(e.pyaxisvaluespadding,e.yaxisvaluespadding),axisNameFont:(0,u.pluck)(e.pyaxisnamefont,e.yaxisnamefont),axisNameFontSize:(0,u.pluckNumber)(e.pyaxisnamefontsize,e.yaxisnamefontsize),axisNameFontColor:(0,u.pluck)(e.pyaxisnamefontcolor,e.yaxisnamefontcolor),axisNameFontBold:(0,u.pluckNumber)(e.pyaxisnamefontbold,e.yaxisnamefontbold),axisNameFontItalic:(0,u.pluckNumber)(e.pyaxisnamefontitalic,e.yaxisnamefontitalic),axisNameBgColor:(0,u.pluck)(e.pyaxisnamebgcolor,e.yaxisnamebgcolor),axisNameBorderColor:(0,u.pluck)(e.pyaxisnamebordercolor,e.yaxisnamebordercolor),axisNameAlpha:(0,u.pluckNumber)(e.pyaxisnamealpha,e.yaxisnamealpha),axisNameFontAlpha:(0,u.pluckNumber)(e.pyaxisnamefontalpha,e.yaxisnamefontalpha),axisNameBgAlpha:(0,u.pluckNumber)(e.pyaxisnamebgalpha,e.yaxisnamebgalpha),axisNameBorderAlpha:(0,u.pluckNumber)(e.pyaxisnameborderalpha,e.yaxisnameborderalpha),axisNameBorderPadding:(0,u.pluckNumber)(e.pyaxisnameborderpadding,e.yaxisnameborderpadding),axisNameBorderRadius:(0,u.pluckNumber)(e.pyaxisnameborderradius,e.yaxisnameborderradius),axisNameBorderThickness:(0,u.pluckNumber)(e.pyaxisnameborderthickness,e.yaxisnameborderthickness),axisNameBorderDashed:(0,u.pluckNumber)(e.pyaxisnameborderdashed,e.yaxisnameborderdashed),axisNameBorderDashLen:(0,u.pluckNumber)(e.pyaxisnameborderdashlen,e.yaxisnameborderdashlen),axisNameBorderDashGap:(0,u.pluckNumber)(e.pyaxisnameborderdashgap,e.yaxisnameborderdashgap),axisNameWidth:(0,u.pluckNumber)(e.pyaxisnamewidth,e.yaxisnamewidth),useEllipsesWhenOverflow:e.useellipseswhenoverflow,rotateAxisName:(0,u.pluckNumber)(e.rotateyaxisname,1),axisName:(0,u.pluck)(e.pyaxisname,e.yaxisname),divLineColor:(0,u.pluck)(e.divlinecolor,n.getColor(a.divLineColor)),divLineAlpha:(0,u.pluck)(e.divlinealpha,n.getColor("divLineAlpha")),divLineThickness:(0,u.pluckNumber)(e.divlinethickness,1),divLineIsDashed:Boolean((0,u.pluckNumber)(e.divlinedashed,e.divlineisdashed,0)),divLineDashLen:(0,u.pluckNumber)(e.divlinedashlen,4),divLineDashGap:(0,u.pluckNumber)(e.divlinedashgap,2),showAlternateGridColor:(0,u.pluckNumber)(e.showalternatehgridcolor,1),alternateGridColor:(0,u.pluck)(e.alternatehgridcolor,n.getColor("altHGridColor")),alternateGridAlpha:(0,u.pluck)(e.alternatehgridalpha,n.getColor("altHGridAlpha")),numDivLines:e.numdivlines,axisMinValue:o?(0,u.pluckNumber)(e.syaxisminvalue,e.pyaxisminvalue,e.yaxisminvalue):(0,u.pluckNumber)(e.pyaxisminvalue,e.yaxisminvalue),axisMaxValue:o?(0,u.pluckNumber)(e.syaxismaxvalue,e.pyaxismaxvalue,e.yaxismaxvalue):(0,u.pluckNumber)(e.pyaxismaxvalue,e.yaxismaxvalue),setAdaptiveMin:e.setadaptiveymin,adjustDiv:e.adjustdiv,labelStep:e.yaxisvaluesstep,showAxisValues:(0,u.pluckNumber)(e.showyaxisvalues,e.showyaxisvalue),showLimits:(0,u.pluckNumber)(e.showyaxislimits,e.showlimits,this.showLimits),showDivLineValues:(0,u.pluckNumber)(e.showdivlinevalues,e.showdivlinevalue),showZeroPlane:r,zeroPlaneColor:e.zeroplanecolor,zeroPlaneThickness:(0,u.pluckNumber)(e.zeroplanethickness,e.divlinethickness,i.zeroplanethickness,2),zeroPlaneAlpha:(0,u.pluckNumber)(e.zeroplanealpha,e.divlinealpha,i.zeroplanealpha),showZeroPlaneValue:l,showZeroPlaneOnTop:i.showzeroplaneontop,trendlineColor:e.trendlinecolor,trendlineToolText:e.trendlinetooltext,trendlineThickness:e.trendlinethickness,trendlineAlpha:e.trendlinealpha,showTrendlinesOnTop:e.showtrendlinesontop,showAxisLine:t?0:(0,u.pluckNumber)(e.showyaxisline,e.showaxislines,e.drawAxisLines,0),axisLineThickness:(0,u.pluckNumber)(e.yaxislinethickness,e.axislinethickness,1),axisLineAlpha:(0,u.pluckNumber)(e.yaxislinealpha,e.axislinealpha,100),axisLineColor:(0,u.pluck)(e.yaxislinecolor,e.axislinecolor,"#000000"),forceTrendBelow:!!i.is3D,labelFont:e.yaxisvaluefont,labelFontSize:e.yaxisvaluefontsize,labelFontColor:e.yaxisvaluefontcolor,labelAlpha:e.yaxisvaluealpha,labelFontBold:e.yaxisvaluefontbold,labelFontItalic:e.yaxisvaluefontitalic,labelBdrColor:e.yaxisvaluebordercolor,labelBgAlpha:e.yaxisvaluebgalpha,labelBdrAlpha:e.yaxisvalueborderalpha,labelLink:e.yaxisvaluelink,labelBgColor:e.yaxisvaluebgcolor,labelBdrThickness:e.yaxisvalueborderthickness,labelBdrPadding:e.yaxisvalueborderpadding,labelBdrRadius:e.yaxisvalueborderradius,labelBdrDashed:e.yaxisvalueborderdashed,labelBdrDashLen:e.yaxisvalueborderdashlen,labelBdrDashGap:e.yaxisvalueborderdashgap}},a.setAxisDimention=function(){var e,t,a=this.config,i=this.getChildren(),n=i.yAxis,o=i.xAxis&&i.xAxis[0],r=n[0],l=n[1],s=a.xDepth||0,c=i.canvas[0].config,h=c.canvasBorderWidth,u=c.canvasPadding,d=c.canvasPaddingLeft,g=c.canvasPaddingRight,p=c.canvasPaddingTop,m=a.shift||0,v=a.sumValueSpace&&a.sumValueSpace.top||0,b=a.primaryAxisOnleft,x=c.canvasPaddingBottom,y=f(d,u);o&&o.setAxisDimention({x:a.canvasLeft+s+y,y:o.config.isOpposit?a.canvasTop-h-(a.is3D?0:m)-v:a.canvasBottom+m+h,opposite:o.config.isOpposit?a.canvasBottom+m+h:a.canvasTop-h,axisLength:a.canvasWidth-s-y-f(g,u)}),b?(a.yAxisStartXPos=a.canvasLeft-h,a.sYAxisStartXPos=a.canvasRight+h):(a.yAxisStartXPos=a.canvasRight+h,a.sYAxisStartXPos=a.canvasLeft-h),e=a.yAxisStartXPos,t=a.sYAxisStartXPos,r&&r.setAxisDimention({x:e,y:a.canvasTop+p,opposite:t,axisLength:a.canvasHeight-p-x}),l&&l.setAxisDimention({x:t,y:a.canvasTop+p,opposite:e,axisLength:a.canvasHeight-p-x})},a._manageYAxisSpace=function(){var e,t,a,i=this.config,n=this.getChildren("yAxis"),o=[],r=0;for(t=0;t<(n&&n.length);t++)a=(e=n[t])&&e.placeAxis(.7*(i.availableWidth-r))||{},0===t&&(r=a.left),o.push({axisIndex:t,spaceTaken:a});n&&n[0]&&this._allocateSpace({left:(0,p["default"])(o,(function(e){return e.spaceTaken.left})),right:(0,p["default"])(o,(function(e){return e.spaceTaken.right}))}),i.yAxisSpaceAllocation=o},t}(c["default"]);t._feedAxesRawData=n=m.prototype._feedAxesRawData,t.getSpecificxAxisConf=o=m.prototype.getSpecificxAxisConf,t.getSpecificyAxisConf=r=m.prototype.getSpecificyAxisConf,t.setAxisDimention=l=m.prototype.setAxisDimention;var v=m;t["default"]=v},546:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=function(e){var t,a,i,l=e.getChildren("canvas")[0],s=function(e,t){return JSON.stringify(e)!==JSON.stringify(t)},c={zoomable:!0,pannable:!0},h=!!Number(e.config.syncaxislimits),u=l.getChildren("axisRefVisualCartesian")[0],d=e._feedAxesRawData(),g=function(e){var t=e.sender;u.addexplicitDrawItems(t.getId(),t),u.asyncDraw()};(0,n.componentFactory)(e,r["default"],"xAxis",1,d.xAxisConf),(0,n.componentFactory)(e,o["default"],"yAxis",2,d.yAxisConf),t=e.getChildren(),a=t.xAxis[0],(i=t.yAxis).forEach((function(t){t.setLinkedItem("canvas",l),u.setLinkedItem(t.getId(),t),u.addExtEventListener("visiblerangeset",g,t),l.attachAxis(t,!0,e.zoomY?c:{})})),a.setLinkedItem("canvas",l),u.setLinkedItem(a.getId(),a),i[1].setAxisConfig({dependentInfo:{id:i[0].getId(),count:!0,limit:h}}),i[1].getState("divlineEventAdded")||(i[1].addExtEventListener("divlinesSet",(function(e){var t=i[1].config.dependentInfo;e.sender.getId()===t.id&&(t.numDivLines=e.data)}),i[0]),i[1].setState("divlineEventAdded",!0));h&&(i[1].getState("dataLimitEventAdded")||(i[1].addExtEventListener("dataLimitSet",(function(e){var t=i[1].config.dependentInfo;e.sender.getId()===t.id&&s(t.dataLimit,e.data)&&(t.dataLimit=e.data,i[1].config.isDataLimitSet&&i[1].setDataLimit())}),i[0]),i[1].setState("dataLimitEventAdded",!0)),i[0].setAxisConfig({dependentInfo:{id:i[1].getId(),limit:!0}}),i[0].getState("dataLimitEventAdded")||(i[0].addExtEventListener("dataLimitSet",(function(e){var t=i[0].config.dependentInfo;e.sender.getId()===t.id&&s(t.dataLimit,e.data)&&(t.dataLimit=e.data,i[0].setDataLimit())}),i[1]),i[0].setState("dataLimitEventAdded",!0)));u.addExtEventListener("visiblerangeset",g,a),l.attachAxis(a,!1,e.zoomX?c:{}),e._setCategories()};var n=a(184),o=i(a(422)),r=i(a(470))},547:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=function(e){var t,a,r,l,s,c,h,u,d,g,p=e.getFromEnv("dataSource").dataset,f=e.getChildren().canvas[0].getChildren("vCanvas"),m=f[0],v=f[1],b=e.getFromEnv("chartConfig").isdual,x={vCanvasDatasetsDef0:{},vCanvasDatasetsDef1:{}},y={vCanvas0:{},vCanvas1:{}};p||e.setChartMessage();for(a=0;a<p.length;a++)t=p[a],"s"===(u=t.parentyaxis||"").toLowerCase()&&b?(h=(0,i.pluck)(t.renderas,e.config.sDefaultDatasetType),d=v,g=y.vCanvas1,l=x.vCanvasDatasetsDef1):(h=(0,i.pluck)(t.renderas,e.config.defaultDatasetType),d=m,g=y.vCanvas0,l=x.vCanvasDatasetsDef0),h=e.getDSType(h,"s"===u.toLowerCase()),(c=e.getDSGroupdef(h,"s"===u.toLowerCase()))&&((0,i.componentFactory)(d,c,o),g[c.getName().toLowerCase()]=!0),g[h.toLowerCase()]=!0,l[h]?(l[h].conf.push(t),l[h].indices.push(a)):(l[h]={},l[h].indices=[a],l[h].classDef=e.getDSdef(h),l[h].conf=[t],l[h].pYAxis=u.toLowerCase(),l[h].parent=c?d.getChildren(o)[0]:d);for(var C in e.config._hascolumn=!1,x)if(x.hasOwnProperty(C))for(h in l=x[C])l.hasOwnProperty(h)&&("group"===(s=l[h]).parent.getType()&&s.parent.configure(s.conf),(0,i.datasetFactory)(s.parent,s.classDef,"dataset_"+h,s.conf.length,s.conf,s.indices),"column"===h&&(e.config._hascolumn=!0));(r=e.getDatasets()).sort((function(e,t){var a=e.getName(),i=t.getName(),n={line:1,area:2,column:3};return n[a]>n[i]?-1:n[a]<n[i]?1:0})),e.config.datasetOrder=r,(0,n.removeComponents)(f[0],Object.keys(y.vCanvas0)),(0,n.removeComponents)(f[1],Object.keys(y.vCanvas1))};var i=a(184),n=a(548),o="multiseriesColumnManager"},548:function(e,t,a){"use strict";t.__esModule=!0,t.removeComponents=void 0;t.removeComponents=function(e,t){e&&e.iterateComponents((function(e){-1!==t.indexOf(e.getName().toLowerCase())||e.getLinkedParent().getState("removed")||e.remove()}))}},560:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(499)),r=a(184),l=i(a(561)),s=a(192),c=a(562),h=i(a(563)),u=r.preDefStr.setRolloverAttrStr,d=r.preDefStr.setRolloutAttrStr;(0,s.addDep)({name:"mssplineareaAnimation",type:"animationRule",extension:h["default"]});var g=function(e){function t(){var t;return(t=e.call(this)||this).drawCommonElements=r.stubFN,t}(0,n["default"])(t,e);var a=t.prototype;return a.getType=function(){return"dataset"},a.configureAttributes=function(t){e.prototype.configureAttributes&&e.prototype.configureAttributes.call(this,t),l["default"].call(this)},a.getDataLimits=function(){return{max:this.config.maxValue,min:this.config.minValue}},a.drawPlots=function(){var e,t,a,i,n,o,l,s,h,g,p,f,m,v,b,x,y,C,k,S,w,L,A,N,F,E=this.config,_=this.getFromEnv("chart"),T=_.config,P=this.getFromEnv("xAxis"),D=null,I=[],M=this.components.data,O=T.connectnulldata,R=T.minimizetendency,V=E.plotBorderDashStyle,B=E.plotborderthickness,G=this.getContainer(),H=[],z=this.getGraphicalElement("splineElement"),W=E.fillColor,j=this.components.removeDataArr||[],U=j.length,q=G&&G.shadowGroup,Y=E.shadow,X=this.getState("visible"),K={},Z=!T.drawfullareaborder,J=E.plotborderColorObject,$=this.getGraphicalElement("connector"),Q=this.getFromEnv("animationManager"),ee=E._oldStartIndex,te=E._oldEndIndex,ae=this.config.JSONData.renderas||_.config.defaultDatasetType,ie=/area/gi.test(ae);for(E.imagesLoaded=0,M||(M=this.components.data),e=P.getTicksLen(),N=E.scrollMinVal,F=E.scrollMaxVal,N>ee&&this.flushOnScroll(ee,N>te?te:N),F<te&&this.flushOnScroll(F<ee?ee:F,te),E._oldStartIndex=N,E._oldEndIndex=F,t=N;t<F;t++)(h=M[t])&&(f=(s=h&&h.config).setValue,k=(K=s.anchorProps).shadow,g=h.graphics.element,p=h.graphics.hotElement,w=h.graphics.image,null===f?(g&&g.hide(),p&&p.hide(),w&&w.hide(),O||(D=null)):(n=s._Py,i=s._Px,!1===X&&(n=s._Pby),I.push({x:i,y:n,lastXPos:o,lastYPos:D}),o=i,D=n,b=K.anchorAlpha,C=K.radius&&b,v=s.hoverEffects,y=g?X&&C?"updating":"disappearing":"appearing",K.imageUrl?this.drawAnchorImage(h):(x=Object.assign({},s.props.element.attr),"disappearing"!==y&&X||(x=r.UNDEF),g=h.graphics.element=Q.setAnimation({el:g||"path",attr:x,container:G.plotGroup,component:this,label:"anchor"}),w&&w.hide(),g&&g.show().shadow(k,G.anchorShadowGroup).data("anchorRadius",K.radius).data("anchorHoverRadius",v.anchorRadius).data("eventArgs",s.eventArgs),v.enabled&&g&&g.data("anchorRadius",K.radius).data("anchorHoverRadius",v.anchorRadius).data("hoverEnabled",v.enabled).data(u,v.attrs.setRolloverAttr).data(d,v.attrs.setRolloutAttr))));for(a=e,L={path:H=(H=(l=(0,c.getSplinePath)(I,s&&s._Pby,R,ie,a)).closedPath).join(),stroke:(0,r.toRaphaelColor)(J),"stroke-width":Z?0:B,fill:(0,r.toRaphaelColor)(W),"stroke-linecap":"round","stroke-linejoin":B>2?"round":"miter","stroke-dasharray":V},this.getState("visible")||(L=r.UNDEF),!(m=Q.setAnimation({el:z||"path",attr:L,container:G.commonElemsGroup,component:this,label:"line"}))&&z&&this.removeGraphicalElement(z),z||this.addGraphicalElement("splineElement",m),""!==H&&this.getState("visible")?m.show().shadow(Y,q):m&&m.hide(),Z?(A={path:l.openPath.join(),stroke:(0,r.toRaphaelColor)(J),"stroke-width":B,"stroke-linecap":"round","stroke-linejoin":B>2?"round":"miter","stroke-dasharray":V,name:"connector"},S=Q.setAnimation({el:$||"path",attr:A,container:G.commonElemsGroup,state:$?this.getState("visible")?"updating":"disappearing":"appearing",component:this,label:"connectorLine"}),$||this.addGraphicalElement("connector",S)):S&&this.removeGraphicalElement(S),t=0;t<U;t++)this._removeDataVisuals(j.shift())},a.getName=function(){return"splinearea"},t}(o["default"]);t["default"]=g},561:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=a(184),n=function(e,t,a){var i,n,r,l,s={};for(n=0;n<e.length;++n)s["D"+e[n].index]=0;for(i=0;i<10;++i)for(n=0;n<e.length;++n)r=0===n?(3*(e[n+1].y-e[n].y)-s["D"+e[n+1].index])/2:n===e.length-1?(3*(e[n].y-e[n-1].y)-s["D"+e[n-1].index])/2:(3*(e[n+1].y-e[n-1].y)-s["D"+e[n+1].index]-s["D"+e[n-1].index])/4,s["D"+e[n].index]=r;for(l=Math.round(t/(e.length-1)),n=1;n<e.length;++n)o(n,e,s,a,l)},o=function(e,t,a,i,n){var o,r,l,s,c,h,u,d,g,p,f,m,v=t,b=e;for(o=a["D"+v[0].index],r=a["D"+v[b].index],l=v[0].y,s=o,c=3*(v[b].y-v[0].y)-2*o-r,h=2*(v[0].y-v[b].y)+o+r,u=i.max,d=i.min,g=0,p=n;g<=p;g++)(m=l+s*(f=g/p)+c*f*f+h*f*f*f)<d&&(d=m),m>u&&(u=m);i.max=u,i.min=d},r=function(){var e,t=this.config,a=this.getFromEnv("chart"),o=this.getFromEnv("chartConfig"),r=a.config.origRenderWidth,l=o.connectnulldata,s=o.minimizetendency,c=this.components.data,h=Number.MIN_VALUE,u=Number.MAX_VALUE;0===s&&(e=function d(e,t,a,i,o){var r=[],l=!1,s=i||0,c=o;for(c=c||{max:Number.MIN_VALUE,min:Number.MAX_VALUE};s<e.length;++s)if(l){if(isNaN(e[s].config.setValue)||null===e[s].config.setValue){if(a)continue;break}r.push({index:s,y:e[s].config.setValue})}else{if(isNaN(e[s].config.setValue)||null===e[s].config.setValue)continue;l=!0,r.push({index:s,y:e[s].config.setValue})}return r.length>2&&n(r,t,c),s<e.length&&!a&&d(e,t,a,s,c),c}(c,r,l),t.maxValue=Math.max(t.maxValue,e.max),t.minValue=Math.min(t.minValue,e.min),t.maxValue===h&&(t.maxValue=i.UNDEF),t.minValue===u&&(t.minValue=i.UNDEF))};t["default"]=r},562:function(e,t,a){"use strict";t.__esModule=!0,t.getSplinePath=function(e,t,a,l,s){var c,f,m,v,b,x,y,C,k,S,w,L,A,N,F,E,_,T,P,D,I,M,O,R,V,B,G=a,H=[null],z=[],W=[];for(V=0,B=e.length;V<B;V+=1)A=e[V],O=e[V-1]||{},R=e[V+1]||{},x=A.x,m=A.y,y=O.x,v=O.y,C=R.x,b=R.y,k=A.lastYPos,S=A.lastXPos,P=z.length,w=W.length,G?null!==k?(f=I,V===e.length-1?(T=H[V-D-1],_=u(E=N=(x+y)/2,T,y,v),(v>m&&_<m||v<m&&_>m)&&(E=d(_=m,T,y,v)),I.push(E,_,N,(m+v)/2,x,m),z.push(I),W.push(I),l&&p(z,!0,M,t),l&&p(W,!1)):(T=H[V-D-1],v>m&&b>=m||v<m&&b<=m?(L=0,N=g(y,v,x,m),F=m,V-D!=1?(_=u(E=N,T,y,v),(v>m&&_<m||v<m&&_>m)&&(E=d(_=m,T,y,v)),I.push(E,_,N,F,x,m)):I.push((x+y)/2,(m+v)/2,N,F,x,m)):v===m?(L=0,I.push(y,v,x,m,x,m)):(v>m&&m>b||v<m&&m<b)&&(L=h(y,v,C,b),N=g(y,v,x,m),F=u(N,L,x,m),(v>m&&F>v||v<m&&F<v)&&(N=d(F=v,L,x,m)),V-D!=1?(_=u(E=N,T,y,v),(v>m&&_<m||v<m&&_>m)&&(E=d(_=m,T,y,v)),I.push(E,_,N,F,x,m)):I.push((x+y)/2,(m+v)/2,N,F,x,m)),H.push(L))):null===k&&0!==V?(f||(f=[]),f[0]===r&&(z.push(I),W.push(I),l&&p(z,!0,M,t),l&&p(W,!1)),z.push([i,x,m]),W.push([i,x,m]),M=x,I=[r],D=V,H=[null]):(z.push([i,x,m]),W.push([i,x,m]),M=x,I=[r],D=V):null!==k?P>=2?(z[P-1][0]===i&&z.push([o]),W[w-1][0]===i&&W.push([o]),P=z.length,w=W.length,f=z[P-1],c=f.length,z[P-1].push(x),z[P-1].push(m),W[w-1].push(x),W[w-1].push(m),V===s-1&&f[0]===o&&(p(z,!0,M,t),p(W,!1))):(z.push([i,S,k]),z.push([o,x,m]),W.push([i,S,k]),W.push([o,x,m]),M=S):null===k&&P>=2&&((f=z[P-1])[0]===o&&(p(z,!0,M,t),p(W,!1)),z.push([i,x,m]),W.push([i,x,m]),M=x);f=z[z.length-1],l&&f&&(c=f.length,f[c-1]===n||f[0]!==o&&f[0]!==r||(p(z,!0,M,t),p(W,!1)));l||(z=G?z:W).length>=2&&p(z,!1);return{closedPath:z,openPath:W}};var i="M",n="Z",o="R",r="C",l=Math,s=l.sqrt,c=l.abs,h=function(e,t,a,i){return(i-t)/(a-e)},u=function(e,t,a,i){return(e-a)*t+i},d=function(e,t,a,i){return(e-i)/t+a},g=function(e,t,a,i){var n=(i-t)/s((a-e)*(a-e)+(i-t)*(i-t)),o=c(.5*n);return e*o+a*(1-o)},p=function(e,t,a,i){var l=e.length,s=e[l-1],c=s.length,h=s[0],u=s[c-2];c<3||(h!==o&&h!==r||3!==c||(e[l-1][0]="L"),t&&e.push(["L",u,i,a,i,n]))}},563:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=a(184),n="L",o="Z";function r(e){var t,a,r,l=e.length,s=[],c=!1,h=!0;for(r=0;r<l;++r)t=e[r],h?(s.push(t),a=(0,i.extend2)([],t),h=!1):t!==o?c||(s.push(t),t.toString()===e[r-1].toString()&&(c=!0)):(h=!0,c=!1,a[0]=n,s.push(a,o));return s}function l(e){var t=e.component,a=t.components.data,i=t.getLinePath(a,null,"zero"),n=i.getPathArr().slice(0,i.getPathArr().length/2),o=e.attr;return[{initialAttr:{opacity:0,path:n},finalAttr:{opacity:1,path:o&&o.path},startEnd:{start:0,end:.5},slot:"plot",hookFn:function(){this.attr({opacity:1})}}]}function s(e){return"label-group"===e.attr.name?[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}]:"plot-group"===e.attr.name?[{initialAttr:{opacity:0},finalAttr:{opacity:1},startEnd:{start:.5,end:1},slot:"plot"}]:[{initialAttr:{opacity:1},finalAttr:{opacity:1},slot:"final"}]}function c(){return[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}]}function h(e){var t=e.component,a=t.components.data,i=t.getLinePath(a,null,"zero"),n=e.attr;return[{initialAttr:{opacity:0,path:r(i.getPathArr())},finalAttr:{opacity:1,path:n&&n.path},startEnd:{start:0,end:.5},slot:"plot",hookFn:function(){this.attr({opacity:1})}}]}var u={"*.dataset.splinearea":function(){return{"anchor.appearing":[{initialAttr:{opacity:0},finalAttr:{opacity:1},startEnd:{start:.5,end:1},slot:"plot"}],"anchor.updating":[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}],"anchor.disappearing":[{finalAttr:{opacity:0,"fill-opacity":0,"stroke-opacity":0},slot:"final"}],"line.appearing":h,"label.appearing":[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}],"label.updating":c,"group.appearing":s,"connectorLine.appearing":l}}};t["default"]=u},564:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(498)),r=a(184),l=i(a(561)),s=a(192),c=a(562),h=i(a(565));(0,s.addDep)({name:"mssplineAnimation",type:"animationRule",extension:h["default"]});var u=function(e){function t(){return e.apply(this,arguments)||this}(0,n["default"])(t,e);var a=t.prototype;return a.getType=function(){return"dataset"},a.getName=function(){return"spline"},a.configureAttributes=function(t){e.prototype.configureAttributes&&e.prototype.configureAttributes.call(this,t),l["default"].call(this)},a.getDataLimits=function(){return{max:this.config.maxValue,min:this.config.minValue}},a.drawCommonElements=function(){var e,t,a,i,n,o=this.components.data,l=this.config,s=Number(this.getFromEnv("chartConfig").connectnulldata),h=this.getFromEnv("xAxis"),u=this.getFromEnv("yAxis"),d=l.lineDashStyle,g=l.linethickness,p=[],f=null,m={color:l.linecolor,alpha:l.alpha},v={x:h.getLimit(),y:u.getLimit()},b=this.getState("visible")?o.length:0,x=l.lineOb||{},y=[],C=this.getFromEnv("chart"),k=/area/gi.test(C.defaultDatasetType);for(v.x.minPixel=h.getPixel(v.x.min),v.x.maxPixel=h.getPixel(v.x.max),v.y.minPixel=u.getPixel(v.y.min),v.y.maxPixel=u.getPixel(v.y.max),v.y.base=u.getPixel(0),v.x.base=h.getPixel(0),t=0;t<b;++t)(a=o[t])&&(n=(i=a.config||{}).setValue,i._Pbx=void 0,i._Pby=void 0,y[t]={config:{_Px:i._Px,_Py:i._Py,setValue:i.setValue}},null!=n?(p.push({x:i._Px,y:i._Py,lastYPos:f,lastXPos:e}),f=i._Py,e=i._Px):s||(f=null));l.pathStartIndex=0,l.pathEndIndex=void 0,x["default"]=x["default"]||{},x["default"].used=!0,x["default"].path=[{pathArr:(0,c.getSplinePath)(p,u.getPixel(u.getAxisBase()),C.config.minimizetendency,k).closedPath,path2Arr:[],getPathArr:function(){var e=this.pathArr,t=this.path2Arr;return e.length||t.length?e.concat(t):[]}}],x["default"].attr={"stroke-dasharray":d,"stroke-width":g,stroke:(0,r.toRaphaelColor)(m),"stroke-linecap":"round"},this._drawCommonElementsHelper(x),this.config.lineOb=x,l.prevLim=v,l.prevDataStore=y},t}(o["default"]);t["default"]=u},565:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n={"*.dataset.spline":i(a(501))["default"]["*.dataset.line"]};t["default"]=n},566:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=a(199),r=a(184),l=Math,s=l.min,c=l.max,h=l.abs,u=function(e){function t(){var t;return(t=e.call(this)||this).setState("visible",!0),t}(0,n["default"])(t,e);var a=t.prototype;return a.getType=function(){return"group"},t.getName=function(){return"columnMultiSeriesgroup"},a.getName=function(){return"columnMultiSeriesgroup"},a.preConfigure=function(t){if(!t)return!1;this.config.JSONData=t,e.prototype.preConfigure.call(this,t)},a.configure=function(t){if(!t)return!1;e.prototype.configure.call(this,t)},a.setVisibility=function(){var e=0;this._mapChildren((function(e){e.setVisibility&&e.setVisibility()})),this._mapChildren((function(t){t.getState("visible")&&e++})),this.setState("visible",!!e)},a.createContainer=function(){var e,t,a=this.getFromEnv("animationManager"),i=this.getLinkedParent().getChildContainer();for(e in i)t=i[e],!this.getChildContainer(e)&&this.addChildContainer(e,a.setAnimation({el:"group",attr:{name:"manager-"+e},component:this,container:t}))},a.allocatePosition=function(){this.setColumnPosition()},a.draw=function(){this.createContainer()},a.getCanvasPadding=function(){var e,t,a={paddingLeft:0,paddingRight:0,paddingTop:0,paddingBottom:0};return this.setColumnPosition(),this._mapChildren((function(i){for(t in e=!i.getState("removed")&&i.getState("visible")&&i.getCanvasPadding&&i.getCanvasPadding()||{})e.hasOwnProperty(t)&&(a[t]=Math.max(e[t],a[t]))})),a},a.setColumnPosition=function(){var e,t,a,i,n,o=this.getFromEnv("chartConfig"),l=this.getFromEnv("chart-attrib"),u=this.getFromEnv("xAxis"),d=this.getFromEnv("numOfColumns"),g=o.plotSpacePercent,p=c((0,r.pluckNumber)(g,20)%100,0),f=p/200,m=u.getPixel(0),v=u.getPixel(1),b=this.getFromEnv("chart").isBar?o.maxBarHeight:o.maxColWidth,x=h(v-m),y=o.plotPaddingPercent,C=!0,k=o.overlapColumns,S=0,w=0;this.addToEnv("groupMaxWidth",x),this._mapChildren((function(e){e.getState("removed")||!1===e.getState("visible")||w++})),this.addToEnv("numOfColumns",w),this.addToEnv("numColDiff",(0,r.pluckNumber)(d-w,0)),e=(1-.01*g)*x||s(x*(1-2*f),b*(w||1)),void 0===l.plotspacepercent&&e>=o.canvasWidth/2&&(e=x-b/2),i=s((t=0===w?e:e/w)-1,w>1?k||void 0!==y?y>0?t*y/100:0:4:0),this.addToEnv("plotWidth",t-i),a=-(w/2*t-t/2),this._mapChildren((function(e){!e.getState("removed")&&e.getState("visible")&&(e.addToEnv("shift",a+S*t+i/2),S++)})),v-(n=e/2)-(m-n+e)<4&&(C=!1),0===p&&(C=!0),this.addToEnv("isCrisp",C)},a.childChanged=function(e){void 0===e&&(e={});var t,a,i=this.config,n=this.getLinkedParent(),o=0,r=this.getState("visible"),l={};this._mapChildren((function(e){e.getState("visible")&&o++})),this.setState("visible",!!o),r!==!!o&&(a=!0),!1!==e.dataLimitChanged&&((t=this.getDataLimits()).min===i.range.min&&t.max===i.range.max||(i.range.min=t.min,i.range.max=t.max,l.dataLimitChanged=!0,a=!0)),a?n.childChanged&&n.childChanged(l):this.asyncDraw()},a.getAxisValuePadding=function(){var e={},t=-Infinity,a=-Infinity;return this._mapChildren((function(i){i.getState("removed")||(e=i.getAxisValuePadding&&i.getAxisValuePadding()||{},t=Math.max(t,e.left||-Infinity),a=Math.max(a,e.right||-Infinity))})),t===-Infinity&&(t=0),a===-Infinity&&(a=0),this.config.padding||(this.config.padding={},this.config.padding.left=t,this.config.padding.right=a),{left:t,right:a}},a.getDataLimits=function(e){var t,a=+Infinity,i=-Infinity,n=0,o=function(e){i=Math.max(i,e.max),a=Math.min(a,e.min)};return this._mapChildren((function(a){a.getState("removed")||(!1!==a.getState("visible")?(n++,t=a.getDataLimits(e),o(t)):e&&(t=a.getDataLimits(e),o(t)))})),n?this.setState("visible",!0):this.setState("visible",!1),this.config.range||(this.config.range={},this.config.range.min=this.config.dataMin,this.config.range.max=this.config.dataMax),{max:i,min:a}},a.isVisible=function(){return!this.isNotVisible},t}(o.ComponentInterface);t["default"]=u},567:function(e,t,a){"use strict";t.__esModule=!0,t.scrollTo=function(e){var t=this.apiInstance;t.addJob("scrollToAPoint",(function(){if(e>=0&&e<=1){var a=(t.getChildren&&t.getChildren()).xAxis[0],i=a.getChildren("scrollBar")&&a.getChildren("scrollBar")[0],n=i&&i.getChildren("scrollAnchor")[0],o=a.getLimit&&a.getLimit(),r=a.getVisibleConfig&&a.getVisibleConfig(),l=r.maxValue-r.minValue,s=o.max-o.min,c=e*(s-l)+o.min,h=c+l,u=(r.minValue-o.min)/(s-l);n.config.scrollPosition=e,t.fireChartInstanceEvent("scrollStart",{scrollPosition:u}),a.setVisibleConfig(c,h),t.fireChartInstanceEvent("scrollEnd",{previousScrollPosition:u,scrollPosition:e})}}),n.priorityList.postRender)},t.setAxisScale=function(e){void 0===e&&(e=s);var t,a,i,n,c,h=this.config,u=this.getChildren("xAxis")[0],d=u.getTicksLen(),g="bar2d"===e,p=g?l:e,f=this.getFromEnv("dataSource").chart,m=g?h.height:h.width,v=0,b=h.scrollToEnd,x=(0,o.pluckNumber)(f.numvisibleplot,r(m/h.avgScrollPointWidth));h.isstacked?this.iterateComponents((function(e){"cartesianStackGroup"===e.getName()&&!e.getState("removed")&&v++})):this.iterateComponents((function(e){e.getType&&"dataset"===e.getType()&&e.getName&&e.getName().toLowerCase()===p&&!e.getState("removed")&&v++}));i=d*(v=v||1);var y=u.getVisibleConfig();a=y.maxValue,t=y.minValue,x>=2&&x<i?(n=x/v,u.setScrollType("always"),b?t=a-n:a=t+n,0===t&&(a-=1),u.setVisibleConfig(t,a)):(c=u.getLimit(),u.setVisibleConfig(c.min,c.max),u.setScrollType("none"))},t.resetViewPortConfig=function(){this.config.viewPortConfig={scaleX:1,scaleY:1,x:0,y:0}},t.configurer=function(){var e,t=this.getFromEnv("dataSource").chart;(e=this.config).scrollToEnd=(0,o.pluckNumber)(t.scrolltoend,0),e.lastScrollPosition=i};var i,n=a(196),o=a(184),r=Math.floor,l="bar2D",s="column"},572:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(508)),r=i(a(481)),l=i(a(566)),s=function(e){(0,n["default"])(a,e),a.getName=function(){return"MSColumn2D"};var t=a.prototype;function a(){var t;return(t=e.call(this)||this).eiMethods={},t}return t.getName=function(){return"MSColumn2D"},t.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this),this.config.friendlyName="Multi-series Column Chart",this.config.defaultDatasetType="column",this.config.enablemousetracking=!0},t.getDSdef=function(){return r["default"]},t.getDSGroupdef=function(){return l["default"]},a}(o["default"]);t["default"]=s},575:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=a(199),r=a(184),l=a(192),s=i(a(576)),c=r.preDefStr.visibleStr,h=Math,u=h.min,d=h.max;(0,l.addDep)({name:"cartesianStackAnimation",type:"animationRule",extension:s["default"]});var g=function(e){function t(){var t;return(t=e.call(this)||this).setState("visible",!0),t}(0,n["default"])(t,e);var a=t.prototype;return a.getType=function(){return"group"},t.getName=function(){return"cartesianStackGroup"},a.getName=function(){return"cartesianStackGroup"},a.preConfigure=function(t){if(!t)return!1;this.config.JSONData=t,e.prototype.preConfigure.call(this,t)},a.configure=function(t){if(!t)return!1;e.prototype.configure.call(this,t)},a.configureAttributes=function(t){e.prototype.configureAttributes.call(this,t);var a=this.config,i=this.getFromEnv("chartConfig"),n=this.getFromEnv("chart-attrib");a.showTextOutline=(0,r.pluckNumber)(n.textoutline,0),a.showSum=(0,r.pluckNumber)(n.showsum,i.showSum,0)},a.setSkippingInfo=function(e){this.addToEnv("skipInfo",e||{drawOnlyMap:[],plotsPerBin:1,draw:[],hide:[],skippingApplied:!1,dragHashMap:[],prevDrawArray:[]})},a.getSkippingInfo=function(){return this.getFromEnv("skipInfo")||{drawOnlyMap:[],plotsPerBin:1,draw:[],hide:[],skippingApplied:!1,dragHashMap:[],prevDrawArray:[]}},a.setVisibility=function(){var e=0;this._mapChildren((function(t){t.getState("visible")&&e++})),this.setState("visible",!!e)},a.createContainer=function(){var e,t,a=this.getFromEnv("animationManager"),i=this.getLinkedParent(),n=i.getChildContainer();for(e in n)t=n[e],!this.getChildContainer(e)&&this.addChildContainer(e,a.setAnimation({el:"group",attr:{name:"manager-"+e},container:t,component:this}));!this.getContainer("sumLabelsLayer")&&this.addContainer("sumLabelsLayer",a.setAnimation({el:"group",attr:{name:"manager-sumLabelsLayer","class":"fusioncharts-datalabels"},label:"group",container:i.getChildContainer("sumLabelsLayer"),component:this})),!this.getChildContainer("commonElemGroupLine")&&this.addChildContainer("commonElemGroupLine",a.setAnimation({el:"group",attr:{name:"manager-common-elem-group"},label:"group",container:i.getChildContainer("lineVcanvasGroup"),component:this})),!this.getChildContainer("commonElemGroup")&&this.addChildContainer("commonElemGroup",a.setAnimation({el:"group",attr:{name:"manager-common-elem-group"},label:"group",container:i.getChildContainer("areaVcanvasGroup"),component:this})),!this.getChildContainer("anchorGroup")&&this.addChildContainer("anchorGroup",a.setAnimation({el:"group",attr:{name:"manager-anchor-group"},label:"group",container:this.getFromEnv("useLinePlotGroupForAnchorPlacement")?i.getChildContainer("lineVcanvasGroup"):i.getChildContainer("areaVcanvasGroup"),component:this}))},a.draw=function(){this.createContainer(),this.getFirstDataSet(),this.drawSumValue()},a._setStackPosition=function(){var e=+Infinity,t=-Infinity,a=this.getFromEnv("numOfColumns"),i=0,n=[],o=this.getSkippingInfo&&this.getSkippingInfo()||{},l=o.draw||[],s=l.length,c=o.skippingApplied;this._mapChildren((function(a){if(!a.getState("removed")&&!1!==a.getState("visible")){i++;var o,r,h,g,p=a.getData(),f=0,m=p&&p.length,v=0;for(c&&(m=s),h=0;h<m;h++)(o=p[r=l[h]||h])&&o.config&&void 0!==o.config.setValue&&(n[r]||(n[r]={}),g=o.config.setValue,n[r].positive||(n[r].positive=0),n[r].negative||(n[r].negative=0),g>=0?(f=g+(v=n[r].positive),n[r].positive=f):g<0&&(f=g+(v=n[r].negative),n[r].negative=f),null!==g&&(n[r].isNotNull=!0),t=d(f,t),e=u(f,e),o.config._y=f,o.config._b=v)}})),this.config.stackValues=n,this.config.dataMin=e,this.config.dataMax=t,i?this.setState("visible",!0):this.setState("visible",!1),this.addToEnv("stackValues",n),this.addToEnv("numOfColumns",i),this.addToEnv("numColDiff",(0,r.pluckNumber)(a-i,0))},a.allocatePosition=function(){this._setStackPosition()},a._getXpos=function(e){var t=this.getFromEnv("shift")||0;return this.getFromEnv("xAxis").getPixel(e)+t},a.drawSumValue=function(e,t){void 0===e&&(e=0);var a,i,n,o,l,s,h,u,d,g,p,f,m,v,b,x,y=this.config,C=this.getFromEnv("yAxis"),k=this.getFromEnv("paper"),S=this.getFromEnv("animationManager"),w=this.getFromEnv("chart"),L=w.isBar,A=this.getFromEnv("smartLabel"),N=w.config,F=N.canvasRight,E=(0,r.pluckNumber)(N.stack100percent),_=N.rotatevalues?270:0,T=y.stackValues,P=t||T&&T.length,D=N.dataLabelStyle,I=this.getContainer("sumLabelsLayer"),M=this.getGraphicalElement("sumLabels");if(y.showSum){if(I.css(D),A.setStyle(D),(v=M&&M.length)>(b=T.length))for(;v>=b;)x=M[v],v--,x&&(x.hide(),this.removeGraphicalElement(x));for(a=e;a<P;a++)h=Array.isArray(M)&&M[a],T[a]&&T[a].isNotNull?(p=(m=(d=T[a].positive)+(g=T[a].negative))<0?g:d,(f=C.dataLabels(m))&&(o=D.backgroundColor,l=D.borderColor,s=A.getOriSize(f),L?(n=this._getXpos(a),i=C.getPixel(E?100:p),E?i+=s.width/2:i-=i+s.width>F?i+s.width-F:0):(i=this._getXpos(a),n=C.getPixel(E?100:p)),(u=this.getSumValuePosition(s,{stack100percent:E,rotateValues:_,xPos:i,yPos:n,offsetY:p,index:a})).text=f,u.fill=D.color,u["text-bound"]=[o,l,D.borderThickness,D.borderPadding,D.borderRadius,D.borderDash],u["line-height"]=D.lineHeight,u.visibility=c,u.transform=k.getSuggestiveRotation(_,u.x,u.y),u["text-anchor"]&&delete u["text-bound"],I&&I.show(),(h=S.setAnimation({el:h||"text",attr:u,label:"text",container:I,component:this})).show(),h.outlineText(y.showTextOutline,u.fill),Array.isArray(M)&&M[a]||this.addGraphicalElement("sumLabels",h,!0))):h&&h.hide()}else I.hide()},a.getSumValuePosition=function(e,t){var a,i,n,o,r,l,s,c=this.getFromEnv("chart"),h=c.config,u=this.getFromEnv("xAxis"),d=h.canvasBottom,g=h.canvasTop,p=c.config.is3D,f=c.isBar,m=t.stack100percent,v=h.yDepth,b=h.xDepth,x=t.yPos,y=t.xPos,C=this.getFromEnv("canvasConfig").canvasBorderWidth,k=t.offsetY;if(t.rotateValues?(l=e.width,s=e.height):(l=e.height,s=e.width),o=(o=a=l)/2+2,r=(r=i=s)/2+2,m)if(g<=a)x=o;else{var S=u.getAxisConfig("isOpposit"),w=p?0:S?u.getAxisConfig("axisLineThickness"):0,L=u.isScrollEnabled()&&S?h.shift:0;x=f?t.yPos:g-o-C-L-w,y+=f?C+w+L:0}else k>=0&&(f?((n=h.canvasLeft+h.canvasWidth-y)<i?y=y-r+n:y+=r,p&&(x+=v/2)):(n=x-g)<a?x=x+o-n:(x-=f?0:o,y+=f?2:0,this.getFromEnv("useImprovedLabelPlacement")&&(x=this._adjustSumValuePosition(t.index,!0,x,o))-o<g&&(x=g+o))),k<0&&(f?y=(n=y-h.canvasLeft)<i?y+r+2-n:y-r-2:(n=d-x)<a?x-=o:(x+=o,this.getFromEnv("useImprovedLabelPlacement")&&(x=this._adjustSumValuePosition(t.index,!1,x,o))+o>d&&(x=d-o)),p&&(y-=b,x+=v));return{x:y,y:x}},a.childChanged=function(e){void 0===e&&(e={});var t,a,i=this.config,n=this.getLinkedParent(),o=this.getState("visible"),r=0,l={};this._mapChildren((function(e){e.getState("visible")&&r++})),this.setState("visible",!!r),o!==!!r&&(a=!0),!1!==e.dataLimitChanged&&((t=this.getDataLimits()).min===i.range.min&&t.max===i.range.max||(i.range.min=t.min,i.range.max=t.max,l.dataLimitChanged=!0,a=!0)),a?n.childChanged&&n.childChanged(l):this.asyncDraw()},a.getAxisValuePadding=function(){var e={},t=-Infinity,a=-Infinity;return this._mapChildren((function(i){i.getState("removed")||(e=i.getAxisValuePadding&&i.getAxisValuePadding()||{},t=Math.max(t,e.left||-Infinity),a=Math.max(a,e.right||-Infinity))})),t===-Infinity&&(t=0),a===-Infinity&&(a=0),this.config.padding||(this.config.padding={},this.config.padding.left=t,this.config.padding.right=a),{left:t,right:a}},a.getDataLimits=function(e){return this._setStackPosition(),this.config.range||(this.config.range||(this.config.range={}),this.config.range.min=this.config.dataMin,this.config.range.max=this.config.dataMax),e?this._getStackLimit():{max:this.config.dataMax,min:this.config.dataMin}},a._getStackLimit=function(){var e=+Infinity,t=-Infinity,a=[],i=this.getSkippingInfo&&this.getSkippingInfo()||{},n=i.draw||[],o=n.length,r=i.skippingApplied;return this._mapChildren((function(i){if(!i.getState("removed")){var l,s,c,h,g=i.getData(),p=0,f=g&&g.length;for(r&&(f=o),c=0;c<f;c++)(l=g[s=n[c]||c])&&l.config&&void 0!==l.config.setValue&&null!==l.config.setValue&&(a[s]||(a[s]={}),h=l.config.setValue,a[s].positive||(a[s].positive=0),a[s].negative||(a[s].negative=0),h>0?(p=h+a[s].positive,a[s].positive=p):h<0&&(p=h+a[s].negative,a[s].negative=p),t=d(p,t),e=u(p,e))}})),{max:t,min:e}},a.isVisible=function(){return!this.isNotVisible},a.getMaxSumValueSpace=function(){var e,t,a,i,n,o=this.config.stackValues,r=this.getFromEnv("chart"),l={},s=o&&o.length,c=this.getFromEnv("number-formatter"),h=0,u=0,g=this.getFromEnv("smartLabel"),p=r.config.dataLabelStyle;for(g.useEllipsesOnOverflow(r.config.useEllipsesWhenOverflow),g.setStyle(p),e=0;e<s;e++)o[e]&&(n=o[e].positive+o[e].negative,t=c.dataLabels(n),a=(l=g.getOriSize(t)).width,i=l.height,u=d(u,a),h=d(h,i));return{maxWidth:u,maxHeight:h}},a.getCanvasPadding=function(){var e,t,a,i,n,o=this.getSkippingInfo(),r=o.skippingApplied,l=o.draw,s=this.config.stackValues,c=s[r?l[0]:0],h=s[r?l[l.length-1]:s.length-1],u=this.getFromEnv("xAxis"),g=this.getFromEnv("yAxis"),p=this.getFromEnv("chartConfig"),f=this.getFromEnv("smartLabel"),m=u.getValuePadding(),v=0,b=u.getPixel(0),x=p.rotatevalues,y={paddingLeft:0,paddingRight:0,paddingTop:0,paddingBottom:0};return this._setStackPosition(),this._mapChildren((function(a){for(t in e=a.getCanvasPadding&&a.getCanvasPadding()||{})e.hasOwnProperty(t)&&(y[t]=Math.max(e[t],y[t]))})),this.config.showSum&&(c&&(a=g.dataLabels(c.positive+c.negative),f.useEllipsesOnOverflow(p.useEllipsesWhenOverflow),f.setStyle(p.dataLabelStyle),i=f.getOriSize(a),n=x?i.height:i.width,c.isNotNull&&(v=(n||0)/2-(u.getPixel(m.left)-b))<0&&(v=0),y.paddingLeft=d(y.paddingLeft,v)),v=0,h&&(a=g.dataLabels(h.positive+h.negative),f.setStyle(p.dataLabelStyle),i=f.getOriSize(a),n=x?i.height:i.width,h.isNotNull&&(v=(n||0)/2-(u.getPixel(m.right)-b))<0&&(v=0),y.paddingRight=d(y.paddingRight,v))),y},a.getFirstDataSet=function(){var e=this.getChildren("dataset");if(e)for(var t=0;t<e.length;t++){var a=e[t];if(a.getState("visible")&&!a.getState("removed")){this.config.firstDataSetIndex=t;break}this.config.firstDataSetIndex=null}},a._adjustSumValuePosition=function(e,t,a,i){var n,o,r=[],l=a,s=this.getChildren();for(n in s)s.hasOwnProperty(n)&&(o=s[n],r=r.concat(o.filter((function(e){return"dataset"===e.getType()}))));return r.forEach((function(a){var n,o,r=a.components.data[e],s=r&&r.config,h=s&&s._state,u=s&&s.props&&s.props.label&&s.props.label.attr;!a.getState("removed")&&a.getState(c)&&u&&h&&(n={y:u.y,height:h.labelHeight},o={y:l,height:i},(n.y<=o.y&&o.y<=n.y+n.height||n.y<=o.y+o.height&&o.y+o.height<=n.y+n.height)&&(l=t?u.y-.6*h.labelHeight-.6*i:u.y+.6*h.labelHeight+.6*i))})),l},t}(o.ComponentInterface);t["default"]=g},576:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(){return[{initialAttr:{opacity:1},finalAttr:{opacity:1},slot:"plot"}]},n=function(){return[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}]},o={"initial.group.cartesianStackGroup":function(){return{"group.appearing":i,"text.appearing":n,"*":null}},"initial.group.marimekkoStackgroup":function(){return{"text.appearing":n,"*":null}}};t["default"]=o},579:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t._checkInvalidSpecificData=t["default"]=void 0;var n=i(a(198)),o=i(a(508)),r=i(a(481)),l=i(a(575)),s=i(a(580)),c=function(){var e,t=this.getFromEnv("dataSource"),a=t.dataset,i=t.categories;if(!a||!i)return!0;if(e=a.length)for(;e--;)if(!a[e].dataset)return!0};t._checkInvalidSpecificData=c;var h=function(e){function t(){var t;return(t=e.call(this)||this).registerFactory("dataset",s["default"],["vCanvas"]),t}(0,n["default"])(t,e),t.getName=function(){return"MSStackedColumn2D"};var a=t.prototype;return a._checkInvalidSpecificData=function(){return c.call(this)},a.getName=function(){return"MSStackedColumn2D"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;t.friendlyName="Multi-series Stacked Column Chart",t.defaultDatasetType="column",t.isstacked=!0,t.enablemousetracking=!0},a.getDSdef=function(){return r["default"]},a.getDSGroupdef=function(){return l["default"]},t}(o["default"]);t["default"]=h},580:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=function(e){var t,a,i,r,l,s,c=e.getFromEnv("dataSource").dataset,h=c&&c.length,u=0,d=e.getChildren("canvas")[0].getChildren("vCanvas")[0],g=[];if(!c)return void e.setChartMessage();for((0,n.componentFactory)(d,o["default"],"multiSeriesGroup_column"),s=d.getChildren("multiSeriesGroup_column")[0],t=0;t<h;t++)g.push(c[t].dataset);for((0,n.componentFactory)(s,e.getDSGroupdef(),"stackedGroup_column",h,g),l=s.getChildren("stackedGroup_column"),t=0;t<l.length;t++)if(!0!==l[t].getState("removed")){if(!(i=c[t].dataset))return void e.setChartMessage();a=i&&i.length,r=Array(a).fill(u).map((function(e,t){return e+t})),(0,n.datasetFactory)(l[t],e.getDSdef(),"dataset_column",a,i,r),u+=a}e.config._lastDatasetIndex=r[r.length-1]};var n=a(184),o=i(a(566))},583:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=a(184),r=i(a(545)),l=a(579),s=i(a(498)),c=i(a(481)),h=i(a(575)),u=i(a(584)),d=o.preDefStr.SEVENTYSTRING,g=function(e){function t(){var t;return(t=e.call(this)||this).stack100percent=0,t.hasLineSet=!0,t.lineset=!0,t.registerFactory("dataset",u["default"],["vCanvas"]),t}(0,n["default"])(t,e),t.getName=function(){return"MSStackedColumn2DLineDy"};var a=t.prototype;return a.getName=function(){return"MSStackedColumn2DLineDy"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;t.sDefaultDatasetType="line",t.friendlyName="Multi-series Dual Y-Axis Stacked Column and Line Chart",t.defaultDatasetType="column",t.isdual=!0,t.haslineset=!0,t.isstacked=!0,t.enablemousetracking=!0,t.anchorborderthickness=1,t.anchorimageurl=void 0,t.anchorimagepadding=1,t.anchorsides=1,t.anchoralpha=void 0,t.anchorbgalpha=o.HUNDREDSTRING,t.anchorimagealpha=o.HUNDREDSTRING,t.anchorimagescale=100,t.anchorstartangle=90,t.anchorshadow=0,t.anchorbgcolor=void 0,t.anchorbordercolor=void 0,t.anchorradius=3,t.showvalues=1,t.plotfillalpha=d,t.linedashlen=5,t.linedashgap=4,t.linedashed=void 0,t.linealpha=o.HUNDREDSTRING,t.linethickness=2,t.drawfullareaborder=1,t.connectnulldata=0},a._checkInvalidSpecificData=function(){return l._checkInvalidSpecificData.call(this)},a.getDSdef=function(e){return"line"===e?s["default"]:c["default"]},a.getDSGroupdef=function(){return h["default"]},t}(r["default"]);t["default"]=g},584:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=function(e){var t,a,i=e.getFromEnv("dataSource"),l=i.dataset,s=i.lineset,c=e.getChildren("canvas")[0].getChildren("vCanvas")[1];if(!l&&0===s.length)return void e.setChartMessage();(0,n["default"])(e),t=e.config._lastDatasetIndex+1,s&&s.length?(a=Array(s.length).fill(t).map((function(e,t){return e+t})),(0,o.datasetFactory)(c,e.getDSdef("line"),"dataset_line",s.length,s,a)):r(c)};var n=i(a(580)),o=a(184),r=function(e){var t,a=e.getChildren("dataset_line");for(t=a&&a.length-1;t>-1;t--)a[t].remove()}},596:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(572)),r=i(a(597)),l=i(a(599)),s=i(a(511)),c=a(184),h=function(e,t,a){var i,n,o,r,l,s,c,h,u,d,g=a&&a.length,p=e,f=t;if(g)for(i=g-1;i>=0;i--)if(c=(o=a[i]).x1,h=o.y1,u=o.x2,d=o.y2,o.isTrendZone){if(p>=c&&p<=u&&f>=h&&f<=d)return o}else if(h!==d&&c!==u?(r=n=(h-d)/(c-u),-1,l=h-n*c,s=Math.abs(r*p+-1*f+l)/Math.sqrt(Math.pow(r,2)+Math.pow(-1,2))):c===u?s=Math.abs(c-p):h===d&&(s=Math.abs(h-f)),s<=o.tolerance)return o},u=function(e){function t(){var t;return(t=e.call(this)||this).registerFactory("axis",l["default"],["canvas"]),t.registerFactory("legend",s["default"]),t.registerFactory("quadrant",(function(e){var t,a=e.getChildren("canvas")[0],i=e.getChildren(),n=function(){return t.asyncDraw()};(0,c.componentFactory)(a,r["default"],"quadrant"),(t=a.getChildren("quadrant")[0]).addExtEventListener("visiblerangeset",n,i.xAxis[0]),t.addExtEventListener("visiblerangeset",n,i.yAxis[0]),t.configure()}),["dataset"]),t}(0,n["default"])(t,e),t.getName=function(){return"ScatterBase"};var a=t.prototype;return a.mouseoutHandler=function(e,t,a){var i=this.config.datasetOrder||this.getDatasets(),n=this.getChildren("mouseTracker")[0];i[t]&&i[t].components.data[a]?i[t]._firePlotEvent("fc-mouseout",a,e):this.getFromEnv("toolTipController").hideAll(),delete n._lastDatasetIndex,delete n._lastPointIndex},a.parseChartAttr=function(t){e.prototype.parseChartAttr.call(this,t),this.config.drawTrendRegion=0},a.__setDefaultConfig=function(){var t=this.config;e.prototype.__setDefaultConfig&&e.prototype.__setDefaultConfig.call(this),t.valuefontbold=0,t.stickytracking=1,t.usemessagelog=0,t.animationeffect="linear",t.showshadow=1,t.showhovereffect=void 0,t.plothovereffect=void 0,t.anchorhovereffect=void 0,t.plotborderdashed=void 0,t.stack100percent=void 0,t.showpercentvalues=void 0,t.showpercentintooltip=void 0,t.plotbordercolor=void 0,t.showtooltip=1,t.seriesnameintooltip=1,t.rotatevalues=0,t.minimizetendency=0,t.plotfillangle=270,t.valuepadding=2,t.useplotgradientcolor=1,t.plotborderthickness=1,t.plotfillalpha="70",t.showvalues=1,t.valueposition="auto",t.tooltipsepchar=", ",t.usedataplotcolorforlabels=0,t.placevaluesinside=0,t.showplotborder=1,t.use3dlighting=1,t.useroundedges=0,t.plotspacepercent=20,t.plotpaddingpercent=void 0,t.plotfillratio=void 0,t.maxcolwidth=50,t.plotborderdashlen=5,t.plotborderdashgap=4,t.useScaleRecursively=!0,t.zeroplanethickness=1,t.zeroplanealpha=40,t.showzeroplaneontop=0,t.setadaptivexmin=1},a._drawTrendTooltip=function(e,t){var a=this.getFromEnv("toolTipController"),i=this.config.currentTrendToolTip,n=e.tooltext,o=t.originalEvent;i?a.draw(o,n,i):i=this.config.currentTrendToolTip=a.draw(o,n)},a._mouseEvtHandler=function(e,t){var a,i,n,o,r,l,s,u,d,g,p=this,f=t.mouseTracker,m=p.getChildren("canvas")[0],v=p.getFromEnv("toolTipController"),b=e.originalEvent,x=p.config,y=x.canvasBaseDepth||0,C=x.canvasLeft-(x.toleranceLeft||0),k=x.canvasRight+(x.toleranceRight||0),S=x.canvasBottom+(x.toleranceBottom||0),w=x.canvasTop-(x.toleranceTop||0),L=x.datasetOrder||p.getDatasets(),A=!1,N=L.length,F=f._lastDatasetIndex,E=f._lastPointIndex;if(o=(n=(0,c.getMouseCoordinate)(p.getFromEnv("chart-container"),b,p)).chartX,r=n.chartY,o>C-y&&o<k&&r>w&&r<S+y){for(;N--&&!A;)(l=L[N])&&l.getState("visible")&&((s=l._getHoveredPlot&&l._getHoveredPlot(o,r))&&s.hovered||a)&&(A=!0,s.datasetIndex=N,g=f.getMouseEvents(e,s.datasetIndex,s.pointIndex));a=h(o,r,m.config.vtrendlines),i=h(o,r,m.config.trendlines)}if((!A||g&&g.fireOut)&&void 0!==F&&L[F]&&L[F]._firePlotEvent&&(g&&!g.events.length?f.mouseoutTimer=setTimeout((function(){p.mouseoutHandler(e,F,E)}),20):(p.mouseoutHandler(e,F,E),clearTimeout(f.mouseoutTimer))),A)for(p.config.currentTrendToolTip&&v.hide(p.config.currentTrendToolTip),(d=g.events&&g.events.length)&&(f._lastDatasetIndex=s.datasetIndex,E=f._lastPointIndex=s.pointIndex),u=0;u<d;u+=1)l&&l._firePlotEvent&&l._firePlotEvent(g.events[u],E,e,s.datasetIndex);else a&&a.tooltext?p._drawTrendTooltip(a,e):i&&i.tooltext?p._drawTrendTooltip(i,e):p.config.currentTrendToolTip&&v.hide(p.config.currentTrendToolTip)},a._setCategories=function(){var e=this.getFromEnv("dataSource"),t=this.getChildren("xAxis"),a=String((0,c.pluck)(e.chart.xaxislabelmode,"categories")).toLowerCase(),i=e.categories,n=i&&i[0]&&i[0].category;t[0].setAxisConfig({xAxisLabelMode:"categories"}),"auto"!==a&&"mixed"!==a&&n&&n.length>0?t[0].setTickValues(n):"auto"!==a?(t[0].setTickValues(n),t[0].setAxisConfig({xAxisLabelMode:"mixed"})):(t[0].setTickValues(n),t[0].setAxisConfig({xAxisLabelMode:"auto"}))},a._allocateSpace=function(e){var t=this.getChildren("canvas"),a=t&&t[0].config,i=this.config,n=i.canvasHeight,o=i.canvasWidth,r=i.availableHeight,l=i.availableWidth;i.canvasLeft+=e.left||0,i.canvasTop+=e.top||0,o=i.canvasWidth=Math.max(o-((e.left||0)+(e.right||0)),0),n=i.canvasHeight=Math.max(n-((e.top||0)+(e.bottom||0)),0),i.availableHeight=Math.max(r-((e.top||0)+(e.bottom||0)),0),i.availableWidth=Math.max(l-((e.left||0)+(e.right||0)),0),i.canvasRight=i.canvasLeft+o,i.canvasBottom=i.canvasTop+n,a&&(a.canvasPaddingLeft=Math.max(a.canvasPaddingLeft,e.paddingLeft||0),a.canvasPaddingRight=Math.max(a.canvasPaddingRight,e.paddingRight||0),a.canvasPaddingTop=Math.max(a.canvasPaddingTop,e.paddingTop||0),a.canvasPaddingBottom=Math.max(a.canvasPaddingBottom,e.paddingBottom||0)),t[0].setDimension({top:i.canvasTop,left:i.canvasLeft,width:i.canvasWidth,height:i.canvasHeight})},a._postSpaceManagement=function(){var e,t=this.config,a=this.getChildren(),i=a.xAxis&&a.xAxis[0],n=a.legend&&a.legend[0],o=t.xDepth,r=this.getChildren("canvas");for(this.setAxisDimention(),i&&this._allocateXAxisLabelSpace(i),i&&i.shiftLabels(-o,0),n&&n.postSpaceManager(),e=0;e<(r&&r.length);e++)r[e].setCanvasPadding();this.setAxisDimention(),this.allocateDimensionOfChartMenuBar()},a._checkInvalidSpecificData=function(){if(!this.getFromEnv("dataSource").dataset)return!0},t}(o["default"]);t["default"]=u},597:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(201)),o=i(a(198)),r=a(199),l=a(184),s=a(192),c=i(a(598)),h=l.preDefStr.POSITION_START,u=l.preDefStr.POSITION_TOP,d=l.preDefStr.POSITION_BOTTOM,g=l.preDefStr.POSITION_END;(0,s.addDep)({name:"quadrantAnimation",type:"animationRule",extension:c["default"]});var p=function(e){function t(){var t;t=e.call(this)||this;var a=(0,n["default"])(t);return a.pIndex=1,a.components={},a.conf={},a.graphics={},t}(0,o["default"])(t,e);var a=t.prototype;return a.getType=function(){return"canvas"},a.getName=function(){return"quadrant"},a.configure=function(){var e,t,a,i,n,o,r,s,c,h,u,d,g,p,f,m,v,b,x,y,C,k,S,w,L=this.conf,A=this.getFromEnv("chart"),N=A.config,F=A.getFromEnv("dataSource").chart,E=A.getChildren("canvas")[0].config,_=N.dataLabelStyle,T=A.getFromEnv("smartLabel");(L.enabled=(0,l.pluckNumber)(F.drawquadrant,0))&&(v=(0,l.pluckNumber)(F.quadrantxval),b=(0,l.pluckNumber)(F.quadrantyval),x=(0,l.convertColor)((0,l.pluck)(F.quadrantlinecolor,E.canvasBorderColor),(0,l.pluck)(F.quadrantlinealpha,F.quadrantlinealpha,l.HUNDREDSTRING)),y=(0,l.pluckNumber)(F.quadrantlinethickness,E.canvasBorderThickness),k=(0,l.pluckNumber)(F.quadrantlinedashed,F.quadrantlineisdashed,0),C=(0,l.pluckNumber)(F.quadrantlinedashlen,4),S=(0,l.pluckNumber)(F.quadrantlinedashgap,2),w=k?(0,l.getDashStyle)(C,S):"none",L.xVal=v,L.yVal=b,L.quadrantLineColor=x,L.quadrantLineThickness=y,L.dashStyle=w,g=(0,l.getValidValue)(F.quadrantlabeltl,""),p=(0,l.getValidValue)(F.quadrantlabeltr,""),f=(0,l.getValidValue)(F.quadrantlabelbl,""),m=(0,l.getValidValue)(F.quadrantlabelbr,""),L.quadrantLabelPadding=(0,l.pluckNumber)(F.quadrantlabelpadding,3),T.useEllipsesOnOverflow(N.useEllipsesWhenOverflow),T.setStyle(_),""!==g?(o=(0,l.getFirstValue)(F.quadrantlabeltlbordercolor,F.quadrantlabelbordercolor,""),r=(0,l.pluck)(F.quadrantlabeltlbgcolor,F.quadrantlabelbgcolor),s=(0,l.pluckNumber)(F.quadrantlabeltlborderthickness,F.quadrantlabelborderthickness,1),o=o?(0,l.convertColor)(o,(0,l.pluckNumber)(F.quadrantlabeltlborderalpha,F.quadrantlabelborderalpha,F.quadrantlabeltlalpha,F.quadrantlabelalpha,100)):"",(c=L.tlConfig)||(c=L.tlConfig={enabled:!0,styleObj:{}}),c.label=g,c.styleObj.fontSize=(0,l.pluck)((0,l.pluckNumber)(F.quadrantlabeltlfontsize,F.quadrantlabelfontsize),parseInt(_.fontSize,10))+"px",c.styleObj.lineHeight=_.lineHeight,c.styleObj.fontFamily=(0,l.pluck)(F.quadrantlabeltlfont,F.quadrantlabelfont,_.fontFamily),c.styleObj.color=(0,l.convertColor)((0,l.pluck)(F.quadrantlabeltlfontcolor,F.quadrantlabelfontcolor,_.color),(0,l.pluckNumber)(F.quadrantlabeltlfontalpha,F.quadrantlabelfontalpha,100)),c.styleObj.fontWeight=(0,l.pluckNumber)(F.quadrantlabeltlfontbold,F.quadrantlabelfontbold)?"bold":"normal",c.styleObj.fontStyle=(0,l.pluckNumber)(F.quadrantlabeltlfontitalic,F.quadrantlabelfontitalic)?"italic":"normal",(0,l.setLineHeight)(c.styleObj),e=o,t=(0,l.pluckNumber)(F.quadrantlabeltlborderpadding,F.quadrantlabelborderpadding,2),a=(0,l.pluckNumber)(F.quadrantlabeltlborderradius,F.quadrantlabelborderradius,0),i=r?(0,l.convertColor)(r,(0,l.pluckNumber)(F.quadrantlabeltlbgalpha,F.quadrantlabelbgalpha,F.quadrantlabeltlalpha,F.quadrantlabelalpha,100)):"",n=(0,l.pluckNumber)(F.quadrantlabeltlborderdashed,F.quadrantlabelborderdashed,0)?(0,l.getDashStyle)((0,l.pluckNumber)(F.quadrantlabeltlborderdashlen,F.quadrantlabelborderdashlen,4),(0,l.pluckNumber)(F.quadrantlabeltlborderdashgap,F.quadrantlabelborderdashgap,2)):"none",c["text-bound"]=[i,e,s,t,a,n]):L.tlConfig&&(L.tlConfig.label=g),""!==p?(o=(0,l.getFirstValue)(F.quadrantlabeltrbordercolor,F.quadrantlabelbordercolor,""),r=(0,l.pluck)(F.quadrantlabeltrbgcolor,F.quadrantlabelbgcolor),s=(0,l.pluckNumber)(F.quadrantlabeltrborderthickness,F.quadrantlabelborderthickness,1),o=o?(0,l.convertColor)(o,(0,l.pluckNumber)(F.quadrantlabeltrborderalpha,F.quadrantlabelborderalpha,F.quadrantlabeltralpha,F.quadrantlabelalpha,100)):"",(h=L.trConfig)||(h=L.trConfig={enabled:!0,styleObj:{}}),h.label=(0,l.getValidValue)(F.quadrantlabeltr,""),h.styleObj.fontSize=(0,l.pluck)((0,l.pluckNumber)(F.quadrantlabeltrfontsize,F.quadrantlabelfontsize),parseInt(_.fontSize,10))+"px",h.styleObj.lineHeight=_.lineHeight,h.styleObj.fontFamily=(0,l.pluck)(F.quadrantlabeltrfont,F.quadrantlabelfont,_.fontFamily),h.styleObj.color=(0,l.convertColor)((0,l.pluck)(F.quadrantlabeltrfontcolor,F.quadrantlabelfontcolor,_.color),(0,l.pluckNumber)(F.quadrantlabeltrfontalpha,F.quadrantrabelfontalpha,100)),h.styleObj.fontWeight=(0,l.pluckNumber)(F.quadrantlabeltrfontbold,F.quadrantlabelfontbold)?"bold":"normal",h.styleObj.fontStyle=(0,l.pluckNumber)(F.quadrantlabeltrfontitalic,F.quadrantlabelfontitalic)?"italic":"normal",(0,l.setLineHeight)(h.styleObj),e=o,t=(0,l.pluckNumber)(F.quadrantlabeltrborderpadding,F.quadrantlabelborderpadding,2),a=(0,l.pluckNumber)(F.quadrantlabeltrborderradius,F.quadrantlabelborderradius,0),i=r?(0,l.convertColor)(r,(0,l.pluckNumber)(F.quadrantlabeltrbgalpha,F.quadrantlabelbgalpha,F.quadrantlabeltralpha,F.quadrantlabelalpha,100)):"",n=(0,l.pluckNumber)(F.quadrantlabeltrborderdashed,F.quadrantlabelborderdashed,0)?(0,l.getDashStyle)((0,l.pluckNumber)(F.quadrantlabeltrborderdashlen,F.quadrantlabelborderdashlen,4),(0,l.pluckNumber)(F.quadrantlabeltrborderdashgap,F.quadrantlabelborderdashgap,2)):"none",h["text-bound"]=[i,e,s,t,a,n]):L.trConfig&&(L.trConfig.label=p),""!==f?(o=(0,l.getFirstValue)(F.quadrantlabelblbordercolor,F.quadrantlabelbordercolor,""),r=(0,l.pluck)(F.quadrantlabelblbgcolor,F.quadrantlabelbgcolor),s=(0,l.pluckNumber)(F.quadrantlabelblborderthickness,F.quadrantlabelborderthickness,1),o=o?(0,l.convertColor)(o,(0,l.pluckNumber)(F.quadrantlabelblborderalpha,F.quadrantlabelborderalpha,F.quadrantlabelblalpha,F.quadrantlabelalpha,100)):"",(u=L.blConfig)||(u=L.blConfig={enabled:!0,styleObj:{}}),u.label=f,u.styleObj.fontSize=(0,l.pluck)((0,l.pluckNumber)(F.quadrantlabelblfontsize,F.quadrantlabelfontsize),parseInt(_.fontSize,10))+"px",u.styleObj.lineHeight=_.lineHeight,u.styleObj.fontFamily=(0,l.pluck)(F.quadrantlabelblfont,F.quadrantlabelfont,_.fontFamily),u.styleObj.color=(0,l.convertColor)((0,l.pluck)(F.quadrantlabelblfontcolor,F.quadrantlabelfontcolor,_.color),(0,l.pluckNumber)(F.quadrantlabelblfontalpha,F.quadrantlabelfontalpha,100)),u.styleObj.fontWeight=(0,l.pluckNumber)(F.quadrantlabelblfontbold,F.quadrantlabelfontbold)?"bold":"normal",u.styleObj.fontStyle=(0,l.pluckNumber)(F.quadrantlabelblfontitalic,F.quadrantlabelfontitalic)?"italic":"normal",(0,l.setLineHeight)(u.styleObj),e=o,t=(0,l.pluckNumber)(F.quadrantlabelblborderpadding,F.quadrantlabelborderpadding,2),a=(0,l.pluckNumber)(F.quadrantlabelblborderradius,F.quadrantlabelborderradius,0),i=r?(0,l.convertColor)(r,(0,l.pluckNumber)(F.quadrantlabelblbgalpha,F.quadrantlabelbgalpha,F.quadrantlabelblalpha,F.quadrantlabelalpha,100)):"",n=(0,l.pluckNumber)(F.quadrantlabelblborderdashed,F.quadrantlabelborderdashed,0)?(0,l.getDashStyle)((0,l.pluckNumber)(F.quadrantlabelblborderdashlen,F.quadrantlabelborderdashlen,4),(0,l.pluckNumber)(F.quadrantlabelblborderdashgap,F.quadrantlabelborderdashgap,2)):"none",u["text-bound"]=[i,e,s,t,a,n]):L.blConfig&&(L.blConfig.label=f),""!==m?(o=(0,l.getFirstValue)(F.quadrantlabelbrbordercolor,F.quadrantlabelbordercolor,""),r=(0,l.pluck)(F.quadrantlabelbrbgcolor,F.quadrantlabelbgcolor),s=(0,l.pluckNumber)(F.quadrantlabelbrborderthickness,F.quadrantlabelborderthickness,1),o=o?(0,l.convertColor)(o,(0,l.pluckNumber)(F.quadrantlabelbrborderalpha,F.quadrantlabelborderalpha,F.quadrantlabelbralpha,F.quadrantlabelalpha,100)):"",(d=L.brConfig)||(d=L.brConfig={enabled:!0,styleObj:{}}),d.label=(0,l.getValidValue)(F.quadrantlabelbr,""),d.styleObj.fontSize=(0,l.pluck)((0,l.pluckNumber)(F.quadrantlabelbrfontsize,F.quadrantlabelfontsize),parseInt(_.fontSize,10))+"px",d.styleObj.lineHeight=_.lineHeight,d.styleObj.fontFamily=(0,l.pluck)(F.quadrantlabelbrfont,F.quadrantlabelfont,_.fontFamily),d.styleObj.color=(0,l.convertColor)((0,l.pluck)(F.quadrantlabelbrfontcolor,F.quadrantlabelfontcolor,_.color),(0,l.pluckNumber)(F.quadrantlabelbrfontalpha,F.quadrantrabelfontalpha,100)),d.styleObj.fontWeight=(0,l.pluckNumber)(F.quadrantlabelbrfontbold,F.quadrantlabelfontbold)?"bold":"normal",d.styleObj.fontStyle=(0,l.pluckNumber)(F.quadrantlabelbrfontitalic,F.quadrantlabelfontitalic)?"italic":"normal",(0,l.setLineHeight)(d.styleObj),i=r?(0,l.convertColor)(r,(0,l.pluckNumber)(F.quadrantlabelbrbgalpha,F.quadrantlabelbgalpha,F.quadrantlabelbralpha,F.quadrantlabelalpha,100)):"",e=o,t=(0,l.pluckNumber)(F.quadrantlabelbrborderpadding,F.quadrantlabelborderpadding,2),a=(0,l.pluckNumber)(F.quadrantlabelbrborderradius,F.quadrantlabelborderradius,0),n=(0,l.pluckNumber)(F.quadrantlabelbrborderdashed,F.quadrantlabelborderdashed,0)?(0,l.getDashStyle)((0,l.pluckNumber)(F.quadrantlabelbrborderdashlen,F.quadrantlabelborderdashlen,4),(0,l.pluckNumber)(F.quadrantlabelbrborderdashgap,F.quadrantlabelborderdashgap,2)):"none",d["text-bound"]=[i,e,s,t,a,n]):L.brConfig&&(L.brConfig.label=m))},a._preDraw=function(){var e,t,a,i,n,o,r=this.conf,l=this.getFromEnv("chart"),s=l.getChildren("xAxis")[0],c=l.getChildren("yAxis")[0],h=s.getLimit(),u=c.getLimit(),d=h.max,g=u.max,p=h.min,f=u.min,m=l.config,v=m.canvasWidth,b=m.canvasHeight,x=r.quadrantLabelPadding,y=r.tlConfig,C=r.trConfig,k=r.blConfig,S=r.brConfig;return e=r.xVal||(r.xVal=(p+d)/2),(t=r.yVal||(r.yVal=(f+g)/2))>=f&&t<=g&&e>=p&&e<=d?(i=v-(a=v/(d-p)*(e-p)),n=b-(o=b/(g-f)*(t-f)),a-=x,i-=x,o-=x,((n-=x)<0||a<0)&&(y.enabled=!1),(n<0||i<0)&&(C.enabled=!1),(o<0||a<0)&&(k.enabled=!1),(o<0||a<0)&&(S.enabled=!1)):r.enabled=!1,this},a._createGroups=function(){var e,t=this.getFromEnv("chart"),a=t.getFromEnv("animationManager"),i=t.getChildren("canvas")[0].getChildContainer("quadrantGroup"),n=this.getContainer("quadrantChildContainer"),o=this.getContainer("quadrantLineGroup"),r=this.getContainer("quadrantTLGroup"),l=this.getContainer("quadrantTRGroup"),s=this.getContainer("quadrantBLGroup"),c=this.getContainer("quadrantBRGroup");e=a.setAnimation({el:n||"group",attr:{name:"quadrant-child-container"},container:i,component:this,label:"group"}),n||this.addContainer("quadrantChildContainer",e),this.addContainer("quadrantLineGroup",a.setAnimation({el:o||"group",attr:{name:"quadrantLineGroup"},container:e,component:this,label:"group"})),this.addContainer("quadrantTLGroup",a.setAnimation({el:r||"group",attr:{name:"quadrantTLGroup"},container:e,component:this,label:"group"})),this.addContainer("quadrantTRGroup",a.setAnimation({el:l||"group",attr:{name:"quadrantTRGroup"},container:e,component:this,label:"group"})),this.addContainer("quadrantBLGroup",a.setAnimation({el:s||"group",attr:{name:"quadrantBLGroup"},container:e,component:this,label:"group"})),this.addContainer("quadrantBRGroup",a.setAnimation({el:c||"group",attr:{name:"quadrantBRGroup"},container:e,component:this,label:"group"}))},a.draw=function(){var e,t,a,i,n,o,r,l=this._preDraw(),s=l.conf,c=l.getFromEnv("chart"),p=c.config,f=p.reverseXAxis,m={wrtVisible:!0},v=l.getFromEnv("smartLabel"),b=l.getFromEnv("animationManager"),x=l.graphics,y=x.tlLabel,C=x.trLabel,k=x.blLabel,S=x.brLabel,w=p.textDirection,L=c.getChildren("xAxis")[0],A=c.getChildren("yAxis")[0],N=s.tlConfig||{},F=s.trConfig||{},E=s.blConfig||{},_=s.brConfig||{},T=N.enabled&&N.label,P=F.enabled&&F.label,D=E.enabled&&E.label,I=_.enabled&&_.label,M=p.canvasLeft,O=p.canvasTop,R=s.quadrantLabelPadding,V=L.getLimit(),B=A.getLimit(),G=f?V.min:V.max,H=f?V.max:V.min,z=B.max,W=B.min,j=L.getPixel(H,m)+R,U=L.getPixel(G,m)-R,q=A.getPixel(W,m)-R,Y=A.getPixel(z,m)+R,X=L.getPixel(s.xVal,m),K=A.getPixel(s.yVal,m),Z=X-j,J=U-X,$=K-Y,Q=q-K,ee=x.horizontalQuadLine,te=x.verticalQuadLine,ae=function(){this.hide()};l._createGroups(),t=l.getContainer("quadrantChildContainer"),a=l.getContainer("quadrantLineGroup"),i=l.getContainer("quadrantTLGroup"),n=l.getContainer("quadrantTRGroup"),o=l.getContainer("quadrantBLGroup"),r=l.getContainer("quadrantBRGroup"),s.enabled?(t.show(),x.horizontalQuadLine=b.setAnimation({el:ee||"path",container:a,attr:{path:"M"+M+" "+K+"h"+p.canvasWidth,stroke:s.quadrantLineColor,"stroke-dasharray":s.dashStyle,"stroke-width":s.quadrantLineThickness,"stroke-linecap":"butt"},component:l,label:"path"}),x.verticalQuadLine=b.setAnimation({el:te||"path",container:a,attr:{path:"M"+X+" "+O+"v"+p.canvasHeight,stroke:s.quadrantLineColor,"stroke-width":s.quadrantLineThickness,"stroke-dasharray":s.dashStyle,"stroke-linecap":"butt"},component:l,label:"path"}),T?(v.useEllipsesOnOverflow(p.useEllipsesWhenOverflow),v.setStyle(s.tlConfig.styleObj),e=v.getSmartText(T,Z,$),(y=x.tlLabel=b.setAnimation({el:y||"text",attr:{"text-anchor":h,"vertical-align":u,x:j,y:Y,text:e.text,direction:w,"text-bound":s.tlConfig["text-bound"]},container:i,component:l,label:"text"})).css(s.tlConfig.styleObj)):y&&b.setAnimation({el:y,callback:ae,component:this,label:"text"}),P?(v.setStyle(s.trConfig.styleObj),e=v.getSmartText(P,J,$),(C=x.trLabel=b.setAnimation({el:C||"text",attr:{"text-anchor":g,"vertical-align":u,direction:w,x:U,y:Y,text:e.text,"text-bound":s.trConfig["text-bound"]},container:n,component:l,label:"text"})).css(s.trConfig.styleObj)):C&&b.setAnimation({el:C,callback:ae,component:this,label:"text"}),D?(v.setStyle(s.blConfig.styleObj),e=v.getSmartText(D,Z,Q),(k=x.blLabel=b.setAnimation({el:k||"text",attr:{"text-anchor":h,"vertical-align":d,direction:w,x:j,y:q,text:e.text,"text-bound":s.blConfig["text-bound"]},container:o,component:l,label:"text"})).css(s.blConfig.styleObj)):k&&b.setAnimation({el:k,callback:ae,component:this,label:"text"}),I?(v.setStyle(s.brConfig.styleObj),e=v.getSmartText(I,J,Q),(S=x.brLabel=b.setAnimation({el:S||"text",attr:{"text-anchor":g,"vertical-align":d,direction:w,x:U,y:q,text:e.text,"text-bound":s.brConfig["text-bound"]},container:r,component:l,label:"text"})).css(s.brConfig.styleObj)):S&&b.setAnimation({el:S,callback:ae,component:this,label:"text"})):t&&b.setAnimation({el:t,component:l,doNotRemove:!0,callback:function(){this.hide()},label:"group"})},t}(r.ComponentInterface);t["default"]=p},598:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]={"initial.canvas.quadrant":function(){return{"path.appearing":function(){return[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"axis"}]},"text.appearing":function(){return[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"plot"}]}}}}},599:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=function(e){var t,a,i=e.getChildren("canvas")[0],r=i.getChildren("axisRefVisualCartesian")[0],l={zoomable:!0,pannable:!0},s=e._feedAxesRawData(),c=function(e){var t=e.sender;r.addexplicitDrawItems(t.getId(),t),r.asyncDraw()};(0,n.componentFactory)(e,o["default"],"yAxis",1,s.yAxisConf),(0,n.componentFactory)(e,o["default"],"xAxis",1,s.xAxisConf),t=e.getChildren("yAxis")[0],a=e.getChildren("xAxis")[0],t.setLinkedItem("canvas",i),a.setLinkedItem("canvas",i),r.setLinkedItem(t.getId(),t),r.setLinkedItem(a.getId(),a),r.addExtEventListener("visiblerangeset",c,a),r.addExtEventListener("visiblerangeset",c,t),i.attachAxis(a,!1,e.zoomX?l:{}),i.attachAxis(t,!0,e.zoomY?l:{}),e._setCategories()};var n=a(184),o=i(a(422))},600:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(498)),r=a(184),l=a(192),s=i(a(601)),c=i(a(602)),h=Math,u=h.max,d=h.min,g=h.round;(0,l.addDep)({name:"scatterAnimation",type:"animationRule",extension:c["default"]});var p=function(e){function t(){return e.apply(this,arguments)||this}(0,n["default"])(t,e);var a=t.prototype;return a.getType=function(){return"dataset"},a.setupHoverTracker=function(){var e,t,a,i,n,o,r,l=this.config.searchDataArr=[],c=this.components.data,h={},u=this.getSkippingInfo&&this.getSkippingInfo(),d=u&&u.draw||[],g=d.length,p=u&&u.skippingApplied;for(a=c.length,p&&(a=g),t=0;t<a;t++)(o=c[e=d[t]||[t]])&&(i=(r=o.config)._Px,n=r._Py,h=r.anchorProps,l.push({x:i,y:n,index:e,data:o,r:h.radius||0}));this.config.dataTree=(new s["default"]).buildKdTree(l)},a.getName=function(){return"scatter"},a.addDatasetSpecificEvtArgs=function(e){var t=e.config,a=t.anchorProps,i=t.eventArgs;Object.assign(i,{showValue:t.showValue,hoverColor:!0===t.hoverEffects.enabled?t.hoverEffects.hoverColor||a.bgColor:void 0,hoverAlpha:!0===t.hoverEffects.enabled?t.hoverEffects.hoverAlpha||"100":void 0,anchorBgColor:a.bgColor,anchorBgAlpha:a.anchorBgAlpha,anchorAlpha:a.anchorAlpha,anchorBorderColor:a.borderColor,anchorBorderThickness:a.borderThickness,anchorRadius:a.radius,anchorSides:a.sides,anchorStartAngle:a.startAngle,anchorHoverSides:t.hoverEffects.anchorSides})},a.configureAttributes=function(e){if(!e)return!1;this.trimData(e),this.config.JSONData=e;var t,a,i,n,o,l=this.getFromEnv("chart"),s=this.config,c=s.JSONData,h=l.areaAlpha,u=l.getFromEnv("dataSource").chart,d=this.getFromEnv("color-manager"),g=(0,r.pluckNumber)(c.showplotborder,u.showplotborder||1),p=d.getPlotColor(this.index),f=s.lineDashed=(0,r.pluckNumber)(c.linedashed,c.dashed,u.linedashed,0),m=this.isLineSet;s.plotColor=p,n=(0,r.pluckNumber)(l.defaultPlotShadow,d.getColor("showShadow")),s.toolTipSepChar=(0,r.pluck)(u.tooltipsepchar,", "),s.defaultValuePadding={left:0,right:0},s.parentYAxis=a=m?1:"s"===(0,r.pluck)(c.parentyaxis&&c.parentyaxis.toLowerCase(),"p")?1:0,this.config.yAxis=this.getFromEnv("yAxis")[a],s.connectNullData=(0,r.pluckNumber)(u.connectnulldata,0),s.seriesname=(0,r.parseUnsafeString)(c.seriesname),s.includeinlegend=(0,r.pluckNumber)(c.includeinlegend,s.seriesname?1:0),s.showTextOutline=(0,r.pluckNumber)(u.textoutline,0),s.enableAnimation=i=(0,r.pluckNumber)(u.animation,u.defaultanimation,1),s.animation=!!i&&{duration:1e3*(0,r.pluckNumber)(u.animationduration,1)},s.transposeanimation=(0,r.pluckNumber)(u.transposeanimation,i),s.transposeanimduration=1e3*(0,r.pluckNumber)(u.transposeanimduration,.2),s.showvalues=(0,r.pluckNumber)(c.showvalues,u.showvalues),s.valuePadding=(0,r.pluckNumber)(u.valuepadding,2),s.valuePosition=(0,r.pluck)(c.valueposition,u.valueposition,"auto"),s.showTooltip=(0,r.pluckNumber)(u.showtooltip,1),s.seriesNameInTooltip=(0,r.pluckNumber)(u.seriesnameintooltip,1),s.plotFillColor=s.plotfillcolor=(0,r.pluck)(c.color,u.plotfillcolor,p),s.plotFillAngle=s.plotFillAngle=(0,r.pluck)(u.plotfillangle,270),s.plotFillAlpha=s.plotfillalpha=(0,r.pluck)(c.alpha,u.plotfillalpha,h,"70"),o=(0,r.pluckNumber)(u.useplotgradientcolor,1),s.plotGradientColor=s.plotgradientcolor=0!==o?(0,r.getDefinedColor)(u.plotgradientcolor,d.getColor("plotGradientColor")):"",s.fillColor=s.fillcolor={color:s.plotfillcolor+(s.plotgradientcolor?","+s.plotgradientcolor:r.BLANKSTRING),alpha:s.plotfillalpha,angle:s.plotFillAngle},s.plotBorderAlpha=s.plotborderalpha=g?(0,r.pluck)(c.plotborderalpha,u.plotborderalpha,c.alpha,"95"):0,s.plotBorderColor=s.plotbordercolor=(0,r.pluck)(c.plotbordercolor,u.plotbordercolor,u.areabordercolor,"666666"),s.dashed=t=(0,r.pluckNumber)(c.dashed,u.plotborderdashed),s.plotBorderDashLen=s.plotborderdashlen=(0,r.pluck)(c.plotborderdashlen,u.plotborderdashlen,5),s.plotBorderDashGap=s.plotborderdashgap=(0,r.pluck)(c.plotborderdashgap,u.plotborderdashgap,4),s.plotBorderThickness=s.plotborderthickness=(0,r.pluckNumber)(c.plotborderthickness,u.plotborderthickness,1),s.plotBorderDashStyle=s.plotborderdashstyle=t?(0,r.getDashStyle)(s.plotborderdashlen,s.plotborderdashgap):"none",s.showHoverEffect=s.showhovereffect=(0,r.pluckNumber)(u.plothovereffect,u.anchorhovereffect,u.showhovereffect,void 0),s.rotateValues=(0,r.pluckNumber)(u.rotatevalues)?270:0,s.drawLine=(0,r.pluckNumber)(c.drawline,u.drawlines,0),s.lineThickness=s.linethickness=(0,r.pluckNumber)(c.linethickness,u.linethickness,2),s.lineDashLen=s.linedashlen=(0,r.pluckNumber)(c.linedashlen,u.linedashlen,5),s.lineDashGap=s.linedashgap=(0,r.pluckNumber)(c.linedashgap,u.linedashgap,4),s.lineAlpha=s.linealpha=(0,r.pluckNumber)(c.linealpha,u.linealpha,c.alpha,r.HUNDREDSTRING),s.lineColor=s.linecolor=(0,r.pluck)(c.linecolor,u.linecolor,c.color,s.plotColor),s.lineDashStyle=s.linedashstyle=(0,r.getDashStyle)(s.linedashlen,s.linedashgap),s.lineDashStyle=s.linedashstyle=f?s.linedashstyle:"none",s.shadow={opacity:(0,r.pluckNumber)(u.showshadow,n)?s.linealpha/100:0},s.drawanchors=(0,r.pluckNumber)(c.drawanchors,c.showanchors,u.drawanchors,u.showanchors),s.anchorbgcolor=(0,r.getFirstColor)((0,r.pluck)(c.anchorbgcolor,u.anchorbgcolor,d.getColor("anchorBgColor"))),s.anchorbordercolor=(0,r.getFirstColor)((0,r.pluck)(c.anchorbordercolor,c.color,u.anchorbordercolor,s.linecolor)),s.anchorradius=(0,r.pluckNumber)(c.anchorradius,u.anchorradius,3),s.anchoralpha=(0,r.pluck)(c.anchoralpha,c.alpha,u.anchoralpha,r.HUNDREDSTRING),s.anchorbgalpha=(0,r.pluck)(c.anchorbgalpha,c.alpha,u.anchorbgalpha,r.HUNDREDSTRING),s.anchorborderthickness=(0,r.pluck)(c.anchorborderthickness,u.anchorborderthickness,1),s.anchorsides=(0,r.pluckNumber)(c.anchorsides,u.anchorsides,s.index+3),s.anchorimageurl=(0,r.pluck)(c.anchorimageurl,u.anchorimageurl),s.anchorimagealpha=(0,r.pluckNumber)(c.anchorimagealpha,u.anchorimagealpha,100),s.anchorimagescale=(0,r.pluckNumber)(c.anchorimagescale,u.anchorimagescale,100),s.anchorimagepadding=(0,r.pluckNumber)(c.anchorimagepadding,u.anchorimagepadding,1),s.anchorstartangle=(0,r.pluckNumber)(c.anchorstartangle,u.anchorstartangle,90),s.anchorshadow=(0,r.pluckNumber)(c.anchorshadow,u.anchorshadow,0),s.plotToolText=(0,r.getValidValue)((0,r.parseUnsafeString)((0,r.pluck)(c.plottooltext,u.plottooltext))),this.setState("visible",1===(0,r.pluckNumber)(c.visible,!Number(c.initiallyhidden),1)),this._setConfigure(),!1!==l.config.hasLegend&&l.config.showLegend&&this._addLegend(),this.setState("dirty",!0)},a.calculateScrollRange=function(){var e=this.config,t=this.getFromEnv("chart"),a=this.getFromEnv("xAxis"),i=t.hasScroll,n=this.components.data.length;e.scrollMinVal=i?u(g(a.getVisibleConfig().minValue)-1,0):0,e.scrollMaxVal=i?d(g(a.getVisibleConfig().maxValue)+2,n):n,e.scrollMinValForLabel=e.scrollMinVal,e.scrollMaxValForLabel=e.scrollMaxVal},a._setConfigure=function(){var e,t,a,i,n,o,l,s,c,h,u,d,g=-Infinity,p=+Infinity,f=g,m=p,v=p,b=g,x=this.components.data||(this.components.data=[]),y=this.getFromEnv("chart"),C=this.config,k=C.JSONData,S=y.getFromEnv("dataSource").chart,w=k.data||[],L=w.length,A=this.getFromEnv("number-formatter"),N=(0,r.parseUnsafeString)(S.yaxisname),F=(0,r.parseUnsafeString)(S.xaxisname),E=C.lineDashed,_=C.linedashstyle,T=C.parentYAxis,P=C.toolTipSepChar,D=C.seriesname;for(C.imageCount=0,e=0;e<L;e+=1)i=w[e],(t=(a=x[e]||(x[e]={})).config||(a.config={})).setValue=n={x:A.getCleanValue(i.x),y:A.getCleanValue(i.y)},null!==n.x&&null!==n.y&&(n.x>b&&(b=n.x,C.rightMostData=a),n.x<v&&(v=n.x,C.leftMostData=a),n.y>f&&(f=n.y,C.topMostData=a),n.y<m&&(m=n.y,C.bottomMostData=a)),t._x=n.x,t._y=n.y,t.dataLabelStyle=this._configureDataLabelStyle(i),t.setLink=(0,r.pluck)(i.link),t.anchorProps=this._parseAnchorProperties(e),t.showValue=(0,r.pluckNumber)(i.showvalue,C.showvalues),t.dashed=(0,r.pluckNumber)(i.dashed,E),t.color=(0,r.pluck)(i.color,C.linecolor),t.alpha=(0,r.pluck)(i.alpha,C.linealpha),t.dashStyle=t.dashed?_:"none",t.toolTipValue=l=A.dataLabels(n.y,T),t.setDisplayValue=d=(0,r.parseUnsafeString)(i.displayvalue),h=t.formatedVal=(0,r.pluck)(i.toolTipValue,A.dataLabels(n.y,T)),u=A.xAxis(n.x),t.displayValue=(0,r.pluck)(d,l),t.setTooltext=(0,r.getValidValue)((0,r.parseUnsafeString)((0,r.pluck)(i.tooltext,C.plotToolText))),C.showTooltip?void 0!==t.setTooltext?(s=[4,5,6,7,8,9,10,11],c={yaxisName:N,xaxisName:F,yDataValue:h,xDataValue:u},o=(0,r.parseTooltext)(t.setTooltext,s,c,i,S,k)):null===h?o=!1:(o=D?D+P:r.BLANKSTRING,o+=n.x?u+P:r.BLANKSTRING,o+=l):o=!1,t.toolText=o,a?a.graphics||(x[e].graphics={}):a=x[e]={graphics:{}},t.hoverEffects=this._parseHoverEffectOptions(a,i),t.anchorProps.isAnchorHoverRadius=t.hoverEffects.anchorRadius;C.xMax=b,C.xMin=v,C.yMin=m,C.yMax=f,this.ErrorValueConfigure&&this.ErrorValueConfigure()},a._getHoveredPlot=function(e,t){var a=this.config.dataTree.getNeighbour({x:e,y:t},!0);if(a)return{pointIndex:a.index||a.i,hovered:!0,pointObj:a.data}},a.drawPlots=function(){e.prototype.drawPlots.call(this),this.setupHoverTracker()},a.getRegressionPoints=function(){var e,t,a,i,n,o,r,l,s=this.getChildren("regression"),c=-Infinity,h=Infinity,u=-Infinity,d=Infinity;if(s&&s.length&&!s[0].getState("removed")){for(r=(e=s[0]._config.regressionPoints||[]).length,t=0;t<r;t++)for(n=e[t],a=0;a<n.length;a++)for(l=(o=n[a]||[]).length,i=0;i<l;i++)c=Math.max(c,o[i].x),h=Math.min(h,o[i].x),u=Math.max(u,o[i].y),d=Math.min(d,o[i].y);return{max:u,min:d,xMax:c,xMin:h}}},a.getDataLimits=function(){var e=this.config,t=this.getFromEnv("chart").config,a=e.yMax,i=e.yMin,n=e.xMax,o=e.xMin,r=-Infinity,l=+Infinity,s=t.transposeAxis,c=this.getRegressionPoints();return!1===this.getState("visible")&&s&&(a=r,i=l,n=r,o=l),c&&(a=Math.max(a,c.max),i=Math.min(i,c.min),n=Math.max(n,c.xMax),o=Math.min(o,c.xMin)),{max:a,min:i,xMax:n,xMin:o}},a.getAxisValuePadding=function(){return this.config.defaultValuePadding},a.getCanvasPadding=function(){var e,t,a,i,n,o,l,s,c,h,g,p,f,m,v,b,x,y=this.config||(this.config={}),C=this.components||{},k=this.getFromEnv("chartConfig"),S=k.rotatevalues,w=this.getFromEnv("xAxis"),L=this.getFromEnv("yAxis"),A=w.config.isReverse,N=this.getFromEnv("dataLabelStyle"),F=C.data||[],E=F.length,_=y.leftMostData||F[0],T=y.rightMostData||F[F.length-1],P=y.topMostData,D=y.bottomMostData,I=d(k.canvasHeight,k.canvasWidth)/8,M=w.getValue(0),O=1,R=1,V=k.zMax,B=y.bubbleScale,G={},H={},z=0,W=0,j=w.config.axisRange,U=j.min,q=j.max,Y=L.config.axisRange,X=Y.min,K=Y.max,Z=w.getPixel(U),J=w.getPixel(q),$=this.getFromEnv("smartLabel"),Q={paddingLeft:0,paddingRight:0},ee=0;for(e=I/Math.sqrt(V),c=0;c<E;c++)t=F[c].config,a=_.config,i=T.config,l=Math.sqrt(t.z),m=Math.round(l*e)*B||0,v=w.getValue(m)-M,h=t.x-v/2,1===O&&(l=Math.sqrt(a.z),m=Math.round(l*e)*B||0,v=w.getValue(m)-M,g=a.x-v/2),1===R&&(l=Math.sqrt(i.z),m=Math.round(l*e)*B||0,v=w.getValue(m)-M,p=i.x-v/2),O=0,R=0,g>h&&(_=F[c],O=1),p<h&&(T=F[c],R=1);return _&&(o=(n=_.config).anchorProps.radius,(b=n.showValue)&&(f=n.displayValue,$.useEllipsesOnOverflow(k.useEllipsesWhenOverflow),$.setStyle(N),H=$.getOriSize(f),ee=S?H.height:H.width),null!==n.setValue&&(h=w.getPixel(n.setValue.x),W=A?J-(s=h-.5*ee):Z-(s=h-.5*ee),z=!A&&h-o<=Z||A&&h-o<=J?A?J-(h-o):Z-(h-o):0),Q.paddingLeft=u(W,z)),T&&(b=(n=T.config).showValue,o=n.anchorProps.radius,b&&(f=n.displayValue,$.setStyle(N),G=$.getOriSize(f),ee=S?G.height:G.width),null!==n.setValue&&(W=(s=(h=w.getPixel(n.setValue.x))-Z+.5*ee)-J+Z,A&&(W=s),z=!A&&h+o>=J||A&&h+o>=Z?A?h+o-Z:h+o-J:0),Q.paddingRight=u(W,z)),P&&(o=(n=P.config).anchorProps.radius||0,K=L.getPixel(K),null!==n.setValue&&(x=L.getPixel(n.setValue.y),z=(0,r.pluckNumber)(o,0)+(0,r.pluckNumber)(n.anchorProps.borderThickness,0)/2),Q.paddingTop=K-(x-z)>0?K-(x-z):0),D&&(o=(n=D.config).anchorProps.radius||0,X=L.getPixel(X),null!==n.setValue&&(x=L.getPixel(n.setValue.y),z=(0,r.pluckNumber)(o,0)+(0,r.pluckNumber)(n.anchorProps.borderThickness,0)/2),Q.paddingBottom=x+z-X>0?x+z-X:0),Q},a._addLegend=function(){var e,t,a,i,n,o,l,s,c,h=this.getFromEnv("chart"),u=this.config,d=h.getChildren("legend")[0],g=(0,r.pluckNumber)(u.drawanchors,1),p={fillColor:(o=u.anchorbgcolor,l=r.HUNDREDSTRING,s=o,c=l,s=(0,r.getFirstColor)(s),c=(0,r.getFirstAlpha)(c),{FCcolor:{gradientUnits:"objectBoundingBox",cx:.4,cy:.4,r:"100%",color:(0,r.getLightColor)(s,70)+","+(0,r.getDarkColor)(s,50),alpha:c+","+c,ratio:r.BGRATIOSTRING,radialGradient:!0}}),lineColor:{FCcolor:{color:u.anchorbordercolor,alpha:u.anchoralpha}},lineWidth:u.anchorborderthickness};d.config.symbol3DLighting?p.fillcolor&&p.fillcolor.FCcolor?(e=(0,r.extend2)({},p.fillcolor)).FCcolor.alpha=r.HUNDREDSTRING:e=(0,r.pluck)(p.fillColor):e={FCcolor:{color:(0,r.pluck)((t=p.fillColor)&&(t.FCcolor&&t.FCcolor.color.split(",")[0]||t)),angle:0,ratio:"0",alpha:"100"}},i={enabled:u.includeInLegend,type:this.type,drawLine:(0,r.pluck)(u.drawLine,!0),anchorSide:g?u.anchorsides:0,label:(0,r.getFirstValue)(this.config.JSONData.seriesname)},u.includeinlegend?((n=d.getItem(this.config.legendItemId))?n.configure({style:d.config.itemStyle,hiddenStyle:d.config.itemHiddenStyle,datasetVisible:d.config.datasetVisible,hoverStyle:d.config.itemHoverStyle}):(this.config.legendItemId=d.createItem(this),n=d.getItem(this.config.legendItemId),this.addExtEventListener("fc-click",(function(){n.itemClickFn()}),n)),n.configure(i),n.setStateCosmetics("default",{symbol:{fill:(0,r.toRaphaelColor)(e),rawFillColor:u.anchorbgcolor,rawStrokeColor:u.lineColor,stroke:(0,r.toRaphaelColor)((0,r.pluck)((a=p.lineColor)&&(a.FCcolor&&a.FCcolor.color.split(",")[0]||a))),"stroke-width":u.anchorborderthickness}}),this.getState("visible")?n.removeLegendState("hidden"):n.setLegendState("hidden")):this.config.legendItemId&&d.disposeItem(this.config.legendItemId)},a.getDSGroupdef=function(){},a.trimData=function(e){if(this.config.JSONData){var t,a,i=this.config,n=i&&i.context,o=n&&n.prevCatlen,r=this.getFromEnv("xAxis").getTicksLen(),l=o-r,s=i.JSONData,c=s.data&&s.data.length,h=e.data&&e.data.length||0,u=c-h;l>u?(t=l,a=r):(t=u,a=h),t>0&&this.removeData(a,t,!1)}},t}(o["default"]);t["default"]=p},601:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(e,t,a,i,n){return Math.pow(a-e,2)+Math.pow(i-t,2)<=Math.pow(n,2)},n=Math.PI,o=Math.cos,r=Math.sin,l=Math.max,s=Math.min,c=n/180,h=function(e,t,a,i,n,o){var r,l,s;return r=(i-t)*(n-a),l=(a-e)*(o-i),isNaN(r)&&(r=0),isNaN(l)&&(l=0),0===(s=r-l)?0:s>0?1:2},u=function(e,t,a,i,n,o){return a<=l(e,n)&&a>=s(e,n)&&i<=l(t,o)&&i>=s(t,o)},d=function(e,t,a,i,n,o,r,l){var s=h(e,t,a,i,n,o),c=h(e,t,a,i,r,l),d=h(n,o,r,l,e,t),g=h(n,o,r,l,a,i);return s!==c&&d!==g||(!(0!==s||!u(e,t,n,o,a,i))||(!(0!==c||!u(e,t,r,l,a,i))||(!(0!==d||!u(n,o,e,t,r,l))||!(0!==g||!u(n,o,a,i,r,l)))))},g=function(e,t,a,l,s,g,p){var f,m,v,b,x,y,C,k=Infinity,S=0,w=!1;if(i(e,t,a,l,s)&&g>=3){for(m=void 0===p?.5*n:p%360*c,C=2*n/g,v=a+s*o(-m),y=l+s*r(-m),f=0;f<g;f++){if(b=a+s*o(-(m+=C)),x=l+s*r(-m),d(v,y,b,x,e,t,k,t)){if(0===h(v,y,e,t,b,x))return u(v,y,e,t,b,x);S++}v=b,y=x}w=S%2!=0}return w},p=function(e,t){return!e||e&&t&&t.i>e.i?t:e};var f=function(){function e(e){this.configure(e)}var t=e.prototype;return t.configure=function(e){this.validatorFn=e?this.shapeValidator():this.defaultValidator()},t.defaultValidator=function(){var e=this;return function(t){var a=e.mousePoint;return!!(t&&Math.pow((t.x-a.x)/e.xLimit,2)+Math.pow((t.y-a.y)/e.yLimit,2)<=1)}},t.shapeValidator=function(){var e=this;return function(t){var a,n,o,r,l,s,c,h,u=e.mousePoint,d=t&&t.shapeInfo,p=!1,f=u.x,m=u.y;switch(d&&d.type){case"circle":n=d.radius,p=i(f,m,t.x,t.y,n);break;case"arc":a=d.innerradius,n=d.radius,p=!i(f,m,t.x,t.y,a)&&i(f,m,t.x,t.y,n);break;case"polygon":n=d.radius,r=d.startAngle,o=d.sides,p=g(f,m,t.x,t.y,n,o,r);break;case"rect":case"rectangle":l=t.x,c=t.y,s=l+(d.width||0),h=c+(d.height||0),p=f>=l&&f<=s&&m>=c&&m<=h;break;case"default":p=!1}return p}},t.buildKdTree=function(e){return this.kdTree=function(e){var t,a,i,n=e,o=n&&n[0]&&n[0].r||5,r=Math.max,l=Math.floor,s=Math.sqrt,c=Math.min,h=Math.log,u=Math.exp,d=Math.pow;function g(e,t,a){var i=e[t];e[t]=e[a],e[a]=i}for(a=function(e,t,i,n){for(var o,d,p,f,m,v,b,x,y,C,k=i,S=n;S>k;){for(S-k>600&&(d=t-k+1,p=h(o=S-k+1),f=.5*u(2*p/3),m=.5*s(p*f*(o-f)/o)*(d-o/2<0?-1:1),v=r(k,l(t-d*f/o+m)),b=c(S,l(t+(o-d)*f/o+m)),a(e,t,v,b)),x=e[t],y=k,C=S,g(e,k,t),e[S].x>x.x&&g(e,k,S);y<C;){for(g(e,y,C),y++,C--;e[y].x<x.x;)y++;for(;e[C].x>x.x;)C--}e[k].x===x.x?g(e,k,C):g(e,++C,S),C<=t&&(k=C+1),t<=C&&(S=C-1)}},i=function(e,t,a,n){for(var o,d,p,f,m,v,b,x,y,C,k=a,S=n,w=e;S>k;){for(S-k>600&&(d=t-k+1,p=h(o=S-k+1),f=.5*u(2*p/3),m=.5*s(p*f*(o-f)/o)*(d-o/2<0?-1:1),v=r(k,l(t-d*f/o+m)),b=c(S,l(t+(o-d)*f/o+m)),i(w,t,v,b)),x=w[t],y=k,C=S,g(w,k,t),w[S].y>x.y&&g(w,k,S);y<C;){for(g(w,y,C),y++,C--;w[y].y<x.y;)y++;for(;w[C].y>x.y;)C--}w[k].y===x.y?g(w,k,C):g(w,++C,S),C<=t&&(k=C+1),t<=C&&(S=C-1)}},t=(n=n||[]).length;t--;)n[t].r>o&&(o=n[t].r),n[t].i=t,n[t].x=+n[t].x,n[t].y=+n[t].y;return{tree:0===n.length?{}:function p(e,t,n,o){var r,l={},s=o?"y":"x";return t===n?(l.point=e[t],l):n-t==1?(e[t][s]>e[n][s]?(l.point=e[t],l.left={point:e[n]}):(l.point=e[n],l.left={point:e[t]}),l):(r=t+n>>1,o?i(e,r,t,n):a(e,r,t,n),l.point=e[r],l.left=p(e,t,r-1,!o),l.right=p(e,r+1,n,!o),l)}(n,0,n.length-1,!1),search:function(e,t,a,i){var n,r,l,c=this.tree,h=i,u=e-o,g=e+o,p=t-o,f=t+o,m=!1,v=0;function b(e,t,a,i){return s(d(e-a,2)+d(t-i,2))}function x(i,n){return"circle"===a?b(i,n,e,t)<=u:i>=u&&i<=g&&n>=p&&n<=f}function y(e,t,a){return e>=t&&e<=a}function C(a){var i=y(e,a.x1,a.x2)&&y(t,a.y1,a.y2),o=b(e,t,a.point.x,a.point.y);if(!n)return n=a,m=i,void(v=o);i?m?a.point.i>n.point.i&&(n=a,m=i,v=o):(n=a,m=i,v=o):m||o<v&&(n=a,m=i,v=o)}function k(i,n){"circle"===a?u=i:(u=e-i||0,g=e+i||0,p=t-n||0,f=t+n||0)}return h=h||{},l=function(e){e&&e.point&&(k(h.rx||e.point.r,h.ry||e.point.r),x(e.point.x,e.point.y)&&C(e),p<=e.point.y&&r(e.left),f>=e.point.y&&r(e.right))},(r=function(e){e&&e.point&&(k(h.rx||e.point.r,h.ry||e.point.r),x(e.point.x,e.point.y)&&C(e),u<=e.point.x&&l(e.left),g>=e.point.x&&l(e.right))})(c),n&&n.point||n}}}(e),this.tree=this.kdTree.tree,this},t.getNeighbour=function(e,t,a){var i=this.tree,n={x1:e.x-this.xLimit,x2:e.x+this.xLimit,y1:e.y-this.yLimit,y2:e.y+this.yLimit},o=this.validatorFn;return this.mousePoint=e,t?this.kdTree&&this.kdTree.search(e.x,e.y,a,e.options):i?this._searchBtwnLimit(n,i,!0,o):void 0},t._searchBtwnLimit=function(e,t,a,i){var n,o,r=a?"x":"y",l=a?e.x1:e.y1,s=a?e.x2:e.y2;if(void 0!==(n=t&&t.point&&t.point[r]))return i(t.point)&&(o=t.point),n>=l&&t.left&&(o=p(o,this._searchBtwnLimit(e,t.left,!a,i))),n<=s&&t.right&&(o=p(o,this._searchBtwnLimit(e,t.right,!a,i))),o},t._setSearchLimit=function(e,t){this.xLimit=e,this.yLimit=t},e}();f.prototype.constructor=f;var m=f;t["default"]=m},602:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n={"*.dataset.scatter":i(a(501))["default"]["*.dataset.line"]};t["default"]=n},610:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(499)),r=i(a(611)),l=function(e){function t(){var t;return(t=e.call(this)||this).defaultPlotShadow=0,t}(0,n["default"])(t,e),t.getName=function(){return"MSArea"};var a=t.prototype;return a.getName=function(){return"MSArea"},a.getDSdef=function(){return o["default"]},a.getDSGroupdef=function(){},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;t.friendlyName="Multi-series Area Chart",t.defaultDatasetType="area",t.defaultcrosslinethickness=1},t}(r["default"]);t["default"]=l},611:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t._setDefaultConfig=t["default"]=void 0;var n=i(a(198)),o=i(a(572)),r=a(184),l=r.preDefStr.SEVENTYSTRING,s=function(){var e=this.config;e.anchorborderthickness=1,e.anchorimageurl=void 0,e.anchorimagepadding=1,e.anchorsides=1,e.anchoralpha=void 0,e.anchorbgalpha=r.HUNDREDSTRING,e.anchorimagealpha=r.HUNDREDSTRING,e.anchorimagescale=100,e.anchorstartangle=90,e.anchorshadow=0,e.anchorbgcolor=void 0,e.anchorbordercolor=void 0,e.anchorradius=3,e.showvalues=1,e.plotfillalpha=l,e.linedashlen=5,e.linedashgap=4,e.linedashed=void 0,e.linealpha=r.HUNDREDSTRING,e.linethickness=2,e.drawfullareaborder=1,e.connectnulldata=0};t._setDefaultConfig=s;var c=function(e){function t(){return e.apply(this,arguments)||this}return(0,n["default"])(t,e),t.getName=function(){return"AreaBase"},t.prototype.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this),s.call(this)},t}(o["default"]);t["default"]=c},655:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(611)),r=i(a(498)),l=function(e){function t(){var t;return(t=e.call(this)||this).defaultPlotShadow=1,t.axisPaddingLeft=0,t.axisPaddingRight=0,t}(0,n["default"])(t,e),t.getName=function(){return"MSLine"};var a=t.prototype;return a.getName=function(){return"MSLine"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;t.friendlyName="Multi-series Line Chart",t.defaultDatasetType="line",t.zeroplanethickness=1,t.zeroplanealpha=40,t.showzeroplaneontop=0,t.enablemousetracking=!0,t.defaultcrosslinethickness=1},a.getDSdef=function(){return r["default"]},a.getDSGroupdef=function(){},t}(o["default"]);t["default"]=l},658:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(659))["default"];t["default"]=n},659:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(660))["default"];t["default"]=n},660:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=a(611),r=i(a(564)),l=i(a(404)),s=function(e){function t(){var t;return(t=e.call(this)||this).defaultPlotShadow=1,t}(0,n["default"])(t,e),t.getName=function(){return"Spline"};var a=t.prototype;return a.getName=function(){return"Spline"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;t.friendlyName="Spline Chart",t.singleseries=!0,t.defaultDatasetType="msspline",t.minimizetendency=0,t.zeroplanethickness=1,t.zeroplanealpha=40,t.showzeroplaneontop=0,t.enablemousetracking=!0,t.defaultcrosslinethickness=1,o._setDefaultConfig.call(this)},a.getDSdef=function(){return r["default"]},t}(l["default"]);t["default"]=s},661:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(662))["default"];t["default"]=n},662:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(660)),r=a(611),l=i(a(560)),s=function(e){function t(){var t;return(t=e.call(this)||this).defaultPlotShadow=0,t}(0,n["default"])(t,e),t.getName=function(){return"SplineArea"};var a=t.prototype;return a.getName=function(){return"SplineArea"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;r._setDefaultConfig.call(this),t.friendlyName="Spline Area Chart",t.singleseries=!0,t.hasLegend=!1,t.defaultDatasetType="mssplinearea",t.anchoralpha="100",t.minimizetendency=0,t.enablemousetracking=!0,t.defaultcrosslinethickness=1,t.showzeroplaneontop=1,t.inheritplotbordercolor=0},a.getDSdef=function(){return l["default"]},a.getDSGroupdef=function(){},t}(o["default"]);t["default"]=s},663:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(664))["default"];t["default"]=n},664:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(665))["default"];t["default"]=n},665:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=a(611),r=i(a(564)),l=i(a(508)),s=function(e){function t(){var t;return(t=e.call(this)||this).defaultPlotShadow=1,t}(0,n["default"])(t,e),t.getName=function(){return"MSSpline"};var a=t.prototype;return a.getName=function(){return"MSSpline"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;t.friendlyName="Multi-series Spline Chart",t.defaultDatasetType="msspline",t.minimizetendency=0,t.zeroplanethickness=1,t.zeroplanealpha=40,t.showzeroplaneontop=0,t.enablemousetracking=!0,t.defaultcrosslinethickness=1,o._setDefaultConfig.call(this)},a.getDSdef=function(){return r["default"]},a.getDSGroupdef=function(){},t}(l["default"]);t["default"]=s},666:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(667))["default"];t["default"]=n},667:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=a(611),r=i(a(545)),l=i(a(564)),s=function(e){function t(){var t;return(t=e.call(this)||this).isDual=!0,t}(0,n["default"])(t,e),t.getName=function(){return"MSSplineDy"};var a=t.prototype;return a.getName=function(){return"MSSplineDy"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;t.friendlyName="Multi-series Dual Y-Axis Spline Chart",t.defaultDatasetType="msspline",t.minimizetendency=0,t.zeroplanethickness=1,t.zeroplanealpha=40,t.showzeroplaneontop=0,t.enablemousetracking=!0,t.defaultcrosslinethickness=1,t.isdual=!0,o._setDefaultConfig.call(this)},a.getDSdef=function(){return l["default"]},a.getDSGroupdef=function(){},a.getDSType=function(){return"spline"},t}(r["default"]);t["default"]=s},668:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(669))["default"];t["default"]=n},669:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(665)),r=a(611),l=i(a(560)),s="Multi-series Spline Area Chart",c=function(e){function t(){var t;return(t=e.call(this)||this).friendlyName=s,t.defaultPlotShadow=0,t}(0,n["default"])(t,e),t.getName=function(){return"MSSplineArea"};var a=t.prototype;return a.getName=function(){return"MSSplineArea"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;r._setDefaultConfig.call(this),t.defaultDatasetType="mssplinearea",t.minimizetendency=0,t.zeroplanethickness=2,t.zeroplanealpha=80,t.showzeroplaneontop=1,t.enablemousetracking=!0,t.defaultcrosslinethickness=1},a.getDSdef=function(){return l["default"]},a.getDSGroupdef=function(){},t}(o["default"]);t["default"]=c},678:function(e,t,a){"use strict";a.r(t);var i=a(679),n=a(682),o=a(685),r=a(688),l=a(696),s=Object(i["default"])(Object(n["default"])(["fantasy-land/chain","chain"],r["default"],(function(e,t){return"function"==typeof t?function(a){return e(t(a))(a)}:Object(o["default"])(!1)(Object(l["default"])(e,t))})));t["default"]=s},679:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return o}));var i=a(680),n=a(681);function o(e){return function t(a,o){switch(arguments.length){case 0:return t;case 1:return Object(n["default"])(a)?t:Object(i["default"])((function(t){return e(a,t)}));default:return Object(n["default"])(a)&&Object(n["default"])(o)?t:Object(n["default"])(a)?Object(i["default"])((function(t){return e(t,o)})):Object(n["default"])(o)?Object(i["default"])((function(t){return e(a,t)})):e(a,o)}}}},680:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return n}));var i=a(681);function n(e){return function t(a){return 0===arguments.length||Object(i["default"])(a)?t:e.apply(this,arguments)}}},681:function(e,t,a){"use strict";function i(e){return null!=e&&"object"==typeof e&&!0===e["@@functional/placeholder"]}a.r(t),a.d(t,"default",(function(){return i}))},682:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return o}));var i=a(683),n=a(684);function o(e,t,a){return function(){if(0===arguments.length)return a();var o=Array.prototype.slice.call(arguments,0),r=o.pop();if(!Object(i["default"])(r)){for(var l=0;l<e.length;){if("function"==typeof r[e[l]])return r[e[l]].apply(r,o);l+=1}if(Object(n["default"])(r)){var s=t.apply(null,o);return s(r)}}return a.apply(this,arguments)}}},683:function(e,t,a){"use strict";a.r(t),t["default"]=Array.isArray||function(e){return null!=e&&e.length>=0&&"[object Array]"===Object.prototype.toString.call(e)}},684:function(e,t,a){"use strict";function i(e){return"function"==typeof e["@@transducer/step"]}a.r(t),a.d(t,"default",(function(){return i}))},685:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return n}));var i=a(686);function n(e){return function t(a){for(var n,o,r,l=[],s=0,c=a.length;s<c;){if(Object(i["default"])(a[s]))for(r=0,o=(n=e?t(a[s]):a[s]).length;r<o;)l[l.length]=n[r],r+=1;else l[l.length]=a[s];s+=1}return l}}},686:function(e,t,a){"use strict";a.r(t);var i=a(680),n=a(683),o=a(687),r=Object(i["default"])((function(e){return!!Object(n["default"])(e)||!!e&&("object"==typeof e&&(!Object(o["default"])(e)&&(1===e.nodeType?!!e.length:0===e.length||e.length>0&&(e.hasOwnProperty(0)&&e.hasOwnProperty(e.length-1)))))}));t["default"]=r},687:function(e,t,a){"use strict";function i(e){return"[object String]"===Object.prototype.toString.call(e)}a.r(t),a.d(t,"default",(function(){return i}))},688:function(e,t,a){"use strict";a.r(t);var i=a(679),n=a(689),o=a(696),r=Object(i["default"])((function(e,t){return Object(o["default"])(e,Object(n["default"])(t))}));t["default"]=r},689:function(e,t,a){"use strict";a.r(t);var i=a(690),n=a(686),o=a(691),r=a(695);t["default"]=function(e){var t=function(e){return{"@@transducer/init":r["default"].init,"@@transducer/result":function(t){return e["@@transducer/result"](t)},"@@transducer/step":function(t,a){var n=e["@@transducer/step"](t,a);return n["@@transducer/reduced"]?Object(i["default"])(n):n}}}(e);return{"@@transducer/init":r["default"].init,"@@transducer/result":function(e){return t["@@transducer/result"](e)},"@@transducer/step":function(e,a){return Object(n["default"])(a)?Object(o["default"])(t,e,a):Object(o["default"])(t,e,[a])}}}},690:function(e,t,a){"use strict";function i(e){return{"@@transducer/value":e,"@@transducer/reduced":!0}}a.r(t),a.d(t,"default",(function(){return i}))},691:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return c}));var i=a(686),n=a(692),o=a(693);function r(e,t,a){for(var i=a.next();!i.done;){if((t=e["@@transducer/step"](t,i.value))&&t["@@transducer/reduced"]){t=t["@@transducer/value"];break}i=a.next()}return e["@@transducer/result"](t)}function l(e,t,a,i){return e["@@transducer/result"](a[i](Object(o["default"])(e["@@transducer/step"],e),t))}var s="undefined"!=typeof Symbol?Symbol.iterator:"@@iterator";function c(e,t,a){if("function"==typeof e&&(e=Object(n["default"])(e)),Object(i["default"])(a))return function(e,t,a){for(var i=0,n=a.length;i<n;){if((t=e["@@transducer/step"](t,a[i]))&&t["@@transducer/reduced"]){t=t["@@transducer/value"];break}i+=1}return e["@@transducer/result"](t)}(e,t,a);if("function"==typeof a["fantasy-land/reduce"])return l(e,t,a,"fantasy-land/reduce");if(null!=a[s])return r(e,t,a[s]());if("function"==typeof a.next)return r(e,t,a);if("function"==typeof a.reduce)return l(e,t,a,"reduce");throw new TypeError("reduce: list must be array or iterable")}},692:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return n}));var i=function(){function e(e){this.f=e}return e.prototype["@@transducer/init"]=function(){throw new Error("init not implemented on XWrap")},e.prototype["@@transducer/result"]=function(e){return e},e.prototype["@@transducer/step"]=function(e,t){return this.f(e,t)},e}();function n(e){return new i(e)}},693:function(e,t,a){"use strict";a.r(t);var i=a(694),n=a(679),o=Object(n["default"])((function(e,t){return Object(i["default"])(e.length,(function(){return e.apply(t,arguments)}))}));t["default"]=o},694:function(e,t,a){"use strict";function i(e,t){switch(e){case 0:return function(){return t.apply(this,arguments)};case 1:return function(e){return t.apply(this,arguments)};case 2:return function(e,a){return t.apply(this,arguments)};case 3:return function(e,a,i){return t.apply(this,arguments)};case 4:return function(e,a,i,n){return t.apply(this,arguments)};case 5:return function(e,a,i,n,o){return t.apply(this,arguments)};case 6:return function(e,a,i,n,o,r){return t.apply(this,arguments)};case 7:return function(e,a,i,n,o,r,l){return t.apply(this,arguments)};case 8:return function(e,a,i,n,o,r,l,s){return t.apply(this,arguments)};case 9:return function(e,a,i,n,o,r,l,s,c){return t.apply(this,arguments)};case 10:return function(e,a,i,n,o,r,l,s,c,h){return t.apply(this,arguments)};default:throw new Error("First argument to _arity must be a non-negative integer no greater than ten")}}a.r(t),a.d(t,"default",(function(){return i}))},695:function(e,t,a){"use strict";a.r(t),t["default"]={init:function(){return this.xf["@@transducer/init"]()},result:function(e){return this.xf["@@transducer/result"](e)}}},696:function(e,t,a){"use strict";a.r(t);var i=a(679),n=a(682),o=a(697),r=a(691),l=a(698),s=a(699),c=a(701),h=Object(i["default"])(Object(n["default"])(["fantasy-land/map","map"],l["default"],(function(e,t){switch(Object.prototype.toString.call(t)){case"[object Function]":return Object(s["default"])(t.length,(function(){return e.call(this,t.apply(this,arguments))}));case"[object Object]":return Object(r["default"])((function(a,i){return a[i]=e(t[i]),a}),{},Object(c["default"])(t));default:return Object(o["default"])(e,t)}})));t["default"]=h},697:function(e,t,a){"use strict";function i(e,t){for(var a=0,i=t.length,n=Array(i);a<i;)n[a]=e(t[a]),a+=1;return n}a.r(t),a.d(t,"default",(function(){return i}))},698:function(e,t,a){"use strict";a.r(t);var i=a(679),n=a(695),o=function(){function e(e,t){this.xf=t,this.f=e}return e.prototype["@@transducer/init"]=n["default"].init,e.prototype["@@transducer/result"]=n["default"].result,e.prototype["@@transducer/step"]=function(e,t){return this.xf["@@transducer/step"](e,this.f(t))},e}(),r=Object(i["default"])((function(e,t){return new o(e,t)}));t["default"]=r},699:function(e,t,a){"use strict";a.r(t);var i=a(694),n=a(680),o=a(679),r=a(700),l=Object(o["default"])((function(e,t){return 1===e?Object(n["default"])(t):Object(i["default"])(e,Object(r["default"])(e,[],t))}));t["default"]=l},700:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return o}));var i=a(694),n=a(681);function o(e,t,a){return function(){for(var r=[],l=0,s=e,c=0;c<t.length||l<arguments.length;){var h;c<t.length&&(!Object(n["default"])(t[c])||l>=arguments.length)?h=t[c]:(h=arguments[l],l+=1),r[c]=h,Object(n["default"])(h)||(s-=1),c+=1}return s<=0?a.apply(this,r):Object(i["default"])(s,o(e,r,a))}}},701:function(e,t,a){"use strict";a.r(t);var i=a(680),n=a(702),o=a(703),r=!{toString:null}.propertyIsEnumerable("toString"),l=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],s=function(){return arguments.propertyIsEnumerable("length")}(),c=function(e,t){for(var a=0;a<e.length;){if(e[a]===t)return!0;a+=1}return!1},h="function"!=typeof Object.keys||s?function(e){if(Object(e)!==e)return[];var t,a,i=[],h=s&&Object(o["default"])(e);for(t in e)!Object(n["default"])(t,e)||h&&"length"===t||(i[i.length]=t);if(r)for(a=l.length-1;a>=0;)t=l[a],Object(n["default"])(t,e)&&!c(i,t)&&(i[i.length]=t),a-=1;return i}:function(e){return Object(e)!==e?[]:Object.keys(e)},u=Object(i["default"])(h);t["default"]=u},702:function(e,t,a){"use strict";function i(e,t){return Object.prototype.hasOwnProperty.call(t,e)}a.r(t),a.d(t,"default",(function(){return i}))},703:function(e,t,a){"use strict";a.r(t);var i=a(702),n=Object.prototype.toString;t["default"]=function(){return"[object Arguments]"===n.call(arguments)?function(e){return"[object Arguments]"===n.call(e)}:function(e){return Object(i["default"])("callee",e)}}},704:function(e,t,a){"use strict";a.r(t);var i=a(705),n=a(680),o=Object(n["default"])((function(e){return null!=e&&"function"==typeof e.clone?e.clone():Object(i["default"])(e,[],[],!0)}));t["default"]=o},705:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return o}));var i=a(706),n=a(707);function o(e,t,a,r){var l=function(i){for(var n=t.length,l=0;l<n;){if(e===t[l])return a[l];l+=1}for(var s in t[l+1]=e,a[l+1]=i,e)i[s]=r?o(e[s],t,a,!0):e[s];return i};switch(Object(n["default"])(e)){case"Object":return l({});case"Array":return l([]);case"Date":return new Date(e.valueOf());case"RegExp":return Object(i["default"])(e);default:return e}}},706:function(e,t,a){"use strict";function i(e){return new RegExp(e.source,(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.sticky?"y":"")+(e.unicode?"u":""))}a.r(t),a.d(t,"default",(function(){return i}))},707:function(e,t,a){"use strict";a.r(t);var i=a(680),n=Object(i["default"])((function(e){return null===e?"Null":e===undefined?"Undefined":Object.prototype.toString.call(e).slice(8,-1)}));t["default"]=n},708:function(e,t,a){"use strict";a.r(t);var i=a(709),n=a(711),o=Object(n["default"])(i["default"]);t["default"]=o},709:function(e,t,a){"use strict";a.r(t);var i=a(680),n=a(710),o=Object(i["default"])(n["default"]);t["default"]=o},710:function(e,t,a){"use strict";function i(e){return e}a.r(t),a.d(t,"default",(function(){return i}))},711:function(e,t,a){"use strict";a.r(t);var i=a(712),n=a(679),o=Object(n["default"])((function(e,t){for(var a,n,o=new i["default"],r=[],l=0;l<t.length;)a=e(n=t[l]),o.add(a)&&r.push(n),l+=1;return r}));t["default"]=o},712:function(e,t,a){"use strict";a.r(t);var i=a(713),n=function(){function e(){this._nativeSet="function"==typeof Set?new Set:null,this._items={}}return e.prototype.add=function(e){return!o(e,!0,this)},e.prototype.has=function(e){return o(e,!1,this)},e}();function o(e,t,a){var n,o=typeof e;switch(o){case"string":case"number":return 0===e&&1/e==-Infinity?!!a._items["-0"]||(t&&(a._items["-0"]=!0),!1):null!==a._nativeSet?t?(n=a._nativeSet.size,a._nativeSet.add(e),a._nativeSet.size===n):a._nativeSet.has(e):o in a._items?e in a._items[o]||(t&&(a._items[o][e]=!0),!1):(t&&(a._items[o]={},a._items[o][e]=!0),!1);case"boolean":if(o in a._items){var r=e?1:0;return!!a._items[o][r]||(t&&(a._items[o][r]=!0),!1)}return t&&(a._items[o]=e?[!1,!0]:[!0,!1]),!1;case"function":return null!==a._nativeSet?t?(n=a._nativeSet.size,a._nativeSet.add(e),a._nativeSet.size===n):a._nativeSet.has(e):o in a._items?!!Object(i["default"])(e,a._items[o])||(t&&a._items[o].push(e),!1):(t&&(a._items[o]=[e]),!1);case"undefined":return!!a._items[o]||(t&&(a._items[o]=!0),!1);case"object":if(null===e)return!!a._items["null"]||(t&&(a._items["null"]=!0),!1);default:return(o=Object.prototype.toString.call(e))in a._items?!!Object(i["default"])(e,a._items[o])||(t&&a._items[o].push(e),!1):(t&&(a._items[o]=[e]),!1)}}t["default"]=n},713:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return n}));var i=a(714);function n(e,t){return Object(i["default"])(t,e,0)>=0}},714:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return n}));var i=a(715);function n(e,t,a){var n,o;if("function"==typeof e.indexOf)switch(typeof t){case"number":if(0===t){for(n=1/t;a<e.length;){if(0===(o=e[a])&&1/o===n)return a;a+=1}return-1}if(t!=t){for(;a<e.length;){if("number"==typeof(o=e[a])&&o!=o)return a;a+=1}return-1}return e.indexOf(t,a);case"string":case"boolean":case"function":case"undefined":return e.indexOf(t,a);case"object":if(null===t)return e.indexOf(t,a)}for(;a<e.length;){if(Object(i["default"])(e[a],t))return a;a+=1}return-1}},715:function(e,t,a){"use strict";a.r(t);var i=a(679),n=a(716),o=Object(i["default"])((function(e,t){return Object(n["default"])(e,t,[],[])}));t["default"]=o},716:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return u}));var i=a(717),n=a(718),o=a(719),r=a(702),l=a(720),s=a(701),c=a(707);function h(e,t,a,o){var r=Object(i["default"])(e),l=Object(i["default"])(t);function s(e,t){return u(e,t,a.slice(),o.slice())}return!Object(n["default"])((function(e,t){return!Object(n["default"])(s,t,e)}),l,r)}function u(e,t,a,i){if(Object(l["default"])(e,t))return!0;var n=Object(c["default"])(e);if(n!==Object(c["default"])(t))return!1;if(null==e||null==t)return!1;if("function"==typeof e["fantasy-land/equals"]||"function"==typeof t["fantasy-land/equals"])return"function"==typeof e["fantasy-land/equals"]&&e["fantasy-land/equals"](t)&&"function"==typeof t["fantasy-land/equals"]&&t["fantasy-land/equals"](e);if("function"==typeof e.equals||"function"==typeof t.equals)return"function"==typeof e.equals&&e.equals(t)&&"function"==typeof t.equals&&t.equals(e);switch(n){case"Arguments":case"Array":case"Object":if("function"==typeof e.constructor&&"Promise"===Object(o["default"])(e.constructor))return e===t;break;case"Boolean":case"Number":case"String":if(typeof e!=typeof t||!Object(l["default"])(e.valueOf(),t.valueOf()))return!1;break;case"Date":if(!Object(l["default"])(e.valueOf(),t.valueOf()))return!1;break;case"Error":return e.name===t.name&&e.message===t.message;case"RegExp":if(e.source!==t.source||e.global!==t.global||e.ignoreCase!==t.ignoreCase||e.multiline!==t.multiline||e.sticky!==t.sticky||e.unicode!==t.unicode)return!1}for(var d=a.length-1;d>=0;){if(a[d]===e)return i[d]===t;d-=1}switch(n){case"Map":return e.size===t.size&&h(e.entries(),t.entries(),a.concat([e]),i.concat([t]));case"Set":return e.size===t.size&&h(e.values(),t.values(),a.concat([e]),i.concat([t]));case"Arguments":case"Array":case"Object":case"Boolean":case"Number":case"String":case"Date":case"Error":case"RegExp":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"ArrayBuffer":break;default:return!1}var g=Object(s["default"])(e);if(g.length!==Object(s["default"])(t).length)return!1;var p=a.concat([e]),f=i.concat([t]);for(d=g.length-1;d>=0;){var m=g[d];if(!Object(r["default"])(m,t)||!u(t[m],e[m],p,f))return!1;d-=1}return!0}},717:function(e,t,a){"use strict";function i(e){for(var t,a=[];!(t=e.next()).done;)a.push(t.value);return a}a.r(t),a.d(t,"default",(function(){return i}))},718:function(e,t,a){"use strict";function i(e,t,a){for(var i=0,n=a.length;i<n;){if(e(t,a[i]))return!0;i+=1}return!1}a.r(t),a.d(t,"default",(function(){return i}))},719:function(e,t,a){"use strict";function i(e){var t=String(e).match(/^function (\w*)/);return null==t?"":t[1]}a.r(t),a.d(t,"default",(function(){return i}))},720:function(e,t,a){"use strict";a.r(t);var i=a(679),n=Object(i["default"])((function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}));t["default"]=n},721:function(e,t,a){"use strict";a.r(t);var i=a(679),n=Object(i["default"])((function(e,t){for(var a,i=0,n=e.length,o=t.length,r=[];i<n;){for(a=0;a<o;)r[r.length]=[e[i],t[a]],a+=1;i+=1}return r}));t["default"]=n},722:function(e,t,a){"use strict";a.r(t);var i=a(723),n=a(680),o=a(699),r=Object(n["default"])((function(e){return Object(o["default"])(e.length,(function(){var t=0,a=arguments[0],n=arguments[arguments.length-1],o=Array.prototype.slice.call(arguments,0);return o[0]=function(){var e=a.apply(this,Object(i["default"])(arguments,[t,n]));return t+=1,e},e.apply(this,o)}))}));t["default"]=r},723:function(e,t,a){"use strict";function i(e,t){var a;t=t||[];var i=(e=e||[]).length,n=t.length,o=[];for(a=0;a<i;)o[o.length]=e[a],a+=1;for(a=0;a<n;)o[o.length]=t[a],a+=1;return o}a.r(t),a.d(t,"default",(function(){return i}))},724:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]=function(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}},734:function(e,t,a){"use strict";var i=a(182),n=a(178);t.__esModule=!0,t["default"]=void 0;var o=n(a(198)),r=n(a(430)),l=i(a(427)),s=n(a(735)),c=n(a(190)),h=function(e,t){var a=t,i=e;return(a=Math.log(a/i))?function(e){return Math.log(e/i)/a}:(0,r["default"])(a)},u=function(e,t){return e<0?function(a){return-Math.pow(-t,a)*Math.pow(-e,1-a)}:function(a){return Math.pow(t,a)*Math.pow(e,1-a)}},d=function(e){return isFinite(e)?+("1e"+e):e<0?0:e},g=function(e){return 10===e?d:e===Math.E?Math.exp:function(t){return Math.pow(e,t)}},p=function(e){return e===Math.E?Math.log:10===e?Math.log10:2===e?Math.log2:function(t){return Math.log(t)/Math.log(e)}},f=function(e){return function(t){return-e(-t)}},m=function(e){function t(){var t;return(t=e.call(this,h,u)||this).setDomain([1,10]),t.base=10,t.logs=p(t.base),t.pows=g(t.base),t}(0,o["default"])(t,e);var a=t.prototype;return a._rescaleLog=function(){return this.logs=p(this.base),this.pows=g(this.base),this.getDomain()[0]<0&&(this.logs=f(this.logs),this.pows=f(this.pows)),this},a.setBase=function(e){return void 0===e&&(e=10),this.base=Number(e),this._rescaleLog()},a.getBase=function(){return this.base},a.setDomain=function(t){return void 0===t&&(t=[1,10]),e.prototype.setDomain.call(this,t),this._rescaleLog()},a.nice=function(){var e,t,a=this.getDomain(),i=a[0],n=a[1],o=this.base;return i===n&&(i-=i/100),e=Math.log(i)/Math.log(o),t=Math.log(n)/Math.log(o),(e%1||t%1)&&(i<=n?(i=this.pows(Math.floor(e)),n=this.pows(Math.ceil(t))):(i=this.pows(Math.ceil(e)),n=this.pows(Math.floor(t))),this.setDomain([i,n])),this},a.tickFormat=function(e,t){var a=this.base,i=t,n=e;return null==i&&(i=10===a?".0e":","),"function"!=typeof i&&(i=this._localeConverter.formatter(i)),null==n&&(n=10),function(e){return i.format(e)}},a.ticks=function(){var e,t,a,i,n,o,r=this.getDomain(),l=r[0],s=r[1],c=1,h=0,u=[],d=this.base;if(l<=0||s<=0)return u;if(l>s){var g=this.getDomain();s=g[0],l=g[1],c=0}for(d>1?(t=e=Math.ceil(Math.log(s)/Math.log(d)),a=Math.floor(Math.log(l)/Math.log(d))):d>0&&d<1&&(e=Math.floor(Math.log(s)/Math.log(d)),t=Math.ceil(Math.log(l)/Math.log(d)),a=e),n=e,o=t;o>=a;--o)l<=(i=this.pows(n))&&s>=i&&(u[h++]=i),d>1?n--:n++;return this.majorTicks=c?u.reverse():u},a.copy=function(){return(0,l.copyScale)(this,(new t).setBase(this.base))},a.minorTicks=function(e,t){void 0===t&&(t=this.majorTicks||this.ticks());var a,i,n,o,r,l=this.base,h=(0,s["default"])(t),u=[],d=Math.log(l)/Math.log(10),g=l>1?-1:1,p=e;return p=(0,c["default"])(Number(p),d%1?4:8),h.forEach((function(e){var t=e[0],s=e[1];for(l>1?i=Math.ceil(Math.log(s)/Math.log(l)):l>0&&l<1&&(i=Math.floor(Math.log(s)/Math.log(l))),o=Math.pow(l,i)-Math.pow(l,i+g),n=o/(p+1),a=1;a<=p;++a)t<=(r=Math.pow(l,i+g)+n*a)&&s>=r&&u.push(r)})),u},a.contextTicks=function(){return this.contextTicksArr||[]},a.getType=function(){return"log"},t}(l["default"]);t["default"]=m},735:function(e,t,a){"use strict";function i(e,t){return[e,t]}t.__esModule=!0,t["default"]=void 0;var n=function(e,t){var a=t,n=0,o=e.length-1,r=e[0],l=new Array(o<0?0:o);for(null==a&&(a=i);n<o;)l[n]=a(r,r=e[++n]);return l};t["default"]=n},750:function(e,t,a){"use strict";a.r(t);var i=a(751),n=a(679),o=Object(n["default"])((function(e,t){return Object(i["default"])({},e,t)}));t["default"]=o},751:function(e,t,a){"use strict";a.r(t);var i=a(752);t["default"]="function"==typeof Object.assign?Object.assign:i["default"]},752:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return n}));var i=a(702);function n(e){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),a=1,n=arguments.length;a<n;){var o=arguments[a];if(null!=o)for(var r in o)Object(i["default"])(r,o)&&(t[r]=o[r]);a+=1}return t}},774:function(e,t,a){"use strict";a.r(t);var i=a(680),n=Object(i["default"])((function(e){for(var t=0,a=[];t<e.length;){for(var i=e[t],n=0;n<i.length;)"undefined"==typeof a[n]&&(a[n]=[]),a[n].push(i[n]),n+=1;t+=1}return a}));t["default"]=n},777:function(e,t,a){"use strict";a.r(t);var i=a(679),n=a(778),o=Object(i["default"])((function(e,t){return Object(n["default"])((function(e,t,a){return a}),e,t)}));t["default"]=o},778:function(e,t,a){"use strict";a.r(t);var i=a(779),n=a(780),o=a(781),r=Object(i["default"])((function l(e,t,a){return Object(o["default"])((function(t,a,i){return Object(n["default"])(a)&&Object(n["default"])(i)?l(e,a,i):e(t,a,i)}),t,a)}));t["default"]=r},779:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return r}));var i=a(680),n=a(679),o=a(681);function r(e){return function t(a,r,l){switch(arguments.length){case 0:return t;case 1:return Object(o["default"])(a)?t:Object(n["default"])((function(t,i){return e(a,t,i)}));case 2:return Object(o["default"])(a)&&Object(o["default"])(r)?t:Object(o["default"])(a)?Object(n["default"])((function(t,a){return e(t,r,a)})):Object(o["default"])(r)?Object(n["default"])((function(t,i){return e(a,t,i)})):Object(i["default"])((function(t){return e(a,r,t)}));default:return Object(o["default"])(a)&&Object(o["default"])(r)&&Object(o["default"])(l)?t:Object(o["default"])(a)&&Object(o["default"])(r)?Object(n["default"])((function(t,a){return e(t,a,l)})):Object(o["default"])(a)&&Object(o["default"])(l)?Object(n["default"])((function(t,a){return e(t,r,a)})):Object(o["default"])(r)&&Object(o["default"])(l)?Object(n["default"])((function(t,i){return e(a,t,i)})):Object(o["default"])(a)?Object(i["default"])((function(t){return e(t,r,l)})):Object(o["default"])(r)?Object(i["default"])((function(t){return e(a,t,l)})):Object(o["default"])(l)?Object(i["default"])((function(t){return e(a,r,t)})):e(a,r,l)}}}},780:function(e,t,a){"use strict";function i(e){return"[object Object]"===Object.prototype.toString.call(e)}a.r(t),a.d(t,"default",(function(){return i}))},781:function(e,t,a){"use strict";a.r(t);var i=a(779),n=a(702),o=Object(i["default"])((function(e,t,a){var i,o={};for(i in t)Object(n["default"])(i,t)&&(o[i]=Object(n["default"])(i,a)?e(i,t[i],a[i]):t[i]);for(i in a)Object(n["default"])(i,a)&&!Object(n["default"])(i,o)&&(o[i]=a[i]);return o}));t["default"]=o},818:function(e,t,a){"use strict";a.r(t);var i=a(679),n=a(682),o=a(819),r=Object(i["default"])(Object(n["default"])(["all"],o["default"],(function(e,t){for(var a=0;a<t.length;){if(!e(t[a]))return!1;a+=1}return!0})));t["default"]=r},819:function(e,t,a){"use strict";a.r(t);var i=a(679),n=a(820),o=a(695),r=function(){function e(e,t){this.xf=t,this.f=e,this.all=!0}return e.prototype["@@transducer/init"]=o["default"].init,e.prototype["@@transducer/result"]=function(e){return this.all&&(e=this.xf["@@transducer/step"](e,!0)),this.xf["@@transducer/result"](e)},e.prototype["@@transducer/step"]=function(e,t){return this.f(t)||(this.all=!1,e=Object(n["default"])(this.xf["@@transducer/step"](e,!1))),e},e}(),l=Object(i["default"])((function(e,t){return new r(e,t)}));t["default"]=l},820:function(e,t,a){"use strict";function i(e){return e&&e["@@transducer/reduced"]?e:{"@@transducer/value":e,"@@transducer/reduced":!0}}a.r(t),a.d(t,"default",(function(){return i}))},885:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(){var e,t,a,i,n,o=this.getChildren(),r=this.getDatasets(),l=o.xAxis&&o.xAxis[0]||o.scale,s=[],c=0;if(r){for(e=r.length,t=0;t<e;t++)c=Math.max(c,r[t].components.data.length);for(t=0;t<c;t++)for((n=s[t]=[])[0]=l.getLabel(t).label,a=1;a<=e;a++)i=r[a-1].components.data[t],n[a]=i&&i.config.setValue;return s}};t["default"]=i},985:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=function(e){!function(e){var t=e.getChildren("colorManager");if(!e.getFromEnv("dataSource").colorrange)return t&&(t[0].config.legendItemIds=[]),void e.deleteFromEnv("colorManager");if(t)return e.addToEnv("colorManager",t[0]),void t[0].configure();t=new n["default"],e.attachChild(t,"colorManager"),e.addToEnv("colorManager",t),t.configure()}(e)};var n=i(a(986))},986:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=a(199),r=i(a(987)),l=i(a(988)),s=a(184);function c(e){var t=e||g;return(0,s.getValidColor)(t)||g}var h,u,d="rgba(192,192,192,"+(s.isIE?.002:1e-6)+")",g="#000000",p=((u={}).legendCarpetConf={spreadFactor:.85,allowDrag:!1,captionAlignment:"center",padding:{v:3,h:3},style:{fill:"#e4d9c1",stroke:"#c4b89d"}},u.legendCaptionConf={spreadFactor:.2,padding:{v:2,h:2},style:{fill:"#786B50",fontFamily:"sans-serif",fontSize:"12px",fontWeight:"bold",fontStyle:"normal"},bound:{style:{stroke:"none"}}},u.legendBodyConf={spreadFactor:.8,padding:{v:2,h:2},bound:{style:{stroke:"none"}}},u.legendAxisConf={legendAxisHeight:11,spreadFactor:.4,padding:{v:1,h:1},style:{stroke:"none","stroke-opacity":0,"stroke-width":1},line:{grooveLength:3,offset:8,style:{stroke:"rgba(255, 255, 255, 0.65)","stroke-width":1.5}},shadow:{style:{stroke:"none",fill:(0,s.toRaphaelColor)({FCcolor:{alpha:"25,0,0",angle:360,color:"000000,FFFFFF,FFFFFF",ratio:"0,30,40"}})}},bound:{style:{stroke:"none"}}},u.sliderGroupConf={showTooltip:1,outerCircle:{rFactor:1.4,style:{fill:d,stroke:"#757575","stroke-width":3}},innerCircle:{rFactor:.65,style:{fill:d,stroke:"#FFFFFF"}}},u.axisTextItemConf={spreadFactor:.3,padding:{v:1,h:1},style:{fill:"#786B50",fontFamily:"sans-serif",fontSize:"12px",fontWeight:"normal",fontStyle:"normal"}},{init:function(e){h=e.chart},legacyDataParser:function(e,t){var a,i,n,o,r,l,u,d,g,p,f,m,v,b={},x=h.getFromEnv("number-formatter"),y=h.getFromEnv("dataSource"),C=y.data,k=t||{};if(!e)return!1;for("maps"!==h.defaultDatasetType||void 0!==k.min&&void 0!==k.max?"HeatMap"!==h.getName()||void 0!==k.min&&void 0!==k.max||(k={min:Infinity,max:-Infinity},y.dataset.forEach((function(e){e.data&&e.data.forEach((function(e){k.min=Math.min(k.min,(0,s.pluckNumber)(e.value,k.min)),k.max=Math.max(k.max,(0,s.pluckNumber)(e.value,k.max))}))}))):(k={min:Infinity,max:-Infinity},C&&C.forEach((function(e){k.min=Math.min(k.min,(0,s.pluckNumber)(e.value,k.min)),k.max=Math.max(k.max,(0,s.pluckNumber)(e.value,k.min))}))),b.mapByPercent=f=!!(0,s.pluckNumber)(e.mapbypercent,0),a=e.color||[],void 0===e.minvalue&&(e.minvalue=void 0!==k.min?f?0:k.min:0),void 0===e.maxvalue&&(e.maxvalue=void 0!==k.max?f?100:k.max:100),e.maxvalue!==e.minvalue&&k.min!==Infinity&&k.max!==-Infinity||(e.minvalue=0,e.maxvalue=100),m=!1,r=0,u=a.length;r<u;r++)if(a[r].maxvalue){m=!0;break}for(m||(a=[]),n=e.code,d=b.colorRange=[],b.gradient=!!(0,s.pluckNumber)(e.gradient,1),a.length?n=c(n):(n?(o=c(n),n=c()):(n=c(),v=n,o=(0,s.getLightColor)(v,1)),a.push({code:o,maxvalue:e.maxvalue,label:void 0})),function(e){var t,a,i,n=h.getFromEnv("number-formatter");for(t=0,a=e.length;t<a;t++)(i=e[t].maxvalue)&&(e[t].maxvalue=n.getCleanValue(i))}(a),a=a.sort((function(e,t){return e.maxvalue-t.maxvalue})),g=p=e.minvalue&&x.getCleanValue(e.minvalue),p=(void 0!==g||null!==g)&&(f?g+"%":x.legendValue(g)),d.push({code:(0,s.dehashify)(n),value:g,displayValue:p,label:e.startlabel}),r=0,u=a.length;r<u;r++)l=c((i=a[r]).code||i.color),g=p=i.maxvalue,isNaN(parseInt(g,10))||(p=(void 0!==g||null!==g)&&(f?g+"%":x.legendValue(g)),d.push({code:(0,s.dehashify)(l),value:g,displayValue:p,label:i.label||i.displayvalue}));return d[d.length-1].label=e.endlabel||i.label,b},getDefaultConf:function(e){return u[e]}}),f=function(e){function t(){var t;return(t=e.call(this)||this).datasource={},t.config.legendItemIds=[],t}(0,n["default"])(t,e);var a=t.prototype;return a.configure=function(){var e,t,a=this.getFromEnv("chart"),i=this.getFromEnv("dataSource").chart.mapbycategory,n=a.config.showLegend,o=a.getChildren("colorRange")&&a.getChildren("colorRange")[0];switch(a.addToEnv("colorManager",this),this.datasource=a.getFromEnv("dataSource"),e=this.datasource.colorrange,o&&o.remove({instant:!0}),n||(this.config.legendItemIds=[]),"maps"===a.defaultDatasetType?e.gradient&&Number(e.gradient)?"gradient":e.color?"icon":"none":"TreeMap"===a.getName()?"gradient":e.gradient&&"0"!==e.gradient&&!Number(i)?"gradient":"icon"){case"gradient":p.init({chart:a}),t=p.legacyDataParser(e),(0,s.componentFactory)(a,l["default"],"colorRange",1,[t]),o=a.getChildren("colorRange")[0],a.addToEnv("colorRange",o),t||(o._dontPlot=!0),this.config.legendItemIds=[],this._configureGradientLegend(o);break;case"icon":(0,s.componentFactory)(a,r["default"],"colorRange",1,[{colorRange:e,sortLegend:0,mapByCategory:(0,s.pluckNumber)(i,0),defaultColor:"cccccc",numberFormatter:a.getFromEnv("number-formatter")}]),a.addToEnv("colorRange",a.getChildren("colorRange")[0]),n&&this._addLegendItems();break;case"none":a.deleteFromEnv("colorManager"),this.config.legendItemIds=[]}},a._configureGradientLegend=function(e){var t=this,a=t.getFromEnv("chart").getFromEnv("gLegend");a&&(a.setColorRange(e),t.addExtEventListener("rangeUpdated",(function(e,a){t.fireEvent("legendUpdate",{"original-event":e,maxMinArray:a,component:"gradientlegend"})}),a))},a._addLegendItems=function(){var e,t,a,i,n,o=this.config,r=this.getFromEnv("chart"),l=r.getChildren("legend")[0],c=r.getFromEnv("colorRange").colorArr,h=c.length;for(i=0;i<h;i++)n={label:(0,s.pluck)(c[i].label,c[i].displayvalue),datasetObj:c[i],index:i},t=(0,s.getLightColor)(c[i].code,40),e={FCcolor:{color:c[i].code+","+c[i].code+","+t,ratio:"0,70,30",angle:270,alpha:"100,100,100"}},(a=l.getItem(o.legendItemIds[i]))||(o.legendItemIds.push(l.createItem(this)),(a=l.getItem(o.legendItemIds[i])).addEventListener("fc-click",a.itemClickFn)),a.removeLegendState("hidden"),c[i].legendItemId=a&&a.getId(),a.configure(n),a.setStateCosmetics("default",{symbol:{fill:(0,s.toRaphaelColor)(e),rawFillColor:c[i].code}});for(i=h;i<o.legendItemIds.length;i++)l.disposeItem(o.legendItemIds[i]);o.legendItemIds.splice(h)},a.legendInteractivity=function(e){var t=this.getFromEnv("colorRange").colorArr[e.config.index];this.fireEvent("legendUpdate",{legendItem:e,colorObj:t,component:"legend"})},a.getColor=function(e){return!Number(this.datasource.chart.mapbycategory)&&Number(this.datasource.colorrange.gradient)?{code:this.getColorByValue(e),label:this.getLabelByValue(e)}:this.getColorObj(e)},a.getValueRatio=function(){return this.getFromEnv("colorRange").getValueRatio()},a.getCumulativeValueRatio=function(){return this.getFromEnv("colorRange").getCumulativeValueRatio()},a.getBoxFill=function(e){return this.getFromEnv("colorRange").getBoxFill(e)},a.getColorByValue=function(e){return this.getFromEnv("colorRange").getColorByValue(e)},a.getColorObj=function(e){return this.getFromEnv("colorRange").getColorObj(e)},a.getLabelByValue=function(e){return this.getFromEnv("colorRange").getLabelByValue(e)},t}(o.ComponentInterface);t["default"]=f},987:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(201)),o=i(a(198)),r=a(184),l=a(199),s=function(e,t){return+e.minvalue==+t.minvalue?e.maxvalue-t.maxvalue:e.minvalue-t.minvalue},c=function(e,t,a){var i=e[0],n=e[1],o=e[2],l=i+(t[0]-i)*a,s=n+(t[1]-n)*a,c=o+(t[2]-o)*a;return{hex:(r.COLOR_BLACK+(l<<16|s<<8|c).toString(16)).slice(-6),rgb:[l,s,c]}},h=function(e){function t(){var t;t=e.call(this)||this;var a=(0,n["default"])(t);return a.mapByCategory=!1,a.colorArr=[],a.noValidRange=!0,a.sortLegend=!1,t}(0,o["default"])(t,e);var a=t.prototype;return a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this),this.config.defaultObj={code:"CCCCCC",alpha:"100"}},a.getType=function(){return"colorComponent"},a.getName=function(){return"colorBucket"},a.configure=function(e){if(e){var t,a,i,n,o,l,c,h,u,d,g,p=this.mapByCategory,f=e.numberFormatter,m=e.colorRange||{},v=(0,r.extend2)([],m.color),b=this.getLinkedParent(),x=Math.min(Math.max((0,r.pluckNumber)(this.getFromEnv("dataSource").chart.palette,0)-1,0),4),y=b.defaultPaletteOptions&&b.defaultPaletteOptions.paletteColors[x],C=(0,r.pluckNumber)(f.getCleanValue(m.maxvalue),Infinity),k=(0,r.pluckNumber)(f.getCleanValue(m.minvalue),-Infinity),S=this.colorArr;if(void 0!==e.mapByCategory&&(p=this.mapByCategory=!!Number(e.mapByCategory)),(v=p?v.filter((function(e){return e.code||e.color})):v.filter((function(e){return e.minvalue||e.maxvalue}))).forEach((function(e){e.minvalue&&e.maxvalue&&+e.maxvalue<+e.minvalue&&(h=e.maxvalue,e.maxvalue=e.minvalue,e.minvalue=h),e.minvalue?e.maxvalue?(d=f.getCleanValue(e.minvalue),u=f.getCleanValue(e.maxvalue),e.rangeLabel=f.dataLabels(d)+"-"+f.dataLabels(u)):(d=f.getCleanValue(e.minvalue),e.maxvalue=u=C,e.rangeLabel=u===Infinity?">"+f.dataLabels(d):f.dataLabels(d)+"-"+f.dataLabels(u)):(e.minvalue=d=k,u=f.getCleanValue(e.maxvalue),e.rangeLabel=d===-Infinity?"<"+f.dataLabels(u):f.dataLabels(d)+"-"+f.dataLabels(u))})),v.sort(s),v&&(t=v.length)){for(S.length=0,a=0;a<t;a+=1)c=v[a],i=(0,r.pluck)(c.color,c.code,y&&y[a]),n=(0,r.pluck)(c.alpha),l=(0,r.pluck)(c.bordercolor),o=(0,r.pluck)(c.borderalpha,100),u=(0,r.pluckNumber)(c.maxvalue),d=(0,r.pluckNumber)(c.minvalue),g=(0,r.pluck)(c.label,c.displayvalue,c.rangeLabel),(i&&u>=d||p&&g)&&S.push({code:i,alpha:n||"100",oriAlpha:n,maxvalue:u,minvalue:d,label:(0,r.parseUnsafeString)(g),labelId:g.toLowerCase(),bordercolor:l,borderAlpha:o,name:c.name});this.sortedColorArr=this.colorArr.slice(0)}else this.noValidRange=!0,this.colorArr=[],this.sortedColorArr=[]}},a.getColorObj=function(e){if(void 0===e)return{outOfRange:!0};var t,a,i=this.sortedColorArr,n=this.gradient?1:0,o=i[n],l=e;if(this.mapByCategory){for(l=(0,r.parseUnsafeString)(l).toLowerCase()||l.toString().toLowerCase();o;){if(o.labelId===l||o.maxvalue>=l&&o.minvalue<=l)return{code:o.code,alpha:o.alpha||"100",oriAlpha:o.oriAlpha,seriesIndex:n,legendItemId:o.legendItemId};o=i[n+=1]}return{outOfRange:!0}}if(this.gradient){if(this.scaleMin<=l&&this.scaleMax>=l){for(;o&&o.maxvalue<l;)o=i[n+=1];return a=(l-o.minvalue)/o.range,{code:c(i[n-1].codeRGB,o.codeRGB,a).hex}}return{outOfRange:!0}}for(;o;){if(l<o.minvalue&&!t)return 0===n?{code:o.code,alpha:o.alpha||"100",oriAlpha:o.oriAlpha,seriesIndex:n,name:o.name,label:o.label,outOfRange:!0,bordercolor:o.bordercolor,borderalpha:o.borderAlpha}:{code:i[n-1].code,alpha:i[n-1].alpha||"100",oriAlpha:i[n-1].oriAlpha,seriesIndex:n,name:i[n-1].name,label:i[n-1].label,outOfRange:!0,bordercolor:i[n-1].bordercolor,borderalpha:i[n-1].borderAlpha};if(l>o.maxvalue&&n===i.length-1)return{code:o.code,alpha:o.alpha||"100",oriAlpha:o.oriAlpha,seriesIndex:n,name:o.name,label:o.label,outOfRange:!0,bordercolor:o.bordercolor,borderalpha:o.borderAlpha};if(o.maxvalue>l&&o.minvalue<=l)return{code:o.code,alpha:o.alpha||"100",oriAlpha:o.oriAlpha,seriesIndex:n,name:o.name,label:o.label,bordercolor:o.bordercolor,borderalpha:o.borderAlpha};if(l===o.maxvalue&&(t={code:o.code,alpha:o.alpha||"100",oriAlpha:o.oriAlpha,seriesIndex:n,name:o.name,label:o.label,bordercolor:o.bordercolor,borderalpha:o.borderAlpha}),n===i.length-1&&t)return t;o=i[n+=1]}return i.length?void 0:{outOfRange:!0}},a.getColorRangeArr=function(e,t){var a,i,n,o,l,s,c,h,u=[],d=e,g=t;if(!this.defaultAsigned&&(d>g&&(a=d,d=g,g=a),d<g&&(o=this.getColorObj(d),s=this.getColorObj(g),o&&s))){for(l=d,i=o.seriesIndex,n=s.seriesIndex;i<=n;i+=1)(c=(0,r.extend2)({},this.colorArr[i])).minvalue!==l&&(c.minvalue=l),u.push(c),h=c,l=c.maxvalue;h&&(h.maxvalue=g)}return u},t}(l.ComponentInterface);t["default"]=h},988:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=a(199),r=a(184),l=function(e){function t(){var t;return(t=e.call(this)||this).colorRange={},t.valueRatio={},t.data={},t.mapByPercent=r.UNDEF,t}(0,n["default"])(t,e);var a=t.prototype;return a.getType=function(){return"colorComponent"},a.getName=function(){return"gradientColorRange"},a.configure=function(e){if(e){var t,a,i;for(this.data=e,this.appender=r.BLANKSTRING,i=this.colorRange=e.colorRange.sort((function(e,t){return e.value-t.value})),this.valueRatio=r.UNDEF,this.values=[],t=0,a=i.length;t<a;t++)this.values.push(i[t].value)}},a.getValueRatio=function(){var e,t,a=this.colorRange,i=a.length,n=this.valueRatio,o=a[i-1].value,r=a[0].value,l=o-r,s=0;if(n)return n;for(n=this.valueRatio=[],e=0;e<i;e++)t=(a[e].value-r)/l,n.push(100*(t-s)),s=t;return n},a.getCumulativeValueRatio=function(){var e,t,a=this.colorRange,i=a.length,n=a[0].value,o=a[i-1].value,r=[];for(t=0;t<i;t++)e=a[t],r.push((e.value-n)/(o-n)*100);return r},a.getBoxFill=function(e){var t,a,i,n=this.colorRange,o=n.length,l=[];for(i=e?90:0,a=0;a<o;a++)t=n[a],l.push(t.code);return(0,r.toRaphaelColor)({FCcolor:{alpha:"100,100,100",angle:i,color:l.join(","),ratio:this.getValueRatio().join(",")}})},a.getColorByValue=function(e){var t,a,i,n,o=this.values,l=this.colorRange;if(e!==r.UNDEF&&null!==e){for(a=0,t=o.length;a<t;a++){if(e===o[a]){n=l[a].code;break}if(!a&&e<o[a]){i=!0;break}if(a===t-1&&e>o[a]){i=!0;break}if(e>o[a]&&e<o[a+1]){s=l[a],c=l[a+1],h=e,u=void 0,d=void 0,g=void 0,p=void 0,d=s.value,g=(0,r.HEXtoRGB)(s.code),p=(0,r.HEXtoRGB)(c.code),u=c.value-d,n=(0,r.RGBtoHex)([Math.round(g[0]+(p[0]-g[0])/u*(h-d)),Math.round(g[1]+(p[1]-g[1])/u*(h-d)),Math.round(g[2]+(p[2]-g[2])/u*(h-d))]);break}}var s,c,h,u,d,g,p;if(!i)return n}},a.getLabelByValue=function(e){var t,a,i,n,o=this.values,l=this.colorRange;if(e!==r.UNDEF&&null!==e){for(a=0,t=o.length;a<t;a++){if(e===o[a]){n=l[a].label;break}if(!a&&e<o[a]){i=!0;break}if(a===t-1&&e>o[a]){i=!0;break}if(e>o[a]&&e<o[a+1]){n=l[a].label;break}}if(!i)return n}},t}(o.ComponentInterface);t["default"]=l},989:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=function(e){!function(e){var t,a=e.getFromEnv("dataSource").colorrange,i=e.getFromEnv("dataSource").chart.mapbycategory,h="maps"===e.defaultDatasetType,u="TreeMap"===e.getName(),d=e.getFromEnv("legend"),g=e.getFromEnv("gLegend");t=a&&e.config.showLegend?h?a.gradient&&Number(a.gradient)?s:a.color?c:l:u?a.gradient&&"0"!==a.gradient?s:l:a.gradient&&"0"!==a.gradient&&!Number(i)?s:c:l;switch(t){case"gradient":e.deleteFromEnv("legend"),d&&d.remove(),(0,n.componentFactory)(e,o["default"],"gLegend",1),(g=e.getChildren("gLegend")[0]).configure(),e.addToEnv("gLegend",g);break;case"icon":e.deleteFromEnv("gLegend"),g&&g.remove(),(0,n.componentFactory)(e,r["default"],"legend",1,{showLegend:!0}),(d=e.getChildren("legend")[0]).configure(),e.addToEnv("legend",d);break;case"none":e.deleteFromEnv("gLegend"),e.deleteFromEnv("legend"),g&&g.remove(),d&&d.remove()}}(e)};var n=a(184),o=i(a(990)),r=i(a(512)),l="none",s="gradient",c="icon"},990:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n,o,r,l,s,c=i(a(201)),h=i(a(198)),u=a(184),d=a(199),g={},p="rgba(192,192,192,"+(u.isIE?.002:1e-6)+")",f=!1,m=!0,v="#000000",b="GL_CARPET",x="GL_CAPTION",y="GL_BODY",C="GL_LABELS",k="FL_AXIS",S="GL_SG1",w="GL_VALUES",L="fc-gradient-legend",A={}.hasOwnProperty,N="M",F="L";function E(e,t){return function a(e,t){var i,o;for(o in e)A.call(e,o)&&(i=e[o],t[o]===n?t[o]=i:"object"==typeof i&&null!==i&&a(i,t[o]))}(e,t),t}function _(e){var t=e||v;return(0,u.getValidColor)(t)||v}function T(e){var t,a=e.fontSize+"";return a?(t=a.replace(/(\d+)(px)*/,"$1px"),e.fontSize=t,e):e}function P(e){return!(e!==n&&null!=e&&!isNaN(e))}g.CAPTION="CAPTION",g.LEGEND_BODY="LEGEND_BODY",g.AXIS_LABEL="LEGEND_LABEL",g.LEGEND_AXIS="LEGEND_AXIS",g.RANGE="RANGE",g.AXIS_VALUE="AXIS_VALUE",(s={}).legendCarpetConf={spreadFactor:.85,allowDrag:!1,captionAlignment:"center",padding:{v:3,h:3},style:{fill:"#e4d9c1",stroke:"#c4b89d"}},s.legendCaptionConf={spreadFactor:.2,padding:{v:2,h:2},style:{fill:"#786B50",fontFamily:"sans-serif",fontSize:"12px",fontWeight:"bold",fontStyle:"normal"},bound:{style:{stroke:"none"}}},s.legendBodyConf={spreadFactor:.8,padding:{v:2,h:2},bound:{style:{stroke:"none"}}},s.legendAxisConf={legendAxisHeight:11,spreadFactor:.4,padding:{v:1,h:1},style:{stroke:"none","stroke-opacity":0,"stroke-width":1},line:{grooveLength:3,offset:8,style:{stroke:"rgba(255, 255, 255, 0.65)","stroke-width":1.5}},shadow:{style:{stroke:"none",fill:(0,u.toRaphaelColor)({FCcolor:{alpha:"25,0,0",angle:360,color:"000000,FFFFFF,FFFFFF",ratio:"0,30,40"}})}},bound:{style:{stroke:"none"}}},s.sliderGroupConf={showTooltip:1,outerCircle:{rFactor:1.4,style:{fill:p,stroke:"#757575","stroke-width":3}},innerCircle:{rFactor:.65,style:{fill:p,stroke:"#FFFFFF"}}},s.axisTextItemConf={spreadFactor:.3,padding:{v:1,h:1},style:{fill:"#786B50",fontFamily:"sans-serif",fontSize:"12px",fontWeight:"normal",fontStyle:"normal"}},o={init:function(e){l=e.chart},legacyDataParser:function(e,t){var a,i,o,r,s,c,h,d,g,p,f,m,v,b={},x=l.getFromEnv("number-formatter");if(!e)return!1;for(b.mapByPercent=f=!!(0,u.pluckNumber)(e.mapbypercent,0),a=e.color||[],e.minvalue===n&&(e.minvalue=t.min!==n?f?0:t.min:0),e.maxvalue===n&&(e.maxvalue=t.max!==n?f?100:t.max:100),m=!1,s=0,h=a.length;s<h;s++)if(a[s].maxvalue){m=!0;break}for(m||(a=[]),o=e.code,d=b.colorRange=[],b.gradient=!!(0,u.pluckNumber)(e.gradient,1),a.length?o=_(o):(o?(r=_(o),o=_()):(o=_(),v=o,r=(0,u.getLightColor)(v,1)),a.push({code:r,maxvalue:e.maxvalue,label:n})),function(e){var t,a,i,n=l.getFromEnv("number-formatter");for(t=0,a=e.length;t<a;t++)(i=e[t].maxvalue)&&(e[t].maxvalue=n.getCleanValue(i))}(a),a=a.sort((function(e,t){return e.maxvalue-t.maxvalue})),g=p=e.minvalue&&x.getCleanValue(e.minvalue),p=(g!==n||null!==g)&&(f?g+"%":x.legendValue(g)),d.push({code:(0,u.dehashify)(o),value:g,displayValue:p,label:e.startlabel}),s=0,h=a.length;s<h;s++)c=_((i=a[s]).code||i.color),g=p=i.maxvalue,isNaN(parseInt(g,10))||(p=(g!==n||null!==g)&&(f?g+"%":x.legendValue(g)),d.push({code:(0,u.dehashify)(c),value:g,displayValue:p,label:i.label||i.displayvalue}));return d[d.length-1].label=e.endlabel||i.label,b},getDefaultConf:function(e){return s[e]}};var D=function(e){(0,h["default"])(a,e);var t=a.prototype;function a(){var t;return t=e.call(this)||this,r=(0,c["default"])(t),t.enabled=!1,t.drawOptions={},t.components={},t}return t.getType=function(){return"gradientLegend"},t.getName=function(){return"gLegend"},t.setColorRange=function(e){var t=this.drawOptions.colorRange=e;t&&t._preparationGoneWrong&&(this._dontPlot=!0)},t.configureAttributes=function(){var e,t,a,i,r,l,s,c,h,d,g=this.getFromEnv("chart"),p=this.getFromEnv("dataSource").chart,f=this.conf={},m=p.outcnvbasefont,v=p.outcnvbasefontsize,b=p.outcnvbasefontcolor,x=g.config.dataLabelStyle;o.init({chart:g}),this.data=this.getFromEnv("dataSource").colorrange,this._dontPlot||(this.drawOptions={smartLabel:this.getFromEnv("smartLabel"),gLegend:this},this._dontPlot=!1,this._recalculateLogicalSpace=!0,f.caption=(0,u.pluck)(p.legendcaption),f.legendPosition=(0,u.pluck)(p.legendposition,"bottom").toLowerCase(),f.showLegend=(0,u.pluckNumber)(p.showlegend,1),f.interactiveLegend=(0,u.pluckNumber)(p.interactivelegend,1),f.showLegendLabels=(0,u.pluckNumber)(p.showlegendlabels,1),e=p.legenditemfontcolor||b,t=p.legenditemfont||m,a=p.legenditemfontsize||v,i=(0,u.pluckNumber)(p.legenditemfontbold,0),r=p.legendcaptionfontcolor||b,l=p.legendcaptionfont||m,s=p.legendcaptionfontsize||v,c=(0,u.pluckNumber)(p.legendcaptionfontbold,1),d=(h=p.legendaxisbordercolor?(0,u.hashify)((0,u.dehashify)(p.legendaxisbordercolor)):n)?(0,u.pluckNumber)(p.legendaxisborderalpha,100)/100:n,f.axisTextItemConf={style:{fill:e?(0,u.convertColor)((0,u.pluck)(e)):x.color,fontFamily:t?(0,u.pluck)(t):x.fontFamily,fontSize:a?(0,u.pluckNumber)(a):x.fontSize.match(/\d+/)[0],fontWeight:i?"bold":x.fontWeight}},f.legendCaptionConf={style:{fill:r?(0,u.convertColor)((0,u.pluck)(r)):x.color,fontFamily:l?(0,u.pluck)(l):x.fontFamily,fontSize:s?(0,u.pluckNumber)(s):x.fontSize.match(/\d+/)[0],fontWeight:c?"bold":x.fontWeight,fontStyle:"normal"}},f.legendAxisConf={legendAxisHeight:11,style:{stroke:h,"stroke-opacity":d},line:{style:{stroke:(0,u.convertColor)((0,u.pluck)(p.legendscalelinecolor,"FFF8E9"),(0,u.pluckNumber)(p.legendscalelinealpha,100)),"stroke-width":(0,u.pluckNumber)(p.legendscalelinethickness)}}},f.sliderGroupConf={showTooltip:(0,u.pluckNumber)(p.showtooltip,1),outerCircle:{rFactor:(0,u.pluckNumber)(p.sliderdiameterfactor),style:{stroke:(0,u.convertColor)((0,u.pluck)(p.legendpointerbordercolor,"757575"),(0,u.pluckNumber)(p.legendpointerborderalpha,100))}},innerCircle:{rFactor:(0,u.pluckNumber)(p.sliderholediameterfactor),style:{stroke:(0,u.convertColor)((0,u.pluck)(p.legendpointercolor,"FFFFFF"),(0,u.pluckNumber)(p.legendpointeralpha,100))}}},f.legendCarpetConf={spreadFactor:(0,u.pluckNumber)(p.legendspreadfactor),allowDrag:!!(0,u.pluckNumber)(p.legendallowdrag,0),captionAlignment:(0,u.pluck)(p.legendcaptionalignment,"center"),style:{fill:(0,u.convertColor)((0,u.pluck)(p.legendbgcolor,"e4d9c1"),(0,u.pluckNumber)(p.legendbgalpha,100)),stroke:(0,u.convertColor)((0,u.pluck)(p.legendbordercolor,"c4b89d"),(0,u.pluckNumber)(p.legendborderalpha,100)),"stroke-width":(0,u.pluckNumber)(p.legendborderthickness,1)}})},t.postConfigureInit=function(){var e,t,a,i,n,r,l,s,c,h,u,d=this.conf;this.elem={},d.interactiveLegend?(i=E(o.getDefaultConf("sliderGroupConf"),d.sliderGroupConf),this.sGroup?((a=this.elem.sGroup=this.sGroup).configure(i),this.elem.sGroup.gLegend=this):(this.sGroup=this.elem.sGroup=a=new H(i),a.configure(i),this.elem.sGroup.gLegend=this)):(this.sGroup&&this.sGroup.dispose(),this.sGroup&&delete this.sGroup),(i=E(o.getDefaultConf("legendCarpetConf"),d.legendCarpetConf)).legendPosition=d.legendPosition,u=o.getDefaultConf("legendBodyConf"),"bottom"===d.legendPosition?(this.drawOptions.refSideKey="canvasWidth",this.drawOptions.refOffsetKey="canvasLeft",n=E(o.getDefaultConf("axisTextItemConf"),d.axisTextItemConf),u.legendPosition="bottom",(h=E(o.getDefaultConf("legendAxisConf"),d.legendAxisConf)).legendPosition="bottom",n.legendPosition="bottom"):(this.drawOptions.refSideKey="canvasHeight",this.drawOptions.refOffsetKey="canvasTop",n=E(o.getDefaultConf("axisTextItemConf"),d.axisTextItemConf),u.legendPosition="right",(h=E(o.getDefaultConf("legendAxisConf"),d.legendAxisConf)).legendPosition="right",n.legendPosition="right"),Object.keys(this.components).length||(this.components.LegendCarpet=new M,this.components.LegendBody=new R,this.components.LegendAxis=new B,this.components.LegendValues=new z,d.showLegendLabels&&(this.components.LegendLabels=new V)),t=this.components.LegendAxis,s=this.components.LegendValues,e=this.components.LegendCarpet,r=this.components.LegendBody,d.showLegendLabels&&(l=this.components.LegendLabels),this.components.LegendCarpet.configure(i),this.components.LegendValues.configure(n),this.components.LegendAxis.configure(h),this.components.LegendBody.configure(this.drawOptions.colorRange,u,n),d.showLegendLabels&&l.configure(n),d.caption?(c=E(o.getDefaultConf("legendCaptionConf"),d.legendCaptionConf),this.componentCaption&&Object.keys(this.componentCaption).length?this.componentCaption.configure(d.caption,c):(this.componentCaption=new O).configure(d.caption,c),e.addCompositions(this.componentCaption,g.CAPTION)):(e.removeCompositions(g.CAPTION),this.componentCaption&&this.componentCaption.dispose(),delete this.componentCaption),a&&t.addCompositions(a,g.RANGE),l&&r.addCompositions(l,g.AXIS_LABEL),r.addCompositions(t,g.LEGEND_AXIS),r.addCompositions(s,g.AXIS_VALUE),e.addCompositions(r,g.LEGEND_BODY),this.elem.gl=new I(e)},t.getValueRange=function(){var e,t,a=this.elem&&this.elem.sGroup,i=a.sliders,n=a.extremes;return e=i["false"].currPos,t=n[1]-n[0]+i["true"].currPos,[{min:a.getValueFormPixel(e),max:a.getValueFormPixel(t)}]},t._dispose=function(){this.elem&&this.elem.gl&&this.elem.gl.dispose(),this.elem={},e.prototype._dispose.call(this)},t.getCalculatedLogicalSpace=function(){return this._logicalArea},t.setCalculatedLogicalSpace=function(e){this._logicalArea=e},t.getLogicalSpace=function(e){var t,a,i,n=this.conf,o={height:0,width:0},r=this.drawOptions,l=this.getFromEnv("chartConfig");return this._recalculateLogicalSpace?this._dontPlot?o:(this._recalculateLogicalSpace=!1,this.postConfigureInit(),n.showLegend?(a=r.refSideKey,i=r.refOffsetKey,this.drawOptions.refSide=l[a],this.drawOptions.refOffset=l[i],this.drawOptions.maxOtherSide=e||this.drawOptions.maxOtherSide,this.elem.gl&&(t=this.elem.gl.getLogicalSpace(this.drawOptions,!0),this.elem.gl&&this.setCalculatedLogicalSpace(t)),this.getCalculatedLogicalSpace()):o):(a=r.refSideKey,i=r.refOffsetKey,this.drawOptions.refSide=l[a],this.drawOptions.refOffset=l[i],this.drawOptions.maxOtherSide=e||this.drawOptions.maxOtherSide,t=this.elem.gl.getLogicalSpace(this.drawOptions,!0),this.setCalculatedLogicalSpace(t),this.getCalculatedLogicalSpace()||o)},t.resetLegend=function(){var e;(e=this.elem&&this.elem.sGroup)&&e.reset()},t.allocatePosition=function(){var e,t,a,i,n,o,r=this.getFromEnv("chart"),l=r.config,s=this.conf||{},c=s.legendPosition,h=l.canvasLeft,u=l.canvasTop,d=l.canvasWidth,g=l.canvasHeight,p=l.marginBottom,f=l.marginRight;r.config.gLegendEnabled&&(e=this.getCalculatedLogicalSpace(),a=s.width=e.width,i=s.height=e.height,"bottom"===c?(n=h+((t=d-a)<0?0:t/2),o=l.height-e.height-p-(l.actionBarHeight||0)):(o=u+((t=g-i)<0?0:t/2),n=l.width-e.width-f),s.xPos=n,s.yPos=o)},t.draw=function(){var e=this.getFromEnv("chart"),t=e.getFromEnv("dataSource").colorrange,a=this.conf||{},i=e.hasGradientLegend;e.config.gLegendEnabled&&t&&i&&this.drawLegendComponent(a.xPos,a.yPos,{parentGroup:e.getContainer("parentgroup"),animationManager:e.getFromEnv("animationManager")})},t.drawLegendComponent=function(e,t,a){var i,n=this.conf;this._dontPlot||(n.showLegend?(this.drawOptions.animationManager=a.animationManager,this.drawOptions.parentGroup=a.parentGroup,this.drawOptions.x=e,this.drawOptions.y=t,this.drawOptions.maxOtherSide=this.drawOptions.maxOtherSide||a.maxOtherSide,i=this.elem.gl.draw(this.drawOptions).getBBox(),n.xPos=i.x,n.yPos=i.y,n.height=i.height,n.width=i.width,this.enabled=!0):this.enabled=!1)},a}(d.ComponentInterface),I=function(){function e(e){this.carpet=e}var t=e.prototype;return t.draw=function(e){return this.carpet.draw(e)},t.getLogicalSpace=function(e,t){return this.carpet.getLogicalSpace(e,t)},t.dispose=function(){this.carpet&&this.carpet.group&&this.carpet.group.remove()},e}(),M=function(){function e(e){this.conf=e,this._id=b,this.compositionsByCategory={},this.node=n,this.group=n,this._lSpace=n,this.autoRecalculate=!1,this.groupName=L,this.moveInstructions={}}var t=e.prototype;return t.configure=function(e){this.conf=e},t.getName=function(){return"LegendCarpet"},t.getType=function(){return"legend"},t.addCompositions=function(e,t){this.compositionsByCategory[t]=e},t.removeCompositions=function(e){delete this.compositionsByCategory[e]},t.getBoundingBox=function(e){var t,a,i=this.conf,o=i.spreadFactor,r=e.refSide,l=e.alignment,s=e.refOffset,c=e.x,h=e.y;return"bottom"===this.conf.legendPosition?(t=i.width=r*o,a=e.maxOtherSide,!l||c!==n&&null!==c||(c=(s+r)/2-t/2)):(a=i.height=r*o,t=e.maxOtherSide,!l||h!==n&&null!==h||(h=(s+r)/2-a/2)),{width:t,height:a,x:c,y:h}},t.getPostCalcDecisionsH=function(e,t){var a,i=this.conf.padding,n=0;for(a in this.moveInstructions={},t)n+=t[a].height||0;e.height=n+2*i.v},t.getLogicalSpace=function(e,t){var a,i,n,o,r,l=this._lSpace,s=["CAPTION","LEGEND_BODY"],c=this.conf.padding,h=this.compositionsByCategory,u=0,d={},g=0;if(l&&!t)return l.isImpure=!0,l;(P((l=this._lSpace=i=this.getBoundingBox(e)).x)||P(l.y)||P(l.height)||P(l.width))&&(this.autoRecalculate=!0),(n=E(i,{})).height-=2*c.v,n.width-=2*c.h,n.x+=c.h,n.y+=c.v;for(var p=0;p<s.length;p++)(a=h[s[p]])&&((r=E(n,{})).y+=u,u=n.height*a.conf.spreadFactor,r.height=u+g,o=a.getLogicalSpace(E(r,{}),e,t),g=r.height-o.height,d[s[p]]=o,u=o.height);return this.getPostCalcDecisions(i,d),this._lSpace=i,i},t.setupDragging=function(){var e=this.group,t=0,a=0,i=0,n=0;e.css({cursor:"move"}),e.drag((function(o,r){t=o,a=r,e.attr({transform:"t"+(i+t)+","+(n+a)})}),(function(){i+=t,n+=a}),u.stubFN)},t.draw=function(e){var t,a,i,n=this.conf,o=["CAPTION","LEGEND_BODY"],l=this.compositionsByCategory,s=e.animationManager,c=e.parentGroup;this.getLogicalSpace(e,this.autoRecalculate),i=this._lSpace,this.group=t=s.setAnimation({el:this.group||"group",attr:{name:this.groupName},component:r,container:c,label:"carpetGroup"}),this.node=s.setAnimation({el:this.node||"rect",attr:i,css:n.style,component:r,container:t,label:"rect"});for(var h=0;h<o.length;h++)(a=l[o[h]])&&a.draw(n.captionAlignment,i,{animationManager:s,colorRange:e.colorRange,numberFormatter:e.numberFormatter,parentLayer:t,smartLabel:e.smartLabel,moveInstructions:this.moveInstructions[void 0],gLegend:e.gLegend});return n.allowDrag&&this.setupDragging(),this.node},t.getPostCalcDecisions=function(e,t){return"bottom"===this.conf.legendPosition?this.getPostCalcDecisionsH(e,t):this.getPostCalcDecisionsV(e,t)},t.getPostCalcDecisionsV=function(e,t){var a,i,n,o=this.conf.padding,r=Number.NEGATIVE_INFINITY,l=this.moveInstructions;for(i in this.getPostCalcDecisionsH(e,t),t)r=r<(a=t[i].width)?a:r;for(i in e.width=r+2*o.h,t)(n=r-(a=t[i].width))&&(l[i]="t"+n/2+",0")},e}(),O=function(){function e(e,t){this.rawText=e,this.conf=t,this._id=x,this.node=n,this.bound=n,this._lSpace=n,this.LegendCaption={},this.LegendCaption.LEFT={x:function(e,t){return t.x+e.width/2+2}},this.LegendCaption.RIGHT={x:function(e,t){return t.x+t.width-e.width/2-2}},this.LegendCaption.CENTER={x:function(){var e=arguments[1];return e.x+e.width/2}}}var t=e.prototype;return t.configure=function(e,t){this.rawText=e,this.conf=t},t.getName=function(){return"LegendCaption"},t.getType=function(){return"caption"},t.getLogicalSpace=function(e,t,a){var i,o,r,l,s=this.conf.padding,c=this._lSpace,h=this.rawText,u=t.gLegend.getFromEnv("chartConfig");return c&&!a?(c.isImpure=!0,c):(c=this._lSpace={bound:{height:0,width:0},node:{logicArea:n,smartText:n}},i=t.smartLabel,h?((o=E(e,{})).height-=2*s.v,o.width-=2*s.h,o.x+=s.h,o.y+=s.v,i.useEllipsesOnOverflow(u.useEllipsesWhenOverflow),T(l=E(this.conf.style,{})),i.setStyle(this._metaStyle=l),r=i.getSmartText(h,o.width,o.height),o.height=r.height,o.width=r.width,e.height=r.height+2*s.v,e.width=r.width+2*s.h,c.node.smartText=r,c.node.logicArea=o,c.bound=e,e):c.bound)},t.draw=function(){var e,t,a,i,n,o,l,s,c,h,u,d=this.conf,g=d.bound||{};return arguments.length>=3?(l=arguments[0],s=arguments[1],c=arguments[2]):arguments.length>=2&&(l=arguments[0],c=arguments[1]),e=c.parentLayer,u=c.animationManager,this.group=t=u.setAnimation({el:this.group||"group",attr:{name:"legend-caption"},css:d.style,component:r,container:e}),this.getLogicalSpace(s,c),h=(n=this._lSpace).node,i=n.bound,this.bound=a=u.setAnimation({el:this.bound||"rect",attr:i,css:g.style,container:t,component:r}),o="string"==typeof l?this.LegendCaption[l.toUpperCase()].x(h.smartText,s||h.logicArea):l,this.node=u.setAnimation({el:this.node||"text",attr:{text:h.smartText.text,x:o,y:h.logicArea.y+h.smartText.height/2,lineHeight:this._metaStyle.lineHeight,fill:d.style.fill},container:t,component:r}),{group:t,bound:a,node:this.node}},t.dispose=function(){this.group.remove(),this.bound.remove(),this.node.remove()},e}(),R=function(){function e(e,t,a){this.colorRange=e,this.conf=t,this.childTextConf=a,this._id=y,this.bound=n,this.group=n,this.compositionsByCategory={},this._lSpace=n,this.SC_STACK=[g.AXIS_LABEL,g.LEGEND_AXIS,g.AXIS_VALUE],this.DARW_STACK=[g.AXIS_VALUE,g.LEGEND_AXIS,g.AXIS_LABEL]}var t=e.prototype;return t.configure=function(e,t,a){this.colorRange=e,this.conf=t,this.childTextConf=a,this.compositionsByCategory={}},t.getName=function(){return"LegendBody"},t.getType=function(){return"legend"},t.addCompositions=function(e,t){this.compositionsByCategory[t]=e},t.getSpaceTaken=function(e){return"bottom"===this.conf.legendPosition?e.height:e.width},t.getLogicalSpace=function(e,t,a){var i,o,r,l,s,c,h,u=this._lSpace,d=this.conf.padding,g=this.compositionsByCategory,p=0;if(u&&!a)return u.isImpure=!0,u;for(u=this._lSpace={bound:{height:0,width:0},node:{logicArea:n}},(l=E(e,{})).height-=2*d.v,l.width-=2*d.h,l.x+=d.h,l.y+=d.v,s=this.getCompositionPlotAreaFor(l),t.colorRange=this.colorRange,c=0,h=this.SC_STACK.length;c<h;c++)(i=g[this.SC_STACK[c]])&&(o=s(r,i.conf.spreadFactor),r=i.getLogicalSpace(E(o,{}),t,a),p+=this.getSpaceTaken(r));return this.updateEffectivePlotArea(e,l,p),u.node.logicArea=l,u.bound=e,e},t.draw=function(){var e,t,a,i,n,o,l,s,c,h,u=this.childTextConf,d=this.conf,g=d.bound.style||{},p=this.compositionsByCategory;for(arguments.length>=3?(o=arguments[1],s=arguments[2]):arguments.length>=2&&(s=arguments[1]),t=s.parentLayer,e=s.animationManager,this.getLogicalSpace(o,s),l=this._lSpace,this.group=n=e.setAnimation({el:this.group||"group",attr:{name:"legend-body",transform:"t0,0"},css:u.style,container:t,component:r}),this.bound=a=e.setAnimation({el:this.bound||"rect",attr:l.bound,css:g,container:n,component:r}),s.colorRange=this.colorRange,s.parentLayer=n,c=0,h=this.DARW_STACK.length;c<h;c++)(i=p[this.DARW_STACK[c]])&&i.draw(s);return s.moveInstructions&&n.attr({transform:s.moveInstructions}),{bound:a,group:n}},t.getCompositionPlotAreaFor=function(e){var t,a="bottom"===this.conf.legendPosition;return t=E(e,{}),function(i,n){var o=i;return o=o||{},a?(t.y+=o.height||0,t.height=e.height*n):(t.x+=o.width||0,t.width=e.width*n),t}},t.updateEffectivePlotArea=function(e,t,a){var i=this.conf.padding;"bottom"===this.conf.legendPosition?(t.height=a,e.height=a+2*i.v):(t.width=a,e.width=a+2*i.h)},e}(),V=function(){function e(e){this.conf=e,this.node=[],this._id=C}var t=e.prototype;return t.configure=function(e){this.conf=e},t.getType=function(){return"label"},t.getName=function(){return"LegendLabel"},t.getEffectivePlotArea=function(e){var t=this.conf.padding;return e.height-=2*t.v,e.width-=2*t.h,e.x+=t.h,e.y+=t.v,e},t.getLogicalSpace=function(e,t,a){var i,o,r,l,s,c,h,u,d,g,p,f,m,v,b,x,y,C,k,S,w,L,A,N="bottom"===this.conf.legendPosition,F=this._lSpace,_=this.conf,P=_.padding,D=[],I=t.gLegend.getFromEnv("chartConfig"),M=[];if(F&&!a)return F.isImpure=!0,F;for(i=t.colorRange,o=t.smartLabel,g=i.getCumulativeValueRatio(),r=i.colorRange,m=(F=this._lSpace={bound:{height:0,width:0},node:{logicArea:n,smartTexts:[]}}).node.smartTexts,u=E(e,{}),b=this.getEffectivePlotArea(u),A=N?b.width:b.height,o.useEllipsesOnOverflow(I.useEllipsesWhenOverflow),L=E(_.style,{}),T(this._metaStyle=L),o.setStyle(L),x=o.getSmartText("W"),l=0,s=r.length;l<s;l++)(d=r[l].label)?M.push({oriIndex:l,label:d}):m[l]=n;if(0===(s=M.length))return{height:0,width:0};for(f=p=s>1?(g[M[s-1].oriIndex]-g[M[0].oriIndex])/2*A/100:Math.max(g[M[0].oriIndex],100-g[M[0].oriIndex])/2*A/100,N?((S=o.getSmartText(M[0].label,f,b.height)).x=g[M[0].oriIndex]*b.width/100,c=S.x+S.width):((S=o.getSmartText(M[0].label,f,b.width)).y=g[M[0].oriIndex]*b.height/100,c=S.y+S.width),D.push(S.height),m[M[0].oriIndex]=S,N?((S=o.getSmartText(M[s-1].label,f,b.height)).x=g[M[s-1].oriIndex]*b.width/100,h=S.x-S.width):((S=o.getSmartText(M[s-1].label,f,b.width)).y=g[M[s-1].oriIndex]*b.height/100,h=S.y-S.width),D.push(S.height),m[M[s-1].oriIndex]=S,k=c,l=1;l<s-1;l++)d=M[l].label,w=M[l].oriIndex,S=n,y=l+1===s-1?h:g[M[l+1].oriIndex]*A/100,C=g[M[l].oriIndex]*A/100,(p=Math.min(C-k,y-C))>2*x.width&&(N?(S=o.getSmartText(d,p,b.height)).x=g[w]*b.width/100:(S=o.getSmartText(d,p,b.width)).y=g[w]*b.height/100,k=p,D.push(S.height)),m[M[l].oriIndex]=S;return v=Math.max.apply(Math,D),N?(b.height=v,e.height=v+2*P.v):(b.width=v,e.width=v+2*P.v),F.node.logicArea=b,F.bound=e,e},t.draw=function(){var e,t,a,i,n,o,l,s,c,h,u,d,g="bottom"===this.conf.legendPosition,p=this.conf,f=p.bound&&p.bound.style||{stroke:"none"},m={};arguments.length>=2&&arguments[1]?(i=arguments[0],l=arguments[1]):arguments.length>=1&&(l=arguments[0]),d=l.animationManager,e=l.parentLayer,this.getLogicalSpace(i,l),c=(o=this._lSpace).node.logicArea,h=o.node.smartTexts,this.group=a=d.setAnimation({el:this.group||"group",attr:{name:"legend-labels"},container:e,component:r}),this.bound=t=d.setAnimation({el:this.bound||"rect",attr:o.bound,css:f,container:a,component:r});for(var v=0;v<this.node.length;v++)this.node[v].remove();for(this.node=[],s=0,u=h.length;s<u;s++)(n=h[s])&&(g?(m.y=c.y+n.height/2,m.x=s===u-1?c.x+n.x-n.width/2:s?c.x+n.x:c.x+n.x+n.width/2):(m.x=c.x+n.height/2,m.y=s===u-1?c.y+n.y-n.width/2:s?c.y+n.y:c.y+n.y+n.width/2),this.node.push(d.setAnimation({el:"text",attr:{text:n.text,x:m.x,y:m.y,lineHeight:this._metaStyle.lineHeight,fill:p.style.fill,transform:g?"R0":"R270,"+m.x+","+m.y},container:a,component:r})));return{group:a,bound:t,node:this.node}},e}(),B=function(){function e(e){this.conf=e,this._id=k,this.node=n,this.group=n,this.shadow=n,this.markerLine=n,this.compositionsByCategory={}}var t=e.prototype;return t.configure=function(e){this.conf=e},t.getName=function(){return"LegendAxis"},t.getType=function(){return"axis"},t.addCompositions=function(e,t){this.compositionsByCategory[t]=e},t.getLogicalSpace=function(){var e,t,a,i,o,r,l="bottom"===this.conf.legendPosition,s=arguments[0],c=arguments[2],h=this._lSpace,u=this.conf,d=u.padding,p=u.legendAxisHeight,f=this.compositionsByCategory,m=0;return h&&!c?(h.isImpure=!0,h):(h=this._lSpace={bound:{height:0,width:0},node:{logicArea:n}},(o=E(s,{})).height-=2*d.v,o.width-=2*d.h,o.x+=d.h,o.y+=d.v,e=p/2+u.line.offset,t=p/2,(i=f[g.RANGE])&&(r=i.sliders["false"].conf.outerCircle.rFactor*p,t+=m=Math.max(r/2-p/2,0)),l?(o.y+=m,o.height=a=t+e+m,s.height=a+2*d.v):(o.x+=m,o.width=a=t+e+m,s.width=a+2*d.v),h.node.logicArea=o,h.bound=s,s)},t.getDrawableAxisArea=function(e){var t=this.conf,a="bottom"===this.conf.legendPosition;return{x:e.x,y:e.y,width:a?e.width:t.legendAxisHeight,height:a?t.legendAxisHeight:e.height,r:t.legendAxisHeight/2}},t.preDrawingRangeParamV=function(e){return{x:e.x+e.width/2,calculationBase:e.width,rangeStart:e.y,rangeEnd:e.y+e.height,prop:"x"}},t.preDrawingRangeParamH=function(e){return{y:e.y+e.height/2,calculationBase:e.height,rangeStart:e.x,rangeEnd:e.x+e.width,prop:"y"}},t.preDrawingRangeParam=function(e){return"bottom"===this.conf.legendPosition?this.preDrawingRangeParamH(e):this.preDrawingRangeParamV(e)},t.getScaleMarkerPathStrH=function(e,t){var a,i,n,o,r,l=E(e,{}),s=this.conf.line,c=u.BLANKSTRING,h=u.BLANKSTRING;for(l.x+=l.r,l.width-=2*l.r,r=l.y+l.height,a=0,i=t.length;a<i;a++)n=t[a],o=l.x+n*l.width/100,c+=N+o+","+(r-s.grooveLength)+F+o+","+(r+s.offset);return c+(h+=N+l.x+","+(r+s.offset)+F+(l.x+l.width)+","+(r+s.offset))},t.getColorGradientH=function(e){return{axis:e.getBoxFill(),shadow:(0,u.toRaphaelColor)({FCcolor:{alpha:"25,0,0",angle:90,color:"000000,FFFFFF,FFFFFF",ratio:"0,30,40"}})}},t.draw=function(){var e,t,a,i,n,o,l,s,c,h,u,d,p,f,m=this.conf,v=m.bound||{},b=m.line,x=v.style||{},y=this.compositionsByCategory;for(a in arguments.length>=2?(t=arguments[0],d=arguments[1]):arguments.length>=1&&(d=arguments[0]),p=d.animationManager,e=d.parentLayer,n=(i=d.colorRange).getCumulativeValueRatio(),this.getLogicalSpace(t,d),u=this._lSpace,this.group=l=p.setAnimation({el:this.group||"group",attr:{name:"legend-axis"},container:e,component:r}),this.bound=p.setAnimation({el:this.bound||"rect",attr:u.bound,css:x,component:r,container:l}),h=this.getDrawableAxisArea(u.node.logicArea),c=this.getColorGradient(i),m.style.fill=c.axis,m.shadow.style.fill=c.shadow,this.node=p.setAnimation({el:this.node||"rect",attr:h,css:m.style,container:l,component:r}),this.shadow=p.setAnimation({el:this.shadow||"rect",attr:h,css:m.shadow.style,container:l,component:r}),f=this.getScaleMarkerPathStr(h,n),this.path=p.setAnimation({el:this.path||"path",attr:{path:f},css:b.style,container:l,component:r}),y)switch(o=y[a],a){case g.RANGE:d[(s=this.preDrawingRangeParam(h)).prop]=s[s.prop],d.key=s.prop,d.rCalcBase=s.calculationBase,d.parentLayer=l,o.draw(s.rangeStart,s.rangeEnd,d)}},t.getScaleMarkerPathStr=function(e,t){return"bottom"===this.conf.legendPosition?this.getScaleMarkerPathStrH(e,t):this.getScaleMarkerPathStrV(e,t)},t.getColorGradient=function(e){return"bottom"===this.conf.legendPosition?this.getColorGradientH(e):this.getColorGradientV(e)},t.getScaleMarkerPathStrV=function(e,t){var a,i,n,o,r,l=E(e,{}),s=this.conf.line,c=u.BLANKSTRING,h=u.BLANKSTRING;for(l.y+=l.r,l.height-=2*l.r,o=l.x+l.width,a=0,n=t.length;a<n;a++)i=t[a],r=l.y+i*l.height/100,c+=N+(o-s.grooveLength)+","+r+F+(o+s.offset)+","+r;return c+(h+=N+(o+s.offset)+","+l.y+F+(o+s.offset)+","+(l.y+l.height))},t.getColorGradientV=function(e){return{axis:e.getBoxFill(!0),shadow:(0,u.toRaphaelColor)({FCcolor:{alpha:"25,0,0",angle:360,color:"000000,FFFFFF,FFFFFF",ratio:"0,30,40"}})}},e}(),G=function(){function e(e,t,a){this.conf=t.conf,this.sliderIndex=e,this.rangeGroup=t.sliderGroup,this._id=a,this.node=n,this.tracker=n,this.currPos=0,this.swing=[]}var t=e.prototype;return t.configure=function(e,t,a){this.conf=t.conf,this.sliderIndex=e,this.rangeGroup=t.sliderGroup,this._id=a,this.currPos=0,this.swing=[]},t.getType=function(){return"slider"},t.getName=function(){return"Slider"},t.updateSwingRange=function(e,t){this.swing[+e]=t},t.draw=function(e,t,a,i){var n,o,l,s,c,h,u,d=i.parentLayer,g=i.animationManager,f=this.conf,m=f.outerCircle,v=f.innerCircle,b=g.getFromEnv("chart").config,x=Math.ceil(m.rFactor*i.rCalcBase/2),y=Math.ceil(v.rFactor*i.rCalcBase/2),C=x-y,k=i.gLegend.getFromEnv("toolTipController"),S=this.sliderIndex;return f.outerRadius=x,f.innerRadius=y,this._scaleVal=t,v.style["stroke-width"]=C,y+=s=Math.ceil(m.style["stroke-width"]/2),o=this.node=g.setAnimation({el:this.node||"group",attr:{name:"fc-gl-slider",cursor:"pointer",transform:"t0,0"},container:d,component:r}),"x"===i.key?(c=a,h=e,h+=S?-y:+y):(c=e,h=a,c+=S?-y:+y),this.oCircle=g.setAnimation({el:this.oCircle||"circle",attr:{cx:c,cy:h,r:x},css:m.style,container:o,component:r}),this.iCircle=g.setAnimation({el:this.iCircle||"circle",attr:{cx:c,cy:h,r:y},css:v.style,container:o,component:r}),u=this.tracker=g.setAnimation({el:this.tracker||"circle",attr:{cx:c,cy:h,r:x+5,fill:p,stroke:p,cursor:"pointer"},container:o,component:r}),o.attr({transform:"x"===i.key?"t0,"+this.currPos:"t"+this.currPos+",0"}),n=b.showToolTip?t:"",k.enableToolTip(u,n),this._dragAPI=l=this.getDragAPI("x"===i.key),u.undrag(),u.drag(l.dragging,l.dragStart,l.dragEnd),{translateAscending:x+s}},t.getDragAPI=function(e){var t,a,i,n,o=this,r=o.node,l=o.sliderIndex,s=o.rangeGroup,c=o.conf.innerRadius;return{dragging:function(h){var u,d,g,p,f;return h.stopPropagation(),g=e?h.data[1]:h.data[0],l?(u=t[0]-t[1]+c,d=0):(u=0,d=t[1]-t[0]-c),(f=o.currPos+g)<u?g+=u-f:f>d&&(g-=f-d),r.attr({transform:e?"t0,"+(o.currPos+g):"t"+(o.currPos+g)+",0"}),a=g,i&&clearTimeout(i),i=setTimeout((function(){s.updateWhenInRest(o,o.currPos+g)}),100),p=s.updateWhenInMove(o,o.currPos+g),o.conf.showTooltip&&o.tracker.data("__FC_tooltipText",p),n=!0,!0},dragStart:function(e){e.stopPropagation(),t=o.swing,n=!1,s.dragStarted(o)},dragEnd:function(){var e;s.dragCompleted(o,n,o.currPos+a),n&&(i&&clearTimeout(i),i=setTimeout((function(){s.updateWhenInRest(o,o.currPos)}),100),o.currPos+=a,e=t[+l]+o.currPos,s.updateRange(o,e))}}},t.dispose=function(){this.node.remove(),this.oCircle.remove(),this.iCircle.remove(),this.tracker.remove()},e}(),H=function(){function e(e){var t=e,a={};this._id=S,this.conf=e,a.conf=t,this.extremes=[],this.sliders={},this.min=n,this.max=n,a.sliderGroup=this,this.valueRange=[],this.callbacks=[],this.sliders[f]=new G(f,a,this._id+"_"+ +f),this.sliders[m]=new G(m,a,this._id+"_"+ +m)}var t=e.prototype;return t.configure=function(e){var t=e,a={};this.min=n,this.max=n,this.conf=e,a.conf=t,a.sliderGroup=this,this.sliders[f].configure(f,a,this._id+"_"+ +f),this.sliders[m].configure(m,a,this._id+"_"+ +m)},t.getType=function(){return"slider"},t.getName=function(){return"SliderGroup"},t.initRange=function(e,t){var a=e.sliderIndex;this.extremes[+a]=t},t.updateRange=function(e,t){var a=e.sliderIndex;this.sliders[!a].updateSwingRange(a,t)},t.reset=function(){var e={};e.conf=this.conf,e.sliderGroup=this,this.min=n,this.max=n,this.sliders[f].configure(f,e,this._id+"_"+ +f),this.sliders[m].configure(m,e,this._id+"_"+ +m),this.draw.apply(this,this._drawParams)},t.draw=function(e,t,a){var i,n,o,r,l,s,c=this.sliders,h=c[f],u=c[m],d=a.colorRange,g=d.colorRange,p=d.data.mapByPercent,v=a.gLegend.getFromEnv("number-formatter");return this._fcChart=a.gLegend.getFromEnv("chart"),this.getValueFormPixel=function(e,t,a,i){var n=(t-e)/(i-a);this.getValueFormPixel=function(t){return e+n*t}},this.updateWhenInMove=function(e,t){this.updateWhenInMove=function(a,i){var n,o,r=this.extremes;return n=a.sliderIndex?r[1]-r[0]+i:i,o=this.getValueFormPixel(n),o=t?parseFloat(o).toFixed(2)+"%":e.legendValue(o)}},this._drawParams=[e,t,a],this.updateWhenInMove(v,p),o=h.conf.outerCircle,n=h.conf.innerCircle,r=Math.ceil(n.rFactor*a.rCalcBase/2),r+=Math.ceil(o.style["stroke-width"]/2),this.extremes[0]=e+r,this.extremes[1]=t-r,l=this.extremes[1]-this.extremes[0],this.min=this.min?this.min:g[0].value,this.max=this.max?this.max:g[g.length-1].value,s=g[g.length-1].value-g[0].value,h.currPos=l*(this.min-g[0].value)/s,u.currPos=l*(this.max-g[0].value)/s-l,h.draw(e,p?v.legendPercentValue(this.min):v.legendValue(this.min),a[a.key],a),i=u.draw(t,p?v.legendPercentValue(this.max):v.legendValue(this.max),a[a.key],a),h.swing=this.extremes.slice(0),u.swing=this.extremes.slice(0),h.swing[1]+=u.currPos,u.swing[0]+=h.currPos,this.getValueFormPixel(g[0].value,g[g.length-1].value,this.extremes[0],this.extremes[1]),i},t.updateWhenInRest=function(e,t){var a,i,n=this.sliders,o=this.extremes,r=e.sliderIndex;r?(a=n[!r].currPos,i=o[1]-o[0]+t):(a=t,i=o[1]-o[0]+n[!r].currPos),this.min=Number(this.getValueFormPixel(a).toFixed(2)),this.max=Number(this.getValueFormPixel(i).toFixed(2)),this.gLegend.fireEvent("rangeUpdated",[{min:this.min,max:this.max}])},t.dragStarted=function(e){var t=this.sliders,a=this.extremes,i=e.conf,n=this._fcChart;n.fireChartInstanceEvent("legendpointerdragstart",{pointerIndex:+e.sliderIndex,pointers:[{value:this.getValueFormPixel(t["false"].currPos)},{value:this.getValueFormPixel(a[1]-a[0]+t["true"].currPos)}],legendPointerHeight:i.outerRadius,legendPointerWidth:i.innerRadius,outerRadius:i.outerRadius,innerRadius:i.innerRadius},[n.id])},t.dragCompleted=function(e,t,a){var i,n,o=this.sliders,r=this.extremes,l=e.conf,s=this.getValueFormPixel(o["false"].currPos),c=this.getValueFormPixel(r[1]-r[0]+o["true"].currPos),h=this._fcChart;e.sliderIndex?(i=s,n=this.getValueFormPixel(r[1]-r[0]+a)):(i=this.getValueFormPixel(a),n=c),t&&h.fireChartInstanceEvent("legendrangeupdated",{previousMinValue:s,previousMaxValue:c,minValue:i,maxValue:n},[h.id]),h.fireChartInstanceEvent("legendpointerdragstop",{pointerIndex:+e.sliderIndex,pointers:[{value:i},{value:n}],legendPointerHeight:l.outerRadius,legendPointerWidth:l.innerRadius,outerRadius:l.outerRadius,innerRadius:l.innerRadius},[h.id])},t.dispose=function(){this.sliders[f].dispose(),this.sliders[m].dispose()},e}(),z=function(e){function t(){var t;return(t=e.call(this,arguments[0])||this)._id=w,t.node=[],t}(0,h["default"])(t,e);var a=t.prototype;return a.configure=function(e){this.conf=e},a.getName=function(){return"LegendValues"},a.getType=function(){return"legend"},a.getLogicalSpace=function(e,t,a){var i,o,r,l,s,c,h,u,d,g,p,f,m,v,b,x,y,C,k,S,w,L,A,N,F,_="bottom"===this.conf.legendPosition,P=this._lSpace,D=this.conf,I=D.padding,M=t.gLegend.getFromEnv("chartConfig"),O=[],R=[];if(P&&!a)return P.isImpure=!0,P;for(i=t.colorRange,o=t.smartLabel,r=i.colorRange,h=i.getCumulativeValueRatio(),F=(P=this._lSpace={bound:{height:0,width:0},node:{logicArea:n,smartTexts:[]}}).node.smartTexts,(S=E(e,{})).height-=2*I.v,S.width-=2*I.h,S.x+=I.h,S.y+=I.v,o.useEllipsesOnOverflow(M.useEllipsesWhenOverflow),N=E(D.style,{}),T(this._metaStyle=N),o.setStyle(N),A=o.getSmartText("W"),c=r.length,_?(p=u=(h[c-1]-h[0])/2*S.width/100,L=r[0].displayValue,(l=o.getSmartText("string"!=typeof L&&L!==n&&L.toString()||L,p,S.height)).x=h[0]*S.width/100,f=l.x+l.width,O.push(l.height)):(p=u=(h[c-1]-h[0])/2*S.height/100,(l=o.getSmartText(r[0].displayValue,S.width,p)).y=h[0]*S.height/100,b=l.y+l.width,R.push(l.width)),F[0]=l,_?((l=o.getSmartText(r[c-1].displayValue,p,S.height)).x=h[c-1]*S.width/100,v=l.x-l.width,O.push(l.height),m=f):((l=o.getSmartText(r[c-1].displayValue,S.width,p)).y=h[c-1]*S.height/100,y=l.y-l.height,R.push(l.width),x=b),F[c-1]=l,s=1;s<c-1;s++)l=n,w=r[s].displayValue,_?(d=s+1===c-1?v:h[s+1]*S.width/100,g=h[s]*S.width/100,(u=Math.min(g-m,d-g))>1.5*A.width&&((l=o.getSmartText(w,2*u,S.height)).x=h[s]*S.width/100,m=u,O.push(l.height))):(d=s+1===c-1?y:h[s+1]*S.height/100,g=h[s]*S.height/100,(u=Math.min(g-x,d-g))>2*A.height&&((l=o.getSmartText(w,S.width,2*u)).y=h[s]*S.height/100,x=u,R.push(l.width))),F[s]=l;return _?(C=Math.max.apply(Math,O),S.height=C,e.height=C+2*I.v):(k=Math.max.apply(Math,R),S.width=k,e.width=k+2*I.h),P.node.logicArea=S,P.bound=e,e},a.draw=function(){var e,t,a,i,n,o,l,s,c,h,u,d,g,p=this.conf,f="bottom"===p.legendPosition,m=p.bound&&p.bound.style||{stroke:"none"},v={};arguments.length>=2&&arguments[1]?(i=arguments[0],l=arguments[1]):arguments.length>=1&&(l=arguments[0]),g=l.animationManager,e=l.parentLayer,s=l.colorRange.getCumulativeValueRatio(),this.getLogicalSpace(i,l),o=(n=this._lSpace).node.logicArea,u=n.node.smartTexts,this.group=a=g.setAnimation({el:this.group||"group",attr:{name:"legend-values"},container:e,component:r}),this.bound=t=g.setAnimation({el:this.bound||"rect",attr:n.bound,css:m,container:a,component:r});for(var b=0;b<this.node.length;b++)this.node[b].remove();for(this.node=[],c=0,h=s.length;c<h;c++)(d=u[c])&&(f?(v.y=o.y+d.height/2,v.x=c===h-1?o.x+d.x-d.width/2:c?o.x+d.x:o.x+d.x+d.width/2):(v.x=o.x+d.width/2,v.y=c===h-1?o.y+d.y-d.height/2:c?o.y+d.y:o.y+d.y+d.height/2),this.node.push(g.setAnimation({el:"text",attr:{text:d.text,x:v.x,y:v.y,lineHeight:this._metaStyle.lineHeight,fill:p.style.fill},container:a,component:r})));return{group:a,bound:t}},t}(V),W=D;t["default"]=W},995:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t.getCoordinates=t.getPlotFromPixel=t.polarToCartesian=t.cartesianToPolar=t.rad2Deg=t.deg2Rad=void 0;var n=i(a(190)),o=function(e){return e*(Math.PI/180)},r=function(e){return e*(180/Math.PI)},l=function(e,t){var a,i;return a=Math.sqrt(e*e+t*t),i=r(Math.atan(t/e)),e<0&&t>=0?i+=180:e<0&&t<0?i+=180:e>0&&t<0&&(i+=360),{radius:a,theta:o(i)}},s=function(e,t,a){void 0===a&&(a=!0);var i=t;return a||(i=o(i)),{x:e*Math.cos(i),y:e*Math.sin(i)}};t.getPlotFromPixel=function(e,t){var a,i,n=e.x,o=e.y,s=t.getScale();return i=l(n,o),a=s.getDomainValue(i.theta),r(a)},t.getCoordinates=function(e,t){var a,i,o=t.getScale(),r=e.radius,l=t.config,c=l.axisDimention.centerX,h=l.axisDimention.centerY;return r=(0,n["default"])(r,l.radius,0),a=o.getRangeValue(e.theta),(i=s(r,a)).x+=c,i.y+=h,i},t.polarToCartesian=s,t.cartesianToPolar=l,t.rad2Deg=r,t.deg2Rad=o},999:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"axis"}];t["default"]=i}}]); diff --git a/base_accounting_kit/static/lib/fusioncharts.jqueryplugin.min.js b/base_accounting_kit/static/lib/fusioncharts.jqueryplugin.min.js new file mode 100644 index 0000000..fb7d6ee --- /dev/null +++ b/base_accounting_kit/static/lib/fusioncharts.jqueryplugin.min.js @@ -0,0 +1 @@ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("jquery"));else if("function"==typeof define&&define.amd)define(["jquery"],t);else{var n="object"==typeof exports?t(require("jquery")):t(e.jquery);for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(window,function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=n(1),a=n(2),i="undefined"!=typeof window?window:{};"undefined"==typeof FusionCharts&&(FusionCharts=i.FusionCharts),void 0===o&&(o=i.jQuery),FusionCharts.addDep(a);var s,u,l,d,f=i.document,c=o,h=i.Math.min,p=function(){if(Array.isArray)return Array.isArray;var e=Object.prototype.toString,t=e.call([]);return function(n){return e.call(n)===t}}(),b={feed:"feedData",setdata:"setData",setdataforid:"setDataForId",getdata:"getData",getdataforid:"getDataForId",clear:"clearChart",stop:"stopUpdate",start:"restartUpdate"},g={feedData:function(e){return"string"==typeof e?[e]:!("object"!==(void 0===e?"undefined":r(e))||!e.stream)&&[e.stream]},getData:function(e){return isNaN(e)?"object"===(void 0===e?"undefined":r(e))&&e.index?[e.index]:[]:[e]},getDataForId:function(e){return"string"==typeof e?[e]:"object"===(void 0===e?"undefined":r(e))&&e.id?[e.id]:[]},setData:function(e,t,n){var o=[];return"object"!==(void 0===e?"undefined":r(e))?o=[e,t,n]:(e.value&&o.push(e.value),e.label&&o.push(e.label)),o},setDataForId:function(e,t,n){var o=[];return"string"==typeof e||"string"==typeof t||"string"==typeof n?o=[e,t,n]:"object"===(void 0===e?"undefined":r(e))&&(e.value&&o.push(e.value),e.label&&o.push(e.label)),o},clearChart:function(e){return[e]},stopUpdate:function(e){return[e]},restartUpdate:function(e){return[e]}};c.FusionCharts=FusionCharts,s=function(e,t){var n,r,o,a,s;for(r=p(t)||t instanceof c?h(e.length,t.length):e.length,n=0;n<r;n+=1)o=p(t)||t instanceof c?t[n]:t,e[n].parentNode?FusionCharts.render(c.extend({},o,{renderAt:e[n]})):(a=new FusionCharts(c.extend({},o,{renderAt:e[n]})),c.FusionCharts.delayedRender||(c.FusionCharts.delayedRender={}),c.FusionCharts.delayedRender[a.id]=e[n],(s=f.createElement("script")).setAttribute("type","text/javascript"),/msie/i.test(i.navigator.userAgent)&&!i.opera?s.text="FusionCharts.items['"+a.id+"'].render();":s.appendChild(f.createTextNode("FusionCharts.items['"+a.id+"'].render()")),e[n].appendChild(s));return e},u=function(e,t){var n,o;o=c.extend({},e),c.extend(o,c.Event("fusioncharts"+e.eventType)),o.sender&&o.sender.options?"object"===(void 0===(n=o.sender.options.containerElement||o.sender.options.containerElementId)?"undefined":r(n))?c(n).trigger(o,t):c("#"+n).length?c("#"+n).trigger(o,t):c(f).trigger(o,t):c(f).trigger(o,t)},FusionCharts.addEventListener("*",u),l=function(e){return e.filter(":FusionCharts").add(e.find(":FusionCharts"))},d=function(e,t,n){"object"===(void 0===t?"undefined":r(t))&&e.each(function(){this.configureLink(t,n)})},c.fn.insertFusionCharts=function(e){return s(this,e)},c.fn.appendFusionCharts=function(e){return e.insertMode="append",s(this,e)},c.fn.prependFusionCharts=function(e){return e.insertMode="prepend",s(this,e)},c.fn.attrFusionCharts=function(e,t){var n=[],o=l(this);return t!==undefined?(o.each(function(){this.FusionCharts.setChartAttribute(e,t)}),this):"object"===(void 0===e?"undefined":r(e))?(o.each(function(){this.FusionCharts.setChartAttribute(e)}),this):(o.each(function(){n.push(this.FusionCharts.getChartAttribute(e))}),n)},c.fn.updateFusionCharts=function(e){var t,n,r,o,a,i={},s=l(this),u=[["swfUrl",!1],["type",!1],["height",!1],["width",!1],["containerBackgroundColor",!0],["containerBackgroundAlpha",!0],["dataFormat",!1],["dataSource",!1]];for(t=0,n=u.length;t<n;t+=1)a=u[t][0],i.type=i.type||i.swfUrl,e[a]&&(u[t][1]&&(o=!0),i[a]=e[a]);return s.each(function(){r=this.FusionCharts,o?r.clone(i).render():(i.dataSource===undefined&&i.dataFormat===undefined||(i.dataSource===undefined?r.setChartData(r.args.dataSource,i.dataFormat):i.dataFormat===undefined?r.setChartData(i.dataSource,r.args.dataFormat):r.setChartData(i.dataSource,i.dataFormat)),i.width===undefined&&i.height===undefined||r.resizeTo(i.width,i.height),i.type&&r.chartType(i.type))}),this},c.fn.getFusionCharts=function(){var e=[];return l(this).each(function(){e.push(this.FusionCharts)}),e},c.fn.cloneFusionCharts=function(e,t){var n,r;return"function"!=typeof e&&"function"==typeof t&&(r=e,e=t,t=r),n=[],l(this).each(function(){n.push(this.FusionCharts.clone(t,{},!0))}),e.call(c(n),n),this},c.fn.disposeFusionCharts=function(){return l(this).each(function(){this.FusionCharts.dispose(),delete this.FusionCharts,0===this._fcDrillDownLevel&&delete this._fcDrillDownLevel}),this},c.fn.convertToFusionCharts=function(e,t){var n=[];return"undefined"==typeof e.dataConfiguration&&(e.dataConfiguration={}),c.extend(!0,e.dataConfiguration,t),e.dataSource||(e.dataSource=this.get(0)),e.renderAt?"string"==typeof e.renderAt?n.push(c("#"+e.renderAt).insertFusionCharts(e).get(0)):"object"===r(e.renderAt)&&n.push(c(e.renderAt).insertFusionCharts(e).get(0)):this.each(function(){n.push(c("<div></div>").insertBefore(this).insertFusionCharts(e).get(0))}),c(n)},c.fn.drillDownFusionChartsTo=function(){var e,t,n,r,o,a=l(this);for("undefined"==typeof this._fcDrillDownLevel&&(this._fcDrillDownLevel=0),e=0,t=arguments.length;e<t;e+=1)if(o=arguments[e],p(o))for(n=0,r=o.length;n<r;n+=1)d(a,o[n],this._fcDrillDownLevel),this._fcDrillDownLevel+=1;else d(a,o,this._fcDrillDownLevel),this._fcDrillDownLevel+=1;return this},c.fn.streamFusionChartsData=function(e,t,n,r){var o,a,i,s=l(this),u=[];if((a=b[e&&e.toLowerCase()])===undefined){if(1!==arguments.length)return this;i=[e],a=b.feed}else i=1===arguments.length?[]:g[a](t,n,r);return"getData"===a||"getDataForId"===a?(s.each(function(){"function"==typeof(o=this.FusionCharts)[a]&&u.push(o[a].apply(o,i))}),u):(s.each(function(){"function"==typeof(o=this.FusionCharts)[a]&&o[a].apply(o,i)}),this)},c.extend(c.expr[":"],{FusionCharts:function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}(function(e){return e.FusionCharts instanceof FusionCharts})})},function(t,n){t.exports=e},function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=window,a=o.document,i=Object.prototype.toString,s=function(e,t,n,o){var a;if(n&&e.prototype&&(e=e.prototype),!0===o)!function s(e,t){var n,o;if(t instanceof Array)for(n=0;n<t.length;n+=1)"object"!==r(t[n])?e[n]=t[n]:("object"!==r(e[n])&&(e[n]=t[n]instanceof Array?[]:{}),s(e[n],t[n]));else for(n in t)"object"===r(t[n])?"[object Object]"===(o=i.call(t[n]))?("object"!==r(e[n])&&(e[n]={}),s(e[n],t[n])):"[object Array]"===o?(e[n]instanceof Array||(e[n]=[]),s(e[n],t[n])):e[n]=t[n]:e[n]=t[n];return e}(e,t);else for(a in t)e[a]=t[a];return e},u=function(e){var t,n,r=[];for(n=0,t=e.length;n<t;n+=1)3!==e[n].nodeType&&r.push(e[n]);return r},l=function(e){return e.innerText!==undefined?e.innerText:e.textContent},d=function(e){var t,n,r,o,a,i,s,l=1,d={},f=[];for(t=0,r=e.length;t<r;t+=1)for(l=1,i=0,n=0,o=(a=u(e[t].childNodes)).length;n<o;n+=1){for(d[s=n+l+i-1]&&t-d[s].rowNum<d[s].row&&(i+=d[s].col,s+=d[s].col),parseInt(a[n].getAttribute("rowspan"),10)>1&&(d[s]||(d[s]={}),d[s].rowNum=t,d[s].row=parseInt(a[n].getAttribute("rowspan"),10),parseInt(a[n].getAttribute("colspan"),10)>1?d[s].col=parseInt(a[n].getAttribute("colspan"),10):d[s].col=1);f.length<=s;)f.push({childNodes:[]});f[s].childNodes.push(a[n]),parseInt(a[n].getAttribute("colspan"),10)>1&&(l+=parseInt(a[n].getAttribute("colspan"),10)-1)}return f},f=function(e,t){for(var n=e.length;n;)if(e[n-=1]===t)return!0;return!1},c=function(e,t,n){var r,o,a,i=u(e[t].childNodes);for(r=0,o=i.length;r<o;r+=1)if(r!==n&&(a=l(i[r]),parseFloat(a)===a))return!0;return!1},h=0,p=function v(e,t,n,r){var o,a,i,s,p,b,g,y,C,m,F,w=null,j=[],x=[],S=0,_={},D=0,A=0;if(void 0===n){for(s=0,o=(p=u(e[0].childNodes)).length;s<o;s+=1)if(j[g=s+D]="__fcBLANK__"+(g+1),(b=(b=parseInt(p[s].colSpan,10))>1?b:parseInt(p[s].rowSpan,10))>1){for(a=1;a<b;a+=1)j[g+a]="__fcBLANK__"+(g+a+1);D+=b-1}for(i=0,a=s+D,o=t.length;i<o;i+=1)t[i]>0?delete j[t[i]-1]:delete j[a+t[i]];return{index:-1,labelObj:j}}if(0===n){for(i=0,a=e.length;i<a;i+=1){if(p=u(e[i].childNodes),x[i]=0,S=0,r&&r._extractByHeaderTag){for(s=0,o=p.length;s<o;s+=1)if("th"==p[s].nodeName.toLowerCase())return delete(F=v(e,t,i+1)).labelObj[r._rowLabelIndex],F}else for(s=0,o=p.length;s<o;s+=1)if(!f(t,s+1)&&!f(t,s-o))if(""!==(b=l(p[s])).replace(/^\s*/,"").replace(/\s*$/,"")){if(parseFloat(b)!=b&&(S+=1)>1)return v(e,t,i+1)}else x[i]+=1;i>0&&(x[i-1]>x[i]?w=i-1:x[i-1]<x[i]&&(w=i))}return null!==w?v(e,t,w+1):v(e,t)}for(n<0?n+=e.length:n>0&&(n-=1),p=u(e[n].childNodes),y=e[0].nodeType!==undefined,s=0,o=p.length;s<o;s+=1)if(m=0,y?"1"!==p[s].colSpan&&(m=parseInt(p[s].colSpan,10)):"1"!==p[s].rowSpan&&(m=parseInt(p[s].rowSpan,10)),m=m>1?m:0,""!==(b=l(p[s])).replace(/^\s*/,"").replace(/\s*$/,"")?_[s+A]=b:c(d(e),s,n)&&(_[s+A]="__fcBLANK__"+h,h+=1),m>1){for(b=_[s+A],i=1;i<m;i+=1)_[s+A+i]=b+" ("+i+")";A+=m-1}for(C=o+A,i=0,o=t.length;i<o;i+=1)t[i]>0?delete _[t[i]-1]:delete _[C+t[i]];return{labelObj:_,index:n}},b=function(e,t){if("string"==typeof e&&(e=a.getElementById(e)),"undefined"!=typeof o.jQuery&&e instanceof o.jQuery&&(e=e.get(0)),!e)return{data:null};t.hideTable&&(e.style.display="none");var n,r,i,s,f,c,h,b,g,y,v,C,m,F,w={},j={},x={},S=u(function(e){var t=u(e.childNodes);return t.length&&"THEAD"===t[0].nodeName&&t[1]&&"TBODY"===t[1].nodeName?t[0].childNodes:[]}(e)).concat(u(function(e){var t=u(e.childNodes);if(t.length){if("TBODY"===t[0].nodeName)return t[0];if("THEAD"===t[0].nodeName&&t[1]&&"TBODY"===t[1].nodeName)return t[1]}return e}(e).childNodes)),_=S.length,D=0,A=0,L=0,T=0,O=!1,N=t.chartType;if(-1!==["column2d","column3d","pie3d","pie2d","line","bar2d","area2d","doughnut2d","doughnut3d","pareto2d","pareto3d"].indexOf(N)&&(O=!0),t.rowLabelSource=parseInt(t.labelSource,10),t.colLabelSource=parseInt(t.legendSource,10),"column"===t.major?(v=t.useLabels?p(S,t.ignoreCols,t.rowLabelSource):p(S,t.ignoreCols),m=t.useLegend?p(d(S),t.ignoreRows,t.colLabelSource):p(d(S),t.ignoreRows)):(F=p(d(S),t.ignoreRows,t.rowLabelSource),v=t.useLabels?F:p(d(S),t.ignoreRows),t._rowLabelIndex=F.index,t._extractByHeaderTag=!0,m=t.useLegend?p(S,t.ignoreCols,t.colLabelSource,t):p(S,t.ignoreCols),delete t._extractByHeaderTag,F=v,v=m,m=F),delete v.labelObj[m.index],delete m.labelObj[v.index],"row"===t.major)for(b in m.labelObj)w[b]={};else for(b in v.labelObj)w[b]={};for(n=0;n<_;n+=1)if(v.index!==n&&m.labelObj[n]!==undefined){for(D+=1,i=u(S[n].childNodes),j[n]=0,x[n]={},r=0,h=i.length;r<h;r+=1){for(y=i[r],c=parseInt(y.getAttribute("colspan"),10),g=parseInt(y.getAttribute("rowspan"),10),f=r+j[n];T<n;){if(x[T])for(C in x[T]){if(C>f)break;n-T<=x[T][C].row&&(f+=x[T][C].col)}T+=1}if(c>1&&(j[n]+=c-1),g>1&&(x[n][f]=c>1?{row:g-1,col:c}:{row:g-1,col:1}),m.index!==f&&v.labelObj[f]!==undefined){if(L+=1,""===(s=l(y)).replace(/^\s*/,"").replace(/\s*$/,"")){if(!t.convertBlankTo)continue;s=t.convertBlankTo}if(c=c>1?c:1,g=g>1?g:1,"row"===t.major)for(T=0;T<c;){for(C=0;C<g;)w[n+C][f+T]=parseFloat(s),C+=1;T+=1}else for(T=0;T<c;){for(C=0;C<g;)w[f+T][n+C]=parseFloat(s),C+=1;T+=1}}}L>A&&(A=L)}return{data:w,chartType:N?O?"single":"multi":D>1&&A>1?"multi":"single",labelMap:m,legendMap:v}},g=function(e,t){return function(e,t){var n,r,o,a,i,u,l,d,f,c={chartAttributes:{},major:"row",useLabels:!0,useLegend:!0,labelSource:0,legendSource:0,ignoreCols:[],ignoreRows:[],showLabels:!0,showLegend:!0,seriesColors:[],convertBlankTo:"0",hideTable:!1,chartType:t.chartType&&t.chartType(),labels:[],legend:[],data:[]},h=t.args.dataConfiguration||{},p={},g={};if(s(c,h),l=(u=b(e,c)).data,"row"!==c.major?(d=u.legendMap,f=u.labelMap):(d=u.labelMap,f=u.legendMap),p.chart=s({},c.chartAttributes),"multi"===u.chartType){for(r in p.categories=[{category:[]}],p.dataset=[],a=p.categories[0].category,i=p.dataset,n=0,l)for(o in!0===c.showLabels?a.push(s({label:-1!=d.labelObj[r].indexOf("__fcBLANK__")?"":d.labelObj[r]},c.labels[n])):a.push({label:""}),n+=1,l[r])"undefined"==typeof g[o]&&(g[o]=[]),g[o].push({value:l[r][o]});for(r in n=0,g)!0===c.showLegend?i.push(s({seriesname:-1!==f.labelObj[r].indexOf("__fcBLANK__")?"":f.labelObj[r],data:g[r]},c.legend[n])):i.push({seriesname:"",data:g[r]}),n+=1}else if("single"===u.chartType)if(p.data=[],i=p.data,n=0,c.showLabels)for(r in l)for(o in l[r])i.push(s({label:-1!==d.labelObj[r].indexOf("__fcBLANK__")?"":d.labelObj[r],value:l[r][o]},c.labels[n])),n+=1;else for(r in l)for(o in l[r])i.push({value:l[r][o]});return{data:p,error:undefined}}(e,t)};function y(e){this.setChartData(e,"htmltable")}e.exports={extension:function(e){return e&&(e.prototype.setHTMLTableData=y),{format:"htmltable",toJSON:g}},name:"HTMLTable",type:"transcoder",requiresFusionCharts:!0}}])});
\ No newline at end of file diff --git a/base_accounting_kit/static/lib/fusioncharts.js b/base_accounting_kit/static/lib/fusioncharts.js new file mode 100644 index 0000000..e55bc5f --- /dev/null +++ b/base_accounting_kit/static/lib/fusioncharts.js @@ -0,0 +1,6 @@ +"function"!=typeof Object.assign&&(Object.assign=function(e){"use strict";var t,r,n,a;if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(t=Object(e),r=1;r<arguments.length;r++)if(null!=(n=arguments[r]))for(a in n)Object.prototype.hasOwnProperty.call(n,a)&&(t[a]=n[a]);return t}),Function.prototype.bind||(Function.prototype.bind=function(e){"use strict";var t,r,n,a;if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");return t=Array.prototype.slice.call(arguments,1),r=this,n=function(){},a=function(){return r.apply(this instanceof n?this:e,t.concat(Array.prototype.slice.call(arguments)))},this.prototype&&(n.prototype=this.prototype),a.prototype=new n,a}),!document.head&&(document.head=document.getElementsByTagName("head")[0]),function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.FusionCharts=t():e.FusionCharts=t()}(window,(function(){return function(e){function t(t){for(var r,a,i=t[0],o=t[1],s=0,c=[];s<i.length;s++)a=i[s],Object.prototype.hasOwnProperty.call(n,a)&&n[a]&&c.push(n[a][0]),n[a]=0;for(r in o)Object.prototype.hasOwnProperty.call(o,r)&&(e[r]=o[r]);for(l&&l(t);c.length;)c.shift()()}var r={},n={0:0};function a(t){if(r[t])return r[t].exports;var n=r[t]={i:t,l:!1,exports:{}};return e[t].call(n.exports,n,n.exports,a),n.l=!0,n.exports}a.e=function(e){var t=[],r=n[e];if(0!==r)if(r)t.push(r[2]);else{var i=new Promise((function(t,a){r=n[e]=[t,a]}));t.push(r[2]=i);var o,s=document.createElement("script");s.charset="utf-8",s.timeout=120,a.nc&&s.setAttribute("nonce",a.nc),s.src=function(e){return a.p+""+({1:"fusioncharts.charts",2:"fusioncharts.common",3:"fusioncharts.timeseries",4:"fusioncharts.powercharts",5:"fusioncharts.widgets",6:"fusioncharts.zoomline",7:"fusioncharts.gantt",8:"fusioncharts.treemap",9:"fusioncharts.zoomscatter",10:"fusioncharts.msstackedcolumn2dsplinedy",11:"fusioncharts.overlappedbar2d",12:"fusioncharts.overlappedcolumn2d",13:"fusioncharts.excelexport",14:"fusioncharts.maps",15:"fusioncharts.vml"}[e]||e)+".js"}(e);var l=new Error;o=function(t){s.onerror=s.onload=null,clearTimeout(c);var r=n[e];if(0!==r){if(r){var a=t&&("load"===t.type?"missing":t.type),i=t&&t.target&&t.target.src;l.message="Loading chunk "+e+" failed.\n("+a+": "+i+")",l.name="ChunkLoadError",l.type=a,l.request=i,r[1](l)}n[e]=undefined}};var c=setTimeout((function(){o({type:"timeout",target:s})}),12e4);s.onerror=s.onload=o,document.head.appendChild(s)}return Promise.all(t)},a.m=e,a.c=r,a.d=function(e,t,r){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(a.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)a.d(r,n,function(t){return e[t]}.bind(null,n));return r},a.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a.oe=function(e){throw console.error(e),e};var i=window.webpackJsonpFusionCharts=window.webpackJsonpFusionCharts||[],o=i.push.bind(i);i.push=t,i=i.slice();for(var s=0;s<i.length;s++)t(i[s]);var l=o;return a(a.s=0)}([function(e,t,r){r(1),r(91),r(173),e.exports=r(177)},function(e,t,r){"use strict";r(2),r(49),r(51),r(53),r(59),r(62),r(68),r(76),r(81),r(83),r(86),r(88),r(90);window.getComputedStyle||(window.getComputedStyle=function(e){return this.el=e,this.getPropertyValue=function(t){var r=/(\-([a-z]){1})/g,n=t;return"float"===n&&(n="styleFloat"),r.test(n)&&(n=n.replace(r,(function(){return arguments[2].toUpperCase()}))),e.currentStyle[n]?e.currentStyle[n]:null},this}),Event.prototype.stopPropagation||(Event.prototype.stopPropagation=function(){this.cancelBubble=!0})},function(e,t,r){r(3);var n=r(38).Object;e.exports=function(e){return n.getOwnPropertyNames(e)}},function(e,t,r){var n=r(4),a=r(9),i=r(48).f;n({target:"Object",stat:!0,forced:a((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})},function(e,t,r){var n=r(5),a=r(7).f,i=r(21),o=r(24),s=r(28),l=r(35),c=r(47);e.exports=function(e,t){var r,u,d,h,f,g=e.target,p=e.global,m=e.stat;if(r=p?n:m?n[g]||s(g,{}):(n[g]||{}).prototype)for(u in t){if(h=t[u],d=e.noTargetGet?(f=a(r,u))&&f.value:r[u],!c(p?u:g+(m?".":"#")+u,e.forced)&&d!==undefined){if(typeof h==typeof d)continue;l(h,d)}(e.sham||d&&d.sham)&&i(h,"sham",!0),o(r,u,h,e)}}},function(e,t,r){(function(t){var r=function(e){return e&&e.Math==Math&&e};e.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof t&&t)||Function("return this")()}).call(this,r(6))},function(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(n){"object"==typeof window&&(r=window)}e.exports=r},function(e,t,r){var n=r(8),a=r(10),i=r(11),o=r(12),s=r(16),l=r(18),c=r(19),u=Object.getOwnPropertyDescriptor;t.f=n?u:function(e,t){if(e=o(e),t=s(t,!0),c)try{return u(e,t)}catch(r){}if(l(e,t))return i(!a.f.call(e,t),e[t])}},function(e,t,r){var n=r(9);e.exports=!n((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(e,t){e.exports=function(e){try{return!!e()}catch(t){return!0}}},function(e,t,r){"use strict";var n={}.propertyIsEnumerable,a=Object.getOwnPropertyDescriptor,i=a&&!n.call({1:2},1);t.f=i?function(e){var t=a(this,e);return!!t&&t.enumerable}:n},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,r){var n=r(13),a=r(15);e.exports=function(e){return n(a(e))}},function(e,t,r){var n=r(9),a=r(14),i="".split;e.exports=n((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==a(e)?i.call(e,""):Object(e)}:Object},function(e,t){var r={}.toString;e.exports=function(e){return r.call(e).slice(8,-1)}},function(e,t){e.exports=function(e){if(e==undefined)throw TypeError("Can't call method on "+e);return e}},function(e,t,r){var n=r(17);e.exports=function(e,t){if(!n(e))return e;var r,a;if(t&&"function"==typeof(r=e.toString)&&!n(a=r.call(e)))return a;if("function"==typeof(r=e.valueOf)&&!n(a=r.call(e)))return a;if(!t&&"function"==typeof(r=e.toString)&&!n(a=r.call(e)))return a;throw TypeError("Can't convert object to primitive value")}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t){var r={}.hasOwnProperty;e.exports=function(e,t){return r.call(e,t)}},function(e,t,r){var n=r(8),a=r(9),i=r(20);e.exports=!n&&!a((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},function(e,t,r){var n=r(5),a=r(17),i=n.document,o=a(i)&&a(i.createElement);e.exports=function(e){return o?i.createElement(e):{}}},function(e,t,r){var n=r(8),a=r(22),i=r(11);e.exports=n?function(e,t,r){return a.f(e,t,i(1,r))}:function(e,t,r){return e[t]=r,e}},function(e,t,r){var n=r(8),a=r(19),i=r(23),o=r(16),s=Object.defineProperty;t.f=n?s:function(e,t,r){if(i(e),t=o(t,!0),i(r),a)try{return s(e,t,r)}catch(n){}if("get"in r||"set"in r)throw TypeError("Accessors not supported");return"value"in r&&(e[t]=r.value),e}},function(e,t,r){var n=r(17);e.exports=function(e){if(!n(e))throw TypeError(String(e)+" is not an object");return e}},function(e,t,r){var n=r(5),a=r(25),i=r(21),o=r(18),s=r(28),l=r(29),c=r(30),u=c.get,d=c.enforce,h=String(l).split("toString");a("inspectSource",(function(e){return l.call(e)})),(e.exports=function(e,t,r,a){var l=!!a&&!!a.unsafe,c=!!a&&!!a.enumerable,u=!!a&&!!a.noTargetGet;"function"==typeof r&&("string"!=typeof t||o(r,"name")||i(r,"name",t),d(r).source=h.join("string"==typeof t?t:"")),e!==n?(l?!u&&e[t]&&(c=!0):delete e[t],c?e[t]=r:i(e,t,r)):c?e[t]=r:s(t,r)})(Function.prototype,"toString",(function(){return"function"==typeof this&&u(this).source||l.call(this)}))},function(e,t,r){var n=r(26),a=r(27);(e.exports=function(e,t){return a[e]||(a[e]=t!==undefined?t:{})})("versions",[]).push({version:"3.4.0",mode:n?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports=!1},function(e,t,r){var n=r(5),a=r(28),i=n["__core-js_shared__"]||a("__core-js_shared__",{});e.exports=i},function(e,t,r){var n=r(5),a=r(21);e.exports=function(e,t){try{a(n,e,t)}catch(r){n[e]=t}return t}},function(e,t,r){var n=r(25);e.exports=n("native-function-to-string",Function.toString)},function(e,t,r){var n,a,i,o=r(31),s=r(5),l=r(17),c=r(21),u=r(18),d=r(32),h=r(34),f=s.WeakMap;if(o){var g=new f,p=g.get,m=g.has,v=g.set;n=function(e,t){return v.call(g,e,t),t},a=function(e){return p.call(g,e)||{}},i=function(e){return m.call(g,e)}}else{var b=d("state");h[b]=!0,n=function(e,t){return c(e,b,t),t},a=function(e){return u(e,b)?e[b]:{}},i=function(e){return u(e,b)}}e.exports={set:n,get:a,has:i,enforce:function(e){return i(e)?a(e):n(e,{})},getterFor:function(e){return function(t){var r;if(!l(t)||(r=a(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return r}}}},function(e,t,r){var n=r(5),a=r(29),i=n.WeakMap;e.exports="function"==typeof i&&/native code/.test(a.call(i))},function(e,t,r){var n=r(25),a=r(33),i=n("keys");e.exports=function(e){return i[e]||(i[e]=a(e))}},function(e,t){var r=0,n=Math.random();e.exports=function(e){return"Symbol("+String(e===undefined?"":e)+")_"+(++r+n).toString(36)}},function(e,t){e.exports={}},function(e,t,r){var n=r(18),a=r(36),i=r(7),o=r(22);e.exports=function(e,t){for(var r=a(t),s=o.f,l=i.f,c=0;c<r.length;c++){var u=r[c];n(e,u)||s(e,u,l(t,u))}}},function(e,t,r){var n=r(37),a=r(39),i=r(46),o=r(23);e.exports=n("Reflect","ownKeys")||function(e){var t=a.f(o(e)),r=i.f;return r?t.concat(r(e)):t}},function(e,t,r){var n=r(38),a=r(5),i=function(e){return"function"==typeof e?e:undefined};e.exports=function(e,t){return arguments.length<2?i(n[e])||i(a[e]):n[e]&&n[e][t]||a[e]&&a[e][t]}},function(e,t,r){e.exports=r(5)},function(e,t,r){var n=r(40),a=r(45).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return n(e,a)}},function(e,t,r){var n=r(18),a=r(12),i=r(41).indexOf,o=r(34);e.exports=function(e,t){var r,s=a(e),l=0,c=[];for(r in s)!n(o,r)&&n(s,r)&&c.push(r);for(;t.length>l;)n(s,r=t[l++])&&(~i(c,r)||c.push(r));return c}},function(e,t,r){var n=r(12),a=r(42),i=r(44),o=function(e){return function(t,r,o){var s,l=n(t),c=a(l.length),u=i(o,c);if(e&&r!=r){for(;c>u;)if((s=l[u++])!=s)return!0}else for(;c>u;u++)if((e||u in l)&&l[u]===r)return e||u||0;return!e&&-1}};e.exports={includes:o(!0),indexOf:o(!1)}},function(e,t,r){var n=r(43),a=Math.min;e.exports=function(e){return e>0?a(n(e),9007199254740991):0}},function(e,t){var r=Math.ceil,n=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?n:r)(e)}},function(e,t,r){var n=r(43),a=Math.max,i=Math.min;e.exports=function(e,t){var r=n(e);return r<0?a(r+t,0):i(r,t)}},function(e,t){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,r){var n=r(9),a=/#|\.prototype\./,i=function(e,t){var r=s[o(e)];return r==c||r!=l&&("function"==typeof t?n(t):!!t)},o=i.normalize=function(e){return String(e).replace(a,".").toLowerCase()},s=i.data={},l=i.NATIVE="N",c=i.POLYFILL="P";e.exports=i},function(e,t,r){var n=r(12),a=r(39).f,i={}.toString,o="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return o&&"[object Window]"==i.call(e)?function(e){try{return a(e)}catch(t){return o.slice()}}(e):a(n(e))}},function(e,t,r){r(50);var n=r(38).Object,a=e.exports=function(e,t){return n.getOwnPropertyDescriptor(e,t)};n.getOwnPropertyDescriptor.sham&&(a.sham=!0)},function(e,t,r){var n=r(4),a=r(9),i=r(12),o=r(7).f,s=r(8),l=a((function(){o(1)}));n({target:"Object",stat:!0,forced:!s||l,sham:!s},{getOwnPropertyDescriptor:function(e,t){return o(i(e),t)}})},function(e,t,r){r(52);var n=r(38).Object,a=e.exports=function(e,t,r){return n.defineProperty(e,t,r)};n.defineProperty.sham&&(a.sham=!0)},function(e,t,r){var n=r(4),a=r(8);n({target:"Object",stat:!0,forced:!a,sham:!a},{defineProperty:r(22).f})},function(e,t,r){r(54);var n=r(38).Object;e.exports=function(e,t){return n.create(e,t)}},function(e,t,r){r(4)({target:"Object",stat:!0,sham:!r(8)},{create:r(55)})},function(e,t,r){var n=r(23),a=r(56),i=r(45),o=r(34),s=r(58),l=r(20),c=r(32)("IE_PROTO"),u=function(){},d=function(){var e,t=l("iframe"),r=i.length;for(t.style.display="none",s.appendChild(t),t.src=String("javascript:"),(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),d=e.F;r--;)delete d.prototype[i[r]];return d()};e.exports=Object.create||function(e,t){var r;return null!==e?(u.prototype=n(e),r=new u,u.prototype=null,r[c]=e):r=d(),t===undefined?r:a(r,t)},o[c]=!0},function(e,t,r){var n=r(8),a=r(22),i=r(23),o=r(57);e.exports=n?Object.defineProperties:function(e,t){i(e);for(var r,n=o(t),s=n.length,l=0;s>l;)a.f(e,r=n[l++],t[r]);return e}},function(e,t,r){var n=r(40),a=r(45);e.exports=Object.keys||function(e){return n(e,a)}},function(e,t,r){var n=r(37);e.exports=n("document","documentElement")},function(e,t,r){r(60);var n=r(38);e.exports=n.Object.keys},function(e,t,r){var n=r(4),a=r(61),i=r(57);n({target:"Object",stat:!0,forced:r(9)((function(){i(1)}))},{keys:function(e){return i(a(e))}})},function(e,t,r){var n=r(15);e.exports=function(e){return Object(n(e))}},function(e,t,r){r(63);var n=r(65);e.exports=n("Array","indexOf")},function(e,t,r){"use strict";var n=r(4),a=r(41).indexOf,i=r(64),o=[].indexOf,s=!!o&&1/[1].indexOf(1,-0)<0,l=i("indexOf");n({target:"Array",proto:!0,forced:s||l},{indexOf:function(e){return s?o.apply(this,arguments)||0:a(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,r){"use strict";var n=r(9);e.exports=function(e,t){var r=[][e];return!r||!n((function(){r.call(null,t||function(){throw 1},1)}))}},function(e,t,r){var n=r(5),a=r(66),i=Function.call;e.exports=function(e,t,r){return a(i,n[e].prototype[t],r)}},function(e,t,r){var n=r(67);e.exports=function(e,t,r){if(n(e),t===undefined)return e;switch(r){case 0:return function(){return e.call(t)};case 1:return function(r){return e.call(t,r)};case 2:return function(r,n){return e.call(t,r,n)};case 3:return function(r,n,a){return e.call(t,r,n,a)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},function(e,t,r){r(69);var n=r(65);e.exports=n("Array","forEach")},function(e,t,r){"use strict";var n=r(4),a=r(70);n({target:"Array",proto:!0,forced:[].forEach!=a},{forEach:a})},function(e,t,r){"use strict";var n=r(71).forEach,a=r(64);e.exports=a("forEach")?function(e){return n(this,e,arguments.length>1?arguments[1]:undefined)}:[].forEach},function(e,t,r){var n=r(66),a=r(13),i=r(61),o=r(42),s=r(72),l=[].push,c=function(e){var t=1==e,r=2==e,c=3==e,u=4==e,d=6==e,h=5==e||d;return function(f,g,p,m){for(var v,b,y=i(f),x=a(y),C=n(g,p,3),w=o(x.length),_=0,k=m||s,S=t?k(f,w):r?k(f,0):undefined;w>_;_++)if((h||_ in x)&&(b=C(v=x[_],_,y),e))if(t)S[_]=b;else if(b)switch(e){case 3:return!0;case 5:return v;case 6:return _;case 2:l.call(S,v)}else if(u)return!1;return d?-1:c||u?u:S}};e.exports={forEach:c(0),map:c(1),filter:c(2),some:c(3),every:c(4),find:c(5),findIndex:c(6)}},function(e,t,r){var n=r(17),a=r(73),i=r(74)("species");e.exports=function(e,t){var r;return a(e)&&("function"!=typeof(r=e.constructor)||r!==Array&&!a(r.prototype)?n(r)&&null===(r=r[i])&&(r=undefined):r=undefined),new(r===undefined?Array:r)(0===t?0:t)}},function(e,t,r){var n=r(14);e.exports=Array.isArray||function(e){return"Array"==n(e)}},function(e,t,r){var n=r(5),a=r(25),i=r(33),o=r(75),s=n.Symbol,l=a("wks");e.exports=function(e){return l[e]||(l[e]=o&&s[e]||(o?s:i)("Symbol."+e))}},function(e,t,r){var n=r(9);e.exports=!!Object.getOwnPropertySymbols&&!n((function(){return!String(Symbol())}))},function(e,t,r){r(77);var n=r(65);e.exports=n("Array","map")},function(e,t,r){"use strict";var n=r(4),a=r(71).map;n({target:"Array",proto:!0,forced:!r(78)("map")},{map:function(e){return a(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,r){var n=r(9),a=r(74),i=r(79),o=a("species");e.exports=function(e){return i>=51||!n((function(){var t=[];return(t.constructor={})[o]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},function(e,t,r){var n,a,i=r(5),o=r(80),s=i.process,l=s&&s.versions,c=l&&l.v8;c?a=(n=c.split("."))[0]+n[1]:o&&(!(n=o.match(/Edge\/(\d+)/))||n[1]>=74)&&(n=o.match(/Chrome\/(\d+)/))&&(a=n[1]),e.exports=a&&+a},function(e,t,r){var n=r(37);e.exports=n("navigator","userAgent")||""},function(e,t,r){r(82);var n=r(65);e.exports=n("Array","filter")},function(e,t,r){"use strict";var n=r(4),a=r(71).filter;n({target:"Array",proto:!0,forced:!r(78)("filter")},{filter:function(e){return a(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,r){r(84);var n=r(65);e.exports=n("Array","reduce")},function(e,t,r){"use strict";var n=r(4),a=r(85).left;n({target:"Array",proto:!0,forced:r(64)("reduce")},{reduce:function(e){return a(this,e,arguments.length,arguments.length>1?arguments[1]:undefined)}})},function(e,t,r){var n=r(67),a=r(61),i=r(13),o=r(42),s=function(e){return function(t,r,s,l){n(r);var c=a(t),u=i(c),d=o(c.length),h=e?d-1:0,f=e?-1:1;if(s<2)for(;;){if(h in u){l=u[h],h+=f;break}if(h+=f,e?h<0:d<=h)throw TypeError("Reduce of empty array with no initial value")}for(;e?h>=0:d>h;h+=f)h in u&&(l=r(l,u[h],h,c));return l}};e.exports={left:s(!1),right:s(!0)}},function(e,t,r){r(87);var n=r(38);e.exports=n.Array.isArray},function(e,t,r){r(4)({target:"Array",stat:!0},{isArray:r(73)})},function(e,t,r){r(89);var n=r(65);e.exports=n("Array","some")},function(e,t,r){"use strict";var n=r(4),a=r(71).some;n({target:"Array",proto:!0,forced:r(64)("some")},{some:function(e){return a(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t){window.MutationObserver=window.MutationObserver||function(e){function t(e){this.i=[],this.m=e}function r(t){var r,n={type:null,target:null,addedNodes:[],removedNodes:[],previousSibling:null,nextSibling:null,attributeName:null,attributeNamespace:null,oldValue:null};for(r in t)n[r]!==e&&t[r]!==e&&(n[r]=t[r]);return n}function n(t,n){var s=i(t,n);return function(c){var u,d=c.length;n.a&&3===t.nodeType&&t.nodeValue!==s.a&&c.push(new r({type:"characterData",target:t,oldValue:s.a})),n.b&&s.b&&a(c,t,s.b,n.f),(n.c||n.g)&&(u=function(t,n,i,s){function c(e,n,i,o,l){var c,d,h,f=e.length-1;for(l=-~((f-l)/2);h=e.pop();)c=i[h.j],d=o[h.l],s.c&&l&&Math.abs(h.j-h.l)>=f&&(t.push(r({type:"childList",target:n,addedNodes:[c],removedNodes:[c],nextSibling:c.nextSibling,previousSibling:c.previousSibling})),l--),s.b&&d.b&&a(t,c,d.b,s.f),s.a&&3===c.nodeType&&c.nodeValue!==d.a&&t.push(r({type:"characterData",target:c,oldValue:d.a})),s.g&&u(c,d)}function u(n,i){for(var h,f,g,p,m,v=n.childNodes,b=i.c,y=v.length,x=b?b.length:0,C=0,w=0,_=0;w<y||_<x;)(p=v[w])===(m=(g=b[_])&&g.node)?(s.b&&g.b&&a(t,p,g.b,s.f),s.a&&g.a!==e&&p.nodeValue!==g.a&&t.push(r({type:"characterData",target:p,oldValue:g.a})),f&&c(f,n,v,b,C),s.g&&(p.childNodes.length||g.c&&g.c.length)&&u(p,g),w++,_++):(d=!0,h||(h={},f=[]),p&&(h[g=o(p)]||(h[g]=!0,-1===(g=l(b,p,_,"node"))?s.c&&(t.push(r({type:"childList",target:n,addedNodes:[p],nextSibling:p.nextSibling,previousSibling:p.previousSibling})),C++):f.push({j:w,l:g})),w++),m&&m!==v[w]&&(h[g=o(m)]||(h[g]=!0,-1===(g=l(v,m,w))?s.c&&(t.push(r({type:"childList",target:i.node,removedNodes:[m],nextSibling:b[_+1],previousSibling:b[_-1]})),C--):f.push({j:g,l:_})),_++));f&&c(f,n,v,b,C)}var d;return u(n,i),d}(c,t,s,n)),(u||c.length!==d)&&(s=i(t,n))}}function a(t,n,a,i){for(var o,s,l={},c=n.attributes,d=c.length;d--;)s=(o=c[d]).name,i&&i[s]===e||(u(n,o)!==a[s]&&t.push(r({type:"attributes",target:n,attributeName:s,oldValue:a[s],attributeNamespace:o.namespaceURI})),l[s]=!0);for(s in a)l[s]||t.push(r({target:n,type:"attributes",attributeName:s,oldValue:a[s]}))}function i(e,t){var r=!0;return function n(e){var a={node:e};return!t.a||3!==e.nodeType&&8!==e.nodeType?(t.b&&r&&1===e.nodeType&&(a.b=s(e.attributes,(function(r,n){return t.f&&!t.f[n.name]||(r[n.name]=u(e,n)),r}))),r&&(t.c||t.a||t.b&&t.g)&&(a.c=function(e,t){for(var r=[],n=0;n<e.length;n++)r[n]=t(e[n],n,e);return r}(e.childNodes,n)),r=t.g):a.a=e.nodeValue,a}(e)}function o(e){try{return e.id||(e.mo_id=e.mo_id||d++)}catch(t){try{return e.nodeValue}catch(r){return d++}}}function s(e,t){for(var r={},n=0;n<e.length;n++)r=t(r,e[n],n,e);return r}function l(e,t,r,n){for(;r<e.length;r++)if((n?e[r][n]:e[r])===t)return r;return-1}t._period=30,t.prototype={observe:function(e,r){for(var a={b:!!(r.attributes||r.attributeFilter||r.attributeOldValue),c:!!r.childList,g:!!r.subtree,a:!(!r.characterData&&!r.characterDataOldValue)},i=this.i,o=0;o<i.length;o++)i[o].s===e&&i.splice(o,1);r.attributeFilter&&(a.f=s(r.attributeFilter,(function(e,t){return e[t]=!0,e}))),i.push({s:e,o:n(e,a)}),this.h||function(e){!function r(){var n=e.takeRecords();n.length&&e.m(n,e),e.h=setTimeout(r,t._period)}()}(this)},takeRecords:function(){for(var e=[],t=this.i,r=0;r<t.length;r++)t[r].o(e);return e},disconnect:function(){this.i=[],clearTimeout(this.h),this.h=null}};var c=document.createElement("i");c.style.top=0;var u=(c="null"!=c.attributes.style.value)?function(e,t){return t.value}:function(e,t){return"style"!==t.name?t.value:e.style.cssText},d=1;return t}(void 0)},function(e,t,r){"use strict";r(92),r(95),r(114),r(116),r(119),r(121),r(123),r(129),r(132),r(134),r(136),r(141),r(144),r(146),r(148),r(151),r(153),r(167),r(169),Element.prototype.remove||(Element.prototype.remove=function(){this.parentNode&&this.parentNode.removeChild(this)})},function(e,t,r){r(93);var n=r(38);e.exports=n.Object.entries},function(e,t,r){var n=r(4),a=r(94).entries;n({target:"Object",stat:!0},{entries:function(e){return a(e)}})},function(e,t,r){var n=r(8),a=r(57),i=r(12),o=r(10).f,s=function(e){return function(t){for(var r,s=i(t),l=a(s),c=l.length,u=0,d=[];c>u;)r=l[u++],n&&!o.call(s,r)||d.push(e?[r,s[r]]:s[r]);return d}};e.exports={entries:s(!0),values:s(!1)}},function(e,t,r){r(96),r(107);var n=r(38);e.exports=n.Object.fromEntries},function(e,t,r){"use strict";var n=r(12),a=r(97),i=r(98),o=r(30),s=r(99),l=o.set,c=o.getterFor("Array Iterator");e.exports=s(Array,"Array",(function(e,t){l(this,{type:"Array Iterator",target:n(e),index:0,kind:t})}),(function(){var e=c(this),t=e.target,r=e.kind,n=e.index++;return!t||n>=t.length?(e.target=undefined,{value:undefined,done:!0}):"keys"==r?{value:n,done:!1}:"values"==r?{value:t[n],done:!1}:{value:[n,t[n]],done:!1}}),"values"),i.Arguments=i.Array,a("keys"),a("values"),a("entries")},function(e,t,r){var n=r(74),a=r(55),i=r(21),o=n("unscopables"),s=Array.prototype;s[o]==undefined&&i(s,o,a(null)),e.exports=function(e){s[o][e]=!0}},function(e,t){e.exports={}},function(e,t,r){"use strict";var n=r(4),a=r(100),i=r(102),o=r(105),s=r(104),l=r(21),c=r(24),u=r(74),d=r(26),h=r(98),f=r(101),g=f.IteratorPrototype,p=f.BUGGY_SAFARI_ITERATORS,m=u("iterator"),v=function(){return this};e.exports=function(e,t,r,u,f,b,y){a(r,t,u);var x,C,w,_=function(e){if(e===f&&T)return T;if(!p&&e in E)return E[e];switch(e){case"keys":case"values":case"entries":return function(){return new r(this,e)}}return function(){return new r(this)}},k=t+" Iterator",S=!1,E=e.prototype,A=E[m]||E["@@iterator"]||f&&E[f],T=!p&&A||_(f),M="Array"==t&&E.entries||A;if(M&&(x=i(M.call(new e)),g!==Object.prototype&&x.next&&(d||i(x)===g||(o?o(x,g):"function"!=typeof x[m]&&l(x,m,v)),s(x,k,!0,!0),d&&(h[k]=v))),"values"==f&&A&&"values"!==A.name&&(S=!0,T=function(){return A.call(this)}),d&&!y||E[m]===T||l(E,m,T),h[t]=T,f)if(C={values:_("values"),keys:b?T:_("keys"),entries:_("entries")},y)for(w in C)!p&&!S&&w in E||c(E,w,C[w]);else n({target:t,proto:!0,forced:p||S},C);return C}},function(e,t,r){"use strict";var n=r(101).IteratorPrototype,a=r(55),i=r(11),o=r(104),s=r(98),l=function(){return this};e.exports=function(e,t,r){var c=t+" Iterator";return e.prototype=a(n,{next:i(1,r)}),o(e,c,!1,!0),s[c]=l,e}},function(e,t,r){"use strict";var n,a,i,o=r(102),s=r(21),l=r(18),c=r(74),u=r(26),d=c("iterator"),h=!1;[].keys&&("next"in(i=[].keys())?(a=o(o(i)))!==Object.prototype&&(n=a):h=!0),n==undefined&&(n={}),u||l(n,d)||s(n,d,(function(){return this})),e.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:h}},function(e,t,r){var n=r(18),a=r(61),i=r(32),o=r(103),s=i("IE_PROTO"),l=Object.prototype;e.exports=o?Object.getPrototypeOf:function(e){return e=a(e),n(e,s)?e[s]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?l:null}},function(e,t,r){var n=r(9);e.exports=!n((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},function(e,t,r){var n=r(22).f,a=r(18),i=r(74)("toStringTag");e.exports=function(e,t,r){e&&!a(e=r?e:e.prototype,i)&&n(e,i,{configurable:!0,value:t})}},function(e,t,r){var n=r(23),a=r(106);e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,r={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(r,[]),t=r instanceof Array}catch(i){}return function(r,i){return n(r),a(i),t?e.call(r,i):r.__proto__=i,r}}():undefined)},function(e,t,r){var n=r(17);e.exports=function(e){if(!n(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},function(e,t,r){var n=r(4),a=r(108),i=r(113);n({target:"Object",stat:!0},{fromEntries:function(e){var t={};return a(e,(function(e,r){i(t,e,r)}),undefined,!0),t}})},function(e,t,r){var n=r(23),a=r(109),i=r(42),o=r(66),s=r(110),l=r(112),c=function(e,t){this.stopped=e,this.result=t};(e.exports=function(e,t,r,u,d){var h,f,g,p,m,v,b,y=o(t,r,u?2:1);if(d)h=e;else{if("function"!=typeof(f=s(e)))throw TypeError("Target is not iterable");if(a(f)){for(g=0,p=i(e.length);p>g;g++)if((m=u?y(n(b=e[g])[0],b[1]):y(e[g]))&&m instanceof c)return m;return new c(!1)}h=f.call(e)}for(v=h.next;!(b=v.call(h)).done;)if("object"==typeof(m=l(h,y,b.value,u))&&m&&m instanceof c)return m;return new c(!1)}).stop=function(e){return new c(!0,e)}},function(e,t,r){var n=r(74),a=r(98),i=n("iterator"),o=Array.prototype;e.exports=function(e){return e!==undefined&&(a.Array===e||o[i]===e)}},function(e,t,r){var n=r(111),a=r(98),i=r(74)("iterator");e.exports=function(e){if(e!=undefined)return e[i]||e["@@iterator"]||a[n(e)]}},function(e,t,r){var n=r(14),a=r(74)("toStringTag"),i="Arguments"==n(function(){return arguments}());e.exports=function(e){var t,r,o;return e===undefined?"Undefined":null===e?"Null":"string"==typeof(r=function(e,t){try{return e[t]}catch(r){}}(t=Object(e),a))?r:i?n(t):"Object"==(o=n(t))&&"function"==typeof t.callee?"Arguments":o}},function(e,t,r){var n=r(23);e.exports=function(e,t,r,a){try{return a?t(n(r)[0],r[1]):t(r)}catch(o){var i=e["return"];throw i!==undefined&&n(i.call(e)),o}}},function(e,t,r){"use strict";var n=r(16),a=r(22),i=r(11);e.exports=function(e,t,r){var o=n(t);o in e?a.f(e,o,i(0,r)):e[o]=r}},function(e,t,r){r(115);var n=r(38);e.exports=n.Object.values},function(e,t,r){var n=r(4),a=r(94).values;n({target:"Object",stat:!0},{values:function(e){return a(e)}})},function(e,t,r){r(117);var n=r(38);e.exports=n.Math.sign},function(e,t,r){r(4)({target:"Math",stat:!0},{sign:r(118)})},function(e,t){e.exports=Math.sign||function(e){return 0==(e=+e)||e!=e?e:e<0?-1:1}},function(e,t,r){r(120);var n=r(65);e.exports=n("Array","findIndex")},function(e,t,r){"use strict";var n=r(4),a=r(71).findIndex,i=r(97),o=!0;"findIndex"in[]&&Array(1).findIndex((function(){o=!1})),n({target:"Array",proto:!0,forced:o},{findIndex:function(e){return a(this,e,arguments.length>1?arguments[1]:undefined)}}),i("findIndex")},function(e,t,r){r(122);var n=r(65);e.exports=n("Array","find")},function(e,t,r){"use strict";var n=r(4),a=r(71).find,i=r(97),o=!0;"find"in[]&&Array(1).find((function(){o=!1})),n({target:"Array",proto:!0,forced:o},{find:function(e){return a(this,e,arguments.length>1?arguments[1]:undefined)}}),i("find")},function(e,t,r){r(124),r(126);var n=r(38);e.exports=n.Array.from},function(e,t,r){"use strict";var n=r(125).charAt,a=r(30),i=r(99),o=a.set,s=a.getterFor("String Iterator");i(String,"String",(function(e){o(this,{type:"String Iterator",string:String(e),index:0})}),(function(){var e,t=s(this),r=t.string,a=t.index;return a>=r.length?{value:undefined,done:!0}:(e=n(r,a),t.index+=e.length,{value:e,done:!1})}))},function(e,t,r){var n=r(43),a=r(15),i=function(e){return function(t,r){var i,o,s=String(a(t)),l=n(r),c=s.length;return l<0||l>=c?e?"":undefined:(i=s.charCodeAt(l))<55296||i>56319||l+1===c||(o=s.charCodeAt(l+1))<56320||o>57343?e?s.charAt(l):i:e?s.slice(l,l+2):o-56320+(i-55296<<10)+65536}};e.exports={codeAt:i(!1),charAt:i(!0)}},function(e,t,r){var n=r(4),a=r(127);n({target:"Array",stat:!0,forced:!r(128)((function(e){Array.from(e)}))},{from:a})},function(e,t,r){"use strict";var n=r(66),a=r(61),i=r(112),o=r(109),s=r(42),l=r(113),c=r(110);e.exports=function(e){var t,r,u,d,h,f=a(e),g="function"==typeof this?this:Array,p=arguments.length,m=p>1?arguments[1]:undefined,v=m!==undefined,b=0,y=c(f);if(v&&(m=n(m,p>2?arguments[2]:undefined,2)),y==undefined||g==Array&&o(y))for(r=new g(t=s(f.length));t>b;b++)l(r,b,v?m(f[b],b):f[b]);else for(h=(d=y.call(f)).next,r=new g;!(u=h.call(d)).done;b++)l(r,b,v?i(d,m,[u.value,b],!0):u.value);return r.length=b,r}},function(e,t,r){var n=r(74)("iterator"),a=!1;try{var i=0,o={next:function(){return{done:!!i++}},"return":function(){a=!0}};o[n]=function(){return this},Array.from(o,(function(){throw 2}))}catch(s){}e.exports=function(e,t){if(!t&&!a)return!1;var r=!1;try{var i={};i[n]=function(){return{next:function(){return{done:r=!0}}}},e(i)}catch(s){}return r}},function(e,t,r){r(130);var n=r(65);e.exports=n("Array","fill")},function(e,t,r){var n=r(4),a=r(131),i=r(97);n({target:"Array",proto:!0},{fill:a}),i("fill")},function(e,t,r){"use strict";var n=r(61),a=r(44),i=r(42);e.exports=function(e){for(var t=n(this),r=i(t.length),o=arguments.length,s=a(o>1?arguments[1]:undefined,r),l=o>2?arguments[2]:undefined,c=l===undefined?r:a(l,r);c>s;)t[s++]=e;return t}},function(e,t,r){r(133);var n=r(65);e.exports=n("Array","includes")},function(e,t,r){"use strict";var n=r(4),a=r(41).includes,i=r(97);n({target:"Array",proto:!0},{includes:function(e){return a(this,e,arguments.length>1?arguments[1]:undefined)}}),i("includes")},function(e,t,r){r(135),e.exports=Math.pow(2,-52)},function(e,t,r){r(4)({target:"Number",stat:!0},{EPSILON:Math.pow(2,-52)})},function(e,t,r){r(137);var n=r(38);e.exports=n.Number.parseFloat},function(e,t,r){var n=r(4),a=r(138);n({target:"Number",stat:!0,forced:Number.parseFloat!=a},{parseFloat:a})},function(e,t,r){var n=r(5),a=r(139).trim,i=r(140),o=n.parseFloat,s=1/o(i+"-0")!=-Infinity;e.exports=s?function(e){var t=a(String(e)),r=o(t);return 0===r&&"-"==t.charAt(0)?-0:r}:o},function(e,t,r){var n=r(15),a="["+r(140)+"]",i=RegExp("^"+a+a+"*"),o=RegExp(a+a+"*$"),s=function(e){return function(t){var r=String(n(t));return 1&e&&(r=r.replace(i,"")),2&e&&(r=r.replace(o,"")),r}};e.exports={start:s(1),end:s(2),trim:s(3)}},function(e,t){e.exports="\t\n\x0B\f\r \u2028\u2029\ufeff"},function(e,t,r){r(142);var n=r(38);e.exports=n.Number.parseInt},function(e,t,r){var n=r(4),a=r(143);n({target:"Number",stat:!0,forced:Number.parseInt!=a},{parseInt:a})},function(e,t,r){var n=r(5),a=r(139).trim,i=r(140),o=n.parseInt,s=/^[+-]?0[Xx]/,l=8!==o(i+"08")||22!==o(i+"0x16");e.exports=l?function(e,t){var r=a(String(e));return o(r,t>>>0||(s.test(r)?16:10))}:o},function(e,t,r){r(145),e.exports=-9007199254740991},function(e,t,r){r(4)({target:"Number",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},function(e,t,r){r(147),e.exports=9007199254740991},function(e,t,r){r(4)({target:"Number",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},function(e,t,r){r(149);var n=r(38);e.exports=n.Number.isFinite},function(e,t,r){r(4)({target:"Number",stat:!0},{isFinite:r(150)})},function(e,t,r){var n=r(5).isFinite;e.exports=Number.isFinite||function(e){return"number"==typeof e&&n(e)}},function(e,t,r){r(152);var n=r(38);e.exports=n.Number.isNaN},function(e,t,r){r(4)({target:"Number",stat:!0},{isNaN:function(e){return e!=e}})},function(e,t,r){r(154),r(163),r(124),r(165);var n=r(38);e.exports=n.Set},function(e,t,r){"use strict";var n=r(155),a=r(160);e.exports=n("Set",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),a)},function(e,t,r){"use strict";var n=r(4),a=r(5),i=r(47),o=r(24),s=r(156),l=r(108),c=r(158),u=r(17),d=r(9),h=r(128),f=r(104),g=r(159);e.exports=function(e,t,r,p,m){var v=a[e],b=v&&v.prototype,y=v,x=p?"set":"add",C={},w=function(e){var t=b[e];o(b,e,"add"==e?function(e){return t.call(this,0===e?0:e),this}:"delete"==e?function(e){return!(m&&!u(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return m&&!u(e)?undefined:t.call(this,0===e?0:e)}:"has"==e?function(e){return!(m&&!u(e))&&t.call(this,0===e?0:e)}:function(e,r){return t.call(this,0===e?0:e,r),this})};if(i(e,"function"!=typeof v||!(m||b.forEach&&!d((function(){(new v).entries().next()})))))y=r.getConstructor(t,e,p,x),s.REQUIRED=!0;else if(i(e,!0)){var _=new y,k=_[x](m?{}:-0,1)!=_,S=d((function(){_.has(1)})),E=h((function(e){new v(e)})),A=!m&&d((function(){for(var e=new v,t=5;t--;)e[x](t,t);return!e.has(-0)}));E||((y=t((function(t,r){c(t,y,e);var n=g(new v,t,y);return r!=undefined&&l(r,n[x],n,p),n}))).prototype=b,b.constructor=y),(S||A)&&(w("delete"),w("has"),p&&w("get")),(A||k)&&w(x),m&&b.clear&&delete b.clear}return C[e]=y,n({global:!0,forced:y!=v},C),f(y,e),m||r.setStrong(y,e,p),y}},function(e,t,r){var n=r(34),a=r(17),i=r(18),o=r(22).f,s=r(33),l=r(157),c=s("meta"),u=0,d=Object.isExtensible||function(){return!0},h=function(e){o(e,c,{value:{objectID:"O"+ ++u,weakData:{}}})},f=e.exports={REQUIRED:!1,fastKey:function(e,t){if(!a(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!i(e,c)){if(!d(e))return"F";if(!t)return"E";h(e)}return e[c].objectID},getWeakData:function(e,t){if(!i(e,c)){if(!d(e))return!0;if(!t)return!1;h(e)}return e[c].weakData},onFreeze:function(e){return l&&f.REQUIRED&&d(e)&&!i(e,c)&&h(e),e}};n[c]=!0},function(e,t,r){var n=r(9);e.exports=!n((function(){return Object.isExtensible(Object.preventExtensions({}))}))},function(e,t){e.exports=function(e,t,r){if(!(e instanceof t))throw TypeError("Incorrect "+(r?r+" ":"")+"invocation");return e}},function(e,t,r){var n=r(17),a=r(105);e.exports=function(e,t,r){var i,o;return a&&"function"==typeof(i=t.constructor)&&i!==r&&n(o=i.prototype)&&o!==r.prototype&&a(e,o),e}},function(e,t,r){"use strict";var n=r(22).f,a=r(55),i=r(161),o=r(66),s=r(158),l=r(108),c=r(99),u=r(162),d=r(8),h=r(156).fastKey,f=r(30),g=f.set,p=f.getterFor;e.exports={getConstructor:function(e,t,r,c){var u=e((function(e,n){s(e,u,t),g(e,{type:t,index:a(null),first:undefined,last:undefined,size:0}),d||(e.size=0),n!=undefined&&l(n,e[c],e,r)})),f=p(t),m=function(e,t,r){var n,a,i=f(e),o=v(e,t);return o?o.value=r:(i.last=o={index:a=h(t,!0),key:t,value:r,previous:n=i.last,next:undefined,removed:!1},i.first||(i.first=o),n&&(n.next=o),d?i.size++:e.size++,"F"!==a&&(i.index[a]=o)),e},v=function(e,t){var r,n=f(e),a=h(t);if("F"!==a)return n.index[a];for(r=n.first;r;r=r.next)if(r.key==t)return r};return i(u.prototype,{clear:function(){for(var e=f(this),t=e.index,r=e.first;r;)r.removed=!0,r.previous&&(r.previous=r.previous.next=undefined),delete t[r.index],r=r.next;e.first=e.last=undefined,d?e.size=0:this.size=0},"delete":function(e){var t=f(this),r=v(this,e);if(r){var n=r.next,a=r.previous;delete t.index[r.index],r.removed=!0,a&&(a.next=n),n&&(n.previous=a),t.first==r&&(t.first=n),t.last==r&&(t.last=a),d?t.size--:this.size--}return!!r},forEach:function(e){for(var t,r=f(this),n=o(e,arguments.length>1?arguments[1]:undefined,3);t=t?t.next:r.first;)for(n(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!v(this,e)}}),i(u.prototype,r?{get:function(e){var t=v(this,e);return t&&t.value},set:function(e,t){return m(this,0===e?0:e,t)}}:{add:function(e){return m(this,e=0===e?0:e,e)}}),d&&n(u.prototype,"size",{get:function(){return f(this).size}}),u},setStrong:function(e,t,r){var n=t+" Iterator",a=p(t),i=p(n);c(e,t,(function(e,t){g(this,{type:n,target:e,state:a(e),kind:t,last:undefined})}),(function(){for(var e=i(this),t=e.kind,r=e.last;r&&r.removed;)r=r.previous;return e.target&&(e.last=r=r?r.next:e.state.first)?"keys"==t?{value:r.key,done:!1}:"values"==t?{value:r.value,done:!1}:{value:[r.key,r.value],done:!1}:(e.target=undefined,{value:undefined,done:!0})}),r?"entries":"values",!r,!0),u(t)}}},function(e,t,r){var n=r(24);e.exports=function(e,t,r){for(var a in t)n(e,a,t[a],r);return e}},function(e,t,r){"use strict";var n=r(37),a=r(22),i=r(74),o=r(8),s=i("species");e.exports=function(e){var t=n(e),r=a.f;o&&t&&!t[s]&&r(t,s,{configurable:!0,get:function(){return this}})}},function(e,t,r){var n=r(24),a=r(164),i=Object.prototype;a!==i.toString&&n(i,"toString",a,{unsafe:!0})},function(e,t,r){"use strict";var n=r(111),a={};a[r(74)("toStringTag")]="z",e.exports="[object z]"!==String(a)?function(){return"[object "+n(this)+"]"}:a.toString},function(e,t,r){var n=r(5),a=r(166),i=r(96),o=r(21),s=r(74),l=s("iterator"),c=s("toStringTag"),u=i.values;for(var d in a){var h=n[d],f=h&&h.prototype;if(f){if(f[l]!==u)try{o(f,l,u)}catch(p){f[l]=u}if(f[c]||o(f,c,d),a[d])for(var g in i)if(f[g]!==i[g])try{o(f,g,i[g])}catch(p){f[g]=i[g]}}}},function(e,t){e.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},function(e,t,r){r(168),r(163),r(124),r(165);var n=r(38);e.exports=n.Map},function(e,t,r){"use strict";var n=r(155),a=r(160);e.exports=n("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),a,!0)},function(e,t,r){r(170),r(172);var n=r(65);e.exports=n("Array","flat")},function(e,t,r){"use strict";var n=r(4),a=r(171),i=r(61),o=r(42),s=r(43),l=r(72);n({target:"Array",proto:!0},{flat:function(){var e=arguments.length?arguments[0]:undefined,t=i(this),r=o(t.length),n=l(t,0);return n.length=a(n,t,t,r,0,e===undefined?1:s(e)),n}})},function(e,t,r){"use strict";var n=r(73),a=r(42),i=r(66),o=function(e,t,r,s,l,c,u,d){for(var h,f=l,g=0,p=!!u&&i(u,d,3);g<s;){if(g in r){if(h=p?p(r[g],g,t):r[g],c>0&&n(h))f=o(e,t,h,a(h.length),f,c-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[f]=h}f++}g++}return f};e.exports=o},function(e,t,r){r(97)("flat")},function(e,t,r){(function(e,t){!function(){"use strict";function r(e){var t=this.constructor;return this.then((function(r){return t.resolve(e()).then((function(){return r}))}),(function(r){return t.resolve(e()).then((function(){return t.reject(r)}))}))}function n(e){return!(!e||"undefined"==typeof e.length)}function a(){}function i(e){if(!(this instanceof i))throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=undefined,this._deferreds=[],u(e,this)}function o(e,t){for(;3===e._state;)e=e._value;0!==e._state?(e._handled=!0,i._immediateFn((function(){var r=1===e._state?t.onFulfilled:t.onRejected;if(null!==r){var n;try{n=r(e._value)}catch(o){return void l(t.promise,o)}s(t.promise,n)}else(1===e._state?s:l)(t.promise,e._value)}))):e._deferreds.push(t)}function s(e,t){try{if(t===e)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"==typeof t||"function"==typeof t)){var r=t.then;if(t instanceof i)return e._state=3,e._value=t,void c(e);if("function"==typeof r)return void u(function(e,t){return function(){e.apply(t,arguments)}}(r,t),e)}e._state=1,e._value=t,c(e)}catch(o){l(e,o)}}function l(e,t){e._state=2,e._value=t,c(e)}function c(e){2===e._state&&0===e._deferreds.length&&i._immediateFn((function(){e._handled||i._unhandledRejectionFn(e._value)}));for(var t=0,r=e._deferreds.length;r>t;t++)o(e,e._deferreds[t]);e._deferreds=null}function u(e,t){var r=!1;try{e((function(e){r||(r=!0,s(t,e))}),(function(e){r||(r=!0,l(t,e))}))}catch(i){if(r)return;r=!0,l(t,i)}}var d=setTimeout;i.prototype["catch"]=function(e){return this.then(null,e)},i.prototype.then=function(e,t){var r=new this.constructor(a);return o(this,new function(e,t,r){this.onFulfilled="function"==typeof e?e:null,this.onRejected="function"==typeof t?t:null,this.promise=r}(e,t,r)),r},i.prototype["finally"]=r,i.all=function(e){return new i((function(t,r){function a(e,n){try{if(n&&("object"==typeof n||"function"==typeof n)){var s=n.then;if("function"==typeof s)return void s.call(n,(function(t){a(e,t)}),r)}i[e]=n,0==--o&&t(i)}catch(u){r(u)}}if(!n(e))return r(new TypeError("Promise.all accepts an array"));var i=Array.prototype.slice.call(e);if(0===i.length)return t([]);for(var o=i.length,s=0;i.length>s;s++)a(s,i[s])}))},i.resolve=function(e){return e&&"object"==typeof e&&e.constructor===i?e:new i((function(t){t(e)}))},i.reject=function(e){return new i((function(t,r){r(e)}))},i.race=function(e){return new i((function(t,r){if(!n(e))return r(new TypeError("Promise.race accepts an array"));for(var a=0,o=e.length;o>a;a++)i.resolve(e[a]).then(t,r)}))},i._immediateFn="function"==typeof e&&function(t){e(t)}||function(e){d(e,0)},i._unhandledRejectionFn=function(e){void 0!==console&&console&&console.warn("Possible Unhandled Promise Rejection:",e)};var h=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==t)return t;throw Error("unable to locate global object")}();"Promise"in h?h.Promise.prototype["finally"]||(h.Promise.prototype["finally"]=r):h.Promise=i}()}).call(this,r(174).setImmediate,r(6))},function(e,t,r){(function(e){var n=void 0!==e&&e||"undefined"!=typeof self&&self||window,a=Function.prototype.apply;function i(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new i(a.call(setTimeout,n,arguments),clearTimeout)},t.setInterval=function(){return new i(a.call(setInterval,n,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(n,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},r(175),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,r(6))},function(e,t,r){(function(e,t){!function(e,r){"use strict";if(!e.setImmediate){var n,a,i,o,s,l=1,c={},u=!1,d=e.document,h=Object.getPrototypeOf&&Object.getPrototypeOf(e);h=h&&h.setTimeout?h:e,"[object process]"==={}.toString.call(e.process)?n=function(e){t.nextTick((function(){g(e)}))}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,r=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=r,t}}()?e.MessageChannel?((i=new MessageChannel).port1.onmessage=function(e){g(e.data)},n=function(e){i.port2.postMessage(e)}):d&&"onreadystatechange"in d.createElement("script")?(a=d.documentElement,n=function(e){var t=d.createElement("script");t.onreadystatechange=function(){g(e),t.onreadystatechange=null,a.removeChild(t),t=null},a.appendChild(t)}):n=function(e){setTimeout(g,0,e)}:(o="setImmediate$"+Math.random()+"$",s=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(o)&&g(+t.data.slice(o.length))},e.addEventListener?e.addEventListener("message",s,!1):e.attachEvent("onmessage",s),n=function(t){e.postMessage(o+t,"*")}),h.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),r=0;r<t.length;r++)t[r]=arguments[r+1];var a={callback:e,args:t};return c[l]=a,n(l),l++},h.clearImmediate=f}function f(e){delete c[e]}function g(e){if(u)setTimeout(g,0,e);else{var t=c[e];if(t){u=!0;try{!function(e){var t=e.callback,n=e.args;switch(n.length){case 0:t();break;case 1:t(n[0]);break;case 2:t(n[0],n[1]);break;case 3:t(n[0],n[1],n[2]);break;default:t.apply(r,n)}}(t)}finally{f(e),u=!1}}}}}("undefined"==typeof self?void 0===e?this:e:self)}).call(this,r(6),r(176))},function(e,t){var r,n,a=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function s(e){if(r===setTimeout)return setTimeout(e,0);if((r===i||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:i}catch(e){r=i}try{n="function"==typeof clearTimeout?clearTimeout:o}catch(e){n=o}}();var l,c=[],u=!1,d=-1;function h(){u&&l&&(u=!1,l.length?c=l.concat(c):d=-1,c.length&&f())}function f(){if(!u){var e=s(h);u=!0;for(var t=c.length;t;){for(l=c,c=[];++d<t;)l&&l[d].run();d=-1,t=c.length}l=null,u=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===o||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}(e)}}function g(e,t){this.fun=e,this.array=t}function p(){}a.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];c.push(new g(e,t)),1!==c.length||u||s(f)},g.prototype.run=function(){this.fun.apply(null,this.array)},a.title="browser",a.browser=!0,a.env={},a.argv=[],a.version="",a.versions={},a.on=p,a.addListener=p,a.once=p,a.off=p,a.removeListener=p,a.removeAllListeners=p,a.emit=p,a.prependListener=p,a.prependOnceListener=p,a.listeners=function(e){return[]},a.binding=function(e){throw new Error("process.binding is not supported")},a.cwd=function(){return"/"},a.chdir=function(e){throw new Error("process.chdir is not supported")},a.umask=function(){return 0}},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(179)),i=n(r(398)),o=n(r(399)),s=n(r(232)),l=r(184);a["default"].addDep(s["default"]);var c,u=(c={},function(e){var t=e;return t=t&&t.replace(/(^\s*)|(\s*$)/g,"")||"",c[t]||(c[t]={key:t,subject:t.replace(/[^\/]*?$/gi,""),predicate:t.replace(/^.*\//gi,"")})});function d(e){switch(i["default"][e]){case"charts":return Promise.all([r.e(2),r.e(1)]).then(r.t.bind(null,401,7));case"timeseries":return Promise.all([r.e(2),r.e(3)]).then(r.t.bind(null,674,7));case"powercharts":return Promise.all([r.e(2),r.e(4)]).then(r.t.bind(null,852,7));case"widgets":return Promise.all([r.e(2),r.e(5)]).then(r.t.bind(null,1017,7));case"zoomline":return Promise.all([r.e(2),r.e(6)]).then(r.t.bind(null,1111,7));case"gantt":return Promise.all([r.e(2),r.e(7)]).then(r.t.bind(null,1122,7));case"treemap":return Promise.all([r.e(2),r.e(8)]).then(r.t.bind(null,1140,7));case"zoomscatter":return Promise.all([r.e(2),r.e(9)]).then(r.t.bind(null,1146,7));case"msstackedcolumn2dsplinedy":return Promise.all([r.e(2),r.e(10)]).then(r.t.bind(null,1150,7));case"overlappedbar2d":return Promise.all([r.e(2),r.e(11)]).then(r.t.bind(null,1154,7));case"overlappedcolumn2d":return Promise.all([r.e(2),r.e(12)]).then(r.t.bind(null,1159,7));default:return(0,o["default"])(""+a["default"].getScriptBaseURI()+function(e){var t,r=a["default"].options,n=e;return n=function(e){return void 0===e&&(e=""),""===e?e:e.replace(/^[\s\S]*\//gi,"").replace(/\?/g,"%3F").replace(/\#/g,"%23").replace(/\:/g,"%3A")}((t=u(n)).predicate),t.subject+r.html5ScriptNamePrefix+n+r.html5ScriptNameSuffix}(e))}}a["default"].addEventListener("resourceRequested",(function(e){var t=e.sender,r=t.chartType(),n=t.options.chartTypeSourcePath||"";a["default"].getDep(r,"chartapi")||a["default"].getDep(r,"maps")||a["default"].addDep({name:r,type:"dependency",extension:d(n+r)})})),a["default"].addEventListener("preconfigure",(function(e){var t=e.sender;if("chartAPI"===t.getType()){var n=t.getFromEnv("dataSource");n&&n.chart&&(0,l.pluck)(n.chart.exportenabled,0)&&!a["default"].getDep("ExcelExport")&&a["default"].addDep({name:"ExcelExport",extension:Promise.all([r.e(2),r.e(13)]).then(r.t.bind(null,1163,7)).then((function(e){var t=e["default"];a["default"].addDep(t)}))})}})),window&&r(400)&&(window.FusionCharts=a["default"]);var h=a["default"];t["default"]=h},function(e,t){e.exports=function(e){return e&&e.__esModule?e:{"default":e}}},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(180)),i=r(191),o=n(r(339)),s=r(365),l=r(394),c=r(395);a["default"].DataStore=o["default"],a["default"].DataStore.Operators={between:s.between,equals:s.equals,less:s.less,lessEquals:s.lessEquals,greater:s.greater,greaterEquals:s.greaterEquals,filter:s.filter,select:s.select,groupBy:s.groupBy,pipe:s.pipe,sort:s.sort,pivot:s.pivot},a["default"].Utils={duration:c.duration,before:c.before,after:c.after,parseDate:c.parseDate,formatDate:c.formatDate,DatetimeUnits:c.DatetimeUnits,Weekdays:c.Weekdays},a["default"].DataStore.Aggregators={aggregatorStore:l.aggregatorStore};var u=["type","id","width","height","debugMode","registerWithJS","backgroundColor","scaleMode","lang","detectFlashVersion","autoInstallRedirect"],d=function(e,t){var r,n;for(r=0,n=u.length;r<n;r++)"object"==typeof t[r]?Object.assign(e,t[r]):e[u[r]]=t[r];return e};function h(e){var t=e;return this instanceof h?(1===arguments.length&&"object"==typeof t||(t=d({},arguments)),new(Function.prototype.bind.apply(a["default"],[null].concat(t)))):1===arguments.length&&t instanceof Array&&"private"===t[0]?a["default"].register("module",t):1===arguments.length&&"string"==typeof t?a["default"].getChartFromId(t):void(0,i.raiseError)(h,"25081840","run","",new SyntaxError('Use the "new" keyword while creating a new FusionCharts object'))}Object.getOwnPropertyNames(a["default"]).filter((function(e){return!0===Object.getOwnPropertyDescriptor(a["default"],e).writable})).forEach((function(e){h[e]=a["default"][e]}));var f=h;t["default"]=f},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(181)),i=n(r(232));a["default"].addDep(i["default"]);var o=a["default"];t["default"]=o},function(e,t,r){"use strict";var n=r(182),a=r(178);t.__esModule=!0,t["default"]=void 0;var i,o,s,l,c,u,d=a(r(183)),h=r(184),f=r(191),g=r(192),p=r(193),m=a(r(194)),v=n(r(195)),b=a(r(204)),y=r(196),x=a(r(207)),C=a(r(208)),w=a(r(209)),_=a(r(210)),k=a(r(213)),S=a(r(215)),E=a(r(216)),A=a(r(227)),T=a(r(231)),M="json",F="3.15.0-sr.1",I=/(^|[\/\\])(fusioncharts\.js)([\?#].*)?$/gi,L=/^(FusionCharts|FusionWidgets|FusionMaps)/,N=/[^\%\d]*$/gi,D=/url$/i,O=!0,R="url",P={position:"relative",textAlign:"left",lineHeight:"normal",display:"inline-block",zoom:"1",vAlign:"middle",fontWeight:"normal",fontVariant:"normal",fontStyle:"normal",textDecoration:"none",ieSevenDisplay:"inline",padding:"0",margin:"0",border:"none",direction:"ltr",transform:"none"},V=function(e){return e.toString().toLowerCase()},B=function(){return{state:2}},j=(o={},s=function fe(){var e,t,r,n,a,s=0,l=parseInt(de.options.visibilityTrackingInterval,10)||300;for(e in o)if(s+=1,t=o[e].chart,r=o[e].container,n=o[e].insertMode,a=o[e].callback,t.disposed||!G(r)){if(delete o[e],s-=1,delete t.containerHidden,t.disposed)return;t.renderOpts={containerElement:r,insertMode:n,callback:a},t._addChartDependency("chartContainer",{scopeOf:t,opts:{containerElement:r,insertMode:n,callback:a},resolve:ce}),t._setState()}else o[e]&&o[e].chart&&(o[e].chart.containerHidden=!0,o[e].chart._addChartDependency("chartContainer",{resolve:B}),o[e].chart._setState());i=s?setTimeout(fe,l):clearTimeout(i)},function(e,t,r,n){o[e.id]={chart:e,container:t,insertMode:r,callback:n},i||(i=setTimeout(s,parseInt(de.options.visibilityTrackingInterval,10)||300))}),G=function ge(e){var t=e.parentNode;return!!t&&9!==t.nodeType&&("none"===function(e,t){var r=t;return window.getComputedStyle?r=window.getComputedStyle(e).getPropertyValue(r):e.currentStyle&&(r=e.currentStyle[r]),r}(e,"display")||!!t&&ge(t))},H=0,z=!1,U=["disposed","error","waiting","ready","initialized"],X={},W="https://www.fusioncharts.com/dev/migration/deprecated-functionalities?version=3.13.0",$='You are using incompatible files or deprecated "register" API of FusionCharts, please go through the docs to know more at '+W;function Y(){return this.state}function q(){return this.msg}function K(){return this.msgStyle}function J(){return"chartobject-"+(J.lastId+=1)}function Z(e){var t,r={};for(t in e)r[t.toLowerCase()]=e[t];return r}function Q(e){var t,r=[];for(t in e)r.push(t+"_"+e[t]);return r.sort(),r.join(",")}function ee(e){var t,r,n=e.options,a=e.args;return t={imageHAlign:a.loadMessageImageHAlign||n.baseChartMessageImageHAlign,imageVAlign:a.loadMessageImageVAlign||n.baseChartMessageImageVAlign,imageAlpha:a.loadMessageImageAlpha||n.baseChartMessageImageAlpha,imageScale:a.loadMessageImageScale||n.baseChartMessageImageScale},r={color:a.loadMessageColor||n.baseChartMessageColor,fontFamily:a.loadMessageFont||n.baseChartMessageFont,fontSize:a.loadMessageFontSize||n.baseChartMessageFontSize},{msg:e.options.showChartLoadingMessage?n.PBarLoadingText||n.loadMessage:"",msgStyle:{message:r,image:t}}}function te(e){var t,r,n=e.args,a=e.options;return t={imageHAlign:n.typeNotSupportedMessageImageHAlign||a.baseChartMessageImageHAlign,imageVAlign:n.typeNotSupportedMessageImageVAlign||a.baseChartMessageImageVAlign,imageAlpha:n.typeNotSupportedMessageImageAlpha||a.baseChartMessageImageAlpha,imageScale:n.typeNotSupportedMessageImageScale||a.baseChartMessageImageScale},r={color:n.typeNotSupportedMessageColor||a.baseChartMessageColor,fontFamily:n.typeNotSupportedMessageFont||a.baseChartMessageFont,fontSize:n.typeNotSupportedMessageFontSize||a.baseChartMessageFontSize},z&&(a.messageURL=W),{msg:z?$:a.typeNotSupportedMessage,msgStyle:{image:t,message:r}}}function re(e){var t,r,n=e.args,a=e.options;return t={imageHAlign:n.browserNotSupportedMessageImageHAlign||a.baseChartMessageImageHAlign,imageVAlign:n.browserNotSupportedMessageImageVAlign||a.baseChartMessageImageVAlign,imageAlpha:n.browserNotSupportedMessageImageAlpha||a.baseChartMessageImageAlpha,imageScale:n.browserNotSupportedMessageImageScale||a.baseChartMessageImageScale},r={color:n.browserNotSupportedMessageColor||a.baseChartMessageColor,fontFamily:n.browserNotSupportedMessageFont||a.baseChartMessageFont,fontSize:n.browserNotSupportedMessageFontSize||a.baseChartMessageFontSize},{msg:a.browserNotSupportedMessage,msgStyle:{image:t,message:r}}}function ne(){z=!0}function ae(e){var t,r,n,a=this.opts,i=a.data,o=a.sanitisedFormat,s=a.silent,l=(0,g.getDepsByType)("transcoder"),u=l[o]&&l[o](),d=e.options,m=function(e){var t,r,n=e.options,a=e.args;return t={imageHAlign:(0,h.pluck)(a.dataInvalidMessageImageHAlign,n.baseChartMessageImageHAlign).toLowerCase(),imageVAlign:(0,h.pluck)(a.dataInvalidMessageImageVAlign,n.baseChartMessageImageVAlign).toLowerCase(),imageAlpha:(0,h.pluckNumber)(a.dataInvalidMessageImageAlpha,n.baseChartMessageImageAlpha),imageScale:(0,h.pluckNumber)(a.dataInvalidMessageImageScale,n.baseChartMessageImageScale)},r={fontFamily:a.dataInvalidMessageFont||n.baseChartMessageFont,fontSize:a.dataInvalidMessageFontSize||n.baseChartMessageFontSize,color:a.dataInvalidMessageColor||n.baseChartMessageColor},{msg:n.dataInvalidMessage,msgStyle:{image:t,message:r}}}(e),v=m.msg,b=m.msgStyle;return e.__state.newDataArrived=!0,u&&u.toJSON?n=(r=u.toJSON(i,e)).error?{state:1,msg:v,msgStyle:b}:{state:3}:(r={error:new Error("Unable to convert data.")},n={state:1,msg:v,msgStyle:b}),t=r.error?r:r.data,d.dataErroneous=d.error=r.error,d.dataSource=t,d.dataFormat=o,d.dataErroneous||(0,f.triggerEvent)("beforeDataUpdate",e,function(e,t,r,n){var a={};return a.native=r===M,a.dataFormat=r,a.format=M,a.data=t,a.dataSource=e,a.silent=!!n,a}(i,t,o,s),c,p.onDataUpdateSuccess,p.onDataUpdateCancel),n}function ie(e){var t,r,n,a,i,o,s,l=this.opts,c=l.url,u=void 0===c?"":c,d=l.format,p=l.config,m=l.callback,v=l.silent,b=(0,g.getDepsByType)("transcoder"),y=(o=(n=e).options,s=n.args,a={imageHAlign:(0,h.pluck)(s.dataLoadStartMessageImageHAlign,o.baseChartMessageImageHAlign).toLowerCase(),imageVAlign:(0,h.pluck)(s.dataLoadStartMessageImageVAlign,o.baseChartMessageImageVAlign).toLowerCase(),imageAlpha:(0,h.pluckNumber)(s.dataLoadStartMessageImageAlpha,o.baseChartMessageImageAlpha),imageScale:(0,h.pluckNumber)(s.dataLoadStartMessageImageScale,o.baseChartMessageImageScale)},i={fontFamily:s.dataLoadStartMessageFont||o.baseChartMessageFont,fontSize:s.dataLoadStartMessageFontSize||o.baseChartMessageFontSize,color:s.dataLoadStartMessageColor||o.baseChartMessageColor},{msg:o.dataLoadStartMessage,msgStyle:{image:a,message:i}}),x=y.msg,C=y.msgStyle;return null!=d&&"function"==typeof d.toString||(d=e.options.dataFormat,(0,f.raiseWarning)(e,"03091609","param","FusionCharts#setChartDataUrl","Invalid Data Format. Reverting to current data format - "+d)),t=V(d),D.test(t)||(t+=R),r=b[t]&&b[t](),e.jsVars.stallLoad=!0,r&&r.toJSON?(r.toJSON(u,p,m,v,e),{state:2,msg:x,msgStyle:C}):{state:1,error:new Error("Unable to fetch data.")}}function oe(e){var t,r,n=e.__state,a=e.chartType(),i=e.apiInstance&&e.apiInstance.getFromEnv("toolTipController")&&e.apiInstance.getFromEnv("toolTipController").toolTips,o=(0,g.getDep)(n.lastRenderedType,"chartapi")||(0,g.getDep)(n.lastRenderedType,"maps");if(i&&(0,h.removeAllTooltipOnChart)(i,n.lastRenderedType===a),o&&n.lastRenderedType!==a&&((0,f.triggerEvent)("chartTypeChanged",e,{previousType:n.lastRenderedType,newType:a}),t=o))for(r in t)delete e[r];n.lastRenderedType=a}function se(e){var t=ee(e),n=t.msgStyle,a=t.msg;return Promise.all([r.e(2),r.e(14)]).then(r.t.bind(null,1172,7)).then((function(t){de.addDep(t["default"]),oe(e),e._addChartDependency("mapModuleLoad",{resolve:function(){return{state:3}}}),(0,f.triggerEvent)("loaded",e,{type:e.chartType(),renderer:"javascript"},[e.id]),e._setState()}))["catch"]((function(){var t=te(e),r=t.msgStyle,n=t.msg;e._addChartDependency("mapModuleLoad",{resolve:function(){return{state:1,msgStyle:r,msg:n}}}),(0,f.raiseError)(de,"12052314141","run","JavaScriptRenderer~Maps",new Error("FusionCharts' maps file is required to render the visualization.")),e._setState(),(0,f.triggerEvent)("charttypeinvalid",e,{},[e.id])})),{state:2,msgStyle:n,msg:a}}function le(e){var t=this.opts.value,r=de.getDep(t,"dependency")||de.getDep(t,"chartapi")||de.getDep(t,"maps"),n=te(e),a=n.msgStyle,i=n.msg;return z=!1,r?r.then?(de.addEventListener("register",ne),r.then((function(r){if(!e.disposed){if(r.__esModule){var n=(0,g.getDep)(t,"maps");de.addDep(r["default"]),(!n||!O)&&oe(e),e._addChartDependency("chartModuleLoad",{resolve:function(){return n&&O?e._addChartDependency("mapModuleLoad",{scopeOf:e,resolve:se}):(0,f.triggerEvent)("loaded",e,{type:t,renderer:"javascript"},[e.id]),{state:3}}})}else e._addChartDependency("chartModuleLoad",{resolve:function(){return(0,g.getDep)(t,"maps")&&O?e._addChartDependency("mapModuleLoad",{scopeOf:e,resolve:se}):(oe(e),(0,f.triggerEvent)("loaded",e,{type:t,renderer:"javascript"},[e.id])),{state:3}}});e._setState()}}))["catch"]((function(t){if(!e.disposed){if(!(t instanceof Event))throw new Error(t.stack);e._addChartDependency("chartModuleLoad",{resolve:function(){return(0,d["default"])({state:1},te(e))}}),e._setState(),(0,f.triggerEvent)("charttypeinvalid",e,{},[e.id])}})),(0,d["default"])({state:2},ee(e))):((0,g.getDep)(t,"maps")&&O?(e._addChartDependency("mapModuleLoad",{scopeOf:e,resolve:se}),e._setState()):(oe(e),(0,f.triggerEvent)("loaded",e,{type:t,renderer:"javascript"},[e.id])),{state:3}):((0,f.triggerEvent)("charttypeinvalid",this,{},[this.id]),{state:1,msgStyle:a,msg:i})}function ce(e){var t,r,n,a,i=this.opts,o=i.containerElement,s=i.insertMode,l=i.callback;if(l?"function"!=typeof l&&(l=c):"function"==typeof s?(l=s,s=c):s||"function"!=typeof o||(l=o,o=c),s=(s||e.options.insertMode).toLowerCase()||h.domInsertModes.REPLACE,void 0===o&&(o=e.options.containerElementId||e.options.containerElement),"string"==typeof o&&(o=document.getElementById(o)),null==o)return(0,f.raiseError)(e,"03091456","run",".render()",new Error("Unable to find the container DOM element.")),(0,f.triggerEvent)("containernotfound",e,{},[e.id]),{state:1};if(function(e,t){var r,n,a,i=document.getElementById(e),o=t.id||t.getAttribute("id");if(null===i)return!1;if(e===o)return!0;for(n=0,a=(r=t.getElementsByTagName("*")).length;n<a;n++)if(r[n]===i)return!1;return!0}(e.id,o))return(0,f.raiseError)(e,"05102109","run",".render()",new Error("A duplicate object already exists with the specific Id: "+e.id)),{state:1};if(G(o))return e.containerHidden=!0,j(e,o,s,l),{state:2};if(delete e.containerHidden,((r=window[e.id])&&r.FusionCharts&&r.FusionCharts===e||(r=e.ref)&&r.FusionCharts&&r.FusionCharts===e)&&(e._dispose(),r===window[e.id]&&(window[e.id]=c)),"undefined"!=typeof window[e.id])return(0,f.raiseError)(e,"25081843","comp",".render",new Error("#25081843:IECompatibility() Chart Id is same as a JavaScript variable name. Variable naming error. Please use unique name for chart JS variable, chart-id and container id.")),{state:1};if((t=document.createElement(e.options.containerElementType||"span")).setAttribute("id",e.id),"append"!==s&&"prepend"!==s)for(;o.hasChildNodes();)o.removeChild(o.firstChild);return"prepend"===s&&o.firstChild?o.insertBefore(t,o.firstChild):o.appendChild(t),e.options.containerElement=o,e.options.containerElementId=o.id,(a=t.style)&&(a.position=P.position,a.textAlign=P.textAlign,a.lineHeight=P.lineHeight,a.display=P.display,a.zoom=P.zoom,a["vertical-align"]=P.vAlign,a.fontWeight=P.fontWeight,a.fontVariant=P.fontVariant,a.fontStyle=P.fontStyle,a.textDecoration=P.textDecoration,a["*DISPLAY"]=P.ieSevenDisplay,a.padding=P.padding,a.margin=P.margin,a.border=P.border,a.direction=P.direction,a.transform=P.transform),e.options.containerClassName&&(t.className=e.options.containerClassName),n=(0,h.normalizeCSSDimension)(e.width,e.height,t),e.__state.renderedWidth=n.pixelWidth,e.__state.renderedHeight=n.pixelHeight,e.__state.rendering=!0,e.renderOpts={containerElement:t,insertMode:s,callback:l},{state:3}}J.lastId=0;var ue,de=function(){function e(){var t,n,a=this,i={},o=e.getDep("vml","dependency");(this.__state={},this.id=h.BLANKSTRING,this._deps={},this.__state._unresolvedDeps={},this.__state.state=4,1===arguments.length&&"object"==typeof(arguments.length<=0?undefined:arguments[0])&&(i=arguments.length<=0?undefined:arguments[0]),arguments.length>1&&"object"==typeof((t=arguments.length-1)<0||arguments.length<=t?undefined:arguments[t]))&&(0,h.extend2)(i,(n=arguments.length-1)<0||arguments.length<=n?undefined:arguments[n],!1,!0);this.id="undefined"==typeof i.id?J():i.id,this.args=i,this._parsePolicies(C["default"]),this._attachDefaultEventListeners(),this.jsVars.fcObj=this,(0,f.triggerEvent)("beforeInitialize",this,i),e.items[this.id]instanceof e&&(0,f.raiseWarning)(this,"06091847","param","",new Error('A FusionCharts object with the specified id "'+this.id+'" already exists.Renaming it to '+(this.id=J()))),this.attributes.id=this.id,r.p=e.getScriptBaseURI(),o&&(this._addChartDependency("chartVmlRendererLoad",{resolve:function(){return o.then((function(t){var r=t["default"];e.addDep(r),a._addChartDependency("chartVmlRendererLoad",{resolve:function(){return{state:3}}}),a._setState()}))["catch"]((function(){(0,f.raiseError)(e,"162162788","run",">RendererError~VMLRendererLoad","Unable to load FusionCharts VML renderer."),a._addChartDependency("chartVmlRendererLoad",{resolve:function(){return{state:1}}}),a._setState()})),{state:2}}}),this._setState()),this.chartType&&this.chartType(i.type||i.swfUrl||""),this.setChartData(this.args.dataSource,this.args.dataFormat,c,c,!0),e.items[this.id]=this,e.defaultOptions=e.options,(0,f.triggerEvent)("initialized",this,i),this._setState()}e.getObjectReference=function(t){return void 0===t&&(t=""),e.items[t]&&e.items[t].ref},e.register=function(){(0,f.triggerEvent)("register",e,arguments,c,(function(){(0,f.raiseError)(this,"0604111219","run",".register()",new Error($))}))},e.render=function(t,r){return t instanceof e?(t.render(r),t):new e(t).render(r)},e.addDep=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return g.addDep.call.apply(g.addDep,[this].concat(t))},e.getDep=function(e,t){return g.getDep.call(this,e,t)},e.addEventListener=function(e,t){return(0,f.addListener)(e,t)},e.on=function(t,r){return e.addEventListener(t,r)},e.removeEventListener=function(e,t){return(0,f.removeListener)(e,t)},e.ready=function(t,r,n){void 0===r&&(r=e),void 0===n&&(n=e);var a=function(){t.call(n,r)};"function"==typeof t&&(l?setTimeout(a,0):e.addEventListener("ready",a))},e.formatNumber=function(e,t,r){void 0===t&&(t={});var n,a=Z(t),i=Q(a);return X[i]?n=X[i]:X[i]=n=new w["default"](a,{useScaleRecursively:!0}),n.configure(a),n.dataLabels(e,r)},e.transcodeData=function(e,t,r,n){var a,i,o,s=(0,g.getDepsByType)("transcoder"),l=V(r),c=V(t);if(c&&"function"==typeof c.toString&&l&&"function"==typeof l.toString&&"undefined"!=typeof s[l]&&"undefined"!=typeof s[c])return(o=s[c]()).toJSON&&(a=o.toJSON(e,this),i=s[l]().fromJSON(a.data,this)),a.error instanceof Error||(i.error=a.error),n?i:i.data;(0,f.raiseError)(this,"14090217","param",".transcodeData()","Unrecognized data-format specified during transcoding.")},e.setAnimation=function(t){!e.options._globalAnimationRule&&(e.options._globalAnimationRule=[]),e.options._globalAnimationRule.push(t)},e.setEasingEffect=function(t,r){e.getDep("redraphael","plugin").easing_formulas[t]=r},e.getScriptBaseURI=function(){return e.options.scriptBaseUri},e.setScriptBaseURI=function(t){e.options.scriptBaseUri=t,r.p=t},e.getChartFromId=function(t){return e.items[t]},e.getVersion=function(e){var t={fcs:F,"fcs-xt":{fc:"3.15.0",fw:"3.15.0",pc:"3.15.0-sr.1",fm:"3.15.0"},ft:"2.0.0"};return t[e]||t["fcs-xt"][e]||t};var t=e.prototype;return t._attachDefaultEventListeners=function(){var e,t,r=this.options.events;if(r)for(e in r)"function"==typeof r[e]&&this.addEventListener(e,r[e]);for(t in this.options.renderer="javascript",m["default"])this.addEventListener(t,m["default"][t])},t._setState=function(){var e,t,r=this._deps,n=this.__state.state,a=4;for(var i in r)r.hasOwnProperty(i)&&(a>(t=(e=r[i]).getState())&&(a=t,this.__state.currChartMsg=e.getMsg(),this.__state.currChartMsgStyle=e.getMsgStyle()),3===t&&this._removeChartDependency(i));if(this.__state.prevState=n,this.__state.state=a,n!==a&&(0,f.triggerEvent)("stateChanged",this,{prevState:U[n],state:U[a]},[this.id]),!this.containerHidden)if(3===a&&this.__state.renderInvoked){var o=this.renderOpts,s=o.containerElement,l=o.callback;this._renderChart(s,c,l),this._clearPrevContext(),delete this.renderOpts.callback}else if((2===a||1===a)&&this.__state.renderInvoked&&this._contextChanged()&&(!this.__state.renderComplete||2!==a)){var u=this.renderOpts,d=u.containerElement,h=u.callback;this._renderChart(d,"base",1===a&&h,this.__state.currChartMsg,this.__state.currChartMsgStyle),this._clearPrevContext(),1===a&&delete this.renderOpts.callback}},t._clearPrevContext=function(){this.__state.prevChartMsg=h.BLANKSTRING,this.__state.prevChartMsgStyle={}},t._contextChanged=function(){if(this.__state.currChartMsg!==this.__state.prevChartMsg)return this.__state.prevChartMsg=this.__state.currChartMsg,this.__state.prevChartMsgStyle=this.__state.currChartMsgStyle,!0;var e=this.__state.prevChartMsgStyle&&this.__state.prevChartMsgStyle.image,t=this.__state.currChartMsgStyle&&this.__state.currChartMsgStyle.image,r=this.__state.prevChartMsgStyle&&this.__state.prevChartMsgStyle.message,n=this.__state.currChartMsgStyle&&this.__state.currChartMsgStyle.message;return!(!e||e.imageHAlign===t.imageHAlign&&e.imageVAlign===t.imageVAlign&&e.imageAlpha===t.imageAlpha&&e.imageScale===t.imageScale&&r.color===n.color&&r.fontFamily===n.fontFamily&&r.fontSize===n.fontSize)&&(this.__state.prevChartMsg=this.__state.currChartMsg,this.__state.prevChartMsgStyle=this.__state.currChartMsgStyle,!0)},t._sudoSetState=function(e){this.__state.prevState=this.__state.state,this.__state.state=e,(0,f.triggerEvent)("stateChanged",this,{prevState:U[this.__state.prevState],state:U[this.__state.state]},[this.id])},t._getState=function(){return U[this.__state.state]},t._addChartDependency=function(e,t){this._deps&&this._deps[e]&&this._removeChartDependency(e),this._deps[e]=t,t.getState=Y,t.getMsg=q,t.getMsgStyle=K,Object.assign(t,t.resolve(t.scopeOf))},t._removeChartDependency=function(e){this._deps[e]&&(this._deps[e].removed=!0,delete this._deps[e])},t._parsePolicies=function(e){var t,r,n,a=this.args;for(t in e)if(C["default"][t]instanceof Array)r=a[e[t][0]],this[t]=void 0===r?e[t][1]:r;else for(n in"object"!=typeof this[t]&&(this[t]={}),e[t])r=a[e[t][n][0]],this[t][n]=void 0===r?e[t][n][1]:r},t.hasRendered=function(){return!(!this.jsVars.hcObj||!this.jsVars.hcObj.hasRendered)},t.setTransparent=function(e){var t,r=e;(t=this.jsVars)&&("boolean"!=typeof r&&null!==r&&(r=!0),t.transparent=null!==r&&!0===r)},t.addEventListener=function(e,t){return(0,f.addListener)(e,t,this)},t.on=function(e,t){return this.addEventListener(e,t)},t.removeEventListener=function(e,t){return(0,f.removeListener)(e,t,this)},t.formatNumber=function(e,t,r,n){var a,i,o,s,l,c=this.apiInstance||{},u=c.numberFormatter,d=r;switch(i=Q(d),d=d&&Z(d)||{},""===i?u?s=u:(o=Q(a=this.options.dataSource.chart||{}),X[o]?s=X[o]:X[o]=s=new w["default"](c,a)):(a=this.options.dataSource.chart||{},o=Q(a=(0,h.extend2)((0,h.extend2)({},a),d)),X[o]?s=X[o]:X[o]=s=new w["default"](c,a)),(t&&t.toLowerCase?t:"").toLowerCase()){case"yaxisvalues":l=s.yAxis(e,n);break;case"xaxisvalues":l=s.xAxis(e);break;case"scale":l=s.scale(e);break;default:l=s.dataLabels(e,n)}return l},t.clone=function(t,r){var n=typeof t,a={},i=r,o=(0,h.extend2)({},this.args,!1,!0);switch(function(e,t,r){var n,a;for(n in e)if(e[n]instanceof Array)t[e[n][0]]=r[n];else for(a in e[n])t[e[n][a][0]]=r[n][a]}(C["default"],o,this),delete o.id,delete o.animate,delete o.stallLoad,a.link=o.link,(o=(0,h.extend2)({},o,!1,!0)).link=a.link,n){case"object":(0,h.extend2)(o,t,!1,!0);break;case"boolean":i=t}return i?o:new e(o)},t.isActive=function(){if(!this.ref||window.document.getElementById(this.id)!==this.ref)return!1;try{return L.test("FusionCharts")}catch(e){return!1}},t.chartType=function(t,r){var n,a=r,i=this.options;if("string"==typeof t&&""!==t){if(a="object"==typeof a?a:{},n=t.replace(/[\?\#][\s\S]*$/g,""),i.chartType=n.replace(/^[\s\S]*\//gi,""),i.chartTypeSourcePath=-1===n.indexOf("/")?a.chartTypeSourcePath||e.options.chartTypeSourcePath||"":n.replace(/[^\/]*?$/gi,""),"zoomscatter"===i.chartType&&!document.createElement("canvas").getContext){var o=re(this),s=o.msgStyle,l=o.msg;return this._addChartDependency("chartModuleLoad",{scopeOf:this,opts:{value:i.chartType},resolve:function(){return{state:1,msgStyle:s,msg:l}}}),void this._setState()}if(("timeseries"===i.chartType||"chord"===i.chartType||"sankey"===i.chartType)&&h.isIE){var u=re(this),d=u.msgStyle,g=u.msg;return this._addChartDependency("chartModuleLoad",{scopeOf:this,opts:{value:i.chartType},resolve:function(){return{state:1,msgStyle:d,msg:g}}}),void this._setState()}(0,f.triggerEvent)("resourceRequested",this),this._addChartDependency("chartModuleLoad",{scopeOf:this,opts:{value:i.chartType},resolve:le}),"undefined"!=typeof a.dataSource&&null!==a.dataSource&&this.setChartData(a.dataSource,a.dataFormat,a.dataConfiguration),this._setState()}else if(t!==c){var p=te(this),m=p.msgStyle,v=p.msg;return this._addChartDependency("chartModuleLoad",{resolve:function(){return{state:1,msgStyle:m,msg:v}}}),this._setState(),void(0,f.triggerEvent)("charttypeinvalid",this,{},[this.id])}return(i.chartType||"").toLowerCase()},t.setChartDataUrl=function(e,t,r,n,a){void 0===e&&(e=""),this._addChartDependency("data",{scopeOf:this,opts:{url:e,format:t,config:r,callback:n,silent:a},resolve:ie}),this._setState()},t.setChartData=function(e,t,r,n,a){void 0===a&&(a=!0);var i,o=e,s=t;if(null!=o){if("string"!=typeof s)switch(typeof o){case"function":o=o.call(this,this.options.dataConfiguration),s=this.args.dataFormat="JSON";break;case"string":s=this.args.dataFormat=/^\s*?\{[\s\S]*\}\s*?$/g.test(s)?"JSON":"XML";break;case"object":s=this.args.dataFormat="JSON"}}else s=M;"xml"===(i=V(s))&&this.apiInstance&&this.apiInstance.config&&this.apiInstance.config.isXMLUnsupported||(D.test(i)?this.setChartDataUrl(o,i,r,n,a):(this._addChartDependency("data",{opts:{data:o,sanitisedFormat:i,config:r,callback:n,silent:a},scopeOf:this,resolve:ae}),!this.disposed&&this._setState()))},t.getChartData=function(e,t,r){void 0===e&&(e=M);var n,a,i=V(e),o=(0,g.getDepsByType)("transcoder")[i](),s=this.options,l=this.apiInstance,c=!r&&(n=l&&l.getCollatedData&&l.getCollatedData(s.dataSource))?n:s.dataSource;return"xml"===i&&l&&l.config&&l.config.isXMLUnsupported?h.BLANKSTRING:(!(a=o?o.fromJSON?o.fromJSON(c,this):{error:new Error("Unable to convert data.")}:{error:new Error("Data format not recognized.")}).error&&s.error&&(a.error=s.error),t?a:a.data)},t.dataReady=function(e){return e?this.__state.dataAvailable:this.__state.dataReady},t.setChartAttribute=function(e,t){var r,n,a,i,o=e;if("string"==typeof o)(o={})[arguments[0]]=t;else if(null===o||"object"!=typeof o)return;for(n in i=0,(a=(r=this.getChartData(M)).chart||r.graph||r.map)||(a={},r=Object.assign({chart:a},r)),o)i+=1,null!==o[n]?a[n.toLowerCase()]=o[n]:delete a[n.toLowerCase()];i>0&&("undefined"==typeof a.animation&&(a.animation=h.ZEROSTRING),this.setChartData(r,M))},t.getChartAttribute=function(e){var t,r,n=this.getChartData(M),a=n&&(n.chart||n.graph||n.map);if(0===arguments.length||void 0===e||void 0===a)return a;if("string"==typeof e)t=a[e.toString().toLowerCase()];else if(e instanceof Array)for(t={},r=0;r<e.length;r+=1)t[e[r]]=a[e[r].toString().toLowerCase()];else(0,f.raiseError)(this,"25081429","param","~getChartAttribute()",'Unexpected value of "attribute"');return t},t.render=function(e,t,r){return this.disposed||(this.__state.beforeRenderFired=!1,this._addChartDependency("chartContainer",{scopeOf:this,opts:{containerElement:e,insertMode:t,callback:r},resolve:ce}),this.__state.renderInvoked=!0),this._setState(),this},t._renderChart=function(e,t,r,n,a,i){if(void 0===i&&(i=!1),!this.disposed){var o,s=this,l=function(){!0!==s.disposed&&s._render(e,t,r&&function(){if(r)try{r.call(s,s.options.containerElement)}catch(e){setTimeout((function(){throw e}))}},n,a)};return i||this.__state.beforeRenderFired?l():(this.__state.beforeRenderFired=!0,(0,f.triggerEvent)("beforeRender",this,o={container:s.options.containerElement,width:this.width,height:this.height,renderer:this.options.renderer},c,l,(function(){(0,f.triggerEvent)("renderCancelled",s,o),this.__state.renderInvoked=!1}))),this}},t._render=function(t,r,n,a,i){var o=this;o.apiInstance&&o.apiInstance.removeJob("resizeScheduled"),o.__state.beforedrawFired?((0,v["default"])(e,o,t,r,n,a,i),o.__state.beforedrawFired=!0):(0,f.triggerEvent)("beforedraw",o,{},c,(function(){(0,v["default"])(e,o,t,r,n,a,i)}),(function(){(0,f.triggerEvent)("drawCancelled",o)}))},t.resizeTo=function(e,t,r){var n=this,a=n.width,i=n.height,o=n.__state,s=r,l=t,u=e;return(n.apiInstance&&n.apiInstance.config||{}).resize=!0,"object"==typeof u&&(s=l,l=u.h,u=u.w),u=null==u?a:u.toString().replace(N,""),l=null==l?i:l.toString().replace(N,""),!0!==s&&(0,f.triggerEvent)("beforeresize",n,{currentWidth:a,currentHeight:i,newWidth:u,newHeight:l},c,(function(){n.width=u,n.height=l,n.scheduleResize({width:u,height:l}),n.apiInstance&&n.apiInstance.addJob("resized"+H++,(function(){(0,f.triggerEvent)("resized",n,{id:n.id,width:n.width,height:n.height,prevWidth:a,prevHeight:i,pixelWidth:n.ref&&n.ref.offsetWidth||0,pixelHeight:n.ref&&n.ref.offsetHeight||0,originalWidth:o.renderedWidth,originalHeight:o.renderedHeight})}),y.priorityList.postRender)}),(function(){(0,f.triggerEvent)("resizecancelled",n,{currentWidth:a,currentHeight:i,cancelledTargetWidth:u,cancelledTargetHeight:l})})),this},t.dispose=function(){var t=this,r={},n=function(t){for(var n in t._dispose(),t._addChartDependency("dispose",{resolve:function(){return{state:0}}}),t._setState(),(0,f.triggerEvent)("disposed",t,r),(0,f.disposeEvents)(t),delete e.items[t.id],t)t.hasOwnProperty(n)&&delete t[n];return t.disposed=!0,{state:0}};(0,f.triggerEvent)("beforeDispose",t,r,c,(function(){t._addChartDependency("dispose",{scopeOf:t,resolve:n})}),(function(){(0,f.triggerEvent)("disposeCancelled",t,r)}))},t._dispose=function(){var e,t=this.jsVars;this.apiInstance&&(this.apiInstance.removeJob("resizeScheduled"),this.apiInstance.remove({instant:!0}),delete this.apiInstance,delete t.instanceAPI),(e=window[this.id])&&(!function r(e){var t,n,a,i=e.attributes;if(i)for(t=i.length-1;t>=0;t-=1)"function"==typeof e[a=i[t].name]&&(e[a]=null);if(i=e.childNodes)for(n=i.length,t=0;t<n;t+=1)r(e.childNodes[t])}(e),e.parentNode&&e.parentNode.removeChild(e)),t.container=null},t._config=function(e,t){var r,n,a=e,i=this,o=i.jsVars,s=o.msgStore,l=o.cfgStore,c=i.options;for(r in n={LoadingText:"loadMessage",ChartNotSupported:"typeNotSupportedMessage",RenderChartErrorText:"renderErrorMessage",XMLLoadingText:"dataLoadStartMessage",ChartNoDataText:"dataEmptyMessage",LoadDataErrorText:"dataLoadErrorMessage",InvalidXMLText:"dataInvalidMessage"},"string"==typeof a&&arguments.length>1&&(r=a,(a={})[r]=t),a)"undefined"!=typeof s[r]?s[r]=a[r]:l[r.toLowerCase()]=a[r],n[r]?c[n[r]]=a[r]:c[r]=a[r]},t.configure=function(e,t){var r;e&&("string"==typeof e?(r={})[e]=t:r=e,this._config(r))},t.print=function(e){var t=this.apiInstance,r=(0,h.extend2)({},e);if(t.config.isPrinting||!t.config.hasRendered)return!1;(0,f.triggerEvent)("BeforePrint",this,r,c,(function(){var e,n,a,i,o=t.getFromEnv("chart-container"),s=[],l=o.parentNode,c=document.body||document.getElementsByTagName("body")[0],u=c.childNodes;if(t.config.isPrinting=!0,(0,h.fcEach)(u,(function(e,t){1===e.nodeType&&(s[t]=e.style.display,e.style.display="none")})),!1!==r.hideButtons&&(i=t.getChildren("chartMenuBar")))for(a=0,e=(n=i[0].getChildren("tool")).length;a<e;a++)n[0].getChildren("listContainer")[0].hide();c.appendChild(o),window.print(),setTimeout((function(){l.appendChild(o),(0,h.fcEach)(u,(function(e,t){1===e.nodeType&&(e.style.display=s[t])})),r.hideButtons,t.config.isPrinting=!1,(0,f.triggerEvent)("PrintComplete",t.getFromEnv("chartInstance"),r)}),1e3)}),(function(){(0,f.triggerEvent)("PrintCancelled",t.getFromEnv("chartInstance"),r)}))},t.getSVGString=function(e,t){var r,n=this.apiInstance,a=n&&n.getFromEnv("paper");if(t&&t.keepImages&&(r=!0),"function"!=typeof e)return a&&a.toSVG?a.toSVG(r):"<svg></svg>";n.addJob("getSVG",(function(){e(a&&a.toSVG&&a.toSVG(r))}),y.priorityList.postRender)},t.lockResize=function(e){return"boolean"!=typeof e?!!this.jsVars.resizeLocked:this.jsVars.resizeLocked=e},t.showChartMessage=function(e,t,r,n){void 0===n&&(n={});var a=this,i=a.apiInstance,o=function(){a._showChartMessage(e,t,r,n)};return i&&("base"===i.getName()?a.addEventListener("renderComplete",o):o()),e},t._showChartMessage=function(e,t,r,n){void 0===n&&(n={});var a,i=this,o=e,s=i.jsVars,l=i.apiInstance,c=i.options;l._hideChartMessage(),void 0!==o?(a={fontFamily:(0,h.pluck)(n.font,c.baseChartMessageFont,"Verdana,sans"),fontSize:(0,h.pluck)(n.fontSize,c.baseChartMessageFontSize,10),color:(0,h.pluck)(n.color&&(0,h.convertColor)(n.color,n.alpha),c.baseChartMessageColor)},s.msgStore[o]&&(o=s.msgStore[o]),l.addJob("showMsg",(function(){t&&l&&l.config.hasRendered?(l._show&&l._show(),i.showMessage(o,a,r)):(l._hide&&l._hide(),l.setChartMessage(o,{_chartMessageStyle:a}),l.drawChartMessage())}),y.priorityList.postRender)):i.hideChartMessage()},t._resize=function(){var e=this.apiInstance,t=this.jsVars.container;this.__state.resize=!0,e?(e.config.elScroll=!1,e.getFromEnv("animationManager").setAnimationState("resize"),e.addToEnv("chartWidth",t.offsetWidth),e.addToEnv("chartHeight",t.offsetHeight),this._addChartDependency("resize",{resolve:function(){return{state:3}}})):this._addChartDependency("resize",{resolve:function(){return{state:1}}}),this._setState(),this.__state.resize=!1},t.hideChartMessage=function(){var e=this.apiInstance;e._hideChartMessage(),e._show&&e._show()},t.showMessage=function(e,t,r){void 0===e&&(e="");var n,a,i,o=this.apiInstance,s=o.config,l=o.getFromEnv("paper"),c=o.getFromEnv("smartLabel"),u=o.getFromEnv("animationManager"),d=o.getGraphicalElement("messageText"),f=o.getGraphicalElement("messageVeil"),g=l.width,p=l.height;a=o.getChildContainer("messageGroup"),u.setAnimationState("showmessage"),(n=u.setAnimation({el:a||"group",attr:{name:"messageGroup"},component:o,label:"group"})).show().toFront(),a||o.addChildContainer("messageGroup",n),(f=u.setAnimation({el:f||"rect",attr:{x:0,y:0,width:g,height:p,fill:"rgba(0,0,0,0.2)",stroke:"none"},container:n,component:o,label:"rect"})).off("fc-click",n.hide),f.show().toFront().attr("cursor",r?h.POINTER:"default"),r&&f.on("fc-click",o._hideChartMessage,o),o.addGraphicalElement("messageVeil",f),c.setStyle(t),i=c.getSmartText(e,g-(s.marginRight||0)-(s.marginLeft||0),p-(s.marginTop||0)-(s.marginBotton||0)),(d=u.setAnimation({el:d||"text",attr:{"font-size":t.fontSize,"font-family":t.fontFamily,fill:t.color,text:i.text,"line-height":14,x:g/2,y:p/2},container:n,component:o,label:"text"})).attr("cursor",r?h.POINTER:"default")[r?"click":"unclick"](o._hideChartMessage,o).show().toFront(),o.addGraphicalElement("messageText",d)},t.scheduleResize=function(e){var t,r=this,n=r.ref;n&&(r._addChartDependency("resize",{resolve:function(){return{state:2}}}),r.apiInstance.addJob("resizeScheduled",(function(){t=(0,h.normalizeCSSDimension)(e.width,e.height,n),"undefined"!=typeof e.width&&(n.style.width=t.width),"undefined"!==e.height&&(n.style.height=t.height),r._resize()}),y.priorityList.instant))},e}();de.id="FusionCharts",de.options={html5ScriptNameSuffix:".js",html5ScriptNamePrefix:"fusioncharts.","export":{useCanvas:!1},scriptBaseUri:(ue=function(e){var t,r,n=window.document.getElementsByTagName("script"),a=n.length;for(r=0;r<a;r+=1)if(null!=(t=n[r].getAttribute("src"))&&null!==t.match(e))return t.replace(e,"$1")}(I),void 0===ue?((0,f.raiseError)(de,"1603111624","run",">GenericRuntime~scriptBaseUri","Unable to locate FusionCharts script source location (URL)."),""):ue)},r.p=de.getScriptBaseURI(),de.version=F.split(/[\.\-]/g),de.items={},(0,f.setRootSender)(de),l=!1,h.hasSVG||de.addDep({name:"vml",type:"dependency",extension:r.e(15).then(r.t.bind(null,1179,7))}),setTimeout((function(){l=!0,(0,f.triggerEvent)("ready",de,{version:de.version,now:!0})}),1),de.addEventListener("dependencyAdded",(function(e,t){if("maps"===t.type){var r={};r[t.name]=["fusioncharts.maps.js"],de.getDep("dependency")||de.addDep({name:"dependency",extension:r})}})),de.addEventListener("initialized",(function pe(){de.removeEventListener("initialized",pe),u=new b["default"](document.body||document.getElementsByTagName("body")[0]),v.globalStore.addToEnv("smartLabel",u)})),de.addDep(x["default"]),de.addDep(_["default"]),de.addDep(T["default"]),de.addDep(k["default"]),de.addDep(S["default"]),de.addDep(E["default"]),de.addDep(A["default"]);var he=de;t["default"]=he},function(e,t){e.exports=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){var n=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,r):{};n.get||n.set?Object.defineProperty(t,r,n):t[r]=e[r]}return t["default"]=e,t}},function(e,t){function r(){return e.exports=r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},r.apply(this,arguments)}e.exports=r},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t.isInterActiveEvt=function(e){return!!Ae[e]},t.addInterActiveEvtName=function(e){e&&e.toLowerCase&&(Ae[e.toLowerCase()]=!0)},t.getMouseCoordinate=function(e,t,r){var n,a,i,o,s,l=F.webkitIsFullScreen||F.mozFullScreen||F.msFullscreenElement||F.fullscreenElement,u={scaleX:1,scaleY:1},d=xe(Ne(t)),g=l?d.clientX:d.pageX,p=l?d.clientY:d.pageY,m=r&&r.config||{},v=t.type,b=m&&m.itemFixed,y=(0,c["default"])(m.applycsstransform,0),x=b?S.pageYOffset||S.scrollY||F.documentElement.scrollTop:0,C=b?S.pageXOffset||S.scrollX||F.documentElement.scrollLeft:0;m.elScroll&&m.posOb&&!y?s=m.posOb:(m.elScroll=!0,s=Ie(e),m.posOb=s);"touchend"===v?(isNaN(g)&&(g=h),isNaN(p)&&(p=f)):"touchmove"!==v&&"touchstart"!==v||(h=g,f=p);n=g-s.left-C,a=p-s.top-x,y&&(u=Le(r.getFromEnv("chart-container")),i=u.scaleX,o=u.scaleY,i&&(n/=i),o&&(a/=o));return{chartX:n,chartY:a,pageX:g,pageY:p,clientX:d.clientX,clientY:d.clientY}},t.getScalingValue=Le,t.getTouchEvent=Ne,t.imprint=function(e,t,r){var n,a=e;if("object"!=typeof a||null===a)return a=t,t;if("object"!=typeof t||null===t)return a;for(n in t)(a[n]===d||!r&&null===a[n])&&(a[n]=t[n]);return a},t.pluck=Be,t.getFirstDefinedValue=function(){var e,t,r;for(t=0,r=arguments.length;t<r;t+=1)if((e=arguments[t])||!1===e||0===e||e===H)return e;return d},t.hashify=function(e){return e&&e.replace(/^#?([a-f0-9]+)/gi,"#$1")||"none"},t.dehashify=function(e){return e&&e.replace(/^#?([a-f0-9]+)/gi,"$1")||"none"},t.getComparatorFN=function(e,t){if(e)return t?function(e,r){return e[t]-r[t]}:Xe;return t?function(e,r){return r[t]-e[t]}:We},t.pluckFontSize=function(){var e,t,r;for(t=0,r=arguments.length;t<r;t+=1)if(((e=arguments[t])||!1===e||0===e)&&!isNaN(e=Number(e)))return e<1?1:e;return 1},t.getValidValue=Ve,t.getPosition=Ie,t.bindSelectionEvent=function(e,t){var r=t||{},n=e.config,a=e.getFromEnv("chart-container"),s=n.zoomType,l=(0,o["default"])({},r.attr||{}),u=l["stroke-width"]=(0,c["default"])(l.strokeWidth,l["stroke-width"],1),d=e.eventListeners||(e.eventListeners=[]),h=Ie(a);r=(0,o["default"])({chart:e,zoomX:/x/.test(s),zoomY:/y/.test(s),canvasY:n.canvasTop,canvasX:n.canvasLeft,canvasW:n.canvasWidth,canvasH:n.canvasHeight,canvasX2:n.canvasLeft+n.canvasWidth,canvasY2:n.canvasTop+n.canvasHeight,strokeWidth:u,chartPosLeft:h.left,chartPosTop:h.top,attr:l},r),l.stroke=Re(l.stroke,"rgba(51,153,255,0.8)"),l.fill=Re(l.fill,"rgba(185,213,241,0.3)"),a&&(i["default"].unlisten(a,"pointerdrag",De),d.push(i["default"].listen(a,"pointerdrag",De,r)));n.link&&(i["default"].unlisten(e.getFromEnv("chart-container"),"mouseup mousedown",Oe),d.push(i["default"].listen(e.getFromEnv("chart-container"),"mouseup mousedown",Oe,r)))},t.fcEach=function(e,t,r,n){var a,i=r,o=n;i||(i=e);o||(o={});if(ye(e)){for(a=0;a<e.length;a+=1)if(!1===t.call(i,e[a],a,e,o))return a}else if(null!==e&&e!==d)for(a in e)if(!1===t.call(i,e[a],a,e,o))return a},t.getDefinedColor=function(e,t){return e||0===e||e===H?e:t},t.getFirstValue=Re,t.getColorCodeString=function(e,t){var r,n,a=z,i=0,o=t.split(U);for(n=o.length;i<n;i+=1)2===(r=o[i].split("-")).length?"-1"!==r[0].indexOf("dark")?a+=(0,s.getLightColor)(e,100-parseInt(r[1],10))+U:a+=(0,s.getDarkColor)(e,100-parseInt(r[1],10))+U:a+=o[i]+U;return a.substring(0,a.length-1)},t.clampNumber=function(e,t,r){void 0===t&&(t=-Infinity);void 0===r&&(r=Infinity);if(e<=t)return t;if(e>=r)return r;return e},t.fastTrim=function(e){var t=e.replace(/^\s\s*/,""),r=t.length;for(;/\s/.test(t.charAt(r-=1)););return t.slice(0,r+1)},t.parseUnsafeString=function(e){if("string"==typeof e)return e.replace(J,G);return H},t.toPrecision=He,t.regescape=function(e){return e&&e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},t.regReplaceEscape=Pe,t.getImageURL=function(e){var t={image:!1},r=e;r!==d&&(r=r.replace(/^\s+/,H).replace(/\s+$/,H),/^i\s*[\-]\s*/i.test(r)?(t.image=!0,t.string=r.replace(/^i\s*[\-]\s*/i,H)):t.string=r.replace(/^\\/,H));return t},t.getCripValues=t.getCrispValue=function(e,t,r){var n=r%2/2,a=ne(e+n)-n,i=ne(e+t+n)-n-a;return{position:a,distance:i}},t.stableSort=function(e,t){var r,n=e.length;for(r=0;r<n;r++)e[r].ssI=r;for(e.sort((function(e,r){var n=t(e,r);return 0===n?e.ssI-r.ssI:n})),r=0;r<n;r++)delete e[r].ssI},t.getLinkAction=function(e,t){var r=function(e){return e};return function(n){if(!n||!t.config.clickURLOverridesPlotLinks){var a,i,o,s,l,u,h,f,g,p,m=e.chart||e.map||{},v=(0,c["default"])(m.unescapelinks,1),b=this.entity||d,y=this.entityBox||d,x=this.link,C=x;if(x!==d){switch(v&&(x=S.decodeURIComponent?S.decodeURIComponent(x):S.unescape(x)),-1!==(x=x.replace(/^\s+/,H).replace(/\s+$/,H)).search(/^[a-z]*\s*[\-\:]\s*/i)&&(p=(l=x.split(/\s*[\-\:]\s*/)[0].toLowerCase()).length),n&&(t.config.hotElemClicked=!0),l){case"j":case"javascript":Ge(x);break;case"n":x.replace(/^n\s*\-/i,"n-"),S.open(r(x.slice(2)));break;case"f":-1!==(a=(x=x.replace(/^f\s*\-/i,"f-")).indexOf("-",2))?(i=x.substr(2,a-2))&&S.frames[i]?S.frames[i].location=r(x.slice(a+1)):S.open(r(x.slice(a+1)),i):S.open(r(x.slice(2)));break;case"p":a=(x=x.replace(/p\s*\-/i,"p-")).indexOf("-",2),o=x.indexOf(U,2),-1===a&&(a=1),s=r(x.slice(a+1)),(g=S.open(s,x.substr(2,o-2),x.substr(o+1,a-o-1)))&&g.focus();break;case"newchart":case"newmap":switch(":"===x.charAt(p)&&(a=x.indexOf("-",p+1),f=x.substring(p+1,a),p=a),a=x.indexOf("-",p+1),u=x.substring(p+1,a).toLowerCase()){case"xmlurl":case"jsonurl":h=x.substring(a+1,x.length);break;case"xml":case"json":h=function(e,t){var r,n={chart:{}},a=t,i=e.toLowerCase();if(a.linkeddata)for(r=0;r<a.linkeddata.length;r+=1)a.linkeddata[r].id.toLowerCase()===i&&(n=a.linkeddata[r].linkedchart||a.linkeddata[r].linkedmap);return n}(x.substring(a+1,x.length),e),u="json"}t.fireChartInstanceEvent("linkedChartInvoked",{alias:f,linkType:u.toUpperCase(),data:h,clickedEntity:b,clickedEntityBox:y});break;default:S.location.href=r(x)}t.fireChartInstanceEvent("linkClicked",{linkProvided:C,linkInvoked:x,linkAction:l&&l.toLowerCase()})}}}},t.setImageDisplayMode=function(e,t,r,n,a,i,o,s){var c=s.width*(n/100),u=s.height*(n/100),d=i-2*a,h=o-2*a;return(0,l.getAlignImage)(t,r,e,c,u,i,o,a,d,h)},t.setLineHeight=Ue,t.parsexAxisStyles=function(e,t,r,n,a){var i,o=Re(e.labelbordercolor,t.bordercolor,r.labelbordercolor,H),l=Be(e.labelbgcolor,t.bgcolor,r.labelbgcolor),u=(0,c["default"])(e.labelborderthickness,t.borderthickness,r.labelborderthickness,1),d=(0,c["default"])(r.usedataplotcolorforlabels,0)&&a||n.color;return o=o?(0,s.convertColor)(o,(0,c["default"])(e.labelborderalpha,t.borderalpha,r.labelborderalpha,e.labelalpha,t.alpha,r.labelalpha,100)):H,(i={fontFamily:Be(e.labelfont,t.font,r.labelfont,n.fontFamily),fontSize:Be(e.labelfontsize,t.fontsize,r.labelfontsize,parseInt(n.fontSize,10))+W,color:(0,s.convertColor)(Be(e.labelfontcolor,t.fontcolor,r.labelfontcolor,d),(0,c["default"])(e.labelfontalpha,t.fontalpha,r.labelfontalpha,e.labelalpha,t.alpha,r.labelalpha,100)),fontWeight:(0,c["default"])(e.labelfontbold,t.fontbold,r.labelfontbold)?"bold":"normal",fontStyle:(0,c["default"])(e.labelfontitalic,t.fontitalic,r.labelfontitalic)?"italic":"normal",border:o||l?u+"px solid":H,borderColor:o,borderThickness:u,borderPadding:(0,c["default"])(e.labelborderpadding,t.borderpadding,r.labelborderpadding,2),borderRadius:(0,c["default"])(e.labelborderradius,t.borderradius,r.labelborderradius,0),backgroundColor:l?(0,s.convertColor)(l,(0,c["default"])(e.labelbgalpha,t.bgalpha,r.labelbgalpha,e.labelalpha,t.alpha,r.labelalpha,100)):H,borderDash:(0,c["default"])(e.labelborderdashed,t.borderdashed,r.labelborderdashed,0)?ze((0,c["default"])(e.labelborderdashlen,t.borderdashlen,r.labelborderdashlen,4),(0,c["default"])(e.labelborderdashgap,t.borderdashgap,r.labelborderdashgap,2)):E}).lineHeight=Ue(i),i},t.getDashStyle=ze,t.componentDispose=function $e(){var e,t,r,n,a,i,o,s,l,c,u,d;if(this&&this!==S){if(this.disposing=!0,e=this.components)for(r in e)if((t=e[r])instanceof Array)for(n=t.length,a=0;a<n;a++)(d=t[a])&&!this.disposing&&(d.dispose?d.dispose():$e.call(d));else t&&!t.disposing&&(t.dispose?t.dispose():$e.call(t));for(s in i=this.graphics)if(o=i[s])if(o.hide)o.hide(),o.followers&&o.followers[0]&&(u=o.followers[0].el)&&u.hide&&u.hide();else for(l in o)(c=o[l]).hide&&c.hide();for(r in this)delete this[r]}},t.executeJS=je,t.pseudoEval=Ge,t.getContainerBackgroundColor=function(e){var t=e.options,r=t.containerBackgroundColor,n=t.containerBackgroundOpacity;Fe(e.jsVars.transparent)?n=e.jsVars.transparent?0:1:(n=parseFloat(n))<0?n=0:n>1&&(n=1);r||(r="#"+j);if(D&&!L)return n?r:"transparent";return r=r.replace(/^#?([a-f0-9]+)/gi,"$1"),(r=(0,s.HEXtoRGB)(r))[3]=n.toString(),"rgba("+r.join(",")+")"},t.capitalizeString=function(e,t){return e?e.replace(t?/(^|\s)([a-z])/g:/(^|\s)([a-z])/,(function(e,t,r){return t+r.toUpperCase()})):e},t.pInt=function(e,t){return parseInt(e,t||10)},t.defined=Fe,t.trimString=function(e){var t=e.replace(/^\s\s*/,""),r=t.length;for(;/\s/.test(t.charAt(r-=1)););return t.slice(0,r+1)},t.getSuggestiveRotation=function(){var e,t,r,n;e=arguments[0],1===arguments.length?(t=e.angle,r=e.x,n=e.y):(t=e,r=arguments[1],n=arguments[2]);return X+(t=t||0)+U+r+U+n},t.normalizeCSSDimension=function(e,t,r){var n,a=void 0===e?r.offsetWidth||parseFloat(r.style.width):e,i=void 0===t?r.offsetHeight||parseFloat(r.style.height):t,o={},s=r.style;if(s.width=a=a.toString?a.toString():"0",s.height=i=i.toString?i.toString():"0",(o.widthIsRelative=a.match(/^\s*\d*\.?\d*\%\s*$/)&&!a.match(/^\s*0\%\s*$/))&&0===r.offsetWidth)for(n=r;n=n.offsetParent;)if(n.offsetWidth>0){a=(n.offsetWidth*parseFloat(a.match(/\d*/)[0])/100).toString();break}if((o.heightIsRelative=i.match(/^\s*\d*\.?\d*\%\s*$/)&&!i.match(/^\s*0\%\s*$/))&&r.offsetHeight<=20)for(n=r;n=n.offsetParent;)if(n.offsetHeight>0){i=(n.offsetHeight*parseFloat(i.match(/\d*/)[0])/100).toString();break}return o.width=a.replace?a.replace(/^\s*(\d*\.?\d*)\s*$/gi,"$1px"):a,o.height=i.replace?i.replace(/^\s*(\d*\.?\d*)\s*$/gi,"$1px"):i,s.width=o.width,s.height=o.height,o.pixelWidth=o.widthIsRelative?r.offsetWidth:parseInt(o.width,10)||0,o.pixelHeight=o.heightIsRelative?r.offsetHeight:parseInt(o.height,10)||0,o},t._manageInteractiveSpace=function(){var e,t,r,n,a,i,o=this.config,s=this.getChildren(),l=s.xAxis[0],c=s.yAxis[0],u=s.canvas&&s.canvas[0],d=u.config,h=d.canvasBorderWidth,f=d.canvasPaddingTop,g=d.canvasPadding||0,p=d.canvasPaddingLeft,m=o.xAxisSpaceAllocation,v=o.yAxisSpaceAllocation[0].spaceTaken;t=o.xAxisSpaceAllocation=l.placeAxis(o.availableHeight+m.bottom),r=o.yAxisSpaceAllocation[0].spaceTaken=c.placeAxis(o.availableWidth+v.left),e=t.bottom-m.bottom,a=t.top-m.top,n=r.left-v.left,i=r.right-v.right,e&&this._allocateSpace({top:a,bottom:e}),(n||i)&&this._allocateSpace({left:n,right:i}),l&&l.setAxisDimention({x:o.canvasLeft+Math.max(p,g),y:l.config.isOpposit?o.canvasTop-h:o.canvasBottom+h,opposite:l.config.isOpposit?o.canvasBottom+h:o.canvasTop-h,axisLength:o.canvasWidth-Math.max(p,g)-Math.max(d.canvasPaddingRight,g)}),c&&c.setAxisDimention({x:c.config.isOpposit?o.canvasRight+h:o.canvasLeft-h,y:o.canvasTop+f,opposite:c.config.isOpposit?o.canvasLeft-h:o.canvasRight+h,axisLength:o.canvasHeight-f-d.canvasPaddingBottom}),(a||e||n||i)&&u.asyncDraw()},t.removeAllTooltipOnChart=function(e,t){for(var r=e.implicit,n=e.explicit,a=0;a<r.length;a++){var i=r[a];t?i.hide():i.element&&i.element.remove()}for(var o=0;o<n.length;o++){var s=n[o];t?s.hide():s.element&&s.element.remove()}},t.configureDataLabelStyle=function(e,t){void 0===e&&(e={});var r,n,a=t||this.config.JSONData,i=this.getFromEnv("chartConfig");return r=Be(e.valuebordercolor,a.valuebordercolor,i.valueBorderColor),n=Be(e.valuebgcolor,a.valuebgcolor,i.valueBgColor),{color:(0,s.convertColor)(Be(e.valuefontcolor,a.valuefontcolor,i.valueFontColor),i.valueFontAlpha),borderColor:r?(0,s.convertColor)(r,i.valueBorderAlpha):H,backgroundColor:n?(0,s.convertColor)(n,i.valueBgAlpha):H}},t.MOUSEMOVE=t.MOUSEOUT=t.FIT=t.FILL=t.TILE=t.COMMA=t.animationObjStr=t.configStr=t.ROUND=t.BLANK=t.POINTER=t.HAND=t.BOLD=t.NORMAL=t.mathRound=t.mathAbs=t.animHelperFN=t.xssEncode=t.MathExt=t.defaultGaugePaletteOptions=t.crispBound=t.canvasBorderColorStr=t.attrTypeBool=t.canvasBGAlphaStr=t.attrTypeNum=t.DASH_DEF=t.chartPaletteStr=t.TRACKER_FILL=t.appliedCSS=t.validhexcolor=t.chartAPI=t.getAxisLimits=t.supportedStyle=t.lineHeightFactor=t.isEdge=t.isIE9=t.isIE11=t.isIE=t.TXT_REGEX=t.hasSVG=t.stubFN=t.preDefStr=t.isArray=t.TXT_STRING=t.TXT_HREF=t.txtLabel=t.hasTouch=t.parseTooltext=t.gradientify=t.rgbaToHex=t.toRaphaelColor=t.getViewPortDimension=t.polyPathToPath=t.createElement=t.getEventCoordinate=t.regex=t.CLICK_THRESHOLD_PIXELS=t.TOUCH_THRESHOLD_PIXELS=t.cleanColorCode=t.startsRGBA=t.visibleStr=t.hiddenStr=t.TEXTANCHOR=t.COMMASPACE=t.PXSTRING=t.HUNDREDSTRING=t.SHAPE_RECT=t.FC_CONFIG_STRING=t.INITIALSTR=t.FINALSTR=t.POSITION_END=t.POSITION_START=t.MIDDLESTR=t.POSITION_MIDDLE=t.POSITION_CENTER=t.POSITION_LEFT=t.POSITION_BOTTOM=t.POSITION_RIGHT=t.POSITION_TOP=t.STRINGUNDEFINED=t.DECIMALSTRING=t.ONESTRING=t.TESTSTR=t.SAMPLESTRING=t.ZEROSTRING=t.COMMASTRING=t.OBJECTSTRING=t.STRINGSTRING=t.BREAKSTRING=t.HASHSTRING=t.COLOR_TRANSPARENT=t.COLOR_WHITE=t.COLOR_GLASS=t.COLOR_BLACK=t.BLANKSTRING=t.UNDERSCORE=t.UNDEF=t.isFirefox=t.BLANKSTRINGPLACEHOLDER=t.getEmptyConstractor=void 0,t.removeHtmlAttrs=t.isSimilarObject=t.snapPoint=t.DEFAULT_FT_FONT=t.isIpad=t.domInsertModes=t.isXSSSafe=t.normalizeAngle=t.LINE_HEIGHT_FACTOR=t.PROJECT_VERSION=t.datasetFactory=t.componentFactory=t.dropHash=t.BGRATIOSTRING=t.VISIBLE=t.touchEnabled=void 0;var a=r(185);t.attribDefs=a.attribDefs,t.parseConfiguration=a.parseConfiguration,t.setAttribDefs=a.setAttribDefs,t.hasAttribDefs=a.hasAttribDefs;var i=n(r(186)),o=n(r(187));t.extend2=o["default"];var s=r(188);t.convertColor=s.convertColor,t.getDarkColor=s.getDarkColor,t.getLightColor=s.getLightColor,t.mapSymbolName=s.mapSymbolName,t.getColumnColor=s.getColumnColor,t.getPointColor=s.getPointColor,t.getAngle=s.getAngle,t.parseColor=s.parseColor,t.getValidColor=s.getValidColor,t.RGBtoHex=s.RGBtoHex,t.rawRGBtoHEX=s.rawRGBtoHEX,t.HEXtoRGB=s.HEXtoRGB,t.parsePointValue=s.parsePointValue,t.getFirstColor=s.getFirstColor,t.getFirstAlpha=s.getFirstAlpha;var l=r(189),c=n(r(190));t.pluckNumber=c["default"];var u=1.2;t.LINE_HEIGHT_FACTOR=u,t.PROJECT_VERSION="3.15.0-sr.1";var d,h,f,g,p,m,v,b,y,x,C,w,_,k,S=window,E="none",A=function(){},T=(k=S.navigator.userAgent.toLowerCase(),!(!(_=-1!==k.indexOf("msie")&&S.parseInt(k.split("msie")[1]))||9!==_)),M=/Firefox/i.test(S.navigator.userAgent),F=S.document,I=S.navigator,L=Boolean(S.SVGAngle||F.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")),N=/trident/i.test(I.userAgent)&&/rv:11/i.test(I.userAgent)&&!window.opera,D=/msie/i.test(I.userAgent)&&!S.opera,O=/Edge/.test(I.userAgent),R=!!I.platform&&/iPad|iPhone|iPod/.test(I.platform),P=/[\\\"<>;&]/,V=/^[^\S]*?(sf|f|ht)(tp|tps):\/\//i,B="rgba(192,192,192,"+(D?.002:1e-6)+")",j="FFFFFF",G="<br />",H="",z=H,U=",",X="r",W="px",$="http://www.fusioncharts.com?BS=FCHSEvalMark&utm_source=FCS_trial&pver="+escape("3.15.0-sr.1"),Y="70|117|115|105|111|110|67|104|97|114|116|115|32|84|114|105|97|108".split("|").map((function(e){return String.fromCharCode(+e)})).join(""),q=parseFloat,K=/fusioncharts\.com|fusioncharts\.github\.io$/i,J=/\{br\}\s*/gi,Z=/^#?/,Q=/^rgba/i,ee=/[#\s]/gi,te=Math.abs,re=Math.pow,ne=Math.round,ae=re(2,-24),ie="ontouchstart"in F,oe=ie&&!(I.maxTouchPoints||I.msMaxTouchPoints),se=!K.test(S.location.hostname),le=Math,ce=le.max,ue=le.min,de={pageX:0,pageY:0},he=["8BBA00","F6BD0F","FF654F","AFD8F8","FDB398","CDC309","B1D0D2","FAD1B9","B8A79E","D7CEA5","C4B3CE","E9D3BE","EFE9AD","CEA7A2","B2D9BA"],fe={paletteColors:[he,he,he,he,he],bgColor:["CBCBCB,E9E9E9","CFD4BE,F3F5DD","C5DADD,EDFBFE","A86402,FDC16D","FF7CA0,FFD1DD"],bgAngle:[270,270,270,270,270],bgRatio:["0,100","0,100","0,100","0,100","0,100"],bgAlpha:["50,50","60,50","40,20","20,10","30,30"],toolTipBgColor:["FFFFFF","FFFFFF","FFFFFF","FFFFFF","FFFFFF"],toolTipBorderColor:["545454","545454","415D6F","845001","68001B"],baseFontColor:["555555","60634E","025B6A","A15E01","68001B"],tickColor:["333333","60634E","025B6A","A15E01","68001B"],trendDarkColor:["333333","60634E","025B6A","A15E01","68001B"],trendLightColor:["f1f1f1","F3F5DD","EDFBFE","FFF5E8","FFD1DD"],pointerBorderColor:["545454","60634E","415D6F","845001","68001B"],pointerBgColor:["545454","60634E","415D6F","845001","68001B"],canvasBgColor:["FFFFFF","FFFFFF","FFFFFF","FFFFFF","FFFFFF"],canvasBgAngle:[0,0,0,0,0],canvasBgAlpha:["100","100","100","100","100"],canvasBgRatio:["","","","",""],canvasBorderColor:["545454","545454","415D6F","845001","68001B"],canvasBorderAlpha:[100,100,100,90,100],altHGridColor:["EEEEEE","D8DCC5","99C4CD","DEC49C","FEC1D0"],altHGridAlpha:[50,35,10,20,15],altVGridColor:["767575","D8DCC5","99C4CD","DEC49C","FEC1D0"],altVGridAlpha:[10,20,10,15,10],borderColor:["767575","545454","415D6F","845001","68001B"],borderAlpha:[50,50,50,50,50],legendBgColor:["ffffff","ffffff","ffffff","ffffff","ffffff"],legendBorderColor:["545454","545454","415D6F","845001","D55979"],plotFillColor:["767575","D8DCC5","99C4CD","DEC49C","FEC1D0"],plotBorderColor:["999999","8A8A8A","6BA9B6","C1934D","FC819F"],msgLogColor:["717170","7B7D6D","92CDD6","965B01","68001B"],TrendLightShadeOffset:30},ge={numDecimals:function(e){var t=e;t=He(t,10);var r=He((t=Math.abs(t))-Math.floor(t),10),n=String(r).length-2;return n=n<0?0:n,n},toRadians:function(e){return e/180*Math.PI},toDegrees:function(e){return e/Math.PI*180},flashToStandardAngle:function(e){return-1*e},standardToFlashAngle:function(e){return-1*e},flash180ToStandardAngle:function(e){var t=e,r=360-((t%=360)<0?t+360:t);return 360===r?0:r},getAngularPoint:function(e,t,r,n){var a=n*(Math.PI/180);return{x:e+r*Math.cos(a),y:t-r*Math.sin(a)}},remainderOf:function(e,t){return Math.ceil(e%t)},boundAngle:function(e){return e>=0?ge.prototype.remainderOf(e,360):360-ge.prototype.remainderOf(Math.abs(e),360)},toNearestTwip:function(e){var t=e,r=t<0?-1:1,n=Math.abs(t),a=Math.round(100*n),i=Math.floor(a/5);return r*((Number(String(a-5*i))>2?5*i+5:5*i)/100)},roundUp:function(e,t){var r=e,n=t;n=n||2;var a=Math.pow(10,n);return r*=a,r=Math.round(Number(String(r))),r/=a}},pe=2*le.PI,me={chart2D:{bgColor:"bgColor",bgAlpha:"bgAlpha",bgAngle:"bgAngle",bgRatio:"bgRatio",canvasBgColor:"canvasBgColor",canvasBaseColor:"canvasBaseColor",divLineColor:"divLineColor",legendBgColor:"legendBgColor",legendBorderColor:"legendBorderColor",toolTipbgColor:"toolTipbgColor",toolTipBorderColor:"toolTipBorderColor",baseFontColor:"baseFontColor",anchorBgColor:"anchorBgColor"},chart3D:{bgColor:"bgColor3D",bgAlpha:"bgAlpha3D",bgAngle:"bgAngle3D",bgRatio:"bgRatio3D",canvasBgColor:"canvasBgColor3D",canvasBaseColor:"canvasBaseColor3D",divLineColor:"divLineColor3D",divLineAlpha:"divLineAlpha3D",legendBgColor:"legendBgColor3D",legendBorderColor:"legendBorderColor3D",toolTipbgColor:"toolTipbgColor3D",toolTipBorderColor:"toolTipBorderColor3D",baseFontColor:"baseFontColor3D",anchorBgColor:"anchorBgColor3D"}},ve=L?0:.5,be=["color"],ye=function(){if(Array.isArray)return Array.isArray;var e=Object.prototype.toString;return function(t){return e.call(t)===e.call([])}}(),xe=function(e){return e.pageX===d&&(e.pageX=e.clientX+F.body.scrollLeft+F.documentElement.scrollLeft,e.pageY=e.clientY+F.body.scrollTop+F.documentElement.scrollTop),e},Ce=(y="innerWidth",x="innerHeight",C=F.documentElement||F.body,w=C,"innerWidth"in S?w=S:(y="clientWidth",x="clientHeight"),function(){return{width:w[y],height:w[x],scrollTop:C.scrollTop,scrollLeft:C.scrollLeft}}),we=(b=/^@window_/g,function(e,t,r){var n,a,i,o,s=e.replace(/\[[\'\"]/g,".").replace(/[\'\"]\]/g,H).replace(/\[/g,".@window_").replace(/\]/g,H).split("."),l=S,c=H;for(i=s.length,o=0;o<i;o+=1){if(n=l,(a=s[o]).match(b))l=l[S[a.replace(b,H)]];else{if(l===d||null===l)throw(c||a).replace(b,H)+" is not defined";l=l[a]}c=a}if(!l||"function"!=typeof l.call&&l!==S.alert){if("void"===c)return;setTimeout((function(){throw a.replace(b,H)+"() is not a function"}),0)}else l===S.alert?l(t):r?l.apply(n,t.split("__FC_ARG_SEP__")):l.call(n,t)}),_e=(v={},function(e){var t,r,n,a,i,o=e||this,l=o&&o.FCcolor||o,c=l.color,u=l.ratio,h=l.angle,f=l.alpha,g=l.r,p=l.cx,m=l.cy,b=l.fx,y=l.fy,x=l.gradientUnits,C=l.x1,w=l.y1,_=l.x2,k=l.y2,S=1;if("string"==typeof o)return v[i="~"+o]||(v[i]=o.replace(/^#?([a-f0-9]{3,6})/gi,"#$1"));if(!(c=c||H))return t;if(i=[c,f,u,h,g,p,m,x,b,y,C,_,w,k,l.radialGradient].join("_").replace(/[\(\)\s,\xb0#]/g,"_"),v[i])return v[i];if(u=u&&(u+H).split(U)||[],f=(f||0===f)&&(f+H).split(U)||[],c=c.split(U))if(t=H,1===c.length)a=c[0].replace(/^#?([a-f0-9]{3,6})/gi,"$1"),t=f.length?"rgba("+(0,s.HEXtoRGB)(a).join(U)+","+.01*q(f[0])+")":a.replace(/^#?([a-f0-9]{3,6})/gi,"#$1");else{for(r=0,n=c.length;r<n;r++)a=c[r].replace(/^#?([a-f0-9]{3,6})/gi,"$1"),isNaN(u[r])||(u[r]=q(u[r]),a+=":"+u[r],isNaN(u[r+1])||(u[r+1]=q(u[r+1])+u[r])),isNaN(f[r])||f[r]===H||(S=.01*f[r]),c[r]="rgba("+(0,s.HEXtoRGB)(a).join(U)+","+S+")",isNaN(u[r])||(u[r]===u[r-1]&&(u[r]+=.001),c[r]=c[r]+":"+u[r]);t+=c.join("-"),g!==d||b!==d||p!==d||l.radialGradient?t="xr("+[b,y,g,p,m,x].join(",")+")"+t:(t="-"+t,C===d&&w===d&&_===d&&k===d||(t="("+[C,w,_,k,x].join(",")+")"+t),h===d&&(h=0),t=360-q(h)%360+t)}return v[i]=t,t}),ke=function(){return z},Se=function(){var e,t=[{regex:/((^|[^\\])((\\)\\)*\$cleanvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$cleanvalue))/gi,argIndex:2,argKey:"cleanvalue"},{regex:/((^|[^\\])((\\)\\)*\$datavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$datavalue))/gi,argIndex:2,argKey:"formattedValue"},{regex:/((^|[^\\])((\\)\\)*\$value)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$value))/gi,argIndex:3,argKey:"value"},{regex:/((^|[^\\])((\\)\\)*\$label)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$label))/gi,argIndex:2,argKey:"label"},{regex:/((^|[^\\])((\\)\\)*\$seriesname)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$seriesname))/gi,argIndex:5,argKey:"seriesname"},{regex:/((^|[^\\])((\\)\\)*\$yaxisname)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$yaxisname))/gi,argIndex:2,argKey:"yaxisName"},{regex:/((^|[^\\])((\\)\\)*\$xaxisname)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$xaxisname))/gi,argIndex:2,argKey:"xaxisName"},{regex:/((^|[^\\])((\\)\\)*\$displayvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$displayvalue))/gi,argIndex:3,argKey:"displayvalue"},{regex:/((^|[^\\])((\\)\\)*\$xdatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$xdatavalue))/gi,argIndex:2,argKey:"xDataValue"},{regex:/((^|[^\\])((\\)\\)*\$ydatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$ydatavalue))/gi,argIndex:2,argKey:"yDataValue"},{regex:/((^|[^\\])((\\)\\)*\$xvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$xvalue))/gi,argIndex:3,argKey:"x"},{regex:/((^|[^\\])((\\)\\)*\$yvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$yvalue))/gi,argIndex:3,argKey:"y"},{regex:/((^|[^\\])((\\)\\)*\$zvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$zvalue))/gi,argIndex:3,argKey:"z"},{regex:/((^|[^\\])((\\)\\)*\$name)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$name))/gi,argIndex:3,argKey:"name"},{regex:/((^|[^\\])((\\)\\)*\$percentValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$percentValue))/gi,argIndex:2,argKey:"percentValue"},{regex:/((^|[^\\])((\\)\\)*\$startValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$startValue))/gi,argIndex:2,argKey:"startValue"},{regex:/((^|[^\\])((\\)\\)*\$startDataValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$startDataValue))/gi,argIndex:2,argKey:"startDataValue"},{regex:/((^|[^\\])((\\)\\)*\$endValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$endValue))/gi,argIndex:2,argKey:"endValue"},{regex:/((^|[^\\])((\\)\\)*\$endDataValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$endDataValue))/gi,argIndex:2,argKey:"endDataValue"},{regex:/((^|[^\\])((\\)\\)*\$axisName)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$axisName))/gi,argIndex:2,argKey:"axisName"},{regex:/((^|[^\\])((\\)\\)*\$cumulativevalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$cumulativevalue))/gi,argIndex:2,argKey:"cumulativeValue"},{regex:/((^|[^\\])((\\)\\)*\$cumulativedatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$cumulativedatavalue))/gi,argIndex:2,argKey:"cumulativeDataValue"},{regex:/((^|[^\\])((\\)\\)*\$cumulativePercentValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$cumulativePercentValue))/gi,argIndex:2,argKey:"cumulativePercentValue"},{regex:/((^|[^\\])((\\)\\)*\$cumulativepercentdatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$cumulativepercentdatavalue))/gi,argIndex:2,argKey:"cumulativePercentDataValue"},{regex:/((^|[^\\])((\\)\\)*\$sum)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$sum))/gi,argIndex:2,argKey:"sum"},{regex:/((^|[^\\])((\\)\\)*\$unformattedsum)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$unformattedsum))/gi,argIndex:2,argKey:"unformattedSum"},{regex:/((^|[^\\])((\\)\\)*\$targetvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$targetvalue))/gi,argIndex:2,argKey:"targetValue"},{regex:/((^|[^\\])((\\)\\)*\$targetdatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$targetdatavalue))/gi,argIndex:2,argKey:"targetDataValue"},{regex:/((^|[^\\])((\\)\\)*\$processname)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$processname))/gi,argIndex:2,argKey:"processName"},{regex:/((^|[^\\])((\\)\\)*\$start)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$start))/gi,argIndex:2,argKey:"start"},{regex:/((^|[^\\])((\\)\\)*\$end)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$end))/gi,argIndex:2,argKey:"end"},{regex:/((^|[^\\])((\\)\\)*\$percentcomplete)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$percentcomplete))/gi,argIndex:2,argKey:"percentComplete"},{regex:/((^|[^\\])((\\)\\)*\$taskpercentcomplete)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$taskpercentcomplete))/gi,argIndex:2,argKey:"taskPercentComplete"},{regex:/((^|[^\\])((\\)\\)*\$taskstartdate)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$taskstartdate))/gi,argIndex:2,argKey:"taskStartDate"},{regex:/((^|[^\\])((\\)\\)*\$taskenddate)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$taskenddate))/gi,argIndex:2,argKey:"taskEndDate"},{regex:/((^|[^\\])((\\)\\)*\$tasklabel)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$tasklabel))/gi,argIndex:2,argKey:"taskLabel"},{regex:/((^|[^\\])((\\)\\)*\$date)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$date))/gi,argIndex:2,argKey:"date"},{regex:/((^|[^\\])((\\)\\)*\$percentofprevvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$percentofprevvalue))/gi,argIndex:2,argKey:"percentOfPrevValue"},{regex:/((^|[^\\])((\\)\\)*\$sname)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$sname))/gi,argIndex:2,argKey:"sName"},{regex:/((^|[^\\])((\\)\\)*\$lname)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$lname))/gi,argIndex:2,argKey:"lName"},{regex:/((^|[^\\])((\\)\\)*\$fromid)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$fromid))/gi,argIndex:2,argKey:"fromId"},{regex:/((^|[^\\])((\\)\\)*\$fromlabel)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$fromlabel))/gi,argIndex:2,argKey:"fromLabel"},{regex:/((^|[^\\])((\\)\\)*\$toid)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$toid))/gi,argIndex:2,argKey:"toId"},{regex:/((^|[^\\])((\\)\\)*\$tolabel)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$tolabel))/gi,argIndex:2,argKey:"toLabel"},{regex:/((^|[^\\])((\\)\\)*\$fromxvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$fromxvalue))/gi,argIndex:2,argKey:"fromXValue"},{regex:/((^|[^\\])((\\)\\)*\$fromyvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$fromyvalue))/gi,argIndex:2,argKey:"fromYValue"},{regex:/((^|[^\\])((\\)\\)*\$fromxdatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$fromxdatavalue))/gi,argIndex:2,argKey:"fromXDataValue"},{regex:/((^|[^\\])((\\)\\)*\$fromydatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$fromydatavalue))/gi,argIndex:2,argKey:"fromYDataValue"},{regex:/((^|[^\\])((\\)\\)*\$fromlabel)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$fromlabel))/gi,argIndex:2,argKey:"fromLabel"},{regex:/((^|[^\\])((\\)\\)*\$toxvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$toxvalue))/gi,argIndex:2,argKey:"toXValue"},{regex:/((^|[^\\])((\\)\\)*\$toyvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$toyvalue))/gi,argIndex:2,argKey:"toYValue"},{regex:/((^|[^\\])((\\)\\)*\$toxdatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$toxdatavalue))/gi,argIndex:2,argKey:"toXDataValue"},{regex:/((^|[^\\])((\\)\\)*\$toydatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$toydatavalue))/gi,argIndex:2,argKey:"toYDataValue"},{regex:/((^|[^\\])((\\)\\)*\$tolabel)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$tolabel))/gi,argIndex:2,argKey:"toLabel"},{regex:/((^|[^\\])((\\)\\)*\$openvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$openvalue))/gi,argIndex:2,argKey:"openValue"},{regex:/((^|[^\\])((\\)\\)*\$closevalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$closevalue))/gi,argIndex:2,argKey:"closeValue"},{regex:/((^|[^\\])((\\)\\)*\$highvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$highvalue))/gi,argIndex:2,argKey:"highValue"},{regex:/((^|[^\\])((\\)\\)*\$lowvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$lowvalue))/gi,argIndex:2,argKey:"lowValue"},{regex:/((^|[^\\])((\\)\\)*\$opendatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$opendatavalue))/gi,argIndex:2,argKey:"openDataValue"},{regex:/((^|[^\\])((\\)\\)*\$closedatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$closedatavalue))/gi,argIndex:2,argKey:"closeDataValue"},{regex:/((^|[^\\])((\\)\\)*\$highdatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$highdatavalue))/gi,argIndex:2,argKey:"highDataValue"},{regex:/((^|[^\\])((\\)\\)*\$lowdatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$lowdatavalue))/gi,argIndex:2,argKey:"lowDataValue"},{regex:/((^|[^\\])((\\)\\)*\$maxvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$maxvalue))/gi,argIndex:2,argKey:"maxValue"},{regex:/((^|[^\\])((\\)\\)*\$maxdatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$maxdatavalue))/gi,argIndex:2,argKey:"maxDataValue"},{regex:/((^|[^\\])((\\)\\)*\$minvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$minvalue))/gi,argIndex:2,argKey:"minValue"},{regex:/((^|[^\\])((\\)\\)*\$mindatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$mindatavalue))/gi,argIndex:2,argKey:"minDataValue"},{regex:/((^|[^\\])((\\)\\)*\$q1)/gi,argIndex:2,argKey:"Q1"},{regex:/((^|[^\\])((\\)\\)*\$unformattedQ1)/gi,argIndex:2,argKey:"unformattedQ1"},{regex:/((^|[^\\])((\\)\\)*\$q3)/gi,argIndex:2,argKey:"Q3"},{regex:/((^|[^\\])((\\)\\)*\$unformattedQ3)/gi,argIndex:2,argKey:"unformattedQ3"},{regex:/((^|[^\\])((\\)\\)*\$median)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$median))/gi,argIndex:2,argKey:"median"},{regex:/((^|[^\\])((\\)\\)*\$unformattedMedian)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$unformattedMedian))/gi,argIndex:2,argKey:"unformattedMedian"},{regex:/((^|[^\\])((\\)\\)*\$SD)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$SD))/gi,argIndex:2,argKey:"SD"},{regex:/((^|[^\\])((\\)\\)*\$unformattedsd)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$unformattedsd))/gi,argIndex:2,argKey:"unformattedsd"},{regex:/((^|[^\\])((\\)\\)*\$QD)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$QD))/gi,argIndex:2,argKey:"QD"},{regex:/((^|[^\\])((\\)\\)*\$unformattedQD)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$unformattedQD))/gi,argIndex:2,argKey:"unformattedQD"},{regex:/((^|[^\\])((\\)\\)*\$MD)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$MD))/gi,argIndex:2,argKey:"MD"},{regex:/((^|[^\\])((\\)\\)*\$unformattedMD)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$unformattedMD))/gi,argIndex:2,argKey:"unformattedMD"},{regex:/((^|[^\\])((\\)\\)*\$mean)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$mean))/gi,argIndex:2,argKey:"mean"},{regex:/((^|[^\\])((\\)\\)*\$unformattedMean)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$unformattedMean))/gi,argIndex:2,argKey:"unformattedMean"},{regex:/((^|[^\\])((\\)\\)*\$unformattedMean)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$unformattedMean))/gi,argIndex:2,argKey:"unformattedMean"},{regex:/((^|[^\\])((\\)\\)*\$volumeValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$volumeValue))/gi,argIndex:2,argKey:"volumeValue"},{regex:/((^|[^\\])((\\)\\)*\$volumeDataValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$volumeDataValue))/gi,argIndex:2,argKey:"volumeDataValue"},{regex:/((^|[^\\])((\\)\\)*\$fromXValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$fromXValue))/gi,argIndex:2,argKey:"fromXValue"},{regex:/((^|[^\\])((\\)\\)*\$fromYValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$fromYValue))/gi,argIndex:2,argKey:"fromYValue"},{regex:/((^|[^\\])((\\)\\)*\$fromXDataValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$fromXDataValue))/gi,argIndex:2,argKey:"fromXDataValue"},{regex:/((^|[^\\])((\\)\\)*\$fromYDataValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$fromYDataValue))/gi,argIndex:2,argKey:"fromYDataValue"},{regex:/((^|[^\\])((\\)\\)*\$fromLabel)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$fromLabel))/gi,argIndex:2,argKey:"fromLabel"},{regex:/((^|[^\\])((\\)\\)*\$toXValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$toXValue))/gi,argIndex:2,argKey:"toXValue"},{regex:/((^|[^\\])((\\)\\)*\$toYValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$toYValue))/gi,argIndex:2,argKey:"toYValue"},{regex:/((^|[^\\])((\\)\\)*\$toXDataValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$toXDataValue))/gi,argIndex:2,argKey:"toXDataValue"},{regex:/((^|[^\\])((\\)\\)*\$toYDataValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$toYDataValue))/gi,argIndex:2,argKey:"toYDataValue"},{regex:/((^|[^\\])((\\)\\)*\$tolabel)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$tolabel))/gi,argIndex:2,argKey:"toLabel"},{regex:/((^|[^\\])((\\)\\)*\$tlLabel)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$tlLabel))/gi,argIndex:5,argKey:"tlLabel"},{regex:/((^|[^\\])((\\)\\)*\$trlabel)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$trlabel))/gi,argIndex:5,argKey:"trLabel"},{regex:/((^|[^\\])((\\)\\)*\$bllabel)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$bllabel))/gi,argIndex:5,argKey:"blLabel"},{regex:/((^|[^\\])((\\)\\)*\$brlabel)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$brlabel))/gi,argIndex:5,argKey:"brLabel"},{regex:/((^|[^\\])((\\)\\)*\$rowlabel)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$rowlabel))/gi,argIndex:5,argKey:"rowLabel"},{regex:/((^|[^\\])((\\)\\)*\$columnlabel)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$columnlabel))/gi,argIndex:5,argKey:"columnLabel"},{regex:/((^|[^\\])((\\)\\)*\$errorvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$errorvalue))/gi,argIndex:2,argKey:"errorValue"},{regex:/((^|[^\\])((\\)\\)*\$errordatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$errordatavalue))/gi,argIndex:2,argKey:"errorDataValue"},{regex:/((^|[^\\])((\\)\\)*\$errorpercentvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$errorpercentvalue))/gi,argIndex:2,argKey:"errorPercentValue"},{regex:/((^|[^\\])((\\)\\)*\$errorpercentdatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$errorpercentdatavalue))/gi,argIndex:2,argKey:"errorPercentDataValue"},{regex:/((^|[^\\])((\\)\\)*\$horizontalErrorValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$horizontalErrorValue))/gi,argIndex:2,argKey:"horizontalErrorValue"},{regex:/((^|[^\\])((\\)\\)*\$horizontalErrorDataValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$horizontalErrorDataValue))/gi,argIndex:2,argKey:"horizontalErrorDataValue"},{regex:/((^|[^\\])((\\)\\)*\$verticalErrorValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$verticalErrorValue))/gi,argIndex:2,argKey:"verticalErrorValue"},{regex:/((^|[^\\])((\\)\\)*\$verticalErrorDataValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$verticalErrorDataValue))/gi,argIndex:2,argKey:"verticalErrorDataValue"},{regex:/((^|[^\\])((\\)\\)*\$horizontalErrorPercent)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$horizontalErrorPercentValue))/gi,argIndex:2,argKey:"horizontalErrorPercentValue"},{regex:/((^|[^\\])((\\)\\)*\$horizontalErrorPercentDataValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$horizontalErrorPercentDataValue))/gi,argIndex:2,argKey:"horizontalErrorPercentDataValue"},{regex:/((^|[^\\])((\\)\\)*\$verticalErrorPercent)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$verticalErrorPercentValue))/gi,argIndex:2,argKey:"verticalErrorPercentValue"},{regex:/((^|[^\\])((\\)\\)*\$verticalErrorPercentDataValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$verticalErrorPercentDataValue))/gi,argIndex:2,argKey:"verticalErrorPercentDataValue"},{regex:/((^|[^\\])((\\)\\)*\$xaxispercentvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$xaxispercentvalue))/gi,argIndex:2,argKey:"xAxisPercentValue"},{regex:/((^|[^\\])((\\)\\)*\$percentdatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$percentdatavalue))/gi,argIndex:2,argKey:"percentDataValue"},{regex:/((^|[^\\])((\\)\\)*\$trType)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$trType))/gi,argIndex:4,argKey:"trtype"},{regex:/((^|[^\\])((\\)\\)*\$tlType)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$tlType))/gi,argIndex:4,argKey:"tltype"},{regex:/((^|[^\\])((\\)\\)*\$brType)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$brType))/gi,argIndex:4,argKey:"brtype"},{regex:/((^|[^\\])((\\)\\)*\$blType)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$blType))/gi,argIndex:4,argKey:"bltype"},{regex:/((^|[^\\])((\\)\\)*\$colorRangeLabel)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$colorRangeLabel))/gi,argIndex:5,argKey:"colorRangeLabel"},{regex:/((^|[^\\])((\\)\\)*\$zdatavalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$zdatavalue))/gi,argIndex:2,argKey:"zDataValue"},{regex:/((^|[^\\])((\\)\\)*\$svalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$svalue))/gi,argIndex:3,argKey:"svalue"},{regex:/((^|[^\\])((\\)\\)*\$positiveErrorValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$positiveErrorValue))/gi,argIndex:2,argKey:"positiveErrorValue"},{regex:/((^|[^\\])((\\)\\)*\$negativeErrorValue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$negativeErrorValue))/gi,argIndex:2,argKey:"negativeErrorValue"},{regex:/((^|[^\\])((\\)\\)*\$datasvalue)/gi,escapeRegex:/((^|[^\\])((\\)\\)*\\(\$datasvalue))/gi,argIndex:2,argKey:"formattedsValue"}],r=[],n=t.length;for(e=0;e<n;e+=1)r.push(e);return function(){var e,n,a,i,o,s=arguments[0],l=arguments[1];if(ye(l)||(l=r),s)for(o=l.length,i=0;i<o;i+=1)(a=t[l[i]])&&(e=Pe(Ve((n=arguments[a.argIndex])&&n[a.argKey],H)+H),s=(s=s.replace(a.regex,"$2$4"+(a.parsingMethod?a.parsingMethod(e):e))).replace(a.escapeRegex,"$2$4$5"));return s}}(),Ee=(g=function(e,t,r,n,a){var i,o=Math.abs(t-e),s=o/(r+1),l=n;return m(o,r,l)||(a&&(i=l>1?2:.5,Number(s)/Number(l)<i&&(l/=10)),o=(s=(Math.floor(s/l)+1)*l)*(r+1)),o},p=function(e){var t=Math.abs(e),r=String(t),n=0,a=r.indexOf(".");return-1!==a&&(n=r.length-a-1),n},m=function(e,t,r){return!(p(e/(t+1))>p(r))},function(e,t,r,n,a,i,o,s){var l,c,u,h,f,p,v,b,y,x,C,w,_,k,S,E,A,T,M,F,I,L,N,D,O,R,P,V=0,B=e,j=t,G=a,H=i,z=o;if((B=!0===isNaN(B)||B===d?.1:B)===(j=!0===isNaN(j)||j===d?0:j)&&0===B&&(B=.1),G=void 0===G||G,H=void 0===H||H,v=Math.floor(Math.log(Math.abs(B))/Math.LN10),b=Math.floor(Math.log(Math.abs(j))/Math.LN10),y=Math.max(b,v),x=Math.pow(10,y),Math.abs(B)/x<2&&Math.abs(j)/x<2&&(y--,x=Math.pow(10,y)),C=Math.floor(Math.log(B-j)/Math.LN10),w=Math.pow(10,C),B-j>0&&x/w>=10&&(x=w,y=C),_=(Math.floor(B/x)+1)*x,k=j<0?(Math.floor(Math.abs(j/x))+1)*x*-1:H?0:(k=Math.floor(Math.abs(j/x)-1)*x)<0?0:k,G&&B<=0&&(_=0),c=!(!n&&0!==n),u=!1==(l=!(!r&&0!==r))||!0===l&&Number(r)<B&&B-Number(r)>ae?_:Number(r),h=!1===c||!0===c&&Number(n)>j&&Number(n)-j>ae?k:Number(n),f=Math.abs(u-h),p=x,!1===c&&!1===l&&s)if(u>0&&h<0){for(E=!1,T=g(h,u,z,A=p>10?p/10:p,!1)-(z+1)*A;!1===E;)if(m(T+=(z+1)*A,z,A))if(S=T-f,M=T/(z+1),F=(I=Math.min(Math.abs(h),u))===Math.abs(h)?-1:1,0===z)E=!0;else for(N=1;N<=Math.floor((z+1)/2);N++)(L=M*N)-I>S||L>I&&(R=T-L)/M===Math.floor(R/M)&&L/M===Math.floor(L/M)&&(f=T,u=-1===F?R:L,h=-1===F?-L:-R,E=!0)}else S=(D=g(h,u,z,p,!0))-f,f=D,u>0?u+=S:h-=S;else s&&(P=function(e,t,r){for(var n,a=0,i=1;!m(t,n=0===(n=e+a*i)?1:n,r);){if((a=-1===i||a>e?++a:a)>25){n=0;break}i=a<=e?-1*i:1}return n},z>0&&(0===(O=P(z,f,p))&&(O=P(z,f+1,p),V=1),z=O));return{Max:u,Min:h,Range:f,interval:p,divGap:(u-h+V)/(z+1)}}),Ae={keyup:!0,blur:!0,click:!0,load:!0,dragstart:!0,dragmove:!0,dragend:!0,dblclick:!0,mousedown:!0,mousemove:!0,mouseout:!0,mouseover:!0,mouseup:!0,"fc-wheel":!0,"fc-click":!0,"fc-dragstart":!0,"fc-dragmove":!0,"fc-dragend":!0,"fc-dbclick":!0,"fc-mousedown":!0,"fc-mousemove":!0,"fc-mouseout":!0,"fc-mouseover":!0,"fc-mouseup":!0,"fc-pinchstart":ie||oe,"fc-pinchmove":ie||oe,"fc-pinchend":ie||oe,touchstart:ie||oe,touchmove:ie||oe,touchend:ie||oe,touchcancel:ie||oe},Te={stripWhitespace:/\s+/g,dropHash:Z,startsRGBA:Q,cleanColorCode:ee,breakPlaceholder:J,hexcode:/^#?[0-9a-f]{6}/i},Me={colors:{B90000:"B90000",FFFFFF:"FFFFFF",AAAAAA:"AAAAAA",c000000:"000000"},BLANK:"",DATASET:"dataset",NORMALSTRING:"normal",PX:"px",INPUT:"input",LABEL:"label",BLANKSPACE:" ",COMMA:",",OBJECTBOUNDINGBOX:"objectBoundingBox",GROUPID:"groupId",EVENTARGS:"eventArgs",CIRCLE:"circle",POLYGON:"polygon",SPOKE:"spoke",RECTANGLE:"rectangle",ROLLOUT:"rollout",ROLLOVER:"rollover",DATAPLOTCLICK:"dataplotclick",defaultFontStr:"Verdana,sans",line:"line",bar:"bar",column:"column",volume:"volume",HUNDREDSTRING:"100",SEVENTYSTRING:"70",NINETYSTRING:"90",AUTOSTRING:"auto",configStr:"config",animationObjStr:"animationObj",showHoverEffectStr:"showHoverEffect",hiddenStr:"hidden",visibleStr:"visible",columnStr:"columns",barStr:"bars",barHotStr:"bar-hot",colHotStr:"col-hot",shadowStr:"shadow",dataLabelStr:"datalabel",errorBarStr:"errorBar",errorHotStr:"error-hot",errorShadowStr:"error-shadow",negativeValueStr:"negative-values",positiveValueStr:"positive-values",zeroPlaneStr:"zero-plane",categoryPlotsStr:"categoryplots",noneStr:"none",setRolloverAttrStr:"setRolloverAttr",setRolloutAttrStr:"setRolloutAttr",elementStr:"element",hotElementStr:"hotElement",strokeWidthStr:"stroke-width",strokeDashStr:"stroke-dasharray",strokeLineJoinStr:"stroke-linejoin",miterStr:"miter",visiblilityStr:"visibility",ROUND:"round",PERCENTAGESTRING:"%",pStr:"p",sStr:"s",divLineAlpha3DStr:"divLineAlpha3D",divLineAlphaStr:"divLineAlpha",altVGridColorStr:"altVGridColor",altVGridAlphaStr:"altVGridAlpha",altHGridColorStr:"altHGridColor",altHGridAlphaStr:"altHGridAlpha",PLOTFILLCOLOR_STR:"plotFillColor",UNDERSCORE:"_",gaugeFillColorStr:"gaugeFillColor",gaugeBorderColorStr:"gaugeBorderColor",NORMAL:"normal",BOLD:"bold",POINTER:"pointer",DEFAULT:"default",POSITION_MIDDLE:"middle",POSITION_START:"start",POSITION_TOP:"top",POSITION_BOTTOM:"bottom",POSITION_END:"end"};function Fe(e){return null!=e}function Ie(e){var t={},r=e.getBoundingClientRect();return t.left=r.left+(window.pageXOffset||document.documentElement.scrollLeft),t.top=r.top+(window.pageYOffset||document.documentElement.scrollTop),t}function Le(e){for(var t,r,n=e,a=1,i=1;n&&"BODY"!==n.tagName;)(r=(r=(t=window.getComputedStyle(n).getPropertyValue("transform"))&&"none"!==t&&-1!==t.indexOf("(")&&t.substring(t.indexOf("(")+1))&&r.replace(/\)/,"").split(/\,/))&&"none"!==r[0]&&(a*=+r[0]||1,i*=D||N||T?+r[5]||1:+r[3]||1),n=n.parentNode;return{scaleX:a,scaleY:i}}function Ne(e){var t=e&&(e.sourceEvent||e.originalEvent||e);return ie&&t&&(t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0])||t||de}function De(e){var t,r,n,a=e.data,i=a.chart,o=i.getFromEnv("animationManager"),s=xe(Ne(e.originalEvent)),l=i.getChildren("canvas")[0],u=t=l.getGraphicalElement("resizeBox"),d=a.layerX=s.pageX-a.chartPosLeft,h=a.layerY=s.pageY-a.chartPosTop,f=d-a.ox,g=h-a.oy,p=a.bBox,m={scaleX:1,scaleY:1},v=a.ox,b=a.oy,y=a.zoomX,x=a.zoomY,C=a.canvasY,w=a.canvasX,_=a.canvasX2,k=a.canvasY2,S=a.strokeWidth,E=a.attr,A=i.config&&(0,c["default"])(i.config.applycsstransform,0);switch(A&&(v/=(m=Le(i.getFromEnv("chart-container"))).scaleX,b/=m.scaleY),e.state){case"start":r=Ie(this),a.chartPosLeft=r.left,a.chartPosTop=r.top,d=s.pageX-a.chartPosLeft,h=s.pageY-a.chartPosTop,a.oy=h,a.ox=d,a.allowMove=!1,E.x=0,E.y=0,E.height=0,E.width=0,u=l.addGraphicalElement("resizeBox",o.setAnimation({el:t||"rect",attr:E,container:i.getChildContainer("trackerGroup")})).show(),t||l.addGraphicalElement("resizeBox",u),A&&(d/=m.scaleX,h/=m.scaleY),d>w&&d<_&&h>C&&h<k&&(a.allowMove=!0),e.target._isTrackerElem&&(a.allowMove=!1);break;case"end":n={chart:i,selectionLeft:(p=u.getBBox()).x,selectionTop:p.y,selectionHeight:p.height,selectionWidth:p.width,originalEvent:e.originalEvent},a.isDragged&&(a.selectionEnd&&a.selectionEnd(n),a.isDragged=0),u.hide(),delete a.oy,delete a.ox;break;default:if(!a.allowMove)return;f=d-a.ox,g=h-a.oy,p=a.bBox,v=a.ox,b=a.oy,A&&(v/=m.scaleX,b/=m.scaleY),a.isDragged||(n={chart:i,selectionLeft:(y?ue(v,v+f):w)+.5*S,selectionTop:(x?ue(b,b+g):C)+.5*S,selectionHeight:0,selectionWidth:0,originalEvent:e.originalEvent},a.selectionStart&&a.selectionStart(n),a.isDragged=1),A&&(f/=m.scaleX,g/=m.scaleY),f=-(v-ue(v-(v-ce(v+f,w)),_)),g=-(b-ue(b-(b-ce(b+g,C)),k)),o.setAnimation({el:u,attr:{x:(y?ue(v,v+f):w)+.5*S,y:(x?ue(b,b+g):C)+.5*S,width:y?te(f):a.canvasW,height:x?te(g):a.canvasH}})}}function Oe(e){var t=e.data,r=e.originalEvent,n=r.target||r.originalTarget||r.srcElement||r.relatedTarget||r.fromElement,a=r.type,i=r.layerX,o=r.layerY;i===d&&(i=r.pageX-t.chartPosLeft,o=r.pageY-t.chartPosTop),"mousedown"===a&&(n.ishot=i>t.canvasX&&i<t.canvasX2&&o>t.canvasY&&o<t.canvasY2),"mouseup"===a&&setTimeout((function(){n.ishot=!1}),1)}function Re(){var e,t,r;for(t=0,r=arguments.length;t<r;t+=1)if((e=arguments[t])||!1===e||0===e)return e;return H}function Pe(e){return e&&e.replace(/\$/g,"$$$$")}function Ve(e,t){return e||!1===e||0===e?e:t}function Be(){var e,t,r;for(t=0,r=arguments.length;t<r;t+=1)if((e=arguments[t])||!1===e||0===e)return e;return d}function je(e,t){we(e.substr(0,e.indexOf("__FC_ARG_SEP__")).replace(/\s/g,H),e.substr(e.indexOf("__FC_ARG_SEP__")).replace(/__FC_ARG_SEP__/,""),t)}function Ge(e){/^j\s*\-/.test(e)?je(e.replace(/^j\s*\-/,H).replace(/\-/,"__FC_ARG_SEP__")):je(e.replace(/^javascript\s*\:/i,H).replace(/[\'\"]?\s*\,\s*[\'\"]?/g,"__FC_ARG_SEP__").replace(/\(\s*[\'\"]?(.*)\)\;?/,"__FC_ARG_SEP__$1").replace(/[\'\"]?$/,""),!0)}function He(e,t){var r=re(10,t);return ne(e*r)/r}function ze(e,t,r){return r||r===d?[e,t]:E}function Ue(e,t){return"object"!=typeof e?H:((e.fontSize||e["font-size"])&&(!e.fontSize&&e["font-size"]&&(e.fontSize=e["font-size"],delete e["font-size"]),e.lineHeight=(parseFloat(e.fontSize)||t||10)*u+"px",delete e["line-height"]),!e.lineHeight&&e["line-height"]&&(e.lineHeight=e["line-height"],delete e["line-height"]),e.lineHeight)}function Xe(e,t){return e-t}function We(e,t){return t-e}t.appliedCSS=["fontFamily","fontSize","fontWeight","fontStyle"],t.preDefStr=Me,t.regex=Te,t.chartAPI=void 0,t.getAxisLimits=Ee,t.parseTooltext=Se,t.gradientify=ke,t.toRaphaelColor=_e,t.getViewPortDimension=Ce,t.getEventCoordinate=xe,t.isArray=ye,t.createElement=function(e,t,r){var n,a=F.createElement(e);for(n in t)a.setAttribute(n,t[n]);return r&&r.appendChild&&r.appendChild(a),a},t.animHelperFN={getTimeByValue:function(e,t,r){var n=(e.end-e.start)/(t.endPx-t.startPx);return{start:e.start+n*(r.startPx-t.startPx),end:e.start+n*(r.endPx-t.startPx)}},animByWeight:function(e,t,r,n,a){var i=n||1,o=t,s=a||0;return{start:e/--o*r*i+s,end:e/o*r*i+r+s}}},t.rgbaToHex=function(e){var t=e.replace("rgba(",z).split(",");return"#"+("000000"+(t[0]<<16|t[1]<<8|t[2]).toString(16)).slice(-6)},t.polyPathToPath=function(e){var t,r,n,a,i,o=e[0],s=e[1],l=e[2],c=e[3],u=e[4],d=e[5];if(t=[],o=S.parseInt(o,10)||0,s=q(s)||0,l=q(l)||0,c=q(c)||0,u=null===u||isNaN(u)?.5*Math.PI:u%360*(Math.PI/180),d=null===d||isNaN(d)?0:q(d),a=u,o>2)switch(r=2*Math.PI/o,d){case 0:for(n=0;n<o;n++)t.push("L",s+c*Math.cos(-a),l+c*Math.sin(-a)),a+=r;t[0]="M",t.push("Z");break;case 1:for(n=0;n<o;n++)t.push("M",s,l,"L",s+c*Math.cos(-a),l+c*Math.sin(-a)),a+=r;break;default:for(r*=.5,i=c*Math.cos(r)*(1-d),n=0;n<o;n++)t.push("L",s+c*Math.cos(-a),l+c*Math.sin(-a)),a+=r,t.push("L",s+i*Math.cos(-a),l+i*Math.sin(-a)),a+=r;t[0]="M",t.push("Z")}else 0===c?t.push("M",s,l,"L",s,l,"Z"):t.push("M",s-c,l,"A",c,c,0,0,0,s+c,l,"A",c,c,0,0,0,s-c,l,"Z");return t},t.removeHtmlAttrs=function(e){return void 0===e&&(e={}),be.forEach((function(t){return delete e[t]})),e},t.crispBound=function(e,t,r,n,a,i,o){void 0===e&&(e=0),void 0===t&&(t=0),void 0===r&&(r=0),void 0===n&&(n=0),void 0===a&&(a=0),void 0===i&&(i={});var s=a;if(n<1||r<1)return{x:e,y:t,width:r,height:n,"stroke-width":s};(s>=r||s>=n)&&(s=Math.floor(Math.min(r,n)/2)||s);var l=e,c=t,u=e+r,d=s/2,h=s%2,f=t+n;return c=i.top?Math.round(c)+d-ve:h?Math.floor(c)+.5-ve:Math.round(c)-ve,f=i.bottom?Math.round(f)-d-ve:o&&i.top?Math.round(f)+d-ve:h?Math.floor(f)+.5-ve:Math.round(f)-ve,l=i.left?Math.round(l)+d-ve:o&&i.right?Math.round(l)-d-ve:h?Math.floor(l)+.5-ve:Math.round(l)-ve,u=i.right?Math.round(u)-d-ve:h?Math.floor(u)+.5-ve:Math.round(u)-ve,{x:l,y:c,width:Math.abs(u-l),height:Math.abs(f-c),"stroke-width":s}},t.supportedStyle={font:"font",fontFamily:"font-family","font-family":"font-family",fontWeight:"font-weight","font-weight":"font-weight",fontSize:"font-size","font-size":"font-size",lineHeight:"line-height","line-height":"line-height",textDecoration:"text-decoration","text-decoration":"text-decoration",color:"color",whiteSpace:"white-space","white-space":"white-space",padding:"padding",margin:"margin",background:"background",backgroundColor:"background-color","background-color":"background-color",backgroundImage:"background-image","background-image":"background-image",backgroundPosition:"background-position","background-position":"background-position",backgroundPositionLeft:"background-position-left","background-position-left":"background-position-left",backgroundPositionTop:"background-position-top","background-position-top":"background-position-top",backgroundRepeat:"background-repeat","background-repeat":"background-repeat",border:"border",borderColor:"border-color","border-color":"border-color",borderStyle:"border-style","border-style":"border-style",borderThickness:"border-thickness","border-thickness":"border-thickness",borderTop:"border-top","border-top":"border-top",borderTopColor:"border-top-color","border-top-color":"border-top-color",borderTopStyle:"border-top-style","border-top-style":"border-top-style",borderTopThickness:"border-top-thickness","border-top-thickness":"border-top-thickness",borderRight:"border-right","border-right":"border-right",borderRightColor:"border-right-color","border-right-color":"border-right-color",borderRightStyle:"border-right-style","border-right-style":"border-right-style",borderRightThickness:"border-right-thickness","border-right-thickness":"border-right-thickness",borderBottom:"border-bottom","border-bottom":"border-bottom",borderBottomColor:"border-bottom-color","border-bottom-color":"border-bottom-color",borderBottomStyle:"border-bottom-style","border-bottom-style":"border-bottom-style",borderBottomThickness:"border-bottom-thickness","border-bottom-thickness":"border-bottom-thickness",borderLeft:"border-left","border-left":"border-left",borderLeftColor:"border-left-color","border-left-color":"border-left-color",borderLeftStyle:"border-left-style","border-left-Style":"border-left-style",borderLeftThickness:"border-left-thickness","border-left-thickness":"border-left-thickness"},t.chartPaletteStr=me,t.normalizeAngle=function(e,t){var r=t?360:pe,n=(e||0)%r;return n<0?r+n:n},t.MathExt=ge,t.xssEncode=function(e){var t=e;return null==t||"function"!=typeof t.toString?"":t=t.toString().replace(/&/g,"&").replace(/\'/g,"'").replace(/\"/g,""").replace(/</g,"<").replace(/>/g,">")},t.isXSSSafe=function(e,t){return(!t||null===V.exec(e))&&null===P.exec(e)},t.domInsertModes={REPLACE:"replace",APPEND:"append",PREPEND:"prepend"},t.defaultGaugePaletteOptions=fe,t.txtLabel=se,t.hasTouch=oe,t.touchEnabled=ie,t.mathRound=ne,t.mathAbs=te,t.validhexcolor=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i,t.cleanColorCode=ee,t.startsRGBA=Q,t.dropHash=Z,t.TXT_REGEX=K,t.visibleStr="visible",t.hiddenStr="hidden",t.animationObjStr="animationObj",t.configStr="config",t.lineHeightFactor=1.2,t.CLICK_THRESHOLD_PIXELS=5,t.TOUCH_THRESHOLD_PIXELS=15,t.canvasBorderColorStr="canvasBorderColor",t.TXT_STRING=Y,t.TXT_HREF=$,t.FIT="fit",t.FILL="fill",t.TILE="tile",t.HAND="pointer",t.POINTER="pointer",t.BOLD="bold",t.NORMAL="normal",t.UNDERSCORE="_",t.ROUND="round",t.canvasBGAlphaStr="canvasBgAlpha",t.TEXTANCHOR="text-anchor",t.COMMASPACE=", ",t.PXSTRING=W,t.VISIBLE="visible",t.INITIALSTR="initial",t.FINALSTR="final",t.HUNDREDSTRING="100",t.SHAPE_RECT="rect",t.FC_CONFIG_STRING="_FCconf",t.POSITION_END="end",t.POSITION_START="start",t.MIDDLESTR=t.POSITION_MIDDLE="middle",t.POSITION_BOTTOM="bottom",t.POSITION_TOP="top",t.STRINGUNDEFINED="undefined",t.DECIMALSTRING=".",t.ONESTRING="1",t.TESTSTR="Ag",t.MOUSEMOVE="fc-mousemove",t.MOUSEOUT="fc-mouseout",t.ZEROSTRING="0",t.COMMA=U,t.COMMASTRING=",",t.BLANKSTRING=z,t.BLANK=H,t.OBJECTSTRING="object",t.STRINGSTRING="string",t.BREAKSTRING=G,t.HASHSTRING="#",t.COLOR_TRANSPARENT="rgba(0,0,0,0)",t.COLOR_WHITE=j,t.COLOR_GLASS="rgba(255, 255, 255, 0.3)",t.COLOR_BLACK="000000",t.SAMPLESTRING="Ay0",t.BLANKSTRINGPLACEHOLDER="#BLANK#",t.UNDEF=d,t.POSITION_CENTER="center",t.POSITION_LEFT="left",t.POSITION_RIGHT="right",t.TRACKER_FILL=B,t.attrTypeBool=2,t.attrTypeNum=1,t.DEFAULT_FT_FONT="Helvetica, Arial, sans-serif",t.isIpad=R,t.isEdge=O,t.isIE=D,t.isIE11=N,t.hasSVG=L,t.isFirefox=M,t.isIE9=T,t.getEmptyConstractor=function(){return A},t.stubFN=A,t.DASH_DEF=E,t.BGRATIOSTRING=void 0;t.isSimilarObject=function(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;var r;for(r in e)if(e[r]!==t[r])return!1;return!0},t.snapPoint=function(e,t,r){for(var n=t.length,a=r.lastSnap,i=1,o=n,s=r.config.setValue;o--;)if(te(t[o]-s)<e.snapPixel){a!==o&&(r.lastSnap=e.datasetConf.snapToDivOnly?d:o,s=t[o]),i=0;break}return i&&(r.lastSnap=d),s},t.datasetFactory=function(e,t,r,n,a,i){if(void 0===n&&(n=1),void 0===i&&(i=[]),e&&t&&r){var o,s,l,c=e.getChildren(r)||[];for(o=0;o<n;o+=1)c&&c[o]&&!c[o].getState("removed")?l=c[o]:(l=new t,e.attachChild(l,r)),l.config._childIndex=o,l.setState("_total",n),l.setJSONIndex&&l.setJSONIndex(i[o]||o),a&&a.length>o&&l.configure&&l.configure(a[o]);if(o<(s=c&&c.length))for(;o<s;o+=1)c[o]&&c[o].remove&&c[o].remove()}},t.componentFactory=function(e,t,r,n,a){if(void 0===n&&(n=1),e&&t&&r){var i,o,s,l=e.getChildren(r)||[];for(i=0;i<n;i+=1)l&&l[i]&&!l[i].getState("removed")?s=l[i]:(s=new t,e.attachChild(s,r)),a&&a.length>i&&s.configure&&s.configure(a[i]);if(i<(o=l&&l.length))for(;i<o;i+=1)l[i]&&l[i].remove&&l[i].remove()}}},function(e,t,r){"use strict";t.__esModule=!0,t.parseConfiguration=function(e,r,l,c,u,d){var h,f,g,p=1,m=c,v=d,b=u;for(h in t.attribDefs=a=a||s,m=m||s,v=v||s,b=b||{},e)if(!m[h]&&((f=e[h])||!1===f||0===f))switch((g=v[h]||a[h])&&g.type){case i:f=Number(f),isNaN(f)||(r[h]=f);break;case o:f=Number(f),isNaN(f)||(r[h]=!!f);break;default:r[h]=f}if(l)for(h in r)r[h]===n&&(g=v[h]||a[h])&&g.pAttr&&(r[h]=l[g.pAttr]);for(;p;)for(h in p=0,r)r[h]===n&&(g=v[h]||a[h])&&(g.attr?(f=r[g.attr])!==n&&(r[h]=f,p+=1):g.parser&&(f=g.parser(r,l,b))!==n&&(r[h]=f,p+=1))},t.setAttribDefs=function(e,r){var n,i;t.attribDefs=a=a||{},"string"==typeof e?(n={})[e]=r:n=e;for(i in n)a[i]||(a[i]=n[i])},t.hasAttribDefs=function(e){return!!a[e]},t.attribDefs=void 0;var n,a,i=1,o=2,s={},l=Math.max;t.attribDefs=a,t.attribDefs=a={setBorderWidth:{type:i,pAttr:"plotborderthickness"},plotborderthickness:{type:i,pAttr:"plotborderthickness"},showBorderEffect:{parser:function(){var e=arguments[1],t=.1;return 1==+e.showplotborder&&e.plotborderthickness===t?1:0}},alphaanimation:{type:i},showplotborder:{type:i,pAttr:"showplotborder"},zeroplanethickness:{type:i},showzeroplaneontop:{type:i},stickytracking:{type:i},usemessagelog:{type:i},showtooltip:{type:i,pAttr:"showtooltip"},seriesnameintooltip:{type:i},plothovereffect:{type:i,attr:"anchorhovereffect"},anchorhovereffect:{type:i,attr:"showhovereffect"},showhovereffect:{type:i},linethickness:{type:i,pAttr:"linethickness"},dashed:{type:i,pAttr:"linedashed"},linedashed:{type:i,attr:"plotborderdashed"},plotborderdashed:{type:i,pAttr:"plotborderdashed"},linedashlen:{type:i,pAttr:"linedashlen"},linedashgap:{type:i,pAttr:"linedashgap"},anchoralpha:{pAttr:"anchoralpha"},anchorsides:{type:i,pAttr:"anchorsides"},anchorradius:{type:i,pAttr:"anchorradius"},anchorbgalpha:{pAttr:"anchorbgalpha"},anchorbgcolor:{pAttr:"anchorbgcolor"},anchorbordercolor:{pAttr:"anchorbordercolor"},anchorstartangle:{type:i,pAttr:"anchorstartangle"},anchorimageurl:{pAttr:"anchorimageurl"},anchorimagescale:{type:i,pAttr:"anchorimagescale"},anchorimagealpha:{pAttr:"anchorimagealpha"},anchorimagepadding:{type:i,pAttr:"anchorimagepadding"},anchorborderthickness:{type:i,pAttr:"anchorborderthickness"},anchorshadow:{type:i,pAttr:"anchorshadow"},valuepadding:{type:i,pAttr:"valuepadding"},valueposition:{pAttr:"valueposition"},plotfillangle:{type:i,pAttr:"plotfillangle"},useplotgradientcolor:{type:i},rotatevalues:{type:i,pAttr:"rotatevalues"},includeinlegend:{type:i},connectnulldata:{type:i},plotfillalpha:{pAttr:"plotfillalpha"},alpha:{pAttr:"linealpha"},linealpha:{pAttr:"plotfillalpha"},showvalues:{type:i,pAttr:"showvalues"},showpercentvalues:{type:i,parser:function(e){return e.isstacked&&e.stack100percent?1:0}},showpercentintooltip:{type:i,parser:function(e){return e.isstacked&&e.stack100percent?1:0}},stack100percent:{type:i,attr:"usepercentdistribution"},drawfullareaborder:{type:i},use3dlineshift:{type:i},parentyaxis:{type:i},radarborderthickness:{type:i},radarborderradius:{type:i},gaugeoriginx:{type:i},hasgaugeoriginx:{attr:"gaugeoriginx"},gaugeoriginy:{type:i},hasgaugeoriginy:{attr:"gaugeoriginy"},gaugeradius:{type:i},hasgaugeradius:{attr:"gaugeradius"},showgaugeborder:{type:i},setAdaptiveMin:{type:i},adjustDiv:{type:i},axisNameWidth:{type:i},rotateAxisName:{type:i},useEllipsesWhenOverflow:{type:i},showZeroPlane:{type:i},zeroPlaneAlpha:{type:i},showZeroPlaneValue:{type:i},zeroPlaneOnTop:{type:i},trendlineThickness:{type:i},showTrendlinesOnTop:{type:i},trendlinesAreDashed:{type:i},trendlinesDashLen:{type:i},trendlinesDashGap:{type:i},showTrendlines:{type:i},showTrendlineLabels:{type:i},showLabels:{type:i},rotateLabels:{type:i},slantLabel:{type:i},showAxisValues:{type:i},showTooltip:{type:i},maxLabelHeight:{type:i},useroundedges:{type:i,pAttr:"useroundedges"},placevaluesinside:{type:i},plotpaddingpercent:{type:i},use3dlighting:{type:i,pAttr:"use3dlighting"},usedataplotcolorforlabels:{type:i},plotspacepercent:{type:i,parser:function(e){return l(e.plotspacepercent%100,0)}},ratio:{pAttr:"plotfillratio"},base:{type:i},showMinorDivLineValues:{type:i},numMinorDivLines:{type:i},majorTMNumber:{type:i},majorTMHeight:{type:i},showTickMarks:{type:i},majorTMThickness:{type:i},adjustTM:{type:o},minorTMNumber:{type:i},minorTMThickness:{type:i},tickMarkDistance:{type:i},placeTicksInside:{type:i},placeValuesInside:{type:i},axisValuePadding:{type:i},gridLineWidth:{type:i},showRadarBorder:{type:i},radarBorderThickness:{type:i},maxcolwidth:{type:i,parser:function(e){return Math.abs(e.maxcolwidth)}},maxbarheight:{type:i,parser:function(e){return Math.abs(e.maxbarheight)}},plotborderalpha:{parser:function(e,t){return t.plotborderalpha||e.plotfillalpha}},autoscale:{type:i},plotborderdashlen:{type:i,pAttr:"plotborderdashlen"},plotborderdashgap:{type:i,pAttr:"plotborderdashgap"},plotfillratio:{pAttr:"plotfillratio"},drawverticaljoins:{type:i,pAttr:"drawverticaljoins"},useforwardsteps:{type:i,pAttr:"useforwardsteps"},minimizetendency:{type:i},usepercentdistribution:{type:i},stepatmiddle:{type:i}}},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a,i,o,s=n(r(187)),l=" ",c="start",u="end",d="on",h=window,f=h.document,g="ontouchstart"in h,p="click",m="touchstart",v="touchend",b="touchmove",y="mouseout",x="mouseover",C="keydown",w=((o={}).pointerdrag={start:["mousedown"],end:["mouseup"],onStart:["mousemove"],postHandlers:{},preHandlers:{}},o.pointerhover={start:[x],end:[y]},o.click={start:[p]},o.escape={start:[C],preHandlers:{start:function(e){var t=e||h.event;return!(!t.keyCode||27!==t.keyCode)}}},g&&((i=o.pointerdrag).start.push(m),i.end.push(v),i.onStart.push(b),i.postHandlers.onStart=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1}),o);a=(0,s["default"])({},w);var _=new function(){var e={},t={},r=f.addEventListener?function(e,t,r){e.addEventListener(t,r,!1)}:function(e,t,r){e.attachEvent("on"+t,r)},n=f.removeEventListener?function(e,t,r){e.removeEventListener(t,r,!1)}:function(e,t,r){e.detachEvent("on"+t,r)},i=function(e,t,a,i){var o=i||"closure";return r(e,t,a[o]),function(){n(e,t,a[o])}},o=function(e,t,r){var n,o,s,l,f=[];if(l=a[t],r.start=function(t){for(var n=l.onStart,a=l.end,o=[],s=[],u=n&&n.length||0,d=t||h.event;u--;)o.push(i(e,n[u],r,"onStart"));for(u=a&&a.length||0;u--;)s.push(i(e,a[u],r,"end"));r.startUn=r.startUn?r.startUn.concat(o):o,r.endUn=r.endUn?r.endUn.concat(s):s,r.state=c,r.closure(d)},r.onStart=function(e){var t=e||h.event;r.state=d,r.gDef&&r.gDef.preHandlers&&"function"==typeof r.gDef.preHandlers.onStart&&r.gDef.preHandlers.onStart(t),r.closure(t),r.gDef&&r.gDef.postHandlers&&"function"==typeof r.gDef.postHandlers.onStart&&r.gDef.postHandlers.onStart(t)},r.end=function(e){for(var t=r.startUn,n=r.endUn,a=t&&t.length||0,i=e||h.event;a--;)t[a]();for(delete r.startUn,r.startUn=[],a=n&&n.length||0;a--;)n[a]();delete r.endUn,r.endUn=[],r.state=u,r.closure(i)},l)for(s=(n=l.start).length;s--;)(o=n[s])&&f.push(i(e,o,r,"start"));return f},g=function(e,t,r){var i,o,s,l;if(l=a[t])for(s=(i=l.start).length;s--;)(o=i[s])&&n(e,o,r.start)},p=function(e){return function(t){var r=e.context||e.elem,n=t.originalEvent||t;n=n||h.event,e.handler.call(r,{data:e.data,type:e.type,state:e.state,isGesture:e.isGesture,target:n.target||n.srcElement,originalEvent:n})}};return{listen:function(r,n,s,c,u){var d,h,g,m,v,b=this,y="string"==typeof n?n.split(l):n,x=y.length,C=[],w=function(e,t,r){C.push((function(){b.unlisten(e,t,r)}))};if(r.ownerDocument&&r.ownerDocument===f)for(;x--;)h=y[x],m=Boolean(a[h]),(g={handler:v="function"==typeof s?s:s[x],elem:r,type:h,isGesture:m,gDef:m?a[h]:null,data:c,context:u,start:[],end:[],links:{prev:null,next:null}}).closure=p(g),m?((d=t[h])||(d=t[h]=[]),d.push(g),o(r,h,g)):((d=e[h])||(d=e[h]=[]),d.push(g),i(r,h,g)),w(r,h,v);else for(;x--;)h=y[x],(g={handler:v="function"==typeof s?s:s[x],elem:r,type:h,isGesture:m,data:c,context:u,start:[],end:[],links:{prev:null,next:null}}).closure=p(g),(d=e[h])||(d=e[h]=[]),d.push(g),i(r,h,g),w(r,h,v);return{unlisten:function(){for(var e=C.length;e--;)C[e]();C.length=0,C=null}}},unlisten:function(r,i,o){var s,l,c,u=!1;if(Boolean(a[i]))for(l=(s=t[i])&&s.length||0;l--;)(c=s[l]).handler===o&&c.elem===r&&(g(r,i,c),s.splice(l,1),u=!0);else for(l=(s=e[i])&&s.length||0;l--;)(c=s[l]).handler===o&&c.elem===r&&(n(r,i,c.closure),s.splice(l,1),u=!0);return u},fire:function(t,r,n,a){var i,o,l,c;if(t.ownerDocument&&t.ownerDocument===f)f.createEvent?((c=f.createEvent("HTMLEvents")).initEvent(r,!0,!0),n&&n.originalEvent&&(n.originalEvent=c),"function"==typeof t[r]&&t[r](),t.dispatchEvent(c),a&&!c.returnValue&&a(c)):((c=f.createEventObject()).eventType=r,n&&(n.originalEvent?n.originalEvent=c:(0,s["default"])(c,n)),"function"==typeof t[r]&&t[r](),t.fireEvent("on"+r,c),a&&!c.returnValue&&a(c));else for(o=(i=e[r])&&i.length||0;o--;)(l=i[o]).elem===t&&l.closure(n)}}};t["default"]=_},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=function(e,t,r,n){var a;if(typeof e!==o&&typeof t!==o)return null;if(typeof t!==o||null===t)return e;void 0===e&&(e=t instanceof Array?[]:{});if(n)for(a in t)e[a]=t[a];else c(e,t,r);return e},t.cacher=t.showRecursively=t.loadRefImage=t.dashedAttr2CSSMap=t.getArrayCopy=t.merge=void 0;var n="__blank",a="␀",i="",o="object",s=function(e,t){for(var r=t.length,n=-1;r--;)if(e===t[r])return n=r;return n},l=function(e){var t,r,n;for(t=0,r=e.length,n=new Array(r);t<r;t++)n[t]=e[t];return n},c=function u(e,t,r,n,a){var i,l,c,d,h;if(a?(n.push(e),a.push(t)):(n=[e],a=[t]),t instanceof Array)for(i=0;i<t.length;i+=1){try{l=e[i],c=t[i]}catch(f){continue}typeof c!==o?r&&void 0===c||(e[i]=c):(null!==l&&typeof l===o||(l=e[i]=c instanceof Array?[]:{}),-1!==(h=s(c,a))?l=e[i]=n[h]:u(l,c,r,n,a))}else for(i in t){try{l=e[i],c=t[i]}catch(f){continue}null!==c&&typeof c===o?"[object Object]"===(d=Object.prototype.toString.call(c))?(null!==l&&typeof l===o||(l=e[i]={}),-1!==(h=s(c,a))?l=e[i]=n[h]:u(l,c,r,n,a)):"[object Array]"===d?(null!==l&&l instanceof Array||(l=e[i]=[]),-1!==(h=s(c,a))?l=e[i]=n[h]:u(l,c,r,n,a)):e[i]=c:e[i]=c}return e};t.merge=c,t.getArrayCopy=l,t.showRecursively=function(e){for(var t={},r=e,n=t;r;)r.node&&r.node.style&&"none"===r.node.style.display&&(r.show(),n._doHide=!0),r=r.parent,n.parent={},n=n.parent;return function(){for(var r=e,n=t;r;)n._doHide&&r.hide(),r=r.parent,n=n.parent}},t.loadRefImage=function(e,t){var r=t.src,n=e._.RefImg;n||(n=e._.RefImg=new Image),t.src!==undefined&&(n.src=r,e._.RefImg=n)},t.dashedAttr2CSSMap={"font-family":"fontFamily","font-size":"fontSize","text-anchor":"textAnchor","font-weight":"fontWeight","letter-spacing":"letterSpacing","font-style":"fontStyle"};t.cacher=function(e,t,r,o,s,c,u){var d=c||{},h=0;return d.__start===undefined&&(d.__start=null),d.__end===undefined&&(d.__end=null),s=s||1e3,o=o||"item",function(c){var f,g,p,m=u?c:l(arguments).join(a);return(f=d[m=m===i?n:m])?f.__prev&&(d[f.__prev].__next=f.__next,f.__next?f.__next.__prev=f.__prev:d.__end=f.__prev):(f=d[m]={},e&&(d[m][o]=r?r(e.apply(t,arguments)):e.apply(t,arguments)),null===d.__end&&(d.__end=m),++h>s&&d.__end&&(g=d[d.__end],d[g.__prev].__next=null,delete d[d.__end],d.__end=g.__prev,h--)),(p=d.__start)!==f&&(f.__prev=null,f.__next=p,p&&(p.__prev=m),d.__start=f),d[m][o]}}},function(e,t,r){"use strict";t.__esModule=!0,t.convertColor=function(e,t,r){var n,a,i=0,o=0,l=0,c=t;r&&r.match(f)&&(a=r.split(h),i=a[0].slice(a[0].indexOf("(")+1),o=a[1],l=a[2],c||0===c||(c=parseInt(100*a[3].slice(0,a[3].indexOf(")")),10)));if(e)if(e.match(f))a=e.split(h),i=a[0].slice(a[0].indexOf("(")+1),o=a[1],l=a[2];else{switch((n=e.replace(g,p).split(h)[0]).length){case 3:n=n.charAt(0)+n.charAt(0)+n.charAt(1)+n.charAt(1)+n.charAt(2)+n.charAt(2);break;case 6:break;default:n=(n+s).slice(0,6)}i=parseInt(n.slice(0,2),16)||0,o=parseInt(n.slice(2,4),16)||0,l=parseInt(n.slice(4,6),16)||0}c||0===c||(c=100);"string"==typeof c&&(c=c.split(h)[0]);return c=parseInt(c,10)/100,"rgba("+i+h+o+h+l+h+c+")"},t.getDarkColor=C,t.getLightColor=w,t.mapSymbolName=function(e,t){var r=i.circle,n=e;(n=v(n))>=3&&(r=(t?i.spoke:i.poly)+n);return r},t.getColumnColor=function(e,t,r,a,i,o,s,l,c){var u,d,f,g,m,v,b,y=e,_=t;d=y.split(h),f=_.split(h),g=o.split(h),b=s.split(h),y=y.replace(/\s/g,p).replace(/\,$/,p),c?u={FCcolor:{color:d[0],alpha:f[0]}}:i?(m=d[0],v=f[0],u={FCcolor:{color:C(m,75)+h+w(m,10)+h+C(m,90)+h+w(m,55)+h+C(m,80),alpha:v+h+v+h+v+h+v+h+v,ratio:"0,11,14,57,18",angle:l?"90":"0"}},g=[C(m,70)]):(_=function(e,t,r){var a,i=e.split(h),o=r;o!==n&&(o=Number(o.split(h)[0]));for(o=isNaN(o)?n:o,i[0]=x(i[0],o),a=1;a<t;a+=1)i[a]=i[0]*x(i[a],o)/100;return i.join(h)}(_,d.length),u={FCcolor:{color:y,alpha:_,ratio:r,angle:l?-a:a}});return[u,{FCcolor:{color:g[0],alpha:b[0]}}]},t.getPointColor=function(e,t){var r=b(e),n=y(t);return{FCcolor:{gradientUnits:"objectBoundingBox",cx:.4,cy:.4,r:"100%",color:w(r,70)+h+C(r,50),alpha:n+h+n,ratio:a,radialGradient:!0}}},t.getAngle=function(e,t,r){var n=180*Math.atan(t/e)/Math.PI;2===r?n=180-n:3===r?n+=180:4===r&&(n=360-n);return n},t.parseColor=_,t.getValidColor=function(e){return d.test(_(e))&&e},t.RGBtoHex=function(e){return(o+(e[0]<<16|e[1]<<8|e[2]).toString(16)).slice(-6)},t.rawRGBtoHEX=function(e){var t;return t=e.match(/[\d+]+/g).splice(0,3),(o+(t[0]<<16|t[1]<<8|t[2]).toString(16)).slice(-6)},t.HEXtoRGB=function(e){var t=parseInt(e,16),r=Math.floor(t/65536),n=Math.floor((t-65536*r)/256),a=Math.floor(t-65536*r-256*n);return[r,n,a]},t.parsePointValue=v,t.getFirstColor=b,t.getFirstAlpha=y;var n,a,i={circle:"circle",triangle:"triangle",square:"square",diamond:"diamond",poly:"poly_",spoke:"spoke_"},o="000000",s="FFFFFF",l=Math.abs,c=/\s+/g,u=/^#?/,d=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i,h=",",f=/^rgba/i,g=/[#\s]/gi,p="",m="#";function v(e,t){var r=e;return r=r||!1===r||0===r?Number(r):NaN,isNaN(r)?null:t?l(r):r}function b(e,t){var r=e;return(r=(r=r.split(h)[t||0]).replace(c,p))===p&&(r=o),r.replace(u,m)}function y(e){var t=e;return t=parseInt(t,10),(isNaN(t)||t>100||t<0)&&(t=100),t}function x(e,t){var r=e;return r=Number(r),r=isNaN(r)?100:r,t!==n&&(r=r*t/100),r%101}function C(e,t){var r=e,n=t;n=n<0||n>100?100:n,n/=100,r=r.replace(g,p);var a=parseInt(r,16),i=Math.floor(a/65536),s=Math.floor((a-65536*i)/256);return(o+(i*n<<16|s*n<<8|(a-65536*i-256*s)*n).toString(16)).slice(-6)}function w(e,t){var r=e,n=t;n=n<0||n>100?100:n,n/=100,r=r.replace(g,p);var a=parseInt(r,16),i=Math.floor(a/65536),s=Math.floor((a-65536*i)/256);return(o+(256-(256-i)*n<<16|256-(256-s)*n<<8|256-(256-(a-65536*i-256*s))*n).toString(16)).slice(-6)}function _(e){return e.replace(g,p).replace(u,m)}},function(e,t,r){"use strict";function n(e,t,r,n,a,i,o){var s={};switch(t){case"top":s.y=e;break;case"bottom":s.y=o-a-e;break;case"middle":s.y=(o-a)/2}switch(r){case"left":s.x=e;break;case"right":s.x=i-n-e;break;case"middle":s.x=(i-n)/2}return s}t.__esModule=!0,t.getAlignImage=function(e,t,r,a,i,o,s,l,c,u){var d,h,f,g,p={};switch(r){case"center":p.width=a,p.height=i,p.y=s/2-i/2,p.x=o/2-a/2;break;case"stretch":p.width=o-2*l,p.height=s-2*l,p.y=l,p.x=l;break;case"tile":p.width=a,p.height=i,p.tileInfo={},p.tileInfo.xCount=h=Math.ceil(c/a),p.tileInfo.yCount=f=Math.ceil(u/i),g=n(l,e,t,a*h,i*f,o,s),p.y=g.y,p.x=g.x;break;case"fit":d=a/i>c/u?c/a:u/i,p.width=a*d,p.height=i*d,g=n(l,e,t,p.width,p.height,o,s),p.y=g.y,p.x=g.x;break;case"fill":d=a/i>c/u?u/i:c/a,p.width=a*d,p.height=i*d,g=n(l,e,t,p.width,p.height,o,s),p.y=g.y,p.x=g.x;break;default:g=n(l,e,t,a,i,o,s),p.width=a,p.height=i,p.y=g.y,p.x=g.x}return p}},function(e,t,r){"use strict";var n;t.__esModule=!0,t["default"]=function(){var e,t,r;for(t=0,r=arguments.length;t<r;t+=1)if(((e=arguments[t])||!1===e||0===e)&&!isNaN(e=Number(e)))return e;return n}},function(e,t,r){"use strict";t.__esModule=!0,t.setRootSender=t.raiseEventGroup=t.raiseError=t.raiseWarning=t.disposeEvents=t.getListeners=t.triggerEvent=t.removeListener=t.addListener=void 0;var n={},a={},i=function(e,t,r,n){try{e[0].call(t,r,n||{})}catch(a){setTimeout((function(){throw a}),0)}},o=function(e,t,r){var n,o=0;if(e instanceof Array&&!t.cancelled)for(;o<e.length;o+=1)if(!0!==e[o].removed){if(e[o][1]!==t.sender&&void 0!==e[o][1]||(n=e[o][1]===t.sender?t.sender:a,i(e[o],n,t,r),!0===t.detached&&(e.splice(o,1),o-=1,t.detached=!1)),!0===t.cancelled)break}else e.splice(o,1),o-=1},s=function(){this.originalEvent&&this.originalEvent.stopPropagation&&this.originalEvent.stopPropagation.call&&this.originalEvent.stopPropagation()},l=function(){this.cancelled=!0,this.originalEvent&&this.originalEvent.stopImmediatePropagation&&this.originalEvent.stopImmediatePropagation.call?this.originalEvent.stopImmediatePropagation():this.originalEvent&&this.originalEvent.stopPropagation&&this.originalEvent.stopPropagation.call&&this.originalEvent.stopPropagation()},c=function(){return!1==(this.detached=!0)},u=function(){this.defaultPrevented=!0,this.originalEvent&&this.originalEvent.preventDefault&&this.originalEvent.preventDefault.call&&this.originalEvent.preventDefault()},d={},h=0,f=function(e,t,r,n,a,i){if(!t||!t.disposed){var f,p,m,v,b,y=e;return y=y.toLowerCase(),p=g(y,t),m=g("*",t),v=d[y],b=d["*"],(p&&p.length||m&&m.length||v&&v.length||b&&b.length)&&(f={type:y,eventType:y,eventId:h+=1,sender:t||new Error("Orphan Event"),stopPropagation:s,stopImmediatePropagation:l,cancelled:!1,preventDefault:u,defaultPrevented:!1,originalEvent:n,detached:!1,data:r,detachHandler:c},o(b,f,r),o(v,f,r),t&&(o(g("*",t),f,r),o(g(y,t),f,r))),f&&f.defaultPrevented?i&&"function"==typeof i&&i.call(t,f,r||{}):a&&"function"==typeof a&&a.call(t,f,r||{}),!0}},g=function(e,t){var r=e;if("string"==typeof r)return r=r.toLowerCase(),t?t._evtListeners&&t._evtListeners[r]:d[r];v(t,"03091559","param","::removeListener",new Error("Unspecified Event Type"))},p={type:"TypeException",range:"ValueRangeException",impl:"NotImplementedException",param:"ParameterException",run:"RuntimeException",comp:"DesignTimeError",undefined:"UnspecifiedException"},m=function(e,t,r,n,a,i){var o="#"+t+" "+(e?e.id:"unknown-source")+n+" "+i+" >> ";a instanceof Error?(a.name=p[r],a.module="FusionCharts"+n,a.level=i,a.message=o+a.message,o=a.message,setTimeout((function(){throw a}),0)):o+=a,f(i,e,{id:t,nature:p[r],source:"FusionCharts"+n,message:o})},v=function(e,t,r,n,a){m(e,t,r,n,a,"Error")};t.setRootSender=function(e){void 0===e&&(e={}),a=e},t.raiseEventGroup=function(e,t,r,a,i,o,s){var l=a.id,c=e+l;n[c]?(clearTimeout(n[c]),delete n[c]):l&&c?n[c]=setTimeout((function(){f(t,a,r,i,o,s),delete n[c]}),0):f(t,a,r,i,o,s)},t.raiseWarning=function(e,t,r,n,a){m(e,t,r,n,a,"Warning")},t.raiseError=v,t.disposeEvents=function(e){var t,r=e?e._evtListeners:d;for(t in r)r[t].length&&(r[t].length=0)},t.getListeners=g,t.triggerEvent=f,t.removeListener=function b(e,t,r){var n,a;if("function"==typeof t){if(e instanceof Array)for(a=0;a<e.length;a+=1)b(e[a],t,r);else if((n=g(e,r))instanceof Array&&n.length)for(a=n.length-1;a>=0;a-=1)n[a][0]===t&&n[a][1]===r&&(n[a].removed=!0)}else v(r,"03091560","param","::removeListener",new Error("Invalid Event Listener"))},t.addListener=function y(e,t,r,n){var a,i,o,s=e;if(s instanceof Array){for(a=[],i=0;i<s.length;i+=1)a.push(y(s[i],t,r));return a}if("string"==typeof s){if("function"==typeof t)return s=s.toLowerCase(),r?(r._evtListeners||(r._evtListeners={}),r._evtListeners[s]instanceof Array||(r._evtListeners[s]=[]),o=r._evtListeners[s]):(d[s]instanceof Array||(d[s]=[]),o=d[s]),!function(e,t,r){var n,a=e.length;for(n=0;n<a;n+=1)if(e[n][0]===t&&e[n][1]===r&&!e[n].removed)return!0}(o,t,r)&&(n&&n.priority?o.unshift([t,r]):o.push([t,r]),t);v(r,"03091550","param","::addListener",new Error("Invalid Event Listener"))}else v(r,"03091549","param","::addListener",new Error("Unspecified Event Type"))}},function(e,t,r){"use strict";t.__esModule=!0,t.addDep=function(){for(var e=this,t=arguments.length,r=new Array(t),o=0;o<t;o++)r[o]=arguments[o];if(!r.length)return void(0,n.raiseError)({id:"Extension"},"90211","dependency","Extension",new Error("A FusionCharts extension must have a valid extension property."));r.forEach((function(t){var r,o,s,l,c,u;t?(o=t.extension?t.extension:t,r=function(e){void 0===e&&(e={});var t=e.getName&&e.getName()||e.name;void 0===t&&(0,n.raiseError)({id:"Extension"},"90211","extension","Name",new Error("A FusionCharts extension must have a getName API or a name property."));return t&&t.toLowerCase()}(t),s=function(e){void 0===e&&(e={});var t=e.getType&&e.getType()||e.type;return t&&t.toLowerCase()}(t),c=t.requiresFusionCharts,s?(!a[s]&&("string"==typeof(u=s)&&(a[u]={})),(l=a[s][r]!==o)&&(a[s][r]=o)):r&&(l=i[r]!==o)&&(i[r]=o),l&&(0,n.triggerEvent)("dependencyadded",e,{name:r,type:s}),l&&c&&o(e)):(0,n.raiseError)({id:"Extension"},"90211","dependency","Extension",new Error("A FusionCharts extension must have a valid extension property."))}))},t.getDep=function(e,t){var r,n=e&&e.toLowerCase();if(t&&a[t])return a[t][n];if(!t)for(var o in a)if(a.hasOwnProperty(o)&&(r=a[o][n]))return r;return i[n]},t.getDepsByType=function(e){void 0===e&&(e="");return""===e?a:a[e.toLowerCase()]};var n=r(191),a={},i={}},function(e,t,r){"use strict";t.__esModule=!0,t.onDataUpdateSuccess=function(e,t){var r=e.sender,i=r.__state;i.dataReady=n,i.dataAvailable=!0,!0!==t.silent?!0!==r.options.safeMode||!0!==i.rendering||r.isActive()?delete i.args:(i.updatePending=t,(0,a.raiseWarning)(r,"23091255","run","::DataHandler~update","Renderer update was postponed due to async loading.")):r.options.dataSource=t.data;(0,a.triggerEvent)("dataUpdated",r,t,n,t.successcallback)},t.onDataUpdateCancel=function(e,t){(0,a.triggerEvent)("dataUpdateCancelled",e.sender,t,n,t.failurecallback)};var n,a=r(191)},function(e,t,r){"use strict";function n(e){delete e.sender.jsVars._reflowData,e.sender.jsVars._reflowData={},delete e.sender.jsVars._reflowClean}t.__esModule=!0,t["default"]=void 0;var a={beforeInitialize:function(e){var t,r=e.sender,n=r.jsVars;n.fcObj=r,n.msgStore=n.msgStore||{LoadDataErrorText:"Error in loading data.",XMLLoadingText:"Retrieving data. Please wait",InvalidXMLText:"Invalid data.",ChartNoDataText:"No data to display.",ReadingDataText:"Reading data. Please wait",ChartNotSupported:"Chart type not supported.",PBarLoadingText:"",LoadingText:"Loading chart. Please wait",RenderChartErrorText:"Unable to render chart."},n.cfgStore=n.cfgStore||{},n.previousDrawCount=-1,n.drawCount=0,n._reflowData={},r.addEventListener("beforeRender",(function(e){return e.detachHandler()})),n.userModules instanceof Array||(t=n.userModules,n.userModules=[],"string"==typeof t&&(n.userModules=n.userModules.concat(t.split(","))))},beforeDataUpdate:n,beforeDispose:function(e){var t=e.sender.jsVars;t.smartLabel&&!t.smartLabel.disposed&&t.smartLabel.dispose(),n.apply(void 0,arguments)},beforeRender:function(e){delete e.sender.jsVars.drLoadAttempted,n.apply(void 0,arguments)},dataLoadRequested:function(e){var t=e.sender,r=t.jsVars;delete r.loadError,t.ref&&t.options.showDataLoadingMessage?r.hcObj&&!r.hasNativeMessage&&r.hcObj.showLoading?r.hcObj.showMessage(r.msgStore.XMLLoadingText):t.ref.showChartMessage?t.ref.showChartMessage("XMLLoadingText"):r.stallLoad=!0:r.stallLoad=!0},dataLoadRequestCompleted:function(e){delete e.sender.jsVars.stallLoad}};t["default"]=a},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=t.globalStore=void 0;var a,i,o,s,l=r(184),c=r(191),u=r(192),d=r(196),h=n(r(197)),f=/\%/,g=new h["default"],p=(o={},s=function y(){var e,t,r,n,s,l,c,u,d=0,h=parseInt(i.options.resizeTrackingInterval,10)||300,g={},p=function(){g.itemVar._containerOffsetW=g.parentEle.offsetWidth,g.itemVar._containerOffsetH=g.parentEle.offsetHeight};for(e in o)d+=1,r=(t=o[e]).jsVars,s=t.ref,!t.disposed&&(n=s&&s.parentNode)&&(l=s.style)&&(f.test(l.width)||f.test(l.height))?(c=n.offsetWidth,u=n.offsetHeight,!r.resizeLocked&&(c&&r._containerOffsetW!==c||u&&r._containerOffsetH!==u)&&(t.resizeTo&&t.resizeTo(),g.itemVar=r,g.parentEle=n,setTimeout(p,1))):(delete o[e],d-=1);a=d?setTimeout(y,h):clearTimeout(a)},function(e,t,r){var n=e.jsVars,l=t||e.ref&&e.ref.parentNode||{};i=r,n._containerOffsetW=l.parentNode.offsetWidth,n._containerOffsetH=l.parentNode.offsetHeight,o[e.id]=e,a||(a=setTimeout(s,parseInt(r.options.resizeTrackingInterval,10)||300))});function m(e,t,r){void 0===r&&(r=!1);var n,a=this.apiInstance,i=this.getChartData((0,u.getDepsByType)("transcoder").JSON,!0,!0).data;r||(0,c.triggerEvent)("dataloaded",this,{},[this.id]),this.__state&&(this.__state.newDataArrived=!1),a.addToEnv("dataSource",i),a.addToEnv("chart-attrib",i.chart||{}),n=(0,l.pluckNumber)(i.chart&&i.chart.applycsstransform,0),a._checkInvalidData()||a._checkInvalidSpecificData()?(a.getContainer("parentgroup")&&a.getContainer("parentgroup").hide(),a.createBaseComponent(),a.getFromEnv("animationManager").setAnimationState("chartmessage"),a.setChartMessage(),a.drawChartMessage(),this._sudoSetState(1),(0,c.triggerEvent)("nodatatodisplay",this,{},[this.id])):(a.config.hasChartMessage=!1,a.getFromEnv("toolTipController").setApplyScale(n),a.setData(Object.assign({},i)))}function v(e){var t=e.sender.args,r=l.BLANK,n=t.dataFormat||"json";"jsonurl"!==n.toLowerCase()&&"xmlurl"!==n.toLowerCase()||(r=t.dataSource),(0,c.triggerEvent)("dataloadcancelled",e,{url:r,dataFormat:n},[e.id]),e.__state&&(e.__state.newDataArrived=!1)}t.globalStore=g;var b=function(e,t,r,n,a,i,o,s){var h,b,y,x,C,w=n,_=t.apiInstance,k=t.jsVars,S=f.test(t.width)?r.offsetWidth:t.width,E=f.test(t.height)?r.offsetHeight:t.height;if(r.FusionCharts=e.items[t.id],t.__state.beforedrawFired=!0,w=w||t.chartType(),!(h=(0,u.getDep)(w,"chartapi"))&&(y=(0,u.getDep)(w,"maps"))&&(h=(0,u.getDep)("maps","chartapi"),x=!0),_&&_.getName().toLowerCase()!==w.toLowerCase()&&(_.remove({instant:!0}),_=l.UNDEF),_&&_.getName().toLowerCase()===w.toLowerCase()||(_=t.apiInstance=new h,g.attachChild(_,"chartAPI"),_.addToEnv("core-options",e.options),_.addToEnv("chartInstance",t),_.addToEnv("chart",_),_.addToEnv("chart-container",r),_.addToEnv("eventListeners",[])),x)for(var A in y=y[0])y.hasOwnProperty(A)&&(_.config[A]=y[A]);if(_.addToEnv("chartWidth",Math.max(0,S)),_.addToEnv("chartHeight",Math.max(0,E)),_._removeWaitingJobs(),_.setDummyEImethods(w),_.config.origRenderWidth=t.__state.renderedWidth,_.config.origRenderHeight=t.__state.renderedHeight,"base"===w||i)!function(e,t){void 0===t&&(t=!1);var r=e.options.dataErroneous;if(r)return e.__state.dataReady=!1,t||(0,c.triggerEvent)("dataInvalid",e,{error:r},l.UNDEF,(function(){(0,c.triggerEvent)("dataxmlinvalid",e,{},[e.id])})),!0}(t,s),function(e,t){void 0===t&&(t={});e._chartMessageImageStyle=t.image||{},e._chartMessageStyle=t.message||{}}(t,o),_.createBaseComponent(),_.getFromEnv("animationManager").setAnimationState("chartmessage"),_.setChartMessage(i,t,r);else if(t.__state.resize)_.asyncDraw();else{if(_.getFromEnv("toolTipController")||(C=new((0,u.getDep)("ToolTipController"))(r,_),_.addToEnv("toolTipController",C)),_.disposeChartStyleSheet(),r.jsVars=t.jsVars,b=_.eiMethods,t.ref=r,k.type=w,b&&"string"!=typeof b)for(var T in b)r[T]=b[T];!s&&t.__state.newDataArrived?(0,c.triggerEvent)("beforedataload",t,{data:t.getChartData((0,u.getDepsByType)("transcoder").JSON,!0,!0)},l.UNDEF,m,v):m.call(t,l.UNDEF,l.UNDEF,s)}!t.disposed&&function(e,t,r,n,a){var i=e.jsVars,o=e.apiInstance,s=i.fcObj,u=i.overlayButton;i.width=o.getFromEnv("chartWidth"),i.height=o.getFromEnv("chartHeight"),i.container=t,i.hcObj=e,i.hcObj.container=t,i.instanceAPI=o,e.hasRendered&&i.overlayButtonActive&&u&&(u.innerHTML=l.BLANK,u.appendChild(document.createTextNode(i.overlayButtonMessage)),e.container.appendChild(u));(/\%/g.test(s.width)||/\%/g.test(s.height))&&t&&t.parentNode&&!a.options.preventTrackResize&&p(e,t,a);!function(e,t,r){e.apiInstance.addJob("fire-rendered",(function(){if(e.apiInstance.config.hasRendered=r.hasRendered,"waiting"!==e._getState()&&"function"==typeof t&&t(r),"waiting"!==e._getState()&&((0,c.triggerEvent)("drawcomplete",e,{width:e.jsVars.width,height:e.jsVars.height,drawCount:e.jsVars.drawCount,displayingMessage:"waiting"===e._getState()||"error"===e._getState(),renderer:"javascript"},[e.id]),e.__state&&delete e.__state.beforedrawFired),!e.disposed&&"ready"===e._getState()){if(e.__state.rendering&&(0,c.triggerEvent)("rendered",e,{renderer:"javascript"},[e.id]),e.disposed)return;if((0,c.triggerEvent)("renderComplete",e,{width:e.jsVars.width,height:e.jsVars.height,drawCount:e.jsVars.drawCount,renderer:"javascript"}),e.disposed)return;e.__state&&delete e.__state.rendering,e.__state.renderComplete=!0}}),d.priorityList.postRender)}(e,r,n)}(t,r,a,{hasRendered:!0,container:r},e)};t["default"]=b},function(e,t,r){"use strict";t.__esModule=!0,t.priorityList=t["default"]=void 0;var n=[],a={},i=[],o={},s=0,l=window,c=l.navigator,u=/trident/i.test(c.userAgent)&&/rv:11/i.test(c.userAgent)&&!l.opera,d=/msie/i.test(c.userAgent)&&!l.opera,h=/Edge/.test(c.userAgent),f={},g=l.requestAnimationFrame||l.webkitRequestAnimationFrame||l.mozRequestAnimationFrame||l.oRequestAnimationFrame||l.msRequestAnimationFrame||function(e){setTimeout(e,16)},p=!1,m=function b(){var e,t,r,a=!0,s=(new Date).getTime();for(p=!0;a&&(e=n[0]);)t=(new Date).getTime(),e.OIAF&&r||e.executeAfter&&!(e.executeAfter<t)||!(t-s<16)?a=!1:(n.shift(),i[e.priority]-=1,o[e.jobID]&&!e.executed&&(e.executed=!0,delete o[e.jobID],e.job(),r=e.OIAF));n.length?g(b):p=!1};t.priorityList={instant:1,render:1,chartEvents:1,configure:2,chartClick:2,draw:3,entitydraw:4,label:4,animation:5,tracker:6,kdTree:6,postRender:7,verification:8},(u||d||h)&&(g=g.bind(window)),f.addJob=function(e,t,r){var a,l,c,u=0,d=r&&r.oneInAFrame,h=r&&r.addToTop?t-1:t;for("function"==typeof e?(l={job:e,priority:t,OIAF:d,jobID:a="JOB_"+ ++s+"_"+(t||1)},r&&r.executionDelay&&(l.executeAfter=(new Date).getTime()+r.executionDelay)):l=e,c=0;c<=h;c++)u+=i[c]||0;return n.splice(u,0,l),o[l.jobID]=l,i[t]=(i[t]||0)+1,p||1!==n.length||(d?g(m):setTimeout(m,0)),a},f.removeJob=function(e){o[e]&&delete o[e]},f.updateJob=function(e,t,r,n){return o[e]?(o[e].job=t,e):this.addJob(t,r,n)},f.pauseExecution=function(e){if(!o[e])return!1;a[e]=o[e],delete o[e]},f.resumeExecution=function(e){var t=a[e];if(!t)return!1;f.addJob(t,t.priority),delete a[e]};var v=f;t["default"]=v},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.getName=function(){return"globalStore"},r.getType=function(){return"globalStore"},t}(r(199).ComponentInterface);t["default"]=i},function(e,t){e.exports=function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,function(e,t){for(var r=Object.getOwnPropertyNames(t),n=0;n<r.length;n++){var a=r[n],i=Object.getOwnPropertyDescriptor(t,a);i&&i.configurable&&e[a]===undefined&&Object.defineProperty(e,a,i)}}(e,t)}},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0;var a=n(r(200));t.ComponentInterface=a["default"];var i=n(r(203));t.SmartRenderer=i["default"]},function(e,t,r){"use strict";var n=r(182),a=r(178);t.__esModule=!0,t["default"]=void 0;var i=a(r(201)),o=a(r(198)),s=n(r(202)),l=function(e){function t(){var t;t=e.call(this)||this;var r=(0,i["default"])(t);return r._components={},r._version=1,r.fireEvent("instantiated"),r.__setDefaultConfig(),t}(0,o["default"])(t,e);var r=t.prototype;return r.addGraphicalElement=function(e,t,r,n){void 0===r&&(r=!1);var a=this._graphics;return t&&(r?(void 0===a[e]&&(a[e]=[]),n?a[e][n]=t:a[e].push(t)):(a[e]=t,this.fireEvent("graphicalelementattached",{element:t})),(0,s.addAllEventsOnGraphic)(t,this._middleListeners,this)),t},r.removeGraphicalElement=function(e){var t,r=this,n=r._graphics;(0,s._mapSubFnForward)(n,(function(a,i,o){a===e&&(t=!0,(0,s.removeAllEventsFromGraphic)(a,r._middleListeners),r._setRemoveAnim(a,i),void 0!==o?n[i].splice(o,1):delete n[i])})),t&&this.fireEvent("graphicalelementremoved",{element:e})},r.getGraphicalElement=function(e){return void 0!==e?this._graphics[e]:this._graphics},r.addChildContainer=function(e,t){var r=this._childContainers;return t&&(void 0===r&&(r=this._childContainers={}),r[e]=t,(0,s.addAllEventsOnGraphic)(t,this._middleListeners,this)),t},r.removeChildContainer=function(e){var t=this._childContainers;t&&t[e]&&((0,s.removeAllEventsFromGraphic)(t[e],this._middleListeners),this._setRemoveAnim(t[e],e),delete t[e])},r.getChildContainer=function(e){return void 0===this._childContainers&&(this._childContainers={}),e?this._childContainers[e]:this._childContainers},r.addContainer=function(e,t){var r=this._containers;return t&&(void 0===r&&(r=this._containers={}),r[e]=t),t},r.removeContainer=function(e){var t=this._containers;t&&t[e]&&(this._setRemoveAnim(t[e],e),delete t[e])},r.getContainer=function(e){return void 0===this._containers&&(this._containers={}),e?this._containers[e]:this._containers},r.addEventListener=function(t,r,n){var a=e.prototype.addEventListener.call(this,t,r,n);return!0===a?(function(e,t,r){var n;t&&r&&(n=function(e){e.on&&e.on(t,r)},(0,s._mapSubFnForward)(e.getGraphicalElement(),n),(0,s._mapSubFnForward)(e.getChildContainer(),n))}(this,t,this._middleListeners[t]),r):!!a&&r},r.removeEventListener=function(t,r){e.prototype.removeEventListener.call(this,t,r)&&function(e,t,r){var n;t&&r&&(n=function(e){e.off&&e.off(t,r)},(0,s._mapSubFnForward)(e.getGraphicalElement(),n),(0,s._mapSubFnForward)(e.getChildContainer(),n))}(this,t,this._middleListeners[t])},r._dispose=function(){var t;if(e.prototype._dispose.call(this)){for(t in this.getFromEnv("paper")&&!this.getFromEnv("paper").removed&&((0,s._mapSubFnForward)(this.getChildContainer(),this.__instantRemoveFn),(0,s._mapSubFnForward)(this.getGraphicalElement(),this.__instantRemoveFn),(0,s._mapSubFnForward)(this.getContainer(),this.__instantRemoveFn)),this)this.hasOwnProperty(t)&&delete this[t];this.fireEvent("removed")}},r.removingDraw=function(){(0,s._mapSubFnForward)(this.getChildContainer(),this._setRemoveAnim),(0,s._mapSubFnForward)(this.getGraphicalElement(),this._setRemoveAnim),(0,s._mapSubFnForward)(this.getContainer(),this._setRemoveAnim)},r.attachChild=function(e,t,r){var n=t||e.getType(),a=this._components;return!1===r?a[n]=e:(a[n]&&a[n]instanceof Array||(a[n]=[]),a[n].push(e)),e._setLinkedParent(this),this.fireEvent("childattached",{attachedChild:e}),e},r.getChild=function(e){var t;return void 0===e?this._components:(this._searchChildren(e,(function(e){t=e})),t)},r._searchChildren=function(e,t){var r,n,a,i=this._components;for(n in i)if(i.hasOwnProperty(n))if((r=i[n]).constructor===Array){for(a=r.length-1;a>=0;a--)if(r[a].getId&&r[a].getId()===e)return t(r[a],a,r)}else if(r.getId&&r.getId()===e)return t(n,void 0,i)},r.getChildren=function(e){return e?this._components[e]:this._components},t}(s["default"]);t["default"]=l},function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},function(e,t,r){"use strict";var n=r(182);t.__esModule=!0,t._mapSubFnForward=t.addAllEventsOnGraphic=t.removeAllEventsFromGraphic=t["default"]=void 0;var a=r(184),i=r(191),o=n(r(196)),s=function(e){e&&e.draw&&e.syncDraw()},l=function(e){return e.setDefaults()},c=function(e){e.prepareAttributes&&e.prepareAttributes()},u={},d={executionDelay:16},h=function(e,t){var r,n,a,i;if(e&&e.hasOwnProperty&&t&&t.call)for(r in e)if(e.hasOwnProperty(r))if((n=e[r])instanceof Array)for(i=n.length,a=0;a<i;a++)t(n[a],r,a);else t(n,r)};t.removeAllEventsFromGraphic=function(e,t){var r,n;if(t&&t.hasOwnProperty)for(r in t)t.hasOwnProperty(r)&&(n=(0,i.getListeners)(r,this))&&n.length>=1&&e&&e.off(r,t[r])},t.addAllEventsOnGraphic=function(e,t,r){var n,a;if(t&&t.hasOwnProperty)for(n in t)t.hasOwnProperty(n)&&(a=(0,i.getListeners)(n,r))&&a.length>=1&&e&&e.on(n,t[n])},t._mapSubFnForward=h;var f=function(){function e(){var e=this;e.config={},e._jobList={},e._env={},e._extListeners={},e._state={},e._factories=[],e._factoriyNames={},e._graphics={},e.__drawJob=function(){e.updateVisual()},e.__remove=function(){e.getState("removed")&&e._dispose()},e._setRemoveAnim=function(t,r){var n=e.getFromEnv("animationManager");n.setAnimation({el:t,component:e,label:r,props:t.__props}),e._setRemoveAnim=function(t,r){n.setAnimation({el:t,component:e,label:r,props:t.__props})}},e.__instantRemoveFn=function(t){var r=e.getFromEnv("animationManager");r.removeElement(t,!0),e.__instantRemoveFn=function(e){return r.removeElement(e,!0)}}}var t=e.prototype;return t.configure=function(e){this.preConfigure(e),this.configureAttributes(e),this.postConfigure(e),this.invokeFactories()},t.preConfigure=function(e){this.fireEvent("preconfigure",e)},t.configureAttributes=function(){return this},t.postConfigure=function(e){this.fireEvent("postconfigure",e)},t.prepareAttributes=function(){this.fireEvent("beforeattributeprepared"),this.allocatePosition&&this.allocatePosition(),this._mapChildren(c),this.fireEvent("attributeprepared")},t.setDefaults=function(){this.__setDefaultConfig(),this._mapChildren(l)},t.__setDefaultConfig=function(){return this},t.setData=function(e,t){void 0===t&&(t=!1);var r,n=this.getLinkedParent();this.asyncDraw(),!t&&this.setDefaults(),this.configure&&this.configure(e),(r=this.getState("change-info"))&&r.hasNoExternalEffect||n&&n.childChange&&n.childChange(r,this.getId())},t.getName=function(){return"generic"},t.getType=function(){return"generic"},t.getComponentVersion=function(){return this._version},t.getId=function(){return this._id||this.setId(),this._id},t.setId=function(e){var t,r=e;r===a.UNDEF&&(t=this.getType()+a.UNDERSCORE+this.getName(),u[t]||(u[t]=1),r=t+a.UNDERSCORE+u[t],u[t]+=1),this._id=r},t.iterateComponents=function(e){this._mapChildren((function t(r,n,a){!1!==e(r,n,a)&&r._mapChildren&&r._mapChildren(t)}))},t.getFromEnv=function(e){return e?this._env[e]:this._env},t.addToEnv=function(e,t){e&&(this._env[e]=t)},t.deleteFromEnv=function(e){delete this._env[e]},t._updateParentEnv=function(){var e,t,r,n,a=this.getLinkedParent(),i=this._env;if(a){if(e=a.getFromEnv(),((t=function(){}).prototype=e).constructor=t,r=new t,i)for(n in i)i.hasOwnProperty(n)&&(r[n]=i[n]);this._env=r,this._mapChildren((function(e){e._updateParentEnv&&e._updateParentEnv()}))}},t.addJob=function(e,t,r,n){this._jobList[e]?this._jobList[e]=o["default"].updateJob(this._jobList[e],t,r,n):this._jobList[e]=o["default"].addJob(t,r,n)},t.removeJob=function(e){var t=this._jobList[e];t&&(o["default"].removeJob(t),delete this._jobList[e])},t.removeAllJobs=function(){var e,t=this._jobList;for(e in t)t.hasOwnProperty(e)&&(o["default"].removeJob(t[e]),delete t[name])},t.asyncDraw=function(){this.addJob("draw",this.__drawJob,o.priorityList&&o.priorityList.draw,d)},t.syncDraw=function(){var e=this;e.fireEvent("predraw"),e.removeJob("draw"),e.getState("removed")?e.removingDraw():e.draw&&e.draw(),e.addExtEventListener("animationComplete",e.__remove,e.getFromEnv("animationManager")),e.childrenSyncDraw(),e.setState("dirty",!1),e.setState("parentChanged",!1),e.addJob("draw-complete",(function(){e.fireEvent("drawn")}),o.priorityList.instant)},t.updateVisual=function(){this.fireEvent("beforevisualupdate"),this.removeJob("visualupdate"),this.manageSpace&&this.manageSpace(),this.prepareAttributes(),this.syncDraw(),this.fireEvent("visualupdated")},t.childrenSyncDraw=function(){this._mapChildren(s)},t.addEventListener=function(e,t,r){var n,o=this,s=e;return!!(s&&s.toLowerCase&&(s=s.toLowerCase(),(0,i.addListener)(s,t,o,r)))&&((0,a.isInterActiveEvt)(s)&&(n=(0,i.getListeners)(s,o))&&1===n.length?(o._middleListeners||(o._middleListeners={}),o._middleListeners[s]||(o._middleListeners[s]=function(e){o.fireEvent(s,a.UNDEF,a.UNDEF,a.UNDEF,e)}),!0):t)},t.removeEventListener=function(e,t){var r,n=e;if(n&&n.toLowerCase&&(n=n.toLowerCase(),(0,i.removeListener)(n,t,this),(0,a.isInterActiveEvt)(n)&&(r=(0,i.getListeners)(n,this))&&0===r.length&&this._middleListeners&&this._middleListeners[n]))return!0},t.fireEvent=function(e,t,r,n,a){(0,i.triggerEvent)(e,this,t,a,r,n)},t.showWarning=function(e,t,r,n){(0,i.raiseWarning)(this.getFromEnv("chartInstance"),e,t,r,n)},t.showError=function(e,t,r,n){(0,i.raiseError)(this.getFromEnv("chartInstance"),e,t,r,n)},t.addExtEventListener=function(e,t,r){return!!(r&&r.addEventListener&&r.addEventListener(e,t))&&(this._extListeners[e]||(this._extListeners[e]=[]),this._extListeners[e].push({fn:t,component:r}),t)},t.removeExtEventListener=function(e,t,r){var n,a;if(r&&r.addEventListener&&this._extListeners&&this._extListeners[e])for(n=(a=this._extListeners[e]).length-1;n>=0;n-=1)if(a[n]&&a[n].fn===t&&a[n].component===r)return r.removeEventListener(e,t),void a.splice(n,1)},t._setLinkedParent=function(e){var t=this._linkedParent;this._linkedParent=e,t&&t!==e&&(this.setState("parentChanged",!0),this.fireEvent("parentdetached",{oldParent:t}),e&&this.fireEvent("parentAttached",{newParent:e})),this._updateParentEnv&&this._updateParentEnv()},t.getLinkedParent=function(){return this._linkedParent},t.setLinkedItem=function(e,t){this.linkedItems||(this.linkedItems={}),e===a.UNDEF&&t===a.UNDEF||(this.linkedItems[e]=t)},t.getLinkedItem=function(e){if(this.linkedItems)return e!==a.UNDEF?this.linkedItems[e]:this.linkedItems},t.removeLinkedItem=function(e){this.linkedItems&&this.linkedItems[e]&&delete this.linkedItems[e]},t._detachChild=function(e){var t,r=e&&e.getId(),n=this;return r===a.UNDEF?a.UNDEF:(n._searchChildren(r,(function(e,r,i){i&&i.constructor===Array?t=i.splice(r,1)[0]:(t=i[e],delete i[e]),t._setLinkedParent(a.UNDEF),n.fireEvent("childdetached",{detachedChild:t})})),t)},t._mapChildren=function(e,t){t?function(e,t){var r,n,a;if(e&&e.hasOwnProperty&&t&&t.call)for(r in e)if(e.hasOwnProperty(r))if((n=e[r])instanceof Array)for(a=n.length-1;a>=0;a--)t(n[a],r,a);else t(n,r)}(this.getChildren(),e):h(this.getChildren(),e)},t._dispose=function(){var e,t,r,n;if(this&&this!==window&&!0!==this._disposing){if(this._disposing=!0,this.fireEvent("beforeremove"),(e=this.getLinkedParent())&&e._detachChild&&!e._disposing&&e._detachChild(this),this._extListeners)for(r in this._extListeners)for(t=(n=this._extListeners[r]).length-1;t>=0;t--)n[t].component&&n[t].component.addEventListener&&n[t].component.removeEventListener(r,n[t].fn);return this.removeAllJobs(),!0}},t.remove=function(e){this.setState("removed",!0),this.getChildren()&&this._mapChildren((function(t){t&&t.remove&&t.remove(e)}),!0),e&&e.instant&&this._dispose()},t.setState=function(e,t){this._state[e]=t},t.getState=function(e){return this._state&&this._state[e]},t.registerFactory=function(e,t,r){var n={name:e,factory:t,dep:r};if(this._factoriyNames[e])for(var a=0,i=this._factories.length,o=!1;a<i&&!o;a+=1)this._factories[a].name===e&&(this._factories.splice(a,1),o=!0);this._factories.push(n),this._factoriyNames[e]=!0},t.deregisterFactory=function(e){if(this._factoriyNames[e])return delete this._factoriyNames[e],this._factories.splice(this._factories.findIndex((function(t){return t.name===e})),1)[0].factory},t.invokeFactories=function(){for(var e,t=this,r=t._factoriyNames,n={},a=t._factories,i=a.length+1,o=function(a){var i;a.dep&&a.dep.length&&a.dep.forEach((function(e){i=r[e]&&!n[e]})),i?e.push(a):(a.factory(t),n[a.name]=!0)};a.length&&a.length<i;)e=[],a.forEach(o),i=a.length,a=e;a.length&&a.forEach((function(e){return e.factory(t)})),this.fireEvent("factoriesinvoked",{})},e}();t["default"]=f},function(e,t,r){"use strict";var n=r(182),a=r(178);t.__esModule=!0,t["default"]=void 0;var i=a(r(201)),o=a(r(198)),s=n(r(202)),l=r(184),c=r(196),u=function(e,t){var r,n,a;if(e&&e.hasOwnProperty&&t&&t.call)for(r in e)for(a=(n=e[r].elemStore)&&n.length-1;a>=0&&!t(n[a],r,a);a--);},d=function(e,t){var r,n,a,i;if(e&&e.hasOwnProperty&&t&&t.call)for(n in e)for(i=0,r=(a=e[n].elemStore)&&a.length;i<r&&!t(a[i],n,i);i++);},h=function(e,t,r){var n,a,i,o;for(o in void 0===r&&(r={}),e)a=e[o],(i=(0,l.pluck)(t[o],r[o]))!==l.UNDEF?a instanceof Array?"text-bound"===o?(n||(n={}),n[o]=a,n.x=e.x,n.y=e.y):a.toString().replace(/,/g,"")!==i.toString().replace(/,/g,"")&&(n||(n={}),n[o]=a):"string"==typeof a?a.replace(/,/g,"")!==i.toString().replace(/,/g,"")&&(n||(n={}),n[o]=a):a!==i&&(n||(n={}),n[o]=a):(n||(n={}),n[o]=a);return n},f=function(e){function t(t){var r;r=e.call(this,t)||this;var n=(0,i["default"])(r);return n._version=2,n._id=t,n._componentStore={},n._oldComponentStore=[],n.fireEvent("instantiated"),n.__setDefaultConfig(),r}(0,o["default"])(t,e);var r=t.prototype;return r.isDrawingRequired=function(){return this},r.syncDraw=function(){var e=this,t=e.getState("removed");(e.isDrawingRequired()||t)&&(e.fireEvent("predraw"),e.removeJob("draw"),e._resetGraphicalStore(),t?e.addJob("dispose-component",(function(){return e._dispose()}),c.priorityList.postRender):e.draw&&e.draw(),e.childrenSyncDraw(),e._removeUnusedGraphics(),e.fireEvent("drawn"))},r._remove=function(){this.onRemove&&this.onRemove(),this.setState("removed",!0),this.getChildren()&&this._mapChildren((function(e){e.onRemove&&e.onRemove(),e&&e.setState("removed",!0)}),!0)},r.setDimension=function(e,t){this.config.width=e,this.config.height=t},r.setTranslation=function(e,t){var r=this.config;r._translateX=e,r._translateY=t,r.translate="t"+e+","+t},r.getTranslation=function(){return{x:this.config._translateX,y:this.config._translateY}},r._resetGraphicalStore=function(){this._oldGraphicalStore=this._graphicalStore,this._graphicalStore={}},r._getLastUsedElem=function(){return this.config.lastElemUsed},r.addGraphicalElement=function(e,t){void 0===e&&(e={}),void 0===t&&(t=!1);var r,n,a,i,o,c=e.label,u=this._graphicalStore[c]||(this._graphicalStore[c]={elemStore:[],idMap:{},indexMap:{},lastIndexUsed:-1}),d=!0,f=this._oldGraphicalStore&&this._oldGraphicalStore[c],g=u.lastIndexUsed+=1,p=e.attr,m=e.id;f&&(m&&f.idMap[m]!==l.UNDEF?(i=f.idMap[m],o=f.elemStore[i],delete f.elemStore[i],delete f.indexMap[i],delete f.idMap[m]):f.elemStore[g]&&(f.indexMap[g]||(o=f.elemStore[g],delete f.elemStore[g]))),"text"===e.el&&e.css&&(0,l.removeHtmlAttrs)(e.css),o&&(e.el=o,d=!1,(p=h(e.attr,o.attrs))&&(e.attr=p),e.css&&(n=h(e.css,o.attrs,o.styles))&&(e.css=n)),(a=e.container)?(r=a.isParent?this.getLinkedParent():this,e.container=r.getGraphicalElement(a.id,a.label)||r.getChildContainer(a.id)):e.container=this.getFromEnv("chart-container"),(p||n)&&(o=this.getFromEnv("animationManager").setAnimation(e)),u.elemStore[g]=o,m&&(u.idMap[m]&&(delete u.indexMap[u.idMap[m]],delete u.idMap[m]),u.idMap[m]=g,u.indexMap[g]=m),this.fireEvent("graphicalelementattached",{element:o}),o._skipEvents=t,e.shadow&&o.shadow(e.shadow),e.outlineText!==l.UNDEF&&o.outlineText(e.outlineText,(0,l.convertColor)((0,l.pluck)(e.css.fill,e.attr.fill))),e.tooltext!==l.UNDEF&&this.getFromEnv("toolTipController").enableToolTip(o,e.tooltext),this.config.lastElemUsed=o,!t&&d&&(0,s.addAllEventsOnGraphic)(o,this._middleListeners,this)},r.removeGraphicalElement=function(e,t){var r,n,a=this,i=a._graphicalStore;u(i,"object"==typeof e?function(t,o,s){if(e===t)return n=!0,a._setRemoveAnim(t,o),(r=i[o]).elemStore.splice(s,1),delete r.idMap[r.indexMap[s]],delete r.indexMap[s],!0}:function(o,s,l){if((r=i[s]).indexMap[l]===e&&(!t||t===s))return n=!0,a._setRemoveAnim(o,s),r.elemStore.splice(l,1),delete r.idMap[r.indexMap[l]],delete r.indexMap[l],!0}),n&&this.fireEvent("graphicalelementremoved",{element:void 0})},r.getChildContainer=function(e){return this.getGraphicalElement(l.UNDEF,e)},r._removeUnusedGraphics=function(){var e,t=this,r=t._oldGraphicalStore;u(r,(function(n,a,i){n&&(t._setRemoveAnim(n,a),delete(e=r[a]).idMap[e.indexMap[i]],delete e.indexMap[i])}))},r.getGraphicalElement=function(e,t){var r,n,a,i,o=this._graphicalStore;return t||e?t?(r=o[t],e?r&&r.elemStore&&r.elemStore[r.idMap[e]]:r&&r.elemStore&&r.elemStore[0]):(d(o,(function(){if(i=arguments[2],(n=o[arguments[1]]).idMap[i]===e)return a=n.elemStore[i],!0})),a):o},r.addEventListener=function(t,r,n){var a=e.prototype.addEventListener.call(this,t,r,n);return!0===a?(function(e,t,r){var n;t&&r&&(n=function(e){!e._skipEvents&&e.on&&e.on(t,r)},d(e.getGraphicalElement(),n))}(this,t,this._middleListeners[t]),r):!!a&&r},r.removeEventListener=function(t,r){e.prototype.removeEventListener.call(this,t,r)&&function(e,t,r){var n;t&&r&&(n=function(e){!e._skipEvents&&e.off&&e.off(t,r)},d(e.getGraphicalElement(),n))}(this,t,this._middleListeners[t])},r._dispose=function(){var e,t,r,n;if(this&&this!==window&&!0!==this._disposing){if(this._disposing=!0,this.fireEvent("beforeremove"),this._extListeners)for(r in this._extListeners)for(t=(n=this._extListeners[r]).length-1;t>=0;t--)n[t].component&&n[t].component.addEventListener&&n[t].component.removeEventListener(r,n[t].fn);for(e in this.removeAllJobs(),this._linkedParent&&1===this._linkedParent.getComponentVersion()&&this._linkedParent._detachChild(this),this.getFromEnv("paper")&&!this.getFromEnv("paper").removed&&d(this.getGraphicalElement(),this.__instantRemoveFn),this)this.hasOwnProperty(e)&&delete this[e];this.fireEvent("removed")}},r.configure=function(t){this._resetComponentStore(),e.prototype.configure.call(this,t)},r._resetComponentStore=function(){this._oldComponentStore.push(this._componentStore),this._componentStore={}},r._mapChildren=function(e,t){t?u(this.getChildren(),e):d(this.getChildren(),e)},r.attachChild=function(e,t,r){var n,a,i=this._componentStore[t]||(this._componentStore[t]={elemStore:[],idMap:{},indexMap:{},lastIndexUsed:-1}),o=this._oldComponentStore&&this._oldComponentStore.length&&this._oldComponentStore[this._oldComponentStore.length-1][t],s=i.lastIndexUsed+=1;if(o){var c=o.elemStore,u=c[s];r&&o.idMap[r]!==l.UNDEF?(a=c[n=o.idMap[r]],delete c[n],delete o.indexMap[n],delete o.idMap[r]):u&&u.constructor===e&&(o.indexMap[s]||(a=u,delete c[s]))}return a||(a=new e(r)),i.elemStore[s]=a,r&&(i.idMap[r]=s,i.indexMap[s]=r),a._setLinkedParent(this),a},r.childrenSyncDraw=function(){this._mapChildren((function(e){e&&e.draw&&e.syncDraw()})),this._removeUnusedChildren()},r._removeUnusedChildren=function(){for(var e=this._oldComponentStore,t=e.length,r=0,n=function(e){e&&(e._remove(),e.syncDraw(),e._setLinkedParent(l.UNDEF))};r<t;r+=1)u(e[r],n);this._oldComponentStore.length=0},r.getChild=function(e,t){var r;return this._searchChildren(e,(function(e){r=e}),t),r},r._searchChildren=function(e,t,r){var n,a,i=this._componentStore,o=r;if(e?u(i,(function(t,r,s){if(i[r].indexMap[s]===e&&(!o||o===r))return a=t,n=s,o=r,!0})):a=i[o]&&i[o].elemStore,a)return t(a,n,o)},r.getChildren=function(e){return e?this._componentStore[e]&&this._componentStore[e].elemStore:this._componentStore},r._detachChild=function(){return this},t}(s["default"]);t["default"]=f},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(183)),i=n(r(205)),o=n(r(206)),s=i["default"].init(window),l=s.win.document,c=s.win.Math,u=c.max,d=c.round,h={" ":" "},f=s.getDocumentSupport(),g=f.isWebKit?0:4.5;function p(e,t,r){var n,a,i,c=!1,u=window.document.createElement("canvas");for(a in(r=r||{}).maxCacheLimit=isFinite(i=r.maxCacheLimit)?i:s.maxDefaultCacheLimit,"string"==typeof e&&(e=l.getElementById(e)),(n=s.createContainer(e)).innerHTML=s.testStrAvg,!f.isHeadLess&&(f.isIE||n.offsetHeight||n.offsetWidth)||(c=!0),n.innerHTML="",s.parentContainerStyle)n.style[a]=s.parentContainerStyle[a];this.parentContainer=n,this.ctx=u&&u.getContext&&u.getContext("2d"),this._containerManager=new o["default"](n,c,10),this._showNoEllipses=!t,this._init=!0,this.style={},this.oldStyle={},this.options=r,this.setStyle()}p.textToLines=function(e){return(e=e||{}).text?"string"!=typeof e.text&&(e.text=e.text.toString()):e.text="",e.lines=e.text.split(/\n|<br\s*?\/?>/gi),e},p.prototype._calCharDimWithCache=function(e,t,r){if(void 0===e&&(e=""),!this._init)return!1;var n,a,i,o,s,l,c,u,d,f=this.options.maxCacheLimit,g=this.style||{};return l=this._advancedCache=this._advancedCache||(this._advancedCache={}),c=this._advancedCacheKey||(this._advancedCacheKey=[]),u=e+g.fontSize+g.fontFamily+g.fontWeight+g.fontStyle,d=e+"init"+g.fontSize+g.fontFamily+g.fontWeight+g.fontStyle,!this.ctx&&h[e]&&(e=h[e]),t?(s=l[d])===undefined&&(a=this._getDimention(e.repeat?e.repeat(r):Array(r+1).join(e)).width,i=this._getDimention(e).width,s=l[d]=(a-r*i)/(r+1),c.push(d),c.length>f&&delete l[c.shift()]):s=0,(o=l[u])?{width:o.width,height:o.height}:((n=this._getDimention(e)).width+=s,l[u]={width:n.width,height:n.height},c.push(u),c.length>f&&delete l[c.shift()],n)},p.prototype._getDimention=function(e){return this.requireDiv||!this.ctx?s._getDimentionUsingDiv(e,this):s._getDimentionUsingCanvas(e,this)},p.prototype._getWidthFn=function(){var e=this,t=e._containerObj.svgText;return t?function(e){var r,n;return t.textContent=e,(n=(r=t.getBBox()).width-g)<1&&(n=r.width),n}:function(t){return e.requireDiv||!e.ctx?s._getDimentionUsingDiv(t,e).width:s._getDimentionUsingCanvas(t,e).width}},p.prototype._isSameStyle=function(){var e=this.oldStyle||{},t=this.style;return t.fontSize===e.fontSize&&t.fontFamily===e.fontFamily&&t.fontStyle===e.fontStyle&&t.fontWeight===e.fontWeight&&t.fontVariant===e.fontVariant},p.prototype._setStyleOfCanvas=function(){if(!this._isSameStyle()){var e,t,r=this.style,n=r.fontStyle,a=r.fontVariant,i=r.fontWeight,o=r.fontSize,l=r.fontFamily;e=n+" "+a+" "+i+" "+(o+=-1===o.indexOf("px")?"px":"")+" "+l,this.ctx.font=e,t=this._containerObj=this._containerManager.get(r),this._containerObj?(this._container=t.node,this._context=t.context,this._cache=t.charCache,this._lineHeight=t.lineHeight,this._styleNotSet=!1):this._styleNotSet=!0,t.ellipsesWidth=this._calCharDimWithCache("...",!1).width,t.dotWidth=this._calCharDimWithCache(".",!1).width,t.lineHeight=this._lineHeight=t.lineHeight||s._getCleanHeight(r.lineHeight),this.oldStyle=r}},p.prototype._setStyleOfDiv=function(){var e,t=this.style;this._containerObj=e=this._containerManager.get(t),e.node||this._containerManager._makeDivNode(this._containerObj),this._containerObj?(this._container=e.node,this._context=e.context,this._cache=e.charCache,this._lineHeight=e.lineHeight,this._styleNotSet=!1):this._styleNotSet=!0},p.prototype._updateStyle=function(){return this.requireDiv||!this.ctx?this._setStyleOfDiv():this._setStyleOfCanvas()},p.prototype.setStyle=function(e){return this.style=s.parseStyle(e),s.setLineHeight(this.style),this},p.prototype.useEllipsesOnOverflow=function(e){return this._init?(this._showNoEllipses=!e,this):this},p.prototype.getSmartText=function(e,t,r,n){if(!this._init)return!1;e===undefined||null===e?e="":"string"!=typeof e&&(e=e.toString());var a,i,o,c,d,h,g,p,m,v,b,y,x,C,w,_,k,S,E,A,T,M,F,I,L,N,D,O,R,P,V,B,j,G,H,z=0,U=-1,X=-1,W=-1,$=0,Y=0,q=[],K=0,J=this._showNoEllipses?"":"...",Z=this.ctx,Q=[],ee=-1,te=-1,re=-1,ne=function(e){for(var t=/\s/,r=(e=e.replace(/^\s\s*/,"")).length;t.test(e.charAt(r-=1)););return e.slice(0,r+1)},ae={text:e,maxWidth:t,maxHeight:r,width:null,height:null,oriTextWidth:null,oriTextHeight:null,oriText:e,isTruncated:!1};if(D=s.xmlTagRegEx.test(e)||s.nbspRegex.test(e),G=s._hasOnlyBRTag(e),this.requireDiv=D&&!G,this._updateStyle(),O=this._lineHeight,R=this._context,P=this._container,B=(V=this._containerObj).ellipsesWidth,j=V.dotWidth,h=e.replace(s.spanAdditionRegx,"$2"),y=this._getWidthFn(),O-r<=1&&O-r>=0&&(r*=1.2),Z||P){if(!f.isBrowserLess){if(D?G?(e=e.replace(s.brRegex,"<br />"),H=s._getDimentionOfMultiLineText(e,this),ae.oriTextWidth=g=H.width,ae.oriTextHeight=p=H.height):(P.innerHTML=e,ae.oriTextWidth=g=P.offsetWidth,ae.oriTextHeight=p=P.offsetHeight):(c=e=e.replace(s.ltgtRegex,(function(e){return"<"===e?"<":">"})),w=this.getSize(c,!0,{hasHTMLTag:D,hasOnlyBrTag:G,cleanText:!0}),ae.oriTextWidth=g=w.width,ae.oriTextHeight=p=w.height),p<=r&&g<=t)return ae.width=ae.oriTextWidth=g,ae.height=ae.oriTextHeight=p,ae;if(O>r)return ae.text="",ae.width=ae.oriTextWidth=0,ae.height=ae.oriTextHeight=0,ae}if(e=ne(e).replace(/(\s+)/g," "),d=this._showNoEllipses?t:t-B,!D||G){if(a=(q=s._getTextArray(e)).length,i="",o=[],b=q[0],this._cache[b]?E=this._cache[b].width:(E=y(b),this._cache[b]={width:E}),d>E&&!G)o=e.substr(0,s.getNearestBreakIndex(e,d,this)).split("");else{if(E>t)return ae.text="",ae.width=ae.oriTextWidth=ae.height=ae.oriTextHeight=0,ae;J&&((d=t-2*j)>E?J="..":(d=t-j)>E?J=".":(d=0,J=""))}if(K=o.length,$=y(o.join("")),Y=this._lineHeight,n){for(;K<a;K+=1)if(b=o[K]=q[K],"<br />"!==o[K]){if(this._cache[b]?E=this._cache[b].width:(w&&(E=w.detailObj[b])||(E=y(b)),this._cache[b]={width:E}),($+=E)>d&&(i||(i=o.slice(0,-1).join("")),$>t))return ae.text=ne(i)+J,ae.tooltext=ae.oriText,ae.width=u(z,$),ae.height=Y,ae}else Y+=this._lineHeight,W=K,z=u(z,$),$=0,i=null;return ae.text=o.join(""),ae.width=u(z,$),ae.height=Y,ae}for(;K<a;K+=1){if(" "!==(b=o[K]=q[K])||R||(b=this.ctx?" ":" "),"<br />"===o[K]){if(z=u(z,$),(Y+=this._lineHeight)<=r){W=K,$=0,i=null;continue}if(Y>r)return i=o.slice(0,-1).join(""),ae.text=ne(i)+J,ae.tooltext=h,ae.width=z,ae.height=Y-this._lineHeight,ae}if(this._cache[b]?E=this._cache[b].width:(w&&(E=w.detailObj[b])||(E=y(b)),this._cache[b]={width:E}),($+=E)>d&&(i||(i=o.slice(0,-1).join("")),$>t)){if("<br />"===q[K+1])continue;if(X=s._findLastIndex(q.slice(0,o.length)," "),U=s._findLastIndex(q.slice(0,o.length),"-"),X>W?($=y(o.slice(W+1,X).join("")),o.splice(X,1,"<br />"),W=X,m=X+1):U>W?(U===o.length-1?($=y(o.slice(W+1,X).join("")),o.splice(U,1,"<br />-")):($=y(o.slice(W+1,X).join("")),o.splice(U,1,"-<br />")),W=U,m=U+1):(o.splice(o.length-1,1,"<br />"+q[K]),re=o.length-2,$=y(o.slice(W+1,re+1).join("")),W=re,m=K),(Y+=this._lineHeight)>r)return ae.text=ne(i)+J,ae.tooltext=ae.oriText,ae.width=t,ae.height=Y-this._lineHeight,ae;z=u(z,$),i=null,G?$=s._getDimentionOfMultiLineText(o.slice(W+1).join(""),this).width:(v=s.getNearestBreakIndex(e.substr(m),d,this),$=y(e.substr(m,v||1)),o.length<m+v&&(K=(o=o.concat(e.substr(o.length,m+v-o.length).split(""))).length-1))}}return z=u(z,$),ae.text=o.join(""),ae.width=z,ae.height=Y,ae}for(h=e.replace(s.spanAdditionRegx,"$2"),e=(e=e.replace(s.spanAdditionRegx,s.spanAdditionReplacer)).replace(/(<br\s*\/*\>)/g,'<span class="'+[s.classNameWithTag," ",s.classNameWithTagBR].join("")+'">$1</span>'),P.innerHTML=e,k=0,S=(_=P[f.childRetriverFn](f.childRetriverString)).length;k<S;k+=1)A=_[k],(f.noClassTesting||s.classNameReg.test(A.className))&&""!==(T=A.innerHTML)&&(" "===T?te=Q.length:"-"===T&&(ee=Q.length),Q.push({spaceIdx:te,dashIdx:ee,elem:A}),q.push(T));if(K=0,(E=(a=Q.length)&&Q[0].elem.offsetWidth)>t||!a)return ae.text="",ae.width=ae.oriTextWidth=ae.height=ae.oriTextHeight=0,ae;if(E>d&&!this._showNoEllipses&&((d=t-2*j)>E?J="..":(d=t-j)>E?J=".":(d=0,J="")),x=Q[0].elem.offsetLeft,C=Q[0].elem.offsetTop,n)for(;K<a;K+=1)(M=(A=Q[K].elem).offsetLeft-x+A.offsetWidth)>d&&(N||(N=K),P.offsetWidth>t&&(L=K,K=a));else for(;K<a;K+=1)F=(A=Q[K].elem).offsetHeight+(A.offsetTop-C),I=null,(M=A.offsetLeft-x+A.offsetWidth)>d?(N||(N=K),M>t&&(X=Q[K].spaceIdx,U=Q[K].dashIdx,X>W?(Q[X].elem.innerHTML="<br/>",W=X):U>W?(Q[U].elem.innerHTML=U===K?"<br/>-":"-<br/>",W=U):A.parentNode.insertBefore(I=l.createElement("br"),A),A.offsetHeight+A.offsetTop>r?(I?I.parentNode.removeChild(I):W===U?Q[U].elem.innerHTML="-":Q[X].elem.innerHTML=" ",L=K,K=a):N=null)):F>r&&(L=K,K=a);if(L<a){for(ae.isTruncated=!0,N=N||L,K=a-1;K>=N;K-=1)(A=Q[K].elem).parentNode.removeChild(A);for(;K>=0;K-=1)A=Q[K].elem,s.classNameBrReg.test(A.className)?A.parentNode.removeChild(A):K=0}return ae.text=P.innerHTML.replace(s.spanRemovalRegx,"$1").replace(/\&\;/g,"&"),ae.isTruncated&&(ae.text+=J,ae.tooltext=h),ae.height=P.offsetHeight,ae.width=P.offsetWidth,ae}return ae.error=new Error("Body Tag Missing!"),ae},p.prototype.getSize=function(e,t,r){if(void 0===e&&(e=""),void 0===t&&(t=!0),void 0===r&&(r={}),!this._init)return!1;e===undefined||null===e?e="":"string"!=typeof e&&(e=e.toString());var n,i,o,l,c,h,f=0,g=0,p={},m=r.hasHTMLTag,v=r.hasOnlyBrTag;if(void 0===m&&(m=s.xmlTagRegEx.test(e)||s.nbspRegex.test(e)),void 0===v&&(v=s._hasOnlyBRTag(e)),this.requireDiv=m&&!v,r.cleanText||(e=e.replace(s.ltgtRegex,(function(e){return"<"===e?"<":">"}))),this._updateStyle(),h=this._container,!t)return this._calCharDimWithCache(e);for(l=0,c=(n=e.split("")).length;l<c;l++)i=n[l],o=this._calCharDimWithCache(i,!1,n.length),g=u(g,o.height),f+=o.width,p[i]=o.width;return v?(0,a["default"])({},s._getDimentionOfMultiLineText(e,this),{detailObj:p}):m?(h.innerHTML=e,{width:h.offsetWidth,height:h.offsetHeight,detailObj:p}):{width:d(f),height:g,detailObj:p}},p.prototype.getOriSize=function(e,t,r){return void 0===e&&(e=""),void 0===t&&(t=!0),void 0===r&&(r={}),this.getSize(e,t,r)},p.prototype.dispose=function(){return this._init?(this._containerManager&&this._containerManager.dispose&&this._containerManager.dispose(),delete this._container,delete this._context,delete this._cache,delete this._containerManager,delete this._containerObj,delete this.id,delete this.style,delete this.parentContainer,delete this._showNoEllipses,this):this};var m=p;t["default"]=m},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n={init:function(e){var t=e.document,r=e.navigator.userAgent,a=Math.ceil,i=Math.floor,o="fusioncharts-smartlabel-",s=o+"container",l=o+"tag";return n={win:e,containerClass:s,classNameWithTag:l,classNameWithTagBR:"fusioncharts-smartlabel-br",maxDefaultCacheLimit:1e3,classNameReg:/\bfusioncharts-smartlabel-tag\b/,classNameBrReg:/\bfusioncharts-smartlabel-br\b/,spanAdditionRegx:/(<[^<\>]+?\>)|(&(?:[a-z]+|#[0-9]+);|.)/gi,spanAdditionReplacer:'$1<span class="'+l+'">$2</span>',spanRemovalRegx:new RegExp("\\<span[^\\>]+?"+l+"[^\\>]{0,}\\>(.*?)\\<\\/span\\>","ig"),xmlTagRegEx:new RegExp("<[^>][^<]*[^>]+>","i"),brRegex:new RegExp("({br[ ]*})|(<br[ ]*>)|(<br[ ]*/>)|(<BR[ ]*/>)|(<br\\>)","g"),ltgtRegex:/<|>/g,nbspRegex:/ | | /g,htmlSpecialEntityRegex:/&|"|<|>/g,brReplaceRegex:/<br\/>/gi,testStrAvg:"WgI",parentContainerStyle:{position:"absolute",top:"-9999em",whiteSpace:"nowrap",padding:"0px",width:"1px",height:"1px",overflow:"hidden"},supportedStyle:{font:"font",fontFamily:"font-family","font-family":"font-family",fontWeight:"font-weight","font-weight":"font-weight",fontSize:"font-size","font-size":"font-size",lineHeight:"line-height","line-height":"line-height",fontStyle:"font-style","font-style":"font-style"},getDocumentSupport:function(){var n,a,i;return t.getElementsByClassName?(n="getElementsByClassName",a=l,i=!0):(n="getElementsByTagName",a="span",i=!1),{isIE:/msie/i.test(r)&&!e.opera,hasSVG:Boolean(e.SVGAngle||t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")),isHeadLess:new RegExp(" HtmlUnit").test(r),isWebKit:new RegExp(" AppleWebKit/").test(r),childRetriverFn:n,childRetriverString:a,noClassTesting:i}},createContainer:function(e){var r,n;if(e&&(e.offsetWidth||e.offsetHeight)){if(e.appendChild)return e.appendChild(n=t.createElement("DIV")),n.className=s,n.setAttribute("aria-hidden","true"),n.setAttribute("role","presentation"),n}else if((r=t.getElementsByTagName("body")[0])&&r.appendChild)return(n=t.createElement("DIV")).className=s,n.setAttribute("aria-hidden","true"),n.setAttribute("role","presentation"),r.appendChild(n),n},getNearestBreakIndex:function(e,t,r){if(!e||!e.length)return 0;var n,o=r._getWidthFn(),s=0,l=0,c=o(e),u=c/e.length;if(n=t,s=a(t/u),c<t)return e.length-1;for(s>e.length&&(n=t-c,s=e.length);n>0;){if(n=t-o(e.substr(0,s)),!(l=i(n/u)))return s;s+=l}for(;n<0;){if(n=t-o(e.substr(0,s)),!(l=i(n/u)))return s;s+=l}return s},parseStyle:function(e){void 0===e&&(e={});var t={};return t.fontSize=(e.fontSize||e["font-size"]||"12px")+"",t.fontVariant=e.fontVariant||e["font-variant"]||"normal",t.fontWeight=e.fontWeight||e["font-weight"]||"normal",t.fontStyle=e.fontStyle||e["font-style"]||"normal",t.fontFamily=e.fontFamily||e["font-family"]||"Verdana,sans",t},setLineHeight:function(e){var t=e.fontSize;return e.lineHeight=e.lineHeight||e["line-height"]||1.2*parseInt(t,10)+"px",e},_getCleanHeight:function(e){return e=e.replace(/px/g,""),Number(e)},_getDimentionUsingDiv:function(e,t){void 0===e&&(e="");var r=t._container;return e instanceof Array&&(e=e.join("")),r.innerHTML=e,{width:r.offsetWidth,height:r.offsetHeight}},_getDimentionUsingCanvas:function(e,t){void 0===e&&(e="");var r=t.ctx,a=t.style,i=n._getCleanHeight(a.lineHeight);return e=e instanceof Array?(e=e.join("")).replace(/<br \/>/g,""):e.replace(/<br \/>/g,""),{width:r.measureText(e).width,height:i}},_hasOnlyBRTag:function(e){return void 0===e&&(e=""),!n.xmlTagRegEx.test(e)&&n.brRegex.test(e)},_getDimentionOfMultiLineText:function(e,t){void 0===e&&(e="");var r,a,i,o=e.replace(n.brRegex,"<br />"),s=n._getTextArray(o),l=0,c=0,u=t._getWidthFn(),d=n._getCleanHeight(t.style.lineHeight),h=d,f={};for(r=0,a=s.length;r<a;r++)"<br />"===s[r]?(c=Math.max(c,l),l=0,h+=d):(l+=i=u(s[r]),f[s[r]]=i);return{height:h,width:c=Math.max(c,l),detailObj:f}},_getTextArray:function(e){void 0===e&&(e="");var t,r,n,a,i,o,s=[];for(n=(i=e.split("<br />")).length,t=0;t<n;t++){for(a=(o=i[t].split("")).length,r=0;r<a;r++)s.push(o[r]);t!==n-1&&s.push("<br />")}return s},_findLastIndex:function(e,t){var r;for(void 0===e&&(e=[]),r=e.length-1;r>=0;r--)if(e[r]===t)return r;return-1}}}},a=n;t["default"]=a},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(205))["default"].init(window),i=a.win.document,o=a.getDocumentSupport(),s=o.isWebKit?0:4.5;function l(e,t,r){var n;r=(r=r>5?r:5)<20?r:20,this.maxContainers=r,this.first=null,this.last=null,this.containers={},this.length=0,this.rootNode=e,t&&((n=i.createElementNS("http://www.w3.org/2000/svg","svg")).setAttributeNS("http://www.w3.org/2000/svg","xlink","http://www.w3.org/1999/xlink"),n.setAttributeNS("http://www.w3.org/2000/svg","height","0"),n.setAttributeNS("http://www.w3.org/2000/svg","width","0"),this.svgRoot=n,this.rootNode.appendChild(n))}l.prototype.get=function(e){var t,r,n,i=this.containers,o=this.length,s=this.maxContainers,l="";for(r in a.supportedStyle)e[r]!==undefined&&(l+=a.supportedStyle[r]+":"+e[r]+";");if(!l)return!1;if(n=i[l])this.first!==n&&(n.prev&&(n.prev.next=n.next),n.next&&(n.next.prev=n.prev),n.next=this.first,n.next.prev=n,this.last===n&&(this.last=n.prev),n.prev=null,this.first=n);else{if(o>=s)for(t=o-s+1;t--;)this.removeContainer(this.last);n=this.addContainer(l)}return n},l.prototype._makeDivNode=function(e){var t,r=e.keyStr;e.node||(e.node=i.createElement("div"),e.node.className="fusioncharts-div",this.rootNode.appendChild(e.node)),t=e.node,o.isIE&&!o.hasSVG?t.style.setAttribute("cssText",r):t.setAttribute("style",r),t.setAttribute("aria-hidden","true"),t.setAttribute("role","presentation"),t.style.display="inline-block",t.innerHTML=a.testStrAvg,e.lineHeight=t.offsetHeight,e.avgCharWidth=t.offsetWidth/3,o.isBrowserLess?(e.svgText||(e.svgText=i.createElementNS("http://www.w3.org/2000/svg","text"),this.svgRoot.appendChild(t)),(t=e.svgText).setAttribute("style",r),t.textContent=a.testStrAvg,e.lineHeight=t.getBBox().height,e.avgCharWidth=(t.getBBox().width-s)/3,t.textContent="...",e.ellipsesWidth=t.getBBox().width-s,t.textContent=".",e.dotWidth=t.getBBox().width-s):(t.innerHTML="...",e.ellipsesWidth=t.offsetWidth,t.innerHTML=".",e.dotWidth=t.offsetWidth,t.innerHTML="")},l.prototype.addContainer=function(e){var t;return this.containers[e]=t={next:null,prev:null,node:null,ellipsesWidth:0,lineHeight:0,dotWidth:0,avgCharWidth:4,keyStr:e,charCache:{}},t.next=this.first,t.next&&(t.next.prev=t),this.first=t,this.last||(this.last=t),this.length+=1,t},l.prototype.removeContainer=function(e){var t=e.keyStr;t&&this.length&&e&&(this.length-=1,e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),this.first===e&&(this.first=e.next),this.last===e&&(this.last=e.prev),e.node&&e.node.parentNode.removeChild(e.node),delete this.containers[t])},l.prototype.dispose=function(){var e,t=this.containers;for(e in this.maxContainers=null,t)this.removeContainer(t[e]);this.rootNode.parentNode.removeChild(this.rootNode),this.rootNode=null,this.first=null,this.last=null};var c=l;t["default"]=c},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=t.getFile=t.addFile=void 0;var n={},a=function(e){n[e]=!0},i=function(e){return n[e]};t.getFile=i,t.addFile=a;var o={extension:function(e){e.addFile=a,e.getFile=i},name:"fileStore",type:"plugin",requiresFusionCharts:!0};t["default"]=o},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]={options:{chartTypeSourcePath:["typeSourcePath",""],product:["product","v3"],insertMode:["insertMode","replace"],safeMode:["safeMode",!0],overlayButton:["overlayButton"],containerBackgroundColor:["containerBackgroundColor","#ffffff"],containerBackgroundOpacity:["containerBackgroundOpacity",1],containerClassName:["containerClassName","fusioncharts-container"],chartType:["type"],baseChartMessageFont:["baseChartMessageFont","Verdana,sans"],baseChartMessageFontSize:["baseChartMessageFontSize","10"],baseChartMessageColor:["baseChartMessageColor","#666666"],baseChartMessageImageHAlign:["baseChartMessageImageHAlign","middle"],baseChartMessageImageVAlign:["baseChartMessageImageVAlign","middle"],baseChartMessageImageAlpha:["baseChartMessageImageAlpha",100],baseChartMessageImageScale:["baseChartMessageImageScale",100],dataLoadStartMessage:["dataLoadStartMessage","Retrieving data. Please wait."],dataLoadErrorMessage:["dataLoadErrorMessage","Error in loading data."],dataInvalidMessage:["dataInvalidMessage","Invalid data."],dataEmptyMessage:["dataEmptyMessage","No data to display."],typeNotSupportedMessage:["typeNotSupportedMessage","Chart type not supported."],browserNotSupportedMessage:["browserNotSupportedMessage","This browser is not supported."],loadMessage:["loadMessage","Loading chart. Please wait."],renderErrorMessage:["renderErrorMessage","Unable to render chart."],messageURL:["messageURL",""],containerElementId:["renderAt"],renderer:["renderer"],containerElementType:["containerElementType"],showChartLoadingMessage:["showChartLoadingMessage",!0],visibilityTrackingInterval:300,events:["events",{}]},jsVars:{},attributes:{lang:["lang","EN"],id:["id"]},link:["link"],width:["width","400"],height:["height","300"]}},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n,a,i,o,s,l=r(184),c=Math.abs,u=Math.pow,d=Math.round,h={formatnumber:"1",formatnumberscale:"1",forcenumberscale:"0",defaultnumberscale:"",numberscaleunit:["K","M"],numberscalevalue:[1e3,1e3],numberprefix:"",numbersuffix:"",decimals:"",forcedecimals:"0",yaxisvaluedecimals:"2",decimalseparator:".",thousandseparator:",",thousandseparatorposition:[3],indecimalseparator:"",inthousandseparator:"",sformatnumber:"1",sformatnumberscale:"0",sforcenumberscale:"0",sdefaultnumberscale:"",snumberscaleunit:["K","M"],snumberscalevalue:[1e3,1e3],snumberprefix:"",snumbersuffix:"",sdecimals:"2",sforcedecimals:"0",syaxisvaluedecimals:"2",xFormatNumber:"0",xFormatNumberScale:"0",xforcenumberscale:"0",xDefaultNumberScale:"",xNumberScaleUnit:["K","M"],xNumberScaleValue:[1e3,1e3],xNumberPrefix:"",xNumberSuffix:""},f={mscombidy2d:{formatnumberscale:"1"}},g=function(){function e(e,t){var r=e.getName&&e.getName(),n=this.csConf=(0,l.extend2)({},h),a=f[r];this.cleaneValueCacheStore={},this.percentStrCacheStore={},a&&(n=(0,l.extend2)(n,a)),this.linkedItems={chart:e},this.configure(t)}var t=e.prototype;return t.setDefaults=function(){var e=this.linkedItems.chart,t=e.getName&&e.getName(),r=this.csConf=(0,l.extend2)({},h),n=f[t];n&&(0,l.extend2)(r,n)},t.configure=function(e){var t,r,n,a,i,o,s,c,u,d,f,g,p,m,v,b,y,x,C,w,_,k,S,E,A,T,M,F,I=this,L=I.linkedItems.chart,N=e||L.getFromEnv("chart-attrib"),D=L.getName&&L.getName(),O=L.config,R=I.csConf;if(O||(O=L),I.csConf=R,I.useScaleRecursively=O.useScaleRecursively,(0,l.getValidValue)(N.numberscaleunit)&&(t=N.numberscaleunit.split(",")),(r=(0,l.getValidValue)(N.snumberscaleunit,N.numberscaleunit))&&(r=r.split(",")),(n=(0,l.getValidValue)(N.xnumberscaleunit,N.numberscaleunit))&&(n=n.split(",")),(a=(0,l.getValidValue)(N.ticknumberscaleunit,N.numberscaleunit))&&(a=a.split(",")),(i=(0,l.getValidValue)(N.ynumberscaleunit,N.numberscaleunit))&&(i=i.split(",")),(0,l.getValidValue)(N.numberscalevalue)&&(o=N.numberscalevalue.split(",")),(f=(0,l.getValidValue)(N.snumberscalevalue,N.numberscalevalue))&&(f=f.split(",")),(s=(0,l.getValidValue)(N.xnumberscalevalue,N.numberscalevalue))&&(s=s.split(",")),(c=(0,l.getValidValue)(N.ticknumberscalevalue,N.numberscalevalue))&&(c=c.split(",")),(u=(0,l.getValidValue)(N.ynumberscalevalue,N.numberscalevalue))&&(u=u.split(",")),(0,l.getValidValue)(N.thousandseparatorposition))for(y=(d=N.thousandseparatorposition.split(",")).length,C=h.thousandseparatorposition[0];y--;)(x=parseInt(d[y],10))<=0&&(x=C),C=d[y]=x;w=(0,l.pluckNumber)(N.scalerecursively,0),_=(0,l.pluckNumber)(N.sscalerecursively,w),k=(0,l.pluckNumber)(N.xscalerecursively,w),S=(0,l.pluckNumber)(N.maxscalerecursion,-1),E=(0,l.pluckNumber)(N.smaxscalerecursion,S),A=(0,l.pluckNumber)(N.xmaxscalerecursion,S),T=(0,l.getValidValue)(N.scaleseparator," "),M=(0,l.getValidValue)(N.sscaleseparator,T),F=(0,l.getValidValue)(N.xscaleseparator,T),S||(S=-1),I.baseConf=b={cacheStore:[],formatnumber:(0,l.pluck)(N.formatnumber,R.formatnumber),formatnumberscale:(0,l.pluck)(N.formatnumberscale,O.formatnumberscale,R.formatnumberscale),forcenumberscale:(0,l.pluck)(N.forcenumberscale,R.forcenumberscale),defaultnumberscale:(0,l.getFirstValue)(N.defaultnumberscale,R.defaultnumberscale),numberscaleunit:(0,l.pluck)(t,R.numberscaleunit).concat(),numberscalevalue:(0,l.pluck)(o,R.numberscalevalue).concat(),numberprefix:(0,l.getFirstValue)(N.numberprefix,R.numberprefix),numbersuffix:(0,l.getFirstValue)(N.numbersuffix,R.numbersuffix),decimalprecision:parseInt("auto"===N.decimals?R.decimalprecision:(0,l.pluck)(N.decimals,N.decimalprecision,O.decimals,R.decimals,O.decimalprecision,R.decimalprecision),10),forcedecimals:(0,l.pluck)(N.forcedecimals,R.forcedecimals),decimalseparator:(0,l.pluck)(N.decimalseparator,R.decimalseparator),thousandseparator:(0,l.pluck)(N.thousandseparator,R.thousandseparator),thousandseparatorposition:(0,l.pluck)(d,R.thousandseparatorposition),indecimalseparator:(0,l.getFirstValue)(N.indecimalseparator,R.indecimalseparator),inthousandseparator:(0,l.getFirstValue)(N.inthousandseparator,R.inthousandseparator),scalerecursively:w,maxscalerecursion:S,scaleseparator:T},(0,l.getValidValue)(b.inthousandseparator)&&(I.baseConf._REGinthousandseparator=new RegExp((0,l.regescape)(b.inthousandseparator),"g")),(0,l.getValidValue)(b.indecimalseparator)&&(I.baseConf._REGindecimalseparator=new RegExp((0,l.regescape)(b.indecimalseparator))),I.Y=[],g={cacheStore:[],formatnumber:b.formatnumber,formatnumberscale:b.formatnumberscale,forcenumberscale:b.forcenumberscale,defaultnumberscale:b.defaultnumberscale,numberscaleunit:b.numberscaleunit.concat(),numberscalevalue:b.numberscalevalue.concat(),numberprefix:b.numberprefix,numbersuffix:b.numbersuffix,decimalprecision:b.decimalprecision,forcedecimals:b.forcedecimals,decimalseparator:b.decimalseparator,thousandseparator:b.thousandseparator,thousandseparatorposition:b.thousandseparatorposition,indecimalseparator:b.indecimalseparator,inthousandseparator:b.inthousandseparator,scalerecursively:w,maxscalerecursion:S,scaleseparator:T},O.useScaleRecursively&&(g.numberscalevalue&&g.numberscalevalue.length)===(g.numberscaleunit&&g.numberscaleunit.length)||(g.scalerecursively=w=0),m={cacheStore:[],formatnumber:g.formatnumber,formatnumberscale:g.formatnumberscale,forcenumberscale:g.forcenumberscale,defaultnumberscale:g.defaultnumberscale,numberscaleunit:g.numberscaleunit.concat(),numberscalevalue:g.numberscalevalue.concat(),numberprefix:g.numberprefix,numbersuffix:g.numbersuffix,decimalprecision:parseInt((0,l.pluck)(N.yaxisvaluedecimals,g.decimalprecision,2),10),forcedecimals:(0,l.pluck)(N.forceyaxisvaluedecimals,g.forcedecimals),decimalseparator:g.decimalseparator,thousandseparator:g.thousandseparator,thousandseparatorposition:g.thousandseparatorposition.concat(),indecimalseparator:g.indecimalseparator,inthousandseparator:g.inthousandseparator,scalerecursively:w,maxscalerecursion:S,scaleseparator:T},v={cacheStore:[],formatnumber:(0,l.pluck)(N.sformatnumber,h.sformatnumber),formatnumberscale:(0,l.pluck)(N.sformatnumberscale,h.sformatnumberscale),forcenumberscale:(0,l.pluck)(N.sforcenumberscale,h.sforcenumberscale),defaultnumberscale:(0,l.getFirstValue)(N.sdefaultnumberscale,g.defaultnumberscale),numberscaleunit:(0,l.pluck)(r,h.snumberscaleunit).concat(),numberscalevalue:(0,l.pluck)(f,h.snumberscalevalue).concat(),numberprefix:(0,l.getFirstValue)(N.snumberprefix,h.snumberprefix),numbersuffix:(0,l.getFirstValue)(N.snumbersuffix,h.snumbersuffix),decimalprecision:parseInt((0,l.pluck)(N.syaxisvaluedecimals,N.sdecimals,N.decimals,h.sdecimals),10),forcedecimals:(0,l.pluck)(N.forcesyaxisvaluedecimals,N.sforcedecimals,N.forcedecimals,h.sforcedecimals),decimalseparator:(0,l.pluck)(N.decimalseparator,h.decimalseparator),thousandseparator:(0,l.pluck)(N.thousandseparator,h.thousandseparator),thousandseparatorposition:g.thousandseparatorposition.concat(),indecimalseparator:(0,l.pluck)(N.indecimalseparator,h.indecimalseparator),inthousandseparator:(0,l.pluck)(N.inthousandseparator,h.inthousandseparator),scalerecursively:_,maxscalerecursion:E,scaleseparator:M},(p=(0,l.extend2)({},v)).decimalprecision=parseInt((0,l.pluck)(N.sdecimals,N.decimals,N.syaxisvaluedecimals,h.sdecimals),10),p.forcedecimals=(0,l.pluck)(N.sforcedecimals,N.forcedecimals,N.forcesyaxisvaluedecimals,h.sforcedecimals),p.cacheStore=[],O.useScaleRecursively&&(v.numberscalevalue&&v.numberscalevalue.length)===(v.numberscaleunit&&v.numberscaleunit.length)||(v.scalerecursively=_=0),/^(bubble|scatter|selectscatter|zoomscatter)$/gi.test(D)&&(m.formatnumber=(0,l.pluck)(N.yformatnumber,m.formatnumber),m.formatnumberscale=(0,l.pluck)(N.yformatnumberscale,m.formatnumberscale),m.forcenumberscale=(0,l.pluck)(N.yforcenumberscale,m.forcenumberscale),m.defaultnumberscale=(0,l.getFirstValue)(N.ydefaultnumberscale,m.defaultnumberscale),m.numberscaleunit=(0,l.pluck)(i,m.numberscaleunit),m.numberscalevalue=(0,l.pluck)(u,m.numberscalevalue),m.numberprefix=(0,l.pluck)(N.ynumberprefix,m.numberprefix),m.numbersuffix=(0,l.pluck)(N.ynumbersuffix,m.numbersuffix),g.formatnumber=(0,l.pluck)(N.yformatnumber,g.formatnumber),g.formatnumberscale=(0,l.pluck)(N.yformatnumberscale,g.formatnumberscale),g.forcenumberscale=(0,l.pluck)(N.yforcenumberscale,g.forcenumberscale),g.defaultnumberscale=(0,l.getFirstValue)(N.ydefaultnumberscale,g.defaultnumberscale),g.numberscaleunit=(0,l.pluck)(N.ynumberscaleunit,g.numberscaleunit.concat()),g.numberscalevalue=(0,l.pluck)(N.ynumberscalevalue,g.numberscalevalue.concat()),g.numberprefix=(0,l.pluck)(N.ynumberprefix,g.numberprefix),g.numbersuffix=(0,l.pluck)(N.ynumbersuffix,g.numbersuffix)),/^(pie2d|pie3d|doughnut2d|doughnut3d|marimekko|pareto2d|pareto3d)$/.test(D)&&(g.decimalprecision=(0,l.pluck)(N.decimals,"2")),w&&(g.numberscalevalue.push(1),g.numberscaleunit.unshift(g.defaultnumberscale),m.numberscalevalue.push(1),m.numberscaleunit.unshift(m.defaultnumberscale)),_&&(v.numberscalevalue.push(1),v.numberscaleunit.unshift(v.defaultnumberscale),p.numberscalevalue.push(1),p.numberscaleunit.unshift(p.defaultnumberscale)),I.Y[0]={yAxisLabelConf:m,dataLabelConf:g},I.Y[1]={yAxisLabelConf:v,dataLabelConf:p},I.paramLabels=g,I.param1=m,I.param2=v,I.paramLabels2=p,I.paramX={cacheStore:[],formatnumber:(0,l.pluck)(N.xformatnumber,b.formatnumber),formatnumberscale:(0,l.pluck)(N.xformatnumberscale,b.formatnumberscale),forcenumberscale:(0,l.pluck)(N.xforcenumberscale,b.forcenumberscale),defaultnumberscale:(0,l.getFirstValue)(N.xdefaultnumberscale,b.defaultnumberscale),numberscaleunit:(0,l.pluck)(n,b.numberscaleunit.concat()),numberscalevalue:(0,l.pluck)(s,b.numberscalevalue.concat()),numberprefix:(0,l.pluck)(N.xnumberprefix,b.numberprefix),numbersuffix:(0,l.pluck)(N.xnumbersuffix,b.numbersuffix),decimalprecision:parseInt((0,l.pluck)(N.xaxisvaluedecimals,N.xaxisvaluesdecimals,b.decimalprecision,2),10),forcedecimals:(0,l.pluck)(N.forcexaxisvaluedecimals,0),decimalseparator:b.decimalseparator,thousandseparator:b.thousandseparator,thousandseparatorposition:b.thousandseparatorposition.concat(),indecimalseparator:b.indecimalseparator,inthousandseparator:b.inthousandseparator,scalerecursively:k,maxscalerecursion:A,scaleseparator:F},I.paramLegend=(0,l.extend2)((0,l.extend2)({},b),{cacheStore:[],decimalprecision:parseInt((0,l.pluckNumber)(N.legendvaluedecimals,b.decimalprecision,2),10),forcedecimals:(0,l.pluckNumber)(N.legendvalueforcedecimals,b.forcedecimals,0),formatnumberscale:(0,l.pluck)(N.legendvalueformatnumberscale,b.formatnumberscale),forcenumberscale:(0,l.pluck)(N.legendvalueforcenumberscale,b.forcenumberscale),formatnumber:(0,l.pluck)(N.legendvalueformatnumber,b.formatnumber)}),w&&(I.paramLegend.numberscalevalue.push(1),I.paramLegend.numberscaleunit.unshift(I.paramLegend.defaultnumberscale)),O.useScaleRecursively&&(I.paramX.numberscalevalue&&I.paramX.numberscalevalue.length)===(I.paramX.numberscaleunit&&I.paramX.numberscaleunit.length)||(I.paramX.scalerecursively=k=0),k&&(I.paramX.numberscalevalue.push(1),I.paramX.numberscaleunit.unshift(I.paramX.defaultnumberscale)),I.paramScale={cacheStore:[],formatnumber:(0,l.pluck)(N.tickformatnumber,b.formatnumber),formatnumberscale:(0,l.pluck)(N.tickformatnumberscale,b.formatnumberscale),forcenumberscale:(0,l.pluck)(N.tickforcenumberscale,b.forcenumberscale),defaultnumberscale:(0,l.getFirstValue)(N.tickdefaultnumberscale,b.defaultnumberscale),numberscaleunit:(0,l.pluck)(a,b.numberscaleunit.concat()),numberscalevalue:(0,l.pluck)(c,b.numberscalevalue.concat()),numberprefix:(0,l.pluck)(N.ticknumberprefix,b.numberprefix),numbersuffix:(0,l.pluck)(N.ticknumbersuffix,b.numbersuffix),decimalprecision:parseInt((0,l.pluck)(N.tickvaluedecimals,b.decimalprecision,"2"),10),forcedecimals:(0,l.pluck)(N.forcetickvaluedecimals,b.forcedecimals,0),decimalseparator:b.decimalseparator,thousandseparator:b.thousandseparator,thousandseparatorposition:b.thousandseparatorposition.concat(),indecimalseparator:b.indecimalseparator,inthousandseparator:b.inthousandseparator,scalerecursively:w,maxscalerecursion:S,scaleseparator:T},w&&(I.paramScale.numberscalevalue.push(1),I.paramScale.numberscaleunit.unshift(I.paramScale.defaultnumberscale)),I.timeConf={inputDateFormat:(0,l.pluck)(N.inputdateformat,N.dateformat,"mm/dd/yyyy"),outputDateFormat:(0,l.pluck)(N.outputdateformat,N.inputdateformat,N.dateformat,"mm/dd/yyyy"),days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],daySuffix:["","st","nd","rd","th","th","th","th","th","th","th","th","th","th","th","th","th","th","th","th","th","st","nd","rd","th","th","th","th","th","th","th","st"]},I.cleaneValueCacheStore={},I.percentStrCacheStore={}},t.dispose=function(){var e=this;e.Y&&delete e.Y,e.cleaneValueCacheStore&&delete e.cleaneValueCacheStore,e.percentStrCacheStore&&delete e.percentStrCacheStore,e.paramLabels&&delete e.paramLabels,e.param1&&delete e.param1,e.param2&&delete e.param2,e.paramLabels2&&delete e.paramLabels2,e.csConf&&delete e.csConf,e.chart&&delete e.chart,e.baseConf&&delete e.baseConf,e.timeConf&&delete e.timeConf,e.paramX&&delete e.paramX,e.paramScale&&delete e.paramScale},t.parseMLAxisConf=function(e,t){var r,n,a,i,o,s,u,d,f=this.baseConf,g=this.csConf,p=(0,l.pluckNumber)(e.scalerecursively,f.scalerecursively),m=(0,l.pluckNumber)(e.maxscalerecursion,f.maxscalerecursion),v=(0,l.getValidValue)(e.scaleseparator,f.scaleseparator),b=(0,l.pluckNumber)(t,this.Y.length);if((0,l.getValidValue)(e.numberscaleunit)&&(n=e.numberscaleunit.split(",")),(0,l.getValidValue)(e.numberscalevalue)&&(a=e.numberscalevalue.split(",")),m||(m=-1),(0,l.getValidValue)(e.thousandseparatorposition))for(s=(o=e.thousandseparatorposition.split(",")).length,d=h.thousandseparatorposition[0];s--;)(u=(0,l.pluckNumber)(c(o[s])))?d=u:u=d,o[s]=u;r={cacheStore:[],formatnumber:(0,l.pluck)(e.formatnumber,f.formatnumber),formatnumberscale:(0,l.pluck)(e.formatnumberscale,f.formatnumberscale),forcenumberscale:(0,l.pluck)(e.forcenumberscale,f.forcenumberscale),defaultnumberscale:(0,l.getFirstValue)(e.defaultnumberscale,f.defaultnumberscale),numberscaleunit:(0,l.pluck)(n,f.numberscaleunit).concat(),numberscalevalue:(0,l.pluck)(a,f.numberscalevalue).concat(),numberprefix:(0,l.getFirstValue)(e.numberprefix,f.numberprefix),numbersuffix:(0,l.getFirstValue)(e.numbersuffix,f.numbersuffix),forcedecimals:(0,l.pluck)(e.forcedecimals,f.forcedecimals),decimalprecision:parseInt("auto"===e.decimals?g.decimalprecision:(0,l.pluck)(e.decimals,f.decimalprecision),10),decimalseparator:(0,l.pluck)(e.decimalseparator,f.decimalseparator),thousandseparator:(0,l.pluck)(e.thousandseparator,f.thousandseparator),thousandseparatorposition:(0,l.pluck)(o,f.thousandseparatorposition),indecimalseparator:(0,l.getFirstValue)(e.indecimalseparator,f.indecimalseparator),inthousandseparator:(0,l.getFirstValue)(e.inthousandseparator,f.inthousandseparator),scalerecursively:p,maxscalerecursion:m,scaleseparator:v},this.useScaleRecursively&&(r.numberscalevalue&&r.numberscalevalue.length)===(r.numberscaleunit&&r.numberscaleunit.length)||(r.scalerecursively=p=0),i={cacheStore:[],formatnumber:r.formatnumber,formatnumberscale:r.formatnumberscale,forcenumberscale:r.forcenumberscale,defaultnumberscale:r.defaultnumberscale,numberscaleunit:r.numberscaleunit.concat(),numberscalevalue:r.numberscalevalue.concat(),numberprefix:r.numberprefix,numbersuffix:r.numbersuffix,decimalprecision:parseInt((0,l.pluck)(e.yaxisvaluedecimals,r.decimalprecision,2),10),forcedecimals:(0,l.pluck)(e.forceyaxisvaluedecimals,r.forcedecimals),decimalseparator:r.decimalseparator,thousandseparator:r.thousandseparator,thousandseparatorposition:r.thousandseparatorposition.concat(),indecimalseparator:r.indecimalseparator,inthousandseparator:r.inthousandseparator,scalerecursively:p,maxscalerecursion:m,scaleseparator:v},p&&(r.numberscalevalue.push(1),r.numberscaleunit.unshift(r.defaultnumberscale),i.numberscalevalue.push(1),i.numberscaleunit.unshift(i.defaultnumberscale)),this.Y[b]={dataLabelConf:r,yAxisLabelConf:i}},t.percentValue=function(e){var t,r=this.percentStrCacheStore[e];return void 0===r&&(t=isNaN(this.paramLabels.decimalprecision)?"2":this.paramLabels.decimalprecision,r=this.percentStrCacheStore[e]=s(o(e,t,this.paramLabels.forcedecimals),this.paramLabels.decimalseparator,this.paramLabels.thousandseparator,this.paramLabels.thousandseparatorposition)+"%"),r},t.yAxisPercentValue=function(e,t){window.th=this;var r,n,a=this.Y[t]||(t?this.Y[1]:this.Y[0]);return void 0===(r=(a=a&&a.yAxisLabelConf||this.baseConf).cacheStore[e])&&(n=isNaN(a.decimalprecision)?"2":a.decimalprecision,r=a.cacheStore[e]=s(o(e,n,a.forcedecimals),a.decimalseparator,a.thousandseparator,a.thousandseparatorposition)+"%"),r},t.getCleanValue=function(e,t){var r,n=this.cleaneValueCacheStore[e];return(void 0===n||t)&&(r=i(e,this.baseConf),this.cleaneValueCacheStore[e]=n=isNaN(r)?null:t?c(r):r),n},t.dataLabels=function(e,t){var r,a=this.Y[t]||(t?this.Y[1]:this.Y[0]);return void 0===(r=(a=a&&a.dataLabelConf||this.baseConf).cacheStore[e])&&(r=a.cacheStore[e]=n(e,a)),r},t.formatValue=function(e){var t,r=this.baseConf;return void 0===(t=r.cacheStore[e])&&(t=r.cacheStore[e]=n(e,r)),t},t.yAxis=function(e,t){var r,a=this.Y[t]||(t?this.Y[1]:this.Y[0]);return void 0===(r=(a=a&&a.yAxisLabelConf||this.baseConf).cacheStore[e])&&(r=a.cacheStore[e]=n(e,a,!0)),r},t.xAxis=function(e){var t=this.paramX.cacheStore[e];return void 0===t&&(t=this.paramX.cacheStore[e]=n(e,this.paramX,!0)),t},t.sYAxis=function(e){var t,r=this.Y[1];return void 0===(t=(r=r&&r.yAxisLabelConf||this.baseConf).cacheStore[e])&&(t=r.cacheStore[e]=n(e,r)),t},t.scale=function(e){var t=this.paramScale.cacheStore[e];return void 0===t&&(t=this.paramScale.cacheStore[e]=n(e,this.paramScale)),t},t.legendValue=function(e){var t=this.paramLegend.cacheStore[e];return void 0===t&&(t=this.paramLegend.cacheStore[e]=n(e,this.paramLegend)),t},t.legendPercentValue=function(e){var t,r=this.percentStrCacheStore[e],n=this.paramLegend;return void 0===r&&(t=isNaN(n.decimalprecision)?"2":n.decimalprecision,r=this.percentStrCacheStore[e]=s(o(e,t,n.forcedecimals),n.decimalseparator,n.thousandseparator,n.thousandseparatorposition)+"%"),r},t.getDateValue=function(e){var t,r,n,a,i,o=e;return o&&!/\//.test(this.timeConf.inputDateFormat)&&(o=o.replace(new RegExp(this.timeConf.inputDateFormat.replace(/[a-z]/gi,"").slice(0,1),"g"),"/")),o=/^dd/.test(this.timeConf.inputDateFormat)&&o&&o.replace(/(\d{1,2})\/(\d{1,2})\/(\d{2,4})/,"$2/$1/$3")||o,/\s24:/.test(o)?(o=o.replace(/\s24:/," 00:"),(t=new Date(o)).setDate(t.getDate()+1)):t=new Date(o),!(i=t.getTime())&&o&&/\:/.test(o)&&(o=o.split(":"),r=(0,l.pluckNumber)(o[0],0),n=(0,l.pluckNumber)(o[1],0),a=(0,l.pluckNumber)(o[2],0),r=r>23?24===r&&0===n&&0===a?r:23:r,n=n>59?59:n,a=a>59?59:a,(t=new Date).setHours(r),t.setMinutes(n),t.setSeconds(a),i=t.getTime()),{ms:i,date:t}},t.getFormattedDate=function(e,t){var r="object"==typeof e&&e||new Date(e),n=this.timeConf,a=(0,l.pluck)(t,n.outputDateFormat),i=r.getFullYear(),o=r.getMonth(),s=r.getDate(),c=r.getDay(),u=r.getMinutes(),d=r.getSeconds(),h=r.getHours();return u=u>9?""+u:"0"+u,d=d>9?""+d:"0"+d,h=h>9?""+h:"0"+h,a.match(/dnl/)&&(a=a.replace(/dnl/gi,n.days[c])),a.match(/dns/)&&(a=a.replace(/dns/gi,n.days[c]&&n.days[c].substr(0,3))),a.match(/dd/)&&(a=a.replace(/dd/gi,s)),a.match(/mnl/)&&(a=a.replace(/mnl/gi,n.months[o])),a.match(/mns/)&&(a=a.replace(/mns/gi,n.months[o]&&n.months[o].substr(0,3))),a.match(/mm/)&&(a=a.replace(/mm/gi,o+1)),a.match(/yyyy/)&&(a=a.replace(/yyyy/gi,i)),a.match(/yy/)&&(a=a.replace(/yy/gi,(i%1e3%100+"").replace(/^(\d)$/,"0$1"))),a.match(/hh12/)&&(a=a.replace(/hh12/gi,h%12||12)),a.match(/hh/)&&(a=a.replace(/hh/gi,h)),a.match(/mn/)&&(a=a.replace(/mn/gi,u)),a.match(/ss/)&&(a=a.replace(/ss/gi,d)),a.match(/ampm/)&&(a=a.replace(/ampm/gi,h<12?"AM":"PM")),a.match(/ds/)&&(a=a.replace(/ds/gi,n.daySuffix[s])),a},e}();n=function(e,t,r){var n,i,c,u,d,h,f,g,p,m,v,b=e;if(null!==b){if(n=(b=Number(b))+"",i=1===Number(t.formatnumberscale)?t.defaultnumberscale:"",m=(p=n.split(".")[1])?p.length:t.forcedecimals?"2":"",1===Number(t.formatnumberscale)&&(n=(v=a(b,t.defaultnumberscale,t.numberscalevalue,t.numberscaleunit,t.scalerecursively,t.forcenumberscale)).value,b=v.value,i=v.scale),t.scalerecursively&&0!==t.formatnumberscale&&"0"!==t.formatnumberscale){if(c=v.value,u=v.scale,d=-1===Number(t.maxscalerecursion)?c.length:Math.min(c.length,t.maxscalerecursion),1===Number(t.formatnumber))for(n=l.BLANKSTRING,g=0;g<d;g++)f=(h=0===g?c[g]:Math.abs(c[g]))+"",g===d-1&&(f=o(h,(0,l.pluck)(t.decimalprecision,m),t.forcedecimals)),n=n+s(f,t.decimalseparator,t.thousandseparator,t.thousandseparatorposition)+u[g]+(g<d-1?t.scaleseparator:l.BLANKSTRING);else for(n=l.BLANKSTRING,g=0;g<d;g++)n=n+(0===g?c[g]:Math.abs(c[g])+"")+u[g]+(g<d-1?t.scaleseparator:"");n=(t.numberprefix||"")+n+(t.numbersuffix||"")}else 1===Number(t.formatnumber)&&(n=o(b,(0,l.pluck)(t.decimalprecision,m),t.forcedecimals),n=s(n,t.decimalseparator,t.thousandseparator,t.thousandseparatorposition,r)),n=(t.numberprefix||"")+n+i+(t.numbersuffix||"");return n}},a=function(e,t,r,n,a,i){var o,s,c,u,d={},h=t,f=0,g=[],p=[],m=e,v=(0,l.pluckNumber)(i)||0;if(a){for(o=(0,l.pluckNumber)(r[0])||1e3,f=0;f<r.length;f++){if(c=(0,l.pluckNumber)(r[f])||1e3,!(Math.abs(Number(m))>=c&&f<r.length-1)){0===f&&""===t&&v?(m=Number(m)/o,g.push(m),p.push(n[1]||"")):(1===f&&""===t&&v?(s=m+(g.length?g.pop():0),p.pop(),g.push(s)):g.push(m),p.push(n[f]));break}m=(m-(u=m%c))/c,0===f&&0!==u&&""===n[f]&&v?(g.push(u/o),p.push(n[1]||"")):0!==u&&(1===f&&""===t&&v?(s=u+(g.length?g.pop():0),p.pop(),g.push(s)):g.push(u),p.push(n[f]))}g.reverse(),p.reverse(),d.value=g,d.scale=p}else{if(r.length===n.length)for(f=0;f<r.length;f++){if(!((c=(0,l.pluckNumber)(r[f])||1e3)&&Math.abs(Number(m))>=c)){0===f&&""===t&&v&&(h=n[0]||"",m=Number(m)/c);break}h=n[f]||"",m=Number(m)/c}d.value=m,d.scale=h}return d},o=function(e,t,r){var n,a,i,o,s=e,l=t;if(l<=0)return d(s)+"";if(isNaN(l))return(s+="").length>12&&-1!==s.indexOf(".")&&(l=12-s.split(".")[0].length,n=u(10,l),s=a=d(s*n)/n+""),s;if(n=u(10,l),a=d(s*n)/n+"",1===Number(r))for(-1===a.indexOf(".")&&(a+=".0"),i=l-a.split(".")[1].length,o=1;o<=i;o++)a+="0";return a},s=function(e,t,r,n,a){var i,o,s,l,c=Number(e),u="",d=!1,h="",f="",g=0,p=0;if(isNaN(c))return"";if(c>1e15)return i=a?1:14,c.toExponential(i);if(g=0,p=e.length,-1!==e.indexOf(".")&&(u=e.substring(e.indexOf(".")+1,e.length),p=e.indexOf(".")),c<0&&(d=!0,g=1),(o=(h=e.substring(g,p)).length)<(l=n[s=n.length-1]))f=h;else for(;o>=l;)f=(o-l?r:"")+h.substr(o-l,l)+f,(o-=l)<(l=(s-=1)<=0?n[0]:n[s])&&(f=h.substring(o,0)+f);return""!==u&&(f=f+t+u),!0===d&&(f="-"+f),f},i=function(e,t){var r=e;return r+="",t._REGinthousandseparator&&(r=r.replace(t._REGinthousandseparator,"")),t._REGindecimalseparator&&(r=r.replace(t._REGindecimalseparator,".")),r=parseFloat(r),isFinite(r)?r:NaN};var p=g;t["default"]=p},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(211));a["default"].stopPartialEventPropagation=!0,a["default"]._stopabsolutePath=!0;var i={extension:a["default"],name:"redraphael",type:"plugin"};t["default"]=i},function(e,t,r){"use strict";(function(e){var n=r(178),a=r(182);t.__esModule=!0,t["default"]=void 0;var i,o=n(r(212)),s=a(r(187)),l="undefined"!=typeof window?window:void 0!==e?e:null;function c(e){var t,r,n;return c._url===undefined&&(c._url=g),c.is(e,S)?u?e():o["default"].on("raphael.DOMload",e):c.is(e,C)?c._engine.create[v](c,e.splice(0,3+c.is(e[0],y))).add(e):(r=(0,s.getArrayCopy)(arguments),t=Array.prototype.slice.call(r,0),c.is(t[t.length-1],S)?(n=t.pop(),u?n.call(c._engine.create[v](c,t)):o["default"].on("raphael.DOMload",(function(){n.call(c._engine.create[v](c,t))}))):c._engine.create[v](c,arguments))}c.upgrade="1.0.0",c.version="2.1.0",c.eve=o["default"];var u,d,h,f,g="",p=" ",m="hasOwnProperty",v="apply",b="concat",y="number",x="string",C="array",w="object",_="split",k="none",S="function",E=/R/i,A=/trident/i.test(l.navigator.userAgent),T={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0},M=Array.prototype.splice,F=function(){}.hasOwnProperty("prototype"),I={doc:l.document,win:l},L=I.doc,N=I.win,D=c.safePointerEventMapping={mouseover:"pointerover",mousedown:"pointerdown",mousemove:"pointermove",mouseup:"pointerup",mouseout:"pointerout"},O=N.navigator,R=c.supportsTouch="ontouchstart"in L||O.maxTouchPoints||O.msMaxTouchPoints,P=c.supportsPointer="onpointerover"in L,V=c.isEdge=/Edge/.test(O.userAgent),B=c.isIE11=/trident/i.test(O.userAgent)&&/rv:11/i.test(O.userAgent)&&!N.opera,j=c.isFirefox=/Firefox/.test(O.userAgent),G=c.isWindows=/Windows/.test(O.userAgent),H="m",z="M",U="L",X=[],W=/[a-z]/i,$=function(e,t,r){var n=t.toLowerCase(),a=[],i=0;if(X.length=0,r.replace(Se,(function(e,t){t&&X.push(+t)})),"r"===n)d.push([t][b](X));else if("z"===n)d.push([t]);else if(X.length>=T[n]){for(;i<X.length;)i%T[n]?a.push(X[i]):(a.length&&d.push(a)&&(a=[]),a.push(t,X[i])),i++;d.push(a)}},Y=function(){},q=(c.ca=c.customAttributes=Y.prototype,function(){this.ca=this.customAttributes=new Y,this._CustomAttributes=function(){},this._CustomAttributes.prototype=this.ca,this._elementsById={},this.id=c._oid++,(0,o["default"])("raphael.new",this)}),K=c.fn=q.prototype=c.prototype,J="click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel dragstart dragmove dragend"[_](p),Z={dragstart:"touchstart",dragmove:"touchmove",dragend:"touchend"},Q=String,ee=N.parseFloat,te=N.parseInt,re=Math,ne=re.max,ae=re.min,ie=re.abs,oe=re.pow,se=re.cos,le=re.sin,ce=re.sqrt,ue=re.round,de=re.PI,he=de/180,fe=180/de,ge=Q.prototype.toLowerCase,pe=Q.prototype.toUpperCase,me=Object.prototype.toString,ve=/[, ]+/,be=/\{(\d+)\}/g,ye=/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i,xe=/^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/,Ce=/[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/,we=/,?([achlmqrstvxz]),?/gi,_e=/([achlmrqstvz])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/gi,ke=/([rstm])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/gi,Se=/(-?\d*\.?\d*(?:e[\-+]?\d+)?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/gi,Ee={NaN:1,Infinity:1,"-Infinity":1},Ae={hs:1,rg:1},Te=c._availableAttrs=((i={"arrow-end":k,"arrow-start":k,blur:0,"clip-rect":"0 0 1e9 1e9","clip-path":g,cursor:"default",cx:0,cy:0,fill:"#fff","fill-opacity":1,font:'10px "Arial"',"font-family":'"Arial"',"font-size":"10","font-style":"normal","font-weight":400,gradient:0,height:0,href:"about:blank","letter-spacing":0,"line-height":12,"vertical-align":"middle",opacity:1,path:"M0,0",r:0,rx:0,ry:0,src:g,stroke:"#000","stroke-dasharray":g,"stroke-linecap":"butt","stroke-linejoin":"butt","stroke-miterlimit":0,"stroke-opacity":1,"stroke-width":1,target:"_blank","text-anchor":"middle",visibility:g,title:g,transform:g,rotation:0,width:0,x:0,y:0,"shape-rendering":"auto",alpha:y,"font-stretch":"normal","alignment-baseline":"auto","baseline-shift":"auto","clip-rule":"nonzero","dominant-baseline":"auto","fill-rule":"nonzero",filter:k,"flood-color":"#000","flood-opacity":1,"font-size-adjust":k})["font-stretch"]="normal",i["font-variant"]="normal",i.kerning="auto",i["lighting-color"]="white",i["marker-end"]=k,i["marker-mid"]=k,i["marker-start"]=k,i.mask=k,i["pointer-events"]="visiblePainted",i["stop-color"]="#000",i["stop-opacity"]=1,i["stroke-dashoffset"]=0,i["text-decoration"]=k,i["vector-effect"]=g,i.visibility="visible",i["word-spacing"]="normal",i["writing-mode"]="lr-tb",i),Me=c._availableAnimAttrs={blur:y,"clip-rect":"csv","clip-path":"path",cx:y,cy:y,fill:"colour","fill-opacity":y,"font-size":y,height:y,opacity:y,path:"path",r:y,rx:y,ry:y,stroke:"colour","stroke-opacity":y,"stroke-width":y,transform:"transform",width:y,x:y,y:y,color:"colour",borderColor:"colour",borderWidth:y,alpha:y,"text-bound":"text-bound"},Fe={},Ie=function(e,t){return ee(e)-ee(t)},Le=function(e){return e},Ne=c._rectPath=function(e,t,r,n,a){return a?[[z,e+a,t],["l",r-2*a,0],["a",a,a,0,0,1,a,a],["l",0,n-2*a],["a",a,a,0,0,1,-a,a],["l",2*a-r,0],["a",a,a,0,0,1,-a,-a],["l",0,2*a-n],["a",a,a,0,0,1,a,-a],["z"]]:[[z,e,t],["l",r,0],["l",0,n],["l",-r,0],["z"]]},De=function(e,t,r,n){return null==n&&(n=r),[[z,e,t],[H,0,-n],["a",r,n,0,1,1,0,2*n],["a",r,n,0,1,1,0,-2*n],["z"]]},Oe=c._getPath={group:function(){return!1},path:function(e){return e.attr("path")},circle:function(e){var t=e.attrs;return De(t.cx,t.cy,t.r)},ellipse:function(e){var t=e.attrs;return De(t.cx,t.cy,t.rx,t.ry)},rect:function(e){var t=e.attrs;return Ne(t.x,t.y,t.width,t.height,t.r)},image:function(e){var t=e.attrs;return Ne(t.x,t.y,t.width,t.height)},text:function(e){var t=e._getBBox();return Ne(t.x,t.y,t.width,t.height)}},Re=c.mapPath=function(e,t){if(!t)return e;var r,n,a,i,o,s,l;for(a=0,o=(e=lt(e).slice(0)).length;a<o;a++)for(i=1,s=(l=e[a]=e[a].slice(0)).length;i<s;i+=2)r=t.x(l[i],l[i+1]),n=t.y(l[i],l[i+1]),l[i]=r,l[i+1]=n;return e},Pe=c._lastArgIfGroup=function(e,t){var r=e.length-1,n=e[r];if(n&&n.constructor===c.el.constructor&&"group"===n.type)return t&&(e[r]=undefined,delete e[r],M.call(e,r,1)),n},Ve=c._serializeArgs=function(e){var t,r,n,a,i=e[0];if(c.is(i,w)&&!c.is(i,C)&&"group"!==i.type)for(r=i,i.path&&(t=i.path)&&!c.is(t,x)&&!c.is(t[0],C)&&(t+=g),n=1,a=arguments.length;n<a;n+=2)r[arguments[n]]||(r[arguments[n]]=arguments[n+1]);else for(r={},n=1,a=arguments.length;n<a;n+=2)r[arguments[n]]=e[(n-1)/2]||arguments[n+1];return r},Be=c.is=function(e,t){return"finite"===t?!Ee[m](+e):t===C?e instanceof Array:(t!==w||null!=e)&&("null"===t&&null===e||t===typeof e&&null!==e||t===w&&e===Object(e)||t===C&&Array.isArray&&Array.isArray(e)||me.call(e).slice(8,-1).toLowerCase()===t)},je=c.clone=F?function(e){if(Object(e)!==e)return e;if(e instanceof Function)return e;var t=new e.constructor;for(var r in e)"prototype"!==r&&e[m](r)&&(t[r]=je(e[r]));return t}:function(e){if(Object(e)!==e)return e;if(e instanceof Function)return e;var t=new e.constructor;for(var r in e)e[m](r)&&(t[r]=je(e[r]));return t},Ge=l.Node;function He(e){this._comparator=e,this._elements=[]}Ge&&!Ge.prototype.contains&&(Ge.prototype.contains=function(e){for(;e=e.parentNode;)if(e===this)return!0;return!1}),c._g=I,c.merge=s.merge,c.extend=s["default"],c.createUUID=(h=/[xy]/g,f=function(e){var t=16*re.random()|0;return("x"===e?t:3&t|8).toString(16)},function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(h,f).toUpperCase()}),c._radial_gradient=/^x?r(?:\(([^\)]*?)\))?/,c._ISURL=/^url\(['"]?([^\)]+?)['"]?\)$/i,c.getElementID=function(e){return"rr-"+e},He.prototype.isEmpty=function(){return 0===this.size()},He.prototype.peek=function(){return this.isEmpty()?null:this._elements[0]},He.prototype.deq=function(){var e=this.peek(),t=this._elements.pop(),r=this.size();if(0===r)return e;this._elements[0]=t;for(var n=0;n<r;){var a=n,i=2*n+1,o=2*n+2;if(i<r&&this._compare(i,a)>=0&&(a=i),o<r&&this._compare(o,a)>=0&&(a=o),a===n)break;this._swap(a,n),n=a}return e},He.prototype.enq=function(e){for(var t=this._elements.push(e),r=t-1;r>0;){var n=Math.floor((r-1)/2);if(this._compare(r,n)<=0)break;this._swap(n,r),r=n}return t},He.prototype.size=function(){return this._elements.length},He.prototype._compare=function(e,t){return this._comparator(this._elements[e],this._elements[t])},He.prototype._swap=function(e,t){var r=this._elements[e];this._elements[e]=this._elements[t],this._elements[t]=r},c.type=N.ENABLE_RED_CANVAS&&(N.CanvasRenderingContext2D||L.createElement("canvas").getContext)?"CANVAS":N.SVGAngle||L.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")?"SVG":"VML",c.svg=!((c.vml="VML"===c.type)||(c.canvas="CANVAS"===c.type)),c._Paper=q,c._id=0,c._oid=0,c.rad=function(e){return e%360*he},c.deg=function(e){return e*fe%360};var ze=function(e){if(c.vml){var t,r=/^\s+|\s+$/g;try{var n=new ActiveXObject("htmlfile");n.write("<body>"),n.close(),t=n.body}catch(o){t=createPopup().document.body}var a=t.createTextRange();ze=(0,s.cacher)((function(e){try{t.style.color=Q(e).replace(r,g);var n=a.queryCommandValue("ForeColor");return"#"+("000000"+(n=(255&n)<<16|65280&n|(16711680&n)>>>16).toString(16)).slice(-6)}catch(o){return k}}))}else{var i=I.doc.createElement("i");i.title="Raphaël Colour Picker",i.style.display=k,I.doc.body.appendChild(i),ze=(0,s.cacher)((function(e){return i.style.color=e,I.doc.defaultView.getComputedStyle(i,g).getPropertyValue("color")}))}return ze(e)},Ue=function(){return"hsb("+[this.h,this.s,this.b]+")"},Xe=function(){return"hsl("+[this.h,this.s,this.l]+")"},We=function(){return this.hex},$e=function(e,t,r){if(null==t&&Be(e,w)&&"r"in e&&"g"in e&&"b"in e&&(r=e.b,t=e.g,e=e.r),null==t&&Be(e,x)){var n=c.getRGB(e);e=n.r,t=n.g,r=n.b}return(e>1||t>1||r>1)&&(e/=255,t/=255,r/=255),[e,t,r]},Ye=function(e,t,r,n){var a={r:e*=255,g:t*=255,b:r*=255,hex:c.rgb(e,t,r),toString:We};return Be(n,"finite")&&(a.opacity=n),a};function qe(){return this.hex}function Ke(e,t){for(var r=[],n=0,a=e.length;a-2*!t>n;n+=2){var i=[{x:+e[n-2],y:+e[n-1]},{x:+e[n],y:+e[n+1]},{x:+e[n+2],y:+e[n+3]},{x:+e[n+4],y:+e[n+5]}];t?n?a-4===n?i[3]={x:+e[0],y:+e[1]}:a-2===n&&(i[2]={x:+e[0],y:+e[1]},i[3]={x:+e[2],y:+e[3]}):i[0]={x:+e[a-2],y:+e[a-1]}:a-4===n?i[3]=i[2]:n||(i[0]={x:+e[n],y:+e[n+1]}),r.push(["C",(-i[0].x+6*i[1].x+i[2].x)/6,(-i[0].y+6*i[1].y+i[2].y)/6,(i[1].x+6*i[2].x-i[3].x)/6,(i[1].y+6*i[2].y-i[3].y)/6,i[2].x,i[2].y])}return r}c.color=function(e){var t;return c.is(e,w)&&"h"in e&&"s"in e&&"b"in e?(t=c.hsb2rgb(e),e.r=t.r,e.g=t.g,e.b=t.b,e.hex=t.hex):c.is(e,w)&&"h"in e&&"s"in e&&"l"in e?(t=c.hsl2rgb(e),e.r=t.r,e.g=t.g,e.b=t.b,e.hex=t.hex):(c.is(e,x)&&(e=c.getRGB(e)),c.is(e,w)&&"r"in e&&"g"in e&&"b"in e?(t=c.rgb2hsl(e),e.h=t.h,e.s=t.s,e.l=t.l,t=c.rgb2hsb(e),e.v=t.b):(e={hex:k}).r=e.g=e.b=e.h=e.s=e.v=e.l=-1),e.toString=We,e},c.hsb2rgb=function(e,t,r,n){var a,i,o,s,l;return this.is(e,w)&&"h"in e&&"s"in e&&"b"in e&&(r=e.b,t=e.s,n=(e=e.h).o),s=(l=r*t)*(1-ie((e=(e*=360)%360/60)%2-1)),a=i=o=r-l,Ye(a+=[l,s,0,0,s,l][e=~~e],i+=[s,l,l,s,0,0][e],o+=[0,0,s,l,l,s][e],n)},c.hsl2rgb=function(e,t,r,n){var a,i,o,s,l;return this.is(e,w)&&"h"in e&&"s"in e&&"l"in e&&(r=e.l,t=e.s,e=e.h),(e>1||t>1||r>1)&&(e/=360,t/=100,r/=100),s=(l=2*t*(r<.5?r:1-r))*(1-ie((e=(e*=360)%360/60)%2-1)),a=i=o=r-l/2,Ye(a+=[l,s,0,0,s,l][e=~~e],i+=[s,l,l,s,0,0][e],o+=[0,0,s,l,l,s][e],n)},c.rgb2hsb=function(e,t,r){var n,a;return e=(r=$e(e,t,r))[0],t=r[1],r=r[2],{h:((0===(a=(n=ne(e,t,r))-ae(e,t,r))?null:n===e?(t-r)/a:n===t?(r-e)/a+2:(e-t)/a+4)+360)%6*60/360,s:0===a?0:a/n,b:n,toString:Ue}},c.rgb2hsl=function(e,t,r){var n,a,i,o;return e=(r=$e(e,t,r))[0],t=r[1],r=r[2],n=((a=ne(e,t,r))+(i=ae(e,t,r)))/2,{h:((0===(o=a-i)?null:a===e?(t-r)/o:a===t?(r-e)/o+2:(e-t)/o+4)+360)%6*60/360,s:0===o?0:n<.5?o/(2*n):o/(2-2*n),l:n,toString:Xe}},c._path2string=function(){return this.join(",").replace(we,"$1")},c._cacher=s.cacher,c.getRGB=(0,s.cacher)((function(e){var t,r,n,a,i,o,s;return e&&Be(e,w)&&"opacity"in e&&(t=e.opacity),!e||(e=Q(e)).indexOf("-")+1?{r:-1,g:-1,b:-1,hex:k,error:1,toString:qe}:e===k?{r:-1,g:-1,b:-1,hex:k,toString:qe}:(!Ae[m](e.toLowerCase().substring(0,2))&&"#"!==e.charAt()&&(e=ze(e)),(s=e.match(ye))?(s[2]&&(a=te(s[2].substring(5),16),n=te(s[2].substring(3,5),16),r=te(s[2].substring(1,3),16)),s[3]&&(a=te((i=s[3].charAt(3))+i,16),n=te((i=s[3].charAt(2))+i,16),r=te((i=s[3].charAt(1))+i,16)),s[4]&&(o=s[4][_](Ce),r=ee(o[0]),"%"===o[0].slice(-1)&&(r*=2.55),n=ee(o[1]),"%"===o[1].slice(-1)&&(n*=2.55),a=ee(o[2]),"%"===o[2].slice(-1)&&(a*=2.55),"rgba"===s[1].toLowerCase().slice(0,4)&&(t=ee(o[3])),o[3]&&"%"===o[3].slice(-1)&&(t/=100)),s[5]?(o=s[5][_](Ce),r=ee(o[0]),"%"===o[0].slice(-1)&&(r*=2.55),n=ee(o[1]),"%"===o[1].slice(-1)&&(n*=2.55),a=ee(o[2]),"%"===o[2].slice(-1)&&(a*=2.55),("deg"===o[0].slice(-3)||"°"===o[0].slice(-1))&&(r/=360),"hsba"===s[1].toLowerCase().slice(0,4)&&(t=ee(o[3])),o[3]&&"%"===o[3].slice(-1)&&(t/=100),c.hsb2rgb(r,n,a,t)):s[6]?(o=s[6][_](Ce),r=ee(o[0]),"%"===o[0].slice(-1)&&(r*=2.55),n=ee(o[1]),"%"===o[1].slice(-1)&&(n*=2.55),a=ee(o[2]),"%"===o[2].slice(-1)&&(a*=2.55),("deg"===o[0].slice(-3)||"°"===o[0].slice(-1))&&(r/=360),"hsla"===s[1].toLowerCase().slice(0,4)&&(t=ee(o[3])),o[3]&&"%"===o[3].slice(-1)&&(t/=100),c.hsl2rgb(r,n,a,t)):((s={r:r,g:n,b:a,toString:qe}).hex="#"+(16777216|a|n<<8|r<<16).toString(16).slice(1),c.is(t,"finite")&&(s.opacity=t),s)):{r:-1,g:-1,b:-1,hex:k,error:1,toString:qe})}),c),c.tintshade=(0,s.cacher)((function(e,t){var r,n=c.getRGB(e),a=255;return t<0&&(t*=-1,a=0),t>1&&(t=1),(r=0===t?n:{r:a-(a-n.r)*t,g:a-(a-n.g)*t,b:a-(a-n.b)*t,toString:qe}).hex=c.rgb(r.r,r.g,r.b),n.error&&(r.error=n.error),"opacity"in n?(r.rgba="rgba("+[r.r,r.g,r.b,n.opacity].join(",")+")",r.opacity=n.opacity):r.rgba="rgb("+[r.r,r.g,r.b].join(",")+")",r}),c),c.rgb=(0,s.cacher)((function(e,t,r){return"#"+(16777216|r|t<<8|e<<16).toString(16).slice(1)})),c.sanitizePath=function(e){var t;return t=e.join?e.join(","):e,t=E.test(t)?c._pathToAbsolute(t):t.replace(we,"$1")},c.parsePathString=function(e){if(!e||!e.length)return null;var t=Je(e);if(t.arr)return tt(t.arr);if(d=void 0,c.is(e,C))if(e=Q(e).replace(/,?([A-Z]),?/g,",$1,").replace(/(^,?)|(,?$)/g,"").replace(/,,?/g,",").split(","),c.is(e[0],C))d=tt(e);else{var r,n,a,i=[],o=e.length;for(d=[],r=0;r<o;r+=1)W.test(e[r])?(i.length&&d.push(i),i=[n=e[r]],a=T[n.toLowerCase()]):a?(i.push(+e[r]),a--):e[r].length&&(d.push(i),i=[n].concat(+e[r]),a=T[n.toLowerCase()]-1);d.push(i)}return d&&d.length||(d=[],Q(e).replace(_e,$)),d.toString=c._path2string,t.arr=d,t.arr},c.parseTransformString=(0,s.cacher)((function(e){if(!e)return null;var t=[];return c.is(e,C)&&c.is(e[0],C)&&(t=tt(e)),t.length||Q(e).replace(ke,(function(e,r,n){var a=[];ge.call(r);n.replace(Se,(function(e,t){t&&a.push(+t)})),t.push([r][b](a))})),t.toString=c._path2string,t}));var Je=(0,s.cacher)((function(){return{}}),void 0,void 0,void 0,500,{},!0);function Ze(e,t,r,n,a){return e*(e*(-3*t+9*r-9*n+3*a)+6*t-12*r+6*n)-3*t+3*r}function Qe(e,t,r,n,a,i,o,s,l){null==l&&(l=1);for(var c=(l=l>1?1:l<0?0:l)/2,u=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],d=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],h=0,f=0;f<12;f++){var g=c*u[f]+c,p=Ze(g,e,r,a,o),m=Ze(g,t,n,i,s);h+=d[f]*ce(p*p+m*m)}return c*h}c.findDotsAtSegment=function(e,t,r,n,a,i,o,s,l){var c=1-l,u=oe(c,3),d=oe(c,2),h=l*l,f=h*l,g=u*e+3*d*l*r+3*c*l*l*a+f*o,p=u*t+3*d*l*n+3*c*l*l*i+f*s,m=e+2*l*(r-e)+h*(a-2*r+e),v=t+2*l*(n-t)+h*(i-2*n+t),b=r+2*l*(a-r)+h*(o-2*a+r),y=n+2*l*(i-n)+h*(s-2*i+n),x=c*e+l*r,C=c*t+l*n,w=c*a+l*o,_=c*i+l*s,k=90-180*re.atan2(m-b,v-y)/de;return(m>b||v<y)&&(k+=180),{x:g,y:p,m:{x:m,y:v},n:{x:b,y:y},start:{x:x,y:C},end:{x:w,y:_},alpha:k}},c._removedFactory=function(e){return function(){(0,o["default"])("raphael.log",null,"Raphaël: you are calling to method “"+e+"” of removed object",e)}};var et=c.pathBBox=function(e){var t=Je(e);if(!e)return{x:0,y:0,width:0,height:0,x2:0,y2:0};for(var r,n=0,a=0,i=[],o=[],s=0,l=(e=lt(e)).length;s<l;s++)if((r=e[s])[0]===z)n=r[1],a=r[2],i.push(n),o.push(a);else{var c=st(n,a,r[1],r[2],r[3],r[4],r[5],r[6]);i=i[b](c.min.x,c.max.x),o=o[b](c.min.y,c.max.y),n=r[5],a=r[6]}var u=ae[v](0,i),d=ae[v](0,o),h=ne[v](0,i),f=ne[v](0,o),g={x:u,y:d,x2:h,y2:f,width:h-u,height:f-d};return t.bbox=je(g),g},tt=function(e){var t=je(e);return t.toString=c._path2string,t},rt=c._pathToAbsolute=function(e){var t,r=Je(e);if(!r.abs){if(c.is(e,C)&&c.is(e&&e[0],C)||(e=c.parsePathString(e)),!e||!e.length)return(t=[[z,0,0]]).toString=c._path2string,t;var n=0,a=0,i=0,o=0,s=0;t=[],e[0][0]===z&&(i=n=+e[0][1],o=a=+e[0][2],s++,t[0]=[z,n,a]);for(var l,u,d=3===e.length&&e[0][0]===z&&"R"===e[1][0].toUpperCase()&&"Z"===e[2][0].toUpperCase(),h=s,f=e.length;h<f;h++){if(t.push(l=[]),(u=e[h])[0]!=pe.call(u[0]))switch(l[0]=pe.call(u[0]),l[0]){case"A":l[1]=u[1],l[2]=u[2],l[3]=u[3],l[4]=u[4],l[5]=u[5],l[6]=+(u[6]+n),l[7]=+(u[7]+a);break;case"V":l[1]=+u[1]+a;break;case"H":l[1]=+u[1]+n;break;case"R":for(var g=[n,a][b](u.slice(1)),p=2,m=g.length;p<m;p++)g[p]=+g[p]+n,g[++p]=+g[p]+a;t.pop(),t=t[b](Ke(g,d));break;case"M":i=+u[1]+n,o=+u[2]+a;default:for(p=1,m=u.length;p<m;p++)l[p]=+u[p]+(p%2?n:a),p%2?n=l[p]:a=l[p]}else if("R"===u[0])g=[n,a][b](u.slice(1)),t.pop(),t=t[b](Ke(g,d)),l=["R"][b](u.slice(-2));else for(var v=0,y=u.length;v<y;v++)l[v]=u[v];switch(l[0]){case"Z":n=i,a=o;break;case"H":n=l[1];break;case"V":a=l[1];break;case"M":i=l[l.length-2],o=l[l.length-1];default:n=l[l.length-2],a=l[l.length-1]}}t.toString=c._path2string,r.abs=t}return tt(r.abs)},nt=function(e,t,r,n){return[e,t,r,n,r,n]},at=function(e,t,r,n,a,i){return[1/3*e+2/3*r,1/3*t+2/3*n,1/3*a+2/3*r,1/3*i+2/3*n,a,i]},it=function Jt(e,t,r,n,a,i,o,l,c,u){o=o&&+o,i=i&&+i;var d,h=120*de/180,f=he*(+a||0),g=[],p=(0,s.cacher)((function(e,t,r){return{x:e*se(r)-t*le(r),y:e*le(r)+t*se(r)}}));if(u)E=u[0],A=u[1],k=u[2],S=u[3];else{e=(d=p(e,t,-f)).x,t=d.y,l=(d=p(l,c,-f)).x,c=d.y;se(he*a),le(he*a);var m=(e-l)/2,v=(t-c)/2,y=m*m/(r*r)+v*v/(n*n);y>1&&(r*=y=ce(y),n*=y);var x=r*r,C=n*n,w=(i===o?-1:1)*ce(ie((x*C-x*v*v-C*m*m)/(x*v*v+C*m*m))),k=w*r*v/n+(e+l)/2,S=w*-n*m/r+(t+c)/2,E=re.asin(((t-S)/n).toFixed(9)),A=re.asin(((c-S)/n).toFixed(9));(E=e<k?de-E:E)<0&&(E=2*de+E),(A=l<k?de-A:A)<0&&(A=2*de+A),o&&E>A&&(E-=2*de),!o&&A>E&&(A-=2*de)}var T=A-E;if(ie(T)>h){var M=A,F=l,I=c;g=Jt(l=k+r*se(A=E+h*(o&&A>E?1:-1)),c=S+n*le(A),r,n,a,0,o,F,I,[A,M,k,S])}T=A-E;var L=se(E),N=le(E),D=se(A),O=le(A),R=re.tan(T/4),P=4/3*r*R,V=4/3*n*R,B=[e,t],j=[e+P*N,t-V*L],G=[l+P*O,c-V*D],H=[l,c];if(j[0]=2*B[0]-j[0],j[1]=2*B[1]-j[1],u)return[j,G,H][b](g);for(var z=[],U=0,X=(g=[j,G,H][b](g).join()[_](",")).length;U<X;U++)z[U]=U%2?p(g[U-1],g[U],f).y:p(g[U],g[U+1],f).x;return z},ot=function(e,t,r,n,a,i,o,s,l){var c=1-l;return{x:oe(c,3)*e+3*oe(c,2)*l*r+3*c*l*l*a+oe(l,3)*o,y:oe(c,3)*t+3*oe(c,2)*l*n+3*c*l*l*i+oe(l,3)*s}},st=(0,s.cacher)((function(e,t,r,n,a,i,o,s){var l,c=a-2*r+e-(o-2*a+r),u=2*(r-e)-2*(a-r),d=e-r,h=(-u+ce(u*u-4*c*d))/2/c,f=(-u-ce(u*u-4*c*d))/2/c,g=[t,s],p=[e,o];return ie(h)>"1e12"&&(h=.5),ie(f)>"1e12"&&(f=.5),h>0&&h<1&&(l=ot(e,t,r,n,a,i,o,s,h),p.push(l.x),g.push(l.y)),f>0&&f<1&&(l=ot(e,t,r,n,a,i,o,s,f),p.push(l.x),g.push(l.y)),h=(-(u=2*(n-t)-2*(i-n))+ce(u*u-4*(c=i-2*n+t-(s-2*i+n))*(d=t-n)))/2/c,f=(-u-ce(u*u-4*c*d))/2/c,ie(h)>"1e12"&&(h=.5),ie(f)>"1e12"&&(f=.5),h>0&&h<1&&(l=ot(e,t,r,n,a,i,o,s,h),p.push(l.x),g.push(l.y)),f>0&&f<1&&(l=ot(e,t,r,n,a,i,o,s,f),p.push(l.x),g.push(l.y)),{min:{x:ae[v](0,p),y:ae[v](0,g)},max:{x:ne[v](0,p),y:ne[v](0,g)}}})),lt=c._path2curve=(0,s.cacher)((function(e,t){var r=!t&&Je(e);if(!t&&r.curve)return tt(r.curve);for(var n=rt(e),a=t&&rt(t),i={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},o={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},s=function(e,t){if(!e)return["C",t.x,t.y,t.x,t.y,t.x,t.y];switch(!(e[0]in{T:1,Q:1})&&(t.qx=t.qy=null),e[0]){case"M":t.X=e[1],t.Y=e[2];break;case"A":e=["C"][b](it[v](0,[t.x,t.y][b](e.slice(1))));break;case"S":e=["C",t.x+(t.x-(t.bx||t.x)),t.y+(t.y-(t.by||t.y))][b](e.slice(1));break;case"T":t.qx=t.x+(t.x-(t.qx||t.x)),t.qy=t.y+(t.y-(t.qy||t.y)),e=["C"][b](at(t.x,t.y,t.qx,t.qy,e[1],e[2]));break;case"Q":t.qx=e[1],t.qy=e[2],e=["C"][b](at(t.x,t.y,e[1],e[2],e[3],e[4]));break;case"L":e=["C"][b](nt(t.x,t.y,e[1],e[2]));break;case"H":e=["C"][b](nt(t.x,t.y,e[1],t.y));break;case"V":e=["C"][b](nt(t.x,t.y,t.x,e[1]));break;case"Z":e=["C"][b](nt(t.x,t.y,t.X,t.Y))}return e},l=function(e,t){if(e[t].length>7){e[t].shift();for(var r=e[t];r.length;)e.splice(t++,0,["C"][b](r.splice(0,6)));e.splice(t,1),d=ne(n.length,a&&a.length||0)}},c=function(e,t,r,i,o){e&&t&&e[o][0]===z&&t[o][0]!=z&&!o&&(t.splice(o,0,[z,i.x,i.y]),r.bx=0,r.by=0,r.x=e[o][1],r.y=e[o][2],d=ne(n.length,a&&a.length||0))},u=0,d=ne(n.length,a&&a.length||0);u<d;u++){n[u]=s(n[u],i),l(n,u),a&&(a[u]=s(a[u],o)),a&&l(a,u),c(n,a,i,o,u),c(a,n,o,i,u);var h=n[u],f=a&&a[u],g=h.length,p=a&&f.length;i.x=h[g-2],i.y=h[g-1],i.bx=ee(h[g-4])||i.x,i.by=ee(h[g-3])||i.y,o.bx=a&&(ee(f[p-4])||o.x),o.by=a&&(ee(f[p-3])||o.y),o.x=a&&f[p-2],o.y=a&&f[p-1]}return a||(r.curve=tt(n)),a?[n,a]:n}),null,tt),ct=(c._parseDots=(0,s.cacher)((function(e){for(var t=[],r=0,n=e.length;r<n;r++){var a={},i=e[r].match(/^([^:]*):?([\d\.]*)/);if(a.color=c.getRGB(i[1]),a.color.error)return null;a.opacity=a.color.opacity,a.color=a.color.hex,i[2]&&(a.offset=i[2]+"%"),t.push(a)}for(r=1,n=t.length-1;r<n;r++)if(!t[r].offset){for(var o=ee(t[r-1].offset||0),s=0,l=r+1;l<n;l++)if(t[l].offset){s=t[l].offset;break}s||(s=100,l=n);for(var u=((s=ee(s))-o)/(l-r+1);r<l;r++)o+=u,t[r].offset=o+"%"}return t})),c._tear=function(e,t){e===t.top&&(t.top=e.prev),e===t.bottom&&(t.bottom=e.next),e.next&&(e.next.prev=e.prev),e.prev&&(e.prev.next=e.next)}),ut=(c._tofront=function(e,t){return t.top!==e&&(ct(e,t),e.next=null,e.prev=t.top,t.top.next=e,t.top=e,!0)},c._toback=function(e,t){return t.bottom!==e&&(ct(e,t),e.next=t.bottom,e.prev=null,t.bottom.prev=e,t.bottom=e,!0)},c._insertafter=function(e,t,r,n){ct(e,r),e.parent=n,t===n.top&&(n.top=e),t.next&&(t.next.prev=e),e.next=t.next,e.prev=t,t.next=e},c._insertbefore=function(e,t,r,n){ct(e,r),e.parent=n,t===n.bottom&&(n.bottom=e),t.prev&&(t.prev.next=e),e.prev=t.prev,t.prev=e,e.next=t},c._extractTransform=function(e,t){if(null==t)return e._.transform;t=Q(t).replace(/\.{3}|\u2026/g,e._.transform||g);var r,n,a=c.parseTransformString(t),i=0,o=1,s=1,l=e._,u=new ft;if(l.transform=a||[],a)for(var d=0,h=a.length;d<h;d++){var f,p,m,v,b,y=a[d],x=y.length,C=Q(y[0]).toLowerCase(),w=y[0]!=C,_=w?u.invert():0;"t"===C&&3===x?w?(f=_.x(0,0),p=_.y(0,0),m=_.x(y[1],y[2]),v=_.y(y[1],y[2]),u.translate(m-f,v-p)):u.translate(y[1],y[2]):"r"===C?2===x?(b=l.bb||(l.bb=e.getBBox(1)),u.rotate(y[1],b.x+b.width/2,b.y+b.height/2),i+=y[1]):4===x&&(w?(m=_.x(y[2],y[3]),v=_.y(y[2],y[3]),u.rotate(y[1],m,v)):u.rotate(y[1],y[2],y[3]),i+=y[1]):"s"===C?2===x||3===x?(b=l.bb||(l.bb=e.getBBox(1)),u.scale(y[1],y[x-1],b.x+b.width/2,b.y+b.height/2),o*=y[1],s*=y[x-1]):5===x&&(w?(m=_.x(y[3],y[4]),v=_.y(y[3],y[4]),u.scale(y[1],y[2],m,v)):u.scale(y[1],y[2],y[3],y[4]),o*=y[1],s*=y[2]):C===H&&7===x&&u.add(y[1],y[2],y[3],y[4],y[5],y[6]),l.dirtyT=1,e.matrix=u}e.matrix=u,l.sx=o,l.sy=s,l.deg=i,l.dx=r=u.e,l.dy=n=u.f,1===o&&1===s&&!i&&l.bbox?(l.bbox.x+=+r,l.bbox.y+=+n):l.dirtyT=1}),dt=function(e){var t=e[0];switch(t.toLowerCase()){case"t":return[t,0,0];case"m":return[t,1,0,0,1,0,0];case"r":return 4===e.length?[t,0,e[2],e[3]]:[t,0];case"s":return 5===e.length?[t,1,1,e[3],e[4]]:3===e.length?[t,1,1]:[t,1]}},ht=c._equaliseTransform=function(e,t){t=Q(t).replace(/\.{3}|\u2026/g,e),e=c.parseTransformString(e)||[],t=c.parseTransformString(t)||[];for(var r,n,a,i,o=ne(e.length,t.length),s=[],l=[],u=0;u<o;u++){if(a=e[u]||dt(t[u]),i=t[u]||dt(a),a[0]!=i[0]||"r"===a[0].toLowerCase()&&(a[2]!=i[2]||a[3]!=i[3])||"s"===a[0].toLowerCase()&&(a[3]!=i[3]||a[4]!=i[4]))return;for(s[u]=[],l[u]=[],r=0,n=ne(a.length,i.length);r<n;r++)r in a&&(s[u][r]=a[r]),r in i&&(l[u][r]=i[r])}return{from:s,to:l}};function ft(e,t,r,n,a,i){null!=e?(this.a=+e,this.b=+t,this.c=+r,this.d=+n,this.e=+a,this.f=+i):(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0)}c._getContainer=function(e,t,r,n){var a;if(null!=(a=null!=n||c.is(e,w)?e:I.doc.getElementById(e)))return a.tagName?null==t?{container:a,width:a.style.pixelWidth||a.offsetWidth,height:a.style.pixelHeight||a.offsetHeight}:{container:a,width:t,height:r}:{container:1,x:e,y:t,width:r,height:n}},c._engine={},c.path2curve=lt,c.matrix=function(e,t,r,n,a,i){return new ft(e,t,r,n,a,i)},function(e){function t(e){return e[0]*e[0]+e[1]*e[1]}function r(e){var r=ce(t(e));e[0]&&(e[0]/=r),e[1]&&(e[1]/=r)}e.add=function(e,t,r,n,a,i){var o,s,l,c,u=[[],[],[]],d=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1]],h=[[e,r,a],[t,n,i],[0,0,1]];for(e&&e instanceof ft&&(h=[[e.a,e.c,e.e],[e.b,e.d,e.f],[0,0,1]]),o=0;o<3;o++)for(s=0;s<3;s++){for(c=0,l=0;l<3;l++)c+=d[o][l]*h[l][s];u[o][s]=c}this.a=u[0][0],this.b=u[1][0],this.c=u[0][1],this.d=u[1][1],this.e=u[0][2],this.f=u[1][2]},e.invert=function(){var e=this,t=e.a*e.d-e.b*e.c;return new ft(e.d/t,-e.b/t,-e.c/t,e.a/t,(e.c*e.f-e.d*e.e)/t,(e.b*e.e-e.a*e.f)/t)},e.clone=function(){return new ft(this.a,this.b,this.c,this.d,this.e,this.f)},e.translate=function(e,t){this.add(1,0,0,1,e,t)},e.scale=function(e,t,r,n){null==t&&(t=e),(r||n)&&this.add(1,0,0,1,r,n),this.add(e,0,0,t,0,0),(r||n)&&this.add(1,0,0,1,-r,-n)},e.rotate=function(e,t,r){e=c.rad(e),t=t||0,r=r||0;var n=+se(e).toFixed(9),a=+le(e).toFixed(9);this.add(n,a,-a,n,t,r),this.add(1,0,0,1,-t,-r)},e.x=function(e,t){return e*this.a+t*this.c+this.e},e.y=function(e,t){return e*this.b+t*this.d+this.f},e.get=function(e){return+this[Q.fromCharCode(97+e)].toFixed(4)},e.toString=function(){return c.svg?"matrix("+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+")":[this.get(0),this.get(2),this.get(1),this.get(3),0,0].join()},e.toMatrixString=function(){return"matrix("+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+")"},e.toFilter=function(){return"progid:DXImageTransform.Microsoft.Matrix(M11="+this.get(0)+", M12="+this.get(2)+", M21="+this.get(1)+", M22="+this.get(3)+", Dx="+this.get(4)+", Dy="+this.get(5)+", sizingmethod='auto expand')"},e.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]},e.split=function(){var e={};e.dx=this.e,e.dy=this.f;var n=[[this.a,this.c],[this.b,this.d]];e.scalex=ce(t(n[0])),r(n[0]),e.shear=n[0][0]*n[1][0]+n[0][1]*n[1][1],n[1]=[n[1][0]-n[0][0]*e.shear,n[1][1]-n[0][1]*e.shear],e.scaley=ce(t(n[1])),r(n[1]),e.shear/=e.scaley;var a=-n[0][1],i=n[1][1];return i<0?(e.rotate=c.deg(re.acos(i)),a<0&&(e.rotate=360-e.rotate)):e.rotate=c.deg(re.asin(a)),e.isSimple=!(+e.shear.toFixed(9)||e.scalex.toFixed(9)!==e.scaley.toFixed(9)&&e.rotate),e.isSuperSimple=!+e.shear.toFixed(9)&&e.scalex.toFixed(9)===e.scaley.toFixed(9)&&!e.rotate,e.noRotation=!+e.shear.toFixed(9)&&!e.rotate,e},e.toTransformString=function(e){var t=e||this[_]();return t.isSimple?(t.scalex=+t.scalex.toFixed(4),t.scaley=+t.scaley.toFixed(4),t.rotate=+t.rotate.toFixed(4),(t.dx||t.dy?"t"+[t.dx,t.dy]:g)+(1!=t.scalex||1!=t.scaley?"s"+[t.scalex,t.scaley,0,0]:g)+(t.rotate?"r"+[t.rotate,0,0]:g)):H+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)]}}(ft.prototype);var gt=(O=N.navigator).userAgent.match(/Version\/(.*?)\s/)||O.userAgent.match(/Chrome\/(\d+)/);"Apple Computer, Inc."===O.vendor&&(gt&>[1]<4||"iP"===O.platform.slice(0,2))||"Google Inc."===O.vendor&>&>[1]<8?K.safari=function(){var e=this.rect(-99,-99,this.width+99,this.height+99).attr({stroke:k});return setTimeout((function(){e.remove()})),!0}:K.safari=function(){};for(var pt=function(){this.returnValue=!1},mt=function(){return this.originalEvent.preventDefault()},vt=function(){this.cancelBubble=!0},bt=function(){return this.originalEvent.stopPropagation()},yt={stopPropagation:"fn",stopImmediatePropagation:"fn",preventDefault:"fn",type:!0,clientX:!0,clientY:!0,pageX:!0,pageY:!0,bubbles:!0,cancelable:!0,touches:!0,target:!0,originalTarget:!0,srcElement:!0,relatedTarget:!0,fromElement:!0,changedTouches:!0,layerX:!0,layerY:!0,deltaX:!0,deltaY:!0},xt=c.makeSelectiveCopy=function(e,t){var r=function(r){e[r]="fn"===yt[r]?function(){t[r]()}:t[r]};for(var n in yt)r(n);e.originalEvent=t,e.type||(e.type=t.originalEvent&&t.originalEvent.type)},Ct=c.addEvent=I.doc.addEventListener?function(e,t,r,n){var a,i,o=P?D[t]:R?Z[t]:t;return A||(i={capture:!1}),n.dragFn&&("pointerup"===o?o="mouseup":void 0===o&&(o="touchend")),a=function(a){var i,o=I.doc.documentElement.scrollTop||I.doc.body.scrollTop,s=I.doc.documentElement.scrollLeft||I.doc.body.scrollLeft;if(R&&Z[t])for(var l=0,c=a.targetTouches&&a.targetTouches.length;l<c;l++)if((i=a.targetTouches[l].target)===e||"tspan"===i.nodeName&&i.parentNode===e){var u=a;(a=a.targetTouches[l]).originalEvent=u,a.preventDefault=mt,a.stopPropagation=bt;break}return r.call(n,a,a.clientX+s,a.clientY+o)},e.addEventListener(o,a,i),function(){return e.removeEventListener(o,a,i),!0}}:I.doc.attachEvent?function(e,t,r,n){var a=function(e){e=e||I.win.event;var t=I.doc.documentElement.scrollTop||I.doc.body.scrollTop,a=I.doc.documentElement.scrollLeft||I.doc.body.scrollLeft,i=e.clientX+a,o=e.clientY+t;return e.preventDefault=e.preventDefault||pt,e.stopPropagation=e.stopPropagation||vt,r.call(n,e,i,o)};return e.attachEvent("on"+t,a),function(){return e.detachEvent("on"+t,a),!0}}:void 0,wt=function(e){var t,r=I.doc.documentElement.scrollTop||I.doc.body.scrollTop,n=I.doc.documentElement.scrollLeft||I.doc.body.scrollLeft,a=(void 0!==e.clientX?e.clientX:e.changedTouches&&e.changedTouches[0].clientX)+n,i=(void 0!==e.clientY?e.clientY:e.changedTouches&&e.changedTouches[0].clientY)+r,s={},l=this,u=l.dragInfo.onmove.length;if(!(l.dragStartFn&&!(Math.abs(a-l._drag.x)>=2.5||Math.abs(i-l._drag.y)>=2.5)||l._blockDrag||P&&R&&!e.isPrimary))for(;u--;){if(R&&"touchmove"===e.type)for(var d,h=e.touches.length;h--;)if((d=e.touches[h]).identifier===l._drag.id){a=d.clientX+n,i=d.clientY+r;break}if(!l.removed){if(l.dragStartFn&&(l.dragStartFn(u),l.dragStartFn=undefined,l.dragInfo._dragmove=!0),I.win.opera){var f=c._engine.getNode(l),g=f.nextSibling,p=f.parentNode,m=f.style.display;p.removeChild(f),f.style.display=k,f.style.display=m,g?p.insertBefore(f,g):p.appendChild(f)}xt(s,e),t=s.data=[a-l._drag.x,i-l._drag.y,a,i],(0,o["default"])("raphael.drag.move."+l.id,l.dragInfo.move_scope[u]||l,s,t)}}},_t=function e(t){var r=this,n=r.dragInfo,a=n.onend.length;if(r.dragInfo._dragmove)for(;a--;)r._drag={},(0,o["default"])("raphael.drag.end."+r.id,n.end_scope[a]||n.start_scope[a]||n.move_scope[a]||r,t);r.dragInfo._dragmove=undefined,R&&!B&&!V&&(!G||!j)&&(r.paper.canvas.style["touch-action"]="auto"),c.undragmove.call(r,wt),c.undragend.call(r,e),c.unmousemove.call(r,wt).unmouseup.call(r,e)},kt=c.el={},St=J.length;St--;)!function(e){c[e]=kt[e]=function(t,r,n){return c.is(t,S)&&(this.events=this.events||[],this.events.push({name:e,f:t,unbind:Ct(n||this.shape||this.node||I.doc,e,t,r||this)})),this},c["un"+e]=kt["un"+e]=function(t){for(var r=this.events||[],n=r.length;n--;)if(r[n].name===e&&r[n].f===t)return r[n].unbind(),r.splice(n,1),!r.length&&delete this.events,this;return this}}(J[St]);kt.data=function(e,t){var r=Fe[this.id]=Fe[this.id]||{};if(1===arguments.length){if(c.is(e,w)){for(var n in e)e[m](n)&&this.data(n,e[n]);return this}return c.stopPartialEventPropagation||(0,o["default"])("raphael.data.get."+this.id,this,r[e],e),r[e]}return r[e]=t,c.stopPartialEventPropagation||(0,o["default"])("raphael.data.set."+this.id,this,t,e),this},kt.removeData=function(e){return null==e?delete Fe[this.id]:Fe[this.id]&&delete Fe[this.id][e],this},kt.dbclick=function(e,t){var r,n=this,a=function(r){var a;P&&!r.isPrimary||(r&&r.preventDefault(),(!(a=r).touches||a.touches&&1===a.touches.length)&&(n._tappedOnce?(e.call(t||n,r),n._tappedOnce=!1):(n._tappedOnce=!0,setTimeout((function(){n._tappedOnce=!1}),500))))};r=P?"pointerup":c.supportsTouch?"touchstart":"mouseup",n.node.addEventListener(r,a),c.storeHandlers(n,e,a)},kt.undbclick=function(e){var t=removeHandlers(this,e);t&&this.node.removeEventListener(P?"pointerup":c.supportsTouch?"touchstart":"mouseup",t)},kt.getData=function(){return je(Fe[this.id]||{})};var Et=[],At=function(){this.untrack=Ct(I.doc,"mouseup",Tt,this)},Tt=function(){return this.untrack(),this.untrack=null,this.fn&&this.fn.apply(this.scope||this.el,arguments)};kt.mouseup=function(e,t,r,n){return r?(Et.push(r={el:this,fn:e,scope:t}),r.unbind=Ct(this.shape||this.node||I.doc,"mousedown",At,r),this):c.mouseup.apply(this,[e,t,n])},kt.unmouseup=function(e){for(var t,r=Et.length;r--;)Et[r].el===this&&Et[r].fn===e&&((t=Et[r]).unbind(),t.untrack&&t.untrack(),Et.splice(r,1));return t?this:c.unmouseup.apply(this,arguments)},kt.hover=function(e,t,r,n){return this.on("fc-mouseover",e,r).on("fc-mouseout",t,n)},kt.unhover=function(e,t){return this.off("fc-mouseover",e).off("fc-mouseout",t)},kt.fcclick=function(e,t){var r,n,a,i,o,s=this,l=s.node,u=function(e){s._lastEventTriggered="mousedown",a=void 0!==e.clientX?e.clientX:e.changedTouches&&e.changedTouches[0].clientX,i=void 0!==e.clientY?e.clientY:e.changedTouches&&e.changedTouches[0].clientY},d=function(e){var t=void 0!==e.clientX?e.clientX:e.changedTouches&&e.changedTouches[0].clientX,r=void 0!==e.clientY?e.clientY:e.changedTouches&&e.changedTouches[0].clientY;(Math.abs(a-t)>=2.5||Math.abs(i-r)>=2.5)&&(s._lastEventTriggered=undefined)};if(s._clickStoreActual||(s._clickStoreActual=[]),s._clickStoreDerived||(s._clickStoreDerived=[]),!s._clickHandlerHelper){for(r in o=!P&&c.supportsTouch?{touchstart:function(){s._lastEventTriggered="touchstart",s._lastEventTriggeredAt=(new Date).getTime()},touchmove:d}:P&&c.supportsTouch?{pointerdown:u,pointermove:d}:{mousedown:u,mousemove:d})l.addEventListener?l.addEventListener(r,o[r]):l.attachEvent("on"+r,o[r]);s._clickHandlerHelper=o}return!P&&c.supportsTouch?(r="touchend",n=function(r){"touchstart"===s._lastEventTriggered&&(new Date).getTime()-s._lastEventTriggeredAt<=500&&setTimeout((function(){e.call(t||s,r)}),0)}):(r="click",n=function(r){"mousedown"===s._lastEventTriggered&&e.call(t||s,r)}),l.addEventListener?l.addEventListener(r,n):l.attachEvent("on"+r,n),s._clickStoreDerived.push(n),s._clickStoreActual.push(e),s},kt.fcunclick=function(e){var t,r,n=this.node,a=this._clickHandlerHelper,i=this._clickStoreActual,o=this._clickStoreDerived;if(i){for(t=i.length-1;t>=0;t--)i[t]===e&&(n.removeEventListener?n.removeEventListener(!P&&c.supportsTouch?"touchend":"click",o[t]):n.detachEvent("onclick",o[t]),i.splice(t,1),o.splice(t,1));if(!i.length){for(r in a)n.removeEventListener?n.removeEventListener(r,a[r]):n.detachEvent("on"+r,a[r]);this._clickHandlerHelper=undefined}}return this};var Mt=[];function Ft(){return this.x+p+this.y+p+this.width+" × "+this.height}kt.drag=function(e,t,r,n,a,i){var s=this,l=s.dragInfo||(s.dragInfo={onmove:[],onstart:[],onend:[],move_scope:[],start_scope:[],end_scope:[]});return e&&l.onmove.push(e)&&l.move_scope.push(n),t&&l.onstart.push(t)&&l.start_scope.push(a),r&&l.onend.push(r)&&l.end_scope.push(i),s.dragFn=s.dragFn||function(e){var t,r,n,a,i,l,u,d,h,f,g=I.doc.documentElement.scrollTop||I.doc.body.scrollTop,p=I.doc.documentElement.scrollLeft||I.doc.body.scrollLeft,m={},v=s.dragInfo,b=[wt,void 0,I.doc];if(!P||e.isPrimary){for(R&&(P?B||V||G&&j||(s.paper.canvas.style["touch-action"]="none"):e.preventDefault()),s._drag.x=h=(void 0!==e.clientX?e.clientX:e.changedTouches&&e.changedTouches[0].clientX)+p,s._drag.y=f=(void 0!==e.clientY?e.clientY:e.changedTouches&&e.changedTouches[0].clientY)+g,s._drag.id=e.identifier,R&&!P?c.dragmove.apply(s,b):c.mousemove.apply(s,b).mouseup.call(s,_t,void 0,void 0,I.doc),R&&c.dragend.call(s,_t,void 0,I.doc),xt(m,e),t=m.data=[h,f],r=0,i=v.onstart.length;r<i;r++)o["default"].on("raphael.drag.start."+s.id,v.onstart[r]);for(n=0,l=v.onmove.length;n<l;n++)o["default"].on("raphael.drag.move."+s.id,v.onmove[n]);for(a=0,u=v.onend.length;a<u;a++)o["default"].on("raphael.drag.end."+s.id,v.onend[a]);i&&!l&&(d=function(){s.undragmove(),v.onmove=[]},v.onmove.push(d),o["default"].on("raphael.drag.end."+s.id,d)),s.dragStartFn=function(e){(0,o["default"])("raphael.drag.start."+s.id,s.dragInfo.start_scope[e]||s.dragInfo.move_scope[e]||s,m,t)}}},s._drag={},Mt.push({el:s,start:s.dragFn,onstart:t,onmove:e,onend:r}),t&&!s.startHandlerAttached&&(R&&!P?s.dragstart(s.dragFn):s.mousedown(s.dragFn),s.startHandlerAttached=!0),s},kt.onDragOver=function(e){e?o["default"].on("raphael.drag.over."+this.id,e):o["default"].unbind("raphael.drag.over."+this.id)},kt.undrag=function(){for(var e=Mt.length;e--;)Mt[e].el===this&&(this.unmousedown(this.dragFn),Mt.splice(e,1),o["default"].unbind("raphael.drag.*."+this.id),this.dragInfo=undefined,this.dragFn=undefined,this.startHandlerAttached=undefined);c.unmousemove.call(this,wt).unmouseup.call(this,_t),c.undragmove.call(this,wt),c.undragend.call(this,_t),delete this._drag},kt.undragstart=function(e){var t,r,n=this.dragInfo,a=n&&n.onstart,i=n&&n.start_scope;if(e)for(t=0,r=a&&a.length;t<r;t++)if(a[t]===e){a.splice(t,1),i.splice(t,1),o["default"].unbind("raphael.drag.start."+this.id,e);break}a&&a.length&&e||(c.undragstart.call(this,this.dragFn),c.unmousedown.call(this,this.dragFn),o["default"].unbind("raphael.drag.start."+this.id),this.startHandlerAttached=!1,n&&(n.onstart=[],n.start_scope=[]))},kt.undragmove=function(e){var t,r,n=this.dragInfo,a=n&&n.onmove,i=n&&n.move_scope;if(e)for(t=0,r=a&&a.length;t<r;t++)if(a[t]===e){a.splice(t,1),i.splice(t,1),o["default"].unbind("raphael.drag.move."+this.id,e);break}a&&a.length&&e||(c.undragmove.call(this,wt),c.unmousemove.call(this,wt),n&&(n.onmove=[],n.move_scope=[]),o["default"].unbind("raphael.drag.move."+this.id))},kt.undragend=function(e){var t,r,n=this.dragInfo,a=n&&n.onend,i=n&&n.end_scope;if(e)for(t=0,r=a&&a.length;t<r;t++)if(a[t]===e){a.splice(t,1),i.splice(t,1),o["default"].unbind("raphael.drag.end."+this.id,e);break}a&&a.length&&e||(c.undragend.call(this,_t),c.unmouseup.call(this,_t),n&&(n.onend=[],n.end_scope=[]),o["default"].unbind("raphael.drag.end."+this.id))},kt.follow=function(e,t,r){return e.removed||e.constructor!==c.el.constructor?this:(e.followers.push({el:this,stalk:r={before:"insertBefore",after:"insertAfter"}[r],cb:t}),r&&this[r](e),this)},kt.unfollow=function(e){if(e.removed||e.constructor!==c.el.constructor)return this;for(var t=0,r=e.followers.length;t<r;t++)if(e.followers[t].el===this){e.followers.splice(t,1);break}return this},K.hide=function(){return this.canvas.style.visibility="hidden",this},K.show=function(){return this.canvas.style.visibility=g,this},K.group=function(){var e=this,t=(0,s.getArrayCopy)(arguments),r=Pe(t,!0),n=c._engine.group(e,t[0],r,!!t[1]);return e.__set__&&e.__set__.push(n),e._elementsById[n.id]=n},K.circle=function(){var e=this,t=(0,s.getArrayCopy)(arguments),r=Pe(t,!0),n=e._addDefAttribs()?Ve(t,"cx",0,"cy",0,"r",0,"fill",k,"stroke","#000"):Ve(t),a=c._engine.circle(e,n,r);return e.__set__&&e.__set__.push(a),e._elementsById[a.id]=a},K.rect=function(){var e=this,t=(0,s.getArrayCopy)(arguments),r=Pe(t,!0),n=e._addDefAttribs()?Ve(t,"x",0,"y",0,"width",0,"height",0,"r",0,"fill",k,"stroke","#000"):Ve(t),a=c._engine.rect(e,n,r);return e.__set__&&e.__set__.push(a),e._elementsById[a.id]=a},K.ellipse=function(){var e=this,t=(0,s.getArrayCopy)(arguments),r=Pe(t,!0),n=e._addDefAttribs()?Ve(t,"x",0,"y",0,"rx",0,"ry",0,"fill",k,"stroke","#000"):Ve(t),a=c._engine.ellipse(this,n,r);return e.__set__&&e.__set__.push(a),e._elementsById[a.id]=a},K.path=function(){var e=this,t=(0,s.getArrayCopy)(arguments),r=Pe(t,!0),n=e.config,a=n&&n["stroke-linecap"]||"butt",i=e._addDefAttribs()?Ve(t,"path",g,"fill",k,"stroke","#000","stroke-linecap",a):Ve(t),o=c._engine.path(e,i,r);return e.__set__&&e.__set__.push(o),e._elementsById[o.id]=o},K.image=function(){var e=this,t=(0,s.getArrayCopy)(arguments),r=Pe(t,!0),n=e._addDefAttribs()?Ve(t,"x",0,"y",0,"width",0,"height",0):Ve(t),a=c._engine.image(e,n,r);return e.__set__&&e.__set__.push(a),e._elementsById[a.id]=a},K.text=function(){var e=this,t=(0,s.getArrayCopy)(arguments),r=Pe(t,!0),n=e._addDefAttribs()?Ve(t,"x",0,"y",0,"text",g,"stroke",k,"fill","#000","text-anchor","middle","vertical-align","middle"):Ve(t),a=c._engine.text(e,n,r,t[1]);return e.__set__&&e.__set__.push(a),e._elementsById[a.id]=a},K._addDefAttribs=function(){return!(c.svg&&this.config&&this.config.noDefaultAttribs)},K.setConfig=function(e,t){return e!==undefined&&t!==undefined&&(this.config=this.config||{},this.config[e]=t),this.config},K._createDOMNodes=function(e,t,r){var n,a,i,o,s={},l=c._createNode,u=t.tagName,d=t.children||[];for(o in!r&&(r={}),t)"tagName"!==o&&"children"!==o&&(s[o]=t[o]);if(!s.id&&(s.id=c.getElementID(c.createUUID())),!this.canvas.getElementById(s.id)&&u)for(n=e.appendChild(l(u,s)),r.element=n,r.id=s.id,(i=d.length)>0&&(r.children=[]),a=0;a<i;a++)r.children[a]={},this._createDOMNodes(n,d[a],r.children[a]);return r},K.addDefs=function(e){if(c.svg){var t,r={},n=this.defs;for(t in e)r[t]={},this._createDOMNodes(n,e[t],r[t]);return r}},K.setSize=function(e,t){return c._engine.setSize.call(this,e,t)},K.setDimension=function(e,t){var r;typeof e===w?(r=e.width,t=e.height,this.setSize(e.width,e.height)):(r=e,this.setSize(r,t))},K.attr=function(e){return null==e?{width:this.width,height:this.height}:c.is(e,x)?this[e]:(this.setDimension(e),this)},K.status=function(e,t){return kt.status.call(this,e,t)},K.animateWith=function(e,t,r,n,a,i,o){return kt.animateWith.call(this,e,t,r,n,a,i,o)},K.animate=function(e,t,r,n){return kt.animate.call(this,e,t,r,n)},K.setViewBox=function(e,t,r,n,a){return c._engine.setViewBox.call(this,e,t,r,n,a)},K.getById=function(e){return this._elementsById[e]||null},K.top=K.bottom=null,K.raphael=c,kt.getBBox=function(e){if(this.removed)return{};var t=this._;return e?(!t.dirty&&t.bboxwt||(this.realPath=Oe[this.type](this),t.bboxwt=et(this.realPath),t.bboxwt.toString=Ft,t.dirty=0),t.bboxwt):((t.dirty||t.dirtyT||!t.bbox)&&(!t.dirty&&this.realPath||(t.bboxwt=0,this.realPath=Oe[this.type](this)),t.bbox=et(Re(this.realPath,this.matrix)),t.bbox.toString=Ft,t.dirty=t.dirtyT=0),t.bbox)},kt.clone=function(e,t){if(this.removed)return null;var r,n,a=this,i=a.attr();if(e){for(r in e)i[r]=e[r];n=a.paper[a.type](i,t)}else n=a.paper[a.type]().attr(i);return a.__set__&&a.__set__.push(n),n};var It=function(e,t,r,n,a,i,o,s,l){return null==l?Qe(e,t,r,n,a,i,o,s):c.findDotsAtSegment(e,t,r,n,a,i,o,s,function(e,t,r,n,a,i,o,s,l){if(!(l<0||Qe(e,t,r,n,a,i,o,s)<l)){var c,u=.5,d=1-u;for(c=Qe(e,t,r,n,a,i,o,s,d);ie(c-l)>.01;)c=Qe(e,t,r,n,a,i,o,s,d+=(c<l?1:-1)*(u/=2));return d}}(e,t,r,n,a,i,o,s,l))},Lt=function(e,t){return function(r,n,a){r=lt(r);for(var i,o,s,l,u,d=g,h={},f=0,p=0,m=r.length;p<m;p++){if((s=r[p])[0]===z)i=+s[1],o=+s[2];else{if(f+(l=It(i,o,s[1],s[2],s[3],s[4],s[5],s[6]))>n){if(t&&!h.start){if(d+=["C"+(u=It(i,o,s[1],s[2],s[3],s[4],s[5],s[6],n-f)).start.x,u.start.y,u.m.x,u.m.y,u.x,u.y],a)return d;h.start=d,d=[z+u.x,u.y+"C"+u.n.x,u.n.y,u.end.x,u.end.y,s[5],s[6]].join(),f+=l,i=+s[5],o=+s[6];continue}if(!e&&!t)return{x:(u=It(i,o,s[1],s[2],s[3],s[4],s[5],s[6],n-f)).x,y:u.y,alpha:u.alpha}}f+=l,i=+s[5],o=+s[6]}d+=s.shift()+s}return h.end=d,(u=e?f:t?h:c.findDotsAtSegment(i,o,s[0],s[1],s[2],s[3],s[4],s[5],1)).alpha&&(u={x:u.x,y:u.y,alpha:u.alpha}),u}},Nt=Lt(1),Dt=Lt();Lt(0,1);c.getTotalLength=Nt,c.getPointAtLength=Dt,kt.getTotalLength=function(){if("path"==this.type)return this.node.getTotalLength?this.node.getTotalLength():Nt(this.attrs.path)},kt.getPointAtLength=function(e){if("path"==this.type)return Dt(this.attrs.path,e)};var Ot=c.easing_formulas={linear:function(e){return e},"<":function(e){return oe(e,1.7)},">":function(e){return oe(e,.48)},"<>":function(e){var t=.48-e/1.04,r=ce(.1734+t*t),n=r-t,a=-r-t,i=oe(ie(n),1/3)*(n<0?-1:1)+oe(ie(a),1/3)*(a<0?-1:1)+.5;return 3*(1-i)*i*i+i*i*i},backIn:function(e){var t=1.70158;return e*e*((t+1)*e-t)},backOut:function(e){var t=1.70158;return(e-=1)*e*((t+1)*e+t)+1},elastic:function(e){return e===!!e?e:oe(2,-10*e)*le(2*de*(e-.075)/.3)+1},bounce:function(e){var t=7.5625,r=2.75;return e<1/r?t*e*e:e<2/r?t*(e-=1.5/r)*e+.75:e<2.5/r?t*(e-=2.25/r)*e+.9375:t*(e-=2.625/r)*e+.984375},oneBounceOut:function(e){return e<=.9?1.33*Ot.easeIn(e):1.2-e/5},elasticOnce:function(e){return e===!!e?e:Math.pow(2,-10*e)*Math.sin((e-.225)*(2*Math.PI)/.9)+1},easeInQuad:function(e){return e*e},easeOutQuad:function(e){return e*(2-e)},easeInOutQuad:function(e){return e<.5?2*e*e:(4-2*e)*e-1},easeInCubic:function(e){return e*e*e},easeOutCubic:function(e){return--e*e*e+1},easeInOutCubic:function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1},easeInQuart:function(e){return e*e*e*e},easeOutQuart:function(e){return 1- --e*e*e*e},easeInOutQuart:function(e){return e<.5?8*e*e*e*e:1-8*--e*e*e*e},easeInQuint:function(e){return e*e*e*e*e},easeOutQuint:function(e){return 1+--e*e*e*e*e},easeInOutQuint:function(e){return e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e}};Ot.easeIn=Ot["ease-in"]=Ot["<"],Ot.easeOut=Ot["ease-out"]=Ot[">"],Ot.easeInOut=Ot["ease-in-out"]=Ot["<>"],Ot["back-in"]=Ot.backIn,Ot["back-out"]=Ot.backOut;var Rt,Pt=[],Vt=function Zt(){for(var e,t,r,n=+new Date,a=0,i=[],s=0;a<Pt.length;a++){var l=Pt[a];if(!(l.el.removed||l.paused||l.parentEl&&l.parentEl.e&&l.parentEl.e.paused)){for(var u,d,h,f=n-l.start,v=l.ms,y=l.easing,x=l.from,C=l.diff,w=l.to,_=(l.t,l.el),k={},E={},A=!c.stopPartialEventPropagation,T=(s=0,l.el&&l.el.animElements&&l.el.animElements.peek());T&&T.pos<=f/v;)i.push(l.el.animElements.deq()),T=l.el.animElements.peek();if(l.initstatus?(f=(l.initstatus*l.anim.top-l.prev)/(l.percent-l.prev)*v,l.status=l.initstatus,delete l.initstatus,l.stop&&(delete l.el,Pt.splice(a--,1))):l.status=(l.prev+(l.percent-l.prev)*(f/v))/l.anim.top,d=v,l.parentEl&&l.parentEl.animElements?(v=l.delayend-l.delaystart,f=l.parentEl.cPos-l.delaystart):l.el.animElements&&(l.el.cPos=f/v),!(f<0))if(f<v){var M=y(f/v);for(var F in v=d,x)if(x[m](F)){switch(Me[F]){case"number":u=+x[F]+M*v*C[F];break;case"colour":if(C[F].length){for(u=[],s=0,I=x[F].length;s<I;++s)0===s?x[F].isRadial||C[F].isRadial?(r="xr(",r+=x[F][0].f1*(1-M)+C[F][0].f1*M||g,r+=",",r+=x[F][0].f2*(1-M)+C[F][0].f2*M||g,r+=",",r+=100*(x[F][0].f3*(1-M)+C[F][0].f3*M)||g,r+="%,",r+=x[F][0].f4*(1-M)+C[F][0].f4*M||g,r+=",",r+=x[F][0].f5*(1-M)+C[F][0].f5*M,r+=",",r+=x[F][0].f6,r+=")",u.push(r)):(u.push(x[F][s]*(1-M)+M*C[F][s]),u[0]<=0&&(u[0]+=360)):u.push("rgba("+[Bt(ue(x[F][s].r+M*v*C[F][s].r)),Bt(ue(x[F][s].g+M*v*C[F][s].g)),Bt(ue(x[F][s].b+M*v*C[F][s].b)),x[F][s].opacity+M*v*C[F][s].opacity].join(",")+"):"+x[F][s].position);u=u.join("-"),(x[F].isRadial||C[F].isRadial)&&(u=u.replace("-",g))}else t=x[F].opacity+M*v*C[F].opacity,isNaN(t)&&(t=1),u="rgba("+[Bt(ue(x[F].r+M*v*C[F].r)),Bt(ue(x[F].g+M*v*C[F].g)),Bt(ue(x[F].b+M*v*C[F].b)),t].join(",")+")";break;case"path":u=[];s=0;for(var I=x[F].length;s<I;s++){var L;u[s]=[x[F][s][0]],L=x[F][s]?x[F][s].length:0;for(var N=1;N<L;N++)u[s][N]=(+x[F][s][N]+M*v*C[F][s][N]).toFixed(4);u[s]=u[s].join(p)}u=u.join(p);break;case"transform":if(C[F].real)for(u=[],s=0,I=x[F].length;s<I;s++)for(u[s]=[x[F][s][0]],N=1,L=x[F][s].length;N<L;N++)u[s][N]=x[F][s][N]+M*v*C[F][s][N];else{var D=function(e){return+x[F][e]+M*v*C[F][e]};u=[[H,D(0),D(1),D(2),D(3),D(4),D(5)]]}break;case"csv":if("clip-rect"===F)for(u=[],s=4;s--;)u[s]=+x[F][s]+M*v*C[F][s];break;case"text-bound":u=[][b](x[F]);break;default:var O=[][b](x[F]);for(u=[],s=_.ca[F].length;s--;)u[s]=+O[s]+M*v*C[F][s]}k[F]=u}_.attr(k),A&&function(e,t,r){setTimeout((function(){(0,o["default"])("raphael.anim.frame."+e,t,r)}))}(_.id,_,l.anim)}else{if(function(e,t,r){setTimeout((function(){A&&(0,o["default"])("raphael.anim.frame."+t.id,t,r),A&&(0,o["default"])("raphael.anim.finish."+t.id,t,r),c.is(e,S)&&e.call(t)}))}(l.callback,_,l.anim),_.attr(w),delete l.el,Pt.splice(a--,1),l.repeat>1&&!l.next){for(h in w)w[m](h)&&(E[h]=l.totalOrigin[h]);l.el.attr(E),$t(l.anim,l.el,l.anim.percents[0],null,l.totalOrigin,l.repeat-1)}l.next&&!l.stop&&$t(l.anim,l.el,l.next,null,l.totalOrigin,l.repeat)}}}for(c.svg&&_&&_.paper&&_.paper.safari(),a=0,e=i.length;a<e;++a)c.getInstantAnimFrameFn()(function(e){return function(){$t.apply(null,i[e].params)}}(a));Pt.length&&(Rt||c.getAnimFrameFn())(Zt)},Bt=function(e){return e>255?255:e<0?0:e},jt=function(e){return e>1&&(e=1),e<0&&(e=0),e};function Gt(e,t,r,n,a,i){var o=3*t,s=3*(n-t)-o,l=1-o-s,c=3*r,u=3*(a-r)-c,d=1-c-u;function h(e){return((l*e+s)*e+o)*e}return function(e,t){var r=function(e,t){var r,n,a,i,c,u;for(a=e,u=0;u<8;u++){if(i=h(a)-e,ie(i)<t)return a;if(ie(c=(3*l*a+2*s)*a+o)<1e-6)break;a-=i/c}if(n=1,(a=e)<(r=0))return r;if(a>n)return n;for(;r<n;){if(i=h(a),ie(i-e)<t)return a;e>i?r=a:n=a,a=(n-r)/2+r}return a}(e,t);return((d*r+u)*r+c)*r}(e,1/(200*i))}function Ht(e,t){var r=[],n={};if(this.ms=t,this.times=1,e){for(var a in e)e[m](a)&&(n[ee(a)]=e[a],r.push(ee(a)));r.sort(Ie)}this.anim=n,this.top=r[r.length-1],this.percents=r}c.getAnimFrameFn=function(){return Rt=c.requestAnimFrame||l.webkitRequestAnimationFrame||l.mozRequestAnimationFrame||l.oRequestAnimationFrame||l.msRequestAnimationFrame||function(e){setTimeout(e,16)}},c.getInstantAnimFrameFn=function(){return c.instantRequestAnimFrame||l.webkitRequestAnimationFrame||l.mozRequestAnimationFrame||l.oRequestAnimationFrame||l.msRequestAnimationFrame||function(e){setTimeout(e,16)}},kt.animateWith=function(e,t,r,n,a,i,o){var s,l=this,u={};for(s in o=o||{})o.hasOwnProperty(s)&&(u[s]=o[s]);if(o=u,l.removed)return i&&i.call(l),l;if(0===n)return c.is(i,S)&&setTimeout((function(){i.call(l)}),0),l.attr(r);var d=r instanceof Ht?r:c.animation(r,n,a,i);o.start=jt(o.start||0),o.end=jt(o.end||1),o.start>=o.end&&(o.start=o.end),!o.from&&o.start>.01?(e.animElements=e.animElements||new He((function(e,t){return t.pos-e.pos})),e.animElements.enq({pos:o.start,attr:o.start===o.end,params:[d,l,d.percents[0],null,l.attr(),undefined,e,{start:o.start,end:o.end,smartMorph:o.smartMorph,hookFn:o.hookFn},r],executeOb:{el:this,attrs:r,callback:i,hookFn:o.hookFn}})):$t(d,l,d.percents[0],null,l.attr(),undefined,e,o);for(var h=0,f=Pt.length;h<f;h++)if(Pt[h].anim===t&&Pt[h].el===e){Pt[f-1].start=Pt[h].start;break}return l},kt.onAnimation=function(e){return e?o["default"].on("raphael.anim.frame."+this.id,e):o["default"].unbind("raphael.anim.frame."+this.id),this},Ht.prototype.delay=function(e){var t=new Ht(this.anim,this.ms);return t.times=this.times,t.del=+e||0,t},Ht.prototype.repeat=function(e){var t=new Ht(this.anim,this.ms);return t.del=this.del,t.times=re.floor(ne(e,0))||1,t};var zt=function Qt(e,t,r){e.isRadial&&!t.isRadial&&(+t[0],t[0]={f1:0,f2:0,f3:0,f4:0,f5:0,f6:g},t.isRadial=!0),r||Qt(t,e,!0)};function Ut(e,t,r){var n,a,i=0,o=0,s=[],l=[],c={},u=0,d=[];if(e=e.constructor===Array?e[0]:e,t=t.constructor===Array?t[0]:t,n=e.split("-"),a=t.split("-"),1===n.length&&1===a.length)return[e,t];for(n=h(n),a=h(a),!n.defaultAngleSet&&a.defaultAngleSet&&(a[0]=n[0]),!a.defaultAngleSet&&n.defaultAngleSet&&(n[0]=a[0]),zt(n,a),i=1,o=n.length;i<o;++i)u=n[i].position,d.push(u);for(i=1,o=a.length;i<o;++i)u=a[i].position,-1===d.indexOf(u)&&d.push(u);for(d.push(0),d.sort((function(e,t){return e-t})),s=[n[0]],i=1,o=d.length;i<o;++i)u=d[i],c=n.getColorAtPosition(u),s.push(c);for(l=[a[0]],i=1,o=d.length;i<o;++i)u=d[i],c=a.getColorAtPosition(u),l.push(c);return s.isRadial=n.isRadial,l.isRadial=a.isRadial,[s,l];function h(e){var t,n=0,a=0,i=0,o=[],s={},l=0,c=0,u=0,d=0,h=0,f=0,p={f1:.5,f2:.5};for(1===e.length&&(e[0]===k&&(e[0]="rgba(0,0,0,0)"),e.unshift(0),e.defaultAngleSet=!0),isNaN(e[0])?~"rx".indexOf(e[0].charAt(0))?(e.isRadial=!0,d=1,-1!==e[0].indexOf(")")&&(d=e[0].indexOf(")"),h=e[0].indexOf("(")+1,f=d,o=e[0].substr(h,f-h).split(","),p.f1=parseFloat(o[0])||0,p.f2=parseFloat(o[1])||0,~o[2].indexOf("%")&&(o[2]=parseFloat(o[2])/100),p.f3=parseFloat(o[2])||0,p.f4=parseFloat(o[3])||0,p.f5=parseFloat(o[4])||0,p.f6=o[5]),e[0]=e[0].substr(f+1),e.unshift(p)):e[0]=0:e[0]=+e[0],n=1,a=e.length;n<a;++n)o=e[n].split(":"),s=r(o[0]),e[n]={},e[n].r=s.r,e[n].g=s.g,e[n].b=s.b,e[n].opacity=s.opacity,e[n].opacity=+e[n].opacity,isNaN(e[n].opacity)&&(e[n].opacity=1),e[n].position=+o[1];if(e.sort((function(e,t){return"number"==typeof e||e.f1?-1:"number"==typeof t||e.f2?1:isNaN(e.position)&&isNaN(t.position)?0:isNaN(e.position)?-1:isNaN(t.position)?1:e.position-t.position})),0!=+e[1].position)if(isNaN(e[1].position))e[1].position=0;else{for(t in s={},e[1])s[t]=e[1][t];for(s.position=0,e.push({}),n=e.length-1;1!==n;--n)e[n]=e[n-1];e[1]=s}if(100!==e[a=e.length-1].position)if(isNaN(e[a].position))e[a].position=100;else{for(t in s={},e[a])s[t]=e[a][t];s.position=100,e.push(s)}for(n=2,a=e.length;n<a;++n)if(!e[n].position){for(l=e[n-1].position,u=1,i=n+1;i<a;++i)if(++u,!isNaN(e[i].position)){c=+e[i].position;break}e[n].position=l+(c-l)/u}return e.getColorAtPosition=function(e){for(var t=-1,r=this.length,n=1,a=this.length,i=0,o=g,s={r:0,g:0,b:0};n<a-1;++n)if(this[n].position<=e&&(t=n,r=n+1),!(this[n].position<e)&&this[n].position>=e){r=n;break}for(o in i=(e-this[t].position)/(this[r].position-this[t].position),isNaN(i)&&(i=0),s)s[o]=Bt((1-i)*this[t][o]+i*this[r][o]);return s.position=e,s.opacity=(1-i)*this[t].opacity+i*this[r].opacity,s},e}}function Xt(e,t){var r,n=[],a=[],i=d(e),o=d(t),s=0,l=0,c=document.createElementNS&&document.createElementNS.bind(document),u=c&&c("http://www.w3.org/2000/svg","path");if(!i||!o||!u)return[e,t];if(function(e,t){var r,n,a=g,i=g;if(u.setAttribute("d","M300 10 L300 300 C50 310,50 640,350 650C600 640,600 310,400 300 L400 10 L295 10"),r=u.getTotalLength(),n=u.getPointAtLength(10),r<1829.1||r>1829.2)return!0;if(300!==Math.round(n.x)||20!==Math.round(n.y))return!0;function o(e){for(var t=e.length;t---1&&e[t].join(g)===e[t-1].join(g);)e.pop()}function s(e){for(var t=g,r=0,n=e.length;r<n;++r)t+=e[r].join(p);return t}if(o(e),o(t),a=s(e),i=s(t),a.split(/[Mm]/).length>2||i.split(/[Mm]/).length>2)return!1;if(e.length===t.length)return!0;return!1}(e,t))return[e,t];if(!e||!t)return[e,t];if(!document.createElementNS)return[e,t];if(i=d(e),o=d(t),-1!==i.join().indexOf("undefined"))return[e,t];if(-1!==o.join().indexOf("undefined"))return[e,t];if(!u.getTotalLength||!u.getPointAtLength)return[e,t];function d(e){var t=[],r=0,n=e.length;if(typeof e===x)return e;for(r=0;r<n;++r){if(!e[r].join)return;r&&e[r+1]&&"M"===e[r+1][0]&&"M"===e[r][0]||t.push(e[r].join(p))}for(r=0,n=(t=(t=t.join(g)).split(/[Mm]/).slice(1)).length;r<n;++r)t[r]="M"+t[r];return t}for(l=Math.max(i.length,o.length),s=0;s<l;++s)r=Wt(i[s],o[s]),i[s]=r[0],o[s]=r[1];function h(e){var t,r=0,n=[];for(t=(e=e||[]).length,r=0;r<t;++r)e[r].length-1&&n.push(e[r].join(p));return n.join(g)}function f(e,t){for(var r=e.length;r---1&&e[r].slice(1).toString()===e[r-1].slice(1).toString();)e.pop();1===e.length&&t&&(e.length=0)}function m(e,t){for(var r,n=[],a=[],i=e.length,o=0,s=0,l=0,c=0,u=t-i;u>=0;)o=e.length-1,e.push(e.slice(o)[0]),--u;for(i=e.length,o=0;o<=t;++o)a.push(Math.round(o/t*i));for(o=0,r=a.length-1;o<r;++o)n.push(e.slice(a[o],a[o+1])),"M"!==n[o][0][0]&&n[o][0][0]!==H&&(l=n[o-1].length-1,s=n[o-1][l][1],c=n[o-1][l][2],n[o].unshift(["M",s,c]));return n}for(s=i.length;s--;)f(i[s],s),i[s].length||i.pop();for(s=o.length;s--;)f(o[s],s),o[s].length||o.pop();for(function(e){var t,r=[],n=[],a=[],s=0,l=!0;if(0!==e){for(e>0?(r=o,l=!1):(e=-e,r=i),s=0,t=r.length;s<t;++s)n.push(1);for(;e--;)--s<0&&(s=t-1),n[s]++;for(s=0;s<t;++s)1===n[s]?a.push(r[s]):a.push.apply(a,m(r[s],n[s]));l?i=a:o=a}}(i.length-o.length),l=Math.max(i.length,o.length),s=0;s<l;++s)r=Wt(h(i[s]),h(o[s])),i[s]=r[0],o[s]=r[1];for(s=0,l=i.length;s<l;++s)n=n.concat(i[s]);for(s=0,l=o.length;s<l;++s)a=a.concat(o[s]);return[n,a]}function Wt(e,t){var r,n,a,i=0,o=[],s=[];function l(e,t){var r,n,a,i,o=0,s={},l=[],c=[],u=0,d=Math.round;for((r=document.createElementNS("http://www.w3.org/2000/svg","path")).setAttribute("d",e),(n=document.createElementNS("http://www.w3.org/2000/svg","path")).setAttribute("d",t),a=r.getTotalLength(),i=n.getTotalLength(),u=.15*Math.max(a,i),(!(u=Math.ceil(u))||!isFinite(u)||u<10)&&(u=10),o=0;o<=u;++o)s=r.getPointAtLength(o/u*a),l.push([o?U:z,d(s.x),d(s.y)]),s=n.getPointAtLength(o/u*i),c.push([o?U:z,d(s.x),d(s.y)]);return[l,c]}for(e&&"M "!==e||(e=t.split(p).slice(0,3).join(p).replace(/[LC]/,g)),t&&"M "!==t||(t=e.split(p).slice(0,3).join(p).replace(/[LC]/,g)),n=function(e,t){var r,n,a,i,o=0,s=0,l=0,c=0,u={},d={},h=[],f=[],m=-1,v=-1,b=!0;function y(e){var t,r=0;for(r=0,t=(e=e.split(/[MCLmcl]/).slice(1)).length;r<t;++r)e[r]=e[r].split(p).slice(1),r||e[r].unshift("M"),r&&(2===e[r].length&&e[r].unshift(U)||e[r].unshift("C"));return e}function x(e,t){var r,n,a=0,i=e.length;for(a=0,i=e.length;a<i;++a)r=e[a].join(p),"C"===(n=e[a])[0]&&n[3]===n[5]&&n[4]===n[6]?e[a].stringValue=[U,n[3],n[4]].join(p):n.stringValue=r,t[n.stringValue]&&t[n.stringValue].push(a),t[n.stringValue]||(t[n.stringValue]=[a])}function C(e,t,r,n,a){for(var i,o=r,s=0,l=0;o<n;++o)if(i=t[e[o].stringValue])for(s=0,l=i.length;s<l;++s)if(i[s]>=a)return{index:o,mapValue:i[s],diff:o-r};return-1}function w(e){var t=e.length-1;return["M",e[t-1],e[t]].join(p)}function _(e){return e.join(g)}for(e=y(e),t=y(t),x(e,u),x(t,d),r=e.length,n=t.length,o=0,s=0;o<r&&s<n;){if(++v,h[++m]=[],f[v]=[],b=e[o].stringValue===t[s].stringValue,o&&(h[m].push(w(e[o-1])),f[v].push(w(t[s-1]))),b)for(;o<r&&s<n&&e[o].stringValue===t[s].stringValue;)h[m].push(e[o].stringValue),f[v].push(t[s].stringValue),++o,++s;else{for(a=C(e,d,o,r,s),i=C(t,u,s,n,o),l=a.index,c=a.mapValue,(!~a||a.diff>i.diff)&&(l=i.mapValue,c=i.index),~a||~i||(l=r-1,c=n-1);o<=l;)h[m].push(e[o].stringValue),++o;for(;s<=c;)f[v].push(t[s].stringValue),++s}h[m]=_(h[m]),f[v]=_(f[v])}if(o<r){for(h[++m]=[],h[m].push(w(e[o-1])),f[++v]=[],f[v].push(w(t[s-1]));o<r;)h[m].push(e[o].stringValue),++o;h[m]=_(h[m])}if(s<n){for(h[++m]=[],h[m].push(w(e[o-1])),f[++v]=[],f[v].push(w(t[s-1]));s<n;)f[v].push(t[s].stringValue),++s;f[v]=_(f[v])}return[h,f]}(e,t),i=0,r=n[0].length;i<r;++i)a=l(n[0][i],n[1][i]),i?(o=o.concat(a[0].slice(1)),s=s.concat(a[1].slice(1))):(o=o.concat(a[0]),s=s.concat(a[1]));return[o,s]}function $t(e,t,r,n,a,i,s,l){r=ee(r);var u,d,h,f,g,p,v,y,C=e.ms,w={},S={},E={};if(null!==t.type){if((l=l||{}).hookFn&&l.hookFn.call(t),l.from=l.from||{},n)for(T=0,M=Pt.length;T<M;T++){var A=Pt[T];if(A.el.id===t.id&&A.anim===e){A.percent!=r?(delete A.el.e,delete A.el,Pt.splice(T,1),h=1):d=A,t.attr(A.totalOrigin);break}}else n=+S;for(var T=0,M=e.percents.length;T<M;T++){if(e.percents[T]===r||e.percents[T]>n*e.top){r=e.percents[T],g=e.percents[T-1]||0,C=C/e.top*(r-g),f=e.percents[T+1],u=e.anim[r];break}n&&t.attr(e.anim[e.percents[T]])}if(u){if(d)d.initstatus=n,d.start=new Date-d.ms*n;else{for(var F in u)if(u[m](F))if(Me[m](F)||t.ca[F]){switch(w[F]=l.from[F]||t.attr(F),null==w[F]&&(w[F]=Te[F]),S[F]=u[F],y=!1,Me[F]){case"number":((v=S[F]-w[F])||isNaN(v))&&(y=!0),E[F]=v/C;break;case"colour":if(w[F]===S[F])break;y=!0;var I=Ut(w[F],S[F],c.getRGB);w[F]=I[0];var L=I[1];if(typeof L===x)w[F].toLowerCase()!==k?(w[F]=c.getRGB(w[F]),w[F].opacity||(w[F].opacity=1)):w[F]={r:0,g:0,b:0,opacity:0},S[F].toLowerCase()!==k?(L=c.getRGB(S[F])).opacity||(L.opacity=1):L={r:0,g:0,b:0,opacity:0},E[F]={r:(L.r-w[F].r)/C,g:(L.g-w[F].g)/C,b:(L.b-w[F].b)/C,opacity:(L.opacity-w[F].opacity)/C};else for(E[F]=[],T=0,M=w[F].length;T<M;++T)0===T?E[F].push(L[0]):E[F].push({r:(L[T].r-w[F][T].r)/C,g:(L[T].g-w[F][T].g)/C,b:(L[T].b-w[F][T].b)/C,opacity:(L[T].opacity-w[F][T].opacity)/C});break;case"path":var N,D=lt(w[F],S[F]);for(l.smartMorph&&(D=Xt(D[0],D[1])),N=D[1],w[F]=D[0],E[F]=[],T=0,M=w[F].length;T<M;T++){var O;E[F][T]=[0],O=w[F][T]?w[F][T].length:0;for(var R=1;R<O;R++)E[F][T][R]=(N[T][R]-w[F][T][R])/C,!y&&E[F][T][R]&&(y=!0)}break;case"transform":var P=t._,V=ht(P[F],S[F]);if(y=!0,V)for(w[F]=V.from,S[F]=V.to,E[F]=[],E[F].real=!0,T=0,M=w[F].length;T<M;T++)for(E[F][T]=[w[F][T][0]],R=1,O=w[F][T].length;R<O;R++)E[F][T][R]=(S[F][T][R]-w[F][T][R])/C;else{var B=t.matrix||new ft,j={_:{transform:P.transform},getBBox:function(){return t.getBBox(1)}};w[F]=[B.a,B.b,B.c,B.d,B.e,B.f],ut(j,S[F]),S[F]=j._.transform,E[F]=[(j.matrix.a-B.a)/C,(j.matrix.b-B.b)/C,(j.matrix.c-B.c)/C,(j.matrix.d-B.d)/C,(j.matrix.e-B.e)/C,(j.matrix.f-B.f)/C]}break;case"csv":var G=Q(u[F])[_](ve),H=Q(w[F])[_](ve);if("clip-rect"===F)for(w[F]=H,E[F]=[],T=H.length;T--;)((v=G[T]-w[F][T])||isNaN(v))&&(y=!0),E[F][T]=v/C;S[F]=G;break;default:for(G=[][b](u[F]),H=[][b](w[F]),E[F]=[],T=t.ca[F].length;T--;)((v=(G[T]||0)-(H[T]||0))||isNaN(v))&&(y=!0),E[F][T]=v/C}y||(delete w[F],delete S[F],delete u[F],delete E[F])}else(c._availableAttrs[m](F)||"text"===F||t.ca[F])&&(t.attr(F,u[F]),delete u[F]);var z=u.easing,U=c.easing_formulas[z];if(!U)if((U=Q(z).match(xe))&&5===U.length){var X=U;U=function(e){return Gt(e,+X[1],+X[2],+X[3],+X[4],C)}}else U=Le;if(p=u.start||e.start||+new Date,t.e=A={anim:e,percent:r,timestamp:p,start:p+(e.del||0),status:0,initstatus:n||0,stop:!1,ms:C,easing:U,from:w,diff:E,to:S,el:t,callback:u.callback,prev:g,next:f,repeat:i||e.times,origin:t.attr(),totalOrigin:a,parentEl:s,delayend:l&&l.end,delaystart:l&&l.start},Pt.push(A),n&&!d&&!h&&(A.stop=!0,A.start=new Date-C*n,1===Pt.length))return Vt();h&&(A.start=new Date-A.ms*n),1===Pt.length&&(Rt||c.getAnimFrameFn())(Vt)}(0,o["default"])("raphael.anim.start."+t.id,t,e)}}}function Yt(e){var t;void 0===e&&(e=this);for(var r=0;r<Pt.length;r++)(t=Pt[r].el.paper)&&t!==e||Pt.splice(r--,1)}c.animation=function(e,t,r,n,a){if(e instanceof Ht)return e;!c.is(r,S)&&r||(n=n||r||null,r=null),!c.stopPartialEventPropagation&&(c.stopPartialEventPropagation=a),e=Object(e),t=+t||0;var i,o,s={};for(o in e)e[m](o)&&ee(o)!=o&&ee(o)+"%"!=o&&(i=!0,s[o]=e[o]);return n&&(i=!0),i?(r&&(s.easing=r),n&&(s.callback=n),new Ht({100:s},t)):new Ht(e,t)},kt.animate=function(e,t,r,n){if(this.removed)return n&&n.call(this),this;var a=e instanceof Ht?e:c.animation(e,t,r,n);return $t(a,this,a.percents[0],null,this.attr()),this},kt.status=function(e,t){var r,n,a=[],i=0;if(null!=t)return $t(e,this,-1,ae(t,1)),this;for(r=Pt.length;i<r;i++)if((n=Pt[i]).el.id===this.id&&(!e||n.anim===e)){if(e)return n.status;a.push({anim:n.anim,status:n.status})}return e?0:a},kt.pause=function(e,t){var r,n,a=+new Date;for(n=0;n<Pt.length;n++)!((r=Pt[n]).el.id===this.id||t&&r.parentEl&&r.parentEl.e.el&&r.parentEl.e.el.id===this.id)||e&&r.anim!==e||!1!==(0,o["default"])("raphael.anim.pause."+this.id,this,r.anim)&&(r.paused=!0,r.pauseStart=a);return this},kt.resume=function(e,t){var r,n,a=+new Date;for(n=0;n<Pt.length;n++)!((r=Pt[n]).el.id===this.id||t&&r.parentEl&&r.parentEl.e.el&&r.parentEl.e.el.id===this.id)||e&&r.anim!==e||!1!==(0,o["default"])("raphael.anim.resume."+this.id,this,r.anim)&&(delete r.paused,r.el.status(r.anim,r.status),r.pauseEnd=a,r.start+=(r.parentEl&&r.parentEl.e.pauseEnd||r.pauseEnd)-(r.parentEl&&r.parentEl.e.pauseStart||r.pauseStart)||0);return this},kt.stop=function(e,t,r){var n,a;if(t)for(i=Pt.length-1;i>=0;i--)!((n=Pt[i]).el.id===this.id||n.parentEl&&n.parentEl.id===this.id)||e&&Pt[i].anim!==e||(a=n.el,r&&a.attr(n.to),n.callback&&n.callback.call(a),delete a.e,delete n.el,Pt.splice(i,1));else for(var i=0;i<Pt.length;i++)(n=Pt[i]).el.id!==this.id||e&&n.anim!==e||!1!==(0,o["default"])("raphael.anim.stop."+this.id,this,n.anim)&&Pt.splice(i--,1);return this.animElements&&function(e){var t;for(;t=e.deq();)(t=t.executeOb).hookFn&&t.hookFn.call(t.el),t.el.attr(t.attrs),t.callback&&t.callback.call(t.el)}(this.animElements),this},o["default"].on("raphael.remove",Yt),o["default"].on("raphael.clear",Yt),kt.toString=function(){return"Raphaël’s object"},kt.toFront=function(){if(this.removed)return this;var e,t,r,n=this,a=c._engine.getNode(n),i=n.parent,o=n.followers;for(c._tofront(n,i)&&i.canvas.appendChild(a),t=0,r=o.length;t<r;t++)(e=o[t]).stalk&&e.el[e.stalk](n);return n},kt.toBack=function(){if(this.removed)return this;var e,t,r,n=this,a=c._engine.getNode(n),i=n.parent,o=n.followers;for(c._toback(n,i)&&i.canvas.insertBefore(a,i.canvas.firstChild),t=0,r=o.length;t<r;t++)(e=o[t]).stalk&&e.el[e.stalk](n);return n},kt.insertAfter=function(e){if(this.removed)return this;var t,r,n,a=this,i=c._engine.getNode(a),o=c._engine.getLastNode(e),s=e.parent.canvas,l=a.followers;for(o.nextSibling?s.insertBefore(i,o.nextSibling):s.appendChild(i),c._insertafter(a,e,a.parent,e.parent),r=0,n=l.length;r<n;r++)(t=l[r]).stalk&&t.el[t.stalk](e);return a},kt.insertBefore=function(e){if(this.removed)return this;var t,r,n,a=this,i=c._engine.getNode(a),o=c._engine.getNode(e),s=a.followers;for(e.parent.canvas.insertBefore(i,o),c._insertbefore(a,e,a.parent,e.parent),a.parent=e.parent,r=0,n=s.length;r<n;r++)(t=s[r]).stalk&&t.el[t.stalk](e);return this},kt.appendChild=function(e){if(this.removed||"group"!==this.type)return this;var t,r,n,a,i=this.followers;if(e.parent===this)return e.toFront(),this;for(r=c._engine.getNode(e),c._tear(e,e.parent),this.canvas.appendChild(r),e.parent=this,!this.bottom&&(this.bottom=e),e.prev=this.top,e.next=null,this.top&&(this.top.next=e),this.top=e,n=0,a=i.length;n<a;n++)(t=i[n]).stalk&&t.el[t.stalk](e);return this},kt.appendTo=function(e){return e.appendChild(this)},kt.removeChild=function(e){if(this.removed||"group"!==this.type||e.parent!==this)return this;var t=this,r=c._engine.getNode(e),n=t.paper;return c._tear(e,t),n.canvas.appendChild(r),t.parent=n,!n.bottom&&(n.bottom=t),t.prev=n.top,n.top&&(n.top.next=t),n.top=t,t.next=null,t},c.format=function(e,t){var r=(0,s.getArrayCopy)(arguments),n=c.is(t,C)?[0][b](t):r;return e&&c.is(e,x)&&n.length-1&&(e=e.replace(be,(function(e,t){return null==n[++t]?g:n[t]}))),e||g};var qt=c.vml?.5:0;c.crispBound=(0,s.cacher)((function(e,t,r,n,a){var i,o={};return e=e||0,t=t||0,r=r||0,n=n||0,i=(a=a||0)%2/2+qt,o.x=ue(e+i)-i,o.y=ue(t+i)-i,o.width=ue(e+r+i)-i-o.x,o.height=ue(t+n+i)-i-o.y,o["stroke-width"]=a,0===o.width&&0!==r&&(o.width=1),0===o.height&&0!==n&&(o.height=1),o}),c),kt.crisp=function(){var e,t=this,r=t.attrs,n=t.attr();for(e in n=c.crispBound(n.x,n.y,n.width,n.height,n["stroke-width"]))r[e]===n[e]&&delete n[e];return t.attr(n)},c.define=function(e,t,r,n,a,i){var o,l;if(c.is(e,C))for(o=0,l=e.length;o<l;o++)c.define(e[o]);else if(c.is(e,w))c.define(e.name,e[e.name],e.ca,e.fn,e.e,e.data);else if(e&&!c.fn[e])return c.fn[e]=function(){var i,o=(0,s.getArrayCopy)(arguments),l=t.apply(this,o);if(n&&c.is(n,w))for(i in n)l[i]=n[i];if(a&&c.is(a,w))for(i in a)l[i]&&l[i](a[i]);if(r){if(c.is(r,S))l.ca[e]=r;else for(i in r)l.ca[i]=r[i];l.ca[e]&&(c._lastArgIfGroup(o,!0),o.length&&(o[0][e]?l.attr.apply(l,o):l.attr(e,o[0])))}return l},r&&(c.fn[e].ca=r),n&&(c.fn[e].fn=n),a&&(c.fn[e].e=a),i&&(c.fn[e].data=i),c.fn[e]},function(e,t,r){null==e.readyState&&e.addEventListener&&(e.addEventListener("DOMContentLoaded",r=function(){e.removeEventListener("DOMContentLoaded",r,!1),e.readyState="complete"},!1),e.readyState="loading"),function n(){/in/.test(e.readyState)?setTimeout(n,9):c.eve("raphael.DOMload")}()}(L),o["default"].on("raphael.DOMload",(function(){u=!0})),c._preload=function(e,t){var r=I.doc,n=r.createElement("img");n.style.cssText="position:absolute;left:-9999em;top:-9999em",n.onload=function(){t.call(this),this.onload=null,r.body.removeChild(this)},n.onerror=function(){r.body.removeChild(this)},r.body.appendChild(n),n.src=e};var Kt=c;t["default"]=Kt}).call(this,r(6))},function(e,t,r){"use strict";(function(e){t.__esModule=!0,t["default"]=void 0;var n=r(187),a=function(e){var t,r,a="hasOwnProperty",i=/[\.\/]/,o=/\s*,\s*/,s=function(e,t){return e-t},l={n:{}},c=function(){for(var e=0,t=this.length;e<t;e++)if("undefined"!=typeof this[e])return this[e]},u=function(){for(var e=this.length;--e;)if("undefined"!=typeof this[e])return this[e]},d=Object.prototype.toString,h=String,f=Array.isArray||function(e){return e instanceof Array||"[object Array]"==d.call(e)};function g(e,a){var i,o=r,l=(0,n.getArrayCopy)(arguments),d=Array.prototype.slice.call(l,2),h=g.listeners(e),f=0,p=[],m={},v=[],b=t;v.firstDefined=c,v.lastDefined=u,t=e,r=0;for(var y=0,x=h.length;y<x;y++)"zIndex"in h[y]&&(p.push(h[y].zIndex),h[y].zIndex<0&&(m[h[y].zIndex]=h[y]));for(p.sort(s);p[f]<0;)if(i=m[p[f++]],v.push(i.apply(a,d)),r)return r=o,v;for(y=0;y<x;y++)if("zIndex"in(i=h[y]))if(i.zIndex==p[f]){if(v.push(i.apply(a,d)),r)break;do{if((i=m[p[++f]])&&v.push(i.apply(a,d)),r)break}while(i)}else m[i.zIndex]=i;else if(v.push(i.apply(a,d)),r)break;return r=o,t=b,v}return g._events=l,g.listeners=function(e){var t,r,n,a,o,s,c,u,d=f(e)?e:e.split(i),h=l,g=[h],p=[];for(a=0,o=d.length;a<o;a++){for(u=[],s=0,c=g.length;s<c;s++)for(r=[(h=g[s].n)[d[a]],h["*"]],n=2;n--;)(t=r[n])&&(u.push(t),p=p.concat(t.f||[]));g=u}return p},g.separator=function(e){e?(e="["+(e=h(e).replace(/(?=[\.\^\]\[\-])/g,"\\"))+"]",i=new RegExp(e)):i=/[\.\/]/},g.on=function(e,t){if("function"!=typeof t)return function(){};for(var r=f(e)?f(e[0])?e:[e]:h(e).split(o),n=0,a=r.length;n<a;n++)!function(e){for(var r,n=f(e)?e:h(e).split(i),a=l,o=0,s=n.length;o<s;o++)a=(a=a.n).hasOwnProperty(n[o])&&a[n[o]]||(a[n[o]]={n:{}});for(a.f=a.f||[],o=0,s=a.f.length;o<s;o++)if(a.f[o]==t){r=!0;break}!r&&a.f.push(t)}(r[n]);return function(e){+e==+e&&(t.zIndex=+e)}},g.f=function(e){var t=(0,n.getArrayCopy)(arguments),r=[].slice.call(t,1);return function(){g.apply(null,[e,null].concat(r).concat([].slice.call(t,0)))}},g.stop=function(){r=1},g.nt=function(e){var r=f(t)?t.join("."):t;return e?new RegExp("(?:\\.|\\/|^)"+e+"(?:\\.|\\/|$)").test(r):r},g.nts=function(){return f(t)?t:t.split(i)},g.off=g.unbind=function(e,t){if(e){var r=f(e)?f(e[0])?e:[e]:h(e).split(o);if(r.length>1)for(var n=0,s=r.length;n<s;n++)g.off(r[n],t);else{r=f(e)?e:h(e).split(i);var c,u,d,p,m,v=[l],b=[];for(n=0,s=r.length;n<s;n++)for(p=0;p<v.length;p+=d.length-2){if(d=[p,1],c=v[p].n,"*"!=r[n])c[r[n]]&&(d.push(c[r[n]]),b.unshift({n:c,name:r[n]}));else for(u in c)c[a](u)&&(d.push(c[u]),b.unshift({n:c,name:u}));v.splice.apply(v,d)}for(n=0,s=v.length;n<s;n++)for(c=v[n];c.n;){if(t){if(c.f){for(p=0,m=c.f.length;p<m;p++)if(c.f[p]==t){c.f.splice(p,1);break}!c.f.length&&delete c.f}for(u in c.n)if(c.n[a](u)&&c.n[u].f){var y=c.n[u].f;for(p=0,m=y.length;p<m;p++)if(y[p]==t){y.splice(p,1);break}!y.length&&delete c.n[u].f}}else for(u in delete c.f,c.n)c.n[a](u)&&c.n[u].f&&delete c.n[u].f;c=c.n}e:for(n=0,s=b.length;n<s;n++){for(u in(c=b[n]).n[c.name].f)continue e;for(u in c.n[c.name].n)continue e;delete c.n[c.name]}}}else g._events=l={n:{}}},g.once=function(e,t){return g.on(e,(function r(){return g.off(e,r),t.apply(this,arguments)}))},g.version="0.5.3",g.toString=function(){return"You are running Eve 0.5.3"},e.eve=g,g}("undefined"!=typeof window?window:void 0!==e?e:null);t["default"]=a}).call(this,r(6))},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(214)),i={extension:function(e){(0,a["default"])(e.getDep("redraphael","plugin"))},name:"redraphaelSvg",type:"plugin",requiresFusionCharts:!0};t["default"]=i},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=function(e){if(e.svg){var t="hasOwnProperty",r="vertical-align",a="function",i={visibility:"hidden","font-size":"0px"},o=String,s=parseFloat,l=parseInt,c={top:0,bottom:-1,middle:-.5},u=e._g.win.navigator,d=!!document.documentMode,h=Math,f=h.max,g=h.abs,p=h.pow,m=h.sqrt,v=/^xlink:/,b=/[, ]+/,y=/\n|<br\s*?\/?>/i,x=/<|>|<br/i,C=/ | | /g,w=Array.prototype.shift,_=!(!/AppleWebKit/.test(u.userAgent)||/Chrome/.test(u.userAgent)&&!(u.appVersion.match(/Chrome\/(\d+)\./)[1]<29)),k=e.eve,S="",E=" ",A="http://www.w3.org/1999/xlink",T="http://www.w3.org/2000/svg",M=(!!u.platform&&/iPad|iPhone|iPod/.test(u.platform),{block:"M5,0 0,2.5 5,5z",classic:"M5,0 0,2.5 5,5 3.5,3 3.5,2z",diamond:"M2.5,0 5,2.5 2.5,5 0,2.5z",open:"M6,1 1,3.5 6,6",oval:"M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z"}),F={speed:"optimizeSpeed",crisp:"crispEdges",precision:"geometricPrecision"},I=u.userAgent.toLowerCase(),L=!(!(ie=-1!=I.indexOf("msie")&&parseInt(I.split("msie")[1]))||9!==ie),N=e.supportsPointer,D=e.supportsTouch,O={},R=function(t,r,n,a){e._preload(n[1],(function(){var e=this.offsetWidth,n=this.offsetHeight;z(t,{width:e,height:n}),z(r,{width:e,height:n}),a.safari()}))},P=function(e,t){if(t)for(var r in t)e[r]=t[r]},V={elementInfo:[]},B=e._g.doc,j=(e._g.win,{mouseover:"touchstart",mousedown:"touchstart",mouseup:"touchend",mousemove:"touchmove",mouseout:"touchend"}),G={"accent-height":!0,accumulate:!0,additive:!0,"alignment-baseline":!0,alphabetic:!0,amplitude:!0,"arabic-form":!0,ascent:!0,azimuth:!0,"baseline-shift":!0,bbox:!0,begin:!0,bias:!0,by:!0,"cap-height":!0,"class":!0,clip:!0,"clip-path":!0,"clip-rule":!0,color:!0,"color-interpolation":!0,"color-interpolation-filters":!0,"color-profile":!0,"color-rendering":!0,cursor:!0,cx:!0,cy:!0,d:!0,decelerate:!0,descent:!0,direction:!0,display:!0,divisor:!0,"dominant-baseline":!0,dur:!0,dx:!0,dy:!0,elevation:!0,"enable-background":!0,end:!0,exponent:!0,fill:!0,"fill-opacity":!0,"fill-rule":!0,filter:!0,"flood-color":!0,"flood-opacity":!0,"font-family":!0,"font-size":!0,"font-size-adjust":!0,"font-stretch":!0,"font-style":!0,"font-variant":!0,"font-weight":!0,format:!0,fr:!0,from:!0,fx:!0,fy:!0,g1:!0,g2:!0,"glyph-name":!0,"glyph-orientation-horizontal":!0,"glyph-orientation-vertical":!0,hanging:!0,height:!0,"horiz-adv-x":!0,"horiz-origin-x":!0,href:!0,hreflang:!0,id:!0,ideographic:!0,"image-rendering":!0,in2:!0,"in":!0,intercept:!0,k1:!0,k2:!0,k3:!0,k4:!0,k:!0,kerning:!0,lang:!0,"letter-spacing":!0,"lighting-color":!0,local:!0,"marker-end":!0,"marker-mid":!0,"marker-start":!0,mask:!0,mathematical:!0,max:!0,media:!0,method:!0,min:!0,mode:!0,name:!0,offset:!0,opacity:!0,operator:!0,order:!0,orient:!0,orientation:!0,origin:!0,overflow:!0,"overline-position":!0,"overline-thickness":!0,"paint-order":!0,"panose-1":!0,path:!0,ping:!0,"pointer-events":!0,points:!0,r:!0,radius:!0,rel:!0,"rendering-intent":!0,restart:!0,result:!0,rotate:!0,rx:!0,ry:!0,scale:!0,seed:!0,"shape-rendering":!0,slope:!0,spacing:!0,speed:!0,stemh:!0,stemv:!0,"stop-color":!0,"stop-opacity":!0,"strikethrough-position":!0,"strikethrough-thickness":!0,string:!0,stroke:!0,"stroke-dasharray":!0,"stroke-dashoffset":!0,"stroke-linecap":!0,"stroke-linejoin":!0,"stroke-miterlimit":!0,"stroke-opacity":!0,"stroke-width":!0,style:!0,tabindex:!0,target:!0,"text-anchor":!0,"text-decoration":!0,"text-rendering":!0,to:!0,transform:!0,type:!0,u1:!0,u2:!0,"underline-position":!0,"underline-thickness":!0,unicode:!0,"unicode-bidi":!0,"unicode-range":!0,"units-per-em":!0,"v-alphabetic":!0,"v-hanging":!0,"v-ideographic":!0,"v-mathematical":!0,values:!0,"vector-effect":!0,version:!0,"vert-adv-y":!0,"vert-origin-x":!0,"vert-origin-y":!0,visibility:!0,width:!0,widths:!0,"word-spacing":!0,"writing-mode":!0,x1:!0,x2:!0,x:!0,"x-height":!0,"xlink:actuate":!0,"xlink:arcrole":!0,"xlink:href":!0,"xlink:role":!0,"xlink:show":!0,"xlink:title":!0,"xlink:type":!0,"xml:base":!0,"xml:lang":!0,"xml:space":!0,y1:!0,y2:!0,y:!0,z:!0};D&&B.addEventListener(N?"pointerover":"touchstart",(function(e){if(V.srcElement&&V.srcElement!==(e.srcElement||e.target)){var t,r,n,a=(t=V.elementInfo).length;for(n=0;n<a;n++)(r=t[n]).callback.call(r.el,e)}V={elementInfo:[]}}),!0),e.toString=function(){return"Your browser supports SVG.\nYou are running Raphaël "+this.version},e._url=S;var H=function(e,t,r){void 0===r&&(r="fill");var n="fill"===r?e.gradient:e["stroke-gradient"];if(n){if(n===t)return;n.refCount--,n.refCount||n.parentNode.removeChild(n),"fill"===r?delete e.gradient:delete e["stroke-gradient"]}t&&("fill"===r?e.gradient=t:e["stroke-gradient"]=t,t.refCount++)},z=e._createNode=function(t,r){var n,a;if("string"==typeof t&&(t=e._g.doc.createElementNS(T,t)),r)for(n in r)a=L?o(r[n]):r[n],v.test(n)?t.setAttributeNS(A,n.replace(v,S),a):t.setAttribute(n,a);return t},U={userSpaceOnUse:"userSpaceOnUse",objectBoundingBox:"objectBoundingBox"},X={pad:"pad",redlect:"reflect",repeat:"repeat"},W=function(t,r,n){var a;if(void 0===n&&(n="fill"),!t.paper||!t.paper.defs)return 0;var i,l,c,u,d,v,b="linear",y=t.paper,x=e.getElementID((y.id+"-"+r).replace(/[()\s%:,\xb0#]/g,"_")),C=.5,w=.5,_=t.node,k=_.style,E=e._g.doc.getElementById(x);if(!E){if(r=(r=o(r).replace(e._radial_gradient,(function(e,t){b="radial",t=t?t.split(","):[],u=t[5],d=t[6];var r,n,a=t[0],o=t[1],h=t[2],f=t[3],g=t[4],v=a&&o;return h&&(i=/%/.test(h)?h:s(h)),u===U.userSpaceOnUse?(v&&(C=a,w=o),f&&g&&(l=f,c=g,v||(C=l,w=c)),S):(v&&(C=s(a),r=2*((w=s(o))>.5)-1,(n=p(C-.5,2))+p(w-.5,2)>.25&&n<.25&&(w=m(.25-n)*r+.5)&&.5!==w&&(w=w.toFixed(5)-1e-5*r)),f&&g&&(l=s(f),r=2*((c=s(g))>.5)-1,(n=p(l-.5,2))+p(c-.5,2)>.25&&n<.25&&(c=m(.25-n)*r+.5)&&.5!==c&&(c=c.toFixed(5)-1e-5*r),v||(C=l,w=c)),S)}))).split(/\s*-\s*/),"linear"===b){var A,T=r.shift(),M=T.match(/\((.*)\)/);if(M=M&&M[1]&&M[1].split(/\s*,\s*/),T=-s(T),isNaN(T))return null;M&&M.length?(M[0]in U?(u=M.shift(),M[0]in X&&(d=M.shift())):(M[4]&&(u=M[4]),M[5]&&(d=M[5])),v=[M[0]||"0%",M[1]||"0%",M[2]||"100%",M[3]||"0%"]):(v=[0,0,h.cos(e.rad(T)),h.sin(e.rad(T))],A=1/(f(g(v[2]),g(v[3]))||1),v[2]*=A,v[3]*=A,v[2]<0&&(v[0]=-v[2],v[2]=0),v[3]<0&&(v[1]=-v[3],v[3]=0))}var F=e._parseDots(r);if(!F)return null;(E=z(b+"Gradient",{id:x})).refCount=0,u in U&&E.setAttribute("gradientUnits",o(u)),d in X&&E.setAttribute("spreadMethod",o(d)),"radial"===b?(i!==undefined&&E.setAttribute("r",o(i)),l!==undefined&&c!==undefined&&(E.setAttribute("cx",o(l)),E.setAttribute("cy",o(c))),E.setAttribute("fx",o(C)),E.setAttribute("fy",o(w))):z(E,{x1:v[0],y1:v[1],x2:v[2],y2:v[3]});for(var I=0,L=F.length;I<L;I++)E.appendChild(z("stop",{offset:F[I].offset?F[I].offset:I?"100%":"0%","stop-color":F[I].color||"#fff","stop-opacity":F[I].opacity===undefined?1:F[I].opacity}));y.defs.appendChild(E)}return H(t,E,n),z(_,((a={})[n]="url('"+e._url+"#"+x+"')",a[n+"-opacity"]=1,a)),k.fill=S,1},$=function(e){var t=e.getBBox(1);z(e.pattern,{patternTransform:e.matrix.invert()+" translate("+t.x+","+t.y+")"})},Y=function(r,n,a){if("path"==r.type){for(var i,s,l,c,u,d=o(n).toLowerCase().split("-"),h=r.paper,f=a?"end":"start",g=r.node,p=r.attrs,m=p["stroke-width"],v=d.length,b="classic",y=3,x=3,C=5;v--;)switch(d[v]){case"block":case"classic":case"oval":case"diamond":case"open":case"none":b=d[v];break;case"wide":x=5;break;case"narrow":x=2;break;case"long":y=5;break;case"short":y=2}if("open"==b?(y+=2,x+=2,C+=2,l=1,c=a?4:1,u={fill:"none",stroke:p.stroke}):(c=l=y/2,u={fill:p.stroke,stroke:"none"}),r._.arrows?a?(r._.arrows.endPath&&O[r._.arrows.endPath]--,r._.arrows.endMarker&&O[r._.arrows.endMarker]--):(r._.arrows.startPath&&O[r._.arrows.startPath]--,r._.arrows.startMarker&&O[r._.arrows.startMarker]--):r._.arrows={},"none"!=b){var w="raphael-marker-"+b,_="raphael-marker-"+f+b+y+x+"-obj"+r.id;e._g.doc.getElementById(w)?O[w]++:(h.defs.appendChild(z(z("path"),{"stroke-linecap":"round",d:M[b],id:w})),O[w]=1);var k,E=e._g.doc.getElementById(_);E?(O[_]++,k=E.getElementsByTagName("use")[0]):(E=z(z("marker"),{id:_,markerHeight:x,markerWidth:y,orient:"auto",refX:c,refY:x/2}),k=z(z("use"),{"xlink:href":"#"+w,transform:(a?"rotate(180 "+y/2+" "+x/2+") ":S)+"scale("+y/C+","+x/C+")","stroke-width":(1/((y/C+x/C)/2)).toFixed(4)}),E.appendChild(k),h.defs.appendChild(E),O[_]=1),z(k,u);var A=l*("diamond"!=b&&"oval"!=b);a?(i=r._.arrows.startdx*m||0,s=e.getTotalLength(p.path)-A*m):(i=A*m,s=e.getTotalLength(p.path)-(r._.arrows.enddx*m||0)),(u={})["marker-"+f]="url('"+e._url+"#"+_+"')",(s||i)&&(u.d=e.getSubpath(p.path,i,s)),z(g,u),r._.arrows[f+"Path"]=w,r._.arrows[f+"Marker"]=_,r._.arrows[f+"dx"]=A,r._.arrows[f+"Type"]=b,r._.arrows[f+"String"]=n}else a?(i=r._.arrows.startdx*m||0,s=e.getTotalLength(p.path)-i):(i=0,s=e.getTotalLength(p.path)-(r._.arrows.enddx*m||0)),r._.arrows[f+"Path"]&&z(g,{d:e.getSubpath(p.path,i,s)}),delete r._.arrows[f+"Path"],delete r._.arrows[f+"Marker"],delete r._.arrows[f+"dx"],delete r._.arrows[f+"Type"],delete r._.arrows[f+"String"];for(u in O)if(O[t](u)&&!O[u]){var T=e._g.doc.getElementById(u);T&&T.parentNode.removeChild(T)}}},q={"":["none"],none:["none"],"-":[3,1],".":[1,1],"-.":[3,1,1,1],"-..":[3,1,1,1,1,1],". ":[1,3],"- ":[4,3],"--":[8,3],"- .":[4,3,1,3],"--.":[8,3,1,3],"--..":[8,3,1,3,1,3]},K=function(t,r,n){if(r!==undefined){var a,i,o,s,l,c=q[r.toLowerCase&&r.toLowerCase()];if(r=c||[].concat(r),e.is(r,"array")){if(o={round:i=n["stroke-width"]||t.attrs["stroke-width"]||1,square:i,butt:0}[n["stroke-linecap"]||t.attrs["stroke-linecap"]]||0,s=r.length,l=c?i:1,"none"===r[0])a=r;else for(a=[];s--;)a[s]=r[s]*l+(s%2?1:-1)*o,a[s]<=0&&(a[s]=.01+(i<=1?o:0)),isNaN(a[s])&&(a[s]=0);return{"stroke-dasharray":a.join(",")}}}},J=e._setFillAndStroke=function(r,a){if(r.paper.canvas){var i,s,c,u,d,h,p=r.node,m=r.attrs,v=r.paper,y={},x={},C={"clip-rect":!0};for(s in"image"===r.type&&(0,n.loadRefImage)(r,a),a)if(s in e._availableAttrs)if((c=a[s])===S&&s in m)delete m[s],p.removeAttribute("src"===s?"href":s);else if(null!==c||C[s])switch(m[s]=c,s){case"blur":r.blur(c);break;case"href":case"title":case"target":var w=p.parentNode;if("a"!==w.tagName.toLowerCase()){if(c===S)break;var k=z("a");k.raphael=!0,k.raphaelid=p.raphaelid,w.insertBefore(k,p),k.appendChild(p),w=k}"target"===s?w.setAttributeNS(A,"show","blank"===c?"new":c):w.setAttributeNS(A,s,c),p.titleNode=w;break;case"cursor":x.cursor=c;break;case"transform":r.transform(c);break;case"rotation":e.is(c,"array")?r.rotate.apply(r,c):r.rotate(c);break;case"arrow-start":Y(r,c);break;case"arrow-end":Y(r,c,1);break;case"clip-path":u=!0;case"clip-rect":if(h=!u&&o(c).split(b),r._.clipispath=!!u,u||4===h.length){r.clip&&r.clip.parentNode.parentNode.removeChild(r.clip.parentNode);var E=z(u?"path":"rect");(i=z("clipPath")).id=e.getElementID(e.createUUID()),z(E,u?{d:c?m["clip-path"]=e._pathToAbsolute(c):e._availableAttrs.path,fill:"none"}:{x:h[0],y:h[1],width:h[2],height:h[3],transform:r.matrix.invert()}),i.appendChild(E),v.defs.appendChild(i),y["clip-path"]="url('"+e._url+"#"+i.id+"')",r.clip=E}if(!c){var T=p.getAttribute("clip-path");if(T){var M=e._g.doc.getElementById(T.replace(/(^url\(#|\)$)/g,S));M&&M.parentNode.removeChild(M),y["clip-path"]=S,11===document.documentMode&&p.removeAttribute("clip-path"),delete r.clip}}break;case"path":"path"===r.type&&(y.d=c?m.path=e._stopabsolutePath?e.sanitizePath(c):e._pathToAbsolute(c):e._availableAttrs.path,r._.dirty=1,r._.arrows&&("startString"in r._.arrows&&Y(r,r._.arrows.startString),"endString"in r._.arrows&&Y(r,r._.arrows.endString,1)));break;case"width":if(y[s]=c,r._.dirty=1,!m.fx)break;s="x",c=m.x;case"x":m.fx&&(c=-m.x-(m.width||0));case"rx":if("rx"===s&&"rect"===r.type)break;case"cx":y[s]=c,r.pattern&&$(r),r._.dirty=1;break;case"height":if(y[s]=c,r._.dirty=1,!m.fy)break;s="y",c=m.y;case"y":if("text"===r.type)break;m.fy&&(c=-m.y-(m.height||0));case"ry":if("ry"===s&&"rect"===r.type)break;case"cy":y[s]=c,r.pattern&&$(r),r._.dirty=1;break;case"r":"rect"===r.type?y.rx=y.ry=c:y[s]=c,r._.dirty=1;break;case"src":"image"===r.type&&p.setAttributeNS(A,"href",c);break;case"stroke-width":1===r._.sx&&1===r._.sy||(c/=f(g(r._.sx),g(r._.sy))||1),v._vbSize&&(c*=v._vbSize),_&&0===c&&(c=1e-6),y[s]=c,!a["stroke-dasharray"]&&m["stroke-dasharray"]&&""!==a["stroke-dasharray"]&&P(y,K(r,m["stroke-dasharray"],a)),r._.arrows&&("startString"in r._.arrows&&e.addArrow&&e.addArrow(r,r._.arrows.startString),"endString"in r._.arrows&&e.addArrow&&e.addArrow(r,r._.arrows.endString,1));break;case"stroke-dasharray":P(y,K(r,c,a));break;case"fill":if(e._ISURL.test(c)){d=c.split(e._ISURL),i=z("pattern");var I=z("image");i.id=e.getElementID(e.createUUID()),z(i,{x:0,y:0,patternUnits:"userSpaceOnUse",height:1,width:1}),z(I,{x:0,y:0,"xlink:href":d[1]}),i.appendChild(I),R(i,I,d,v),v.defs.appendChild(i),y.fill="url('"+e._url+d[1]+"')",r.pattern=i,r.pattern&&$(r);break}var L=e.getRGB(c);if(L.error){if(("circle"===r.type||"ellipse"===r.type||"r"!==o(c).charAt())&&W(r,c)){m.gradient=c;break}}else delete a.gradient,delete m.gradient,!e.is(m["fill-opacity"],"undefined")&&e.is(a["fill-opacity"],"undefined")&&(y["fill-opacity"]=m["fill-opacity"]),r.gradient&&H(r);L[t]("opacity")?(y["fill-opacity"]=L.opacity>1?L.opacity/100:L.opacity,r._.fillOpacityDirty=!0):r._.fillOpacityDirty&&e.is(m["fill-opacity"],"undefined")&&e.is(a["fill-opacity"],"undefined")&&(p.removeAttribute("fill-opacity"),delete r._.fillOpacityDirty);case"stroke":(L=e.getRGB(c)).error?"circle"!==r.type&&"ellipse"!==r.type&&"r"===o(c).charAt()||W(r,c,"stroke"):(y[s]=L.hex,H(r,void 0,s)),"stroke"===s&&(L[t]("opacity")?(y["stroke-opacity"]=L.opacity>1?L.opacity/100:L.opacity,r._.strokeOpacityDirty=!0):r._.strokeOpacityDirty&&e.is(m["stroke-opacity"],"undefined")&&e.is(a["stroke-opacity"],"undefined")&&(p.removeAttribute("stroke-opacity"),delete r._.strokeOpacityDirty),r._.arrows&&("startString"in r._.arrows&&Y(r,r._.arrows.startString),"endString"in r._.arrows&&Y(r,r._.arrows.endString,1)));break;case"gradient":("circle"===r.type||"ellipse"===r.type||"r"!==o(c).charAt())&&W(r,c);break;case"visibility":"hidden"===c?r.hide():r.show();break;case"opacity":c=c>1?c/100:c,y.opacity=c;break;case"fill-opacity":c=c>1?c/100:c,y["fill-opacity"]=c;break;case"shape-rendering":r.attrs[s]=c=F[c]||c||"auto",y[s]=c,p.style.shapeRendering=c;break;case"line-height":case"vertical-align":break;default:"font-size"===s&&(c=l(c,10)+"px"),r._.dirty=1,y[s]=c,n.dashedAttr2CSSMap[s]&&(x[n.dashedAttr2CSSMap[s]]=c)}else s in m&&(delete m[s],p.removeAttribute("src"===s?"href":s));else s in G&&(c===S&&s in m?(delete m[s],p.removeAttribute(s)):(m[s]=c,x[s]=c));for(s in x)p.style[s]=x[s];for(s in y)p.setAttribute(s,y[s]);"text"===r.type&&!a["_do-not-tune"]&&Q(r,a)}},Z=e._updateFollowers=function(){var e,t,r,a=(0,n.getArrayCopy)(arguments),i=w.call(a),o=w.call(a);for(e=0,t=i.followers.length;e<t;e++)(r=i.followers[e].el)[o].apply(r,a)},Q=function(n,a){if("text"===n.type&&(a[t]("text")||a[t]("font")||a[t]("font-size")||a[t]("x")||a[t]("y")||a[t]("line-height")||a[t](r)||a[t]("textpath"))){var l,u,h,f,g,p,m,v,b,w,_,k,A=n.attrs,T=n.paper.defs,M=n.parent,F=n.node,I=n._oldAttr=n._oldAttr||{baseLineDiff:8,valign:-.5},L=s(a["line-height"]||A["line-height"]),N=a.direction||A.direction||M&&M.attrs&&M.attrs.direction||I.direction||"initial",D=!1,O=!1,R=d||"rtl"!==N?1:2,P=!1,V=!1,B=function(e){return e&&C.test(e)},j=function(e){return e.replace(/\s+/g," ").trim().replace(C," ")};if(a[t]("textpath")){var G,H,U,X=e.getElementID(e.createUUID()),W=a.textpath,$=0,Y={};for(var q in W)W.hasOwnProperty(q)&&("path"!==q||"href"in W?Y[q]=W[q]:I.textPathStr!==W[q]?(n.textPathDef?(n.textPathDef.setAttribute("d",W[q]||S),Y.href="#"+n.textPathDef.getAttribute("id"),Y["xlink:href"]="#"+n.textPathDef.getAttribute("id")):(n.textPathDef=T.appendChild(z("path",{id:X,d:W[q]||S})),Y.href="#"+X,Y["xlink:href"]="#"+X),I.textPathStr=W[q]):(Y.href="#"+n.textPathDef.getAttribute("id"),Y["xlink:href"]="#"+n.textPathDef.getAttribute("id")));for(a[t]("text")?(U=e._g.doc.createTextNode(a.text||S),I.pathText=A.text=a.text||S):(U=e._g.doc.createTextNode(I.pathText||I.text||S),I.pathText=I.pathText||I.text||S,delete I.text),a[t](r)?("middle"===a[r]?($=.3,I.valign=-.5):"bottom"===a[r]?($=.7,I.valign=-1):"top"===a[r]&&(I.valign=0),(H=z("tspan",{dy:$+"em"})).appendChild(U),I.tSpan=H):!I.tSpan||I.tSpan.textContent!==a.text&&"string"==typeof a.text?($=-.5===I.valign?.3:-1===I.valign?.7:0,(H=z("tspan",{dy:$+"em"})).appendChild(U),I.tSpan=H):H=I.tSpan,delete I.x,delete I.y,F.removeAttribute("x"),F.removeAttribute("y"),(G=z("textPath",Y)).appendChild(H||U);F.firstChild;)F.removeChild(F.firstChild);F.appendChild(G)}else{if(I.direction=N,n.textPathDef&&T&&(n.textPathDef.parentNode.removeChild(n.textPathDef),delete n.textPathDef),delete I.txtNode,delete I.tSpan,delete I.textPathStr,L||(L=1.2*(l=(l=a.fontSize||a["font-size"]||A["font-size"]||M&&M.attrs&&M.attrs.fontSize)?l.toString().replace("px",S):10)),(a[t]("text")||I.pathText)&&(_=e.is(a.text,"array")?a.text.join("<br>"):null==a.text?I.pathText:a.text,delete I.pathText,_!==I.text&&(V=!0,_&&x.test(_)&&(_=_.replace(/</g,"<").replace(/>/g,">").replace(/&<br\/>lt;|&l<br\/>t;|<<br\/>;/g,"<<br/>").replace(/&<br\/>gt;|&g<br\/>t;|><br\/>;/g,"><br/>")),I.text=A.text=_,y.test(_)?(I.noTSpan&&(I.noTSpan=!(k=!0)),g=(m=o(_).split(y)).length):(k=!0,I.noTSpan=!0,g=1),I.lineCount!==g&&(I.lineCount=g,P=!0))),L!==I.lineHeight&&(I.lineHeight=L,I.baseLineDiff=.75*L,P=!0),k)for(;F.firstChild;)F.removeChild(F.firstChild);if(I.lineCount>1){if("pre"===F.style.whiteSpace&&(F.style.whiteSpace=""),h={},I.tspanAttr||(I.tspanAttr={},I.tspan0Attr={}),I.tspanAttr.dy!==I.lineHeight&&(I.tspanAttr.dy=h.dy=I.lineHeight,O=!0),a[t]("x")&&I.tspanAttr.x!==a.x&&(I.tspan0Attr.x=I.tspanAttr.x=h.x=A.x,O=!0),V){for(w=F.getElementsByTagName("tspan"),f=0;f<g;f++){if(b=w[f*R]){if(b.innerHTML=S,d)for(;b.firstChild;)b.removeChild(b.firstChild);O&&z(b,f?h:I.tspan0Attr)}else b=z("tspan",f?I.tspanAttr:I.tspan0Attr),F.appendChild(b),d||"rtl"!==N||((v=z("tspan",i)).appendChild(e._g.doc.createTextNode("i")),F.appendChild(v));m[f]||(b.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),m[f]=E),B(m[f])?(m[f]=j(m[f]),b.style.whiteSpace="pre"):"pre"===b.style.whiteSpace&&(b.style.whiteSpace=""),b.appendChild(e._g.doc.createTextNode(m[f]))}if(p=g*R,w.length>p)for(f=w.length-1;f>=p;f-=1)F.removeChild(w[f])}else if(O)for(p=(w=F.getElementsByTagName("tspan")).length,f=0;f<p;f+=R)z(w[f],f?h:I.tspan0Attr)}else V&&(B(_)?(_=j(_),F.style.whiteSpace="pre"):"pre"===F.style.whiteSpace&&(F.style.whiteSpace=""),F.appendChild(e._g.doc.createTextNode(_)));a[r]&&(u=c[A[r]]||0)!==I.valign&&(I.valign=u,P=!0),P&&(I.shift=I.baseLineDiff+I.lineCount*I.lineHeight*I.valign,D=!0),!a.y&&0!==a.y||I.y===a.y||(I.y=A.y,D=!0),!D||!I.y&&0!==I.y||!I.shift&&0!==I.shift||z(F,{y:Math.round(I.y+I.shift)})}}},ee=function(t,r,n){var a=this,i=n||r;/*!dontAppend &&*/i.canvas&&i.canvas.appendChild(t),a.node=a[0]=t,t.raphael=!0,t.raphaelid=a.id=e._oid++,a.matrix=e.matrix(),a.realPath=null,a.attrs=a.attrs||{},a.followers=a.followers||[],a.paper=r,a.ca=a.customAttributes=a.customAttributes||new r._CustomAttributes,a._={transform:[],sx:1,sy:1,deg:0,dx:0,dy:0,dirty:1},a.parent=i,!i.bottom&&(i.bottom=a),a.prev=i.top,i.top&&(i.top.next=a),i.top=a,a.next=null},te=function(e,t,r){var n=r?"pageY":"pageX";return Math.abs(t[n]-e[n])},re=e.storeHandlers=function(e,t,r){e._actualListners||(e._actualListners=[]),e._derivedListeners||(e._derivedListeners=[]),e._actualListners.push(t),e._derivedListeners.push(r)},ne=function(e,t){var r,n=e._actualListners.indexOf(t);return-1!==n&&(r=e._derivedListeners[n],e._actualListners.splice(n,1),e._derivedListeners.splice(n,1)),r},ae=e.el;ee.prototype=ae,ae.constructor=ee,e._engine.getNode=function(e){var t=e.node||e[0].node;return t.titleNode||t},e._engine.getLastNode=function(e){var t=e.node||e[e.length-1].node;return t.titleNode||t},ae.rotate=function(e,t,r){var n,a=this;return a.removed?a:(Z(a,"rotate",e,t,r),(e=o(e).split(b)).length-1&&(t=s(e[1]),r=s(e[2])),e=s(e[0]),null==r&&(t=r),null!=t&&null!=r||(t=(n=a.getBBox(1)).x+n.width/2,r=n.y+n.height/2),a.transform(a._.transform.concat([["r",e,t,r]])),a)},ae.scale=function(e,t,r,n){var a,i=this;return i.removed?i:(Z(i,"scale",e,t,r,n),(e=o(e).split(b)).length-1&&(t=s(e[1]),r=s(e[2]),n=s(e[3])),e=s(e[0]),null==t&&(t=e),null==n&&(r=n),null!=r&&null!=n||(a=i.getBBox(1)),r=null==r?a.x+a.width/2:r,n=null==n?a.y+a.height/2:n,i.transform(i._.transform.concat([["s",e,t,r,n]])),i)},ae.translate=function(e,t){var r=this;return r.removed?r:(Z(r,"translate",e,t),(e=o(e).split(b)).length-1&&(t=s(e[1])),e=s(e[0])||0,t=+t||0,r.transform(r._.transform.concat([["t",e,t]])),r)},ae.transform=function(t){var r,n=this,a=n._;return null==t?a.transform:(e._extractTransform(n,t),n.clip&&!a.clipispath&&z(n.clip,{transform:n.matrix.invert()}),n.pattern&&$(n),n.node&&z(n.node,{transform:n.matrix}),1===a.sx&&1===a.sy||(r=n.attrs["stroke-width"])&&n.attr({"stroke-width":r}),n)},ae.hide=function(){var e=this;return Z(e,"hide"),!e.removed&&e.paper.safari(e.node.style.display="none"),e},ae.show=function(){var e=this;return Z(e,"show"),!e.removed&&e.paper.safari(e.node.style.display=S),e},ae.remove=function(){if(!this.removed&&this.parent.canvas){var t,r=this,n=e._engine.getNode(r),i=r.paper,o=i.defs;for(i.__set__&&i.__set__.exclude(r),k.unbind("raphael.*.*."+r.id),r.gradient&&o&&H(r),r["stroke-gradient"]&&o&&H(r,void 0,"stroke"),r.textPathDef&&o&&(r.textPathDef.parentNode.removeChild(r.textPathDef),delete r.textPathDef);t=r.followers.pop();)t.el.remove();for(;t=r.bottom;)t.remove();if(r._drag&&r.undrag(),r.events)for(;t=r.events.pop();)t.unbind();for(t in r.parent.canvas.contains(n)&&r.parent.canvas.removeChild(n),r.removeData(),delete i._elementsById[r.id],e._tear(r,r.parent),r)r[t]=typeof r[t]===a?e._removedFactory(t):null;r.removed=!0}},ae._getBBox=function(){var e,t,a,i=this,o=i.node,s={},l=i.attrs,c="text"===i.type;d&&c?e=(0,n.showRecursively)(i):"none"===o.style.display&&(i.show(),a=!0);try{s=o.getBBox(),c&&(s.x===undefined&&(s.isCalculated=!0,t=l["text-anchor"],s.x=(l.x||0)-s.width*("start"===t?0:"middle"===t?.5:1)),s.y===undefined&&(s.isCalculated=!0,t=l[r],s.y=(l.y||0)-s.height*("bottom"===t?1:"middle"===t?.5:0)))}catch(u){}finally{s=s||{}}return d&&c?e&&e():a&&i.hide(),s},ae.attr=function(r,n){if(this.removed)return this;var i,o,s,l,c,u,d,h,f=this.attrs,g={},p=this._invokedCa||(this._invokedCa={}),m=this.ca;if(null==r){var v={};for(i in f)f[t](i)&&(v[i]=f[i]);return v.gradient&&"none"===v.fill&&(v.fill=v.gradient)&&delete v.gradient,v.transform=this._.transform,v.visibility="none"===this.node.style.display?"hidden":"visible",v}if(null==n){if(e.is(r,"object"))l=r;else if(e.is(r,"string"))return"fill"===r&&"none"===f.fill&&f.gradient?f.gradient:"transform"===r?this._.transform:"visibility"===r?"none"===this.node.style.display?"hidden":"visible":r in f?f[r]:e.is(m[r],a)?m[r].def:e._availableAttrs[r]}else(l={})[r]=n;if(!e.stopPartialEventPropagation)for(i in l)k("raphael.attr."+i+"."+this.id,this,l[i],i);for(i in l)if((h=m[i])&&!p[i]&&e.is(h,a)){for(c in p[i]=!0,u=h.apply(this,[].concat(l[i])),p[i]=!1,u)g[c]=u[c];f[i]=l[i]}else g[i]=l[i];for(J(this,g),o=0,s=this.followers.length;o<s;o++)(d=this.followers[o]).cb&&!d.cb.call(d.el,g,this)||d.el.attr(g);return this},ae.pinchstart=function(t,r){var n=this,a={},i=function(i){if(i.touches&&2===i.touches.length){var o=i.touches[0],s=i.touches[1];n._blockDrag=!0,i&&i.preventDefault(),e.makeSelectiveCopy(a,i),a.data={finger0:o,finger1:s,distanceX:te(o,s),distanceY:te(o,s,!0)},t.call(r||n,a)}else n._blockDrag=!1};re(n,t,i),n.node.addEventListener("touchstart",i)},ae.unpinchstart=function(e){var t=ne(this,e);this.__blockDrag=!1,this._pinchDragStarted=!1,t&&this.node.removeEventListener("touchstart",t)},ae.pinchmove=function(t,r){var n=this,a={},i=function(i){if(i.touches&&2===i.touches.length){var o=i.touches[0],s=i.touches[1];i&&i.preventDefault(),n._pinchDragStarted=!0,e.makeSelectiveCopy(a,i),a.data={finger0:o,finger1:s,distanceX:te(o,s),distanceY:te(o,s,!0)},t.call(r||n,a)}};re(n,t,i),n.node.addEventListener("touchmove",i)},ae.unpinchmove=function(e){var t=ne(this,e);t&&this.node.removeEventListener("touchmove",t)},ae.pinchend=function(e,t){var r=this,n=function(n){r._pinchDragStarted&&(r._pinchDragStarted=!1,e.call(t||r,n))};re(r,e,n),r.node.addEventListener("touchend",n)},ae.unpinchend=function(e){var t=ne(this,e);this._pinchDragStarted=!1,t&&this.node.removeEventListener("touchend",t)},ae.pinch=function(e,t,r){ae.pinchstart.call(this,e),ae.pinchin.call(this,t),ae.pinchend.call(this,r)},ae.unpinch=function(e,t,r){ae.unpinchstart.call(this,e),ae.unpinchin.call(this,t),ae.unpinchend.call(this,r)},ae.fcwheel=function(t,r){var n=this,a={},i=function(i){i&&i.preventDefault(),e.makeSelectiveCopy(a,i),t.call(r||n,a)};re(n,t,i),n.node.addEventListener("wheel",i)},ae.fcunwheel=function(e){var t=ne(this,e);t&&this.node.removeEventListener("wheel",t)},ae.on=function(t,r,n){if(r&&t){var a,i,o=this,s=t.match(/fc-/),l=r;if(this.removed)return this;switch(o._actualListners||(o._actualListners=[]),o._derivedListeners||(o._derivedListeners=[]),t){case"fc-dragstart":return o.drag(null,r),o;case"fc-dragmove":return o.drag(r),o;case"fc-dragend":return o.drag(null,null,r),o;case"fc-dbclick":return o.dbclick(r,n),o;case"fc-pinchstart":return o.pinchstart(r,n),o;case"fc-pinchmove":return o.pinchmove(r,n),o;case"fc-pinchend":return o.pinchend(r,n),o;case"fc-click":return o.fcclick(r,n),o;case"fc-wheel":return o.fcwheel(r,n),o}return s&&(t=t.replace(/fc-/,"")),s&&D&&(i=t,t=(N?e.safePointerEventMapping[t]:j[t])||t,"mouseout"===i&&(l=function(e){N&&D&&!e.isPrimary||(V.elementInfo.push({el:n||o,callback:r}),V.srcElement=e.srcElement||e.target)},t=N?"pointerover":"touchstart")),this._&&this._.RefImg&&("load"===t||"error"===t)?(a=this._.RefImg,l=function(e){!o.removed&&r.call(o,e)}):a=this.node,l===r&&(l=function(e){(!N||!D||e.isPrimary)&&r.call(n||o,e)}),o._actualListners.push(r),o._derivedListeners.push(l),a.addEventListener?a.addEventListener(t,l):a["on"+t]=l,this}},ae.off=function(t,r){var n,a,i,o=r,s=t.match(/fc-/);if(this.removed||!this._actualListners||!t||!r)return this;switch(t){case"fc-dragstart":return this.undragstart(r),this;case"fc-dragmove":return this.undragmove(r),this;case"fc-dragend":return this.undragend(r),this;case"fc-dbclick":return this.undbclick(r),this;case"fc-pinchstart":return this.unpinchstart(r),this;case"fc-pinchmove":return this.unpinchmove(r),this;case"fc-pinchend":return this.unpinchend(r),this;case"fc-click":return this.fcunclick(r),this;case"fc-wheel":return this.fcunwheel(r),this}return s&&(t=t.replace(/fc-/,"")),o=r,s&&D&&(n=t,t=(N?e.safePointerEventMapping[t]:j[t])||t,"mouseout"===n&&(t=N?"pointerover":"touchstart")),i=this._&&this._.RefImg?this._.RefImg:this.node,-1!==(a=this._actualListners.indexOf(o))&&(o=this._derivedListeners[a],this._actualListners.splice(a,1),this._derivedListeners.splice(a,1)),i.removeEventListener?i.removeEventListener(t,o):i["on"+t]=null,this},e._engine.path=function(e,t,r){var n=z("path"),a=new ee(n,e,r);return a.type="path",t&&a.attr(t),a},e._engine.group=function(e,t,r,n){var a=z("g"),i=new ee(a,e,r);return i.type="group",i.canvas=i.node,i.top=i.bottom=null,i._id=t||S,t&&(n?a.setAttribute("class","raphael-group-"+t):a.setAttribute("class","raphael-group-"+i.id+"-"+t)),i},e._engine.circle=function(e,t,r){var n=z("circle"),a=new ee(n,e,r);return a.type="circle",t&&a.attr(t),a},e._engine.rect=function(e,t,r){var n=z("rect"),a=new ee(n,e,r);return a.type="rect",t.rx=t.ry=t.r,t&&a.attr(t),a},e._engine.ellipse=function(e,t,r){var n=z("ellipse"),a=new ee(n,e,r);return a.type="ellipse",t&&a.attr(t),a},e._engine.image=function(e,t,r){var n=z("image"),a=new ee(n,e,r,!0);return a._.group=r||e,a.type="image",n.setAttribute("preserveAspectRatio","none"),t&&a.attr(t),a},e._engine.text=function(e,t,r,n){var a=z("text"),i=new ee(a,e,r);return i.type="text",n&&i.css&&i.css(n,undefined,!0),t&&i.attr(t),i},e._engine.setSize=function(e,t){return this.width=e||this.width,this.height=t||this.height,this.canvas.setAttribute("width",this.width),this.canvas.setAttribute("height",this.height),this._viewBox&&this.setViewBox.apply(this,this._viewBox),this},e._engine.create=function(){var t,r=e._getContainer.apply(0,arguments),n=r&&r.container,a=r.x,i=r.y,o=r.width,s=r.height;if(!n)throw new Error("SVG container not found.");var l,c=z("svg"),u="overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-moz-user-select:-moz-none;-khtml-user-select:none;-ms-user-select:none;user-select:none;-o-user-select:none;cursor:default;vertical-align:middle;";return D&&(e.isEdge?u+="touch-action:none;":e.isFirefox&&e.isWindows?u+="touch-action:none;":e.isIE11&&(u+="-ms-touch-action:none;")),a=a||0,i=i||0,z(c,{height:s=s||342,version:1.1,width:o=o||512,xmlns:T}),1===n?(c.style.cssText=u+"position:absolute;left:"+a+"px;top:"+i+"px",(n=e._g.doc.body).appendChild(c),l=1):(c.style.cssText=u+"position:relative",n.firstChild?n.insertBefore(c,n.firstChild):n.appendChild(c)),(t=new e._Paper).width=o,t.height=s,t.canvas=c,t.container=n,z(c,{id:"raphael-paper-"+t.id}),t.clear(),t._left=t._top=0,l&&(t.renderfix=function(){}),t.renderfix(),t},e._engine.setViewBox=function(e,t,r,n,a){k("raphael.setViewBox",this,this._viewBox,[e,t,r,n,a]);var i,o,s=f(r/this.width,n/this.height),l=this.top,c=a?"meet":"xMinYMin";if(null==e?(this._vbSize&&(s=1),delete this._vbSize,i="0 0 "+this.width+E+this.height):(this._vbSize=s,i=e+E+t+E+r+E+n),z(this.canvas,{viewBox:i,preserveAspectRatio:c}),s)for(;l;)o="stroke-width"in l.attrs?l.attrs["stroke-width"]:1,l.attr({"stroke-width":o}),l._.dirty=1,l._.dirtyT=1,l=l.prev;return this._viewBox=[e,t,r,n,!!a],this},e.prototype.detachPaper=function(){!1!==this._detached&&(this.container.removeChild(this.canvas),this._detached=!0)},e.prototype.attachPaper=function(){this._detached&&(this.container.appendChild(this.canvas),this._detached=!1)},e.prototype.renderfix=function(){var e,t=this.canvas,r=t.style;try{e=t.getScreenCTM()||t.createSVGMatrix()}catch(i){e=t.createSVGMatrix()}var n=-e.e%1,a=-e.f%1;(n||a)&&(n&&(this._left=(this._left+n)%1,r.left=this._left+"px"),a&&(this._top=(this._top+a)%1,r.top=this._top+"px"))},e.prototype._desc=function(t){var r=this.desc;if(r)for(;r.firstChild;)r.removeChild(r.firstChild);else this.desc=r=z("desc"),this.canvas.appendChild(r);r.appendChild(e._g.doc.createTextNode(e.is(t,"string")?t:"Created with Red Raphaël "+e.version))},e.prototype.clear=function(){var e;for(k("raphael.clear",this);e=this.bottom;)e.remove();for(e=this.canvas;e.firstChild;)e.removeChild(e.firstChild);this.bottom=this.top=null,e.appendChild(this.desc=z("desc")),e.appendChild(this.defs=z("defs"))},e.prototype.remove=function(){var t;for(k("raphael.remove",this);t=this.bottom;)t.remove();for(t in this.defs&&this.defs.parentNode.removeChild(this.defs),this.desc&&this.desc.parentNode.removeChild(this.desc),this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas),this)this[t]=typeof this[t]===a?e._removedFactory(t):null;this.removed=!0},e.prototype.setHTMLClassName=function(){}}var ie};var n=r(187)},function(e,t,r){"use strict";function n(e){var t={data:{}};if(!e)return t;if("string"==typeof e)try{t.data=JSON.parse(e)}catch(r){t.error=r}else t.data=e;return t}function a(){return this.getChartData("json")}function i(e){this.setChartData(e,"json")}t.__esModule=!0,t["default"]=void 0;var o={extension:function(e){return e&&(e.prototype.setJSONData=i),e&&(e.prototype.getJSONData=a),{format:"json",toJSON:n,fromJSON:n}},name:"JSON",type:"transcoder",requiresFusionCharts:!0};t["default"]=o},function(e,t,r){"use strict";var n=r(178),a=r(182);t.__esModule=!0,t["default"]=void 0;var i=a(r(196)),o=n(r(217)),s=n(r(218)),l=n(r(219)),c=n(r(220)),u=n(r(221)),d=n(r(222)),h=n(r(226)),f={oneInAFrame:!0},g={extension:function(e){var t=e.getDep("redraphael","plugin"),r={};t.fn._elementFromEvent=function(e){if(!e||this.removed)return null;var t=e,n=t.srcElement||t.target||(t=t.originalEvent)&&(t.srcElement||t.target)||r;return"tspan"===n.nodeName&&(n=n.parentNode),this.getById(n.raphaelid)},t.requestAnimFrame=i["default"].addJob&&function(e){i["default"].addJob(e,i.priorityList.animation,f)},t.instantRequestAnimFrame=i["default"].addJob&&function(e){i["default"].addJob(e,i.priorityList.instant)},(0,h["default"])(t),(0,o["default"])(t),(0,s["default"])(t),(0,l["default"])(t),(0,c["default"])(t),(0,u["default"])(t),(0,d["default"])(t)},name:"redraphaelExt",type:"plugin",requiresFusionCharts:!0};t["default"]=g},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=function(e){var t,r,a=e.eve,i=e._g,o=e.fn,s=e.el,l=/[, ]+/,c="",u=" ",d=/\B([A-Z]{1})/g,h="fusioncharts-raphael-stylesheet";(r=(t=function(e){this.styleSheet=c,this.rules={},this.ns=e||c}).prototype).getSheet=function(){var t=this.node;return this.styleSheet=r.getStyleSheet(h),this.styleSheet||((t=this.node=i.doc.createElement("style")).setAttribute("id",e.format("raphael-stylesheet-{0}",e._oid++)),t.setAttribute("type","text/css"),t.setAttribute("title",h),(i.doc.head||i.doc.getElementsByTagName("head")[0]).appendChild(this.node),this.styleSheet=r.getStyleSheet(h)),this.styleSheet},r.getStyleSheet=function(e){for(var t,r=i.doc.styleSheets,n=r.length;n--;)if((t=r[n]).title===e)return t},r.applyCSSRule=function(e,t){var r,n=this.styleSheet;if(!n){if(!e||!t)return;n=this.getSheet()}r=(n.rules||n.cssRules||{}).length||0,n.insertRule?n.insertRule(e+"{"+t+"}",r):n.addRule&&n.addRule(e,t,r)},r.removeCSS=function(e){var t,r=this.styleSheet,n=r.rules||r.cssRules||{},a=n.length||0,i=e;for(i=i||this.ns;a--;)t=n[a],new RegExp(i).test(t.selectorText)&&(r.removeRule?r.removeRule(a):r.deleteRule(a))},r.destroy=function(){this.removeCSS(),delete this.node,delete this.styleSheet,delete this.ns,delete this.rules},r.clear=function(){this.removeCSS(),this.rules={}},r.add=function(e,t,r){var n,a=c,i=this.rules[e]||(this.rules[e]={}),o=r?c:"\t",s=r?":":": ";for(n in t)(i[n]=t[n])&&(a+=o+n.replace(d,"-$1").toLowerCase()+s+i[n]+";");this.applyCSSRule(e,a)},r.render=function(){this.setCssText()},r.setCssText=function(e){var t,r,n=e?c:"\t",a=e?":":": ",i=c,o=c;for(t in this.rules){for(r in i=c,o=t.replace(/(^|\,)/g,"$1"+this.ns+u),t=this.rules[t])t[r]&&(i+=n+r.replace(d,"-$1").toLowerCase()+a+t[r]+";");this.applyCSSRule(o,i)}},a.on("raphael.new",(function(){this._stylesheet=this._stylesheet||new t,this.cssNamespace(c)})),a.on("raphael.remove",(function(){this._stylesheet&&this._stylesheet.destroy(),delete this._stylesheet})),o.cssNamespace=function(t){return arguments.length&&(this._stylesheet.ns=e.format("{0}#raphael-paper-{1}",t&&t+u||c,this.id)),this._stylesheet.ns},o.cssAddRule=function(e,t){if(1===arguments.length&&"object"==typeof e){for(var r in e)this.cssAddRule(r,e[r]);return this}return this._stylesheet.add(e,t),this},o.cssRender=function(){return e.svg&&this._stylesheet.render(),this},o.cssClear=function(){return this._stylesheet.clear(),this},e.ca["class"]=function(t){var r,n,a,i,o=this,s=t,l=o.node,d=o.paper,h="."+s,f=d._stylesheet&&d._stylesheet.rules,g=o.parent,p=o.attrs,m={};if(e.svg)s=s||c,l.setAttribute("class","group"===o.type&&o._id?"raphael-group-"+o.id+"-"+o._id+u+s:s);else if(e.vml&&(r=l.className="group"===o.type?s&&o._id+u+s||o._id:"rvml "+s,l.className=r?r+" fusioncharts-div":"fusioncharts-div",h&&f)){for(i in n=f[h])"color"===i&&"text"===o.type&&(i="fill"),!p[i]&&(m[i]=n[i]);for(;g&&g.attr;){if(a=g.attr("class"))for(i in n=f[h="."+a+u+h])"color"===i&&"text"===o.type&&(i="fill"),!p[i]&&!m[i]&&(m[i]=n[i]);g=g.parent}o.css(m)}},s.css=function(t,r,n){var i,o,s,c,u,d,h,f=t;if(this.removed)return this;if(this.styles||(this.styles={}),void 0===r&&e.is(f,"string")){for(s={},d=0,h=(i=f.split(l)).length;d<h;d++)(f=i[d])in this.styles&&(s[f]=this.styles[f]);return h-1?s:s[i[0]]}if(void 0===r&&e.is(f,"array")){for(s={},d=0,h=f.length;d<h;d++)s[f[d]]=this.styles(f[d]);return s}for(d in void 0!==r?(o={})[f]=r:f&&e.is(f,"object")&&(o=f),u={},o)c=d.replace(/\B([A-Z]{1})/g,"-$1").toLowerCase(),e._availableAttrs.hasOwnProperty(c)||"color"===c?("color"===c&&"text"===this.type&&(c="fill"),u[c]=o[d],u.dirty=!0):(a("raphael.css."+c+"."+this.id,this,o[d],c),this.node.style[c]=o[d],this.styles[c]=o[d]);for(d=0,h=this.followers.length;d<h;d++)this.followers[d].el.attr(o);return u.hasOwnProperty("dirty")&&(delete u.dirty,n&&(u["_do-not-tune"]=!0),this.attr(u)),this},s.removeCSS=function(t){var r,a,i,o=t;if(!o&&(o=n.appliedCSS),this.removed)return this;if(e.is(o,"string")&&(o=o.split(",")),e.is(o,"array"))for(i=o.length,a=0;a<i;a++)r=o[a].replace(/\B([A-Z]{1})/g,"-$1").toLowerCase(),this.node.removeAttribute(r),this.node.style[r]="";return this}};var n=r(184)},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=function(e){var t,r=window,a=Math.sqrt,i=r.parseFloat,o=r.parseInt,s="none",l="rgba(0,0,0,1)",c=r.SVGFilterElement||r.SVGFEColorMatrixElement&&2===r.SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_SATURATE,u={"drop-shadow":"drop-shadow",stroke:"stroke",fill:"fill","stroke-width":"stroke-width","stroke-opacity":"stroke-opacity","stroke-linecap":"stroke-linecap","stroke-linejoin":"stroke-linejoin","shape-rendering":"shape-rendering",opacity:"opacity","fill-opacity":"fill-opacity"};e.svg?(c&&(e.filterShadow=function(t,r){var o,s,c,u,d=t.dx||1,h=t.dy||1,f=t.spread||3,g=t.color||"rgb(64,64,64)",p=t.paper,m=p.cacheShadows||(p.cacheShadows={}),v=t.id||"drop-shadow-"+(r?"layered":"non-layered")+"-"+[d,h,f,g].join(" "),b=t.id||e.getElementID(v.replace(/[\(\)\s%:,\xb0#]/g,"_")),y=!!(t.id?e._g.doc.getElementById(b):m[v]);return p&&!y?((g=e.color(g)).error&&(g=e.color(l)),c=(0,n.pluck)(g.opacity,1),c=t.opacity||c,s=(o=p.addDefs({filter:{tagName:"filter",id:b,y:"-1000%",x:"-1000%",width:"2000%",height:"2000%",children:[{tagName:"feOffset",result:"offOut","in":"SourceGraphic",dx:i(d),dy:i(h)},{tagName:"feColorMatrix",result:"matrixOut","in":"offOut",type:"matrix",values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "+c+" 0"},{tagName:"feGaussianBlur",result:"blurOut","in":"matrixOut",stdDeviation:r?1:a(i(f))},{tagName:"feComposite","in":"SourceGraphic",in2:"blurOut",operator:"over"}]}})).filter.children,u=m[v]={use:1,hash:v,id:b,filter:o.filter.element,offset:s[0].element,matrix:s[1].element,blur:s[2].element,blend:s[3].element}):(u=m[v]).use+=1,u},e.el.dropshadow=function(r,n,a,i,o,l){var c,u,d,h,f,g,p,m,v=this,b=v._.shadowFilter,y=v.paper,x=y.cacheShadows||(y.cacheShadows={}),C="drop-shadow"+[r,n,a,i].join(" ");for(f=h=.05*o,p=1;p<=3;p++)f+=h*p*(o-f);if(u=(c=l?v.shadowElem||v.clone({fill:s,stroke:"rgb(51, 51, 51)","stroke-width":v.attr("stroke-width")||1,opacity:f},l).translate(r,n).follow(v,t,!l&&"before"):v).shadowElem&&c.shadowElem.node||c.node,r===s){if(b){if(b.use-=1,u.removeAttribute("filter"),v.shadowElem&&v.shadowElem.attr("opacity",0),!b.use){for(d in C=b.hash,b)(m=b[d]).parentNode&&m.parentNode.removeChild(m),delete b[d];m=null,delete x[C]}b=null,delete v._.shadowFilter}}else l&&!v.shadowElem&&(g=!0),l&&(v.shadowElem=c),b=b&&x[C]?x[C]:v._.shadowFilter=e.filterShadow({paper:y,dx:r,dy:n,spread:a,color:i,opacity:!l&&f},!!l),!g&&v.shadowElem&&v.shadowElem.attr("opacity",f),u.setAttribute("filter",'url("'+e._url+"#"+b.id+'")');return this}),t=function(e,t){var r,n,a=this,i={};for(n in e)switch(u[n]&&(i[n]=e[n],delete e[n]),n){case"transform":(r=t.matrix.clone()).translate(a.__shadowx,a.__shadowy),a.transform(r.toTransformString());break;case"stroke-width":e[n]=i[n]||1}for(n in a.attr(e),i)e[n]=i[n]},e.ca["drop-shadow"]=function(r,a,i,c,u,d){var h,f,g,p,m,v,b,y=this,x=y._.shadows||(y._.shadows=[]),C=r,w=a,_=c;if(y.__shadowblocked)return!1;if(C===s)for(;f=x.pop();)f.remove();else for((_=e.color(_)).error&&(_=e.color(l)),u instanceof Array?(m=u[0],v=u[1]):m=v=u,m=1/(0,n.pluck)(m,1),v=1/(0,n.pluck)(v,1),C=(0,n.pluck)(C,1)*m,w=(0,n.pluck)(w,1)*m,h=.05*(0,n.pluck)(_.opacity,1),g=o(y.attr("stroke-width")||1,10)+6,(p=y.matrix.clone()).translate(C,w),b=1;b<=3;b++)(f=(x[b-1]||y.clone().follow(y,t,!d&&"before")).attr({stroke:_.hex,"stroke-opacity":h*b,opacity:"1","stroke-width":(g-2*b)*v,transform:p.toTransformString(),"stroke-linecap":"round","stroke-linejoin":"round",fill:s})).__shadowlevel=b,f.__shadowscale=v,f.__shadowx=C,f.__shadowy=w,d&&d.appendChild(f),x.push(f);return!1},e.el.shadow=function(t,r,a,i){var o,l=t,c=r,u=a,d=i;if(u&&u.constructor===e.el.constructor&&(d=u,u=void 0),"object"==typeof l&&(c&&c.constructor===e.el.constructor&&(d=c),c=l.opacity,u=l.scalefactor,o=void 0!==l.useFilter?!!l.useFilter:!n.isIE9,l=void 0===l.apply?!!c:l.apply),void 0===c&&(c=1),this.dropshadow){if(o&&!this.ca.hasOwnProperty("drop-shadow"))return l&&this.dropshadow(1,1,3,"rgb(64,64,64)",c,d)||this.dropshadow(s),this;this._.shadowFilter&&this.dropshadow(s)}return this.attr("drop-shadow",l?[1,1,3,"rgba(64,64,64,"+c+")",u,d]:s)}):e.vml?(e.ca["drop-shadow"]=function(t,r,a,o,c,u){var d,h,f,g,p=this,m=p._.shadow,v=t,b=r,y=o;return!p.isShadow&&(v===s?m&&(m=p._.shadow=m.remove()):(m||(m=p._.shadow=p.clone(),u&&u.appendChild(m.follow(p))||m.follow(p,void 0,"before"),m.attr({fill:"none","fill-opacity":.5,"stroke-opacity":1}).isShadow=!0,m.attr("stroke-width")<=0&&m.attr("stroke-width",1)),h=(d=m.node.runtimeStyle).filter.replace(/ progid:\S+Blur\([^\)]+\)/g,""),(y=e.color(y)).error&&(y=e.color(l)),g=(0,n.pluck)(y.opacity,1)/5,f=c instanceof Array?c[0]:c,f=1/(0,n.pluck)(c,1),v=(0,n.pluck)(v,1)*f,b=(0,n.pluck)(b,1)*f,m.translate(v,b),d.filter=h+" progid:DXImageTransform.Microsoft.Blur(pixelRadius="+i(.4*a)+" makeShadow=True Color="+y.hex+' shadowOpacity="'+g+'");'),!1)},e.el.shadow=function(t,r,n,a){var i=t,o=r,l=n,c=a;return l&&l.constructor===e.el.constructor&&(c=l,l=void 0),"object"==typeof i&&(o&&"group"===o.type&&(c=o),o=i.opacity,l=i.scalefactor,i=void 0===i.apply?!!o:i.apply),void 0===o&&(o=1),this.attr("drop-shadow",i||!o?[1,1,5,"rgba(64,64,64,"+o+")",l,c]:s)}):e.canvas&&(e.el.shadow=function(){return this})};var n=r(184)},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=function(e){e.svg?(e.createOutlineFilter=function(t){var r,n,a,u,h,g=t.paper,p=t.rgbObj,m=t.colorMapText,v=g.outlineFilterCaches;return a=g.filterColorMap[m]=f(p),r=s+i+[m,a].join(d),n=e.getElementID(r.replace(/[\(\)\s%:,\xb0#]/g,"_")),h=(u=g.addDefs({filter:{tagName:"filter",id:n,children:[{tagName:"feMorphology",result:"DILATED","in":"SourceAlpha",operator:"dilate",radius:e.isIE11?"1.5":"1"},{tagName:"feFlood",result:"FLOOD","flood-color":a===o?l:c,"flood-opacity":"1"},{tagName:"feComposite",result:"OUTLINE","in":"FLOOD",in2:"DILATED",operator:"in"},{tagName:"feMerge",children:[{tagName:"feMergeNode","in":"OUTLINE"},{tagName:"feMergeNode","in":"SourceGraphic"}]}]}})).filter.children,v[a]={hash:r,id:n,filter:u.filter.element,morph:h[0].element,flood:h[1].element,composite:h[2].element,merge:h[3].element}},e.el.outlineText=function(t,r){var o;if(r&&r!==u){o=/(^#[0-9A-Fa-f]{6}$)|(^#[0-9A-Fa-f]{3}$)/.test(r)?(0,n.convertColor)(r):r;var s,l,c=this.node,d=this.paper,f=d.outlineFilterCaches||(d.outlineFilterCaches={}),g=d.filterColorMap||(d.filterColorMap={}),p=h(o),m=a+i+p.R+i+p.G+i+p.B;t?(l=(s=g[m])&&f[s]?f[s]:e.createOutlineFilter({rgbObj:p,paper:d,colorMapText:m}),c.setAttribute("filter",'url("'+e._url+"#"+l.id+'")')):c.removeAttribute("filter")}}):e.el.outlineText=function(){return this}};var n=r(184),a="rgb",i="-",o="darkFilter",s="text-outline",l="#000000",c="#ffffff",u="none",d=" ",h=function(e){var t=e.split("(")[1].split(")")[0].split(",");return{R:+t[0],G:+t[1],B:+t[2]}},f=function(e){return(299*e.R+587*e.G+114*e.B)/1e3>123?o:"brightFilter"}},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=function(e){var t=/rgba\([\d]+\,[\d]+\,[\d]+\,0\)$/,r=window,a=Math,i=a.cos,o=a.sin,s=a.PI,l=r.parseInt,c=r.parseFloat,u=String,d=Array.prototype.slice,h="hasOwnProperty",f="none",g="M",p="L",m="Z",v="text-bound",b=/\s*\,\s*/g;e&&e._availableAnimAttrs&&e._availableAnimAttrs.cx&&(e._availableAnimAttrs["scroll-position"]=e._availableAnimAttrs.cx);e.define&&e.define([{name:"polypath",polypath:function(){return this.path(void 0,e._lastArgIfGroup(arguments))},ca:{polypath:function(t,r,n,a,u,d){var h,f,v,b,y,x=t,C=r,w=n,_=a,k=u,S=d;if(h=[],x=l(x,10)||0,C=c(C)||0,w=c(w)||0,_=c(_)||0,k=null===k||isNaN(k)?.5*s:e.rad(k),S=null===S||isNaN(S)?0:c(S),b=k,x>2)switch(f=2*s/x,S){case 0:for(v=0;v<x;v++)h.push(p,C+_*i(-b),w+_*o(-b)),b+=f;h[0]=g,h.push(m);break;case 1:for(v=0;v<x;v++)h.push(g,C,w,p,C+_*i(-b),w+_*o(-b)),b+=f;break;default:for(y=_*i(f*=.5)*(1-S),v=0;v<x;v++)h.push(p,C+_*i(-b),w+_*o(-b)),b+=f,h.push(p,C+y*i(-b),w+y*o(-b)),b+=f;h[0]=g,h.push(m)}else 0===_?h.push(g,C,w,p,C,w,m):h.push(g,C-_,w,"A",_,_,0,0,0,C+_,w,"A",_,_,0,0,0,C-_,w,m);return{path:h}},r:function(e){var t=this.attrs.polypath;return t[3]=e,this.attr("polypath",t),!1}}}]),e.ca[v]=function(r,n,a,i,o,s,l){var c=this,u=c.paper,d=c._.textbound,h=a,g=o;if(this._origOpacity=void 0!==l?l:1,"text"===this.type)return n&&n!==f&&!t.test(n)||r&&r!==f&&!t.test(r)?(c.attrs[v]=arguments,(!h||!e.is(h,"finite"))&&(h=0),(!g||!e.is(g,"finite"))&&(g=0),!d&&(d=c._.textbound=u.rect(0,0,0,0,c.group).follow(c,e.ca[v].reposition,"before")),d.attr({stroke:n||f,"stroke-width":h,fill:r||f,"shape-rendering":1===h?"crisp":"",r:g}),void 0!==l&&d.attr("opacity",l),s&&d.attr("stroke-dasharray",s),e.ca[v].reposition.call(d,c.attr(),c),!1):(c._.textbound=d&&d.unfollow(c).remove(),!1)},e.ca[v].reposition=function(e,t){var r,a,i,o,s,l,d,f,g,p=this,m={};e[h]("visibility")&&p.attr("visibility",e.visibility),(e[h](v)||e[h]("x")||e[h]("y")||e[h]("text")||e[h]("text-anchor")||e[h]("text-align")||e[h]("font-size")||e[h]("line-height")||e[h]("vertical-align")||e[h]("transform")||e[h]("rotation")||e[h]("opacity"))&&(a=(r=t.attrs)[v],i=u(a&&a[3]||"0").split(b),o=c(i[0])||0,s=(0,n.pluck)(c(i[1]),o),f=(l=t.getBBox()).width,g=l.height,p._origOpacity=t._origOpacity||1,d=c(e.opacity||r.opacity),m.opacity=isNaN(d)?p._origOpacity:p._origOpacity*d,isNaN(f)||(m.x=l.x-o,m.y=l.y-s,m.width=Math.max(f+2*o,0),m.height=Math.max(g+2*s,0)),p.attr(m))},e.fn.symbol=function(){var t,r=this,n=arguments,a=n.length-1,i=n[a];return i&&i.constructor===e.el.constructor?n[a]=void 0:i=void 0,(t=r.path(void 0,i)).ca.symbol=e.fn.symbol.ca.symbol,n.length===!!i+0?t:t.attr("symbol",n)},e.fn.getSuggestiveRotation=function(){var e,t,r,n;return e=arguments[0],1===arguments.length?(t=e.angle,r=e.x,n=e.y):(t=e,r=arguments[1],n=arguments[2]),"r"+(t=t||0)+","+r+","+n},e.fn.symbol.cache={"":e._cacher((function(e,t,r,n){var a=r;return arguments.length>3?["M",e,t,"h",a,"v",n,"h",-a,"v",-n,"z"]:["M",e-a,t-a,"h",a*=2,"v",a,"h",-a,"v",-a,"z"]}))},e.fn.symbol.ca={symbol:function(t){var r,n,a=this,i=t,o=e.is(i,"object")&&1===arguments.length&&!e.is(i,"function")?i:arguments;o===i&&(i=o[0]),n=(r=e.is(i,"function")&&i||e.fn.symbol.cache[i]||e.fn.symbol.cache[""])&&r.apply(e,d.call(o,1)),e.is(n,"array")||e.is(n,"string")?a.attr("path",n):n&&a.attr(n)}},e.addSymbol=function(t,r){var n,a,i=r,o=e.fn.symbol.cache,s=[];for(a in n=e.is(i,"function")&&((n={})[t]=i,n)||t)i=n[a],o[a]=e.is(i,"function")&&e._cacher(i,e)||(s.push(a),i);for(a=s.pop();a;)o[a]=o[o[a]],a=s.pop()}};var n=r(184)},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=function(e){var t=function(e){return function(){e.hide();for(var t=0,r=e._.gridElem&&e._.gridElem.length;t<r;t++)e._.gridElem[t].remove();e._.gridElem=[],e._attr({src:e._._src}),setTimeout((function(){e.show()}),100)}},r=function(e,t,r){return function(){var n,i,o,s=a(e._.imageGridAttr,t),l=1,c=1,u=1;if(s.tileInfo&&(l=s.tileInfo.xCount,c=u=s.tileInfo.yCount,o=s.y,delete s.tileInfo),e._.gridElem){for(i=0;i<e._.gridElem.length;i++)e._.gridElem[i].remove();e._.gridElem.length=0}for(i=0;l&&s.width&&s.height;)u--,0===i?e.attr(r?Object.assign(s,{applysrc:e._._src}):s):(n=e.clone().attr({x:s.x,y:s.y}),e._.gridElem.push(n.follow(e,void 0,"after"))),s.y+=s.height,0===u&&(u=c,l--,s.x+=s.width,s.y=o),i++}},a=function(e,t){var r;if(e){var a=e.displayMode,i=e.vAlign,o=e.hAlign,s=e.scale,l=e.canvasBorderWidth,c=e.canvasWidth,u=e.canvasHeight,d=t.width*(s/100),h=t.height*(s/100),f=c-2*l,g=u-2*l;r=(0,n.getAlignImage)(i,o,a,d,h,c,u,l,f,g)}return r||{x:0,y:0,width:t.width,height:t.height}};e.define&&e.define([{name:"imagegrid",imagegrid:function(){var n,a,i=this,o=arguments,s=o.length-1,l=o[s];return l&&l.constructor===e.el.constructor?o[s]=void 0:l=void 0,n=new Image,(a=i.image(l))._.gridElem=[],a._.refImage=n,a._attr=a.attr,a.attr=function(e,t){var r=e,n=Array.isArray(r),i=!n&&"object"==typeof r,o="string"==typeof r;if(n&&(i="object"==typeof(r=r[0])),i){var s=Object.assign({},r),l=s&&s.src,c=s&&s.applysrc;delete s.src,delete s.applysrc,l&&delete a._._src,a._attr(s),l&&a._attr({_src:l}),c&&a._attr({src:c})}else{if(void 0===r&&void 0===t)return this.attrs;if(void 0===t)return this.attrs[r];o&&t&&("src"===r?a._attr({_src:t}):"applysrc"===r?a._attr({src:t}):a._attr({name:t}))}return this},n.onload=r(a,n,!0),n.onerror=t(a),a},ca:{imagegrid:function(e,t,n,a,i,o,s){void 0===a&&(a=100),void 0===i&&(i=0),void 0===o&&(o=0),void 0===s&&(s=0);var l=this,c=t,u=n;"tile"===e||"fill"===e||"fit"===e?("top"!==c&&"middle"!==c&&"bottom"!==c&&(c="middle"),"left"!==u&&"middle"!==u&&"right"!==u&&(u="middle")):("top"!==c&&"middle"!==c&&"bottom"!==c&&(c="top"),"left"!==u&&"middle"!==u&&"right"!==u&&(u="left")),l._.imageGridAttr={displayMode:e,vAlign:c,hAlign:u,scale:a,canvasBorderWidth:i,canvasWidth:o,canvasHeight:s},this._._src&&r(l,l._.refImage)()},_src:function(e){return this._.refImage.src=e,this._._src=e,{_src:e}}}}])};var n=r(189)},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=function(e){var t,r,n,s=window,l=s.document,c=/msie/i.test(s.navigator.userAgent)&&!s.opera,u="VML"===e.type,d={cursor:"cursor"},h={x:"left",y:"top",strokeWidth:"borderThickness","stroke-width":"borderThickness",width:"width",height:"height"},f={fill:"backgroundColor",stroke:"borderColor",color:"color"},g={left:0,top:0,padding:0,border:"none",margin:0,outline:"none","-webkit-apperance":"none",position:"absolute",zIndex:20},p=new o["default"],m=function(e,t,r,n){var a,i=l.createElement(e);for(a in t)h[a]?i.style[a]=t[a]:i.setAttribute(a,t[a]);for(a in r)i.style[a]=r[a];return n&&n.appendChild&&n.appendChild(i),i};(t=(n=function(e,t,r){var a=t;a&&a instanceof n&&(a=a.element),this.element=m(e,r,g,a),this.nodeName=e.toLowerCase(),this.added=Boolean(a),this.attrs={}}).prototype={attr:function(e){var t,r,n,a,i,o,s,g,p,m,v,b=this.element,y={};if("object"!=typeof e)return void 0!==this[e]?this[e]:function(e,t,r){var n,a;if("string"==typeof t)null!=r?e.setAttribute(t,r):e&&e.getAttribute&&(a=e.getAttribute(t));else if(null!=t&&"object"==typeof t)for(n in t)e.setAttribute(n,t[n]);return a}(b,e);for(t in e){if(n=e[t],d[t]){switch(t){case"cursor":"pointer"===n&&u&&(n="hand")}b.style[d[t]]=n,a=!0}else if(h[t])b.style[h[t]]=n+"px",a=!0;else if(f[t])b.style[f[t]]=(v=n)&&v.replace(/^#?([a-f0-9]+)/gi,"#$1")||"none",a=!0;else if(/^visibility$/i.test(t))i="hidden"===n,b.style.display=i?"none":"",this.hidden=i,a=!0;else if(/^opacity$/i.test(t))b.style.opacity=n,c&&(r=100*Number(n),b.style.filter="progid:DXImageTransform.Microsoft.Alpha(Opacity="+r+")"),a=!0;else if(/^innerhtml$/i.test(t)){if(u&&"select"===b.nodeName.toLowerCase()){for(o=n.match(/<option\s?[\s\S]*?(\/>|><\/option>|>[\s\S]*?<\/option>)/gi);b.firstChild;)b.removeChild(b.firstChild);for(g=0,p=o.length;g<p;g+=1)s=o[g],m=l.createElement("option"),/<option\s([\s\S]*[\'\"])\s*?(\/>|>[\s\S]*<\/option>)/gi.test(s)&&(m.value=s.replace(/<option\s([\s\S]*[\'\"])\s*?(\/>|>[\s\S]*<\/option>)/gi,"$1").replace(/[\s\S]*value\s*\=\s*[\'\"]([\s\S]*)[\'\"]/,"$1")),m.text=s.replace(/<option\s*[\s\S]*[\'\"]?\s*?[\/>|\>]([\s\S]*)<\/option>/gi,"$1 "),b.options.add(m)}else"input"!==b.nodeName.toLowerCase()&&void 0!==n&&(b.innerHTML=n||"");a=!0}else/^text$/i.test(t)?("input"!==b.nodeName.toLowerCase()&&(b.innerHTML="",void 0!==n&&b.appendChild(l.createTextNode(n))),a=!0):/^type$/i.test(t)&&c&&this.added&&(a=!0);a&&(y[t]=n,delete e[t],a=!1)}for(t in e)b.setAttribute(t,e[t]);for(t in y)this[t]=this.attrs[t]=e[t]=y[t],delete y[t];return this},val:function(e){var t=this.element,r=void 0===e;if("input"===this.nodeName&&"checkbox"===t.getAttribute("type"))return r?this.checked()?1:0:this.checked(e);if("select"===this.nodeName){var n=t.childNodes,a=t.selectedIndex,o=n.length;if(""===e)return;if(!r)for(var s=0;s<o;s++)if(n[s].value===e)return t.selectedIndex=s,n[s].value;return i.isIE9&&(a=0),r?n[a].value:(n[o-1].value=e,t.selectedIndex=o-1,this)}return r?t.value:(t.value=e,this)},checked:function(e){var t=this.element;return void 0===e?t.checked:(e?t.setAttribute("checked","checked"):t.removeAttribute("checked"),this)},css:function(e,t){var r,n=this.element.style;if("object"==typeof e)for(r in e)n[r]=e[r];else r&&void 0!==t&&(n[r]=t);return this},translate:function(e,t){var r=this.element;return void 0!==e&&(r.style.left=e+"px"),void 0!==t&&(r.style.top=t+"px"),this},add:function(e,t){var r=this.element,n=e.element;return t?n.insertBefore(r,n.firstChild):n.appendChild(r),this.added=!0,this},hide:function(){return this.element.style.display="none",this},show:function(){return this.element.style.display="",this},isVisible:function(){return"none"!==this.element.style.display},focus:function(){"function"==typeof this.element.focus?this.element.focus():a["default"].fire(this.element,"focus")},destroy:function(){var t,n=this.element||{};for(t in n.onclick=n.onmouseout=n.onmouseover=n.onmousemove=n.onblur=n.onfocus=null,n=function(e){r||(r=m("div")),e&&r.appendChild(e),r.innerHTML=""}(n),delete this.element,this)this[t]="function"==typeof this[t]?e._removedFactory(t):null;return this.removed=!0,null},on:u?function(e,t){return this.element["on"+e]=function(){var e=s.event;e.target=e.srcElement,t(e)},this}:function(e,t){var r=t;return p.on(this.element,e,r),this},off:function(e,t){p.off(this.element,e,t)},bind:function(e,t,r){return a["default"].listen(this.element,e,t,r),this},unbind:function(e,t){return a["default"].unlisten(this.element,e,t),this},trigger:function(e,t){return a["default"].fire(this.element,e,t),this}}).remove=t.destroy,t.constructor=n,e.fn.html=function(t,r,a,i){var o,s,l={};for(s in r&&"type"in r&&(l.type=r.type,delete r.type),o=new n(t,i,l).css(a).attr(r),l)r[s]=l[s];return o.ca=function(){return!1},o.appendTo=function(e){var t=e;this.parent=t,t&&t instanceof n&&(t=t.element),t.appendChild(this.element)},o.animateWith=e.el.animateWith,o}};var a=n(r(186)),i=r(184),o=n(r(223))},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(224)),i=n(r(225)),o={elementInfo:[]},s={mouseover:"pointerover",mousedown:"pointerdown",mousemove:"pointermove",mouseup:"pointerup",mouseout:"pointerout"},l={mouseover:"touchstart",mousedown:"touchstart",mouseup:"touchend",mousemove:"touchmove",mouseout:"touchend"},c=window.navigator,u="ontouchstart"in document||c.maxTouchPoints||c.msMaxTouchPoints,d="onpointerover"in document,h=function(e,t,r,n){var a;switch(void 0===n&&(n=e),t){case"fc-click":return function(e,t,r){var n,a,i,o,s,l;if(void 0===r&&(r=e),!e._clickHandlerHelper){var c=function(t){e._lastEventTriggered="mousedown",o=void 0!==t.clientX?t.clientX:t.changedTouches&&t.changedTouches[0].clientX,s=void 0!==t.clientY?t.clientY:t.changedTouches&&t.changedTouches[0].clientY},h=function(t){var r=void 0!==t.clientX?t.clientX:t.changedTouches&&t.changedTouches[0].clientX,n=void 0!==t.clientY?t.clientY:t.changedTouches&&t.changedTouches[0].clientY;(Math.abs(o-r)>=2.5||Math.abs(s-n)>=2.5)&&(e._lastEventTriggered=void 0)};for(a in l=!d&&u?{touchstart:function(){e._lastEventTriggered="touchstart",e._lastEventTriggeredAt=(new Date).getTime()},touchmove:h}:d&&u?{pointerdown:c,pointermove:h}:{mousedown:c,mousemove:h})e.addEventListener?e.addEventListener(a,l[a]):e.attachEvent("on"+a,l[a]);e._clickHandlerHelper=l,e._clickEventCount=0}return++e._clickEventCount,!d&&u?(a="touchend",i=function(n){"touchstart"===e._lastEventTriggered&&(new Date).getTime()-e._lastEventTriggeredAt<=500&&setTimeout((function(){t.call(r,n)}),0)}):(a="click",i=function(n){"mousedown"===e._lastEventTriggered&&t.call(r,n)}),(n={})[a]=i,n}(e,r)}var i,c=t,h=c.match(/fc-/),f=r;return h&&(c=c.replace(/fc-/,"")),h&&u&&(i=c,c=(d?s[c]:l[c])||c,"mouseout"===i&&(f=function(e){d&&u&&!e.isPrimary||(o.elementInfo.push({el:n,callback:r}),o.srcElement=e.srcElement||e.target)},c=d?"pointerover":"touchstart")),f===r&&(f=function(e){(!d||!u||e.isPrimary)&&r.call(n,e)}),(a={})[c]=f,a};u&&document.addEventListener(d?"pointerover":"touchstart",(function(e){if(o.srcElement&&o.srcElement!==(e.srcElement||e.target)){var t,r,n=o.elementInfo,a=n.length;for(r=0;r<a;r++)(t=n[r]).callback.call(t.el,e)}o={elementInfo:[]}}),!0);var f=function(){function e(){this.mapper=new a["default"]}var t=e.prototype;return t.on=function(e,t,r,n){void 0===n&&(n={});var a,o,s=this.mapper,l=[e,t,r];if((0,i["default"])(l)&&!(a=s.getValue(l))){for(o in a=h(e,t,r),s.setValue(l,a),a)e.addEventListener?e.addEventListener(o,a[o]):e.attachEvent("on"+o,a[o]);return!0}return!1},t.off=function(e,t,r){var n,a,o=this.mapper,s=[e,t,r];if((0,i["default"])(s)&&(n=o.getValue(s))){for(a in function(e,t){switch(t){case"fc-click":(function(e){var t,r=e._clickHandlerHelper;if(!--e._clickEventCount){for(t in r)e.removeEventListener?e.removeEventListener(t,r[t]):e.detachEvent("on"+t,r[t]);e._clickHandlerHelper=void 0}})(e)}}(e,t),n)e.removeEventListener?e.removeEventListener(a,n[a]):e.detachEvent("on"+a,n[a]);return o.clear(s),!0}return!1},e}();t["default"]=f},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n=function(){function e(){this.map=new Map}var t=e.prototype;return t.clear=function(e){var t=this;void 0===e&&(e=[]);var r=this.map,n=e.length;e.forEach((function(a,i){r&&(i===n-1&&r["delete"]?(r["delete"](a),r.size||(e.pop(),t.clear(e))):r=r.has(a)&&r.get(a))}))},t.setValue=function(e,t){void 0===e&&(e=[]);var r=this.map,n=e.length;e.forEach((function(e,a){if(r.has(e))r=r.get(e);else if(a===n-1)r.set(e,t);else{var i=new Map;r.set(e,i),r=i}}))},t.getValue=function(e){void 0===e&&(e=[]);var t=this.map;return e.forEach((function(e){t=t&&t.get&&t.get(e)})),e.length&&t},e}();t["default"]=n},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]=function(e){return e.filter((function(e){return!!e})).length===e.length}},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=function(e){var t=[{reg:/xmlns\=\"http\:\/\/www.w3.org\/2000\/svg\"/gi,repStr:""},{reg:/^.*<svg /,repStr:'<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" '},{reg:/\/svg>.*$/,repStr:"/svg>"},{reg:/<desc\>[^<]*<\/desc\>/,repStr:""},{reg:/zIndex="[^"]+"/g,repStr:""},{reg:/url\((\\?[\'\"])[^#]+#/g,repStr:"url($1#"},{reg:/ href=/g,repStr:" xlink:href="},{reg:/(id|class|width|height)=([^" >]+)/g,repStr:'$1="$2"'},{reg:/:(path|rect)/g,repStr:"$1"},{reg:/<ima?ge? ([^\>]+?[^\/])\>/gi,repStr:"<image $1 />"},{reg:/<\/ima?ge?\>/g,repStr:""},{reg:/style="([^"]+)"/g,repStr:function(e){return e.toLowerCase()}},{reg:/NS\d+\:href=/g,repStr:"xlink:href="}],r=function(e){var t=JSON.stringify(e);return t=t=(t=(t=(t=t.replace(/([a-z]+)([A-Z]+)([a-z]+)/g,(function(e,t,r,n){return t+"-"+r.toLowerCase()+n}))).replace(/\"\,\"/g,'";"')).replace(/\"/g," ")).replace(/\{|\}/g,"")};e.svg&&(e.fn.toSVG=function(e){var n,a="",i=0,o=t.length;if(this.canvas&&this.canvas.parentNode){for(a=this.canvas.parentNode.innerHTML;i<o;i+=1)n=t[i],a=a.replace(n.reg,n.repStr);this._stylesheet&&this._stylesheet.rules&&(a=function(e,t){var n,a,i,o,s,l,c,u=e,d=function(e){var t=e;return t=t.match(/style\s*=/)?t.replace(/(style\s*=")([^"]+)/g,(function(e,t,r){return t+o+r})):t.replace(/class\s*="[^"]*"/i,(function(e){return e+' style="'+o+'" '}))};for(n in t)if(t.hasOwnProperty(n))for(l in a=/\s+/,i=n.split(a),o=r(t[n]),i)i.hasOwnProperty(l)&&(s=i[l].trim().replace(".",""),c=new RegExp("<[^>]+("+s+")[^>]+","g"),u=u.replace(c,d));return u}(a,this._stylesheet.rules))}return e||(a=a.replace(/<image[^\>]*\>/gi,(function(e){return e.match(/href=\"data\:image/i)?e:""}))),a})}},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=t._mouseEvtHandler=void 0;var a=n(r(198)),i=r(184),o=r(191),s=n(r(228)),l=r(199),c=n(r(229)),u=r(192),d=n(r(230)),h=r(196),f={attributes:!0,subtree:!0,characterData:!0,childList:!0},g=function(e){return String.fromCharCode(e)},p=function(e){return e.map(g).join("")},m=p([99,114,101,100,105,116,76,97,98,101,108]),v=p([99,114,101,100,105,116,103,114,111,117,112]),b=[65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122].map(g),y=function(){return b[Math.floor((e=0,t=b.length,Math.random()*(t-e)+e))];var e,t},x=i.txtLabel,C=function(e,t,r){var n,a,o,s,l,c,u,d,h=r.mouseTracker,f=t.originalEvent,g=e.config.datasetOrder||e.getDatasets(),p=!1,m=g.length,v=h._lastDatasetIndex,b=h._lastPointIndex;for(a=(n=(0,i.getMouseCoordinate)(e.getFromEnv("chart-container"),f,e)).chartX,o=n.chartY;m--&&!p;)(s=g[m])&&s.getState("visible")&&(l=s._getHoveredPlot&&s._getHoveredPlot(a,o))&&l.hovered&&(p=!0,l.datasetIndex=m,d=h.getMouseEvents(t,l.datasetIndex,l.pointIndex));if((!p||d&&d.fireOut)&&void 0!==v&&g[v]&&g[v]._firePlotEvent&&(d&&!d.events.length?h.mouseoutTimer=setTimeout((function(){e.mouseoutHandler(t,v,b)}),20):(e.mouseoutHandler(t,v,b),clearTimeout(h.mouseoutTimer))),p)for((u=d.events&&d.events.length)&&(h._lastDatasetIndex=l.datasetIndex,b=h._lastPointIndex=l.pointIndex),c=0;c<u;c+=1)s&&s._firePlotEvent&&s&&s._firePlotEvent&&s._firePlotEvent(d.events[c],b,t,l.datasetIndex)};t._mouseEvtHandler=C;var w=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e),t.getName=function(){return"base"};var r=t.prototype;return r.setDummyEImethods=function(e){var t=this.config,r=t._eiStore||(t._eiStore={}),n=function(e){return(d["default"][e]||[]).concat(d["default"]["*"])}(e),a=this.getFromEnv("chartInstance");n.forEach((function(e){var t;!a[e]&&(a[e]=(t=e,function(){!r[t]&&(r[t]=[]),r[t].push(arguments)}))})),a.addEventListener("renderComplete",(function(){var e=function(e){r[e].forEach((function(t){a[e].apply(a,t)}))};for(var n in r)e(n);t._eiStore={}}))},t.getType=function(){return"chartAPI"},r.mouseoutHandler=function(e,t,r){var n=this.config.datasetOrder||this.getDatasets(),a=this.getChildren("mouseTracker")[0];n[t]&&n[t].components.data[r]?n[t]._firePlotEvent("fc-mouseout",r,e):this.getFromEnv("toolTipController").hideAll(),delete a._lastDatasetIndex,delete a._lastPointIndex},r.getName=function(){return"base"},r.getType=function(){return"chartAPI"},r._mouseEvtHandler=function(e,t){C(this,e,t)},r.getComponents=function(e,t){var r=[];return(e||this).iterateComponents((function(e){e.getType()===t&&r.push(e)})),r},r.getDatasets=function(e){var t=[];return(e||this).iterateComponents((function(e){"dataset"===e.getType()&&t.push(e)})),t},r.preConfigure=function(t){e.prototype.preConfigure.call(this,t),function(e,t){var r;for(r in t)t.hasOwnProperty(r)&&(e[r]=t[r])}(this.getFromEnv("chartInstance"),this.eiMethods)},r.configureAttributes=function(t){e.prototype.configureAttributes.call(this,t),this.createBaseComponent()},r.createBaseComponent=function(){var e,t=this;(e=t.getFromEnv("animationManager"))?e.configure():(e=new c["default"],t.addToEnv("animationManager",e),e.addToEnv("chart",t),e.addToEnv("animationManager",e),e.configure(),t.addExtEventListener("animationstart",(function(e){var r=e.data.duration;r&&t.fireChartInstanceEvent("animationinvoked",{duration:r})}),e))},r.setChartMessage=function(e,t,r){var n,a,o=r;(0,i.componentFactory)(this,s["default"],"chartMessage"),a=this.getChildren("chartMessage")[0],o?this.addToEnv("chart-container",o):o=this.getFromEnv("chart-container"),(n=this.getFromEnv("paper"))||((n=new((0,u.getDep)("redraphael","plugin"))(o,this.getFromEnv("chartWidth"),this.getFromEnv("chartHeight"))).setHTMLClassName("fusioncharts-div"),this.addToEnv("paper",n)),n.setConfig("stroke-linecap",i.ROUND),!this.getChildContainer("messageGroup")&&this.addChildContainer("messageGroup",n.group("messageGroup")),this.config.hasChartMessage=!0,a.setData({message:e,chartObj:t,visible:!0},!0)},r.drawChartMessage=function(){this.config.hasChartMessage=!0,this._drawTexts()},r._dispose=function(){this._clearTimers&&this._clearTimers();var t=this.getFromEnv("paper");t&&t.remove&&t.remove(),e.prototype._dispose.call(this)},r.fireChartInstanceEvent=function(e,t,r,n,a){var i=this.getFromEnv("chartInstance");(0,o.triggerEvent)(e,i,t,r,n,a)},r._hideChartMessage=function(){var e=this.getChildren("chartMessage");this.config.hasChartMessage=!1,e&&e[0].setData({visible:!1},!0),this.getGraphicalElement("messageText")&&this.getGraphicalElement("messageText").hide(),this.getGraphicalElement("messageVeil")&&this.getGraphicalElement("messageVeil").hide()},r._removeWaitingJobs=function(){this.iterateComponents((function(e){return e.removeAllJobs()}))},r._drawTexts=function(){var e=this.getFromEnv("core-options")[m],t=this.getFromEnv("chartInstance").args[m],r=(0,i.pluck)(t,e,x);this._crCreate(r),r&&this._scheduleLabelCheck(r)},r._scheduleLabelCheck=function(e){var t=this;t.addJob("checker",(function(){var r,n=t.getContainer(v);!n||(r=n).node&&r.node.parentNode&&11!==r.node.parentNode.nodeType||t._crCreate(e),t._scheduleLabelCheck(e)}),h.priorityList.verification,{oneInAFrame:!0,addToTop:!1,executionDelay:300})},r._crCreate=function(e){var t,r,n,a,o=this,s=o.getFromEnv("paper"),l=+o.getFromEnv("chartHeight"),c=o.getGraphicalElement(m),u=o.getContainer("parentgroup"),d={href:i.TXT_HREF,text:i.TXT_STRING};e?(o.getContainer(v)&&o.removeContainer(v),c&&o.removeGraphicalElement(c),r=o.addContainer(v,s.group(function(e){void 0===e&&(e=8);for(var t=i.BLANK,r=0;r<e;r++)t+=y();return t}(),!0)),u&&r.insertAfter(u),n={text:d.text,x:6,y:l-4,"vertical-align":i.POSITION_BOTTOM,"text-anchor":i.POSITION_START,fill:"rgba(0,0,0,0.5)",title:d.title||i.BLANK},a={fontSize:9,fontFamily:"Verdana,sans",cursor:i.POINTER,_cursor:i.HAND},t=s.text(n,a,r),o.addGraphicalElement(m,t),o.config.observer?o.config.observer.disconnect():o.config.observer=new MutationObserver((function(){return o._crCreate(e)})),o.config.observer.observe(o.getContainer(v).node,f),t.on("fc-click",(function(){try{open(d.href)}catch(e){(top||window).location.href=d.href}}))):t&&t.remove&&(o.config.observer&&o.config.observer.disconnect(),o.removeGraphicalElement(m))},r._hideModal=function(){this.getChildContainer("messageGroup").hide()},r.remove=function(t){var r=this.getFromEnv("animationManager");this.config.observer&&this.config.observer.disconnect(),e.prototype.remove.call(this,t),r&&r.remove(t)},t}(l.ComponentInterface);w.stringConstants={BACKGROUNDLOADED:"BackgroundLoaded",BACKGROUNDLOADERROR:"BackgroundLoadError",clipRectStr:"clip-rect"};var _=w;t["default"]=_},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(199),o=r(184),s=o.preDefStr.noneStr,l=function(e,t){e.on("fc-click",(function(){try{open(t)}catch(e){(top||window).location.href=t}})),e.css({cursor:"pointer",_cursor:"pointer"})},c=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.getName=function(){return"chartMessage"},r.configureAttributes=function(t){e.prototype.configureAttributes.call(this,t);var r=this.config;for(var n in t)t.hasOwnProperty(n)&&(r[n]=t[n])},r._drawBackground=function(e,t){void 0===t&&(t={});var r,n,a,i,c=this,u=c.config,d=c.getFromEnv("paper"),h=c.getFromEnv("chart"),f=u.visible,g=c.getGraphicalElement("backgroundElement"),p=c.getGraphicalElement("backgroundImage"),m=c.getFromEnv("chartWidth"),v=c.getFromEnv("chartHeight"),b=c.getLinkedParent().getChildContainer("messageGroup").show(),y=(0,o.pluckNumber)(t.imageAlpha,100),x=0+o.COMMA+0+o.COMMA+m+o.COMMA+v,C=(0,o.getValidValue)(t.imageVAlign,o.BLANKSTRING).toLowerCase(),w=(0,o.pluck)(t.imageHAlign,o.BLANKSTRING).toLowerCase(),_=(0,o.pluckNumber)(t.imageScale,100),k=c.getFromEnv("chartInstance"),S=u.messageURL,E=(0,o.getContainerBackgroundColor)(k);d.canvas.style.backgroundColor=E,C!==o.POSITION_TOP&&C!==o.POSITION_MIDDLE&&C!==o.POSITION_BOTTOM&&(C=o.POSITION_TOP),w!==o.POSITION_LEFT&&w!==o.POSITION_MIDDLE&&w!==o.POSITION_RIGHT&&(w=o.POSITION_LEFT),n={x:0,y:0,width:m,height:v,stroke:s},g||(g=d.rect(b),c.addGraphicalElement("backgroundElement",g)),g.attr(n),g&&S&&l(g,S),u.bgImageVAlign=C,u.bgImageHAlign=w,u.bgImageScale=_,u.bgSWFAlpha=y,u.imgClipRect=x,e&&((r=p)?r.attr({src:e}):(r=c.getFromEnv("paper").image(b),c.addGraphicalElement("backgroundImage",r),r.attr({src:e}),r.on("load",(function(){if(!(!r||r&&r.removed)){var t=r._.RefImg;a=c.getFromEnv("chartConfig"),u.isImage&&(void 0===a||a.hasChartMessage)&&(i=(0,o.setImageDisplayMode)(s,u.bgImageVAlign,u.bgImageHAlign,u.bgImageScale,0,c.getFromEnv("chartWidth"),c.getFromEnv("chartHeight"),t),(0,o.extend2)(i,{opacity:.01*u.bgSWFAlpha,visibility:"visible","clip-rect":u.imgClipRect}),r.attr(i),f?r.show():r.hide(),r&&S&&l(r,S),h.fireChartInstanceEvent("backgroundloaded",{url:e,bgImageAlpha:100*u.bgSWFAlpha,bgImageDisplayMode:s,bgImageVAlign:u.bgImageVAlign,bgImageHAlign:u.bgImageHAlign,bgImageScale:u.bgImageScale,imageWidth:t.width,imageHeight:t.height}))}})),r.on("error",(function(t){r.removed||h.fireChartInstanceEvent("backgroundloaderror",{url:e,bgImageAlpha:100*u.bgSWFAlpha,error:t,bgImageDisplayMode:s,bgImageVAlign:u.bgImageVAlign,bgImageHAlign:u.bgImageHAlign,bgImageScale:u.bgImageScale},k)}))))},r.configure=function(t){e.prototype.configure.call(this,t);var r,n=this.getFromEnv("chartInstance"),a=n.options,i=n.args,s=this.config,l=s.message,c=s.chartObj;(s.strObj=(0,o.getImageURL)(void 0!==l?l:a.dataEmptyMessage)).image?(r=c?{imageHAlign:(0,o.pluck)(c._chartMessageImageStyle.imageHAlign,a.baseChartMessageImageHAlign).toLowerCase(),imageVAlign:(0,o.pluck)(c._chartMessageImageStyle.imageVAlign,a.baseChartMessageImageVAlign).toLowerCase(),imageAlpha:(0,o.pluckNumber)(c._chartMessageImageStyle.imageAlpha,a.baseChartMessageImageAlpha),imageScale:(0,o.pluckNumber)(c._chartMessageImageStyle.imageScale,a.baseChartMessageImageScale)}:{imageHAlign:(0,o.pluck)(i.dataEmptyMessageImageHAlign,a.baseChartMessageImageHAlign).toLowerCase(),imageVAlign:(0,o.pluck)(i.dataEmptyMessageImageVAlign,a.baseChartMessageImageVAlign).toLowerCase(),imageAlpha:(0,o.pluckNumber)(i.dataEmptyMessageImageAlpha,a.baseChartMessageImageAlpha),imageScale:(0,o.pluckNumber)(i.dataEmptyMessageImageScale,a.baseChartMessageImageScale)},s.chartMessageType="image"):(r=c?{"font-family":c._chartMessageStyle.fontFamily||a.baseChartMessageFont,"font-size":c._chartMessageStyle.fontSize||a.baseChartMessageFontSize,fill:c._chartMessageStyle.color||a.baseChartMessageColor}:{"font-family":i.dataEmptyMessageFont||a.baseChartMessageFont,"font-size":i.dataEmptyMessageFontSize||a.baseChartMessageFontSize,fill:i.dataEmptyMessageColor||a.baseChartMessageColor},s.chartMessageType="text"),s.messageURL=a.messageURL,s.chartMessageStyle=r},r.manageSpace=function(){var e,t,r,n=this.config,a=n.chartMessageStyle,i=this.getFromEnv("smartLabel"),s=n.strObj,l=this.getFromEnv("chartWidth"),c=this.getFromEnv("chartHeight");t=n.width=Number(l),e=n.height=Number(c),s.image?r=s.string:(i.setStyle(a),r={text:i.getSmartText((0,o.parseUnsafeString)(s.string),t,e).text,x:t/2,y:e/2}),n.chartMessageAttr=r},r.draw=function(){var e,t,r,n=this.config,a=this.getFromEnv("paper"),i=n.visible,s=n.isImage="image"===n.chartMessageType,c=n.messageURL,u=s?n.chartMessageAttr:(0,o.extend2)(n.chartMessageAttr,n.chartMessageStyle);e=this.getGraphicalElement("messageText"),r=this._graphics,t=this.getLinkedParent().getChildContainer("messageGroup").show(),s?this._drawBackground(n.chartMessageAttr,n.chartMessageStyle):e||"text"!==n.chartMessageType?(r.message=e.attr(u),i?e.show():e.hide()):e=this.addGraphicalElement("messageText",a.text(u,t)),(e||r.message)&&c&&l(e||r.message,c),this._hideOtherMessage(s)},r._hideOtherMessage=function(e){var t,r,n;e?(r=this.getGraphicalElement("messageText"))&&r.hide():(t=this.getGraphicalElement("backgroundImage"),n=this.getGraphicalElement("backgroundElement"),t&&t.hide(),n&&n.hide())},r.getType=function(){return"chartMessage"},t}(i.ComponentInterface);t["default"]=c},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a,i=n(r(201)),o=n(r(198)),s=r(184),l=r(196),c=r(199),u=r(192),d=!s.hasSVG,h={initial:1,update:0,realTimeUpdate:0,resize:0,dispose:0,legendInteraction:0,scroll:0,mouseOut:0,mouseOver:0,"default":0,slicing:.25,timenavSqueeze:0,selectedRange:0,timenavScroll:0},f=["default","global","chartSpecific"],g={fadeIn:{opacity:{start:0,end:1}},fadeOut:{opacity:{start:1,end:0}}},p={fadeIn:function(){this&&this.show()},fadeOut:function(){this&&this.hide()}},m=function(e){return null===e},v=function(e,t){void 0===t&&(t="");var r=t.split(","),n=[];return r.forEach((function(t){e[t]&&e[t].animation&&n.push(e[t].animation)})),n},b=function(e,t,r){var n,a=Object.assign({},e),i=r/t;return i>.2&&(i=.2),n=a.end-a.start,a.start*=1-i,a.start+=i,a.end=a.start+(1-i)*n,a.start=Math.round(100*a.start)/100,a.end=Math.round(100*a.end)/100,a},y=function(e,t,r){var n,i=g[t],o=s.BLANKSTRING,l={};if(i&&e&&e.el&&e.el[0]){for(o in i)l[o]=e.el.attrs[o],l[o]===a&&(l[o]=null),e.attrs[o]=i[o].end,e.el.attr(o,i[o].start);n=e.callback,e.callback=function(){r&&p[t]&&p[t].call(this),n&&n.call&&n.call(this),this.attr(l)}}},x=function(e,t){var r,n=t,a=!0;if(n){for(e.attrs=e.attrs||{},~(n=n.split("-")).indexOf("nc")&&(a=!1),r=n.length;r--;)y(e,n[r],a);return e}},C=function(e,t,r,n,a,i,o,s){e.animateWith(a,i,t,o,s,r,n)},w=function(e){var t={};for(var r in e)if(e.hasOwnProperty(r)&&"__esModule"!==r){var n=e[r];_(t,n)}return t},_=function(e,t){for(var r in t)t.hasOwnProperty(r)&&(!e[r]&&(e[r]=[]),e[r].push(t[r]))},k=function(e){return"function"==typeof e};function S(e,t,r,n){var a,i,o,s,l,c=e.length,u=0,d=0,h=t;for(i=0,o=0,l=0;l<c;l+=1)(a=e[l]).hasAnimation||!1===a.collapsible?o+=1:i+=a.duration,d+=a.duration;for(i/=o,l=0;l<c;l+=1)(a=e[l]).hasAnimation&&(s=r-t,h=(u=h)+(a.duration/d+i)*s,n[a.name]={start:u,end:h,effect:a.effect,transition:a.transition},a.child&&A(a.child,u,h,n))}function E(e,t,r,n){var a,i,o;i=t+(i=e.start)*(a=r-t),o=t+(o=e.end)*a,n[e.name]={start:i,end:o,effect:e.effect,transition:e.transition},e.child&&A(e.child,i,o,n)}function A(e,t,r,n){var a,i,o=e.length;for(a=0;a<o;a++)i=e[a],Array.isArray(i)?S(i,t,r,n):E(i,t,r,n)}g.fadein=g.fadeIn,g.fadeout=g.fadeOut;var T=function(e){(0,o["default"])(r,e);var t=r.prototype;function r(){var t;t=e.call(this)||this;var r=(0,i["default"])(t);return r._removedGraphics=[],r._animCallBack=function(){if(!r.getState("removed")&&!this.removed){var e=r.getAnimationState();r._removeElems(),r.reset(),r.fireEvent("animationComplete",{currAnimState:e})}},r.startAnimation=function(){r.kickStart(),r.animate()},t}return t.getType=function(){return"animationManager"},t.getName=function(){return"animationManager"},t.stopAnimation=function(){if(this.getState("chartAnimating")){var e,t=this.config.animationObj,r=t&&t.duration;r?(e=this.getGraphicalElement().dummyObj)&&e.stop(a,!0,!0):0===r&&(this.removeJob("anim-callBack"),this._animCallBack())}},t.kickStart=function(){var e,t,r,n=this.config,i=this.getGraphicalElement(),o=this.getFromEnv("paper"),s=n.animationObj,l=n.animationeffect;t=s.duration,s.animObj=r=(0,u.getDep)("redraphael","plugin").animation({x:0},t,l,this._animCallBack,!0),s.animType=l,(e=i.dummyObj)?e.attr({x:100}):(e=o.rect({x:100,y:0,width:10,height:30}),this.addGraphicalElement("dummyObj",e),e.hide()),s.dummyObj=i.dummyObj,e.stop(a,!0,!0),this.fireEvent("animationStart",{duration:t}),this.setState("chartAnimating",!0),e.animate(r)},t.setAnimationState=function(e){void 0===e&&(e=a),e&&this.stopAnimation(),this.config.__state=e,this._setAnimDuration(e)},t.getAnimationState=function(){return this.config&&this.config.__state},t._setAnimDuration=function(e){void 0===e&&(e="default");var t=this.config,n=t.animationObj||(t.animationObj={}),a=t.animationDuration||(t.animationDuration={}),i=this.getFromEnv("chart").getFromEnv("chart-attrib")||{},o=e+"AnimDuration",s=t.killSwitch?0:1e3*(a[o]||i[o.toLowerCase()]||r.getFallbackAnimDuration(e));n&&(n[o]=s,n.duration=+s)},t.configureAttributes=function(){var e=this.getFromEnv("chart"),t=e.config,r=this.config,n=e.getFromEnv("chart-attrib")||{};r.killSwitch=!(0,s.pluckNumber)(n.animation,t.animation,1),r.animationeffect=t.animationeffect||"linear",this.invokeAnimationRules(),!r.workingRules&&(r.workingRules={}),!r.animateArr&&(r.animateArr=[]),!r.animationName&&(r.animationName=[])},t.invokeAnimationRules=function(){var e,t=this.getFromEnv("chart"),n=t.getFromEnv("chart-attrib")||{},a=t.config||{},i=this.config,o=t.getFromEnv("chartInstance").args.animation,l=t.getFromEnv("core-options").defaultTheme,c=function(e){var t,r={};for(var n in e)e.hasOwnProperty(n)&&(r[(t=e[n]).name]=t);return r}((0,u.getDepsByType)("theme")),d=(t.getFromEnv("core-options")._globalAnimationRule||[]).concat(v(c,l)),h=(o&&[o]||[]).concat(v(c,a.theme));i.animationRules={global:w(d.map((function(e){return e&&e.rule})).filter((function(e){return e}))),chartSpecific:w(h.map((function(e){return e&&e.rule})).filter((function(e){return e}))),"default":w((0,u.getDepsByType)("animationRule"))},i.animationDuration=e={},d.map((function(t){return Object.assign(e,t.duration)})),h.map((function(t){return Object.assign(e,t.duration)})),e.initialAnimDuration=(0,s.pluckNumber)(e.initialAnimDuration,n.initialanimduration,n.animationduration),this.config.slots=r.getFallbackAnimTimeSlots().concat([].concat.apply([],d.map((function(e){return e.slots}))).filter((function(e){return e}))).concat([].concat.apply([],h.map((function(e){return e.slots}))).filter((function(e){return e})))},t.reInitialize=function(){var e=this.config.animationObj.duration;this.setState("initialized",!0),e?this.addJob("start-animation",this.startAnimation,l.priorityList.animation):(this.fireEvent("animationStart",{duration:e}),this.setState("chartAnimating",!0),this.addJob("anim-callBack",this._animCallBack,l.priorityList.animation))},t.reset=function(){this.setState("initialized",!1),this.config&&this.config.animateArr&&(this.config.animateArr.length=0),this.setState("chartAnimating",!1),this.setAnimationState()},t.registerAnimObj=function(e){var t;for(t in e)this.registerAnimation(e[t],t)},t.getFinalSlots=function(){var e=this.config,t=e.slots,r=e.workingRules={};return function n(e,t){var r,a,i,o,s,l,c=!1;if(!e)return!1;for(i=0,o=e.length;i<o;i+=1)if(a=e[i],Array.isArray(a))for(s=0,l=e[i].length;s<l;s+=1)a=e[i][s],r=!1,-1!==t.indexOf(a.name)?r=!0:a.child&&(r=a.hasAnimation=n(a.child,t)),c=c||r,a.hasAnimation=r;else r=!1,-1!==t.indexOf(a.name)?r=!0:a.child&&(r=a.hasAnimation=n(a.child,t)),c=c||r,a.hasAnimation=r;return c}(t,e.animationName),A(t,0,1,r),r["default"]={start:0,end:1},r},t.registerOne=function(e,t){this.registerAnimation([{data:[e]}],t)},t.registerAnimation=function(e,t){void 0===e&&(e=[]);var r,n,a,i=!1;for(r=0,a=e.length;r<a;r+=1)(n=e[r]).data&&n.data.length&&(this.config.animateArr.push((n.component=t,n)),i=!0);i&&this.config.animationName.push(t),!this.getState("initialized")&&this.reInitialize()},t.onAnimationComplete=function(e){this.addEventListener("animationComplete",(function(t){e(),t.detachHandler()}))},r.removeOpacityFromGroup=function(e,t){t&&d&&("group"===e||"group"===e.type)&&delete t.opacity},t.setAnimation=function(e){void 0===e&&(e={});var t,n,i,o,l,c,u,d,h,f,g,p,m,v,b=this.config,y=b.animationObj,x=e.el,C=e.attr||{},w={},_={},k=function(t,r,n,a){return function(){n.callback&&n.callback.call(this),t&&this.attr(t),r&&e.callback&&e.callback.call(this),a&&this.appendTo(a)}},S=function(e,t,r){return function(){t.hookFn&&t.hookFn.call(this),e&&this.attr(e),r&&this.appendTo(r)}},E=[],A=y.duration,T=this.getState("chartAnimating"),M="object"==typeof x&&e.container&&x.parent!==e.container;if(this.getState("chartAnimating")&&b.animationObj&&b.animationObj.duration&&this.setAnimationState("default"),!T&&A&&(h=this.getAnimAttributes(e))){for(d=h.length,v=!1,g=!(f="appearing"===e.state||"string"==typeof x)&&x.attrs,u={},c=0;c<d;c++){for(o in p=c===d-1,l=E[c]={},t=(m=h[c]).finalAttr,n=m.initialAttr,r.removeOpacityFromGroup(e.el,n),r.removeOpacityFromGroup(e.el,t),n)u[o]=n[o],_[o]===a&&(_[o]=n[o]);for(o in t)u[o]=t[o],f&&_[o]===a&&(_[o]=t[o]);if(l.attrs=t,l.transition=m.transition,l.effect=m.effect,l.animConfig=[m.startEnd],m.callback&&(l.callback=m.callback),(v=M&&m.changeGroup)&&(M=!1),p){if(f)for(o in C)_[o]===a&&(_[o]=C[o]);for(o in C)i=C[o],!u[o]&&f||u[o]===i||(t&&t[o]===a?t[o]=i:w[o]=i);for(o in u)w[o]===a&&(i=(0,s.getFirstValue)(C[o],g[o]),u[o]!==i&&(t&&t[o]===a&&i!==a?t[o]=i:w[o]=i));t||(l.attrs=w),l.callback=k((t||n)&&w,p,m,M&&e.container),x=this.setAttributes(x,{attr:_,inputJSON:e})}(n||m.hookFn||v)&&(l.animConfig[0].hookFn=S((!f||c)&&n,m,v&&e.container))}for(c=0;c<d;c++)E[c].el=x.el,this.registerAnimation([{data:[E[c]]}],h[c].slot)}else T?x=this.setAttributes(x,{attr:C,inputJSON:e,groupChangeReq:M,immediate:!0}):(this.registerAnimation(),x=this.setAttributes(x,{attr:C,inputJSON:e,groupChangeReq:M,immediate:!0}));return x.removed?null:x.el},t._removeElems=function(){if(this.getFromEnv("paper")&&!this.getFromEnv("paper").removed){this._removedGraphics.forEach((function(e){return e.remove&&e.remove()})),this._removedGraphics.length=0}},t.removeElement=function(e,t){return t?e.remove():this._removedGraphics.push(e),null},r._ruleSelectorQueryBuilder=function(e,t){void 0===t&&(t=!0);var r=e.label,n=e.state,a=e.component,i=a.getType(),o=a.getName();if(t){var s=["*","*.*","*.*.*"],l=["*.*."+o,"*."+i+".*","*."+i+"."+o];return"*"===n?s.concat(l):s.concat(l,[n+".*",n+".*.*",n+".*."+o,n+"."+i+".*",n+"."+i+"."+o])}return[r+"."+n,r+".*","*."+n,"*.*","*"]},t._getRulesByState=function(e){var t,n,i,o,s=e.component,l=this.getAnimationState()||"*",c=r._ruleSelectorQueryBuilder(Object.assign(e,{state:l}));return(t=(o=s.getState("animRules")||{})[l])?t:(n=o[l]={},i=this.config.animationRules,f.forEach((function(e){var t=i[e];t&&c.forEach((function(e){t[e]&&(Array.isArray(t[e])?t[e].forEach((function(e){n=o[l]=m(e)?null:Object.assign(n||{},k(e)?e.call(s):e)})):n=o[l]=m(t[e])?null:Object.assign(n||{},k(t[e])?t[e].call(s):t[e]))}))})),s.setState("animRules",o),!s.getState("ruleFlushAttached")&&s.addExtEventListener("predraw",(function(){s.setState("animRules",a),s.setState("ruleFlushAttached",!0)}),s.getFromEnv("chart")),n)},r._getRulesByElement=function(e,t){var n;return r._ruleSelectorQueryBuilder(t,!1).forEach((function(t){n===a&&(n=e[t])})),n},t.getAnimAttributes=function(e){var t,n,a,i,o,s=e.component||this.getFromEnv("chart"),l=e.label||("object"==typeof e.el?e.el.type:e.el),c=e.state,u=this._getRulesByState({label:l,component:s}),d=[];if(!m(u)&&(!c&&(c="string"==typeof e.el?"appearing":e.attr?"updating":"disappearing"),t=r._getRulesByElement(u,{component:s,state:c,label:l}),!m(t))){if(!t)return r.getFallbackAnimRule(e);if(!k(t)||(t=t.call(s,e),!m(t))){for(o=t.length,i=0;i<o;i++)a={},(n=t[i]).initialAttr&&(a.initialAttr=k(n.initialAttr)?n.initialAttr.call(s,e):Object.assign({},n.initialAttr)),n.finalAttr&&(a.finalAttr=k(n.finalAttr)?n.finalAttr.call(s,e):Object.assign({},n.finalAttr)),a.startEnd=k(n.startEnd)?n.startEnd.call(s,e):n.startEnd?Object.assign({},n.startEnd):{start:0,end:1},a.slot=n.slot||"default",a.callback=n.callback,a.hookFn=n.hookFn,a.transition=n.transition,a.effect=n.effect||"linear",n.groupChange&&(a.groupChange=!0),d.push(a);return d}}},r.getFallbackAnimRule=function(e){if("appearing"===e.state||"string"==typeof e.el){if("group"!==e.el)return[{initialAttr:{opacity:0},finalAttr:{opacity:(0,s.pluckNumber)(e.attr&&e.attr.opacity,1)},startEnd:{start:0,end:1}}]}else{if("updating"===e.state||e.attr)return[{startEnd:{start:0,end:1}}];if("group"!==e.el.type)return[{initialAttr:{opacity:1},finalAttr:{opacity:0},startEnd:{start:0,end:1}}]}},r.getFallbackAnimDuration=function(e){return h[e]||0},r.getFallbackAnimTimeSlots=function(){return[{name:"_default",start:0,end:1,child:[[{name:"initial",duration:.125},{name:"middle",duration:.75,child:[[{name:"axis",duration:.25},{name:"plot",duration:.75}]]},{name:"final",duration:.125}]]}]},t.createElement=function(e,t,r){void 0===t&&(t={});var n=e,a=this.getFromEnv("paper");if(a||(a=this.getFromEnv("chart").getFromEnv("paper"),this.addToEnv("paper",a)),"group"===n)(n=a.group(r.attr&&r.attr.name||"",r.container)).attr(t);else if("html"===n)n=a.html(r.attr.type,t,r.css,r.container);else{if("text"===n&&r.css)return a[r.el](t,r.css,r.container);n=a[r.el](t,r.container)}return n},t.setAttributes=function(e,t){var r,n=e,a=t.attr,i=t.inputJSON||{};return"string"==typeof n?n=this.createElement(n,a,i):0!==Object.keys(a).length?n.attr(a):i.attr&&"disappearing"!==i.state||(r=!i.doNotRemove),r?this.removeElement(n,t.immediate):(i.css&&n.css(i.css),t.groupChangeReq&&n.appendTo(i.container),t.immediate&&i.callback&&i.callback.call(n)),{el:n,removed:r}},t.prepareAnimateArr=function(e){var t,r,n,i,o,s,l,c,u,d=this.config.preAnimArr=[];function h(e,t){var n,i,o,s={start:0,end:1};for(o in e)if(e.hasOwnProperty(o)){if(e[o].syncWith&&!r[e[o].syncWith])continue;n=e[o].syncWith,s.start=e[o].start===a?0:e[o].start,s.end=e[o].end===a?1:e[o].end,s.hookFn=e[o].hookFn||e.hookFn,s.smartMorph=e[o].smartMorph||e.smartMorph;break}return n=n&&r[n]?n:t&&r[t]?t:"default",i=r[n].end-r[n].start,s.start=r[n].start+s.start*i,s.end=r[n].start+s.end*i,s}for(r=this.getFinalSlots(),i=0,o=e.length;i<o;i+=1){for(n=(t=e[i]).component,s=0,l=t.data.length;s<l;s+=1)(c=(u=t.data[s]).transition||r[n]&&r[n].transition)&&x(u,c),u.preAnimFn&&d.push({el:u.el,fn:u.preAnimFn}),u.animConfig&&(u.animConfig=h(u.animConfig,n));t.effect||r[n]&&(t.effect=r[n].effect),t.animConfig||(t.animConfig=[{}]),t.animConfig=h(t.animConfig,n)}},t.animate=function(){var e,t,r,n,a,i,o,s,l=this.config,c=this.config.animateArr,u=l.animationObj,d=u.animObj,h=u.dummyObj,f=u.duration;for(this.prepareAnimateArr(c),function(e){var t=0,r=e.length;for(t=0;t<r;++t)e[t].fn&&e[t].fn.call(e[t].el)}(this.config.preAnimArr),a=0,i=c.length;a<i;a+=1)for(o=0,s=(t=c[a]).data.length-1;o<=s;o+=1)r=t.data[o].animConfig||t.animConfig,r=b(r,f,180),e=t.data[o].effect||t.effect||"linear",n=a===i&&t.callback||t.data[o].callback,t.data[o].preAttrs&&t.data[o].el.attr(t.data[o].preAttrs),t.data[o].el&&C(t.data[o].el,t.data[o].attrs,n||null,r,h,d,f,e)},t.remove=function(t){this.removeAllJobs(),t.instant&&this.getGraphicalElement("dummyObj")&&this.getGraphicalElement("dummyObj").remove(),e.prototype.remove.call(this,t)},r}(c.ComponentInterface);t["default"]=T},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n={pie2d:["isPlotItemSliced","addData","removeData","updateData","slicePlotItem","startingAngle"],dragcolumn2d:["getDataWithId","getData","setUpperLimit","setLowerLimit","getLowerLimit","getUpperLimit"],realtimecolumn:["feedData","setData","stopUpdate","restartUpdate","isUpdateActive","clearChart","getData","getDataForId","setDataForId","getDataJSON","showLog","hideLog","clearLog"],scrollcolumn2d:["scrollTo"],scrollbar2d:["scrollTo"],boxandwhisker2d:["scrollTo"],doughnut:["centerLabel"],zoomline:["zoomOut","zoomTo","resetChart","setZoomMode","getViewStartIndex","getViewEndIndex","scrollTo"],maps:["getMapName","getEntityList","getMapAttribute","exportMap","addMarker","updateMarker","removeMarker"],"*":["exportChart","getXML","getChartAttribute","getCSVData","getChartData","getDataAsCSV","getJSONData","getSVGString","getXMLData"]};n.pie3d=n.pie2d,n.doughnut2d=n.doughnut3d=n.doughnut.concat(n.pie2d),n.dragarea=n.dragline=n.dragnode=n.dragcolumn2d,n.realtimearea=n.realtimeline=n.realtimelinedy=n.realtimestackedarea=n.realtimestackedcolumn=n.bulb=n.angulargauge=n.hlineargauge=n.hled=n.vled=n.vbullet=n.hbullet=n.thermometer=n.cylinder=n.realtimecolumn,n.scrollarea2d=n.scrollline2d=n.scrollcombidy2d=n.scrollcombi2d=n.scrollstackedcolumn2d=n.scrollmsstackedcolumn2d=n.scrollmsstackedcolumn2dlinedy=n.scrollcolumn2d,n.zoomlinedy=n.zoomline;var a=n;t["default"]=a},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n={extension:function(){function e(){}var t=e.prototype;return t.draw=function(){},t.drawAt=function(){},t.hide=function(){},t.hideAll=function(){},t.enableToolTip=function(){},t.disableToolTip=function(){},t.setStyle=function(){},t.setApplyScale=function(){},e}(),name:"ToolTipController",type:"plugin"};t["default"]=n},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(233));t.MessageLogger=a["default"];var i=n(r(236));t.linkedChartsExtension=i["default"];var o=n(r(238));t.XMLTranscoder=o["default"];var s=n(r(239));t.CSVTranscoder=s["default"];var l=n(r(240));t.JSONUrlTranscoder=l["default"];var c=n(r(243));t.XMLUrlTranscoder=c["default"];var u=n(r(244));t.IgnoreCaseExt=u["default"];var d=n(r(245));t.ThemeEngine=d["default"];var h=n(r(246));t.DefaultTheme=h["default"];var f=n(r(247));t.PlotHighlighter=f["default"];var g=n(r(249));t.ToolTipController=g["default"];var p=n(r(251));t.ConsolidatedToolTip=p["default"];var m=n(r(252));t.AlertManager=m["default"];var v=n(r(254));t.DataSkipping=v["default"];var b=n(r(258));t.Annotation=b["default"];var y=n(r(283));t.RegressionExtension=y["default"];var x=n(r(289));t.inputAdapter=x["default"];var C=n(r(317));t.LegendEventManagerLinker=C["default"];var w=n(r(318));t.exportModule=w["default"];var _=n(r(326));t.BatchExportLinker=_["default"];var k=n(r(327));t.LogoExtension=k["default"];var S=n(r(329));t.supportOldThemes=S["default"];var E=n(r(330));t.debug=E["default"];var A=n(r(331));t.CenterLabel=A["default"];var T=n(r(334));t.CrossLine=T["default"];var M=n(r(338));t.MultiCanvasCrossLine=M["default"];var F={name:"features",type:"package",requiresFusionCharts:!0,extension:function(e){e.addDep(i["default"]),e.addDep(o["default"]),e.addDep(s["default"]),e.addDep(l["default"]),e.addDep(c["default"]),e.addDep(u["default"]),e.addDep(d["default"]),e.addDep(f["default"]),e.addDep(h["default"]),e.addDep(g["default"]),e.addDep(p["default"]),e.addDep(m["default"]),e.addDep(a["default"]),e.addDep(v["default"]),e.addDep(b["default"]),e.addDep(w["default"]),e.addDep(y["default"]),e.addDep(x["default"]),e.addDep(C["default"]),e.addDep(_["default"]),e.addDep(k["default"]),e.addDep(S["default"]),e.addDep(E["default"]),e.addDep(A["default"]),e.addDep(T["default"]),e.addDep(M["default"])}};t["default"]=F},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(234)),i={timeseries:!0},o=function(e){var t=e.sender.getName().toLowerCase();"chartAPI"!==e.sender.getType()||i[t]||e.sender.registerFactory("messageLogger",(function(t){if(t.getChildren("messageLogger"))t.getChildren("messageLogger")[0].configure(t);else{var r=new a["default"];r.configure(t),r.addToEnv("chart-container",t.getFromEnv("chart-container")),t.attachChild(r,"messageLogger"),t.getFromEnv("chartInstance").showLog=function(){return r&&r.show&&r.show()},t.getFromEnv("chartInstance").hideLog=function(){return r&&r.hide&&r.hide()},t.getFromEnv("chartInstance").clearLog=function(){return r&&r.clearLog&&r.clearLog()},e.sender.addEventListener("realtimeDataUpdate",(function(e){e.sender.getChildren("messageLogger")&&e.sender.getChildren("messageLogger")[0].addLog(e.data)}))}}))};var s={extension:function(e){e.addEventListener("instantiated",o)},name:"messageLoggerLinker",type:"extension",requiresFusionCharts:!0};t["default"]=s},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(235)),o=r(199),s=r(184),l=Math.min,c=function(e){function t(){var t;return(t=e.call(this)||this).pIndex=1,t.linkedItems=t.linkedItems||(t.linkedItems={}),t.components=t.components||{},t.components.messages=t.components.messages||[],t.graphics=t.graphics||{},t.config=t.config||(t.config={}),t}(0,a["default"])(t,e);var r=t.prototype;return r.getType=function(){return"extension"},r.getName=function(){return"MessageLogger"},r.configure=function(e){this.linkedItems.chart=e;var t=e.getFromEnv("chart-attrib")||{},r=this.config.usemessagelog=e.getFromEnv("chartConfig").usemessagelog;this.config.messageLogWPercent=l((0,s.pluckNumber)(t.messagelogwpercent,80),100),this.config.messageLogHPercent=l((0,s.pluckNumber)(t.messageloghpercent,70),100),this.config.messageLogShowTitle=(0,s.pluckNumber)(t.messagelogshowtitle,1),this.config.messageLogTitle=(0,s.pluck)(t.messagelogtitle,"Message Log"),this.config.messageLogColor=(0,s.pluck)(t.messagelogcolor,"#fbfbfb").replace(/^#?([a-f0-9]+)/gi,"$1"),this.config.messageLogColorRgb=(0,s.HEXtoRGB)(this.config.messageLogColor),this.config.messageGoesToJS=(0,s.pluckNumber)(t.messagegoestojs,0),this.config.messageGoesToLog=(0,s.pluckNumber)(t.messagegoestolog,1),this.config.messageJSHandler=(0,s.pluck)(t.messagejshandler,""),this.config.messagePassAllToJS=(0,s.pluckNumber)(t.messagepassalltojs,0),this.config.messagePassAsObject=(0,s.pluckNumber)(t.messagepassasobject,0),this.config.messageLogIsCancelable=(0,s.pluckNumber)(t.messagelogiscancelable,1),this.config.alwaysShowMessageLogMenu=(0,s.pluckNumber)(t.alwaysshowmessagelogmenu,r),e.config.useShowLogMenu=r&&this.config.messageGoesToLog,this.config.dynamicScrolling=!1,this.config.scrollToBottom=!0},r._createMessage=function(e){var t=new i["default"](e,this);return this.graphics.container&&t.draw(),t},r.addLog=function(e){var t,r=this.components.messages,n=(0,s.pluckNumber)(e.msgGoesToLog,this.config.messageGoesToLog),a=(0,s.pluckNumber)(e.msgGoesToJS,this.config.messageGoesToJS),i=window[this.config.messageJSHandler],o=(0,s.pluck)(e.msgId,""),l=(0,s.pluck)(e.msgTitle,""),c=(0,s.pluck)(e.msgText,""),u=(0,s.pluck)(e.msgType,"literal");0!==this.config.usemessagelog&&(a&&i&&"function"==typeof i&&(this.config.messagePassAllToJS?this.config.messagePassAsObject?i(e):i(o,l,c,u):i(c)),"1"===e.clearLog&&this.clearLog(),n&&(e.msgTitle||e.msgText)&&(t=this._createMessage(e),r.push(t),1!==r.length||this.config.visible||this.show()))},r.show=function(){this.config.visible||1!==this.config.usemessagelog||(this.config.visible=!0,this.draw(),this.graphics.container||this.draw(),this.graphics.container&&this.graphics.container.show())},r.hide=function(){this.config.visible=!1,this.graphics.container&&this.graphics.container.hide()},r.clearLog=function(){var e,t=this.components.messages,r=t.length;for(e=0;e<r;e+=1)t[e]&&t[e].dispose&&t[e].dispose();t.splice(0,r)},r.isDrawn=function(){return!!this.graphics.container},r.draw=function(){var e,t,r=this.components.messages;if(0===this.config.usemessagelog)this.isDrawn()&&(this.clearLog(),this.hide());else for(this._createHTMLDialogue(),this.config.visible||this.hide(),t=r.length,e=0;e<t;e+=1)r[e]&&r[e].draw&&r[e].draw()},r._createHTMLDialogue=function(){var e,t,r,n,a=this,i=this.config,o=this.graphics,s=this.getFromEnv("paper"),l=this.linkedItems.chart.config,c=l.width,u=l.height,d=l.style,h=d&&d.inCanvasStyle,f=this.config.messageLogWPercent,g=this.config.messageLogHPercent,p=this.config.messageLogShowTitle,m=this.config.messageLogIsCancelable,v=this.config.messageLogColor,b=this.config.messageLogTitle,y=c*(f/100),x=u*(g/100),C=(c-y)/2,w=(u-x)/2,_=y-18-22,k=x-18-22,S=v,E=v,A=o.container,T=this.isDrawn()&&l.animation&&l.animation.transposeAnimDuration;A||(A=o.container=s.html("div",{fill:"transparent"},{fontSize:"10px",lineHeight:"15px"},this.getFromEnv("chart-container")),o.veil=s.html("div",{id:"veil",fill:"000000",opacity:.1},void 0,A).on("fc-click",(function(){m&&a.hide()})),b&&p&&(o.title=s.html("p",{id:"Title",innerHTML:b,x:5,y:5},{"font-weight":"bold"},A)),o.dialog=s.html("div",{id:"dialog",strokeWidth:1},{borderRadius:"5px",boxShadow:"1px 1px 3px #000000","-webkit-border-radius":"5px","-webkit-box-shadow":"1px 1px 3px #000000",filter:'progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color="#000000")'},A),o.logBackground=s.html("div",{id:"dialogBackground",x:0,y:0},void 0,o.dialog),m&&(o.closeButton=s.html("div",{id:"closeButton",x:y-11-3,y:2,innerHTML:"<b>x</b>"},{cursor:"pointer",_cursor:"hand"},o.dialog).on("fc-click",(function(){m&&a.hide()}))),o.logWrapper=s.html("div",{id:"logWrapper"},{overflow:"auto"},o.dialog).on("scroll",(function(){var e=this&&this.scrollTop,t=this&&this.scrollHeight,r=this&&this.offsetHeight;i.dynamicScrolling?i.dynamicScrolling=!1:i.scrollToBottom=t-e===r})),o.log=s.html("div",{id:"log",x:0,y:0},{},o.logWrapper)),A.css({fontFamily:h.fontFamily}),o.dialog.attr({fill:"ffffff",stroke:S}),o.logBackground.attr({fill:E}),e={width:c,height:u},t={x:C,y:w,width:y,height:x},r={width:y,height:x},n={x:(y-_)/2,y:(x-k)/2,width:_,height:k},T?(A.animate(e,T,"normal"),o.veil.animate(e,T,"normal"),o.dialog.animate(t,T,"normal"),o.logBackground.animate(r,T,"normal"),o.logWrapper.animate(n,T,"normal")):(A.attr(e),o.veil.attr(e),o.dialog.attr(t),o.logBackground.attr(r),o.logWrapper.attr(n))},t}(o.ComponentInterface);t["default"]=c},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n=r(184),a=8===window.document.documentMode,i={},o={display:"block",paddingLeft:"10px",paddingRight:"10px","font-family":"Arial","font-size":"11px"};i.literal=i.info={title:'<span style="color: #005900">$titleVal$</span>',body:'<span">$msgVal$</span>'},i.link={title:i.info.title,body:'<a href="$msgLinkVal$">$msgVal$</a>'},i.error={title:'<span style="color: #CC0000">$titleVal$</span>',body:'<span style="color: #CC0000">$msgVal$</span>'};var s=function(){function e(e,t){this.config={},this.messageType=(e.msgType&&e.msgType.replace(/^[\r\n]+|\.|[\r\n]+$/g,"")||"").toLowerCase(),this.msgTitle=e.msgTitle,this.msgText=e.msgText,this.msgLink=e.msgLink,this.graphics={},this.linkedItems={msgLogger:t},this.msgObj=i[this.messageType]||i.literal,this.configureMsgTextAndMsgTitle()}var t=e.prototype;return t.configureMsgTextAndMsgTitle=function(){this.config.totalHTML=n.BLANKSTRING,this.msgTitle&&(this.config.titleHTML=this.msgObj.title.replace("$titleVal$",this.msgTitle),this.config.totalHTML+=this.config.titleHTML),this.msgText&&(this.config.msgHTML=this.msgObj.body.replace("$msgVal$",this.msgText),this.config.msgHTML=this.config.msgHTML.replace("$msgLinkVal$",this.msgText),this.config.totalHTML+=this.config.msgHTML)},t.draw=function(){var e,t,r,i=this.graphics.element,s=this.linkedItems.msgLogger,l=s.graphics,c=l&&l.log&&l.log.element,u=l.logWrapper&&l.logWrapper.element,d=s.config;if(!i){for(e in i=this.graphics.element=window.document.createElement("span"),o)i.style[e]=o[e];c.appendChild&&c.appendChild(i)}this.graphics.element.innerHTML=this.config.totalHTML,n.isIE&&a&&(t=c.innerHTML,c.innerHTML=t),d.scrollToBottom&&(d.dynamicScrolling=!0,r=u.scrollHeight,u.scrollTop=r)},t.dispose=function(){var e=this.linkedItems.msgLogger;e&&e.graphics&&e.graphics.log&&e.graphics.log.element&&e.graphics.log.element.removeChild&&e.graphics.log.element.removeChild(this.graphics.element),delete this.graphics.element,n.componentDispose.call(this)},e}();t["default"]=s},function(e,t,r){"use strict";var n=r(178),a=r(182);t.__esModule=!0,t["default"]=void 0;var i,o=a(r(237)),s=r(191),l=r(184),c=n(r(186)),u=l.regex.dropHash,d="Close";function h(e,t){return(e.options.containerElement===t.options.containerElement||e.options.containerElementId===t.options.containerElementId)&&e.options.insertMode===l.domInsertModes.REPLACE}function f(e){var t;e.sender.link instanceof o["default"]&&!e.sender.link.root.disposed?e.sender.link.parent instanceof this&&!(t=e.sender.link.parent.link.items)[e.sender.id]&&(t[e.sender.id]=e.sender):e.sender.link=new o["default"](e.sender)}function g(e,t){var r,n=t;if(e instanceof Array){for(r=0;r<e.length;r+=1)"object"!=typeof o.store[this.link.root.id][r]&&(o.store[this.link.root.id][r]={}),(0,l.extend2)(o.store[this.link.root.id][r],e[r],!1,!0);o.store[this.link.root.id].splice(e.length)}else"object"==typeof e?("number"!=typeof n&&(n=this.link.level),"undefined"==typeof o.store[this.link.root.id][n]&&(o.store[this.link.root.id][n]={}),(0,l.extend2)(o.store[this.link.root.id][n],e,!1,!0)):(0,s.raiseError)(this,"25081731","param","~configureLink()","Unable to update link configuration from set parameters")}function p(e){var t,r,n,a=this.jsVars,i=a.overlayButton;if(e&&e.show){for(i||(i=a.overlayButton=document.createElement("span"),c["default"].listen(i,"click",(function(){(0,s.triggerEvent)("OverlayButtonClick",a.fcObj,e)}))),n=e.message?e.message:"Back";i.firstChild;)i.removeChild(i.firstChild);for(r in i.appendChild(document.createTextNode(n)),a.overlayButtonMessage=n,t={border:"1px solid "+(e.borderColor?e.borderColor.replace(u,l.HASHSTRING):"#7f8975"),backgroundColor:e.bgColor?e.bgColor.replace(u,l.HASHSTRING):"#edefec",fontFamily:e.font?e.font:"Verdana,sans",color:e.fontColor,fontSize:(e.fontSize?e.fontSize:"10")+l.PXSTRING,padding:(e.padding?e.padding:"3")+l.PXSTRING,fontWeight:0===parseInt(e.bold,10)?l.NORMAL:l.BOLD,position:"absolute",top:"0",right:"0",cursor:l.POINTER})i.style[r]=t[r];a.hcObj.container.appendChild(i),a.overlayButtonActive=!0}else i&&(a.overlayButton=i.parentNode.removeChild(i),a.overlayButtonActive=!1,delete a.overlayButtonMessage)}var m={type:"extension",name:"LinkedChart",extension:function(e){e.prototype.configureLink=g,e.prototype.drawOverlayButton=p,e.addEventListener("beforeRender",f),e.addEventListener("beforeInitialize",f),e.addEventListener("linkedChartInvoked",(function(t,r){var n,a=t.sender,c=a.clone({dataSource:r.data,dataFormat:r.linkType,link:new o["default"](a.link.root,a,a instanceof e),clickedEntity:r.clickedEntity,clickedEntityBox:r.clickedEntityBox},!0),u=r.alias;u&&(!c.typeSource&&c.swfUrl&&(c.typeSource=c.swfUrl.replace(/(.*?)?[^\/]*\.swf.*?/gi,"$1")),c.type=u),a.args&&0!==parseInt(a.args.animate,10)&&delete c.animate,(0,l.extend2)(c,a.link.configuration(),!1,!0),(0,s.triggerEvent)("beforeLinkedItemOpen",a.link.root,{level:a.link.level},i,(function(){e.items[c.id]instanceof e&&e.items[c.id].dispose(),h(n=new e(c),a)||a.options.overlayButton&&a.options.overlayButton.message||("object"!=typeof a.options.overlayButton&&(a.options.overlayButton={}),a.options.overlayButton.message=d),n.render(),(0,s.triggerEvent)("linkedItemOpened",a.link.root,{level:a.link.level,item:n})}))})),e.addEventListener("overlayButtonClick",(function(t,r){var n,a,o,l;"LinkManager"===r.id&&(n=t.sender,a=n.link.level-1,o=n.link.parent,l=n.link.root,(0,s.triggerEvent)("beforeLinkedItemClose",l,{level:a,item:n},i,(function(){setTimeout((function(){e.items[n.id]&&n.dispose(),(0,s.triggerEvent)("linkedItemClosed",l,{level:a})}),0),o.disposed||o.isActive()||!h(n,o)?(o._addChartDependency("returnFromLinkedChart",{resolve:function(){return{state:3}}}),o._setState()):o.render()})))})),e.addEventListener("DrawComplete",(function(t){var r,n=t.sender;n&&"undefined"!=typeof n.link&&n.link.root!==n&&n.link.parent instanceof e&&(n.ref&&"function"==typeof n.drawOverlayButton?(r=(0,l.extend2)({show:!0,id:"LinkManager"},n.link.parent.options.overlayButton,!1,!0),(0,l.extend2)(r,n.link.parent.link.configuration().overlayButton||{},!1,!0),n.drawOverlayButton(r)):(0,s.raiseWarning)(n,"04091602","run","::LinkManager^Loaded","Unable to draw overlay button on object. -"+n.id))})),e.addEventListener("beforeDispose",(function(t){var r=t.sender;r&&r.link instanceof o["default"]&&(r&&r.link&&r.link.parent instanceof e&&r.link.parent.link&&r.link.parent.link.items&&delete r.link.parent.link.items[t.sender.id],delete o.store[r.id])}))},requiresFusionCharts:!0};t["default"]=m},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=t.store=void 0;var n={};t.store=n;var a=function(){function e(e,t,r){this.items={},this.root=e,this.parent=t,r?this.level=this.parent.link.level+1:(n[e.id]=[{}],this.level=0)}return e.prototype.configuration=function(){return n[this.root.id][this.level]||(n[this.root.id][this.level]={})},e}();t["default"]=a},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n,a=r(184),i=function(e,t,r){return"object"==typeof this.items[e][r]?this.items[e][r][t]:this.items[e][r]};function o(e){return e.replace(/</g,"<").replace(/>/g,">")}var s,l,c,u,d=(u={arr:{set:!0,node:!0,nodes:!0,link:!0,links:!0,trendlines:!0,vtrendlines:!0,line:{trendlines:!0,vtrendlines:!0},data:!0,dataset:!0,lineset:!0,categories:!0,category:!0,tasks:!0,linkeddata:!0,application:!0,definition:!0,axis:!0,connectors:!0,connector:{connectors:!0},trendset:!0,row:{rows:!0},column:{columns:!0},label:{labels:!0},color:{colorrange:!0},dial:{dials:!0},pointer:{pointers:!0},point:{trendpoints:!0},process:{processes:!0},task:{tasks:!0},milestone:{milestones:!0},datacolumn:{datatable:!0},text:{datacolumn:!0},item:{legend:!0},alert:{alerts:!0},groups:{annotations:!0},items:{groups:!0,data:!0},shapes:!0,shape:{shapes:!0},entitydef:!0,entity:{entitydef:!0}},tag:{chart:"linkedchart",map:"linkedmap",set:"data",node:"nodes",link:"links",vline:{chart:"data",graph:"data",dataset:"data",categories:"category",linkedchart:"data"},apply:{application:"application"},style:{definition:"definition"},marker:{application:"application",definition:"definition",data:"items"},entity:{entitydef:"entitydef",data:"data"},shape:{shapes:"shapes"},connector:{connectors:{chart:"connector",linkedchart:"connector",map:"connectors",linkedmap:"connectors"}},annotationgroup:{annotations:"groups"},annotation:{groups:"items"}},attr:{vline:{vline:"true"}},ins:{chart:!0,map:!0,graph:!0},dsv:{dataset:"data",categories:"category"},text:{target:"target",value:"value"},group:{styles:{definition:!0,application:!0},chart:{value:!0,target:!0},graph:{value:!0,target:!0},linkedchart:{value:!0,target:!0},markers:{definition:!0,application:!0,shapes:!0,connectors:!0,data:!0},map:{entitydef:!0,data:!0},linkedmap:{entitydef:!0,data:!0}}},s={append:function(e,t,r,n){!u.arr[r]||!0!==u.arr[r]&&!0!==u.arr[r][n]?t[r]=e:(t[r]instanceof Array||(t[r]=[]),t[r].push(e))},child:function(e,t,r,n){var i,o,l,c,d,h;for(i=0;i<t.length;i+=1)switch(o=(l=t[i]).nodeName.toLowerCase(),l.nodeType){case 1:if(c=s.attr(l.attributes),!0===(h=u.ins[o])&&(d=c,(c={})[o]=d,d=void 0),"object"==typeof(h=u.attr[o])&&(0,a.extend2)(c,h,!1,!0),h=u.tag[o])if("object"==typeof h&&"object"==typeof h[r]){for(d in d=void 0,h[r])if(n[d]){o=h[r][d];break}}else"object"==typeof h&&"string"==typeof h[r]?o=h[r]:"string"==typeof h&&(o=h);l.childNodes.length&&((h=u.group[r])&&h[o]?s.child(e,l.childNodes,o,n):s.child(c,l.childNodes,o,n)),(h=u.group[r])&&h[o]||s.append(c,e,o,r);break;case 3:(h=u.text[r])&&(o=h,c=l.data,s.append(c,e,o,r)),"string"==typeof(h=u.dsv[r])&&n.chart&&parseInt(n.chart.compactdatamode,10)&&(o=h,c=l.data,e[o]=e[o]?e[o]+c:c)}},attr:function(e){var t,r={};if(!e||!e.length)return r;for(t=0;t<e.length;t+=1)"xml"===c&&(e[t].value?e[t].value=o(e[t].value):e[t].nodeValue&&(e[t].nodeValue=o(e[t].nodeValue))),r[e[t].nodeName.toLowerCase()]=e[t].value||e[t].nodeValue;return r}},l=function(e){var t,r,i,o,c,u,d,h,f,g={},p=e;if("object"!=typeof p&&p&&"function"!=typeof p.toString)return l.errorObject=new TypeError("xml2json.parse()"),g;if(p=p.toString().replace(/<\!--[\s\S]*?-->/g,"").replace(/<\?xml[\s\S]*?\?>/gi,"").replace(/&(?!([^;\n\r]+?;))/g,"&$1"),!(p=(0,a.fastTrim)(p)))return g;try{if(window.DOMParser?t=(new window.DOMParser).parseFromString(p,"text/xml"):document.body&&n.options.allowIESafeXMLParsing?((r=document.createElement("xml")).innerHTML=p,document.body.appendChild(r),t=r.XMLDocument,document.body.removeChild(r),r=null):((t=new window.ActiveXObject("Microsoft.XMLDOM")).async="false",t.loadXML(p)),!(t&&t.childNodes&&1===t.childNodes.length&&(i=t.childNodes[0])&&i.nodeName&&(o=i.nodeName.toLowerCase()))||"chart"!==o&&"map"!==o&&"graph"!==o)return l.errorObject=new TypeError("xml2json.parse()"),g;if("graph"===o){for(c=t.createElement("chart"),f=(d=i.attributes)&&d.length||0;f--;)c.setAttribute(d[f].name,d[f].value),d.removeNamedItem(d[f].name);for((f=(h=i.childNodes)&&h.length||0)&&(f-=1,u=i.removeChild(h[f]),c.appendChild(u));f--;)u=i.removeChild(h[f]),c.insertBefore(u,c.firstChild);t.replaceChild(c,i),i=c}}catch(m){l.errorObject=m}return i?(i.attributes&&(g[o]=s.attr(i.attributes)),i.childNodes&&s.child(g,i.childNodes,o,g),delete l.errorObject):l.errorObject=new TypeError("xml2json.parse()"),g},function(e){return delete l.errorObject,c=arguments[arguments.length-1],{data:l(e),error:l.errorObject}}),h=function(){var e,t;return e={items:{explode:{data:"set",nodes:"node",links:"link",groups:{annotations:"annotationgroup"},items:{groups:"annotation"}},text:{chart:{target:"target",value:"value"},graph:{target:"target",value:"value"}},dsv:{dataset:{data:"dataset"},categories:{category:"categories"}},attr:{chart:{chart:"chart"},graph:{graph:"graph"},map:{map:"map"},linkedmap:{map:"map"},linkedchart:{chart:"chart"}},group:{styles:{definition:"style",application:"apply"},map:{data:"entity",entitydef:"entity"},markers:{definition:"marker",application:"marker",shapes:"shape",connectors:"connector",items:"marker"}},tag:{markers:{items:"data"}}},qualify:i},t=function(r,n,i,o){var s,l,c,u,d=a.BLANKSTRING,h=a.BLANKSTRING,f=a.BLANKSTRING,g=a.BLANKSTRING,p=n;if(p&&"function"==typeof p.toLowerCase&&(p=p.toLowerCase()),void 0===i&&r[p])for(l in r[p])"compactdatamode"===(c=l.toLowerCase())&&(o.applyDSV=1===r[p][l]);if(r instanceof Array)for(l=0;l<r.length;l+=1)"string"==typeof r[l]?f+=(0,a.xssEncode)(r[l]):f+=t(r[l],p,i,o);else{for(l in r)c=l.toLowerCase().replace(/[`~!@#$%^&*()|+\=?;:'", <>\{\}\[\]\\\/]/gi,""),r[l]instanceof Array&&(u=e.qualify("group",c,p))?h+="<"+(s=e.qualify("tag",c,p)||c)+">"+t(r[l],u,p,o)+"</"+s+">":"object"==typeof r[l]?(u=e.qualify("attr",c,p))?(g=t(r[l],u,p,o).replace(/\s*\/\>/gi,""),p=c):h+=t(r[l],c,p,o):o.applyDSV&&(u=e.qualify("dsv",c,p))?h+=r[l]:(u=e.qualify("text",c,p))?h+="<"+(s=e.qualify("tag",c,p)||u)+">"+r[l]+"</"+s+">":"vline"===c&&Boolean(r[l])?p="vline":d+=" "+c+'="'+(0,a.xssEncode)(r[l]).toString().replace(/\"/gi,""")+'"';(u=e.qualify("explode",i,p))&&(p=u),s=p,f=(""!==g?g:"<"+s)+d+(""!==h?">"+h+"</"+s+">":" />")}return f},function(e){delete t.errorObject;var r=e;if(r&&"string"==typeof r)try{r=JSON.parse(r)}catch(a){t.errorObject=a}var n=r&&r.graph?"graph":r&&r.map?"map":"chart";return{data:t(r,n,void 0,{}),error:t.errorObject}}}(),f=function(){return this.getChartData("xml")},g=function(e){this.setChartData(e,"xml")},p={extension:function(e){return e&&(n=e,e.prototype.getXMLData=f,e.prototype.setXMLData=g),{format:"xml",toJSON:d,fromJSON:h}},name:"XML",type:"transcoder",requiresFusionCharts:!0};t["default"]=p},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n,a,i,o,s,l,c,u,d,h,f=r(191),g=r(184),p=window,m=p.parseInt,v=p.parseFloat,b=function(e){return e},y=function(){function e(e){this.data=[],this.rowCount=0,this.columnCount=0,this.configure(e)}var t=e.prototype;return t.set=function(e,t,r){var n;if(this.rowCount<=e){for(n=this.rowCount;n<=e;n+=1)this.data[n]=[];this.rowCount=e+1}this.columnCount<=t&&(this.columnCount=t+1),this.data[e][t]=r},t.setRow=function(e,t){var r;if(this.rowCount<=e){for(r=this.rowCount;r<=e;r+=1)this.data[r]=[];this.rowCount=e+1}this.columnCount<t.length&&(this.columnCount=t.length),this.data[e]=t},t.get=function(e,t){var r=this.data;return r[e]&&r[e][t]},t.configure=function(t){var r=e.decodeLiterals;this.delimiter=r(t.delimiter,","),this.qualifier=r(t.qualifier,'"'),this.eolCharacter=r(t.eolCharacter,"\r\n"),this.numberFormatted=!!m(t.numberFormatted,0)},t.clear=function(){this.data=[],this.rowCount=0,this.columnCount=0},t.toString=function(){var e,t,r=g.BLANKSTRING;for(e=0;e<this.rowCount;e+=1)r+='""'===(t=this.qualifier+this.data[e].join(this.qualifier+this.delimiter+this.qualifier)+this.qualifier)?this.eolCharacter:t+this.eolCharacter;return this.rowCount>0&&(r=r.slice(0,r.length-2)),r},e}();function x(){return this.getChartData("csv")}function C(){return this.getCSVData()}y.decodeLiterals=function(e,t){return e!==a&&null!==e&&e.toString?e.replace("{tab}","\t").replace("{quot}",'"').replace("{apos}","'"):t},l=function(e,t){var r;if(c.push(e.label||g.BLANKSTRING),h++,d=Math.max(d,h),e.category!==a){for(r=0;r<e.category.length;++r)l(e.category[r],t);c.pop(),h--}else t.setRow(u++,c.slice()),c.pop(),h--},s=function(e){var t,r,n,i=e,o=i.chart,s=i&&i.category||[],f=s.length,g=[];for(u=1,d=0,h=0,n=new y({separator:o.exportdataseparator,qualifier:o.exportdataqualifier,numberFormatted:o.exportdataformattedval}),t=0;t<f;++t)r=s[t],c=[],l(r,n);for(t=0;t<d;++t)g.push("category");return n.setRow(0,g),{data:n.toString(),error:a,predictedFormat:{multilevel:!0}}},i=function(e,t){var r,i,o,l,c,u,d,h,f,g,p,m,x,C,w,_,k,S,E,A,T,M,F,I,L,N,D,O,R,P,V,B,j,G=e,H=t&&t.jsVars,z=t&&t.args,U=H&&H.instanceAPI,X=G.chart||G.map||G.graph||{},W=Boolean(X.exporterrorcolumns||0),$=G.categories&&G.categories[0]&&G.categories[0].category||[],Y=G.map&&!G.chart||H&&H.instanceAPI&&"geo"===H.instanceAPI.defaultSeriesType,q=!1,K=!1,J=!1,Z=!1,Q=!1,ee=!1,te=b,re={},ne=0,ae=-1;if("multilevelpie"===(z&&z.type))return s(e);if(r=new y({separator:X.exportdataseparator,qualifier:X.exportdataqualifier,numberFormatted:X.exportdataformattedval}),n.formatNumber&&r.numberFormatted&&(te=function(e,t){return n.formatNumber(e,X,t)}),Y)for(D in re.geo=!0,N=(f=H.instanceAPI.getDatasets())&&f[0]&&f[0].components.data||[],r.setRow(0,["Id"," Short Name","Long Name","Value","Formatted Value"]),c=0,N)B=(R=(O=N[D]).config).cleanValue,!0!==O.hidden&&r.setRow(++c,[D,R.shortLabel,R.label,null===B?"":B,R.formattedValue]);else if((f=G.dials&&G.dials.dial||G.pointers&&G.pointers.pointer||G.value)!==a)if(re.gauge=!0,"string"==typeof f)r.set(0,0,te(f)),re.singlevalue=!0,"string"==typeof G.target&&(r.set(0,1,te(G.target)),re.bullet=!0);else for(r.setRow(0,["Id","Value"]),re.multivalue=!0,c=0,d=1,u=f.length;c<u;c+=1,d+=1)r.setRow(d,[d,te(f[c].value)]);else if(f=G.dataset||!(G.data instanceof Array)&&[]){if(re.multiseries=!0,o=1,(g=G.lineset)&&(f=f.concat(g),re.lineset=!0),(p=G.axis)&&(f=f.concat(p),re.multiaxis=!0),!f.length&&G.links&&(f=f.concat({data:G.links})),C=f.length,x=$.length,!(C=f.length)){for(c=0;c<x;c+=1)w=$[c],r.set(c+1,0,w.label||w.name);re.multilevel=!0}for(c=0;c<C;c+=1)for((_=f)[c].dataset?(l=0,m=(_=_[c].dataset).length):(_=f,m=(l=c)+1);l<m&&!q&&!Z&&!J;l+=1)if(k=_[l],ae++,!(U&&(F=U.getDatasets())&&F[ae]&&!1===F[ae].visible)){for(j=(P=U&&F&&F[ae])&&P.config&&P.config.parentYAxis,r.set(0,o,k.seriesname),"string"==typeof k.data&&(re.compactdata=!0,k.data=k.data.split(X.dataseparator||"|")),u=0,d=0,S=k.data&&k.data.length||0;u<S||u<x;u+=1){if(w=$[u],i=d+1,(E=k.data&&k.data[d]||{}).x!==a&&E.y!==a){q=re.xy=!0;break}if(E.from!==a&&E.to!==a){J=re.diagram=!0;break}if(E.open!==a||E.high!==a||E.close!==a||E.low!==a){Q=re.ohlc=!0;break}if(E.rowid!==a&&E.columnid!==a){Z=re.heatmap=!0;break}u<x&&!w.vline&&(r.set(i,0,w.label||w.name),A=v(E?E.value:""),A=isNaN(A)?"":te(A,j),r.set(i,o,A),(K||W||E.errorvalue)&&(K||r.set(0,o+1,"Error"),M=1,r.set(i,o+1,te(E.errorvalue))),d+=1)}M&&(o+=M,M=0),o+=1}g&&(f=f.slice(0,-g.length)),p&&(f=f.slice(0,-p.length))}else if(f=G.data){for(r.set(0,1,X.yaxisname||"Value"),re.singleseries=!0,ee="1"==X.showsumatend,c=0,x=f.length;c<x;c+=1)(E=f[c]).vline||(A=v(E.value?E.value:""),r.setRow(c+1,[E.label||E.name,isNaN(A)?"":(ne+=A,te(A))]));ee&&(re.summation=!0,r.setRow(c+1,[X.sumlabel||"Total",te(ne)]))}if(Q)for(r.clear(),r.setRow(0,["Open","Close","High","Low"]),c=0,i=1,m=(f=G.dataset).length;c<m;c+=1)for(u=0,C=(k=f[c]&&f[c].data||[]).length;u<C;u+=1,i+=1)E=k[u]||{},r.setRow(u+1,[te(E.open),te(E.close),te(E.high),te(E.low)]);else if(q){for(r.clear(),K=!1,M=0,r.setRow(0,["Series","x","y"]),c=0,i=1,m=(f=G.dataset).length;c<m;c+=1)if(!(U&&(F=U.getDatasets())&&F[c]&&!1===F[c].visible))for(u=0,C=(k=f[c]&&f[c].data||[]).length;u<C;u+=1,i+=1)E=k[u]||{},A=[f[c].seriesname,te(E.x),te(E.y)],E.z!==a&&(A.push(te(E.z)),M||(r.set(0,3,"z"),M=1)),(K||W||E.errorvalue!==a||E.horizontalerrorvalue!==a||E.verticalerrorvalue!==a)&&(T=te(E.errorvalue),A.push(E.errorvalue,E.horizontalerrorvalue===a?T:te(E.horizontalerrorvalue),E.verticalerrorvalue===a?T:te(E.verticalerrorvalue)),K||(r.set(0,M+3,"Error"),r.set(0,M+4,"Horizontal Error"),r.set(0,M+5,"Vertical Error")),K=re.error=!0),r.setRow(i,A)}else if(J)for(r.clear(),K=!1,M=0,f=G&&G.links,r.setRow(0,["from","to","value"]),u=0;u<f.length;u+=1,i+=1)A=[(E=f[u]||{}).from,E.to,te(E.value)],E.z!==a&&(A.push(te(E.z)),M||(r.set(0,3,"z"),M=1)),(K||W||E.errorvalue!==a||E.horizontalerrorvalue!==a||E.verticalerrorvalue!==a)&&(T=te(E.errorvalue),A.push(E.errorvalue,E.horizontalerrorvalue===a?T:te(E.horizontalerrorvalue),E.verticalerrorvalue===a?T:te(E.verticalerrorvalue)),K||(r.set(0,M+3,"Error"),r.set(0,M+4,"Horizontal Error"),r.set(0,M+5,"Vertical Error")),K=re.error=!0),r.setRow(i,A);else if(Z){for(r.clear(),I={},L={},c=0,u=1,h=($=G.rows&&G.rows.row||[]).length;c<h;c+=1,u+=1)(w=$[c]).id&&(I[w.id.toLowerCase()]=u,r.set(u,0,w.label||w.id));for(c=0,u=1,h=($=G.columns&&G.columns.column||[]).length;c<h;c+=1,u+=1)(w=$[c]).id&&(L[w.id.toLowerCase()]=u,r.set(0,u,w.label||w.id));for(k=G.dataset&&G.dataset[0]&&G.dataset[0].data||[],V=U&&(F=U.getDatasets())&&F[0]&&F[0].components&&F[0].components.data||[],c=0,h=k.length;c<h;c+=1)i=(E=k[c]).rowid.toLowerCase(),o=E.columnid.toLowerCase(),V[c]&&!1===V[c].visible||(I[i]||(I[i]=r.rowCount,r.set(r.rowCount,0,E.rowid)),L[o]||(L[o]=r.columnCount,r.set(0,r.columnCount,E.columnid)),r.set(I[i],L[o],te(E.value)))}return p=null,g=null,$=null,f=null,r.rowCount>0&&r.get(0,0)===a&&r.set(0,0,X.xaxisname||"Label"),{data:r.toString(),error:a,predictedFormat:re}},o=function(e,t){return(0,f.raiseError)(t,"0604111215","run","csvToJson()","fusionCharts CSV data-handler only supports encoding of data."),e};var w={extension:function(e){return e&&(n=e,e.prototype.getDataAsCSV=C,e.prototype.getCSVData=x),{format:"csv",toJSON:o,fromJSON:i}},name:"csv",type:"transcoder",requiresFusionCharts:!0};t["default"]=w},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n,a=r(191),i=r(241),o="json";function s(e,t,r,s,l){(0,a.triggerEvent)("dataLoadRequested",l,{source:i.sourceName,url:e,dataFormat:o,silent:!!s,config:t,successcallback:r},n,i.onDataLoadRequest,i.onDataLoadRequestCancel)}function l(e){this.setChartDataUrl(e,"jsonurl")}var c={extension:function(e){return e&&(e.prototype.setJSONUrl=l),{format:"jsonurl",toJSON:s}},name:"JSONUrl",type:"transcoder",requiresFusionCharts:!0};t["default"]=c},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t.onDataLoadRequest=function(e,t){var r=e.sender,n=r.__state,a=t.url;r.options.dataSource=t.url,n.dhmXhrObj||(n.dhmXhrObj=new i["default"](u,d));n.dhmXhrObj.get("function"==typeof window.decodeURIComponent?window.decodeURIComponent(a):window.unescape(a),{obj:r,args:t})},t.onDataLoadRequestCancel=function(e,t){var r=e.sender,n=r.__state;(0,o.triggerEvent)("dataLoadRequestCancelled",r,t),n&&n.dhmXhrObj&&n.dhmXhrObj.abort()},t.sourceName=void 0;var a,i=n(r(242)),o=r(191),s="XmlHttpRequest";function l(e,t){e.sender.jsVars.stallLoad=!1,e.sender.setChartData(t.dataSource,t.dataFormat,t.config,t.successcallback,t.silent)}function c(e,t){(0,o.triggerEvent)("dataLoadCancelled",e.sender,t),t.xmlHttpRequestObject.abort()}function u(e,t,r,n){var i=r.args;i.dataSource=e,i.xmlHttpRequestObject=t,i.source=s,i.url=n,(0,o.triggerEvent)("dataLoadRequestCompleted",r.obj,i,a,l,c)}function d(e,t,r){var n=r.obj,a=r.args;a.error=e,a.httpStatus=t.xmlhttp&&t.xmlhttp.status?t.xmlhttp.status:-1,a.xmlHttpRequestObject=t,n._addChartDependency("data",{resolve:function(){return{state:1,msg:n.options.dataLoadErrorMessage,msgStyle:{image:{imageHAlign:n.args.dataLoadErrorMessageImageHAlign||n.options.baseChartMessageImageHAlign,imageVAlign:n.args.dataLoadErrorMessageImageVAlign||n.options.baseChartMessageImageVAlign,imageAlpha:n.args.dataLoadErrorMessageImageAlpha||n.options.baseChartMessageImageAlpha,imageScale:n.args.dataLoadErrorMessageImageScale||n.options.baseChartMessageImageScale},message:{color:n.args.dataLoadErrorMessageColor||n.options.baseChartMessageColor,fontFamily:n.args.dataLoadErrorMessageFont||n.options.baseChartMessageFont,fontSize:n.args.dataLoadErrorMessageFontSize||n.options.baseChartMessageFontSize}}}}}),n._setState(),(0,o.triggerEvent)("dataLoadError",n,a)}t.sourceName=s},function(e,t,r){"use strict";(function(e){t.__esModule=!0,t["default"]=void 0;var n=r(191),a=r(184),i=window,o=parseFloat(i.navigator.appVersion.split("MSIE")[1]),s=!!(o>=5.5&&o<=7),l="file:"===i.location.protocol,c=i.ActiveXObject,u=(!c||!l)&&i.XMLHttpRequest,d={objects:0,xhr:0,requests:0,success:0,failure:0,idle:0},h=function(){var e;if(u)return(h=function(){return d.xhr++,new u})();try{e=new c("Msxml2.XMLHTTP"),h=function(){return d.xhr++,new c("Msxml2.XMLHTTP")}}catch(t){try{e=new c("Microsoft.XMLHTTP"),h=function(){return d.xhr++,new c("Microsoft.XMLHTTP")}}catch(r){e=!1}}return e},f=function(){function t(e,t){this.onSuccess=e,this.onError=t,this.open=!1,d.objects++,d.idle++}t.stats=function(e){return e?d[e]:(0,a.extend2)({},d)};var r=t.prototype;return r.transact=function(r,o,c,u){var f,g,p=this,m=p.xmlhttp,v=t.headers,b=p.onError,y=p.onSuccess,x="POST"===r,C=Object.prototype.hasOwnProperty;-1!==o.search(/^(http:\/\/|https:\/\/)/)&&i.location.hostname!==/(http:\/\/|https:\/\/)([^\/\:]*)/.exec(o)[2]?delete v["X-Requested-By"]:!C.call(v,"X-Requested-By")&&(v["X-Requested-By"]="FusionCharts"),(!m||s||a.isFirefox)&&(m=h(),p.xmlhttp=m),m.onreadystatechange=function(){try{4===m.readyState&&(!m.status&&l||m.status>=200&&m.status<300||304===m.status||1223===m.status||0===m.status?(y&&y(m.responseText,p,u,o),d.success++):b&&(b(new Error("XmlHttprequest Error"),p,u,o),d.failure++),d.idle--,p.open=!1)}catch(e){b&&b(e,p,u,o),i.FC_DEV_ENVIRONMENT&&setTimeout((function(){throw e}),0),d.failure++}};try{if(m.open(x?"POST":"GET",o,!0),m.overrideMimeType&&m.overrideMimeType("text/plain"),x)if("string"==typeof c)f=c;else{for(g in f=[],c)f.push(g+"="+(c[g]+"").replace(/\=/g,"%3D").replace(/\&/g,"%26"));f=f.join("&")}else f=null;for(g in v)m.setRequestHeader(g,v[g]);m.send(f),d.requests++,d.idle++,p.open=!0}catch(w){(0,n.raiseError)(e.core,"1110111515A","run","XmlHttprequest Error",w.message)}return m},r.get=function(e,t){return this.transact("GET",e,void 0,t)},r.post=function(e,t,r){return this.transact("POST",e,t,r)},r.abort=function(){var e=this.xmlhttp;return this.open=!1,e&&"function"==typeof e.abort&&e.readyState&&0!==e.readyState&&e.abort()},r.dispose=function(){var e=this;return e.open&&e.abort(),delete e.onError,delete e.onSuccess,delete e.xmlhttp,delete e.open,d.objects--,null},t}();f.headers={"If-Modified-Since":"Sat, 29 Oct 1994 19:43:31 GMT","X-Requested-With":"XMLHttpRequest","X-Requested-By":"FusionCharts",Accept:"text/plain, */*","Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"};var g=f;t["default"]=g}).call(this,r(6))},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n,a=r(191),i=r(241),o="xml";function s(e,t,r,s,l){void 0===e&&(e=""),void 0===t&&(t={}),(0,a.triggerEvent)("dataLoadRequested",l,{source:i.sourceName,url:e,dataFormat:o,silent:!!s,config:t,successcallback:r},n,i.onDataLoadRequest,i.onDataLoadRequestCancel)}function l(e){this.setChartDataUrl(e,"xmlurl")}function c(){(0,a.raiseWarning)(this,"11171116293","run","JavaScriptRenderer~setDataURL()",'Use of deprecated "setDataURL()". Replace with "setXMLUrl()".'),this.setXMLUrl.apply(this,arguments)}var u={extension:function(e){return e&&(e.prototype.setXMLUrl=l),e&&(e.prototype.setDataURL=c),{format:"xmlurl",toJSON:s}},name:"XMLUrl",type:"transcoder",requiresFusionCharts:!0};t["default"]=u},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n=r(184),a=["series","styledefinition"];var i={extension:function(e){e.addEventListener("beforedataupdate",(function(e,t){t.data=function r(e,t){void 0===t&&(t=!1);var i=typeof e;if("string"===i||"number"===i||"function"===i||"boolean"===i)return e;if(null===e||e===n.UNDEF)return e;if(Array.isArray(e)){for(var o=[],s=0;s<e.length;s++)o.push(r(e[s]));return o}if("object"==typeof e){var l={};for(var c in e){var u=t?c:c.toLowerCase();"data"!==u?l[u]=r(e[c],a.includes(u)):e[c]&&e[c]._dataStore?l[u]=e[c]:l[u]=r(e[c])}return l}}(t.data)}))},name:"IgnoreCaseExt",type:"extension",requiresFusionCharts:!0};t["default"]=i},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a,i=n(r(198)),o=r(199),s=r(192),l=r(191),c=/\s+!important$/,u=/\\!important$/,d=function(e,t){var r,n,a=t;for(n in a=(a+"").toLowerCase(),e)if(e.hasOwnProperty(n)&&a===(n+"").toLowerCase()){r=e[n];break}return r},h=function(e){var t,r;for(t=0,r=e.length;t<r;t++)if("function"==typeof e[t])return!0;return!1},f=function(e){var t,r=[];for(t in e)r[t]=e[t];return r},g=function(e){return e.replace(/^\s\s*/,"").replace(/\s\s*$/,"")},p=function(e){var t,r={};for(var n in e)e.hasOwnProperty(n)&&(r[(t=e[n]).name]=t);return r},m=function(e,t){for(var r=t.length,n=-1;r--;)if(e===t[r])return n=r;return n},v=function(e,t,r,n){void 0===n&&(n=null);var a=e;return"object"!=typeof a&&"object"!=typeof t?null:"object"!=typeof t||null===t?a:("object"!=typeof a&&(a=t instanceof Array?[]:{}),function i(e,t,r,n,a,o){var s,l,c,u,d,h=a,f=o;if(f?(h.push(e),f.push(t)):(h=[e],f=[t]),t instanceof Array)for(s=0;s<t.length;s+=1){try{l=e[s],c=t[s]}catch(g){continue}"object"!=typeof c?r&&void 0===c||(e[s]=c):(null!==l&&"object"==typeof l||(l=e[s]=c instanceof Array?[]:{}),-1!==(d=m(c,f))?l=e[s]=h[d]:i(l,c,r,n,h,f))}else for(s in t){try{l=e[s],c=t[s]}catch(g){continue}null!==c&&"object"==typeof c?"[object Object]"===(u=Object.prototype.toString.call(c))?(null!==l&&"object"==typeof l||(l=e[s]={}),-1!==(d=m(c,f))?l=e[s]=h[d]:"data"===s&&c._dataStore?e[s]=n?n(l,c):c:i(l,c,r,n,h,f)):"[object Array]"===u?(null!==l&&l instanceof Array||(l=e[s]=[]),-1!==(d=m(c,f))?l=e[s]=h[d]:i(l,c,r,n,h,f)):e[s]=n?n(l,c):c:e[s]=n?n(l,c):c}return e}(a,t,r,n),a)},b=function(e){var t=e,r={important:!1,str:""};return t?(t=t.toString(),c.test(t)?(t=t.replace(c,""),r.important=!0):(t=t.replace(u,"!imporant"),r.important=!1),r.str=t,r):r},y=function(e,t){var r=b(e),n=b(t);return r.important&&!n.important?r.str:n.str},x=function(e,t){var r,n,a,i,o,s=t.getAll();for(r in s)n=r.toLowerCase(),a=s[r].toString(),i=b(a),o=b(e[n]),i.important&&!o.important?e[n]=i.str:o.important?e[n]=o.str:void 0===e[n]&&"object"!=typeof s[r]?e[n]="object"!=typeof s[r]?i.str:s[r]:"object"==typeof s[r]&&("undefined"==typeof e[n]&&(e[n]=s[r]),e[n]=v(s[r],e[n],!1,y))},C=function S(e,t){var r,n,a,i,o,s,l,c,u,d=0,g=0,p=function(e,t){var r,n=[].concat(Object.keys(e)),a=t.themeArray,i=Array.isArray(a),o=0;for(a=i?a:a[Symbol.iterator]();;){if(i){if(o>=a.length)break;r=a[o++]}else{if((o=a.next()).done)break;r=o.value}n.push.apply(n,Object.keys(r))}return Array.from(new Set(n))}(e,t),m=Array.isArray(p),v=0;for(p=m?p:p[Symbol.iterator]();;){if(m){if(v>=p.length)break;r=p[v++]}else{if((v=p.next()).done)break;r=v.value}if(void 0===(n=e[r])&&(n=e[r]={}),c="timeseries"===t.type&&t.themeComponents[r]&&h(t.themeComponents[r]),n instanceof Array&&!c)for(s=n.length,o=0;o<s;o+=1)"object"==typeof(i=n[o])&&("category"===r?"true"===i.vline?(a=t.component("vline",d,i))&&(x(i,a),d+=1):(a=t.component("category",g,i,s))&&(x(i,a),g+=1):(a=t.component(r,o,i,s))&&(x(i,a),S(i,a)));else if("object"==typeof n)if(c)if(u=(a=t.component(r,null,n)).getAll(),e[r]=u,/^\d+$/.test(Object.keys(u).join("")))for(u=f(u),e[r]=u,l=0;l<e[r].length;l++)S(e[r][l],a);else S(n,a);else(a=t.component(r,null,n))&&(x(n,a),S(n,a))}},w=function(e){function t(){return e.apply(this,arguments)||this}(0,i["default"])(t,e);var r=t.prototype;return r.configure=function(){!this.config.themeStore&&(this.config.themeStore={})},r.add=function(e){for(var t,r=0,n=e.length;r<n;r+=1)(t=e[r].name)&&(this.config.themeStore[t]=e[r])},r.themify=function(e,r,n,a,i){var o,c,u=r.jsVars,d=e.split(","),h=[],f=d.length;if(this.config.themeStore=p((0,s.getDepsByType)("theme")),f){for(c=0;c<f;c+=1)(o=this.config.themeStore[g(d[c])])&&h.push(t.evaluateThemeJSON(o.theme,r,n,i));h.length?(u.themeObject=new _(h,r,!1,a,n),t.applyTheme(r)):(0,l.raiseWarning)(r,"14051100501","run","api.themes~themify()",'The theme "'+e+'" requested has not been registered.')}},t.evaluateThemeJSON=function(e,t,r,n){var a,i,o={},s=t.jsVars,l=r,c=function(e){var t,r;for(t in e)(r=e[t])instanceof Array?o[t]=v(o[t]||[],r):o[t]="object"==typeof r?v(o[t]||{},r):r};return l=l||t.chartType(),s.themeObject&&e!==s.themeObject&&(s.themeObject.dispose(),delete s.themeObject),c(d(e,"base")),n&&(a=d(e,n)),a&&c(a),l&&(i=d(e,l)),i&&c(i),o},t.applyTheme=function(e){var t=e.jsVars.themeObject,r=t.getThemedJSONData().data;r&&C(r,t)},t}(o.ComponentInterface),_=function(e){function t(t,r,n,a,i){var o,s,l=0;for((o=e.call(this)||this).themeArray=t,o.themeComponents={},o.base={},o.type=i,o.chartInstance=r,o.isChildInstance=Boolean(n),o.themedData=n?null:a,o.length=t.length,s=t.length;l<s;l+=1)o.parse(t[l]);return o}(0,i["default"])(t,e);var r=t.prototype;return r.pushTheme=function(e,t){void 0===t&&(t=!1),e&&(this.themeArray.push(e),this.parse(e,t),this.length+=1)},r.parse=function(e,t){var r,n;if(e instanceof Array)for(r=e.length,n=0;n<r;n++)this._parseSubBlock(e[n],t);else this._parseSubBlock(e,t)},r._parseSubBlock=function(e,r){var n,a,i,o,s=this,l=s.base,c=s.type,u=s.themeComponents,d=s.chartInstance,h=s.isChildInstance;for(n in e)"string"==typeof e[n]||"number"==typeof e[n]?l[n]?(a=b(e[n]),i=b(l[n]),!a.important&&i.important||(l[n]=e[n])):l[n]=e[n]:"timeseries"===c&&h?e[n]instanceof Array&&"palettecolors"!==n&&!r?(u[n]||(u[n]=[]),u[n].push(v([],e[n]))):("object"==typeof e[n]||r)&&(l[n]=e[n]):(u[n]||(u[n]=[]),o=u[n],e[n]instanceof Array?o.push(v([],e[n])):"object"==typeof e[n]?o.push(new t([e[n]],d,!0,{},c)):"function"==typeof e[n]&&o.push(e[n]))},r.mergeWithThemeInstance=function(e){var t,r,n,a=this.base,i=e.base,o=this.themeComponents,s=e.themeComponents;for(n in i)t=b(a[n]),r=b(i[n]),t.important&&!r.important||(a[n]=i[n]);for(n in s)o[n]?o[n]=o[n].concat(s[n]):o[n]=[].concat(s[n]);this.length+=e.length},r.get=function(e){return this.base[e]},r.getAll=function(){return v({},this.base)},r.component=function(e,r,n,a){var i,o,s,l,c=this.chartInstance,u=new t([],c,!0,{},this.type);if(!(s=this.themeComponents[e]))return null;for(i=0,o=s.length;i<o;i+=1)"function"==typeof(l=s[i])?"timeseries"!==this.type?u.mergeWithThemeData(l.call(c,r,n,a),r||0,n):u.mergeWithThemeData(l.call(c,n),r,n,!0):u.mergeWithThemeData(l,r,n);return u},r.mergeWithThemeData=function(e,r,n,a){void 0===a&&(a=!1);var i,o=this,s=r;e instanceof Array?(s=s||0,(i=e[s%=e.length])instanceof t?o.mergeWithThemeInstance(i):"function"==typeof i?o.pushTheme(i.call(parent,s,n,length),a):o.pushTheme(i,a)):e instanceof t?o.mergeWithThemeInstance(e):o.pushTheme(e,a)},r.getThemedJSONData=function(){return{data:this.themedData}},r.dispose=function(){var e,t,r=this,n=r.themeComponents;for(e in n)if(t=n[e].length){for(;t--;)n[e][t].dispose&&n[e][t].dispose();delete n[e]}r.themeComponents=null,r.chartInstance=null,r.base=null,r.themeArray=null,r.isChildInstance=null,r.dataWithoutTheme=null},t}(o.ComponentInterface);(a=new w).configure();var k={extension:function(e){e.addEventListener("internal.dataSanitized",(function(t){var r,n,i,o=t.sender,l=o.getFromEnv("chartInstance"),c=p((0,s.getDepsByType)("theme")),u=o.getFromEnv("dataSource"),d=e.options.defaultTheme,h=u&&(u.chart&&u.chart.theme||u.map&&u.map.theme),f=(d||h)&&(d||"")+","+(h||""),m=f&&f.split(","),b=m&&m.length,y=!1;for(n=0;n<b;n++)i=g(m[n]),c&&""!==i&&c.hasOwnProperty(i)&&(y=!0);y?(u=v({},o.getFromEnv("dataSource")),r=l.chartType(),u.map&&(u.chart=u.map,delete u.map),a.themify(f,l,r,u,"geo"===l.apiInstance.defaultSeriesType&&"geo"),o.addToEnv("dataSource",u)):l.jsVars&&l.jsVars.themeObject&&(l.jsVars&&l.jsVars.themeObject.dispose(),l.jsVars&&delete l.jsVars.themeObject)}))},name:"ThemeEngine",type:"extension",requiresFusionCharts:!0};t["default"]=k},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n=r(184),a={extension:{name:"default",theme:{base:{chart:{labelDisplay:"stagger !important",caption:"Theme Caption \\!important",canvasBgColor:"#56EF22",borderThickness:"5 !important",borderColor:"#E60539",baseFontColor:"#781129"},categories:[{fontColor:"#0F4F40",fontSize:15,category:function(e){return{showLabel:e%2?0:1}},vline:{color:"#000000",thickness:2}}],dataset:[{color:"#8C3146",data:function(e,t){return 8===e&&(t.value=n.BLANKSTRING),{color:Number(t.value)<32e3?"#8C3146":"#FF0000",alpha:"100"}}}],trendlines:[{line:function(e){return e?{color:"#ff0000",thickness:3}:{color:"#ffff00",thickness:3}}}]},pie2d:{chart:{bgColor:"#FF0000"}},msline:{chart:{canvasBgColor:"#ff0000"}},geo:{chart:{canvasBgColor:"#0000ff"}},world:{chart:{canvasBgColor:"#00ff00"}}}},name:"DefaultTheme",type:"theme"};t["default"]=a},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a,i,o=r(184),s=n(r(248)),l=r(196),c=/^#?[0-9a-f]{6}/i,u="",d="default",h=/FFFFFF/i,f=/255,255,255/,g=function(e){var t=e.replace("rgba(","").split(",");return"#"+("000000"+(t[0]<<16|t[1]<<8|t[2]).toString(16)).slice(-6)},p=function(e,t){var r,n,a=[];if("number"==typeof e)return t;for(n=e.split&&e.split(","),r=0;r<n.length;r++)a.push(t);return a.join()},m=function(e){var t;return/rgb/.test(e)?(t=e.match(/[\d\.]+\)/g),parseFloat(t&&t[0])):e.FCcolor?(0,o.getFirstAlpha)(e.FCcolor.alpha):void 0},v=function(e){e.forEach((function(e){return function t(e){e.removeStateCosmetics("highlight",t)}(e)}))},b=function(e,t,r,n,a){var i,s,l,c,d,h;i=g(n.color),l=100*m(n.color),s=a?(0,o.pluck)(r.valuefontcolor,i):i,c=a?(0,o.pluck)(r.valuefontalpha,r.alpha,l):l,i=n.backgroundColor===u?u:g(n.backgroundColor),l=n.backgroundColor===u?0:100*m(n.backgroundColor),isNaN(l)&&(l=0),d=(0,o.toRaphaelColor)({color:a?(0,o.pluck)(r.valuebgcolor,i):i,alpha:a?(0,o.pluck)(r.valuebgalpha,r.alpha,l):l}),i=n.borderColor===u?u:g(n.borderColor),l=n.borderColor===u?u:100*m(n.borderColor),isNaN(l)&&(l=0),h=(0,o.toRaphaelColor)({color:a?(0,o.pluck)(r.valuebordercolor,i):i,alpha:a?(0,o.pluck)(r.valueborderalpha,r.alpha,l):l}),t&&e.setAnimation({el:t,label:"highlightedDataLabel",attr:{fill:(0,o.toRaphaelColor)({color:s,alpha:c}),"text-bound":[d,h,n.borderThickness,n.borderPadding,n.borderRadius,n.borderDash]}})},y=function(e){var t,r,n,a,i,o=e.split(","),s={};for(t=0,r=o.length;t<r;t++)a=(n=o[t].split("="))[0],i=n[1],s[a]=i;return s},x=function(e,t,r){var n,a,i=t.color;return/rgb/.test(e)?(n=(0,o.pluck)(t.alpha,100*m(e)),/rgb/.test(i)&&(i=g(i)),a=r?(0,o.toRaphaelColor)({color:(0,o.pluck)(i,g(e)),alpha:n}):e):e.FCcolor?a=r?(0,o.toRaphaelColor)(function(e,t){var r,n,a={};for(r in e)"alpha"===r?a[r]=t.alpha?p(e[r],t.alpha):e[r]:"color"===r?(-1!==e[r].indexOf(",")&&t.color&&(n=t.color+","+e[r].substring(e[r].indexOf(",")+1)),a[r]=(0,o.pluck)(n||t.color,e[r])):a[r]=e[r];return a}(e.FCcolor,t)):(0,o.toRaphaelColor)(e.FCcolor):c.test(e.color||e)&&(a=r?(0,o.toRaphaelColor)({color:(0,o.pluck)(t.color,e.color,e),alpha:(0,o.pluck)(t.alpha,e.alpha)}):(0,o.toRaphaelColor)({color:e.color||e,alpha:e.alpha})),a},C=function(e,t,r,n,a,i){var s,l,c,u,d,h,f,p,v={},b={};a?(s=(0,o.getColumnColor)(n.color||r.upperColorArr[0].FCcolor.color,n.alpha.toString(),r.upperColorArr[0].FCcolor.ratio,r.upperColorArr[0].FCcolor.angle,i,n.bordercolor||g(r.upperBoxBorder.color),n.borderalpha&&n.borderalpha.toString()||(100*m(r.lowerBoxBorder.color)).toString()),b=(0,o.toRaphaelColor)(s[0]),l=(0,o.getColumnColor)(n.color||r.lowerColorArr[0].FCcolor.color,n.alpha.toString(),r.lowerColorArr[0].FCcolor.ratio,r.lowerColorArr[0].FCcolor.angle,i,n.bordercolor||g(r.lowerBoxBorder.color),n.borderalpha&&n.borderalpha.toString()||(100*m(r.lowerBoxBorder.color)).toString()),v=(0,o.toRaphaelColor)(l[0]),c=x(r.median.color,n,a),h=x(r.lowerQuartile.color,n,a),f=x(r.upperQuartile.color,n,a)):(b=(0,o.toRaphaelColor)(r.upperColorArr[0]),v=(0,o.toRaphaelColor)(r.lowerColorArr[0]),c=r.median.color,u=r.upperBoxBorder.color,d=r.lowerBoxBorder.color,f=r.upperQuartile.color,h=r.lowerQuartile.color),p=t.upperBoxElem,e.setAnimation({el:p,label:"highlightedBoxAnsWhiskerPlot",attr:{fill:b,"drop-shadow":p.attrs["drop-shadow"]&&"none"!==p.attrs["drop-shadow"]?[1,1,3,"rgba(64,64,64,"+m(b)+")",p.attrs[4],p.attrs["drop-shadow"][5]]:"none"}}),p=t.lowerBoxElem,e.setAnimation({el:p,label:"highlightedBoxAnsWhiskerPlot",attr:{fill:v,"drop-shadow":p.attrs["drop-shadow"]&&"none"!==p.attrs["drop-shadow"]?[1,1,3,"rgba(64,64,64,"+m(v)+")",p.attrs[4],p.attrs["drop-shadow"][5]]:"none"}}),p=t.lowerBoxBorderEle,e.setAnimation({el:p,label:"highlightedBoxAnsWhiskerPlot",attr:{stroke:d}}),t.upperBoxBorderEle&&e.setAnimation({el:t.upperBoxBorderEle,label:"highlightedBoxAnsWhiskerPlot",attr:{stroke:u}}),t.lowerQuartileEle&&e.setAnimation({el:t.lowerQuartileEle,label:"highlightedBoxAnsWhiskerPlot",attr:{stroke:h}}),t.upperQuartileEl&&e.setAnimation({el:t.upperQuartileEl,label:"highlightedBoxAnsWhiskerPlot",attr:{stroke:f}}),t.midLineElem&&e.setAnimation({el:t.midLineElem,label:"highlightedBoxAnsWhiskerPlot",attr:{stroke:c}})},w=function(e,t,r){var n,a,i,s,l,c,u,d,h,f=e.getFromEnv("chart"),g=e.getFromEnv("animationManager"),p=(f.config,f.config.dataLabelStyle),m=e.components.data;for(n=0,a=m.length;n<a;n++)if(u=m[n])for(c in i=u.graphics,h=(s=u.config.anchorProps).enabled,l={fillColor:{FCcolor:{alpha:r&&h?(0,o.pluck)(t.anchorbgalpha,t.alpha,s.bgAlpha):s.bgAlpha,color:r&&h?(0,o.pluck)(t.anchorbgcolor,t.color,s.bgColor):s.bgColor}},borderColor:{FCcolor:{alpha:r&&h?(0,o.pluck)(t.borderalpha,t.alpha,s.borderAlpha):s.borderAlpha,color:r&&h?(0,o.pluck)(t.anchorbordercolor,t.color,s.borderColor):s.borderColor}},imageAlpha:r?t.alpha:s.imageAlpha,imageScale:s.imageScale},i)switch((d=!c.match(/error/gi)&&i[c])&&d.type){case"path":g.setAnimation({el:d,label:"highlightedAnchorPlot",attr:{fill:(0,o.toRaphaelColor)(l.fillColor),stroke:(0,o.toRaphaelColor)(l.borderColor)}});break;case"image":g.setAnimation({el:d,label:"highlightedAnchorImagePlot",attr:{opacity:l.imageAlpha/100}});break;case"text":b(g,d,t,p,r)}},_=function(e,t,r,n,a){var i,s=e.getStateCosmetics("default").symbol||{},l=s.fill,u=s.stroke,d=a?(0,o.pluck)(n.color,g(r.text.fill)):g(r.text.fill),p=t.legendItemLine,m=r.symbol.stroke,v=e.getFromEnv("animationManager");p&&m&&(c.test(m)?v.setAnimation({el:p,label:"highlightedLegendItem",attr:{stroke:a?(0,o.toRaphaelColor)({color:(0,o.pluck)(n.color,m),alpha:n.alpha}):m}}):(i=x(m,n,a),v.setAnimation({el:p,label:"highlightedLegendItem",attr:{stroke:i}}))),l&&(l=l.match(c)?a&&!h.test(l)?(0,o.toRaphaelColor)({color:n.color||l,alpha:n.alpha}):l:f.test(l)?l:x(l,n,a)),u&&(u=c.test(u)?a&&!h.test(u)?(0,o.toRaphaelColor)({color:n.color||u,alpha:n.alpha}):u:a&&!f.test(u)&&n.color?(0,o.toRaphaelColor)({color:n.color,alpha:n.alpha}):u),e.setStateCosmetics("highlight",{symbol:{fill:l||"none",stroke:u||"none",opacity:(a?n.alpha:100)/100},text:{fill:(0,o.toRaphaelColor)({color:d,alpha:a?n.alpha:100})}}),e.hasState("hidden")||e.setLegendState("highlight",!0)},k=function(e,t){var r=e.getFromEnv("legend").getItem(t);return r&&r.getGraphicalElement()},S={area:function(e,t,r){var n,a,i,s,l,c,d,h,f,g,p,v,b,x,C,S=this,E=S.getFromEnv("chart"),A=S.getFromEnv("animationManager"),T=E.getFromEnv("legend").getChildren("legendItem")||[],M=arguments[4],F=T.length,I=y(e),L=k(E,M),N=E.config.dataLabelStyle,D=S.getContainer("labelGroup"),O=S.config,R=O.shadow||{},P=R.opacity>0;if(!r&&S.getState("visible")){for(I.alpha=I.alpha||30,a=0;a<F&&(n=T[a]||{}).getId()!==M;a++);D&&A.setAnimation({el:D,label:"highlightedGroup",attr:{opacity:t?I.alpha/100:m(N.color)}}),s=O.plotbordercolor,f=O.plotborderalpha,x=O.plotfillalpha,i=O.plotgradientcolor,v=S.getGraphicalElement("lineElement")||S.getGraphicalElement("splineElement"),d=t?(0,o.pluck)(I.bordercolor,I.color,s):s,I.color&&(g=I.color+(i?","+i:u)),p=O.fillColor.color,l=t?(0,o.pluck)(g,p):p,b=O.plotfillangle,c=t?I.alpha:x,h=t?(0,o.pluck)(I.borderalpha,I.alpha):f,C=!!P&&(t?I.alpha/100:c/100),A.setAnimation({el:v,label:"highlightedAreaPlot",attr:{fill:(0,o.toRaphaelColor)({color:l,alpha:c,angle:b}),stroke:(0,o.toRaphaelColor)({color:d,alpha:h})}}),v.shadow(C),L&&_(n,L,n.parseLegendCosmetics(),I,t),w(S,I,t)}},bubble:function(e,t,r){var n,a,i,s,l,c,u,d,h,f,g,p,v=this,x=v.getFromEnv("chart"),C=v.getFromEnv("animationManager"),w=x.getFromEnv("legend").getChildren("legendItem")||[],S=w.length,E=arguments[4],A=x.config.dataLabelStyle,T=v.getContainer("labelGroup"),M=y(e);if(!1===r&&v.getState("visible")){for(M.alpha||(M.alpha=30),i=v.components.data||[],a=0;a<S&&(n=w[a]||{}).getId()!==E;a++);for(_(n,k(x,E),n.parseLegendCosmetics(),M,t),T&&C.setAnimation({el:T,label:"highlightedGroup",attr:{opacity:t?M.alpha/100:m(A.color)}}),a=0,S=i.length;a<S;a++)(s=i[a])&&(g=s.graphics,c=(l=s.config).colorObj,d=l.is3D,u=g.element,p=g.label,d?(f=t?(0,o.getPointColor)((0,o.pluck)(M.color,c.FCcolor.color),(0,o.pluck)(M.alpha,(0,o.getFirstAlpha)(c.alpha))):c,f=(0,o.toRaphaelColor)(f)):(f=t?(0,o.pluck)(M.color,c.color):c.color,h=t?M.alpha:c.alpha,f=(0,o.toRaphaelColor)({color:f,alpha:h})),u&&C.setAnimation({el:u,label:"highlightedBubblePlot",attr:{fill:f}}),p&&b(C,p,M,A,t))}},pie:function(e,t,r,n){var a,i,l,c,u,d,h,f,g,p,v,x,C,w,S=this,E=n.getFromEnv("chart"),A=n.getFromEnv("animationManager"),T=this,M={},F=arguments[4],I=E.getFromEnv("legend").getChildren("legendItem")||[],L=y(e);if(!1===r){for(L.alpha||(L.alpha=30),i=S.graphics.element,l=S.config,v=0,p=I.length;v<p&&(C=I[v]).getId()!==F;v++);x=k(E,F),_(C,x,C.parseLegendCosmetics(),L,t),u=l.color.color,E=(T=i.data("plotItem")).chart,a=T.style,c=90,h=E.config.is3D,(d=T.center)&&(M={cx:d[0],cy:d[1],r:T.radius}),u=t?(0,s["default"])((0,o.pluck)(L.color,u),L.alpha,c):l.color,w=t?L.alpha:u.alpha,u=(0,o.extend2)(u,M),h?i&&A.setAnimation({el:i,label:"highlightedPiePlot",attr:{color:u.color.split(",")[0],alpha:w}}):i&&A.setAnimation({el:i,label:"highlightedPiePlot",attr:{fill:(0,o.toRaphaelColor)(u)}}),f=S.graphics.label,g=S.graphics.connector,f&&b(A,f,L,a,t),g&&A.setAnimation({el:g,label:"highlightedPieConnectorPlot",attr:{opacity:t?L.alpha/100:m(a.color)}})}},line:function(e,t,r){var n,a,i,s,l,c,d,h=this,f=h.getFromEnv("chart"),g=h.getFromEnv("animationManager"),p=f.getFromEnv("legend").getChildren("legendItem")||[],v=p.length,b=arguments[4],x=f.config.dataLabelStyle,C=y(e),S=k(f,b),E=h.getContainer("labelGroup"),A=h.getContainer("errorPlotGroup"),T=h.config,M=T.linecolor,F=T.alpha||T.lineAlpha,I=T.shadow||{},L=I.opacity>0,N=h.config.lineOb,D=u;if(!r&&h.getState("visible")){for(C.alpha||(C.alpha=30),l=0;l<v&&(n=p[l]||{}).getId()!==b;l++);if(A&&(a=T.errorBarColor&&m(T.errorBarColor),i=t?(0,o.pluck)(C.alpha/100,a):a,g.setAnimation({el:A,label:"highlightedGroup",attr:{opacity:i}})),E&&g.setAnimation({el:E,label:"highlightedGroup",attr:{opacity:t?C.alpha/100:m(x.color)}}),s=h.getGraphicalElement("lineElement"),M=t?(0,o.pluck)(C.color,M):M,F=t?(0,o.pluck)(C.alpha,F):F,c=!!L&&(t?C.alpha/100:F/100),s&&g.setAnimation({el:s,label:"highlightedLinePlot",attr:{stroke:(0,o.toRaphaelColor)({color:M,alpha:F})}}),s&&s.shadow(c),"object"==typeof N&&N)for(D in N)(d=N[D]&&N[D].el)&&g.setAnimation({el:d,label:"highlightedLinePlot",attr:{stroke:t?M:N[D].attr.stroke,"stroke-opacity":F/100}}),d&&d.shadow(c);S&&_(n,S,n.parseLegendCosmetics(),C,t),w(h,C,t)}},boxandwhisker2d:function(e,t,r){var n,a,i,o,s,l,c=this,u=c.getFromEnv("chart"),d=c.getFromEnv("animationManager"),h=c.config.isRoundEdges,f=arguments[4],g=k(u,f),p=c.getContainer("lowerWhiskerGroup"),m=c.getContainer("upperWhiskerGroup"),v=c.getContainer("labelGroup"),b=u.getFromEnv("legend").getChildren("legendItem")||[],x=b.length,w=y(e);if(!1===r&&c.getState("visible")){for(w.alpha||(w.alpha=30),n=0;n<x&&(a=b[n]||{}).getId()!==f;n++);for(_(a,g,a.parseLegendCosmetics(),w,t),p&&d.setAnimation({el:p,label:"highlightedGroup",attr:{opacity:t?w.alpha/100:1}}),m&&d.setAnimation({el:m,label:"highlightedGroup",attr:{opacity:t?w.alpha/100:1}}),v&&d.setAnimation({el:v,label:"highlightedGroup",attr:{opacity:t?w.alpha/100:1}}),n=0,x=(l=c.components.data).length;n<x;n++)s=(o=l[n]).config,i=o.graphics,C(d,i,s,w,t,h)}},heatmap:function(e,t,r,n){var a,i,s,l,c,u,d,h,f,p,v,x=this,C=n.getFromEnv("chart"),w=n.getFromEnv("animationManager"),S=C.config,E=S.dataLabelStyle,A=C.getFromEnv("legend"),T=arguments[4],M=y(e),F=A.getChildren("legendItem")||[];if(!r&&n.getState("visible")&&!1!==x.visible){for(M.alpha||(M.alpha=t?30:100),S=x.config,f=0,h=F.length;f<h&&(v=F[f]).getId()!==T;f++);for(u in p=k(C,T),_(v,p,v.parseLegendCosmetics(),M,t),c=g(S.color),l=m(S.color),a=t?(0,o.pluck)(M.color,c):c,i=t?M.alpha:100*l,(s=(d=x.graphics).element)&&w.setAnimation({el:s,label:"highlightedHeatmapPlot",attr:{fill:(0,o.toRaphaelColor)({color:a,alpha:i})}}),d)"text"===(s=d[u]).type&&b(w,s,M,E,t)}},funnelpyramid:function(e,t,r,n){var a,i,s,l,c,u,d,h,f,p,v,x,C,w,S,E=this,A=n.getFromEnv("chart"),T=n.getFromEnv("animationManager"),M=y(e),F=A.getFromEnv("legend").getChildren("legendItem")||[],I=arguments[4];if(!1===r){for(M.alpha||(M.alpha=30),l=E,C=0,x=F.length;C<x&&(S=F[C]).getId()!==I;C++);w=k(A,I),_(S,w,S.parseLegendCosmetics(),M,t),i=l.style,v=l.color,c=g(v),p=m(v),u=t?(0,o.pluck)(M.color,c):c,d=t?M.alpha:100*p,s=E.getGraphicalElement("graphic"),h=E.getGraphicalElement("dataLabel"),f=E.getGraphicalElement("connector"),a=E.style,s&&T.setAnimation({el:s,label:"highlightedFunnelPyramidPlot",attr:{fill:(0,o.toRaphaelColor)({color:u,alpha:d})}}),h&&b(T,h,M,a,t),f&&T.setAnimation({el:f,label:"highlightedFunnelPyramidConnectorPlot",attr:{opacity:t?M.alpha/100:m(i.color)}})}},sankey:function(e,t,r){var n,a,i=e.getLinkedParent(),o=i.getChildren("legend")[0];e.getChildren("nodes").forEach((function(e){n=o.getItem(e.config.legendItemId),e.config.legendItemId===t?(r?e.onFocusCallback():e.onFocusOutCallback(),a=!1):a=!0,a=a&&r,_(n,k(i,t),n.parseLegendCosmetics(),{alpha:30},a)}))},"default":function(e,t,r){var n,a,i,s,l,c,d,h,f,g,p,v,x,C,w,S=this,E=S.config,A=S.getFromEnv("chart"),T=S.getFromEnv("animationManager"),M=A.config,F=M.dataLabelStyle,I=M.useroundedges,L=A.config.is3D,N=y(e),D=arguments[4],O=k(A,D),R=S.getContainer("labelGroup"),P=S.getContainer("errorPlotGroup"),V=u,B=A.getFromEnv("legend"),j=B.getChildren("legendItem")||[],G=j.length,H=E.showShadow;if(!1===r&&!0===S.getState("visible")){for(N.alpha||(N.alpha="30"),p=S.components.data||[],a=0;a<G&&(C=j[a]||{}).getId()!==D;a++);for(O&&_(C,O,C.parseLegendCosmetics(),N,t),R&&T.setAnimation({el:R,label:"highlightedGroup",attr:{opacity:t?N.alpha/100:m(F.color)}}),P&&(l=E.errorBarColor&&m(E.errorBarColor),c=t?(0,o.pluck)(N.alpha/100,l):l,T.setAnimation({el:P,label:"highlightedGroup",attr:{opacity:c}})),a=0,G=p.length;a<G;a++)(v=p[a])&&v.graphics&&(g=(M=v.config).colorArr[0],w=(i=M.colorArr[1]).FCcolor.alpha,V=-1!==(h=(n=g.FCcolor.color).indexOf(","))&&N.color?N.color+n.substring(h):(0,o.pluck)(N.color,n),f=L?w:(0,o.pluck)(N.borderalpha,N.alpha,w),0===(0,o.pluckNumber)(w)&&(f="0"),d=t?(0,o.getColumnColor)(V,N.alpha,g.FCcolor.ratio,g.FCcolor.angle,I,(0,o.pluck)(N.bordercolor,i.FCcolor.color),f,!1,L):[g,i],(s=v.graphics.element)&&(n=(0,o.toRaphaelColor)(d[0]),i=(0,o.toRaphaelColor)(d[1]),T.setAnimation({el:s,label:"highlightedDefaultPlot",attr:{stroke:i,fill:n}}),s.shadow({opacity:H?(0,o.getFirstAlpha)(d[0].alpha)/100:0})),x=v.graphics.label,b(T,x,N,F,t))}}},E=function(e){e&&i.add(e)},A=function(e,t){var r=e.sender.apiInstance;!1!==r.hasInteractiveLegend&&!1!==r.highlightEnabled&&i.applyEffect(r,t,!0)},T=function(e,t){var r=e.sender.apiInstance;!1!==r.hasInteractiveLegend&&!1!==r.highlightEnabled&&i.applyEffect(r,t,!1)},M=function(e,t){var r=e.sender.apiInstance;r.addJob("plothighlighteffect",(function(){r.config.showLegend&&!1!==r.hasInteractiveLegend&&!1!==r.highlightEnabled&&i.applyEffect(r,t,!0)}),l.priorityList.postRender)};var F={extension:function(e){(i=new(function(){function t(){this.effectStore={},this.eventHandlers={}}var r=t.prototype;return r.add=function(e){this.effectStore[e.name]=e},r.attachEventHandlers=function(t,r){this.eventHandlers[t]||(this.eventHandlers[t]={},this.eventHandlers[t].listenerFn=e.addEventListener(t,r))},r.applyEffect=function(e,t,r){var n,i,s,l,c,h,f,g,p,m,b,y,x=this.effectStore,C=e.getFromEnv("chart-attrib"),w=e.config.defaultDatasetType,_=C.plothighlighteffect&&C.plothighlighteffect.toLowerCase(),k=e.getDatasets(),S=e.config.isSingleSeries?k[0].components.data:k,E=(0,o.pluck)(t.itemId,t.legendItemId,t.legendItemIndex),A=u;if(v(e.getFromEnv("legend").getChildren("legendItem")),"funnel"!==e.getName()&&"Pyramid"!==e.getName()||(S=k[0].getChildren("data")),e.getFromEnv("animationManager").setAnimationState("plotHighlighter"),_&&(y=(_=_.replace(/\s+/g,"").split("|"))[0],A=_[1]||""),y&&x[y])if("HeatMap"===e.getName())for(n=e.getFromEnv("colorRange"),b=function(e){var t,r,n=f.getChildren("legendItem"),a=n&&n.length;for(t=0;t<a;++t)if(n[t].config.datasetObj.code===e){r=n[t].getId();break}return r},p=(f=e.getFromEnv("legend")).getItem(E).config.datasetObj,c=0;c<S.length;c++)i=(l=S[c]).config.value,(m=n.getColorObj(i)).outOfRange||(p.code===m.code?x[y][w].call(l,A,r,!0,k[0],E):x[y][w].call(l,A,r,!1,k[0],b(m.code)));else if("sankey"===e.getName())x[y].sankey(k[0],E,r);else for(c=0,g=S.length;c<g;c++)w=(w=(l=S[c]).getName&&l.getName()||w).toLowerCase(),(s=(0,o.pluck)(l.config.itemId,l.config.legendItemId))!==a&&(h=s===E,x[y][w]?x[y][w].call(l,A,r,h,k[0],s):x[y][d].call(l,A,r,h,k[0],s))},t}())).attachEventHandlers("legenditemrollover",A),i.attachEventHandlers("legenditemrollout",T),i.attachEventHandlers("legenditemclicked",M),E({name:"fadeout",area:S.area,radar:S.area,bubble:S.bubble,pie2d:S.pie,line:S.line,spline:S.line,splinearea:S.area,pie3d:S.pie,zoomline:S.line,funnelpoint:S.funnelpyramid,pyramidpoint:S.funnelpyramid,scatter:S.line,selectscatter:S.line,dragline:S.line,dragarea:S.area,realtimearea:S.area,realtimeline:S.line,realtimelinedy:S.line,realtimestackedarea:S.area,errorline:S.line,errorscatter:S.line,stepline:S.line,doughnut2d:S.pie,doughnut3d:S.pie,heatmap:S.heatmap,boxandwhisker2d:S.boxandwhisker2d,multiaxisline:S.line,sankey:S.sankey,"default":S["default"]})},name:"PlotHighlighter",type:"extension",requiresFusionCharts:!0};t["default"]=F},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n=r(184),a=function(e,t,r,a){var i,o,s,l,c,u,d=(0,n.getFirstColor)(e),h=(0,n.getFirstAlpha)(t);return r<100&&n.hasSVG?a?(c=(0,n.getDarkColor)(d,Math.floor(100*(85-.2*(100-r)))/100),u=(0,n.getLightColor)(d,Math.floor(100*(100-.5*r))/100),i={color:c+n.COMMASTRING+u+n.COMMASTRING+u+n.COMMASTRING+c,alpha:h+n.COMMASTRING+h+n.COMMASTRING+h+n.COMMASTRING+h,radialGradient:!0,gradientUnits:"userSpaceOnUse",r:r}):(o=Math.floor(.85*(100-.35*r)*100)/100,s=(0,n.getDarkColor)(d,o),l=Math.floor(.5*(100+r)*100)/100,i={color:(0,n.getLightColor)(d,l)+n.COMMASTRING+s,alpha:h+n.COMMASTRING+h,ratio:r+","+(100-r),radialGradient:!0,gradientUnits:"userSpaceOnUse"}):i={color:d+n.COMMASTRING+d,alpha:h+n.COMMASTRING+h,ratio:"0,100"},i};t["default"]=a},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(250)),i=r(184),o="__FC_tooltipText",s=function(e,t,r){var n=(0,i.getMouseCoordinate)(t.universe,(0,i.getTouchEvent)(r),t.chart),a=11,s=11,l=n.chartX,u=n.chartY;this.applyScale&&(this._updateScalingValues(),a/=this.scaleFactor.scaleX,s/=this.scaleFactor.scaleY),l+=a,u+=s,c._draw.call(t,l,u,this.data(o),e)},l=function(e){c._hide(e)},c=function(){function e(t,r){var n=this;n.config={},n.universe=t,this.scaleFactor=(0,i.getScalingValue)(t),this.applyScale=0,this.chart=r,this.restrictWithinCanvas={left:!1,right:!1,top:!1,bottom:!1},n.toolTips={implicit:[],explicit:[]},n.hideImplicitToolTip=function(t){var r=n.lastActiveToolip;r&&t.target!==r.getData("targetElement").node&&(e._hide(r),n.config.lastActiveToolip=i.UNDEF)},n.config.positioningArr=[],n.config.canvasArr=[],t.FusionCharts.jsVars.fcObj.addEventListener("resized",n._updateAllToolTipBounds.bind(n))}var t=e.prototype;return t.setRestrictionWithinCanvas=function(e){void 0===e&&(e={}),Object.assign(this.restrictWithinCanvas,e)},t.getRestrictionWithinCanvas=function(){return this.restrictWithinCanvas},t._updateAllToolTipBounds=function(){var e,t,r=this.config,n=function(t){t.universeBounds&&t.universeBounds.canvas&&(e=r.canvasArr.indexOf(t.universeBounds.canvas)),t.setUniverseBounds(r.positioningArr[e])},a=this.toolTips;for(t in a)a[t].forEach(n)},t._setRelativePosition=function(e){var t=this.config,r=t.canvasArr,n=t.positioningArr,a=r.indexOf(e.canvas);-1===a?(r.push(e.canvas),n.push(e)):(r[a]=e.canvas,n[a]=e)},t._createToolTip=function(e,t){var r,n=this.config;return(r=new a["default"](this.universe,n.positioningArr[n.canvasArr.indexOf(t)])).setRestrictionWithinCanvas(this.restrictWithinCanvas),r.setStyle(this.config.tooltipStyle),this.toolTips[e].push(r),r},t.enableToolTip=function(e,t,r){var n,a,i=this,c=i.toolTips.implicit,u=c.length;return t?e.data(o)?(u>0&&c.some((function(r){return!(!(n=r).getData("active")||n.data.targetElement!==e)&&(n.show(t),!0)})),e.data(o,t),i):(n=i._getAvailableToolTip("implicit",r),i.disableToolTip(e),e.data(o,t),e.data("__FC_onTooltipMove",s.bind(e,n,i)),e.data("__FC_onTooltipOut",l.bind(e,n)),e.data("__FC_onTooltipOver",(a=e,function(t){i.draw(t,e.data(o),n),n.setData("targetElement",a),i.config.lastActiveToolip=n})),e.on("fc-mousemove",e.data("__FC_onTooltipMove")),e.on("fc-mouseout",e.data("__FC_onTooltipOut")),e.on("fc-mouseover",e.data("__FC_onTooltipOver")),i):(i.disableToolTip(e),i)},t.disableToolTip=function(e){var t=e.data("__FC_onTooltipOut"),r=e.data("__FC_onTooltipMove"),n=e.data("__FC_onTooltipOver");return r&&e.off("fc-mousemove",r),t&&e.off("fc-mouseout",t),n&&e.off("fc-mouseover",n),e.removeData(o),this},t._updateScalingValues=function(){var e=this.universe;this.scaleFactor=(0,i.getScalingValue)(e)},t.draw=function(t,r,n,a){var o,s,l=11,c=11,u=(0,i.getMouseCoordinate)(this.universe,(0,i.getTouchEvent)(t),this.chart),d=n&&!n.disposed?n:this._getAvailableToolTip("explicit",a);return this.applyScale&&(this._updateScalingValues(),l/=this.scaleFactor.scaleX,c/=this.scaleFactor.scaleY),o=u.chartX,s=u.chartY,o+=l,s+=c,e._draw.call(this,o,s,r,d),d},t.drawAt=function(t,r,n,a,i){this.applyScale&&this._updateScalingValues();var o=a&&!a.disposed?a:this._getAvailableToolTip("explicit",i);return e._draw.call(this,t,r,n,o),o},e._draw=function(e,t,r,n){var a=this.config;(0,i.isSimilarObject)(n.previousStyle,a.tooltipStyle)||(n.setStyle(a.tooltipStyle),n.previousStyle=Object.assign({},a.tooltipStyle)),n.show(r),n.update(e,t)},t._getAvailableToolTip=function(e,t){for(var r,n=this.toolTips[e],a=0,i=n.length;a<i;a++)if(!1===(r=n[a]).getData("active"))return r;return this._createToolTip(e,t)},t.setStyle=function(e){var t,r=this.config;for(var n in t=r.tooltipStyle={},e)"showToolTipShadow"===n?e[n]?t.boxShadow="1px 1px 3px rgba(64,64,64,0.4)":t.boxShadow="none":t[n]=e[n]},t.hide=function(t){return e._hide(t),this},t.hideAll=function(){var t,r;for(t in this.toolTips)for(r=0;r<this.toolTips[t].length;r++)e._hide(this.toolTips[t][r])},t.setApplyScale=function(e){this.applyScale=e},e._hide=function(e,t){e&&(t?e.dispose():e.hide())},e}(),u={extension:c,name:"ToolTipController",type:"plugin"};t["default"]=u},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n=r(184),a="fusioncharts-div",i="#545454",o="3px",s="10px",l="hidden",c="1px",u="#000000",d="nowrap",h="normal",f="absolute",g="solid",p="#ffffff",m="none",v="hidden",b="none",y="left, top",x="auto",C=function(e){var t=e.getBoundingClientRect();return{left:0,top:0,right:t.width||t.right-t.left,bottom:t.height||t.bottom-t.top}},w=function(){function e(e,t){this.text=n.BLANKSTRING,this.x=0,this.y=0,this.visibleWidth=0,this.universe=e,this.setUniverseBounds(t||C(e)),this.data={active:!1,target:!1},this.createElement(e),this.previousStyle={},this.restrictWithinCanvas={left:!1,right:!1,top:!1,bottom:!1}}var t=e.prototype;return t.setUniverseBounds=function(e){this.universeBounds=e||this.universe&&C(this.universe)},t.setRestrictionWithinCanvas=function(e){void 0===e&&(e={}),Object.assign(this.restrictWithinCanvas,e)},t.getRestrictionWithinCanvas=function(){return this.restrictWithinCanvas},t.createElement=function(e){var t=this.element=document.createElement("div");return t.setAttribute("class","fc__tooltip"),t.className+=" "+a,t.innerHTML=this.text,e.appendChild(this.setDefaultStyle()),t},t.setDefaultStyle=function(){var e=this.element;return e.setAttribute("style",""),e.style.color=i,e.style.padding=o,e.style.fontSize=s,e.style.overflow=l,e.style.borderWidth=c,e.style.borderColor=u,e.style.whiteSpace=d,e.style.position=f,e.style.borderStyle=g,e.style.backgroundColor=p,e.style["user-select"]=m,e.style["-ms-user-select"]=m,e.style["-moz-user-select"]=m,e.style["-webkit-user-select"]=m,e.style["-webkit-touch-callout"]=m,e.style.top=this.x+"px",e.style.left=this.y+"px",e.style.visibility=v,e.style["pointer-events"]=b,e},t.setData=function(e,t){this.data[e]=t},t.getData=function(e){return this.data[e]},t.setStyle=function(e){var t,r=this.element.style;for(t in this.setDefaultStyle(),e)r[t]=e[t]},t.show=function(e){this.text!==e&&(this.text=e,this.element.innerHTML=this.text),this.setData("active",!0),"visible"!==this.element.style.visibility&&(this.element.style.visibility="visible"),this.element.style["will-change"]=y,this.element.style["max-width"]=this.universeBounds.right-this.universeBounds.left-12+"px"},t.update=function(e,t){void 0===e&&(e=this.x),void 0===t&&(t=this.y);var r=this.universeBounds,n=(this.restrictWithinCanvas.bottom?r.bottom:this.universe.clientHeight)-12,a=(this.restrictWithinCanvas.right?r.right:this.universe.clientWidth)-12,i=(this.restrictWithinCanvas.left?r.left:0)+12,o=this.element,s=o.offsetWidth,l=o.offsetHeight,c=o.style;e+s<a?(c.left=e+"px",c.whiteSpace=d):s<a?e-s>=i?c.left=e-s-12+"px":(c.left=a-s+"px",c.whiteSpace=h):(c.left=r.left+"px",c.whiteSpace=h),c.top=t+l<n?t+"px":l<n&&t-l<=n?t-l+"px":n-l+"px"},t.hide=function(){this.y=0,this.x=0,this.x=n.BLANKSTRING,this.setData("active",!1),this.setData("target",!1),this.element.style.visibility=v,this.element.style["will-change"]=x,this.element.innerHTML=n.BLANKSTRING,this.text=n.UNDEF},t.dispose=function(){this.hide(),this.universe.removeChild(this.element),this.universe=n.UNDEF,this.disposed=!0},e}();t["default"]=w},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n=r(184),a={treemap:!0,scatter:!0,bubble:!0,errorscatter:!0,errorline:!0,errorbar2d:!0,candlestick:!0,stackedcolumn3d:!0,stackedbar3d:!0,mscolumnline3d:!0,mscombi3d:!0,mscolumn3dlinedy:!0,stackedcolumn3dline:!0,stackedcolumn3dlinedy:!0},i=function(e){return a[e.getName().toLowerCase()]},o=function(e,t){return e+'<div style="margin: 0;">'+t+"</div>"},s=function(e,t){return t.hovered?e+1:e},l=function(e){return e.originalPlotColor||e.plotColor||e.color||"#000000"},c=function(e,t){return t.getJSONIndex()-e.getJSONIndex()};function u(e){var t=e.sender.getFromEnv("chart"),r=t.config.tooltipgrayoutcolor,a=t.config.plotcolorintooltip,i=t.getFromEnv("toolTipController"),u=t.getDatasets().sort(c),d=t.getFromEnv("consolidated-tooltip"),h=(0,n.getMouseCoordinate)(e.sender.getFromEnv("chart-container"),e.originalEvent,t),f=h.chartX,g=h.chartY,p=!1,m=u.map((function(e){return e.getPlotInCategoryAt(f,g)})).filter(Boolean),v=m.reduce(s,0),b=m.map((function(e){var t=e.pointObj.config,i=t.finalTooltext||t.toolText,o=l(t);return v>0?!p&&e.hovered?(i='<div style="display: inline-block;">'+i+"</div>",p=!0):(o=r,i='<div style="color: '+(0,n.hashify)(r)+'; display: inline-block;">'+i+"</div>"):i='<div style="display: inline-block;">'+i+"</div>",a?'<div style="color: '+(0,n.hashify)(o)+'; display: inline-block;">■ </div>'+i:i})),y=[].concat(b).reverse().reduce(o,"");this.isWithinCanvas(f,g)&&y?d?i.draw(e.originalEvent,y,d):t.addToEnv("consolidated-tooltip",i.draw(e.originalEvent,y)):d&&i.hide(d)}function d(e){var t=e.sender.getFromEnv("chart"),r=t.getFromEnv("consolidated-tooltip");r&&t.getFromEnv("toolTipController").hide(r)}function h(e){var t=this.apiInstance,r=t.getDatasets().sort(c),a=t.config.plotcolorintooltip,i=t.getFromEnv("toolTipController"),s=t.getFromEnv("consolidated-tooltip"),u=r.map((function(t){var r=t.components.data;return r[e]&&r[e]})).filter(Boolean),d=u[0]&&{x:u[0].config._Px-u[0]._width,y:u[0].config._Py,width:u[0].config._width},h=u.map((function(e){var t=e.config,r=t.finalTooltext||t.toolText;return a?'<div style="color: '+(0,n.hashify)(l(t))+'; display: inline-block;">■ </div><div style="display: inline-block;">'+r+"</div>":'<div style="display: inline-block;">'+r+"</div>"})).reduce(o,"");h&&d?s?i.drawAt(d.x,d.y,h,s):t.addToEnv("consolidated-tooltip",i.drawAt(d.x,d.y,h)):s&&i.hide(s)}var f={extension:function(e){e.addEventListener("predraw",(function(e){var t;if(e.sender.getType&&"chartAPI"===e.sender.getType()&&!i(e.sender)){var r=(t=e.sender).getChildren("canvas");t.getFromEnv("chartInstance").drawConsolidatedToolTip=h,r&&r.forEach((function(e){if(!t.config.drawTrendRegion||!t.config.showtooltip)return e.removeEventListener("fc-mouseover",u),e.removeEventListener("fc-mousemove",u),e.removeEventListener("fc-mouseout",d),void e.setState("consolidatedTooltipEventListenerAttached",!1);!e.getState("consolidatedTooltipEventListenerAttached")&&t.config.showtooltip&&(e.addEventListener("fc-mouseover",u),e.addEventListener("fc-mousemove",u),e.addEventListener("fc-mouseout",d),e.setState("consolidatedTooltipEventListenerAttached",!0))}))}}))},name:"ConsolidatedToolTip",type:"extension",requiresFusionCharts:!0};t["default"]=f},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(253)),i=r(184),o=function(e){e.sender.apiInstance.getChildren("alertManager")&&e.sender.apiInstance.getChildren("alertManager")[0].processRTData(e.data)},s=function(e){if("dataset"===e.sender.getType()){var t,r,n=e.sender,a=n.config,o=a.JSONData,s=n.getFromEnv("chart").getChildren("alertManager");if(!s||!o)return;t=(0,i.pluckNumber)(o&&o.checkforalerts,1),(r=(s=s[0]).config||(s.config={})).datasetMap=r.datasetMap||{},r.datasetMap[a.index]=t}},l=function(e){"chartAPI"===e.sender.getType()&&e.sender.registerFactory("alertManager",(function(e){e.getChildren("alertManager")?e.getChildren("alertManager")[0].configure():(0,i.componentFactory)(e.getFromEnv("chart"),a["default"],"alertManager",1,[{}])}))};var c={extension:function(e){e.addEventListener("instantiated",l),e.addEventListener("updateDataReceived",o),e.addEventListener("postConfigure",s)},name:"alertManagerLinker",type:"extension",requiresFusionCharts:!0};t["default"]=c},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(184),o=r(199),s=function(e){function t(){var t;return(t=e.call(this)||this).pIndex=1,t.linkedItems={chart:{}},t}(0,a["default"])(t,e);var r=t.prototype;return r.getType=function(){return"extension"},r.getName=function(){return"AlertManager"},r.configure=function(){var e,t,r,n=this.getFromEnv("dataSource"),a=n&&n.alerts&&n.alerts.alert,i=this.getFromEnv("number-formatter"),o=this.config||(this.config={});if(a&&a.length)for(o.alertArr=a,e=a.length,t=0;t<e;t+=1)(r=a[t]).minvalue=i.getCleanValue(r.minvalue),r.maxvalue=i.getCleanValue(r.maxvalue);else o.alertArr=[]},r.processRTData=function(e){var t,r,n,a,i,o,s=this.config,l=this.getFromEnv("number-formatter");if(e&&e.dataset&&e.dataset.length)for(n=e.dataset.length,t=0;t<n;t+=1)if((a=e.dataset[t]).data&&a.data.length){if(s.datasetMap&&0===s.datasetMap[t])continue;for(i=a.data.length,r=0;r<i;r+=1)null!==((o=a.data[r])&&l.getCleanValue(o.value))&&this._doAlert(l.getCleanValue(o.value))}},r._doAlert=function(e){var t,r,n,a=this.getLinkedParent(),o=this.config.alertArr,s=o.length;for(r=0;r<s;r+=1)if(n=(t=o[r]).action&&t.action.toLowerCase(),t.minvalue<=e&&t.maxvalue>=e){if("1"!==t.occuronce||!t.hasOccurred){switch(t.hasOccurred=!0,t.state="1",n){case"calljs":setTimeout((0,i.pseudoEval)(t.param));break;case"showannotation":a.showAnnotation&&a.showAnnotation(t.param)}a.fireChartInstanceEvent("AlertComplete",{alertValue:e,alertMaxValue:t.maxvalue,alertMinValue:t.minvalue})}}else"showannotation"===n&&"1"===t.state&&a.hideAnnotation&&a.hideAnnotation(t.param),t.state="2"},t}(o.ComponentInterface);t["default"]=s},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(255)),i=r(257);var o={extension:function(e){e.addEventListener("preconfigure",(function(e){var t=e.sender,r=t.getFromEnv("chart");i.allowedCharts[r&&r.getName()]&&("dataset"===t.getType()&&"cartesianStackGroup"!==t.getLinkedParent().getName()?(t.setState("applySkippingOnConf",!0),a["default"].dataSkipping({component:t,datasetType:t.getName(),compType:"dataset"})):"cartesianStackGroup"===t.getName()&&(t.setState("applySkippingOnConf",!0),a["default"].dataSkipping({component:t,datasetType:t.getName(),compType:"group"})))})),e.addEventListener("preattributeprepared",(function(e){var t=e.sender.getFromEnv&&e.sender.getFromEnv("chart");if(i.allowedCharts[t&&t.getName()])if("dataset"===e.sender.getType()){var r=e.sender,n=r.getFromEnv("canvasConfig"),o=r.getFromEnv("chart").isBar?n.canvasHeight:n.canvasWidth;"cartesianStackGroup"!==r.getLinkedParent().getName()&&(r.getState("applySkippingOnConf")?r.setState("applySkippingOnConf",!1):a["default"].dataSkipping({component:r,compType:"dataset",datasetType:r.getName(),width:o}))}else if("cartesianStackGroup"===e.sender.getName()){var s=e.sender,l=s.getFromEnv("canvasConfig"),c=s.getFromEnv("chart").isBar?l.canvasHeight:l.canvasWidth,u=Object.keys(s.getChildren())[0];s.getState("applySkippingOnConf")?s.setState("applySkippingOnConf",!1):a["default"].dataSkipping({component:s,compType:"group",datasetType:s.getChildren(u)[0].getName(),width:c})}})),e.addEventListener("dataplotdragend",(function(e,t){if(e.sender.getType&&"dataset"===e.sender.getType()){var r=e.sender,n=r.getSkippingInfo&&r.getSkippingInfo();n&&n.skippingApplied&&a["default"].updateDragMap({component:r,compType:"dataset",evenType:"dataplotdragend",eventArgs:t})}}))},name:"DataSkipping",type:"extension",requiresFusionCharts:!0};t["default"]=o},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(256)),i=r(257),o=r(184),s=1.5,l=[],c=0,u={},d=[];function h(e){return void 0===e&&(e=[]),e.filter((function(e){return!l[e]}))}function f(e,t){for(var r=0,n=[],a=1;a<u.noOfPlotBins;++a)e(r,(r+=u.plotsPerBin)-1,t,d,n);return e(r,t.length-1,t,d,n),d=[],n}function g(e){var t,r,n,o,s,g,p,m=i.filterType[e.datasetType],v=e.component,b=v.getSkippingInfo&&v.getSkippingInfo(),y=b&&b.draw.slice(0),x=b&&(b.labelDraw||[]).slice(0),C={},w=[],_=v.getFromEnv("xAxis").getTicksLen();if((!y||!y.length)&&(void 0===(p=c)&&(p=0),y=Array.from(new Array(p),(function(e,t){return t}))),(!x||!x.length)&&(x=y),d=b&&b.dragHashMap,"cartesianStackGroup"===v.getName()){for(o=u.jsonData.length,t=0;t<_;++t){for(n=0,r=0;r<o;++r)g=u.jsonData[r].data,n+=Number(g[t]?g[t].value:0);w.push({value:n})}C.draw=f((0,a["default"])(m),w)}else C.draw=f((0,a["default"])(m),u.jsonData.data);return C.draw.forEach((function(e){l[e]=!0})),C.drawOnlyMap=l,C.hide=h(y),s=function(e){var t,r=u.labelBinSize/u.plotBinSize,n=[],a=[],i=e.length;for(t=0;t<i;t++)t%r||(n.push(e[t]),a[e[t]]=!0);return{drawableLabelIndices:n,labelHashMap:a}}(C.draw),C.labelDraw=s.drawableLabelIndices,l=C.labelDrawOnlyMap=s.labelHashMap,C.hideLabel=h(x),C.plotsPerBin=u.plotsPerBin,C.skippingApplied=!0,C.dragHashMap=[],C.prevDrawInfo=y.slice(0),C}var p={dataSkipping:function(e){void 0===e&&(e={});var t=e.component;!function(e){void 0===e&&(e={});var t,r,n,a,i,d=e.component,h=e.compType,f=d.getFromEnv("chartConfig"),g=d.getFromEnv("dataSource").chart||{},p=(0,o.pluckNumber)(g.plotbinsize,f.plotbinsize);return u.plotBinSize=p,u.labelBinSize=(0,o.pluckNumber)(g.labelbinsize,f.labelbinsize),u.jsonData=d.config.JSONData,"group"===h?(t=u.jsonData[0].data,c=d.config.stackValues&&d.config.stackValues.length||0):"dataset"===h&&(t=u.jsonData.data,c=d.components.data&&d.components.data.length||0),r=t&&t.length,l=[],u.width=i=d.getFromEnv("chart").isBar?e.height||d.getFromEnv("chartHeight"):e.width||d.getFromEnv("chartWidth"),n=r/i,a=Math.floor(n*p),n>=s&&a>1&&(u.plotsPerBin=a,u.noOfPlotBins=Math.ceil(r/u.plotsPerBin),!0)}(e)?t.setSkippingInfo&&t.setSkippingInfo():t.setSkippingInfo&&t.setSkippingInfo(g(e))},updateDragMap:function(e){void 0===e&&(e={});var t=e.component,r=e.eventArgs,n=t.getSkippingInfo&&t.getSkippingInfo()||{};r&&(n.dragHashMap[r.dataIndex]=r.endValue)}};t["default"]=p},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n=function(e,t,r,n,a){void 0===n&&(n=[]);for(var i,o=r[t].value,s=t,l=t-1;l>=e;--l)(i=void 0!==n[l]?n[l]:r[l].value)>o&&(o=i,s=l);return a.push(s),a},a=function(e,t,r,n,a){void 0===n&&(n=[]);for(var i,o=r[t].value,s=t,l=r[t].value,c=t,u=t-1;u>=e;--u)(i=void 0!==n[u]?n[u]:r[u].value)>o?(o=i,s=u):i<l&&(l=i,c=u);var d=c<s?[c,s]:[s,c];return c=d[0],s=d[1],a.push(c),c!==s&&a.push(s),a};t["default"]=function(e){var t={maxOnly:n,minMax:a};return t[e]||t.maxOnly}},function(e,t,r){"use strict";t.__esModule=!0,t.filterType=t.allowedCharts=void 0;t.filterType={Column:"maxOnly",line:"minMax",area:"minMax"},t.allowedCharts={Column2D:!0,Line:!0,Area2D:!0,Bar2D:!0,MSColumn2D:!0,MSLine:!0,MSBar2D:!0,MSArea:!0,StackedColumn2D:!0,StackedBar2D:!0,StackedArea2D:!0,MSStackedColumn2D:!0,MSCombi2D:!0,StackedColumn2DLine:!0,MSCombidy2D:!0,LogMSColumn2d:!0,LogMSLine:!0,DragColumn:!0,DragLine:!0,DragArea:!0}},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(259)),i=n(r(282)),o=function(e,t){return"groups"!==t&&"items"!==t},s=function(e){var t=e.sender;(function(e){return"chartAPI"===e.getType()})(t)&&t.registerFactory("annotation",(function(e){var t=e.getFromEnv("dataSource").annotations,r=e.getChildren().annotation,n=r&&r[0];delete e.getFromEnv("chartInstance").annotations,t&&(n||(n=new a["default"]((0,i["default"])(o,t)),e.attachChild(n,"annotation"),n.config.drawn=!1),n._JSONData=t,n.configure(t),e.getFromEnv("chartInstance").annotations=n)}))};var l={extension:function(e){e.addEventListener("instantiated",s)},name:"Annotation",type:"extension",requiresFusionCharts:!0};t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(260),o=r(184),s=r(192),l=n(r(261)),c=n(r(262)),u=n(r(263)),d=n(r(264)),h=r(199),f=["pie2d","doughnut2d"],g=["pie3d","doughnut3d"],p=function(e,t){return e.getJSONIndex()-t.getJSONIndex()},m=function(e,t,r){void 0===t&&(t={}),void 0===r&&(r={});var n,a={};for(var i in a.annotationType="shape",a.id=e.id,a.type=e.type&&e.type.toLowerCase(),a.toolText=(0,o.pluck)(e.tooltext,e.toolText),a.animationLabel=(0,o.pluck)(e.animationlabel,e.animationLabel),a.dashed=e.dashed,a.dashLen=(0,o.pluck)(e.dashlen,e.dashLen),a.dashGap=(0,o.pluck)(e.dashgap,e.dashGap),a.thickness=e.thickness,a.showBorder=(0,o.pluck)(e.showborder,e.showBorder),a.borderColor=(0,o.pluck)(e.bordercolor,e.borderColor),a.borderAlpha=(0,o.pluck)(e.borderalpha,e.borderAlpha),a.borderThickness=(0,o.pluck)(e.borderthickness,e.borderThickness),a.alpha=e.alpha,a.color=e.color,a.fillColor=(0,o.pluck)(e.fillcolor,e.fillColor),a.fontColor=(0,o.pluck)(e.fontcolor,e.fontColor),a.fillAlpha=(0,o.pluck)(e.fillalpha,e.fillAlpha),a.fillAngle=(0,o.pluck)(e.fillangle,e.fillAngle),a.fillRatio=(0,o.pluck)(e.fillratio,e.fillRatio),a.fillPattern=(0,o.pluck)(e.fillpattern,e.fillPattern),a.sides=e.sides,a.radius=e.radius,a.yRadius=(0,o.pluck)(e.yradius,e.yRadius),a.innerRadius=(0,o.pluck)(e.innerradius,e.innerRadius),a.endAngle=(0,o.pluck)(e.endangle,e.endAngle),a.startAngle=(0,o.pluck)(e.startangle,e.startAngle),a.isVisible=!0==(n=e.visible,!(0===parseInt(n,10))),a.x=e.x,a.y=e.y,a.xPos=(0,o.pluck)(e.xpos,e.xPos),a.yPos=(0,o.pluck)(e.ypos,e.yPos),a.toY=(0,o.pluck)(e.toy,e.toY),a.toX=(0,o.pluck)(e.tox,e.toX),a.autoScale=(0,o.pluck)(e.autoscale,e.autoScale),a.path=e.path,a.css=e.css,a.wrap=e.wrap,a.text=e.text!==o.UNDEF&&null!==e.text&&e.text.toString()||o.UNDEF,a.font=(0,o.pluck)(e.font,t.font,r.basefont),a.bold=(0,o.pluck)(e.bold,e.isbold,e.bold,e.isBold),a.label=e.label,a.align=e.align,a.italic=e.italic,a.vAlign=(0,o.pluck)(e.valign,e.vAlign),a.bgColor=(0,o.pluck)(e.bgcolor,e.bgColor),a.fontSize=(0,o.pluck)(e.fontsize,e.fontSize,t.fontSize,r.basefontsize),a.wrapWidth=(0,o.pluck)(e.wrapwidth,e.wrapWidth),a.leftMargin=(0,o.pluck)(e.leftmargin,e.leftMargin),a.rotateText=(0,o.pluck)(e.rotatetext,e.rotateText),a.wrapHeight=(0,o.pluck)(e.wrapheight,e.wrapHeight),a.showShadow=(0,o.pluck)(e.showshadow,e.showShadow),a.link=e.link,a.url=e.url,a.link=e.link,a.width=e.width,a.height=e.height,a.xScale=(0,o.pluck)(e.xscale,e.xScale),a.yScale=(0,o.pluck)(e.yscale,e.yScale),a.onload=e.onload,a.onerror=e.onerror,a.outlineText=(0,o.pluckNumber)(e.outlinetext,e.outlineText,0),"object"==typeof e.component&&(a.component=e.component),a){if(a.hasOwnProperty(i))void 0===a[i]&&delete a[i]}return a},v=function(e,t){return void 0===e&&(e={groups:[]}),void 0===t&&(t={}),(e.groups||[]).map((function(r){var n,a;return n=e,(a=r).css=a.css||n.css,a.autoscale=(0,o.pluck)(a.autoscale,n.autoscale),a.animationLabel=(0,o.pluck)(a.animationLabel,n.animationLabel),a.constrainedscale=(0,o.pluck)(a.constrainedscale,n.constrainedscale),a.scaletext=(0,o.pluck)(a.scaletext,n.scaletext),a.scaleimages=(0,o.pluck)(a.scaleimages,n.scaleimages),a.xshift=(0,o.pluck)(a.xshift,n.xshift),a.yshift=(0,o.pluck)(a.yshift,n.yshift),a.grpxshift=(0,o.pluck)(a.grpxshift,n.grpxshift),a.grpyshift=(0,o.pluck)(a.grpyshift,n.grpyshift),a.origw=(0,o.pluck)(a.origw,n.origw),a.origh=(0,o.pluck)(a.origh,n.origh),a.showbelow=(0,o.pluck)(a.showbelow,n.showbelow,1),a.onAnnotationClick=n.onAnnotationClick,a.onAnnotationRollover=n.onAnnotationRollover,a.onAnnotationRollout=n.onAnnotationRollout,function(e,t){var r={},n=e.items;for(var a in n=e.items=(0,i.arrangeItems)(n),r.annotationType="group",r.id=e.id,r.showBelow="undefined"==typeof e.showbelow||null===e.showbelow?1:Number(e.showbelow),r.x=e.x,r.y=e.y,r.animationLabel=(0,o.pluck)(e.animationlabel,e.animationLabel),r.xPos=(0,o.pluck)(e.xpos,e.xPos),r.yPos=(0,o.pluck)(e.ypos,e.yPos),r.grpXShift=(0,o.pluck)(e.grpxshift,e.grpXShift),r.grpYShift=(0,o.pluck)(e.grpyshift,e.grpYShift),r.xShift=(0,o.pluck)(e.xshift,e.xShift),r.yShift=(0,o.pluck)(e.yshift,e.yShift),r.color=e.color,r.alpha=e.alpha,r.isVisible=1===Number(e.visible||1),r.font=(0,o.pluck)(e.font,t.basefont),r.link=e.link,r.fontSize=(0,o.pluck)(e.fontsize,e.fontSize,t.basefontsize),r.textAlign=(0,o.pluck)(e.textalign,e.textAlign),r.textVAlign=(0,o.pluck)(e.textvalign,e.textVAlign),r.rotateText=(0,o.pluck)(e.rotatetext,e.rotateText),r.wrapText=(0,o.pluck)(e.wraptext,e.wrapText),r.toolText=(0,o.pluck)(e.tooltext,e.toolText),r.link=e.link,r.showShadow=(0,o.pluck)(e.showshadow,e.showShadow),r.items=e.items,r.css=e.css,r.autoScale=(0,o.pluck)(e.autoscale,e.autoScale),r.scaleText=(0,o.pluck)(e.scaletext,e.scaleText),r.xScale=(0,o.pluck)(e.xscale,e.xScale),r.yScale=(0,o.pluck)(e.yscale,e.yScale),r.scaleImages=(0,o.pluck)(e.scaleimages,e.scaleImages),r.constrainedScale=(0,o.pluck)(e.constrainedscale),r.origH=(0,o.pluck)(e.origh,e.origH,t.origh),r.origW=(0,o.pluck)(e.origw,e.origW,t.origw),r.onAnnotationClick=e.onAnnotationClick,r.onAnnotationRollover=e.onAnnotationRollover,r.onAnnotationRollout=e.onAnnotationRollout,"object"==typeof e.component&&(r.component=e.component),r){if(r.hasOwnProperty(a))void 0===r[a]&&delete r[a]}return Array.isArray(n)&&(r.itemConfigs=n.map((function(e){return m(e,r,t)}))),r}(r,t)}))},b=function(e){function t(t){var r;return r=e.call(this,t)||this,(0,s.addDep)({name:"annotationAnimation",type:"animationRule",extension:l["default"]}),(0,c["default"])((0,s.getDep)("redraphael","plugin")),(0,u["default"])((0,s.getDep)("redraphael","plugin")),r.groups=[],r.config.dependencies={},r._rawJSON={groups:[]},r}(0,a["default"])(t,e);var r=t.prototype;return r.getName=function(){return"annotation"},r.getType=function(){return"extension"},r.configureAttributes=function(e){void 0===e&&(e={groups:[]});var t=this,r=t.config;t._rawJSON=(0,o.extend2)({},t._rawJSON,e),e.groups?r.parsedConfigs=v(e,t.getFromEnv("chart").config):r.parsedConfigs=[],r.parsedConfigs.forEach((function(e){t.attachChild(d["default"],"group",e.id).configure(e)})),t.groups=t.getChildren("group")||[]},r.addItem=function(e,t,r){void 0===t&&(t={});var n,a,i,o=this._rawJSON,s=o.groups.length;for(n=0;n<s;n++)if(o.groups[n].id===e){a=o.groups[n];break}return a?a.items=a.items||[]:(a={id:e,items:[]},o.groups.push(a)),a.items.push(t),this.setData(o,!0),(i=this.retrieveGroup(e).items)[i.length-1]},r.addGroup=function(e){void 0===e&&(e={});var t=this._rawJSON;return t.groups.push(e),this.setData(t,!0),this.groups[this.groups.length-1]},r.addCustomGroup=function(e){e&&(this.config.customGroup=e)},r.update=function(e,t){var r,n,a,i,o={};if(e){for(n in t)o[n.toLowerCase()]=t[n]&&t[n].toString();if(!(r=this.retrieveItem(e)||this.retrieveGroup(e))||!r.getElement())return;return"undefined"==typeof o.visible&&(o.visible=r.config.isVisible),a=r.rawConfig,a=Object.assign(a,o),(i=m(a)).isVisible=o.visible,r.setData(i),r}},r.destroy=function(e){var t,r,n,a,i,o=this._rawJSON,s=!1;if(e){for(t=0,n=o.groups.length;t<n;t++)for(r=0,a=((i=o.groups[t]).items||[]).length;r<a;r++)if(i.items[r].id===e){i.items.splice(r,1),s=!0;break}if(!s)for(t=0,n=o.groups.length;t<n;t++)(i=o.groups[t]).id===e&&o.groups.splice(t,1)}else o=this._rawJSON={groups:[]};this.setData(o)},r.clear=function(){this.destroy()},r.retrieveItem=function(e){var t,r,n,a=this.groups.length;for(n=0;n<a;n++)if(t=this.groups[n].retrieveItem(e)){r=t;break}return r},r.retrieveGroup=function(e){var t,r;for(t=0,r=this.groups.length;t<r;t++)if(this.groups[t].getId()===e)return this.groups[t]},r.show=function(e){var t;e?(t=this.retrieveItem(e)||this.retrieveGroup(e))&&t.show():this.groups.forEach((function(e){e.show()}))},r.hide=function(e){var t;e?(t=this.retrieveItem(e)||this.retrieveGroup(e))&&t.hide():this.groups.forEach((function(e){e.hide()}))},r.draw=function(){var e,t,r,n,a,o,s,l,c,u,d,h,m,v;this.addToEnv("snapPoints",(e=this.getFromEnv("chart"),a=e.config,o=e.getChildren(),s=o.caption[0],l=o.subCaption[0],c=o.legend&&o.legend[0]||{},u=o.gLegend&&o.gLegend[0]||{},d=s.config,h=l.config,m=d.width||0,v=h.width||0,"end"===d.align?(t=d.x-m,n=d.x-v):"start"===d.align?t=n=d.x:(t=d.x-m/2,n=d.x-v/2),r=a.gLegendEnabled?u.conf:c.config,{canvasendx:a.canvasRight,canvasendy:a.canvasBottom,canvasheight:a.canvasHeight,canvasstartx:a.canvasLeft,canvasstarty:a.canvasTop,canvaswidth:a.canvasWidth,canvascenterx:a.canvasCenterX||a.canvasLeft+(a.canvasRight-a.canvasLeft)/2,canvascentery:a.canvasCenterY||a.canvasTop+(a.canvasBottom-a.canvasTop)/2,chartcenterx:a.width/2,chartcentery:a.height/2,chartstartx:0,chartstarty:0,chartendx:a.width,chartendy:a.height,chartheight:a.height,chartwidth:a.width,chartleftmargin:a.marginLeft,chartrightmargin:a.marginRight,chartbottommargin:a.marginBottom,charttopmargin:a.marginTop,captionendx:t+d.width,captionendy:d.y+d.height,captionheight:d.height,captionstartx:t,captionstarty:d.y,captionwidth:m,subcaptionendx:n+h.width,subcaptionendy:h.y+h.height,subcaptionheight:h.height,subcaptionstartx:n,subcaptionstarty:h.y,subcaptionwidth:v,legendendx:r&&r.xPos+r.width,legendendy:r&&r.yPos+r.height,legendheight:r&&r.height,legendstartx:r&&r.xPos,legendstarty:r&&r.yPos,legendwidth:r&&r.width,dataset:function(t){var r,n,a,o=t.split(i.DEFAULT_MACRO_SEPARATOR).slice(1),s=[];return e.iterateComponents((function(e){"dataset"===e.getType()&&s.push(e)})),s.sort(p),n=s[Number(o[0])],r=n.components.data[Number(o[2])],f.indexOf(n.getName().toLowerCase())>-1?(0,i.computeSliceBounds)(o[3],r.config):g.indexOf(n.getName().toLowerCase())>-1?(0,i.compute3DSliceBounds)(o[3],r.config):(a=(0,i.computePlotBounds)(r,n.getName()),(0,i.xyCalculator)(o[3],a))},xaxis:(0,i.axisMacroParser)(e,"xAxis"),yaxis:(0,i.axisMacroParser)(e,"yAxis"),gaugestartx:a.gaugeStartX,gaugestarty:a.gaugeStartY,gaugeendx:a.gaugeEndX,gaugeendy:a.gaugeEndY,gaugecenterx:a.gaugeCenterX,gaugecentery:a.gaugeCenterY,gaugestartangle:a.gaugeStartAngle,gaugeendangle:a.gaugeEndAngle,gaugeradius:a.gaugeRadius,plotwidth:a.plotWidth,plotsemiwidth:a.plotSemiWidth})),this.addGraphicalElement({el:"group",attr:{name:"upperannotations"},component:this,container:{label:"group",id:"abovePlotGroup",isParent:!0},id:"upperAnnotationGroup",label:"group"}),this.addGraphicalElement({el:"group",attr:{name:"lowerannotations"},component:this,container:{label:"group",id:"belowPlotGroup",isParent:!0},id:"lowerAnnotationGroup",label:"group"})},t}(h.SmartRenderer);t["default"]=b},function(e,t,r){"use strict";t.__esModule=!0,t.getEventData=t.getScaledVal=t.parseEquation=t.solveEquation=t.isMacro=t.trim=t.pluckBoolean=t.DEFAULT_MACRO_SEPARATOR=t.DEFAULT_MACRO_PREFIX=t.UNDERSCORE=t.xyCalculator=t.axisMacroParser=t.arrangeItems=t.cleanMacro=t.compute3DSliceBounds=t.computeSliceBounds=t.computePlotBounds=t.getQuadrant=t.polarToCartesian=t.deg2Rad=void 0;var n=r(184);t.UNDEF=n.UNDEF;var a=2*Math.PI,i=[-a,-3*a/4,-a/2,-a/4,0],o=[a,3*a/4,a/2,a/4,0],s=function(e){return e*e},l=function(e){return e*(Math.PI/180)},c=function(e,t,r,n){void 0===r&&(r=!0),void 0===n&&(n={});var a=t;return r||(a=l(t)),{x:e*Math.cos(a)+(n.x||0),y:e*Math.sin(a)+(n.y||0)}},u=function(e,t,r){return 0===e||0===t?0:e*t/Math.sqrt(s(t)*s(Math.cos(r))+s(e)*s(Math.sin(r)))},d=function(e){var t,r,o,s,l,u,d,h,f,g=e.ringpath,p=[],m=[],v=Infinity,b=Infinity,y=-Infinity,x=-Infinity;for(t=(0,n.pluckNumber)(g[2]),r=(0,n.pluckNumber)(g[3]),o=(0,n.pluckNumber)(g[4])%a,s=(0,n.pluckNumber)(g[5])%a,l=(0,n.pluckNumber)(g[0]),u=(0,n.pluckNumber)(g[1]),h=c(t,o,!0,{x:l,y:u}),f=c(t,s,!0,{x:l,y:u}),m.push(h),m.push(f),d=0;d<i.length;d++)i[d]>=o&&i[d]<=s&&p.push(d);for(d=0;d<p.length;d++)h=c(t,i[p[d]],!0,{x:l,y:u}),f=c(r,i[p[d]],!0,{x:l,y:u}),m.push(h),m.push(f);for(h=c(r,o,!0,{x:l,y:u}),f=c(r,s,!0,{x:l,y:u}),m.push(h),m.push(f),d=0;d<m.length;d++)y=Math.max(y,m[d].x),v=Math.min(v,m[d].x),x=Math.max(x,m[d].y),b=Math.min(b,m[d].y);return{x:v,y:b,width:Math.abs(y-v),height:Math.abs(b-x)}},h=function(e,t,r){var n,i,o;return o=Math.tan(r),n=e*t/Math.sqrt(t*t+e*e*o*o),i=e*t/Math.sqrt(e*e+t*t/(o*o)),r>a/4&&r<3*a/4?n*=-1:n=Math.abs(n),r>a/2&&r<a?i*=-1:i=Math.abs(i),Math.abs(n)<=1e-5&&(n=0),Math.abs(i)<=1e-5&&(i=0),{x:n,y:i}},f=function(e,t){var r,a,i,o,s,l=e.config||e;switch(t){case"column3D":case"bar2D":case"bar3D":case"paretoColumn":case"waterFall2D":case"errorBar2D":case"candlestick":case"heatMap":case"dragColumn":case"sparkColumn":case"marimekko":case"task":case"column":r={x:(a=l.props.element.attr).x+(0,n.pluckNumber)(a.xDepth,0),y:a.y-(0,n.pluckNumber)(a.yDepth,0),width:a.width,height:a.height};break;case"line":case"zoomLine":case"zoomScatter":case"scatter":case"spline":case"splinearea":case"multiaxisline":case"stepLine":case"errorScatter":case"errorLine":case"radar":case"selectScatter":case"dragLine":case"dragArea":case"kagi":case"sparkLine":case"area":i=e._xPos,o=e._yPos,r={x:i-(s=Number(l.anchorProps.radius)||0),y:o-s,width:2*s,height:2*s};break;case"bubble":r={x:(a=l.props.element.attr).cx-a.r,y:a.cy-a.r,width:2*a.r,height:2*a.r};break;case"dragNode":a=l.props.element.attr,"rect"===l.shapeType?r={x:a.x,y:a.y,width:a.width,height:a.height}:(i=l._xPos,o=l._yPos,r={x:i-(s=+l.radius||0),y:o-s,width:2*s,height:2*s});break;case"boxandwhisker2D":r={x:(a=l.props.upperBoxElem.attr).x,y:a.y,width:a.width,height:a.height};break;case"category":case"polarCategory":case"log":case"numeric":r={x:(a=l.props.label.attr).x-l.width/2,y:a.y-l.height/2,width:l.width,height:l.height},"end"===a["text-anchor"]||"left"===a["text-anchor"]?r.x=a.x-l.width:"start"!==a["text-anchor"]&&"right"!==a["text-anchor"]||(r.x=a.x),"top"===a["vertical-align"]?r.y=a.y:"bottom"===a["vertical-align"]&&(r.y=a.y-l.height);break;case"multiLevelPie":a=l.props.element.attr,r=d(a)}return r},g=function(e,t){var r=0;switch(e){case"startx":r=t.x;break;case"starty":r=t.y;break;case"x":case"middlex":case"centerx":r=t.x+t.width/2;break;case"y":case"middley":case"centery":r=t.y+t.height/2;break;case"endx":r=t.x+t.width;break;case"endy":r=t.y+t.height;break;default:r=0}return r},p=function(e,t){var r;switch(t.axis){case"x":case"toX":r=t.scaleX;break;case"y":case"toY":r=t.scaleY;break;default:r=t.scaleValue||1}return e*r};t.parseEquation=function(e,t,r,a){void 0===r&&(r=!1),void 0===a&&(a="$");var i,o,s,l,c=e.split(/([+])/),u=[],d=c.length;for(o=0;o<d;o++)if("+"!==c[o]){for(s=0,l=(i=c[o].split(/([-])/)).length;s<l;s++)"-"!==i[s]&&(u.push(i[s]),s<l-1&&u.push("-"));o<d-1&&u.push("+")}return u.map((function(e){var i,o,s,l=n.BLANKSTRING,c=n.BLANKSTRING,u=n.BLANKSTRING;if(e.charAt(0)===a){if(u=(c=e.replace(new RegExp("[\\$ ]","g"),"")).split(".")[0],!isNaN(+c))return+c;for(l in t)if(u===l){if(o=new RegExp(l,"g"),"function"==typeof t[l])try{i=u.replace(o,t[l](c))}catch(h){i=u.replace(o,0)}else i=u.replace(o,t[l]||0);break}}else{s=Number(e);var d=e;isNaN(s)?"+"!==e&&"-"!==e&&(d=0):d=r?p(s,r).toString():s.toString(),i=d}return i}))},t.getScaledVal=p,t.solveEquation=function(e){for(var t,r,n=+e[0],a=1,i=e.length;a<i;++a)if(r=e[a],a%2)t=r;else switch(t){case"+":n+=+r;break;case"-":n-=+r}return n},t.isMacro=function(e){return~e.indexOf("$")},t.trim=function(e){return e.replace(/^\s+|\s+$/g,"")},t.pluckBoolean=function(){for(var e,t,r,n=arguments.length,a=new Array(n),i=0;i<n;i++)a[i]=arguments[i];for(t=0,r=a.length;t<r;t++)if(!0===(e=a[t])||!1===e)return e;return!1},t.getEventData=function(e,t,r){var n=r.getFromEnv("getMouseCoordinate")(r.getFromEnv("chart-container"),e,r),a=t.getLinkedParent();return{element:t.getElement(),rawConfig:t.getAttribute(),pageX:n.pageX,pageY:n.pageY,chartX:n.chartX,chartY:n.chartY,annotationId:t.getId(),groupId:a&&a.getId(),annotationOptions:t.rawConfig,groupOptions:a&&a.rawConfig}},t.axisMacroParser=function(e,t){return function(r){var n,a,i,o,s=r.split(".").slice(1),l=isNaN(Number(s[0]))?0:Number(s[0]),c=isNaN(Number(s[0]))?s[1]:s[2],u=isNaN(Number(s[0]))?s[2]:s[3];return o=(n=e.getChildren(t)[l]).components,c=Number(c),o.labelIndexArr&&(c=o.labelIndexArr[c]),a=o.labels[c].config,i=f(a,n.getName()),g(u,i)}},t.xyCalculator=g,t.arrangeItems=function(e){void 0===e&&(e=[]);var t,r,n=[],a=[];for(r=e.length,t=0;t<r;t++)"text"===e[t].type?a.push(e[t]):n.push(e[t]);return n.concat(a)},t.cleanMacro=function(e){var t,r,a=n.BLANKSTRING;for(t=0,r=e.length;t<r;t++)" "!==e[t]&&(a+=e[t]);return a},t.computePlotBounds=f,t.computeSliceBounds=function(e,t){var r,n,a,i,o,s,l=t.props.element.attr,u=l.ringpath;switch(r=u[0],n=u[1],a=u[2],o=u[4],s=u[5],e){case"slicex":case"slicemiddlex":case"slicecenterx":i=c(a,(o+s)/2).x+r;break;case"slicey":case"slicemiddley":case"slicecentery":i=c(a,(o+s)/2).y+n;break;case"slicestartx":i=c(a,s).x+r;break;case"slicestarty":i=c(a,s).y+n;break;case"sliceendx":i=c(a,o).x+r;break;case"sliceendy":i=c(a,o).y+n;break;default:i=g(e,d(l))}return i},t.compute3DSliceBounds=function(e,t){var r,i=t.props.element.attr,s=i.r,l=s*i.radiusYFactor,d=i.cx,f=i.cy,p=i.sAngle,m=i.eAngle;switch(e){case"slicex":case"slicemiddlex":case"slicecenterx":r=h(s,l,(p+m)/2).x+d;break;case"slicey":case"slicemiddley":case"slicecentery":r=h(s,l,(p+m)/2).y+f;break;case"slicestartx":r=h(s,l,p).x+d;break;case"slicestarty":r=h(s,l,p).y+f;break;case"sliceendx":r=h(s,l,m).x+d;break;case"sliceendy":r=h(s,l,m).y+f;break;default:r=g(e,function(e){var t,r,i,s,l,d,h,f,g,p=[],m=[],v=Infinity,b=Infinity,y=-Infinity,x=-Infinity;for(t=(0,n.pluckNumber)(e.r),r=(0,n.pluckNumber)(t*e.radiusYFactor),i=(0,n.pluckNumber)(e.sAngle)%a,s=(0,n.pluckNumber)(e.eAngle)%a,l=(0,n.pluckNumber)(e.cx),d=(0,n.pluckNumber)(e.cy),f=c(u(t,r,i),i,!0,{x:l,y:d}),g=c(u(t,r,s),s,!0,{x:l,y:d}),m.push(f),m.push(g),h=0;h<o.length;h++)o[h]>=i&&o[h]<=s&&p.push(h);for(h=0;h<p.length;h++)f=c(u(t,r,o[p[h]]),o[p[h]],!0,{x:l,y:d}),m.push(f);for(t=(0,n.pluckNumber)(e.innerR,0),r=(0,n.pluckNumber)(t*e.radiusYFactor,0),f=c(u(t,r,i),i,!0,{x:l,y:d}),g=c(u(t,r,s),s,!0,{x:l,y:d}),m.push(f),m.push(g),h=0;h<p.length;h++)f=c(u(t,r,o[p[h]]),o[p[h]],!0,{x:l,y:d}),m.push(f);for(h=0;h<m.length;h++)y=Math.max(y,m[h].x),v=Math.min(v,m[h].x),x=Math.max(x,m[h].y),b=Math.min(b,m[h].y);return{x:v,y:b,width:Math.abs(y-v),height:Math.abs(b-x)}}(i))}return r},t.getQuadrant=function(e,t,r){return e.x>=t?e.y<=r?0:3:e.y<=r?1:2},t.polarToCartesian=c,t.deg2Rad=l,t.DEFAULT_MACRO_SEPARATOR=".",t.DEFAULT_MACRO_PREFIX="$",t.UNDERSCORE="_"},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n=function(){return[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"initial"}]},a={"initial.extension.annotation":function(){return{"polypath.appearing":n,"text.appearing":n,"image.appearing":n,"ellipse.appearing":n,"ringpath.appearing":n,"path.appearing":n,"rect.appearing":n,"*":null}}};t["default"]=a},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=function(e){var t=Math,r=t.cos,n=t.sin,a=t.abs,i=t.pow,o=t.PI,s=2*o,l="M",c="A",u=i(2,-24);e.define&&e.define([{name:"ringpath",ringpath:function(){return this.path(void 0,e._lastArgIfGroup(arguments))},ca:function(e,t,i,d,h,f,g,p){var m,v,b,y,x,C,w,_,k,S,E,A,T,M,F=f%s-h%s,I=f-h,L=g,N=p;return isNaN(L)&&(L=i),isNaN(N)&&(N=d),this._.ringangle=.5*(h+f),a(I)<u?(m=r(h),v=n(h),C=[l,e+i*m,t+L*v,"L",e+d*m,t+N*v,"Z"]):a(I)>u&&+(a(I)%s<u||s-a(I)%s<u)?(C=[l,e-i,t,c,i,L,0,0,0,e+i,t,c,i,L,0,0,0,e-i,t],0===d&&0===N||(C=C.concat([l,e-d,t,c,d,N,0,0,1,e+d,t,c,d,N,0,0,1,e-d,t])),C.push("Z")):(m=r(h),v=n(h),b=r(f),y=n(f),(F%=s)<0&&(F+=s),x=F<o?0:1,E=t+L*v,A=t+L*y,k=e+d*b,T=t+N*y,a((w=e+i*m)-(_=e+i*b))<.01&&a(E-A)<.01&&(w=e+i*r(h+.0001745329),E=t+L*n(h+.0001745329)),C=[l,w,E,c,i,L,0,x,1,_,A,"L",k,T],0===d&&0===N||(M=t+N*v,a(k-(S=e+d*m))<.01&&a(T-M)<.01&&(S=e+d*r(h+.0001745329),M=t+N*n(h+.0001745329)),C.push(c,d,N,0,x,0,S,M)),C.push("Z")),{path:C}}}])}},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=function(e){e.define&&e.define([{name:"arcpath",arcpath:function(){return this.path(void 0,e._lastArgIfGroup(arguments))},ca:function(e,t,r,n){var a=n,i=a-90,o=Math.PI*(i/180);return{path:["M",e,t-r,"A",r,r,0,a>180?1:0,1,e+r*Math.cos(o),t+r*Math.sin(o)]}}}])}},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(184),o=r(260),s=n(r(265)),l=n(r(266)),c=n(r(277)),u=n(r(278)),d=n(r(279)),h=n(r(280)),f=n(r(281)),g=n(r(202)),p={circle:l["default"],arc:l["default"],line:c["default"],path:c["default"],rectangle:u["default"],polygon:f["default"],image:d["default"],text:h["default"]},m=function(e){function t(t){var r;return(r=e.call(this,t)||this).groups=[],r.items=[],r}(0,a["default"])(t,e);var r=t.prototype;return r.getName=function(){return"group"},r.configureAttributes=function(e){var t,r=this,n=r.config;r.rawConfig=e||{},n.id=r.rawConfig.id||r.getId("group"),n.autoScale=(0,i.pluckNumber)(r.rawConfig.autoScale,1),n.scaleText=(0,i.pluckNumber)(r.rawConfig.scaleText,0),n.scaleX=n.origScaleX=(0,i.pluckNumber)(r.rawConfig.xScale)/100,n.scaleY=n.origScaleY=(0,i.pluckNumber)(r.rawConfig.yScale)/100,n.scaleImages=(0,i.pluckNumber)(r.rawConfig.scaleImages,0),n.constrainedScale=(0,i.pluckNumber)(r.rawConfig.constrainedScale,1),n.origH=Number(r.rawConfig.origH),n.origW=Number(r.rawConfig.origW),n.link=r.rawConfig.link,n.color=r.rawConfig.color||"#FF0000",n.alpha=(0,i.pluckNumber)(parseFloat(r.rawConfig.alpha),100),n.showShadow=(0,i.pluckNumber)(r.rawConfig.showShadow,0),n.x=(0,i.pluckNumber)(r.rawConfig.x,r.rawConfig.xPos,0),n.y=(0,i.pluckNumber)(r.rawConfig.y,r.rawConfig.yPos,0),n.font=(0,i.pluck)(r.rawConfig.font,"Verdana, sans"),n.fontSize=(0,i.pluckFontSize)(r.rawConfig.fontSize,10),n.textAlign=(0,i.pluck)(r.rawConfig.textAlign),n.textVAlign=(0,i.pluck)(r.rawConfig.textVAlign),n.rotateText=(0,i.pluck)(r.rawConfig.rotateText),n.wrapText=(0,i.pluck)(r.rawConfig.wrapText),n.grpXShift=(0,i.pluckNumber)(r.rawConfig.grpXShift,0),n.grpYShift=(0,i.pluckNumber)(r.rawConfig.grpYShift,0),n.xShift=(0,i.pluckNumber)(r.rawConfig.xShift,0),n.yShift=(0,i.pluckNumber)(r.rawConfig.yShift,0),n.toolText=r.rawConfig.toolText,n.isVisible=(0,o.pluckBoolean)(r.rawConfig.isVisible,!0),n.elementType="group",n.containerConfiguration={id:r.rawConfig.showBelow?"lowerAnnotationGroup":"upperAnnotationGroup",label:"group",isParent:!0},n.animationLabel="group",r.rawConfig.customComponent instanceof g["default"]?n.customComponent=n.rawConfig.customComponent:delete n.customComponent,r.rawConfig.itemConfigs.forEach((function(e){t=e.type&&e.type.toLowerCase(),p[t]&&r.attachChild(p[t],"item",e.id).configure(e)})),r.items=r.getChildren("item")||[]},r.updateScale=function(){var e,t,r,n,a,i=this.config,o=this.getFromEnv("chart"),s=+o.getFromEnv("chartHeight"),l=+o.getFromEnv("chartWidth"),c=i.autoScale,u=i.constrainedScale;this._setConfig("origW",Number(i.origW)||l),this._setConfig("origH",Number(i.origH)||s),c?(t=l/i.origW*(Number(i.origScaleX)||1),r=s/i.origH*(Number(i.origScaleY)||1)):t=r=1,e=Math.min(t,r),this._setConfig("scaleValue",e),(c>0||isNaN(i.scaleX))&&(n=u?e:t,this._setConfig("scaleX",n)),(c>0||isNaN(i.scaleY))&&(a=u?e:r,this._setConfig("scaleY",a)),i.scaleFont=i.scaleText?Math.min(i.scaleX,i.scaleY):1,i.scaleImageX=i.scaleImages?i.scaleX:1,i.scaleImageY=i.scaleImages?i.scaleY:1,i.scaleInfo={scaleX:i.scaleX,scaleY:i.scaleY,scaleValue:i.scaleValue}},r.updateAttr=function(){var e,t,r,n=this.config,a=n.calculatedAttrs;for(e in a)a[e]&&(n[e]=a[e]);t=this.getScaledVal(n.grpXShift)+n.xShift,r=this.getScaledVal(n.grpYShift)+n.yShift,this._setConfig("attr",{transform:"T"+t+","+r})},r.retrieveItem=function(e){var t,r;for(t=0,r=this.items.length;t<r;t++)if(this.items[t].getId()===e)return this.items[t]},r.getScaledVal=function(e,t){return this?e*(t?this._getConfig("scaleX"):(!1===t?this._getConfig("scaleY"):this._getConfig("scaleValue"))||1):e},r.getScaledFont=function(e){return this?e*this._getConfig("scaleFont"):e},r.getScaledImageVal=function(e,t){return this?e*((t?this._getConfig("scaleImageX"):this._getConfig("scaleImageY"))||1):e},r.getScaleInfo=function(){return this.config.scaleInfo},r.draw=function(){var e,t,r=this._getConfig("attr")||{};this.updateScale(),this.parseAndSetAttribute(),e=this.getScaledVal(this._getConfig("grpXShift"))+this._getConfig("xShift"),t=this.getScaledVal(this._getConfig("grpYShift"))+this._getConfig("yShift"),r.name=this._getConfig("id"),r.transform=r.transform||"T"+e+","+t,r.visibility=this.config.isVisible?i.visibleStr:i.hiddenStr,this.addGraphicalElement({el:"group",attr:r,container:this.config.containerConfiguration,component:this.config.customComponent||this,label:this.config.animationLabel,id:this.config.id})},t}(s["default"]);t["default"]=m},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(199),o=r(184),s=r(260),l=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.getType=function(){return"shape"},r._setConfig=function(e,t){this.config[e]=t},r._getConfig=function(e){return void 0===e&&(e=""),""===e?this.config:this.config[e]},r.getElement=function(){var e=this.config;return this.getGraphicalElement(e.id,e.animationLabel)},r.getBounds=function(){return this.getElement().getBBox()},r.data=function(e,t){if(e&&"string"==typeof e){if(t===o.UNDEF)return this._data&&this._data[e];!this._data&&(this._data={}),this._data[e]=t}},r.parseAndSetAttribute=function(){var e,t,r=this.rawConfig,n=this.getFromEnv("snapPoints"),a={x:(0,o.pluck)(r.x,r.xPos,0),y:(0,o.pluck)(r.y,r.yPos,0),toX:(0,o.pluck)(r.toX),toY:(0,o.pluck)(r.toY)},i=this.config.calculatedAttrs={},l=this.getScaleInfo();for(var c in a)a.hasOwnProperty(c)&&void 0!==(t=a[c])&&(t=t.toString(),l.axis=c,(0,s.isMacro)(t)?i[c]=(0,s.solveEquation)((0,s.parseEquation)((0,s.cleanMacro)(t.toLowerCase()),n,l)):(i[c]=(0,s.solveEquation)((0,s.parseEquation)((0,s.cleanMacro)(t.toLowerCase()),n)),(0,o.pluckNumber)(r.autoscale,r.autoScale,1)&&(i[c]=(0,s.getScaledVal)(i[c],l))));"group"!==this.config.elementType&&(e=this.getLinkedParent().config.calculatedAttrs,i.x=i.x+(e.x||0),i.y=i.y+(e.y||0),isNaN(Number(i.toX))?i.toX=i.x:i.toX+=e.x||0,isNaN(Number(i.toY))||(i.toY+=e.y||0)),this.updateAttr()},r.getAttribute=function(e){return void 0===e&&(e=""),""===e?this.rawConfig:this.rawConfig[e]},r.show=function(){var e=Object.assign({},this.rawConfig);e.isVisible=!0,this.setData(e)},r.hide=function(){var e=Object.assign({},this.rawConfig);e.isVisible=!1,this.setData(e)},t}(i.SmartRenderer);t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(184),o=n(r(267)),s=180;function l(e){return e*(Math.PI/s)}var c=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.getName=function(){return"circle"},r.configureAttributes=function(t){void 0===t&&(t={}),e.prototype.configureAttributes.call(this,t);var r,n=this.rawConfig,a=this.getFromEnv("chart"),o=+a.getFromEnv("chartHeight")||700,s=+a.getFromEnv("chartWidth")||350;this.config.radius=n.radius,this.config.xRadius=(0,i.pluckNumber)(parseFloat(n.radius),parseFloat(n.xRadius),Math.sqrt(Math.max(o,s))),this.config.yRadius=(0,i.pluckNumber)(parseFloat(n.yRadius),this.config.xRadius),this.config.startAngle=(0,i.pluckNumber)(parseFloat(n.startAngle),0),this.config.endAngle=(0,i.pluckNumber)(parseFloat(n.endAngle),360),this.config.innerRadius=(0,i.pluckNumber)(parseFloat(n.innerRadius),0),this.config.innerYRadius=(0,i.pluckNumber)(parseFloat(n.innerYRadius),this.config.innerRadius,0),"arc"===this.config.type?this.config.elementType="ringpath":0!==(r=this.config).startAngle||360!==r.endAngle||function(e){return e.innerRadius>0||e.innerYRadius>0}(this.config)?this.config.elementType="ringpath":this.config.elementType="ellipse"},r.updateAttr=function(){var e,t=this.config,r=t.calculatedAttrs,n=this.getFromEnv("chart"),a=+n.getFromEnv("chartHeight"),o=+n.getFromEnv("chartWidth"),s=this.getScaledVal(t.xRadius),c=this.getScaledVal(t.yRadius),u=this.getScaledVal(t.innerRadius),d=this.getScaledVal(t.innerYRadius);switch((0,i.pluck)(t.radius)||(t.radius=o<a?this.getScaledVal(o):this.getScaledVal(a),t.radius*=.3,u>t.radius&&(u+=t.radius,t.radius=u-t.radius,u-=t.radius),s=c=t.radius,d=u),t.elementType){case"ringpath":e={ringpath:[(0,i.pluckNumber)(r.x,this.getScaledVal(t.x,!0)),(0,i.pluckNumber)(r.y,this.getScaledVal(t.y,!1)),s,u,l(360-t.endAngle),l(360-t.startAngle),c,d]};break;default:e={cx:(0,i.pluckNumber)(r.x,this.getScaledVal(t.x,!0)),cy:(0,i.pluckNumber)(r.y,this.getScaledVal(t.y,!1))}}this._setConfig("attr",e)},r._getAnnotationAttrs=function(){var e,t=this.config,r=this.config.attr||{},n=t.x,a=t.y,i=this.getScaledVal(t.xRadius),o=this.getScaledVal(t.yRadius);switch(t.xRadius||(i=0),t.yRadius||(o=0),r.fill=t.color,r.stroke=t.borderColor,r["stroke-width"]=t.borderThickness,r["stroke-dasharray"]=t.dashArrayStr,this.config.elementType){case"ringpath":e=[this.getScaledVal(n,!0),this.getScaledVal(a,!1),i,this.getScaledVal(t.innerRadius),l(360-t.endAngle),l(360-t.startAngle),o,this.getScaledVal(t.innerYRadius)],r.ringpath=r.ringpath||e;break;default:r.rx=i,r.ry=o,r.cx="undefined"==typeof r.cx?this.getScaledVal(n,!0):r.cx,r.cy="undefined"==typeof r.cy?this.getScaledVal(a,!1):r.cy}return r},t}(o["default"]);t["default"]=c},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(268)),o=n(r(265)),s=r(184),l=r(260),c=n(r(202)),u=function(e){return void 0===e?void 0:1},d=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.configureAttributes=function(e){var t,r,n=this,a=n.config,o=n.getFromEnv("chart"),d=n.getLinkedParent();n.groupConfig={},n.rawConfig={},null!==d&&(n.groupConfig.x=d._getConfig("x"),n.groupConfig.y=d._getConfig("y"),n.groupConfig.grpXShift=d._getConfig("grpXShift"),n.groupConfig.grpYShift=d._getConfig("grpYShift"),n.groupConfig.color=d._getConfig("color"),n.groupConfig.alpha=d._getConfig("alpha"),n.groupConfig.font=d._getConfig("font"),n.groupConfig.fontSize=d._getConfig("fontSize"),n.groupConfig.textAlign=d._getConfig("textAlign"),n.groupConfig.textVAlign=d._getConfig("textVAlign"),n.groupConfig.rotateText=d._getConfig("rotateText"),n.groupConfig.wrapText=d._getConfig("wrapText"),n.groupConfig.toolText=d._getConfig("toolText"),n.groupConfig.scaleX=d._getConfig("scaleX"),n.groupConfig.scaleY=d._getConfig("scaleY"),n.groupConfig.scaleImageX=d._getConfig("scaleImageX"),n.groupConfig.scaleImageY=d._getConfig("scaleImageY"),n.groupConfig.link=d._getConfig("link")),n.rawConfig=(0,i["default"])(n.rawConfig,e)||{},a.type=n.rawConfig.type,a.color=n._getFillColor(n.rawConfig,this.groupConfig),a.link=(0,s.pluck)(n.rawConfig.link,n.groupConfig.link),a.borderThickness=(0,s.pluckNumber)(parseFloat(n.rawConfig.borderThickness),parseFloat(n.rawConfig.thickness),2),a.showBorder=(0,s.pluckNumber)(n.rawConfig.showBorder,parseFloat(n.rawConfig.borderThickness),parseFloat(n.rawConfig.thickness),u(n.rawConfig.borderColor),u(n.rawConfig.borderAlpha),0),a.borderColor=n._getBorderColor(n.rawConfig),a.dashed=(0,s.pluckNumber)(n.rawConfig.dashed,0),a.dashLen=(0,s.pluckNumber)(n.rawConfig.dashLen,5),a.dashGap=(0,s.pluckNumber)(parseFloat(n.rawConfig.dashGap),3),a.dashArrayStr=a.dashed?(0,s.getDashStyle)(a.dashLen,a.dashGap):"none",a.x=(0,s.pluckNumber)(n.rawConfig.x,n.rawConfig.xPos,0),a.y=(0,s.pluckNumber)(n.rawConfig.y,n.rawConfig.yPos,0),a.tox=(0,s.pluckNumber)(n.rawConfig.toX,a.x,0),a.toy=(0,s.pluckNumber)(n.rawConfig.toY,a.y,0),a.toy>=0&&a.y>=0&&a.toy<a.y&&(t=[a.toy,a.y],a.y=t[0],a.toy=t[1]),a.tox>=0&&a.x>=0&&a.tox<a.x&&(r=[a.tox,a.x],a.x=r[0],a.tox=r[1]),a.showShadow=(0,s.pluckNumber)(n.rawConfig.showShadow,d.config.showShadow,0),a.toolText=(0,s.getFirstValue)(n.rawConfig.toolText,this.groupConfig.toolText,""),a.isVisible=(0,l.pluckBoolean)(n.rawConfig.isVisible,!0),a.id=(0,s.pluck)(n.rawConfig.id,n.getId(n.config.elementType)),a.containerConfiguration={id:n.getLinkedParent().config.id,label:"group",isParent:!0},n._clickHandler=n._clickHandler||function(e){n.config.link&&n.getFromEnv("linkClickFN").call({link:n.config.link},!0),n.rawConfig.onAnnotationClick instanceof Function?n.rawConfig.onAnnotationClick():d.rawConfig.onAnnotationClick instanceof Function?d.rawConfig.onAnnotationClick():o.fireChartInstanceEvent("annotationclick",(0,l.getEventData)(e,n,o),void 0,void 0,e)},n._rollOverHandler=n._rollOverHandler||function(e){n.rawConfig.onAnnotationRollover instanceof Function?n.rawConfig.onAnnotationRollover():d.rawConfig.onAnnotationRollover instanceof Function?d.rawConfig.onAnnotationRollover():o.fireChartInstanceEvent("annotationrollover",(0,l.getEventData)(e,n,o),void 0,void 0,e)},n._rollOutHandler=n._rollOutHandler||function(e){n.rawConfig.onAnnotationRollout instanceof Function?n.rawConfig.onAnnotationRollout():d.rawConfig.onAnnotationRollout instanceof Function?d.rawConfig.onAnnotationRollout():o.fireChartInstanceEvent("annotationrollout",(0,l.getEventData)(e,n,o),void 0,void 0,e)},n.rawConfig.customComponent instanceof c["default"]?a.customComponent=a.rawConfig.customComponent:delete a.customComponent},r._getBorderColor=function(e){var t="none",r={color:s.BLANKSTRING,alpha:s.BLANKSTRING};return"line"!==this.getType()&&(r.color=this.config.rawBorderColor=(0,s.pluck)(e.borderColor,e.fillColor&&e.fillColor.split(",")[0],e.color&&e.color.split(",")[0],"#000000"),0===this.config.showBorder?(r.alpha=1,this.config.borderThickness=2):r.alpha=this.config.rawBorderAlpha=(0,s.pluckNumber)(parseFloat(e.borderAlpha),parseFloat(e.alpha),100),t=(0,s.toRaphaelColor)(r)),t},r._getFillColor=function(e,t){var r=this.config.type,n={color:s.BLANKSTRING,alpha:s.BLANKSTRING,angle:s.BLANKSTRING,ratio:s.BLANKSTRING,radialGradient:"circle"===r||"arc"===r};return"line"===r||"image"===r?(n.color=e.color||t.color||"#FF0000",n.alpha=(0,s.pluckNumber)(parseFloat(e.alpha),t.alpha,100)):(n.color=e.fillColor||e.color||t.color||"#FF0000",n.alpha=(0,s.pluck)(e.fillAlpha,parseFloat(e.alpha),t.alpha,100),n.angle=360-(0,s.pluckNumber)(e.fillAngle,0),n.ratio=(0,s.pluck)(e.fillRatio),e.fillPattern&&(n.radialGradient="radial"===e.fillPattern.toLowerCase()||(0,s.pluckNumber)(e.fillPattern)),n.radialGradient&&(n.gradientUnits="objectBoundingBox",n.cx=.5,n.cy=.5,n.fx=.5,n.fy=.5)),this.config.rawColor=n.color,this.config.rawAlpha=n.alpha,this.config.rawAngle=n.angle,this.config.rawFillPattern=n.radialGradient?"radial":"linear",this.config.rawRatio=n.ratio,(0,s.toRaphaelColor)(n)},t.destroySelectionBox=function(){},r._applyAttr=function(e){var t,r=this.config.elementType,n=Object.assign({},e);("image"!==r||this.config.url)&&((t=this.rawConfig.css||{}).cursor=this.config.link?s.POINTER:"default",this.config.isVisible?n.visibility=s.visibleStr:n.visibility=s.hiddenStr,this.addEventListener("fc-click",this._clickHandler),this.addEventListener("fc-mouseover",this._rollOverHandler),this.addEventListener("fc-mouseout",this._rollOutHandler),this.config.animationLabel=this.rawConfig.animationLabel||this.getLinkedParent().config.animationLabel||r,this.addGraphicalElement({el:r,attr:n,css:t,container:this.config.containerConfiguration,component:this.config.customComponent||this,label:this.config.animationLabel,id:this.config.id,tooltext:this.config.toolText,shadow:{opacity:0!==this.config.showShadow?1:0,useFilter:"path"===r?0:1},outlineText:n.outlineText}))},r.getScaledVal=function(e,t){var r=this.getLinkedParent();return r?r.getScaledVal(e,t):e},r.getScaledFont=function(e){var t=this.getLinkedParent();return t?t.getScaledFont(e):e},r.getScaledImageVal=function(e,t){var r=this.getLinkedParent();return r?r.getScaledImageVal(e,t):e},r.getScaleInfo=function(){return this.getLinkedParent().config.scaleInfo},r.draw=function(){this.parseAndSetAttribute(),this._applyAttr(this._getAnnotationAttrs()||{})},t}(o["default"]);t["default"]=d},function(e,t,r){var n=r(269),a=r(272),i=n((function(e,t){return a((function(e,t,r){return r}),e,t)}));e.exports=i},function(e,t,r){var n=r(270),a=r(271);e.exports=function(e){return function t(r,i){switch(arguments.length){case 0:return t;case 1:return a(r)?t:n((function(t){return e(r,t)}));default:return a(r)&&a(i)?t:a(r)?n((function(t){return e(t,i)})):a(i)?n((function(t){return e(r,t)})):e(r,i)}}}},function(e,t,r){var n=r(271);e.exports=function(e){return function t(r){return 0===arguments.length||n(r)?t:e.apply(this,arguments)}}},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e&&!0===e["@@functional/placeholder"]}},function(e,t,r){var n=r(273),a=r(274),i=r(275),o=n((function s(e,t,r){return i((function(t,r,n){return a(r)&&a(n)?s(e,r,n):e(t,r,n)}),t,r)}));e.exports=o},function(e,t,r){var n=r(270),a=r(269),i=r(271);e.exports=function(e){return function t(r,o,s){switch(arguments.length){case 0:return t;case 1:return i(r)?t:a((function(t,n){return e(r,t,n)}));case 2:return i(r)&&i(o)?t:i(r)?a((function(t,r){return e(t,o,r)})):i(o)?a((function(t,n){return e(r,t,n)})):n((function(t){return e(r,o,t)}));default:return i(r)&&i(o)&&i(s)?t:i(r)&&i(o)?a((function(t,r){return e(t,r,s)})):i(r)&&i(s)?a((function(t,r){return e(t,o,r)})):i(o)&&i(s)?a((function(t,n){return e(r,t,n)})):i(r)?n((function(t){return e(t,o,s)})):i(o)?n((function(t){return e(r,t,s)})):i(s)?n((function(t){return e(r,o,t)})):e(r,o,s)}}}},function(e,t){e.exports=function(e){return"[object Object]"===Object.prototype.toString.call(e)}},function(e,t,r){var n=r(273),a=r(276),i=n((function(e,t,r){var n,i={};for(n in t)a(n,t)&&(i[n]=a(n,r)?e(n,t[n],r[n]):t[n]);for(n in r)a(n,r)&&!a(n,i)&&(i[n]=r[n]);return i}));e.exports=i},function(e,t){e.exports=function(e,t){return Object.prototype.hasOwnProperty.call(t,e)}},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(184),o=r(260),s=n(r(267));function l(e){return e<="9"&&e>="0"||"-"===e||"."===e?0:e<="z"&&e>="a"||e<="Z"&&e>="A"?1:2}var c=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.getName=function(){return"path"},r.configureAttributes=function(t){void 0===t&&(t={}),e.prototype.configureAttributes.call(this,t);var r=this.rawConfig;this.config.pathStr=(0,i.pluck)(r.path),this.config.x=(0,i.pluckNumber)(r.x,0),this.config.y=(0,i.pluckNumber)(r.y,0),this.config.tox=(0,i.pluckNumber)(r.toX,this.config.x),this.config.toy=(0,i.pluckNumber)(r.toY,this.config.y),this.config.elementType="path"},r.getScaledPath=function(){var e,t,r,n,a,s=this.config.pathStr,c=[],u=i.BLANKSTRING;for(a=s&&s.length,r=0;r<a;r++){for(n=r,t=i.BLANKSTRING,e=l(s[r]);n<a&&l(s[n])===e;)t+=s[n],n++;""!==(t=(0,o.trim)(t))&&e<2&&c.push(t),r=n===r?n:n-1}for(a=c.length,r=0;r<a;)switch(u+=c[r],c[r].toLowerCase()){case"m":case"l":case"t":u+=this.getScaledVal(Number(c[r+1]),!0).toString()+",",u+=this.getScaledVal(Number(c[r+2]),!1).toString(),r+=3;break;case"s":case"q":u+=this.getScaledVal(Number(c[r+1]),!0).toString()+",",u+=this.getScaledVal(Number(c[r+2]),!1).toString()+",",u+=this.getScaledVal(Number(c[r+3]),!0).toString()+",",u+=this.getScaledVal(Number(c[r+4]),!1).toString(),r+=5;break;case"h":u+=this.getScaledVal(Number(c[r+1]),!0).toString(),r+=2;break;case"v":u+=this.getScaledVal(Number(c[r+1]),!1).toString(),r+=2;break;case"c":u+=this.getScaledVal(Number(c[r+1]),!0).toString()+",",u+=this.getScaledVal(Number(c[r+2]),!1).toString()+",",u+=this.getScaledVal(Number(c[r+3]),!0).toString()+",",u+=this.getScaledVal(Number(c[r+4]),!1).toString()+",",u+=this.getScaledVal(Number(c[r+5]),!0).toString()+",",u+=this.getScaledVal(Number(c[r+6]),!1).toString(),r+=7;break;case"a":u+=this.getScaledVal(Number(c[r+1]),!0).toString()+",",u+=this.getScaledVal(Number(c[r+2]),!1).toString()+",",u+=this.getScaledVal(Number(c[r+3]),!0).toString()+",",u+=c[r+4]+",",u+=c[r+5]+",",u+=this.getScaledVal(Number(c[r+6]),!0).toString()+",",u+=this.getScaledVal(Number(c[r+7]),!1).toString(),r+=8;break;case"z":default:r++}return u.toString()},r.updateAttr=function(){var e,t,r=this.config,n=r.calculatedAttrs,a={};e=(0,i.pluckNumber)(n.x,this.getScaledVal(r.x,!0)),t=(0,i.pluckNumber)(n.y,this.getScaledVal(r.y,!1)),r.pathStr?(a.path=this.getScaledPath(),a.transform="T"+e+","+t):a.path="M"+e+","+t+"L"+(0,i.pluckNumber)(n.toX,e,this.getScaledVal(r.tox,!0))+","+(0,i.pluckNumber)(n.toY,t,this.getScaledVal(r.toy,!1)),this._setConfig("attr",a)},r._getAnnotationAttrs=function(){var e,t,r,n,a,i=this.config,o=this._getConfig("attr")||{},s=i.color;return o.stroke=s,this.rawConfig.color&&(o.fill=s),o["stroke-width"]=this.getScaledVal(i.borderThickness),o["stroke-dasharray"]=i.dashArrayStr,e=o.x||this.getScaledVal(i.x,!0),t=o.y||this.getScaledVal(i.y,!1),r=o.toX||this.getScaledVal(i.tox,!0),n=o.toY||this.getScaledVal(i.toy,!1),o.path?o:((a=this.getScaledPath())?(o.path=a,o.transform=o.transform||"T"+e+","+t):o.path=o.path||"M"+e+","+t+"L"+r+","+n,o)},t}(s["default"]);t["default"]=c},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(184),o=n(r(267)),s=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.getName=function(){return"rect"},r.configureAttributes=function(t){void 0===t&&(t={}),e.prototype.configureAttributes.call(this,t);this.config.xRadius=(0,i.pluckNumber)(parseFloat(this.rawConfig.radius),0),this.config.elementType="rect"},r.updateAttr=function(){var e,t,r,n,a,o,s=this.config,l=s.calculatedAttrs;r=(0,i.pluckNumber)(l.x,this.getScaledVal(s.x,!0)),n=(0,i.pluckNumber)(l.y,this.getScaledVal(s.y,!1)),a=(0,i.pluckNumber)(l.toX,this.getScaledVal(s.tox,!0)),(o=(0,i.pluckNumber)(l.toY,this.getScaledVal(s.toy,!1)))>=0&&n>=0&&o<n&&(n=(e=[o,n])[0],o=e[1]),a>=0&&r>=0&&a<r&&(r=(t=[a,r])[0],a=t[1]),this._setConfig("attr",{x:r,y:n,width:Math.abs(a-r),height:Math.abs(o-n)})},r._getAnnotationAttrs=function(){var e=this.config,t=this._getConfig("attr")||{},r=this.getScaledVal(e.x),n=this.getScaledVal(e.y);return t.x="undefined"==typeof t.x?r:t.x,t.y="undefined"==typeof t.y?n:t.y,t.width="undefined"==typeof t.width?Math.abs(this.getScaledVal(e.tox)-r):t.width,t.height="undefined"==typeof t.height?Math.abs(this.getScaledVal(e.toy)-n):t.height,t.r=this.getScaledVal(e.xRadius),t.fill=e.color,t.stroke=e.borderColor,t["stroke-width"]=e.borderThickness,t["stroke-dasharray"]=e.dashArrayStr,t},t}(o["default"]);t["default"]=s},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(267)),o=r(184),s=function(e){var t=this.config,r=e.originalEvent.target,n=r.height,a=r.width,i=this._getConfig("align"),o=this._getConfig("vAlign"),s=this._getConfig("xScale"),l=n*this._getConfig("yScale"),c=a*s,u=function(e){var t=e.height,r=e.width,n=e.vAlign,a=e.align,i=e.x,o=e.y,s={x:i,y:o};switch(a){case"center":s.x=i-r/2;break;case"right":s.x=i-r}switch(n){case"middle":s.y=o-t/2;break;case"bottom":s.y=o-t}return s}({x:t.derivedX,y:t.derivedY,height:l,width:c,align:i,vAlign:o});this.config.loadedWidth=a,this.config.loadedHeight=n,t=Object.assign(this.rawConfig,{x:u.x,y:u.y,width:c,height:l,autoScale:0}),this.getGraphicalElement(this.config.id,this.config.animationLabel).attr(t),this.rawConfig.onload&&this.rawConfig.onload.call(this,{width:c,height:l}),e.detachHandler()},l=function(e){function t(t){var r;return(r=e.call(this,t)||this)._listener=s,r}(0,a["default"])(t,e);var r=t.prototype;return r.getName=function(){return"image"},r.configureAttributes=function(t){void 0===t&&(t={}),e.prototype.configureAttributes.call(this,t);var r=this.rawConfig,n=this.config;n.url=(0,o.getValidValue)(r.url),n.xScale=n.rawXScale=(0,o.pluckNumber)(r.xScale,100)/100,n.yScale=n.rawYScale=(0,o.pluckNumber)(r.yScale,100)/100,n.width=(0,o.pluckNumber)(n.loadedWidth,r.width),n.height=(0,o.pluckNumber)(n.loadedHeight,r.height),n.align=(0,o.pluck)(r.align,"left"),n.vAlign=(0,o.pluck)(r.vAlign,"top"),n.xScale=n.xScale*(this.groupConfig.scaleX||1),n.yScale=n.yScale*(this.groupConfig.scaleY||1),n.elementType="image","undefined"==typeof n.width&&"undefined"==typeof n.height&&this.addEventListener("load",this._listener)},r.updateAttr=function(){var e=this.getLinkedParent(),t=this.config,r=t.calculatedAttrs;this.config.xScale=e.config.scaleX*t.rawXScale,this.config.yScale=e.config.scaleY*t.rawYScale,this._setConfig("attr",{x:(0,o.pluckNumber)(r.x,this.getScaledVal(t.x,!0)),y:(0,o.pluckNumber)(r.y,this.getScaledVal(t.y,!1))})},r._getAnnotationAttrs=function(){var e=this.config,t=e.attr,r=(0,o.pluckNumber)(e.attr.x,e.x),n=(0,o.pluckNumber)(e.attr.y,e.y);return(0,o.pluckNumber)(this.rawConfig.autoscale,this.rawConfig.autoScale,1)||(t={x:r,y:n}),e.derivedX=t.x="undefined"==typeof t.x?this.getScaledVal(r,!0):t.x,e.derivedY=t.y="undefined"==typeof t.y?this.getScaledVal(n,!1):t.y,t.src=e.url,t.opacity=(0,o.pluckNumber)(e.rawAlpha,100)/100,"undefined"!=typeof e.width&&(t.width=e.width*e.xScale),"undefined"!=typeof e.height&&(t.height=e.height*e.yScale),t},t}(i["default"]);t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(267)),o=r(184),s={left:"start",right:"end",center:"middle"},l={top:"bottom",middle:"middle",bottom:"top"},c={0:"0",1:"270",right:"90",cw:"90",left:"270",ccw:"270"};var u=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.getName=function(){return"text"},r.configureAttributes=function(t){void 0===t&&(t={}),e.prototype.configureAttributes.call(this,t);var r,n=this.rawConfig,a=this.groupConfig;this.config.text=(0,o.parseUnsafeString)((0,o.pluck)(n.text,n.label,"")),this.config.font=(0,o.pluck)(n.font,a.font,"Verdana, sans"),this.config.fontSize=(0,o.pluckFontSize)(n.fontSize,a.fontSize,10),this.config.align=(0,o.pluck)(s[n.align&&n.align.toLowerCase()],s[a.textAlign&&a.textAlign.toLowerCase()],"middle"),this.config.vAlign=(0,o.pluck)(l[n.vAlign&&n.vAlign.toLowerCase()],l[a.textVAlign&&a.textVAlign.toLowerCase()],"middle"),this.config.radius=(0,o.pluckNumber)(parseFloat(n.radius),0),this.config.fontWeight=(0,o.pluckNumber)(n.bold,0)?"bold":"normal",this.config.outlineText=(0,o.pluckNumber)(t.outlineText,0),this.config.fontStyle=(0,o.pluckNumber)(n.italic,0)?"italic":"normal",this.config.bgColor=(r=n.bgColor,(/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(r)?r:/(^[0-9A-F]{6}$)|(^[0-9A-F]{3}$)/i.test(r))?n.bgColor:"none"),this.config.borderThickness=(0,o.pluckNumber)(parseFloat(this.rawConfig.borderThickness),parseFloat(this.rawConfig.thickness),1),this.config.rotateText=(0,o.pluck)(n.rotateText,a.rotateText,"0"),this.config.rotateAngle=c[this.config.rotateText&&this.config.rotateText.toLowerCase()],this.config.wrap=(0,o.pluckNumber)(n.wrap,a.wrapText,n.wrapHeight,n.wrapWidth,1),this.config.wrap&&(this.config.wrapWidth=(0,o.pluckNumber)(n.wrapWidth),this.config.wrapHeight=(0,o.pluckNumber)(n.wrapHeight)),this.config.leftMargin=(0,o.pluckNumber)(n.leftMargin,0),this.config.elementType="text"},r.getText=function(){var e=this.config,t=this.getFromEnv("smartLabel"),r=this.getLinkedParent(),n=r&&r._getConfig("scaleText"),a=n?this.getScaledVal(e.wrapWidth,!0):e.wrapWidth,i=n?this.getScaledVal(e.wrapHeight,!1):e.wrapHeight,s={fontStyle:e.fontStyle,fontFamily:e.font,fontWeight:e.fontWeight,fontSize:e.fontSize+"px","text-anchor":e.align,"vertical-align":e.vAlign};return(0,o.setLineHeight)(s),t&&t.setStyle(s),t&&e.wrap?t.getSmartText(e.text,a,i,0).text:e.text},r._getFillColor=function(e,t){var r=this.config.type,n={color:"",alpha:"",angle:"",ratio:"",radialGradient:"circle"===r||"arc"===r};return n.color=e.fontColor||e.fillColor||e.color||t.color||"#FF0000",n.alpha=(0,o.pluck)(e.fillAlpha,parseFloat(e.alpha),t.alpha,100),n.angle=360-(0,o.pluckNumber)(e.fillAngle,0),n.ratio=(0,o.pluck)(e.fillRatio),e.fillPattern&&(n.radialGradient="radial"===e.fillPattern||(0,o.pluckNumber)(e.fillPattern)),n.radialGradient&&(n.gradientUnits="objectBoundingBox",n.cx=.5,n.cy=.5,n.fx=.5,n.fy=.5),this.config.rawColor=n.color,this.config.rawAlpha=n.alpha,this.config.rawAngle=n.angle,this.config.rawFillPattern=n.radialGradient?"radial":"linear",this.config.rawRatio=n.ratio,(0,o.toRaphaelColor)(n)},r.updateAttr=function(){var e,t=this.config,r=t.calculatedAttrs,n=(0,o.pluckNumber)(r.x,this.getScaledVal(t.x,!0)),a=(0,o.pluckNumber)(r.y,this.getScaledVal(t.y,!0));"0"!==t.rotateText&&(e=(0,o.getSuggestiveRotation)(parseFloat(t.rotateAngle),n,a)),this._setConfig("attr",{x:n,y:a,transform:e})},r._getAnnotationAttrs=function(){var e,t,r=this.config,n=this._getConfig("attr")||{},a=this.getScaledVal(r.x,!0),i=this.getScaledVal(r.y,!1);return n.x=("undefined"==typeof n.x?a:n.x)+r.leftMargin/2,n.y="undefined"==typeof n.y?i:n.y,n.text=this.getText(),n.fill=r.color,n.outlineText=r.outlineText,n.text&&(e=this.rawConfig.borderColor,t=this.rawConfig.borderAlpha,e&&"none"!==e&&0!==t||this.rawConfig.bgColor)?n["text-bound"]=[(0,o.toRaphaelColor)(r.bgColor),r.borderColor,r.borderThickness,2,r.radius,r.dashArrayStr]:n["text-bound"]=[],n["font-style"]=r.fontStyle,n["font-weight"]=r.fontWeight,n["font-family"]=r.font,n["font-size"]=this.getScaledFont(r.fontSize),n["text-anchor"]=r.align,n["vertical-align"]=r.vAlign,"0"!==r.rotateText&&(n.transform=n.transform||(0,o.getSuggestiveRotation)(parseFloat(r.rotateAngle),a,i)),n},t}(i["default"]);t["default"]=u},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(267)),o=r(184),s=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.getName=function(){return"polygon"},r.configureAttributes=function(t){void 0===t&&(t={}),e.prototype.configureAttributes.call(this,t);var r=this.rawConfig;this.config.sides=(0,o.pluckNumber)((0,o.clampNumber)(r.sides,3),5),this.config.startAngle=(0,o.pluckNumber)(parseFloat(r.startAngle),0),this.config.xRadius=(0,o.pluckNumber)(parseFloat(r.radius),0),this.config.elementType="polypath"},r.updateAttr=function(){var e=this.config,t=e.calculatedAttrs;this._setConfig("attr",{polypath:[e.sides,(0,o.pluckNumber)(t.x,this.getScaledVal(e.x,!0)),(0,o.pluckNumber)(t.y,this.getScaledVal(e.y,!1)),this.getScaledVal(e.xRadius),e.startAngle,0]})},r._getAnnotationAttrs=function(){var e=this.config,t=this._getConfig("attr")||{};return t.fill=e.color,t.stroke=e.borderColor,t["stroke-width"]=e.borderThickness,t["stroke-dasharray"]=e.dashArrayStr,t.polypath=t.polypath||[e.sides,this.getScaledVal(e.x,!0),this.getScaledVal(e.y,!1),this.getScaledVal(e.xRadius),e.startAngle,0],t},t}(i["default"]);t["default"]=s},function(e,t,r){var n=r(269)((function(e,t){var r={};for(var n in t)e(t[n],n,t)&&(r[n]=t[n]);return r}));e.exports=n},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(284)),i=r(184),o=r(287);function s(e){var t=e.sender;(0,o.isValidDataset)(t)&&t.registerFactory("regression",(function(e){var t=e.getFromEnv("chart").getFromEnv("dataSource").chart,r=e.config.JSONData;(0,i.componentFactory)(e,a["default"],"regression",Number((0,o.hasRegressionLine)(t,r)),[e])}))}var l={extension:function(e){e.addEventListener("instantiated",s)},name:"Regression",type:"extension",requiresFusionCharts:!0};t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(199),o=n(r(285)),s=n(r(286)),l=r(184),c=r(287),u=r(192),d=n(r(288)),h=function(){this.hide()};(0,u.addDep)({name:"regressionLineAnimation",type:"animationRule",extension:d["default"]});var f=function(e){function t(){var t;return(t=e.call(this)||this)._config={regressionPoints:[]},t.regressionLine=[],t}(0,a["default"])(t,e);var r=t.prototype;return r.getType=function(){return"extension"},r.getName=function(){return"regression"},r.configureAttributes=function(e){var t=this.getFromEnv("dataSource").chart,r=e.config,n=r.JSONData,a=this._config;a.regressionPoints.splice(0,a.regressionPoints.length),a.showYOnX=(0,l.pluckNumber)(n.showyonx,t.showyonx,1),a.regressionLineColor=(0,l.toRaphaelColor)((0,l.pluck)(n.regressionlinecolor,t.regressionlinecolor,r.anchorbordercolor,r.lineColor,r.anchorBgColor,"fff000")),a.polynomialRegressionLineColor=(0,l.toRaphaelColor)((0,l.pluck)(n.polynomialregressionlinecolor,t.polynomialregressionlinecolor,a.regressionLineColor)),a.regressionLineThickness=(0,l.pluckNumber)(n.regressionlinethickness,t.regressionlinethickness,n.anchorborderthickness,1),a.polynomialRegressionLineThickness=(0,l.pluckNumber)(n.polynomialregressionlinethickness,t.polynomialregressionlinethickness,a.regressionLineThickness),a.regressionLineAlpha=(0,l.pluckNumber)(n.regressionlinealpha,t.regressionlinealpha,100),a.polynomialRegressionLineAlpha=(0,l.pluckNumber)(n.polynomialregressionlinealpha,t.polynomialregressionlinealpha,a.regressionLineAlpha),(0,c.createLinear)(t,n)&&a.regressionPoints.push((0,o["default"])(n.data,a.showYOnX)),(0,c.createPolynomial)(t,n)&&a.regressionPoints.push((0,s["default"])(n.data,a.showYOnX))},r.draw=function(){var e,t,r,n,a,i,o,s=this._config,c=this.getFromEnv("xAxis"),u=this.getFromEnv("yAxis"),d=this.getFromEnv("chart"),f=d.getChildren("canvas")[0].config,g=this.getContainer("regressionlinecontainer"),p=this.getFromEnv("animationManager"),m=s.regressionPoints,v=[],b=[],y=this.getGraphicalElement("regressionLineLinear"),x=this.getGraphicalElement("regressionLinePolynomial"),C=h;!this.getLinkedParent().getState("visible")&&(o="disappearing"),g=this.addContainer("regressionlinecontainer",p.setAnimation({el:g||"group",attr:{name:"regressionlinecontainer","clip-rect":[f.canvasLeft,f.canvasTop,f.canvasWidth,f.canvasHeight]},container:d.getChildContainer("abovePlotGroup"),component:this,label:"group"}));for(var w=0;w<m.length;w++){var _=l.BLANKSTRING;if(v=m[w][0],e=(b=m[w][1]).length,0===v.length&&0===b.length)n=!0,_+="M0,0";else if(0!==v.length&&0===b.length)n=!1,_+="M0,0";else if(0===v.length)n=!0,_+="M"+c.getPixel(b[0].x)+","+u.getPixel(b[0].y),_+="L"+c.getPixel(b[e-1].x)+","+u.getPixel(b[e-1].y);else{n=!1,_+="M"+c.getPixel(b[0].x)+","+u.getPixel(b[0].y),_+=" R"+c.getPixel(b[1].x)+","+u.getPixel(b[1].y);for(var k=2;k<e;k++)_+=" "+c.getPixel(b[k].x)+","+u.getPixel(b[k].y)}n?a={opacity:Number(s.regressionLineAlpha)/100,stroke:s.regressionLineColor,"stroke-width":s.regressionLineThickness,path:_}:i={opacity:Number((0,l.pluck)(s.polynomialRegressionLineAlpha,s.regressionLineAlpha))/100,stroke:(0,l.pluck)(s.polynomialRegressionLineColor,s.regressionLineColor),"stroke-width":(0,l.pluck)(s.polynomialRegressionLineThickness,s.regressionLineThickness),path:_}}"disappearing"!==o&&(y&&y.show(),x&&x.show()),t=p.setAnimation({el:y||"path",container:g,component:this,doNotRemove:!0,attr:!("disappearing"===o)&&a,callback:"disappearing"===o&&C,label:"path"}),y||this.addGraphicalElement("regressionLineLinear",t),r=p.setAnimation({el:x||"path",container:g,component:this,doNotRemove:!0,attr:!("disappearing"===o)&&i,callback:"disappearing"===o&&C,label:"path"}),x||this.addGraphicalElement("regressionLinePolynomial",r)},t}(i.ComponentInterface);t["default"]=f},function(e,t,r){"use strict";function n(e,t,r){return parseFloat(e[r])-parseFloat(t[r])}function a(e,t){return n(e,t,"x")}function i(e,t){return n(e,t,"y")}t.__esModule=!0,t["default"]=function(e,t){if(Number(t))return function(e){e.sort(a);for(var t,r,n,i,o=[],s=[],l=0,c=0,u=0,d=0,h=e.length,f=[],g=0;g<e.length;g++)n=Number(e[g].x),i=Number(e[g].y),isNaN(n)||isNaN(i)||(o.push(n),s.push(i));h=o.length;for(var p=0;p<h;p++)l+=o[p],c+=s[p];l/=h,c/=h;for(var m=0;m<h;m++)u+=(o[m]-l)*(s[m]-c),d+=(o[m]-l)*(o[m]-l);if(0===d)return[[],[]];return r=c-(t=u/d)*l,f.push({x:o[0],y:t*o[0]+r}),f.push({x:o[h-1],y:t*o[h-1]+r}),[[],f]}(e);return function(e){e.sort(i);for(var t,r,n,a,o=[],s=[],l=0,c=0,u=0,d=0,h=e.length,f=[],g=0;g<e.length;g++)n=Number(e[g].x),a=Number(e[g].y),isNaN(n)||isNaN(a)||(o.push(n),s.push(a));h=o.length;for(var p=0;p<h;p++)l+=o[p],c+=s[p];l/=h,c/=h;for(var m=0;m<h;m++)u+=(o[m]-l)*(s[m]-c),d+=(s[m]-c)*(s[m]-c);if(0===d)return[[],[]];return r=l-(t=u/d)*c,(f=[]).push({x:t*s[0]+r,y:s[0]}),f.push({x:t*s[h-1]+r,y:s[h-1]}),[[],f]}(e)}},function(e,t,r){"use strict";function n(e,t){return parseFloat(e.x)-parseFloat(t.x)}t.__esModule=!0,t["default"]=function(e,t){if(Number(t))return function(e){e.sort(n);for(var t,r,a,i,o,s,l,c,u,d,h=[],f=[],g=0,p=0,m=e.length,v=0,b=0,y=0,x=0,C=0,w=[],_=0;_<e.length;_++)u=Number(e[_].x),d=Number(e[_].y),isNaN(u)||isNaN(d)||(h.push(u),f.push(d));m=h.length;for(var k=0;k<m;k++)g+=f[k],p+=h[k]*f[k],C+=h[k]*h[k]*f[k],v+=h[k],b+=h[k]*h[k],x+=h[k]*h[k]*h[k],y+=h[k]*h[k]*h[k]*h[k];if(r=p-v*g/m,i=C-b*g/m,(t=b-v*v/m)*(o=y-b*b/m)-(a=x-b*v/m)*a==0||0===m)return[e,[]];c=g/m-(l=(r*o-i*a)/(t*o-a*a))*(v/m)-(s=(i*t-r*a)/(t*o-a*a))*(b/m);for(var S=0;S<m;S++)w.push({x:h[S],y:s*h[S]*h[S]+l*h[S]+c});return[e,w]}(e);return function(e){e.sort(n);for(var t,r,a,i,o,s,l,c,u,d,h=[],f=[],g=0,p=0,m=e.length,v=0,b=0,y=0,x=0,C=0,w=[],_=0;_<e.length;_++)u=Number(e[_].x),d=Number(e[_].y),isNaN(u)||isNaN(d)||(h.push(u),f.push(d));m=h.length;for(var k=0;k<m;k++)g+=h[k],p+=f[k]*h[k],C+=f[k]*f[k]*h[k],v+=f[k],b+=f[k]*f[k],x+=f[k]*f[k]*f[k],y+=f[k]*f[k]*f[k]*f[k];if(r=p-v*g/m,i=C-b*g/m,(t=b-v*v/m)*(o=y-b*b/m)-(a=x-b*v/m)*a==0||0===m)return[e,[]];c=g/m-(l=(r*o-i*a)/(t*o-a*a))*(v/m)-(s=(i*t-r*a)/(t*o-a*a))*(b/m);for(var S=0;S<m;S++)w.push({x:s*f[S]*f[S]+l*f[S]+c,y:f[S]});return[e,w]}(e)}},function(e,t,r){"use strict";t.__esModule=!0,t.createPolynomial=function(e,t){var r=Number(e.showpolynomialregressionline)||0;return isNaN(t.showpolynomialregressionline)&&r||Number(t.showpolynomialregressionline)},t.createLinear=function(e,t){var r=Number(e.showregressionline)||0;return isNaN(t.showregressionline)&&r||Number(t.showregressionline)},t.isInArray=function(e,t){return t.indexOf(e.toLowerCase())>-1},t.hasRegressionLine=function(e,t){return t.showregressionline||e.showregressionline||t.showpolynomialregressionline||e.showpolynomialregressionline},t.isValidDataset=void 0;var n=["scatter","bubble","errorScatter","selectScatter"];t.isValidDataset=function(e){return function(e){return"dataset"===e.getType()}(e)&&n.indexOf(e.getName())>=0}},function(e,t,r){"use strict";function n(){var e,t=this.getFromEnv("chart").getChildren("canvas")[0],r=0,n=[],a=[];for(n.push(t.config.canvasLeft),n.push(t.config.canvasTop),n.push(0),n.push(t.config.canvasHeight),e=n.length;r<e;)a.push(n[r]),r++;return a[2]=t.config.canvasWidth,[{initialAttr:function(){return{"clip-rect":n}},finalAttr:function(){return{"clip-rect":a}},effect:"linear",slot:"plot"}]}t.__esModule=!0,t["default"]=void 0;var a={"initial.extension.regression":function(){return{"path.appearing":null,"path.updating":null,"path.disappearing":null,"group.appearing":n,"*":null}}};t["default"]=a},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=r(184),i=n(r(290)),o=n(r(291)),s=n(r(308)),l=n(r(309)),c=n(r(310)),u=n(r(311)),d=n(r(312)),h=n(r(313)),f=n(r(314)),g=n(r(315)),p=r(192),m=n(r(316)),v={DragZoomIn:o["default"],ZoomResetButton:s["default"],ZoomOutButton:l["default"],DbTapZoom:u["default"],DragPin:d["default"],ZoomInButton:c["default"],DragPan:h["default"],PinchZoom:f["default"],SwipeGesture:g["default"]};var b={extension:function(e){var t,r;(0,m["default"])((0,p.getDep)("redraphael","plugin")),e.addEventListener("instantiated",(function(e){var n,o=e.sender;"canvas"===o.getType()&&o.registerFactory("inputManager",(function(e){if(r=e.getFromEnv("chart"),t=r.constructor.includeInputOptions&&r.constructor.includeInputOptions()){(0,a.componentFactory)(e,i["default"],"inputManager",1,[{}]),n=e.getChildren("inputManager")[0];for(var o=0,s=t&&t.length;o<s;o++)(0,a.componentFactory)(n,v[t[o]],t[o],1,[{}])}}))}))},name:"inputAdapter",type:"extension",requiresFusionCharts:!0};t["default"]=b},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(199),o=r(184),s=function(e,t,r,n){var a,i;(i=n[e])&&(i.some((function(e,n){return e.callback===t&&e.component===r&&(a=n,!0)})),a!==o.UNDEF&&i.splice(a,1))},l=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.configure=function(){var e=this.getFromEnv("chart"),t=e.getInputConfigurations;this.addToEnv("canvas",this.getLinkedParent()),this.addToEnv("inputOptions",t&&t.call(e)),this.config={controlObj:{},dependancyObj:{}}},r.addEventToChild=function(){var e=this,t=e.getChildren(),r=["zoomin","zoomout","dragzoomenabled","dragzoomdisabled","pinenabled","pindisabled","panenabled","pandisabled"],n=function(n){r.forEach((function(r){e.addExtEventListener(r,e.manageEvents.bind(e),t[n][0])}))};for(var a in t)n(a)},r.manageEvents=function(e){var t=this.config.dependancyObj,r=e.type;t[r]&&t[r].forEach((function(t){t.component!==e.sender&&t.callback.call(t.component,e)}))},r.fetchZoomableAxes=function(){if(!this.config.axesObArr){var e=this.config.axesObArr=[];this.getLinkedParent().getAxes().forEach((function(t){(t.config.zoomable||t.config.pannable)&&e.push({axis:t.axis,stack:[],isY:t.isY})})),this.addToEnv("axesObArr",e)}},r.draw=function(){this.fetchZoomableAxes(),this.addEventToChild()},r.getControl=function(e,t){var r,n=this.config.controlObj,a=this.getLinkedParent();t||e.forEach((function(e){(r=e.nativeInteraction)instanceof Array?r.forEach((function(t){(n[t]||(n[t]=[])).push({callback:e.callback,component:e.component}),e.component.addExtEventListener(t,e.callback,a)})):((n[r]||(n[r]=[])).push({callback:e.callback,component:e.component}),e.component.addExtEventListener(r,e.callback,a))}))},r.releaseControl=function(e){var t,r=this,n=r.getLinkedParent();e.forEach((function(e){(t=e.nativeInteraction)instanceof Array?t.forEach((function(t){e.component.removeExtEventListener(t,e.callback,n),s(t,e.callback,e.component,r.config.controlObj)})):(e.component.removeExtEventListener(t,e.callback,n),s(t,e.callback,e.component,r.config.controlObj))}))},r._updateControlObj=function(e,t){var r,n;(n=this.config.controlObj[e])&&(n.some((function(e,n){return e.callback===t&&(r=n,!0)})),r!==o.UNDEF&&n.splice(r,1))},r.registerDependancy=function(e){var t,r=this.config.dependancyObj;e.forEach((function(e){(t=e.derivedInteraction)instanceof Array?t.forEach((function(t){(r[t]||(r[t]=[])).push({callback:e.callback,component:e.component,derivedInteraction:t})})):(r[t]||(r[t]=[])).push(e)}))},r.removeDependancy=function(e){var t,r=this;e.forEach((function(e){(t=e.derivedInteraction)instanceof Array?t.forEach((function(t){s(t,e.callback,e.component,r.config.dependancyObj)})):s(t,e.callback,e.component,r.config.dependancyObj)}))},r.zoomOut=function(){var e=this.getChildren("ZoomOutButton");e&&e[0].zoomOut()},r.zoomTo=function(e,t){var r=this.getChildren("DragZoomIn");r&&r[0].zoomTo(e,t)},r.resetChart=function(){var e=this.getChildren("ZoomResetButton");e&&e[0].zoomOut()},r.setZoomMode=function(e){var t=this.getChildren("DragPin");t&&(e?t[0].disable():t[0].enable())},t}(i.ComponentInterface);t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(201)),i=n(r(198)),o=n(r(292)),s=r(184),l=Math.min,c=Math.abs,u=function(e){function t(){var r;r=e.call(this)||this;var n=(0,a["default"])(r);return n.controlArr=[{nativeInteraction:["fc-dragstart"],callback:n.dragStart.bind(n),component:n},{nativeInteraction:["fc-dragmove"],callback:n.onDrag.bind(n),component:n},{nativeInteraction:["fc-dragend"],callback:n.onDragEnd.bind(n),component:n}],s.isFirefox&&n.controlArr.push({nativeInteraction:["fc-mousedown"],callback:t.mousedown,component:n}),n._toggle=function(){n._checkStackLen()&&n.toggle()},r}(0,i["default"])(t,e);var r=t.prototype;return r.getName=function(){return"dragZoomIn"},r.configure=function(){e.prototype.configure.call(this);var t=this.config;t.boxStyle=t.boxStyle||{"stroke-width":1,stroke:"red",fill:"#00FF00",opacity:.2,cursor:"ne-resize"},!this.config.skipGraphics&&this.setLinkedItem("button",this.createButton({icon:"zoomModeIcon",tooltext:this.config.tooltext,handlers:{click:this._toggle},state:"activated"})),this.enable("pressed"),this.getLinkedParent().registerDependancy([{derivedInteraction:["pinenabled","pindisabled","panenabled","pandisabled"],callback:this.dependancyFn,component:this}])},t.mousedown=function(e){e&&e.preventDefault()},r.setControl=function(){var e=this.getLinkedParent(),t=this.getLinkedItem("button"),r=this.controlArr;e.releaseControl(r),this.isEnabled()&&e.getControl(r),t&&t.setCurrentState(this.isEnabled()?this.config.state:"disabled")},r.getCoordinates=function(e){var t=this.getFromEnv("chart"),r=(0,s.getMouseCoordinate)(t.getFromEnv("chart-container"),e,t);return{x:r.chartX,y:r.chartY}},r.inCanvasLimit=function(e){var t=this.getFromEnv("canvas").getGraphicalElement("canvasElement").attrs,r=t.x,n=t.y,a=e.x-t.x,i=e.y-t.y,o=t.width-a,s=t.height-i;return e.x>r&&e.y>n&&e.width<o&&e.height<s},r.drawBox=function(){var e,t=this.config,r=this.getGraphicalElement("box"),n=this.getFromEnv("canvas").getGraphicalElement("canvasElement").attrs;r||(r=this.addGraphicalElement("box",this.getFromEnv("paper").rect())).attr(t.boxStyle),e=function(e,t,r,n){t.x<r.x&&(t.x=r.x),t.y<r.y&&(t.y=r.y),t.x>r.width+r.x&&(t.x=r.width+r.x),t.y>r.height+r.y&&(t.y=r.height+r.y);var a,i=t.x-e.x,o=e.y-t.y;return i>0&&o>0?a=n?"ne-resize":"e-resize":i<0&&o>0?a=n?"nw-resize":"w-resize":i<0&&o<0?a=n?"sw-resize":"w-resize":i>0&&o<0&&(a=n?"se-resize":"e-resize"),{x:l(e.x,t.x),y:l(e.y,t.y),width:i=c(i),height:o=c(o),cursor:a}}(this.dragBoxConfig.startPos,this.dragBoxConfig.currentPos,n,this.getFromEnv("chart").isXY),t.scaleX||(e.x=n.x,e.width=n.width),t.scaleY||(e.y=n.y,e.height=n.height),r.attr(e),r.show()},r.onDragEnd=function(e){var t,r,n,a,i=this.config,o=this.getFromEnv("canvas").getGraphicalElement("canvasElement").attrs,s=this.getGraphicalElement("box")||{},l=s.attrs;l&&i.dragmove&&(i.dragmove=!1,s.hide(),i.startPosX=t=(l.x-o.x)/o.width,i.endPosX=r=(l.x+l.width-o.x)/o.width,i.startPosY=n=(l.y-o.y)/o.height,i.endPosY=a=(l.y+l.height-o.y)/o.height,r-t<.01||a-n<.01||this.zoomTo(void 0,void 0,e))},r.zoomTo=function(e,t,r){var n,a,i,o,s,l,c,u,d=this,h=d.config,f=!1,g={},p=h.catZoomLimit-1;d.getFromEnv("axesObArr").forEach((function(m){var v=m.axis,b=v.getVisibleConfig(),y=m.isY?b.maxValue:b.minValue,x=b.maxValue-b.minValue;m.isY?(o=n=void 0===e?y-x*h.endPosY:e,l=a=void 0===t?y-h.startPosY*x:t):(s=n=void 0===e?y+h.startPosX*x:e,c=a=void 0===t?y+x*h.endPosX:t,g=d.constructor._getZoomInfo(s,c,v)),p&&!v.config.isVertical&&Math.round(a-n)<p&&(n=Math.round(n),a=n+p),(x>1||a-n>1)&&(h.dragendFn&&"function"==typeof h.dragendFn&&h.dragendFn(r,n,a),u=v.setVisibleConfig(n,a),f=f||u,m.stack.push(b),i=m.stack.length+1)})),f&&d._raiseZoomEvents("zoomin","zoomedin",Object.assign(g,{level:i,startX:s,endX:c,startY:o,endY:l},{originalEvent:r&&r.originalEvent}))},r.onDrag=function(e){var t=this.config,r=this.getCoordinates(e.originalEvent);t.dragmove=!0,this.getFromEnv("animationManager").setAnimationState("drag"),t.dragmoveFn&&"function"==typeof t.dragmoveFn&&t.dragmoveFn(e),this.dragBoxConfig.currentPos=r,this.drawBox()},r.dragStart=function(e){var t=this.config,r=this.getCoordinates(e.originalEvent);t.dragstartFn&&"function"==typeof t.dragstartFn&&t.dragstartFn(e),this.dragBoxConfig={startPos:r,currentPos:r}},r.enable=function(){!0!==this.config.enabled&&(this.config.enabled=!0,this.config.state="pressed",this.fireEvent("dragzoomenabled"),this.setControl())},r.disable=function(){!1!==this.config.enabled&&(this.config.enabled=!1,this.config.state="activated",this.fireEvent("dragzoomdisabled"),this.setControl())},r.dependancyFn=function(e){"pinenabled"===e.type||"panenabled"===e.type?this.disable():"pindisabled"!==e.type&&"pandisabled"!==e.type||this.enable()},t}(o["default"]);t["default"]=u},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(199),o=r(293),s=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.configure=function(){var e=this.config={},t=this.getFromEnv("inputOptions")||{};Object.assign(e,t[this.getName()])},r._checkStackLen=function(){var e=this.getFromEnv("axesObArr"),t=0;return e&&e.forEach((function(e){t+=e.stack.length})),t},t._getZoomInfo=function(e,t,r){var n={startIndex:Math.ceil(e),endIndex:Math.floor(t)};return r.getLabel&&(n.startLabel=r.getLabel(n.startIndex).label,n.endLabel=r.getLabel(n.endIndex).label),n},r._raiseZoomEvents=function(e,t,r,n){var a=this.getFromEnv("chart");e&&this.fireEvent(e),t&&a.fireChartInstanceEvent(t,r,n),t&&a.fireChartInstanceEvent("zoomed",r,n)},r.getType=function(){return"canvasInput"},r.enable=function(e){!0!==this.config.enabled&&(this.config.enabled=!0,e&&this.fireEvent(e),this.setControl())},r.disable=function(e){!1!==this.config.enabled&&(this.config.enabled=!1,e&&this.fireEvent(e),this.setControl())},r.toggle=function(e){this.isEnabled()?this.disable(e):this.enable(e)},r.isEnabled=function(){return this.config.enabled},r.setControl=function(){var e=this.getLinkedItem("button");e&&e.setCurrentState(this.isEnabled()?this.config.state:"disabled")},r.createButton=function(e){var t,r=this.getLinkedParent().getFromEnv("chart");for(var n in(t=r.getFromEnv("toolbar").attachChild(o.Tool,"tool",this.getId())).configure(Object.assign({},r.getFromEnv("tool-config"),{name:e.icon,tooltext:e.tooltext})),e.handlers)e.handlers.hasOwnProperty(n)&&t.addEventListener("fc-"+n,e.handlers[n]);return t.setLinkedItem("input",this),t},t}(i.ComponentInterface);t["default"]=s},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0;var a=r(294);t.ScrollBar=a.ScrollBar,t.Checkbox=a.Checkbox,t.Hamburger=a.Hamburger,t.Label=a.Label,t.MenuItemContainer=a.MenuItemContainer,t.Tool=a.Tool;var i=n(r(307));t.ToolBar=i["default"]},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0;var a=n(r(295));t.ScrollBar=a["default"];var i=n(r(301));t.Checkbox=i["default"];var o=n(r(302));t.Hamburger=o["default"];var s=n(r(305));t.Label=s["default"];var l=n(r(306));t.Separator=l["default"];var c=n(r(303));t.MenuItemContainer=c["default"];var u=n(r(296));t.Tool=u["default"]},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(184),o=n(r(296)),s=n(r(298)),l=n(r(299)),c=n(r(300)),u=r(297),d=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this),this.config.scale=1},r.configureAttributes=function(t){void 0===t&&(t={}),e.prototype.configureAttributes.call(this,t);var r=this.config,n=this.getFromEnv("chart-attrib");r.conf={},r.color=n.scrollcolor&&(0,i.convertColor)(n.scrollcolor),r.padding=(0,i.pluckNumber)(n.scrollpadding,0),r.height=(0,i.pluckNumber)(n.scrollheight,12),r.width=(0,i.pluckNumber)(n.scrollwidth,12),r.displayFlat=(0,i.pluckNumber)(n.flatscrollbars,0),r.scrollBar3DLighting=(0,i.pluckNumber)(n.scrollbar3dlighting,1),r.startPercent=Math.min(1,Math.max(0,parseFloat(n.scrolltoend)||0)),r.showButtons=!!(0,i.pluckNumber)(n.scrollshowbuttons,1),r.buttonPadding=(0,i.pluckNumber)(n.scrollbtnpadding,0),r.style=t.style,r.drawStripes=t.drawStripes,r.restrictScrollAnchor=(0,i.pluckNumber)(t.restrictScrollAnchor,1),this.setConfiguaration(t),r.evt={tooltext:void 0,click:i.stubFN,hover:[i.stubFN,i.stubFN]},this.createScrollItems()},r.createScrollItems=function(){var e=this.config,t=e.style||{},r=this.getChildren("scrollTrack")&&this.getChildren("scrollTrack")[0],n=this.getChildren("scrollAnchor")&&this.getChildren("scrollAnchor")[0],a=this.getChildren("scrollButtons")&&this.getChildren("scrollButtons")[0],i=this.getChildren("scrollButtons")&&this.getChildren("scrollButtons")[0];r||((r=this.attachChild(s["default"],"scrollTrack")).configure({style:{track:t.track},color:e.color,displayFlat:e.displayFlat,isHorizontal:e.isHorizontal}),r.attachEventHandlers()),n||((n=this.attachChild(l["default"],"scrollAnchor")).configure({style:{scroller:t.scroller,grip:t.grip},drawStripes:e.drawStripes,color:e.color,displayFlat:e.displayFlat,isHorizontal:e.isHorizontal}),n.attachEventHandlers()),!a&&e.showButtons&&((a=this.attachChild(c["default"],"scrollStartButton")).configure({type:"start",color:e.color,style:{button:t.button,arrow:t.arrow}}),a.attachEventHandlers()),!i&&e.showButtons&&((i=this.attachChild(c["default"],"scrollEndButton")).configure({type:"end",color:e.color,style:{button:t.button,arrow:t.arrow}}),i.attachEventHandlers())},r.getName=function(){return"scrollbar"},r.getType=function(){return"scrollbar"},r.setConfiguaration=function(e){var t=this.config;t.color||(t.color="#"+this.getFromEnv("chart").getFromEnv("color-manager").getColor("altHGridColor")),(0,u.mergeConf)(e,t)},r.getLogicalSpace=function(){var t=this.config,r=t.conf,n={};return(0,u.mergeConf)(t,n),(0,u.mergeConf)(n,r),e.prototype.getLogicalSpace.call(this)},r.setDimension=function(t){e.prototype.setDimension.call(this,t);var r=this.getLinkedParent(),n=r.getPosition&&r.getPosition()||{},a=this.getChildren("scrollTrack")[0].config;a.transLateX=n.x||0,a.transLateY=n.y||0},r.draw=function(){var e=this.config,t={};e.conf.isHorizontal?delete t.width:delete t.height,(0,u.mergeConf)(t,e,!0),this.addGraphicalElement({el:"group",attr:{name:"scrollContainer"},component:this,container:{id:"scrollbarContainer",label:"scrollbar",isParent:!0},label:"scrollbarGroup",id:"scrollbarGroup"})},r.attachEventHandlers=function(e){var t=this.config.evt;return e&&(e.scroll&&"function"==typeof e.scroll&&(t.scroll=e.scroll),e.scrollStart&&"function"==typeof e.scrollStart&&(t.scrollStart=e.scrollStart),e.scrollEnd&&"function"==typeof e.scrollEnd&&(t.scrollEnd=e.scrollEnd)),this},t}(o["default"]);d.registerSymbol=void 0,d._setConfiguaration=i.stubFN;var h=d;t["default"]=h},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(199),o=r(184),s=r(297),l=function(e){function t(t){var r;return(r=e.call(this,t)||this)._listeners={},r}(0,a["default"])(t,e);var r=t.prototype;return r.getName=function(){return"button"},r.getType=function(){return"tool"},r.__setDefaultConfig=function(){var e=this.config;e.scale=1.15,e.width=o.touchEnabled?20:15,e.height=o.touchEnabled?20:15,e.radius=o.touchEnabled?4:2,e.spacing=2.5,e.marginTop=2.5,e.marginLeft=2.5,e.marginRight=2.5,e.marginBottom=2.5,e.fill="ffffff",e.fillAlpha="cccccc",e.symbolFill="ffffff",e.stroke="bbbbbb",e.symbolStroke="9a9a9a",e.strokeWidth=1,e.symbolStrokeWidth=1,e.symbolPadding=5,e.symbolHPadding=5,e.symbolVPadding=5,e.fillAlpha=100,e.stateStyle={},e.text=o.BLANKSTRING,e.marginTop=e.marginLeft=e.marginRight=e.marginBottom=2.5,e.labelFontSize=12},r.configureAttributes=function(e){void 0===e&&(e={});var t,r,n,a=this.config,i=function(e){for(var t in e)if(e.hasOwnProperty(t)){var r=e[t];(r===o.UNDEF||!/tooltext/.test(t)&&""===r)&&delete e[t]}return e}(e);Object.assign(a,i),a.symbolName=a.name,this.setState("visible",!0!==a.isHidden),a.marginTop=(0,o.pluckNumber)(i.marginTop,i.spacing,a.marginTop),a.marginLeft=(0,o.pluckNumber)(i.marginLeft,i.spacing,a.marginLeft),a.marginRight=(0,o.pluckNumber)(i.marginRight,i.spacing,a.marginRight),a.marginBottom=(0,o.pluckNumber)(i.marginBottom,i.spacing,a.marginBottom),a.fill=(0,o.pluck)(i.fill,a.fill),a.fillAlpha=(0,o.pluckNumber)(i.fillAlpha,a.fillAlpha),a.labelFill=(0,o.pluck)(i.labelFill,a.labelFill),a.symbolFill=(0,o.pluck)(i.symbolFill,a.symbolFill),a.hoverFill=(0,o.pluck)(i.hoverFill,a.hoverFill),a.stroke=(0,o.pluck)(i.stroke,a.stroke),a.symbolStroke=(0,o.pluck)(i.symbolStroke,a.symbolStroke),a.strokeWidth=(0,o.pluckNumber)(i.strokeWidth,a.strokeWidth),a.symbolStrokeWidth=(0,o.pluckNumber)(i.symbolStrokeWidth,a.symbolStrokeWidth),t=a.symbolPadding=(0,o.pluckNumber)(i.symbolPadding,a.symbolPadding),a.symbolHPadding=(0,o.pluckNumber)(i.symbolHPadding,t),a.symbolVPadding=(0,o.pluckNumber)(i.symbolVPadding,t),a.hAlign=(0,o.pluck)(i.hAlign,"center").toLowerCase(),a.vAlign=(0,o.pluck)(i.vAlign,"middle").toLowerCase(),a.containerInfo=i.containerInfo||{id:"group",label:"group",isParent:!0},r=i.x,n=i.y,void 0===r||void 0===n?a.spaceNotHardCoded=!0:(a.x=r,a.y=n,a.spaceNotHardCoded=!1)},r.setDimension=function(e){void 0===e&&(e={});var t=this.config;e.x!==o.UNDEF&&(t.x=e.x),e.y!==o.UNDEF&&(t.y=e.y),e.width!==o.UNDEF&&(t.width=t.width&&t.width>e.width?t.width:e.width),e.height!==o.UNDEF&&(t.height=t.height&&t.height>e.height?t.height:e.height)},r.getAlignment=function(){return{hAlign:this.config.hAlign,vAlign:this.config.vAlign}},r.getLogicalSpace=function(){var e=this.config,t=e.width,r=e.height,n=e.marginTop,a=e.marginLeft,i=e.marginRight,o=e.marginBottom,s=e.scale;return t*=s,r*=s,(this.config.skipGraphics||this.getState("removed"))&&(t=r=o=a=i=n=0),{width:t,height:r,marginTop:n,marginLeft:a,marginRight:i,marginBottom:o}},r.setCurrentState=function(e){this.config.state=e,this.asyncDraw()},r.getCurrentState=function(){return this.config.state},r.draw=function(){var e,t,r,n=this.config,a=n,i=n.text,l=this.getFromEnv("tool-config");n.skipGraphics||(t={width:n.width*n.scale,height:n.height*n.scale,r:n.radius*n.scale,verticalPadding:n.symbolVPadding*n.scale,horizontalPadding:n.symbolHPadding},e=(0,o.extend2)({},n.stateStyle[n.state]||s.preConfig[n.state]||{}),"activated"!==n.state&&"disabled"!==n.state&&"pressed"!==n.state||(e.config.normal.fill=(0,o.convertColor)((0,o.pluck)(l.fill,e.config.normal.fill)),e.config.normal["symbol-stroke"]=(0,o.convertColor)((0,o.pluck)(l.symbolStroke,e.config.normal["symbol-stroke"])),e.config.normal.symbolFill=(0,o.convertColor)((0,o.pluck)(l.symbolFill,e.config.normal.symbolFill)),e.config.normal.stroke=(0,o.convertColor)((0,o.pluck)(l.stroke,e.config.normal.stroke)),e.config.normal.symbolStroke=(0,o.convertColor)((0,o.pluck)(l.symbolStroke,e.config.normal.symbolStroke)),e.config.hover.fill=(0,o.convertColor)((0,o.pluck)(l.hoverFill,e.config.hover.fill))),(r=(0,o.extend2)({button:[n.x,n.y,i,n.symbolName,t,n.labelFontSize,n.labelFontFamily],"button-label":i,"button-padding":[n.symbolHPadding,n.symbolVPadding*n.scale],"button-repaint":[a.x,a.y,n.width*n.scale,n.height*n.scale,n.radius*n.scale],fill:(0,o.convertColor)(n.fill),labelFill:(0,o.convertColor)(n.labelFill),symbolFill:(0,o.convertColor)(n.symbolFill),hoverFill:n.hoverFill,stroke:(0,o.convertColor)(n.stroke),"symbol-stroke":(0,o.convertColor)(n.symbolStroke||n.stroke),"stroke-width":n.strokeWidth,"symbol-stroke-width":(0,o.pluckNumber)(n.symbolStrokeWidth,n.strokeWidth)},e)).fill=(0,o.convertColor)((0,o.pluck)(n.fill,e.fill)),!n.isHidden&&this.addGraphicalElement({el:"button",attr:r,css:n.btnTextStyle,component:this,container:n.containerInfo,label:"button",id:"button",tooltext:n.tooltext}))},r.hide=function(){this.config.isHidden=!0,this.setState("visible",!1),this.asyncDraw()},r.show=function(){this.config.isHidden=!1,this.setState("visible",!0),this.asyncDraw()},t}(i.SmartRenderer);t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t.getEventHandlersFor=function(e,t){var r=function(){a["default"].listen(t,"mousemove",(function(e){e.originalEvent.stopPropagation()}))};switch(e){case"click":return function(e){a["default"].listen(t,"click",(function(t){t.target&&t.target.parentNode&&e.call(t.target)})),r()};case"hover":return function(e,n){a["default"].listen(t,"pointerhover",(function(t){t.target&&t.target.parentNode&&("start"===t.state?e:n).call(t.target)})),r()}}},t.mergeConf=function(e,t,r){var n,a;for(n in e)if((a=e[n])!==o.UNDEF&&null!==a)if(r){if(t[n])continue;t[n]=a}else t[n]=a},t.bottomPath=function(e,t,r,n,a){var i=e,o=t,s=n/2,l=Math.round(a/4+1),c=o+l+3;return["M",i-s,c,"L",i+s,c]},t.RSymbolFns=t.defaultTextStyle=t.SymbolStore=t.preConfig=t.DEFAULT_TIMEOUT=t.CLICK=t.HOVER=void 0;var a=n(r(186)),i=r(192),o=r(184),s={activated:{config:{hover:{fill:"#ffffff",labelFill:"#ffffff",symbolFill:"#ffffff",hoverFill:"#ffffff","fill-symbol":"#ffffff","stroke-width":1,stroke:"#aaaaaa","symbol-stroke":"#aaaaaa",cursor:"pointer"},normal:{fill:"#ffffff",labelFill:"#ffffff",symbolFill:"#ffffff",hoverFill:"#ffffff","fill-symbol":"#ffffff",stroke:"#c2c2c2","symbol-stroke":"#c2c2c2","stroke-width":1,cursor:"pointer"},disable:{fill:"#ffffff",labelFill:"#ffffff",symbolFill:"#ffffff",hoverFill:"#ffffff","fill-symbol":"#ffffff","stroke-width":1,stroke:"#e3e3e3","symbol-stroke":"#e3e3e3","stroke-opacity":1,cursor:"pointer"},pressed:{fill:"#efefef",labelFill:"#efefef",symbolFill:"#efefef",hoverFill:"#efefef","fill-symbol":"#efefef","stroke-width":1,stroke:"#c2c2c2","symbol-stroke":"#c2c2c2",cursor:"pointer"}},"button-disabled":!1,fill:"#ffffff",labelFill:"#ffffff",symbolFill:"#ffffff",hoverFill:"#ffffff",stroke:"#c2c2c2","symbol-stroke":"#c2c2c2","stroke-opacity":1,cursor:"pointer"},disabled:{config:{hover:{fill:"#ffffff",labelFill:"#ffffff",symbolFill:"#ffffff",hoverFill:"#ffffff","fill-symbol":"#ffffff","stroke-width":1,stroke:"#e3e3e3","symbol-stroke":"#e3e3e3",cursor:"default"},normal:{fill:"#ffffff",labelFill:"#ffffff",symbolFill:"#ffffff",hoverFill:"#ffffff","fill-symbol":"#ffffff",stroke:"#e3e3e3","symbol-stroke":"#e3e3e3","stroke-width":1,cursor:"default"},disable:{fill:"#ffffff",labelFill:"#ffffff",symbolFill:"#ffffff",hoverFill:"#ffffff","fill-symbol":"#ffffff","stroke-width":1,stroke:"#e3e3e3","symbol-stroke":"#e3e3e3","stroke-opacity":1,cursor:"default"},pressed:{fill:"#ffffff",labelFill:"#ffffff",symbolFill:"#ffffff",hoverFill:"#ffffff","fill-symbol":"#ffffff","stroke-width":1,stroke:"#e3e3e3","symbol-stroke":"#e3e3e3",cursor:"default"}},fill:"#ffffff",labelFill:"#ffffff",symbolFill:"#ffffff",hoverFill:"#ffffff","button-disabled":!1,stroke:"#e3e3e3","symbol-stroke":"#e3e3e3","stroke-opacity":1,cursor:"default"},pressed:{config:{hover:{fill:"#dcdcdc",labelFill:"#dcdcdc",symbolFill:"#ffffff",hoverFill:"#dcdcdc","fill-symbol":"#ffffff","stroke-width":1,stroke:"#b7b7b7","symbol-stroke":"#b7b7b7",cursor:"pointer"},normal:{fill:"#dcdcdc",labelFill:"#dcdcdc",symbolFill:"#ffffff",hoverFill:"#dcdcdc","fill-symbol":"#ffffff","stroke-width":1,stroke:"#b7b7b7","symbol-stroke":"#b7b7b7",cursor:"pointer"},pressed:{fill:"#dcdcdc",labelFill:"#dcdcdc",symbolFill:"#ffffff",hoverFill:"#dcdcdc","fill-symbol":"#ffffff","stroke-width":1,stroke:"#b7b7b7","symbol-stroke":"#b7b7b7",cursor:"pointer"}},fill:"#dcdcdc",labelFill:"#dcdcdc",symbolFill:"#ffffff",hoverFill:"#dcdcdc","fill-symbol":"#ffffff","stroke-width":1,stroke:"#b7b7b7","symbol-stroke":"#b7b7b7",cursor:"pointer"}};t.preConfig=s,t.CLICK="click",t.HOVER="hover",t.DEFAULT_TIMEOUT=300;var l=(0,i.getDep)("redraphael","plugin"),c={CB_NOT_CHECKED:function(e,t,r){return["M",e-r,t-r]},CB_CHECKED:function(e,t,r){var n=r/4;return["M",e-3*n,t,"L",e-n,t+r,e+r,t-r]}},u=(l.addSymbol("Internal_CB",c.CB_NOT_CHECKED),{register:function(){var e,t,r,n;if(1===arguments.length){if(null===(r=arguments[0])&&r===o.UNDEF||"object"!=typeof r)return;n=r}else{if(!(arguments.length>1))return;if(e=arguments[0],t=arguments[1],"string"!=typeof e||"function"!=typeof t)return;(n={})[e]=t}for(e in n)t=n[e],{}.hasOwnProperty.call(n,e)&&l.addSymbol(e,t)}});t.defaultTextStyle={fill:"#555555",labelFill:"#555555",symbolFill:"#555555",hoverFill:"#555555",fontFamily:"Verdana,sans",fontSize:"12px",fontStyle:"normal",fontWeight:"normal",lineHeight:"14.399999999999999px"},t.SymbolStore=u,t.RSymbolFns=c},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(296)),o=r(192),s=r(196),l=r(184),c=(0,o.getDep)("redraphael","plugin"),u=Math.max,d=function(e){function t(){var t;return(t=e.call(this)||this)._evtHandlers={},t}(0,a["default"])(t,e);var r=t.prototype;return r.configureAttributes=function(e){void 0===e&&(e={}),this.config.style={track:Object.assign({},{fill:e.displayFlat&&e.color||[90*e.isHorizontal,c.tintshade(e.color,.15).rgba,e.color].join("-"),stroke:c.tintshade(e.color,-.75).rgba},e.style.track)}},r.attachEventHandlers=function(){var e,t,r,n,a,i=this,o=i.config,l=i.getLinkedParent(),c=l.config,u=function(){c.scrollPosition>1?(c.scrollPosition=1,t=!1):(c.scrollPosition<0||isNaN(c.scrollPosition))&&(c.scrollPosition=0,t=!1),n.asyncDraw(),"function"==typeof c.evt.scroll&&c.evt.scroll(c.scrollPosition)},d=function f(){c.scrollPosition+=.01,r>=c.scrollPosition&&t&&(u(),i.addJob("dragScrollAnchorRight",f,s.priorityList.draw))},h=function g(){c.scrollPosition-=.01,r<=c.scrollPosition&&t&&(u(),i.addJob("dragScrollAnchorLeft",g,s.priorityList.draw))};i.addEventListener("fc-mousedown",i._evtHandlers.mousedown||(i._evtHandlers.mousedown=function(u){n=l.getChildren("scrollAnchor")[0],a=n.config,t=!0,e=c.isHorizontal?u.originalEvent.layerX-(a._nodeDimensions.x+o.transLateX+a._nodeDimensions.width/2):u.originalEvent.layerY-(a._nodeDimensions.y+o.transLateY+a._nodeDimensions.height/2),(r=e/a.trackLength+c.scrollPosition)>=c.scrollPosition?i.addJob("dragScrollAnchorRight",d,s.priorityList.draw):i.addJob("dragScrollAnchorLeft",h,s.priorityList.draw)})),i.addEventListener("fc-mouseup",i._evtHandlers.mouseup||(i._evtHandlers.mouseup=function(){t=!1}))},r.draw=function(){var e=this.config,t=this.getLinkedParent().config,r=(0,l.crispBound)(t.x+.5,t.y+t.padding+.5,t.width-1,t.height-1,t.strokeWidth);this.addGraphicalElement({el:"rect",attr:{x:r.x,y:r.y,width:u(r.width,0),height:u(r.height,0),r:t.roundEdges?2:0,opacity:e.style.track.opacity},css:e.style.track,container:{id:"scrollbarGroup",label:"scrollbarGroup",isParent:!0},component:this,label:"scrollbarTrack",id:"scrollbarTrack"})},t}(i["default"]);t["default"]=d},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(296)),o=r(184),s=(0,r(192).getDep)("redraphael","plugin"),l=function(e){function t(){var t;return(t=e.call(this)||this)._evtHandlers={},t}(0,a["default"])(t,e);var r=t.prototype;return r.configureAttributes=function(e){void 0===e&&(e={});var t=this.config;t.drawStripes=(0,o.pluckNumber)(e.drawStripes,0),t._nodeDimensions={},t.style={scroller:Object.assign({},{fill:e.displayFlat&&s.tintshade(e.color,-.6).rgba||[270*e.isHorizontal,s.tintshade(e.color,.3).rgba+":40",s.tintshade(e.color,-.7).rgba].join("-"),stroke:s.tintshade(e.color,-.6).rgba},e.style.scroller),grip:Object.assign({},{stroke:"#5F5F5F","stroke-linecap":"round","stroke-width":2},e.style.grip)}},r.attachEventHandlers=function(){var e,t,r,n=this,a=this.getLinkedParent().config,i=a.isHorizontal;n.addEventListener("fc-dragmove",n._evtHandlers.dragmove||(n._evtHandlers.dragmove=function(i){(r=e+i.originalEvent.data[t]/this.config.trackLength)>=1?r=1:(r<=0||isNaN(r))&&(r=0),a.scrollPosition=r,n.asyncDraw(),"function"==typeof a.evt.scroll&&a.evt.scroll(a.scrollPosition)})),n.addEventListener("fc-dragstart",n._evtHandlers.dragstart||(n._evtHandlers.dragstart=function(){t=i?0:1,e=a.scrollPosition,"function"==typeof a.evt.scrollStart&&a.evt.scrollStart(a.scrollPosition)})),n.addEventListener("fc-dragend",n._evtHandlers.dragend||(n._evtHandlers.dragend=function(){"function"==typeof a.evt.scrollEnd&&a.evt.scrollEnd(a.scrollPosition)}))},r.draw=function(){var e,t,r=this.config,n=this.getLinkedParent().config,a=n.x+.5,i=n.y+n.padding+.5,s=n.width-1,l=n.height-1<1?1:n.height-1,c=n.restrictScrollAnchor?Math.max(n.scrollRatio,.01):n.scrollRatio,u=n.isHorizontal,d=(0,o.pluckNumber)(n.scrollPosition,n.startPercent,0),h=0,f=u?s*c:l*c;d>=1?d=1:(d<=0||isNaN(d))&&(d=0),n.showButtons&&(f-=2*(h=u?Math.min(l,.5*s):Math.min(s,.5*l))*c),r.trackLength=e=u?s-2*h-f:l-2*h-f,r.trackOffset=t=u?a+h+.5:i+h+.5,r._nodeDimensions={x:u?t+e*d:a,y:u?i:t+e*d,width:u?f-1<1?1:f-1:s<1?1:s,height:u?l<1?1:l:f-1<1?1:f-1},this.addGraphicalElement({el:"rect",attr:{x:r._nodeDimensions.x,y:r._nodeDimensions.y,width:r._nodeDimensions.width,height:r._nodeDimensions.height,r:n.roundEdges?2:0,opacity:r.style.scroller.opacity},css:r.style.scroller,container:{id:"scrollbarGroup",label:"scrollbarGroup",isParent:!0},component:this,label:"scrollbarAnchor",id:"scrollbarAnchor"}),r.drawStripes&&r._nodeDimensions.width>=8&&this.addGraphicalElement({el:"path",attr:{path:["M",r._nodeDimensions.x+r._nodeDimensions.width/2-3,r._nodeDimensions.y+.2*r._nodeDimensions.height,"v",.6*r._nodeDimensions.height,"m",3,-.6*r._nodeDimensions.height,"v",.6*r._nodeDimensions.height,"m",3,-.6*r._nodeDimensions.height,"v",.6*r._nodeDimensions.height],opacity:r.style.grip.opacity},css:r.style.grip,container:{id:"scrollbarGroup",label:"scrollbarGroup",isParent:!0},component:this,label:"scrollbarAnchorStripe",id:"scrollbarAnchorStripe"})},t}(i["default"]);t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(296)),o=r(192),s=r(184),l=r(196),c=(0,o.getDep)("redraphael","plugin"),u=function(e){function t(){var t;return(t=e.call(this)||this)._evtHandlers={},t}(0,a["default"])(t,e);var r=t.prototype;return r.configureAttributes=function(e){void 0===e&&(e={});var t=this.config;t.type=e.type,t.style={button:Object.assign({},{fill:s.TRACKER_FILL,stroke:"none"},e.style.button),arrow:Object.assign({},{fill:c.tintshade(e.color,-.4).rgba,stroke:"none"},e.style.arrow)}},r.attachEventHandlers=function(){var e,t,r=this,n=r.config,a=r.getLinkedParent(),i=a.config,o=a.getChildren("scrollAnchor")[0],s=function(){i.scrollPosition>=1?i.scrollPosition=1:(i.scrollPosition<=0||isNaN(i.scrollPosition))&&(i.scrollPosition=0),o.asyncDraw(),"function"==typeof i.evt.scroll&&i.evt.scroll(i.scrollPosition)},c=function u(){t=!0,"start"===n.type?i.scrollPosition-=.01:i.scrollPosition+=.01,s(),r.addJob("dragScrollAnchor",u,l.priorityList.draw)};r.addEventListener("fc-mousedown",r._evtHandlers.mousedown||(r._evtHandlers.mousedown=function(){e=setTimeout((function(){r.addJob("dragScrollAnchor",c,l.priorityList.draw)}),300)})),r.addEventListener("fc-mouseup",r._evtHandlers.mouseup||(r._evtHandlers.mouseup=function(){clearTimeout(e),r.removeJob("dragScrollAnchor"),t||("start"===n.type?i.scrollPosition-=.1:i.scrollPosition+=.1,s()),t=!1})),r.addEventListener("fc-mouseout",(function(){t&&r._evtHandlers.mouseup()}))},r.draw=function(){var e=this.config,t=this.getLinkedParent().config,r={id:"scrollbarGroup",label:"scrollbarGroup",isParent:!0},n=t.isHorizontal,a=t.x+.5,i=t.y+t.padding+.5,o=t.width-1<1?1:t.width-1,l=t.height-1<1?1:t.height-1,c=n?Math.min(l,.5*o):Math.min(o,.5*l),u=n?(0,s.polyPathToPath)([3,a+.5*c,i+.5*l,.25*c,180]):(0,s.polyPathToPath)([3,a+.5*o,i+.5*c,.25*c,90]),d=n?(0,s.polyPathToPath)([3,a+o-.5*c,i+.5*c,.25*c,0]):(0,s.polyPathToPath)([3,a+.5*o,i+l-.5*c,.25*c,-90]);this.addGraphicalElement({el:"rect",attr:{x:"start"===e.type?a:n?a+o-c:a,y:"start"===e.type?i:n?i:i+l-c,width:(e.type,n?c:o),height:(e.type,n?l:c),opacity:e.style.button.opacity},css:e.style.button,container:r,component:this,label:"scrollbar"+e.type+"ButtonRect",id:"scrollbar"+e.type+"ButtonRect"}),this.addGraphicalElement({el:"path",attr:{path:"start"===e.type?u:d,opacity:e.style.arrow.opacity},css:e.style.arrow,container:r,component:this,label:"scrollbar"+e.type+"ButtonPath",id:"scrollbar"+e.type+"ButtonPath"})},t}(i["default"]);t["default"]=u},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(296)),o=r(184),s=r(297),l=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.configureAttributes=function(t){void 0===t&&(t={}),e.prototype.configureAttributes.call(this,t);var r=this.config;r.checked=!!t.isChecked,r.interPadding=3,r.symbolName="Internal_CB",r.text=(0,o.pluck)(t.text,""),r.textStyle=s.defaultTextStyle},r.check=function(){this.config.checked=!0,this.asyncDraw()},r.uncheck=function(){this.config.checked=!1,this.asyncDraw()},r.toggle=function(){this.config.checked?this.uncheck():this.check()},r.getContainer=function(){return this.getFromEnv("chart").getChildContainer("buttonGroup")},r.draw=function(){this.config.checked?s.SymbolStore.register("Internal_CB",s.RSymbolFns.CB_CHECKED):s.SymbolStore.register("Internal_CB",s.RSymbolFns.CB_NOT_CHECKED),e.prototype.draw.call(this)},t}(i["default"]);t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(296)),o=r(184),s=n(r(303)),l=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.configureAttributes=function(t){void 0===t&&(t={}),e.prototype.configureAttributes.call(this,t);var r=this.config,n=this.getFromEnv("dataSource").chart;r.baseFontFamily=(0,o.pluck)(t.baseFontFamily,n.basefont,"Verdana,sans"),r.baseFontSize=(0,o.pluckNumber)(t.baseFontSize,n.basefontsize,10),r.baseFontColor=(0,o.pluck)(t.baseFontColor,n.basefontcolor,"595959"),r.skipGraphics=!0,this.createListContainer()},r.createListContainer=function(){this.attachChild(s["default"],"listContainer","listContainer").configure()},r.appendInMenu=function(e){void 0===e&&(e=[]);var t,r,n=this.getChild("listContainer");for(r=e.length,t=0;t<r;t++)n.addItem(e[t]);this.config.skipGraphics=!1},t}(i["default"]);t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(199),o=r(184),s=n(r(304)),l=r(297),c=r(192);function u(e,t){var r,n,a,i;if(void 0===t&&(t={}),(n=e.attachChild(s["default"],"item",t.id)).configure(t),t.menu instanceof Array&&(i=t.menu.length))for(r=n.attachChild(d,"subContainer","subContainer"),e.config.hasSubMenu=!0,r.configure(),a=0;a<i;a++)r.addItem(t.menu[a])}(0,c.addDep)({name:"manuItemContainerAnimation",type:"animationRule",extension:{"*.menuItemContainer.menuItemContainer":null}});var d=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.configureAttributes=function(){var e=this.config;this.setStyle(),e.counter=0,e.hasSubMenu=!1,e._defaultStyle={position:"absolute","z-index":50,top:0+o.PXSTRING,right:"auto",left:"auto",overflow:"hidden",background:"#ffffff",border:"1px solid #646464","box-shadow":"#999999 2px 2px 5px",padding:"5px 3px",display:"none"}},r.setStyle=function(e){void 0===e&&(e={});var t=this.config;t.hoverOverStyle=e.hoverOverStyle||{background:"#333333",color:"#FFFFFF",cursor:o.POINTER},t.hoverOutStyle=e.hoverOutStyle||{background:"#FFFFFF",color:"#000000"}},r.show=function(){var e=this.getLinkedParent().config,t=(0,o.pluckNumber)(e.scale,1.5),r=e.x,n=e.y,a=e.width*t,i=e.height*t,s=+this.getFromEnv("chart").getFromEnv("chartWidth"),l=this.getGraphicalElement("menu","menu").element,c=l.style;clearTimeout(this.config.hideTimer),c.display="block",l.offsetWidth+r>s?(c.left="auto",c.right=s-r-a+o.PXSTRING):(c.left=r+o.PXSTRING,c.right="auto"),c.top=n+i+5+o.PXSTRING,c.bottom="auto",c.display="block"},r.hide=function(e){void 0===e&&(e={});var t,r=this.getGraphicalElement("menu","menu").element;e.instant?r.style.display="none":(t=(0,o.pluckNumber)(e.timeout,l.DEFAULT_TIMEOUT),this.config.hideTimer=setTimeout((function(){r.style.display="none"}),t))},r.addItem=function(e){void 0===e&&(e={}),u(this,e)},r.draw=function(){this.addGraphicalElement({el:"html",attr:{type:"div"},css:this.config._defaultStyle,component:this,label:"menu",id:"menu"}),this.addEventListener("fc-mouseover",this.show),this.addEventListener("fc-mouseout",this.hide)},r.getName=function(){return"menuItemContainer"},r.getType=function(){return"menuItemContainer"},t}(i.SmartRenderer),h=d;t["default"]=h},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(184),o=r(297),s=r(199);(0,r(192).addDep)({name:"manuItemAnimation",type:"animationRule",extension:{"*.menuItem.menuItem":null}});var l=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.configureAttributes=function(e){void 0===e&&(e={});var t=this.config,r=this.getLinkedParent().getLinkedParent().config;t.name=e.name,t.action=e.action&&e.action.toLowerCase()||o.CLICK,t.eventMap={},t.style={padding:"3px 8px",fontFamily:r.baseFontFamily,fontSize:r.baseFontSize+i.PXSTRING,color:"#000000",position:"static",display:"inline",float:"left"},t.pointerStyle={padding:"0px 4px 3px",fontFamily:r.baseFontFamily,fontSize:r.baseFontSize+3+i.PXSTRING,color:"#000000",position:"static",float:"left"},t.itemType=e.menu instanceof Array&&e.menu.length?"subMenu":"item","item"===t.itemType?t.handler=e.handler||i.stubFN:t.handler=i.stubFN,t.hoverOverStyle=e.hoverOverStyle||{},t.hoverOutStyle=e.hoverOutStyle||{}},r.applyStyle=function(e){void 0===e&&(e="mouseover");var t=this.getLinkedParent().config,r=this.getGraphicalElement("menuItem","menuItem"),n=this.getGraphicalElement("container","container"),a=this.getGraphicalElement("menuPointer","menuPointer");switch(e){case"mouseover":r.css(t.hoverOverStyle),n.css(t.hoverOverStyle),a&&a.css(t.hoverOverStyle);break;case"mouseout":r.css(t.hoverOutStyle),n.css(t.hoverOutStyle),a&&a.css(t.hoverOutStyle)}},r.draw=function(){var e=this,t=e.config,r=e.getLinkedParent();e.addGraphicalElement({el:"html",attr:{type:"div"},css:{display:"block",position:"static",overflow:"hidden",height:"100%",width:"100%"},container:{id:"menu",label:"menu",isParent:!0},component:e,label:"container",id:"container"}),r.config.hasSubMenu&&e.addGraphicalElement({el:"html",attr:{type:"div",text:"◂"},css:t.pointerStyle,container:{id:"container",label:"container"},component:e,label:"menuPointer",id:"menuPointer"},!0),e.addGraphicalElement({el:"html",attr:{type:"span",text:t.name},css:t.style,container:{id:"container",label:"container"},component:e,label:"menuItem",id:"menuItem"},!0),e._mouseOverEvent||(e._mouseOverEvent=function(){e.applyStyle("mouseover")}),e._mouseOutEvent||(e._mouseOutEvent=function(){e.applyStyle("mouseout")}),e._clickEvent||(e._clickEvent=function(){"item"===e.config.itemType&&(r.hide({instant:!0}),t.handler())}),e.addEventListener("fc-mouseover",e._mouseOverEvent),e.addEventListener("fc-mouseout",e._mouseOutEvent),e.addEventListener("fc-click",e._clickEvent)},r.getName=function(){return"menuItem"},r.getType=function(){return"menuItem"},t}(s.SmartRenderer);t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(296)),o=r(184),s={left:"start",right:"end",center:"middle"},l={top:o.POSITION_TOP,middle:o.POSITION_MIDDLE,bottom:o.POSITION_BOTTOM},c={0:"0",1:"270",right:"90",cw:"90",left:"270",ccw:"270"},u=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;t.font="Verdana, sans",t.rotateText=0},r.configureAttributes=function(t){void 0===t&&(t={}),e.prototype.configureAttributes.call(this,t);var r=this.config;r.font=(0,o.pluck)(t.font,r.font),r.fontSize=(0,o.pluckFontSize)(t["font-size"],t.fontSize,10)*r.scale,r.fontStyle=(0,o.pluck)(t["font-style"],t.fontStyle,"normal"),r.fontWeight=(0,o.pluck)(t["font-weight"],t.fontWeight,"normal"),r.rotateText=(0,o.pluckNumber)(t.rotateText,r.rotateText),r.rotateAngle=parseFloat(c[(0,o.pluck)(t.rotateAngle&&t.rotateAngle.toLowerCase(),"0")])},r.getTextBound=function(){var e=this.config,t=[];return e.showTextBound&&(t=[(0,o.convertColor)(e.fill),e.borderColor,e.borderThickness,2,e.radius]),t},r.getLogicalSpace=function(){var e,t=this.config,r=(t.width,t.height,t.marginTop),n=t.marginLeft,a=t.marginRight,i=t.marginBottom;return{width:(e=this.getFromEnv("smartLabel").getOriSize(this.config.text,!1)).width,height:e.height,marginTop:r,marginLeft:n,marginRight:a,marginBottom:i}},r.draw=function(){var e,t=this.config;t.text&&(e={x:t.x,y:t.y,text:t.text,fill:(0,o.convertColor)(t.labelFill),"text-bound":this.getTextBound(),"font-style":t.fontStyle,"font-weight":t.fontWeight,"font-family":t.font,"font-size":t.fontSize,"text-anchor":s[t.hAlign],"vertical-align":l[t.vAlign],transform:t.rotateText?(0,o.getSuggestiveRotation)(t.rotateAngle,t.x,t.y):"t0,0"},!t.isHidden&&this.addGraphicalElement({el:"text",attr:e,component:this,container:{id:"group",label:"group",isParent:!0},label:"text",id:"label"}))},t}(i["default"]);t["default"]=u},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(296)),o=r(184),s=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this),this.config.isVertical=1},r.configureAttributes=function(t){void 0===t&&(t={}),e.prototype.configureAttributes.call(this,t);var r=this.config;r.isVertical=(0,o.pluckNumber)(t.isVertical,r.isVertical)},r.draw=function(){var e=this.config,t=e.x,r=e.y,n=e.width,a=e.height,i={path:e.isVertical?["M",t+n/2,r,"v",a]:["M",t,r,"h",n],stroke:e.stroke,"stroke-width":e.strokeWidth,"stroke-linecap":"round"};!e.isHidden&&this.addGraphicalElement({el:"path",attr:i,component:this,container:{id:"group",label:"group",isParent:!0},css:e.css,label:"path",id:"path"})},t}(i["default"]);t["default"]=s},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(199),o=r(184),s=function(e){e.manageSpace&&e.manageSpace()},l=function(e){function t(t){var r;return(r=e.call(this,t)||this).props={},r}(0,a["default"])(t,e);var r=t.prototype;return r.configureAttributes=function(e){void 0===e&&(e={});var t=this.config,r=this.getFromEnv("chartConfig");this.__setDefaultConfig(),this.props.width=(0,o.pluckNumber)(e.width,0),this.props.height=(0,o.pluckNumber)(e.height,0),t.orientation=(0,o.pluck)(e.toolbarorientation,t.orientation),t.hPadding=(0,o.pluck)(e.toolbarhpadding,t.hPadding),t.vPadding=(0,o.pluck)(e.toolbarvpadding,t.vPadding),t.backgroundcolor=(0,o.pluck)(e.toolbarbackgroundcolor,t.backgroundcolor),t.backgroundalpha=(0,o.pluck)(e.toolbarbackgroundalpha,t.backgroundalpha),t.bordercolor=(0,o.pluck)(e.toolbarbordercolor,t.bordercolor),t.borderalpha=(0,o.pluck)(e.toolbarborderalpha,t.borderalpha),t.borderthickness=(0,o.pluck)(e.toolbarborderthickness,t.borderthickness),t.hDirection=(0,o.pluckNumber)(e.toolbarhdirection,"r"===r.toolbarHAlign?-1:1),t.vDirection=(0,o.pluckNumber)(e.toolbarvdirection,"b"===r.toolbarBAlign?-1:1),t.hAlign=(0,o.pluck)(e.hAlign,"center").toLowerCase(),t.vAlign=(0,o.pluck)(e.vAlign,"middle").toLowerCase(),t.marginTop=(0,o.pluckNumber)(e.marginTop,e.spacing,t.marginTop),t.marginLeft=(0,o.pluckNumber)(e.marginLeft,e.spacing,t.marginLeft),t.marginRight=(0,o.pluckNumber)(e.marginRight,e.spacing,t.marginRight),t.marginBottom=(0,o.pluckNumber)(e.marginBottom,e.spacing,t.marginBottom)},r.__setDefaultConfig=function(){var e=this.config;e.orientation="horizontal",e.hPadding=0,e.vPadding=0,e.backgroundcolor="#eeeeee",e.backgroundalpha=0,e.bordercolor="#eeeeee",e.borderalpha=0,e.borderthickness=1,e.spacing=2.5,e.marginTop=2.5,e.marginLeft=2.5,e.marginRight=2.5,e.marginBottom=2.5},r.getLogicalSpace=function(){var e=this.config,t=this.props,r=0,n=0;return this.getChildren("tool")&&this.getChildren("tool").length&&(this.getChildren("tool").forEach((function(t){if(!t.getState("removed")){var a=t.getLogicalSpace(),i=a.width,s=a.height,l=a.marginTop,c=a.marginLeft,u=a.marginRight,d=a.marginBottom;"horizontal"===e.orientation?(i!==o.UNDEF&&(r+=i+(u||0)+(c||0)),n<(s=s+(l||0)+(d||0))&&(n=s)):(s!==o.UNDEF&&(n+=s+(l||0)+(d||0)),r<(i=i+(u||0)+(c||0))&&(r=i))}})),r+=2*e.hPadding,n+=2*e.vPadding,t.width=t.width>r?t.width:r,t.height=t.height>n?t.height:n),{width:r,height:n,marginTop:e.marginTop,marginLeft:e.marginLeft,marginRight:e.marginLeft,marginBottom:e.marginLeft}},r.manageSpace=function(){var e,t=this.getChildren("tool")||[];for(var r in e="horizontal"===this.config.orientation?this._placeToolHorizontally():this._placeToolVertically())e.hasOwnProperty(r)&&this.getChild(r).setDimension(e[r]);t.forEach(s)},r._placeToolHorizontally=function(){var e,t,r,n=this,a=n.config,i=n.props,o=a.hPadding,s=i.width-a.hPadding,l={},c={left:[],right:[],center:[]},u={left:0,right:0,center:0};return n.getChildren("tool")&&n.getChildren("tool").length&&((a.hDirection>0?n.getChildren("tool"):n.getChildren("tool").slice(0).reverse()).forEach((function(e){if(!e.getState("removed")){var t=e.getAlignment().hAlign,r=e.getLogicalSpace(),o=r.width,s=r.height,d=r.marginTop,h=r.marginLeft,f=r.marginRight,g=r.marginBottom,p=e.getId();u[t]+=o+(h||0)+(f||0),c[t].push(p),l[p]={},l[p].y=n.props.y+d+a.vPadding+(i.height-2*a.vPadding-(s+g+d))/2}})),c.left.forEach((function(e){var t=n.getChild(e).getLogicalSpace(),r=t.width,i=t.marginLeft,s=t.marginRight;o+=i||0,l[e].x=n.props.x+a.hPadding+o,o+=r+(s||0)})),c.right.reverse().forEach((function(e){var t=n.getChild(e).getLogicalSpace(),r=t.width,i=t.marginLeft,o=t.marginRight;s-=r+(o||0),l[e].x=n.props.x+a.hPadding+s,s-=i||0})),e=[u.left+a.hPadding,i.width-(u.right+a.hPadding)],t=Math.abs(e[0]-e[1]),r=e[0]+t/2-u.center/2,c.center.forEach((function(e){var t=n.getChild(e).getLogicalSpace(),i=t.width,o=t.marginLeft,s=t.marginRight;r+=o||0,l[e].x=n.props.x+a.hPadding+r,r+=i+s||0}))),l},r.getAlignment=function(){return{hAlign:this.config.hAlign,vAlign:this.config.vAlign}},r._placeToolVertically=function(){var e,t,r,n=this,a=n.config,i=n.props,o=a.vPadding,s=i.height-a.vPadding,l={top:[],middle:[],bottom:[]},c={top:0,middle:0,bottom:0},u={};return n.getChildren("tool")&&n.getChildren("tool").length&&((a.vDirection>0?n.getChildren("tool"):n.getChildren("tool").reverse()).forEach((function(e){if(!e.getState("removed")){var t=e.getAlignment().vAlign,r=e.getLogicalSpace(),o=r.width,s=r.height,d=r.marginTop,h=r.marginLeft,f=r.marginRight,g=r.marginBottom,p=e.getId();c[t]+=s+(d||0)+(g||0),l[t].push(e.getId()),u[p]={},u[p].x=n.props.x+h+a.hPadding+h+(i.width-2*a.hPadding-(o+h+f))/2}})),l.top.forEach((function(e){var t=n.getChild(e).getLogicalSpace(),r=t.height,i=t.marginTop,s=t.marginBottom;o+=i||0,u[e].y=n.props.y+a.vPadding+o,o+=r+(s||0)})),l.bottom.reverse().forEach((function(e){var t=n.getChild(e).getLogicalSpace(),r=t.height,i=t.marginTop,o=t.marginBottom;s-=r+(o||0),u[e].y=n.props.y+a.vPadding+s,s-=i||0})),e=[c.top+a.vPadding,i.height-(c.bottom+a.vPadding)],t=Math.abs(e[0]-e[1]),r=e[0]+t/2-c.middle/2,l.middle.forEach((function(e){var t=n.getChild(e).getLogicalSpace(),i=t.height,o=t.marginTop,s=t.marginBottom;r+=o||0,u[e].y=n.props.y+a.vPadding+r,r+=i+s||0}))),u},r.setDimension=function(e){void 0===e&&(e={}),e.x!==o.UNDEF&&(this.props.x=e.x),e.y!==o.UNDEF&&(this.props.y=e.y),e.width!==o.UNDEF&&(this.props.width=e.width),e.height!==o.UNDEF&&(this.props.height=e.height)},r.getDimension=function(){return this.props},r.draw=function(){var e=this.config;this.addGraphicalElement({id:"group",el:"group",attr:{name:"toolbar"},container:{id:"toolbar-master",isParent:!0},component:this,label:"group"}),this.addGraphicalElement({id:"carpet",el:"rect",attr:Object.assign({fill:(0,o.toRaphaelColor)({color:e.backgroundcolor,alpha:e.backgroundalpha}),stroke:(0,o.toRaphaelColor)({color:e.bordercolor,alpha:e.borderalpha}),"stroke-width":e.borderthickness},this.getDimension()),container:{label:"group",id:"group"},component:this,label:"carpet"})},r.getName=function(){return"toolbar"},r.getType=function(){return"Toolbar"},t}(i.SmartRenderer);t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(201)),i=n(r(198)),o=n(r(292)),s=function(e){function t(){var t;t=e.call(this)||this;var r=(0,a["default"])(t);return r._toggle=function(){r.isEnabled()&&r.zoomOut()},t}(0,i["default"])(t,e);var r=t.prototype;return r.getName=function(){return"zoomResetButton"},r.configure=function(){e.prototype.configure.call(this);var t=this.getLinkedParent();this.configureButton(),this.disable(),t.registerDependancy([{derivedInteraction:["zoomin","zoomout"],callback:this.dependancyFn,component:this}])},r.configureButton=function(){!this.config.skipGraphics&&this.setLinkedItem("button",this.createButton({icon:"resetIcon",handlers:{click:this._toggle},tooltext:this.config.tooltext,state:"disabled"})),this.disable()},r.enable=function(){this.config.state="activated",e.prototype.enable.call(this)},r.zoomOut=function(){var e,t,r,n,a,i=this,o=i.config.hookFn,s={};i.getFromEnv("axesObArr").forEach((function(l){(a=l.stack[0])&&(i.getFromEnv("chart").getFromEnv("animationManager").setAnimationState("zoomOut"),o&&o(a.minValue,a.maxValue),l.isY?(r=a.minValue,n=a.maxValue):(e=a.minValue,t=a.maxValue,s=i.constructor._getZoomInfo(e,t,l.axis)),l.axis.setVisibleConfig(a.minValue,a.maxValue),l.stack.length=0)})),i._raiseZoomEvents("zoomout","zoomreset",Object.assign(s,{level:1,startX:e,endX:t,startY:r,endY:n})),i.disable()},r.dependancyFn=function(e){"zoomin"===e.type?this.enable():"zoomout"===e.type&&(this._checkStackLen()||this.disable())},t}(o["default"]);t["default"]=s},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(201)),i=n(r(198)),o=function(e){function t(){var t;t=e.call(this)||this;var r=(0,a["default"])(t);return r._toggle=function(){r.isEnabled()&&r.zoomOut()},t}(0,i["default"])(t,e);var r=t.prototype;return r.getName=function(){return"zoomOutButton"},r.configureButton=function(){!this.config.skipGraphics&&this.setLinkedItem("button",this.createButton({icon:"zoomOutIcon",handlers:{click:this._toggle},tooltext:this.config.tooltext,state:"activated"}))},r.zoomOut=function(){var e,t,r,n,a,i,o=this,s=o.config.hookFn,l={},c=0;o.getFromEnv("axesObArr").forEach((function(u){e=u.stack.pop(),t=u.stack.length,c+=t,e&&(u.isY?(a=e.minValue,i=e.maxValue):(r=e.minValue,n=e.maxValue,l=o.constructor._getZoomInfo(r,n,u.axis)),s&&s(e.minValue,e.maxValue),u.axis.setVisibleConfig(e.minValue,e.maxValue))})),o._raiseZoomEvents("zoomout","zoomedout",Object.assign(l,{level:t,startX:r,endX:n,startY:a,endY:i})),c||this.disable()},t}(n(r(308))["default"]);t["default"]=o},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(201)),i=n(r(198)),o=function(e){function t(){var t;t=e.call(this)||this;var r=(0,a["default"])(t);return r._toggle=function(){r.isEnabled()&&r.zoom()},t}(0,i["default"])(t,e);var r=t.prototype;return r.getName=function(){return"zoomInButton"},r.configure=function(){e.prototype.configure.call(this);var t=this.config;t.stepZoom=t.stepZoom||5.33,!t.skipGraphics&&this.setLinkedItem("button",this.createButton({icon:"zoomInIcon",handlers:{click:this._toggle},tooltext:this.config.tooltext,state:"activated"})),this.enable()},r.zoom=function(){var e,t,r,n,a,i,o,s,l,c=this,u={},d=c.config,h=d.hookFn,f=!1,g=Math.pow(10,d.zoomDecimalLimit)||1;c.getFromEnv("animationManager").setAnimationState("zoom"),c.getFromEnv("axesObArr").forEach((function(p){r=p.axis,e=r.getVisibleConfig(),(t=Math.round((e.maxValue-e.minValue)/d.stepZoom*g)/g)>Number.EPSILON&&(p.stack.push(e),p.isY?(i=e.minValue+t,o=e.maxValue-t):(n=e.minValue+t,a=e.maxValue-t,u=c.constructor._getZoomInfo(n,a,r)),s=p.stack.length+1,h&&h(e.minValue,e.maxValue),l=r.setVisibleConfig(e.minValue+t,e.maxValue-t),f=f||l)})),f&&c._raiseZoomEvents("zoomin","zoomedin",Object.assign(u,{level:s,startX:n,endX:a,startY:i,endY:o}))},t}(n(r(292))["default"]);t["default"]=o},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(201)),i=n(r(198)),o=n(r(292)),s=r(184),l=function(e){function t(){var t;t=e.call(this)||this;var r=(0,a["default"])(t);return r.controlArr=[{nativeInteraction:["fc-dbclick"],callback:r.zoom.bind(r),component:r}],t}(0,i["default"])(t,e);var r=t.prototype;return r.getName=function(){return"dbTapZoom"},r.configure=function(){e.prototype.configure.call(this),this.enable()},r.setControl=function(){var e=this.controlArr,t=this.getLinkedParent();t.releaseControl(e),this.isEnabled()&&t.getControl(e)},r.zoom=function(e){var t,r,n,a,i,o,l,c,u,d,h=this,f=h.getFromEnv("chart"),g=(0,s.getMouseCoordinate)(f.getLinkedItem("container"),e,f),p=h.config,m=p.hookFn,v={},b=!1,y=Math.pow(10,p.zoomDecimalLimit)||1;f.getFromEnv("animationManager").setAnimationState("zoom"),h.getFromEnv("axesObArr").forEach((function(e){t=e.axis,r=t.getValue(e.isY?g.chartY:g.chartX),a=t.getVisibleConfig(),n=function(e,t,r,n){var a=t-e.minValue,i=e.maxValue-t;return{min:Math.round((t-a/r*(r-1))*n)/n,max:Math.round((t+i/r*(r-1))*n)/n}}(a,r,p.stepzoom,y),e.isY?(c=n.min,u=n.max):(o=n.min,l=n.max,v=h.constructor._getZoomInfo(o,l,t)),t.getZoom()<=y&&(m&&"function"==typeof p.hookFn&&m(n.min,n.max),i=t.setVisibleConfig(n.min,n.max),b=b||i,e.stack.push(a),d=e.stack.length+1)})),b&&h._raiseZoomEvents("zoomin","zoomedin",Object.assign(v,{level:d,startX:o,endX:l,startY:c,endY:u},e.originalEvent))},t}(o["default"]);t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(201)),i=n(r(198)),o=n(r(292)),s=r(184),l=r(196),c=r(192),u=Math,d=u.min,h=u.max,f=u.abs,g="rgba(255,0,0,"+(s.isIE?.002:1e-6)+")",p=function(e){function t(){var t;t=e.call(this)||this;var r=(0,a["default"])(t);return r.controlArr=[{nativeInteraction:["fc-dragstart"],callback:r.dragstart.bind(r),component:r},{nativeInteraction:["fc-dragmove"],callback:r.dragmove.bind(r),component:r},{nativeInteraction:["fc-dragend"],callback:r.dragend.bind(r),component:r}],r.toggle=r.toggle.bind(r),t}(0,i["default"])(t,e);var r=t.prototype;return r.getName=function(){return"dragPin"},r.configure=function(){e.prototype.configure.call(this);var t=this.getFromEnv("chartConfig"),r=this.getFromEnv("dataSource").chart,n=this.config;n.attr=n.attr||{stroke:"#3399ff",fill:"#b9d5f1","stroke-width":0},n.pinAttr=n.pinAttr||{"stroke-width":0,stroke:"none",fill:"#b9d5f1","shape-rendering":"crisp"},n.borderWidth=t.borderWidth||(t.borderWidth=(0,s.pluckNumber)(r.showborder,1)?(0,s.pluckNumber)(r.borderthickness,1):0),!this.config.skipGraphics&&this.setLinkedItem("button",this.createButton({icon:"pinModeIcon",tooltext:(0,s.pluckNumber)(r.showtoolbarbuttontooltext,1)?(0,s.pluck)(this.config.tooltext,"Pin mode"):"",handlers:{click:this.toggle},state:"activated"})),this.getLinkedParent().registerDependancy([{derivedInteraction:["zoomin","zoomout"],callback:this.dependancyFn,component:this}]),this.disable(void 0,!1)},r.enable=function(e,t){var r=this.config;!0!==r.enabled&&(r.enabled=!0,r.state="pressed",this.fireEvent("pinenabled"),this.setControl(),!t&&this.getFromEnv("chart").fireChartInstanceEvent("zoommodechanged",{pinModeActive:!0},e&&e.originalEvent))},r.dependancyFn=function(e){"zoomin"!==e.type&&"zoomout"!==e.type||this.disable(e)},r.draw=function(){var e,t=this,r=t.config;t.createPin(),t.config.pinElemVisible&&t.addJob("resizePinElem",(function(){e=t.getFromEnv("xAxis")[0],t.pinRangePixels(e.getPixel(r.boxStartValue),e.getPixel(r.boxEndValue))}),l.priorityList.postRender)},r._setConfig=function(){var e=this.getFromEnv("chart"),t=this.getFromEnv("chartConfig"),r=this.config,n=Object.assign({},r.attr||{}),a=n["stroke-width"]=(0,s.pluckNumber)(n.strokeWidth,n["stroke-width"],1),i=(0,s.getPosition)(e.getFromEnv("chart-container"),e);r.zoomX="horizontal"===r.orientation||"both"===r.orientation,r.zoomY="vertical"===r.orientation||"both"===r.orientation,r.canvasY=t.canvasTop,r.canvasX=t.canvasLeft,r.canvasW=t.canvasWidth,r.canvasH=t.canvasHeight,r.canvasX2=t.canvasLeft+t.canvasWidth,r.canvasY2=t.canvasTop+t.canvasHeight,r.strokeWidth=a,r.chartPosLeft=i.left,r.chartPosTop=i.top},r.disable=function(e,t){var r=this.config,n=this.getContainer("pingroup"),a=this.getGraphicalElement("pintracker");!1!==r.enabled&&(r.enabled=!1,r.state="activated",n&&n.hide(),a&&a.hide(),this.fireEvent("pindisabled"),!t&&this.getFromEnv("chart").fireChartInstanceEvent("zoommodechanged",{pinModeActive:!1},e&&e.originalEvent),this.setControl(),r.pinElemVisible=!1)},r.setControl=function(){var e=this.getLinkedParent(),t=this.controlArr,r=this.getLinkedItem("button");e.releaseControl(t),this.isEnabled()&&e.getControl(t),r&&r.setCurrentState(this.config.state)},r.createPin=function(){var e,t,r,n,a,i=this,o=i.getFromEnv("chart"),l=i.getFromEnv("chartConfig"),u=i.getFromEnv("animationManager"),d=l.canvasTop,h=l.canvasBottom,f=l.canvasHeight,p=l.canvasLeft,m=i.config.borderWidth,v=l["clip-pinrect"],b=i.getContainer("pingroup"),y=i.getContainer("pinElemGroup"),x=i.getGraphicalElement("pinrect"),C=i.getGraphicalElement("pintracker");n=l._visw=l.canvasWidth,a=l._visx=l.canvasLeft,e=(0,c.getDep)("redraphael","plugin").crispBound(0,d-h,0,f,m),v=l["clip-pinrect"]=[e.x,d,e.width,e.height],b||i.addContainer("pingroup",b=u.setAnimation({el:"group",finalAttr:{name:"zoompin"},component:i,label:"group"}).insertBefore(o.getChildContainer("plotGroup")).hide()),b.transform(l._pingrouptransform=["T",a,h]),y||i.addContainer("pinElemGroup",y=u.setAnimation({el:"group",attr:{name:"zoompinelements"},component:i,container:b,label:"group"})),i.config.pinAttr.x=0,i.config.pinAttr.y=d-h,i.config.pinAttr.width=n,i.config.pinAttr.height=f,t=u.setAnimation({el:x||"rect",attr:i.config.pinAttr,container:b,component:i}),x||i.addGraphicalElement("pinrect",t),r=u.setAnimation({el:C||"rect",attr:{transform:b.transform(),x:0,y:d-h,width:0,height:f,stroke:"none",fill:g,cursor:s.hasSVG?"ew-resize":"e-resize"},container:o.getChildContainer("trackerGroup"),component:i}).hide(),C||i.addGraphicalElement("pintracker",r),r.undrag(),r.drag((function(e){var t=e.data[0],n=a+t+this.__pindragdelta,o=this.__pinboundleft,l=this.__pinboundright,c=this.data("cliprect").slice(0);n<o?n=o:n>l&&(n=l),b.transform(["T",n,h]),r.transform(b.transform()),s.hasSVG||(c[0]=c[0]+n-a-this.__pindragdelta,u.setAnimation({el:b,attr:{"clip-rect":c},component:i})),this.__pindragoffset=t}),(function(){this.__pinboundleft=0-v[0]+a+p,this.__pinboundright=this.__pinboundleft+n-v[2],this.data("cliprect",b.attr("clip-rect")),b._.clipispath=!0}),(function(){b._.clipispath=!1,this.__pindragdelta+=this.__pindragoffset,delete this.__pindragoffset,delete this.__pinboundleft,delete this.__pinboundright}))},r.pinRangePixels=function(e,t,r){var n,a,i,o,s,l=this.getFromEnv("chart"),c=l.config,u=c.canvasLeft,d=this.getFromEnv("xAxis")[0],h=d.getLimit(),f=h.max,g=h.min,p=this.getContainer("pingroup"),m=c["clip-pinrect"],v=this.getFromEnv("animationManager"),b=c._pingrouptransform,y=[],x=t-e,C=this.getGraphicalElement("pintracker");if(l.iterateComponents((function(e){e.getType&&"dataset"===e.getType()&&y.push(e)})),p&&this.getGraphicalElement("pinrect")){for(e===t&&(p.hide(),C.hide()),s=y.length;s--;)y[s].fireEvent("createpinelements",{group:this.getContainer("pinElemGroup")});m[0]=e+u,m[2]=x,v.setAnimation({el:p,attr:{"clip-rect":m,transform:b},component:this}).show(),C.__pindragdelta=0,C.show(),v.setAnimation({el:C,attr:{transform:b,x:e,width:x},component:this}),this.config.pinElemVisible=!0,n=(n=Math.round(d.getValue(e+u,{wrtVisible:!0})))<g?g:n,a=(a=Math.round(d.getValue(t+u,{wrtVisible:!0})))>f?f:a,i=d.getLabel(n).label,o=d.getLabel(a).label,r&&l.fireChartInstanceEvent("pinned",{startIndex:n||Math.abs(n),endIndex:a||Math.abs(a),startLabel:i,endLabel:o},r.originalEvent)}},r.dragstart=function(e){this._setConfig();var t,r,n=this.getFromEnv("animationManager"),a=this.getFromEnv("chart-container"),i=this.config,o=i.attr,l=this.getGraphicalElement("resizeBox"),c=e.originalEvent,u=i.layerX=(c.pageX||c.data[0])-i.chartPosLeft,d=i.layerY=(c.pageY||c.data[1])-i.chartPosTop,h=i.canvasY,f=i.canvasX,g=i.canvasX2,p=i.canvasY2;t=(0,s.getPosition)(a),i.chartPosLeft=t.left,i.chartPosTop=t.top,i.oy=d,i.ox=u,i.allowMove=!1,o.x=0,o.y=0,o.width=0,o.height=0,r=n.setAnimation({el:l||"rect",attr:o,container:this.getFromEnv("chart").getChildContainer("trackerGroup"),component:this,callback:function(){this.show()}}),l||this.addGraphicalElement("resizeBox",r),u>f&&u<g&&d>h&&d<p&&(i.allowMove=!0),i.dragstartFn&&"function"==typeof i.dragstartFn&&i.dragstartFn(e)},r.dragmove=function(e){this._setConfig();var t=this.config,r=this.getFromEnv("animationManager"),n=e.originalEvent,a=n.pageX||n.data[2],i=n.page||n.data[3],o=t.layerX=a-t.chartPosLeft,s=t.layerY=i-t.chartPosTop,l=o-t.ox,c=s-t.oy,u=t.ox,g=t.oy,p=t.zoomX,m=t.zoomY,v=t.strokeWidth,b=t.canvasW,y=t.canvasH,x=t.canvasY,C=t.canvasX,w=t.canvasX2,_=t.canvasY2;r.setAnimationState("dragMove"),t.allowMove&&(t.isDragged||(t.isDragged=1),l=-(u-d(u-(u-h(u+l,C)),w)),c=-(g-d(g-(g-h(g+c,x)),_)),r.setAnimation({el:this.getGraphicalElement("resizeBox"),attr:{x:(p?d(u,u+l):C)+.5*v,y:(m?d(g,g+c):x)+.5*v,width:p?f(l):b,height:m?f(c):y},component:this}),t.dragmoveFn&&"function"==typeof t.dragmoveFn&&t.dragmoveFn(e))},r.dragend=function(e){this._setConfig();var t,r,n=this.getFromEnv("chart"),a=this.config,i=this.getFromEnv("xAxis")[0],o=this.getGraphicalElement("resizeBox"),s=a.bBox;n.getFromEnv("animationManager").setAnimationState("dragEnd"),s=o.getBBox(),a.isDragged&&(a.dragendFn&&"function"==typeof a.dragendFn&&a.dragendFn(e,{chart:n,selectionLeft:s.x,selectionTop:s.y,selectionHeight:s.height,selectionWidth:s.width,originalEvent:e.originalEvent}),a.isDragged=0),o.hide(),delete a.oy,delete a.ox,(t=s.x-n.config.canvasLeft)!==(r=t+s.width)&&(a.boxStartValue=i.getValue(t),a.boxEndValue=i.getValue(r),this.pinRangePixels(t,r,e))},t}(o["default"]);t["default"]=p},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(201)),i=n(r(198)),o=n(r(292)),s=r(184),l=function(e){function t(){var r;r=e.call(this)||this;var n=(0,a["default"])(r);return n.controlArr=[{nativeInteraction:["fc-dragstart","fc-dragmove"],callback:n.onDrag.bind(n),component:n},{nativeInteraction:["fc-dragend"],callback:n.onDragEnd.bind(n),component:n}],n.toggle=n.toggle.bind(n),s.isFirefox&&n.controlArr.push({nativeInteraction:["fc-mousedown"],callback:t.mousedown,component:n}),r}(0,i["default"])(t,e),t.mousedown=function(e){e&&e.preventDefault()};var r=t.prototype;return r.configure=function(){e.prototype.configure.call(this);!this.config.skipGraphics&&this.setLinkedItem("button",this.createButton({icon:"panModeIcon",tooltext:this.config.tooltext,handlers:{click:this.toggle},state:"activated"})),this.getLinkedParent().registerDependancy([{derivedInteraction:["zoomin","zoomout","dragzoomenabled","dragzoomdisabled"],callback:this.dependancyFn,component:this}]),this.disable(s.UNDEF,!1)},r.getName=function(){return"dragPan"},r.enable=function(e,t){this._checkStackLen()&&!0!==this.config.enabled&&(this.config.enabled=!0,this.config.state="pressed",this.fireEvent("panenabled"),!t&&this.getFromEnv("chart").fireChartInstanceEvent("zoommodechanged",{panModeActive:!0},e&&e.originalEvent),this.setControl())},r.disable=function(e,t){!1!==this.config.enabled&&(this.config.enabled=!1,this.config.state=this._checkStackLen()?"activated":"disabled",this.fireEvent("pandisabled"),!t&&this.getFromEnv("chart").fireChartInstanceEvent("zoommodechanged",{panModeActive:!1},e&&e.originalEvent),this.setControl())},r.setControl=function(){var e=this.getLinkedParent(),t=this.getLinkedItem("button"),r=this.controlArr;e.releaseControl(r),this.isEnabled()&&e.getControl(r),t&&t.setCurrentState(this.isEnabled()?this.config.state:"disabled")},r.setDrag=function(e){this.config.isDragging=!!e},r.isDragging=function(){return!!this.config.isDragging},r.onDragEnd=function(){this.setDrag(!1),this.getFromEnv("chart").getContainer("parentgroup").attr({cursor:"default"})},r.onDrag=function(e){var t,r,n,a,i,o,s,l,c,u,d,h=function(e){var t=e;return t.originalEvent&&(t=t.originalEvent),t.type.match(/touch/)?{x:t.touches[0].pageX,y:t.touches[0].pageY}:t.type.match(/mouse|pointer/)?{x:t.pageX,y:t.pageY}:void 0}(e.originalEvent);(function(e){return!e.touches||1===e.touches.length})(e.originalEvent)&&(this.getFromEnv("chart").getContainer("parentgroup").attr({cursor:"move"}),this.getFromEnv("animationManager").setAnimationState("drag"),this.isDragging()?this.getFromEnv("axesObArr").forEach((function(e){var f,g;if(t=e.origConfig.minValue,r=e.origConfig.maxValue,i=e.axis,o=i.config.axisRange,s=i.getScale(),l=s.getRange(),c=s.getDomain(),u=(l[1]-l[0])/(c[1]-c[0]),f=h,g=e.startCoord,d={x:f.x-g.x,y:f.y-g.y},a=r-t,(n=-(n=e.isY?d.y/u:d.x/u))>0)n=Math.min(o.max-r,n);else{if(!(n<0))return;n=-Math.min(t-o.min,-n)}r=(t+=n)+a,i.setVisibleConfig(t,r)})):(this.getFromEnv("axesObArr").forEach((function(e){e.origConfig=e.axis.getVisibleConfig(),e.startCoord=h})),this.setDrag(!0)))},r.dependancyFn=function(e){"zoomout"===e.type?!this._checkStackLen()&&this.disable():"zoomin"===e.type?this.enable(e):"dragzoomdisabled"===e.type?this._checkStackLen()&&this.enable(e):"dragzoomenabled"===e.type&&this.disable(e)},t}(o["default"]);t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(201)),i=n(r(198)),o=n(r(292)),s=r(184),l=function(e){return e<0?-e:e},c=function(e){function t(){var t;t=e.call(this)||this;var r=(0,a["default"])(t);return r.controlArr=[{nativeInteraction:["fc-pinchstart"],callback:r.pinchstart.bind(r),component:r},{nativeInteraction:["fc-pinchmove"],callback:r.pinchmove.bind(r),component:r}],t}(0,i["default"])(t,e);var r=t.prototype;return r.getName=function(){return"pinchZoom"},r.configure=function(){e.prototype.configure.call(this),this.enable()},r.getCenter=function(e,t){var r=this.getFromEnv("chart"),n=(0,s.getMouseCoordinate)(r.getLinkedItem("container"),{pageX:(e.pageX+t.pageX)/2,pageY:(e.pageY+t.pageY)/2},r);return{x:n.chartX,y:n.chartY}},r.pinchmove=function(e){var t,r,n,a,i,o,s,c,u=this,d=e.originalEvent.data,h=d.distanceX,f=d.distanceY,g=u.config,p=g.touchConfig,m={},v=!1,b={},y=u.getFromEnv("chart"),x=u.getFromEnv("axesObArr"),C=Math.pow(10,g.zoomDecimalLimit)||1,w=y.getChildContainer().plotGroup;t=l(h/p.distanceX),r=l(f/p.distanceY),x.forEach((function(){w.transform(""),w.scale(t,r,p.center.x,p.center.y)})),clearTimeout(g.chartDraw),g.chartDraw=setTimeout((function(){w.transform(""),x.forEach((function(e){var l=e.axis,d=function(e,t,r,n,a){var i=e.getVisibleConfig(),o=e.getValue(t[n?"y":"x"]+e.getTranslation()),s=o-i.minValue,l=i.maxValue-o,c=e.config.axisRange;return{min:Math.round(Math.max(c.min,o-s/r)*a)/a,max:Math.round(Math.min(c.max,o+l/r)*a)/a}}(l,p.center,e.isY?r:t,e.isY,C),h=d.min,f=d.max,g=e.stack,y=l.getVisibleConfig(),x=l.getLimit(),w=g.length-1,_=g[w],k=Math.floor(h)===x.min&&Math.ceil(f)===x.max,S=l.getZoom()>=C;if(_)if(k)e.stack=[],m.zoomout=!0;else if(_.minValue>h&&_.maxValue<f){for(;_&&_.minValue>h&&_.maxValue<f;)g.pop(),_=g[--w];m.zoomout=!0}else S||(g.push(y),m.zoomin=!0);else k||S||(g.push(y),m.zoomin=!0);e.isY?(o=h,s=f):(a=h,i=f,b=u.constructor._getZoomInfo(a,i,l)),c=e.stack.length+1,n=l.setVisibleConfig(h,f),v=v||n})),v&&(m.zoomout&&u._raiseZoomEvents("zoomout","zoomedout",Object.assign(b,{level:c,startX:a,endX:i,startY:o,endY:s})),m.zoomin&&u._raiseZoomEvents("zoomin","zoomedin",Object.assign(b,{level:c,startX:a,endX:i,startY:o,endY:s}))),g.chartDraw=null}),250)},r.pinchstart=function(e){var t,r=e.originalEvent.data,n=r;this.getFromEnv("animationManager").setAnimationState("touch"),n.center=this.getCenter(r.finger0,r.finger1),this.config.touchConfig=r,this.getFromEnv("axesObArr").forEach((function(e){t=e.axis,e.visibleConfig=t.getVisibleConfig(),e.centerVal=t.getValue(e.isY?n.center.y:n.center.x)}))},r.setControl=function(){var e=this.getLinkedParent(),t=this.controlArr;e.releaseControl(t),this.isEnabled()&&e.getControl(t)},t}(o["default"]);t["default"]=c},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(201)),i=n(r(198)),o=n(r(292)),s=r(184),l=function(e){function t(){var t;t=e.call(this)||this;var r=(0,a["default"])(t);return r.controlArr=[{nativeInteraction:["fc-dragend"],callback:r.end.bind(r),component:r},{nativeInteraction:["fc-dragmove"],callback:r.move.bind(r),component:r},{nativeInteraction:["fc-dragstart"],callback:r.start.bind(r),component:r}],t}(0,i["default"])(t,e);var r=t.prototype;return r.getName=function(){return"swipeGesture"},r.configure=function(){e.prototype.configure.call(this),this.enable()},r.getPresentScrollValue=function(){var e=this.config.xAxis,t=e.getVisibleConfig(),r=e.getLimit(),n=t.maxValue-t.minValue,a=r.max-r.min;return(t.minValue-r.min)/(a-n)},r.start=function(e){var t,r,n=this.getFromEnv("chart"),a=this.config;t=(0,s.getMouseCoordinate)(n.getFromEnv("chart-container"),e.originalEvent,n),a.previousX=t.chartX,a.previousY=t.chartY,a.presentScrollValue=r=this.getPresentScrollValue(),n.fireChartInstanceEvent("scrollStart",{scrollPosition:r})},r.move=function(e){var t,r=this.config,n=this.getFromEnv("chart"),a=r.xAxis,i=a.getChildren("scrollBar")&&a.getChildren("scrollBar")[0],o=i&&i.getChildren("scrollAnchor")[0],l=a.config.axisRange,c=(0,s.getMouseCoordinate)(n.getFromEnv("chart-container"),e.originalEvent,n),u=c.chartX,d=c.chartY,h=i&&i.config&&!i.config.isHorizontal?(d-r.previousY)/r.plotDifference:(u-r.previousX)/r.plotDifference,f=a.getVisibleConfig(),g=r.previousScrollValue=r.presentScrollValue,p=f.minValue-h,m=r.axisMin,v=r.axisMax,b=f.maxValue-h;p<m&&m===f.minValue||b>v&&v===f.maxValue||(p<m?(b+=h,b-=h=f.minValue-m,p=m):v<b&&(p+=h,p+=h=v-f.maxValue,b=v),t=(p-l.min)/(l.max-l.min-(b-p)),o.config.scrollPosition=t,n.getFromEnv("animationManager").setAnimationState("scroll"),a.setVisibleConfig(p,b),n.fireChartInstanceEvent("onScroll",{scrollPosition:g}),r.previousX=u,r.previousY=d,r.presentScrollValue=this.getPresentScrollValue())},r.end=function(){var e=this.config;this.getFromEnv("chart").fireChartInstanceEvent("scrollEnd",{previousScrollPosition:e.previousScrollValue,scrollPosition:e.presentScrollValue})},r.setControl=function(){var e=this.getLinkedParent(),t=this.controlArr;e.releaseControl(t),this.isEnabled()&&e.getControl(t)},r.draw=function(){var e=this.config,t=this.getFromEnv("canvas").getAxes().filter((function(e){return!e.isY})),r=e.xAxis=t&&t[0]&&t[0].axis,n=r.config.axisRange;e.plotDifference=r.getPixel(1)-r.getPixel(0),e.axisMin=n.min,e.axisMax=n.max},t}(o["default"]);t["default"]=l},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=function(e){var t=window,r=t.navigator.userAgent,a=/msie/i.test(r)&&!t.opera,i=Math,o=i.min,s=i.round,l=t.parseFloat,c=String,u="rgba(192,192,192,"+(a?.002:1e-6)+")",d={enabled:!1,"false":!1,0:!1,disabled:!0,"true":!0,1:!0};e.define&&e.define([{name:"button",button:function(t,r,n,a,i,o){var s,l=t,c=r,d=n,h=a,f=i,g=o,p=c,m=this.group("button",p),v=l.labelFill,b=l.symbolFill,y=l.fill,x=l.button[5],C=l.button[6],w=l.hoverFill,_=l.stroke,k=l["symbol-stroke"],S=l["stroke-width"],E=l["symbol-stroke-width"],A=l.config;if("object"==typeof l&&l.button){var T=l.button;l=T[0],c=T[1],d=T[2],h=T[3],f=T[4],p=T[5]}for(s in p=p||g,m._.button={bound:this.rect(m),tracker:this.rect(m).attr({fill:u,stroke:u,cursor:"pointer"}).data("compositeButton",m)},!e.is(f,"object")&&(f={}),e.fn.button.fn)m[s]=e.fn.button.fn[s];for(s in e.fn.button.ca)m.ca[s]=e.fn.button.ca[s];return A&&m.attr({config:A}),m.attr({"button-padding":[f.horizontalPadding,f.verticalPadding],"button-label":d,"button-label-size":x,"button-label-family":C,"button-symbol":h,"button-disabled":f.disabled||"false","button-symbol-position":f.symbolPosition,"button-symbol-padding":f.symbolPadding}).attr("button-repaint",[l,c,f.width,f.height,f.r]).attr({labelFill:v,symbolFill:b,fill:y,hoverFill:w,stroke:_,"symbol-stroke":k,"stroke-width":S,"stroke-linecap":"round","symbol-stroke-width":E})},data:{hoverin:function(){var e=this,t=e._.button,r=t.hoverbackIn,n=e._hover||{};n.fill||n["fill-symbol"]||n.stroke||n["stroke-width"]||n.cursor||n.labelFill||n["symbol-stroke"]?(n.fill&&e.bottom.attr("fill",n.fill)&&!n["fill-symbol"]&&t.symbol.attr("fill",n.fill),n["fill-symbol"]&&t.symbol.attr("fill",n["fill-symbol"]),n.stroke&&e.bottom.attr("stroke",n.stroke)&&t.symbol.attr("stroke",n.stroke),n["stroke-width"]&&e.bottom.attr("stroke-width",n["stroke-width"])&&t.symbol.attr("stroke-width",n["stroke-width"]),n.cursor&&t.tracker.attr("cursor",n.cursor),n.labelFill&&t.label&&t.label.attr("fill",n.labelFill),n["symbol-stroke"]&&t.symbol.attr("stroke",n["symbol-stroke"]),r&&r()):r&&!1===r(arguments)||e.attr("fill","hover"),e.hovered=!0},hoverout:function(){var e=this,t=e._.button,r=t.hoverbackOut,n=e._normal||{};n.fill||n["fill-symbol"]||n.stroke||n["stroke-width"]||n.cursor||n.labelFill||n["symbol-stroke"]?(n.fill&&e.bottom.attr("fill",n.fill)&&!n["fill-symbol"]&&t.symbol.attr("fill",n.fill),n.stroke&&e.bottom.attr("stroke",n.stroke)&&t.symbol.attr("stroke",n.stroke),n["fill-symbol"]&&t.symbol.attr("fill",n["fill-symbol"]),n["stroke-width"]&&e.bottom.attr("stroke-width",n["stroke-width"])&&t.symbol.attr("stroke-width",n["stroke-width"]),n["symbol-stroke"]&&t.symbol.attr("stroke",n["symbol-stroke"]),n.labelFill&&t.label&&t.label.attr("fill",n.labelFill),n.cursor&&t.tracker.attr("cursor",n.cursor),r&&r()):r&&!1===r(arguments)||e.attr("fill",e.pressed||e.active?"active":"normal"),e.hovered=!1},mousedown:function(){var e=this,t=e._.button,r=e._pressed||{};r.fill||r["fill-symbol"]||r.stroke||r["stroke-width"]||r.cursor||r.labelFill||r["symbol-stroke"]?(r.fill&&e.bottom.attr("fill",r.fill)&&!r["fill-symbol"]&&t.symbol.attr("fill",r.fill),r.stroke&&e.bottom.attr("stroke",r.stroke)&&t.symbol.attr("stroke",r.stroke),r["fill-symbol"]&&t.symbol.attr("fill",r["fill-symbol"]),r["stroke-width"]&&e.bottom.attr("stroke-width",r["stroke-width"])&&t.symbol.attr("stroke-width",r["stroke-width"]),r.labelFill&&t.label&&t.label.attr("fill",r.labelFill),r["symbol-stroke"]&&t.symbol.attr("stroke",r["symbol-stroke"]),r.cursor&&t.tracker.attr("cursor",r.cursor)):e.attr("fill","active"),e.pressed=!0},mouseup:function(){var e=this,t=e._.button,r=t.callback,n=e._normal||{};n.fill||n["fill-symbol"]||n.stroke||n["stroke-width"]||n.cursor||n.labelFill||n["symbol-stroke"]?(n.fill&&e.bottom.attr("fill",n.fill)&&!n["fill-symbol"]&&t.symbol.attr("fill",n.fill),n.stroke&&e.bottom.attr("stroke",n.stroke)&&t.symbol.attr("stroke",n.stroke),n["fill-symbol"]&&t.symbol.attr("fill",n["fill-symbol"]),n["stroke-width"]&&e.bottom.attr("stroke-width",n["stroke-width"])&&t.symbol.attr("stroke-width",n["stroke-width"]),n.labelFill&&t.label&&t.label.attr("fill",n.labelFill),n["symbol-stroke"]&&t.symbol.attr("stroke",n["symbol-stroke"]),n.cursor&&t.tracker.attr("cursor",n.cursor)):e.attr("fill",(e.hovered?"hover":e.active&&"active")||"normal"),e.pressed=!1,r&&r(arguments)},mousemove:function(){var e=this,t=e._.button,r=t.mousemove;r&&r(arguments)}},fn:{tooltip:function(){return e.el.tooltip&&e.el.tooltip.apply(this._.button.tracker,arguments),this},buttonclick:function(e,t){var r=t,n=this,a=n._.button;return r=r||n,a.callback=function(){return e.apply(r,arguments)},n},labelcss:function(){var e=this._.button,t=e.label;return e.cssArg=arguments,t&&t.css.apply(t,arguments),this.attr("button-repaint",this.attrs["button-repaint"])},buttonhover:function(e,t,r,n,a,i){var o=this,s=o._.button,l=r||o,c=n||o,u=i||o;return a&&(s.mousemove=function(){return a.apply(u,arguments)}),s.hoverbackIn=function(){return e.apply(l,arguments)},s.hoverbackOut=function(){return t.apply(c,arguments)},o},remove:function(){var t,r=this,n=r._.button;for(t in r.attr("button-disabled","true"),n)n[t]&&n[t].remove&&n[t].remove(),n[t]=null;delete r._.button,e.el.remove.apply(r,arguments)}},ca:{"button-active":function(e){var t=this;t.attr("fill",(t.active=!!e)?"active":t.hovered?"hover":"normal")},"button-disabled":function(e){var t=this,r=e,n=t.paper,a=t._.button,i=a.tracker,o=t.attrs["button-disabled"],s=n.button.data,l=t._disabled||{};if(o=d[o],void 0!==(r=d[r])&&r!==o)switch(r){case!0:l.fill||l.stroke||l["stroke-width"]||l.cursor?(l.fill&&t.bottom.attr("fill",l.fill)&&a.symbol.attr("fill",l.fill),l.stroke&&t.bottom.attr("stroke",l.stroke)&&a.symbol.attr("stroke",l.stroke),l["stroke-width"]&&t.bottom.attr("stroke-width",l["stroke-width"]&&a.symbol.attr("fill",l.fill)),l.cursor&&a.tracker.attr("cursor",l.cursor)):i.attr("fill","rgba(204,204,205,.5)"),i.off("fc-mousedown",s.mousedown).off("fc-unmouseup",s.mouseup).unhover(s.hoverin,s.hoverout).unmousemove(s.mousemove);break;case!1:i.attr("fill",u).on("fc-mousedown",s.mousedown,t).on("fc-mouseup",s.mouseup,t).hover(s.hoverin,s.hoverout,t,t).mousemove(s.mousemove,t)}},"button-label":function(e){var t=this,r=t._.button,n=t.attrs,a=e,i=r.label,o=r.cssArg,s=t.attrs["button-repaint"];"none"===(a=c(a||""))?i&&(r.label=i.remove()):a&&(!i&&(i=r.label=t.paper.text(t).insertBefore(r.tracker)),i.attr({text:a,"text-anchor":"middle","vertical-align":"middle"}),o&&o.length&&i.css.apply(i,o)),s&&n["button-label"]!==a&&t.attr("button-repaint",s)},"button-label-size":function(e){var t=this,r=t._.button,n=t.attrs,a=r.label,i=t.attrs["button-label-size"];a&&a.attr({"font-size":e}),i&&n["button-label-size"]!==e&&t.attr("button-label-size",i)},"button-label-family":function(e){var t=this,r=t._.button,n=t.attrs,a=e,i=r.label,o=t.attrs["button-label-family"];i&&(void 0===a&&(a="sans-serif"),i.attr({"font-family":a}),o&&n["button-label-family"]!==a&&t.attr("button-label-family",o))},"button-symbol":function(e){var t=this,r=t._.button,n=e,a=r.symbol,i=t.attrs["button-repaint"];"none"===(n=c(n||""))?(a&&(r.symbol=a.remove()),delete r.symbol):n&&!a&&(a=r.symbol=t.paper.symbol(t).insertAfter(r.bound)),i&&t.attr("button-repaint",i)},"button-symbol-position":function(e){return{"button-symbol-position":{top:"top",right:"right",bottom:"bottom",left:"left",none:"none"}[c(e).toLowerCase()]||"none"}},"button-symbol-padding":function(e){return{"button-symbol-padding":l(e)}},"button-padding":function(e,t){var r=e,n=t;return{"button-padding":[null==r&&(r=5)||l(r),null==n&&r||l(n)]}},"button-repaint":function(t,r,a,i,l){var c,u,d,h,f,g,p,m=this._.button,v=t,b=r,y=a,x=i,C=l,w=m.bound,_=m.label,k=m.symbol,S=this.attrs,E=S["button-padding"],A=E[0],T=E[1];if(void 0===v&&(v=0),void 0===b&&(b=0),void 0!==y&&void 0!==x||(g=_&&_.getBBox()||{width:0,height:0},void 0===y&&(y=2*A+g.width),void 0===x&&(x=2*T+g.height)),(p=e.crispBound(v,b,y,x,w.attr("stroke-width"))).r=C=(0,n.pluck)(C,s(.1*o(x,y))),v=p.x,b=p.y,y=p.width,x=p.height,_&&_.attr({x:v+y/2,y:b+x/2}),k){switch(!e.is(f=S["button-symbol-padding"],"finite")&&(f=.2*x),h=.5*(d=x-T),S["button-symbol-position"]+(_?"+":"-")){case"right+":c=v+(y+=2*h+T)-h-A,u=b+.5*x,_.attr("transform",["t",-(d+f),0]);break;case"left+":y+=2*h+T,c=v+A+h,u=b+.5*x,_.attr("transform",["t",d+f,0]);break;case"top+":x+=2*h+f,c=v+.5*y,u=b+E[1]+h,_.attr("transform",["t",0,d+f]);break;case"bottom+":c=v+.5*y,u=b+(x+=2*h+f)-T-h,_.attr("transform",["t",0,-(d+f)]);break;default:c=v+.5*y,u=b+.5*x}k.attr("symbol",[S["button-symbol"],c,u,h,y,x])}m.bound.attr(p),m.tracker.attr(p)},fill:function(t,r){void 0===r&&(r=!0);var n=this,a=n._.button,i=a.bound,o=t,s={normal:a.gradient,active:a.gradientActive,hover:a.gradientHover}[o];return s||(r||((o=e.getRGB(o)).error&&(o=e.color("#cccccc")),o="opacity"in o?"rgba("+[o.r,o.g,o.b,o.opacity]+")":"rgb("+[o.r,o.g,o.b]+")"),a.gradient=r?o:[90,e.tintshade(o,-.8).rgba+":0",e.tintshade(o,.8).rgba+":100"].join("-"),a.gradientActive=[270,e.tintshade(o,-.8).rgba+":0",e.tintshade(o,.8).rgba+":100"].join("-"),s=(n.pressed||n.active)&&a.gradientActive||n.hovered&&a.gradienthover||a.gradient),i.attr("fill",s),!1},hoverFill:function(t){var r=this._.button,n=t;return n="opacity"in(n=e.getRGB(n))?"rgba("+[n.r,n.g,n.b,n.opacity]+")":"rgb("+[n.r,n.g,n.b]+")",r.gradientHover=n,!1},labelFill:function(e){var t=this._.button,r=t.label;return r&&e&&(t.labelFill=e,r.attr("fill",e)),!1},symbolFill:function(e){var t=this._.button,r=t.symbol;return r&&e&&(t.symbolFill=e,r.attr("fill",e)),!1},stroke:function(t){var r=this._.button,n=t;return(n=e.color(n)).error&&(n=e.color("#999999")),r.bound.attr("stroke",n),!1},"symbol-stroke":function(e){var t=this._.button.symbol;return t&&e&&t.attr("stroke",e),!1},"stroke-width":function(e){var t=this._.button;return t.bound.attr("stroke-width",e),t.tracker.attr("stroke-width",e),!1},"symbol-stroke-width":function(e){var t=this._.button.symbol;return t&&e&&t.attr("stroke-width",e),!1},config:function(e){var t=this;e.hover&&(t._hover={fill:e.hover.fill,stroke:e.hover.stroke,"stroke-width":e.hover["stroke-width"],cursor:e.hover.cursor,"fill-symbol":e.hover["fill-symbol"],"symbol-stroke":e.hover["symbol-stroke"],labelFill:e.hover.labelFill}),e.disabled&&(t._disabled={fill:e.disabled.fill,stroke:e.disabled.stroke,"stroke-width":e.disabled["stroke-width"],"symbol-stroke":e.disabled["symbol-stroke"],cursor:e.disabled.cursor,labelFill:e.disabled.labelFill}),e.pressed&&(t._pressed={fill:e.pressed.fill,stroke:e.pressed.stroke,"stroke-width":e.pressed["stroke-width"],cursor:e.pressed.cursor,"fill-symbol":e.pressed["fill-symbol"],"symbol-stroke":e.pressed["symbol-stroke"],labelFill:e.pressed.labelFill}),e.normal&&(t._normal={fill:e.normal.fill,stroke:e.normal.stroke,"stroke-width":e.normal["stroke-width"],cursor:e.normal.cursor,"fill-symbol":e.normal["fill-symbol"],"symbol-stroke":e.normal["symbol-stroke"],labelFill:e.normal.labelFill}),e.symbol&&(e.symbol={stroke:e.normal.stroke,"stroke-width":e.normal["stroke-width"]})}}}])};var n=r(184)},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n=r(184),a=function(e){s(e,"legendItemClicked")},i=function(e){s(e,"legendItemRollover")},o=function(e){s(e,"legendItemRollout")},s=function(e,t){var r=e.sender,a=r.getLinkedItem("owner"),i=r.getFromEnv("chart"),o=a&&a.getEventArgs?a.getEventArgs(r):r.config.eventArguments,s=(0,n.getMouseCoordinate)(r.getFromEnv("chart-container"),e,i);/click/gi.test(t)||void 0===o.visible||(o.visible=!o.visible),o.chartX=s.chartX,o.chartY=s.chartY,o.pageX=s.pageX,o.pageY=s.pageY,o.id=i.getId(),o.legendItemId=r.getId(),o.legendItemIndex=r.config.index,i.fireChartInstanceEvent(t,o,e)},l={extension:function(e){var t;e.addEventListener("instantiated",(function(e){var r;"legendItem"===(t=e.sender).getType()&&((r=t).addEventListener("fc-click",a),r.addEventListener("fc-mouseover",i),r.addEventListener("fc-mouseout",o))}))},name:"legendEventManagerLinker",type:"extension",requiresFusionCharts:!0};t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a,i=n(r(319)),o=function(e){return"chartAPI"===e.getType()};function s(e){void 0===e&&(e={});var t=this.apiInstance.getChildren("exportModule");return(t=t&&t[0])!==a&&(t.exportChart(e),!0)}var l={extension:function(e){e.addEventListener("instantiated",(function(e){var t=e.sender;o(t)&&t.registerFactory("export",(function(e){var r;t.getFromEnv("chartInstance").exportChart=s,Number(e.getFromEnv("dataSource").chart.exportenabled)&&(e.getChildren("exportModule")?r=e.getChildren("exportModule")[0]:(r=new i["default"],e.attachChild(r,"exportModule"),r.addToEnv("chartInstance",e.getFromEnv("chartInstance")),r.addToEnv("chartMenuList",e.getFromEnv("chartMenuList"))),r.configure({chartConfig:e.getFromEnv("dataSource").chart}))}),["toolbox"])}))},name:"Export",type:"extension",requiresFusionCharts:!0};t["default"]=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(183)),i=n(r(198)),o=r(199),s=r(192),l=r(184),c=n(r(320)),u=r(322),d=r(325),h=r(323),f=/\s\bx\b=['"][^'"]+?['"]/gi,g=/\s\by\b=['"][^'"]+?['"]/gi,p=window,m=p.document,v="https:"===p.location.protocol?"https://export.api3.fusioncharts.com/":"http://export.api3.fusioncharts.com/",b="https:"===p.location.protocol?"https://export.api3.fusioncharts.com/api/v1.0/logs":"http://export.api3.fusioncharts.com/api/v1.0/logs",y=p.navigator.userAgent.match(/(iPad|iPhone|iPod)/g),x=function(e){function t(){var t;return(t=e.call(this)||this).config={exportOption:{},chartConfig:{caption:"",subcaption:"",width:"",height:""}},t}(0,i["default"])(t,e);var r=t.prototype;return r.getName=function(){return"exportModule"},r.getType=function(){return"extension"},r.configureMenuBar=function(){var e,t,r,n,i,o,c,d,h,f=this,g=f.getFromEnv("toolbar"),m=!!p.btoa,v=f.getFromEnv("chart"),b=f.getFromEnv("chart-attrib").exportformats,y=g.getChild("hamburgerMenu-"+g.getId()+"-"+v.getId()+"-0"),x=(0,s.getDep)("Excelexport"),C="timeseries"===v.getName(),w={PNG:"Export As "+u.EXPORTFORMAT.PNG.toUpperCase(),JPG:"Export As "+u.EXPORTFORMAT.JPG.toUpperCase(),PDF:"Export As "+u.EXPORTFORMAT.PDF.toUpperCase(),SVG:"Export As "+u.EXPORTFORMAT.SVG.toUpperCase(),CSV:"Export As "+u.EXPORTFORMAT.CSV.toUpperCase(),XLSX:"Export As "+u.EXPORTFORMAT.XLSX.toUpperCase()},_=[];if(f.config.exportOption.exportenabled){if(o=function(e){return function(){f.config.exportOption.exportformat=e,f.exportChart({})}},b)for(n=0,i=(e=b.split("|")).length;n<i;n++)t=e[n].split("="),(r=(0,l.trimString)(t[0].toUpperCase())).toLowerCase()===u.EXPORTFORMAT.XLSX&&(h=!0),w[r]&&(w[r]=t[1]||w[r]),w[r]&&(d||(d={}))&&(d[r]=!0);for(r in f.config.exportOption.exportformats=(0,a["default"])({},w),w)"XLSX"===r&&(!m||!x||x&&x.then)||d&&!d[r]||("CSV"!==r||m&&!C)&&(c={name:w[r],handler:o(r),action:"click"},_.push(c));y.appendInMenu(_),m&&!C&&x&&x.then&&x.then((function(){b&&!h||(y.appendInMenu([{name:w.XLSX,handler:o("XLSX"),action:"click"}]),y.asyncDraw())}))}},r.configure=function(e){var t,r,n,a=this.getFromEnv("chartInstance"),i=this.config,o=i.chartConfig,s=i.exportOption,c=e.chartConfig;c.caption&&(o.caption=(0,l.pluck)(c.caption,"")),c.subcaption&&(o.subcaption=(0,l.pluck)(c.subcaption,"")),s.exportenabled=(0,l.pluckNumber)(c.exportenabled,0),s.exportshowmenuitem=(0,l.pluckNumber)(c.exportshowmenuitem,1),s.exportformat=(0,l.pluck)(c.exportformat,u.EXPORTFORMAT.PNG),s.exporthandler=(0,l.pluck)(c.html5exporthandler,c.exporthandler,v),s.exportaction=c.exportaction&&"string"==typeof c.exportaction?(t=c.exportaction.toLowerCase(),[u.EXPORTACTION.DOWNLOAD,u.EXPORTACTION.SAVE,u.EXPORTACTION.DOWNLOADSAVE].indexOf(t)>=0?t:u.EXPORTACTION.DOWNLOAD):u.EXPORTACTION.DOWNLOAD,s.exporttargetwindow=(0,l.pluck)(c.exporttargetwindow,y?"_parent":"_self"),s.exportfilename=(0,l.pluck)(c.exportfilename,"FusionCharts"),s.exportparameters=(0,l.pluck)(c.exportparameters,""),s.exportcallback=(0,l.pluck)(c.exportcallback,""),s.exportwithimages=(0,l.pluckNumber)(c.exportwithimages,1),s.exportmode=("undefined"!=typeof c.exportatclientside&&(r={1:u.EXPORTMODE.AUTO,0:u.EXPORTMODE.AUTO}[c.exportatclientside]),r=(r=c.exportmode||r||u.EXPORTMODE.AUTO).toLowerCase()),s.logenabled=(0,l.pluckNumber)(c.logenabled,0),s.loghandler=(0,l.pluck)(c.html5loghandler,c.loghandler,b),s.logmode=void 0!==(n=c.logmode)&&"string"==typeof n&&n.toUpperCase()in u.LOGMODE?u.LOGMODE[n.toUpperCase()]:u.LOGMODE.AUTO,s.bgcolor=function(e){return e.jsVars.transparent||0===(0,l.pluckNumber)(e.options.containerBackgroundOpacity,1)?l.BLANKSTRING:e.options.containerBackgroundColor||"#FFFFFF"}(a),s.bgalpha=function(e){return e.jsVars.transparent?0:(0,l.pluckNumber)(e.options.containerBackgroundOpacity,1)+""}(a),s.exportshowmenuitem&&this.configureMenuBar()},r.exportChart=function(e){var t,r,n,a=this,i=a.getFromEnv("chartInstance"),o=a.getFromEnv("chart"),v="object"==typeof e&&function(e){var t,r={};for(t in e)r[t.toLowerCase()]=e[t];return r}(e)||{},b=(0,l.extend2)((0,l.extend2)({},a.config.exportOption),v),y=(b.exportformat||u.EXPORTFORMAT.PNG).toLowerCase(),x=b.exporthandler,C=b.exportaction,w=b.exporttargetwindow||"",_=b.exportfilename,k=b.exportparameters,S=b.exportcallback,E=b.exportwithimages,A=b.exportmode,T=b.logenabled,M=b.loghandler,F=b.logmode,I=function(e){o.fireChartInstanceEvent("exportDataReady",e)};o.fireChartInstanceEvent("beforeExport",b,void 0,(function(){var e,v,L,N,D,O,R,P,V,B=i.id,j=a.config.chartConfig.caption,G=a.config.chartConfig.subcaption,H=this.apiInstance.getFromEnv("paper"),z=this.apiInstance.getFromEnv("core-options")["export"].useCanvas,U=(0,c["default"])(o.getChildren("chartMenuBar"))?o.getChildren("chartMenuBar")[0]:o.getChildren("actionBar")[0],X=U.getChild("hamburgerMenu-"+U.getId()+"-"+o.getId()+"-0"),W={DOMId:B,height:H.height,width:H.width,fileName:_+"."+y,statusCode:void 0,statusMessage:void 0,notice:void 0},$={exportAction:C,exportTargetWindow:w,exportCallback:S,fusionCharts:i,paper:H,chartId:B,exportHandler:x,logEnabled:T,logMode:F,logHandler:M},Y=function(e,t,r){var n;return n=!!T,F===u.LOGMODE.CLIENT&&(n=!1),{charttype:i.chartType(),stream_type:e||"",stream:t||"",meta_bgColor:b.bgcolor||"",meta_bgAlpha:b.bgalpha||"1",meta_DOMId:i.id,meta_width:H.width||a.config.chartConfig.width,meta_height:H.height||a.config.chartConfig.height,chart_caption:j,chart_sub_caption:G,is_single_export:!0,is_full_version:!1,version:l.PROJECT_VERSION,user_time_zone:-(new Date).getTimezoneOffset(),log_enabled:n,parameters:["exportfilename="+_,"exportformat="+y,"exportaction="+(0,u.createExportActionOldString)(C),"exportactionnew="+C,"configuredexportaction="+(r||C),"exportparameters="+k].join("|")}},q=function(){return{chartType:i.chartType(),chartCaption:j,chartSubCaption:G,isSingleExport:!0,isFullVersion:!1,exportAction:C,userTimeZone:-(new Date).getTimezoneOffset(),exportFileName:[_,y].join("."),exportFormat:y,version:l.PROJECT_VERSION}},K=function(e){(0,h.downloadCharts)(null,null,null,Y(u.EXPORTFORMAT.SVG,e),$)},J=function(e,t,r){var n;(n=m.createElement("canvas")).width=H.width,n.height=H.height,(0,h.drawSvgOnCanvas)({svg:L,canvas:n,x:0,y:0,width:H.width,height:H.height,useCanvas:z},(function(){switch(e){case u.EXPORTFORMAT.PNG:t(e,n.toDataURL("image/png"),_,r);break;case u.EXPORTFORMAT.JPEG:case u.EXPORTFORMAT.PDF:default:t(e,n.toDataURL("image/jpeg"),_,r)}}))},Z=function(t,r,n,a,i){var o=r;t===u.EXPORTFORMAT.PDF&&((0,d.addImage)(o,H.height,H.width),o=(0,d.getDataUrl)()),e=i===u.EXPORTMODE.AUTO?Y("IMAGE-DATA",o):null,(0,h.downloadCharts)("url",o,n+"."+t,e,a)},Q=I,ee=function(e){e===u.LOGMODE.CLIENT&&(0,u.logCharts)(q(),$)},te=function(t,r){if(D="undefined"!=typeof p.btoa&&("Chrome"===h.browserDetails.name||"Firefox"===h.browserDetails.name||"Safari"===h.browserDetails.name||"Edge"===h.browserDetails.name||"ie"===h.browserDetails.name),"server"!==A&&D)C!==u.EXPORTACTION.DOWNLOAD&&C!==u.EXPORTACTION.DOWNLOADSAVE||((0,h.downloadCharts)("blob",t,_+"."+y,null,$),o.fireChartInstanceEvent("exported",W)),C===u.EXPORTACTION.SAVE||C===u.EXPORTACTION.DOWNLOADSAVE?(O=C,C===u.EXPORTACTION.DOWNLOADSAVE&&(C=u.EXPORTACTION.SAVE),e=Y("IMAGE-DATA",t,O),(0,h.downloadCharts)(null,null,null,e,$),ee(F)):F!==u.LOGMODE.SERVER&&(0,u.logCharts)(q(),$);else{var n=new FileReader;n.onload=function(e){for(var t=l.BLANKSTRING,n=new Uint8Array(e.target.result),a=n.byteLength,i=0;i<a;i++)t+=String.fromCharCode(n[i]);t=r+p.btoa(t),(0,h.downloadCharts)(null,null,null,Y("IMAGE-DATA",t),$),ee(F)},n.readAsArrayBuffer(t)}};if("xlsx"===y){if("undefined"==typeof p.btoa)return o.fireChartInstanceEvent("exportCancelled",b),!1;r=i.getCSVData(),Q(),V=0,t=[],r.replace(/[^\r\n]+/g,(function(e){t[V]=[],t[V]=e.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/).map((function(e){return e.replace(/"/g,l.BLANKSTRING)})),V+=1})),(R=(0,s.getDep)("ExcelExport"))&&R(t).then((function(e){te(e,"data:application/vnd.ms-excel;base64,")}))}else if("csv"===y){if("undefined"==typeof p.btoa)return o.fireChartInstanceEvent("exportCancelled",b),!1;r=i.getCSVData(),Q(),n=new Blob([r],{type:"text/csv;base64;"}),te(n,"data:text/csv;base64,")}else(N=X.getChild("listContainer").getLinkedParent().getGraphicalElement("button","button"))&&N.attr("visibility","hidden"),v=H.toSVG(E),L=(L=H.toSVG(E&&(0,h.isCanvasElemSupported)())).replace(/ /gi," "),N&&N.attr("visibility","visible"),v=(v=(v=v.replace(/(\sd\s*=\s*["'])[M\s\d\.]*(["'])/gi,"$1M 0 0 L 0 0$2")).replace(/NS\d+:/gi,"xlink:")).replace(/ /gi," "),L=(L=(L=L.replace(/NS\d+:/gi,"xlink:")).replace(/(\sd\s*=\s*["'])[M\s\d\.]*(["'])/gi,"$1M 0 0 L 0 0$2")).replace(/(xlink:title\s*=\s*)['"].*?["']/gi,""),v=(v=(v=(v=(v=(v=(v=(v=v.replace(/[\w\-]+\=\"undefined\"/gi,"")).replace(/(xlink:title\s*=\s*)['"].*?["']/gi,"")).replace(/rgba\(([^\)]+)\)/gi,(function(e){return"#"+new l.RGBtoHex(e.split(","))}))).replace(/<svg[^>]+/i,(function(e){var t=e;return t.match(/height/i)||!H.height&&!a.config.chartConfig.height||(t+=' height="'+(H.height||a.config.chartConfig.height)+'"'),t.match(/width/i)||!H.width&&!a.config.chartConfig.width||(t+=' width="'+(H.width||a.config.chartConfig.width)+'"'),t}))).replace(/(([\w]+\-)?opacity\s*=\s*)['"][\d\.]+e[\-\+][\d]+["']/gi,'$1"0.001"')).replace(/(([\w]+\-)?opacity\s*:\s*)[\d\.]+e[\-\+][\d]+/gi,"$10.001")).replace(/<text[^\>]+/gi,(function(e){var t=e;return t=(t=(t=(t=(t=(t=(t=(t=t.replace(/stroke\=[\"\']([a-z0-9\#]+)?[\"\']/gi,"")).replace(/stroke\s*\:\s*([a-z0-9\#]+)?;?/gi,"")).replace(/stroke-width\=[\"\']([a-z0-9\#]+)?[\"\']/gi,"")).replace(/stroke-width\s*\:\s*([a-z0-9\#]+)?;?/gi,"")).replace(/stroke-opacity\=[\"\']([a-z0-9\#]+)?[\"\']/gi,"")).replace(/stroke-opacity\s*\:\s*([a-z0-9\#]+)?;?/gi,"")).replace(/(<text[^\>]+fill\=)([\"\'][^\"\']+[\"\'])([^\>]+)/gi,'$1$2 stroke=$2 stroke-width="0.2"$3')).replace(/(<text[^\>]+fill-opacity\=)([\"\'][^\"\']+[\"\'])([^\>]+)/gi,"$1$2 stroke-opacity=$2 $3")}))).replace(/<(\b[^<>s\s]+\b)[^\>]+?opacity\s*=\s*['"][^1][^\>]+?(\/>|>[\s\r\n]*?<\/\1>)/gi,(function(e,t){return' opacity="1" stroke-opacity="1" fill="#cccccc" stroke-width="0" r="0" height="0.5" width="0.5" d="M 0 0 L 1 1" />',e+"<"+t+(f.exec(e)||"")+(g.exec(e)||"")+' opacity="1" stroke-opacity="1" fill="#cccccc" stroke-width="0" r="0" height="0.5" width="0.5" d="M 0 0 L 1 1" />'})),v=(0,u.makeImageUrlsAbsolute)(v),L=(0,u.makeImageUrlsAbsolute)(L),P=A===u.EXPORTMODE.SERVER,(0,u.cacheAllImages)(v,P,(function(){e=Y(u.EXPORTFORMAT.SVG,v),Q(e),e=null;var t,r,n,a,i,s,l,c,f="undefined"!=typeof p.btoa&&("Chrome"===h.browserDetails.name||"Firefox"===h.browserDetails.name||"Safari"===h.browserDetails.name||"Edge"===h.browserDetails.name||"ie"===h.browserDetails.name);(A===u.EXPORTMODE.CLIENT||A===u.EXPORTMODE.AUTO&&!(0,u.hasUndownloadableImage)(v))&&f?(L=(0,u.replaceImagesWithNonDataUrl)(L),C!==u.EXPORTACTION.DOWNLOAD&&C!==u.EXPORTACTION.DOWNLOADSAVE||(i=L,s=$,l=A,y===u.EXPORTFORMAT.SVG?(c=(0,u.svgStrToDataUrl)(i),e=l===u.EXPORTMODE.AUTO?Y("IMAGE-DATA",c):null,(0,h.downloadCharts)("url",c,_+"."+y,e,s)):J(y,(function(){Z(arguments[0],arguments[1],arguments[2],arguments[3],l)}),s),o.fireChartInstanceEvent("exported",W)),C===u.EXPORTACTION.SAVE||C===u.EXPORTACTION.DOWNLOADSAVE?(t=C,C===u.EXPORTACTION.DOWNLOADSAVE&&(C=u.EXPORTACTION.SAVE),function(e,t,r){var n;y===u.EXPORTFORMAT.SVG?(n=(0,u.svgStrToDataUrl)(e),r(n,t)):J(y,(function(){r(arguments[1],t)}),t)}(L,$,(function(r,n){e=Y("IMAGE-DATA",r,t),(0,h.downloadCharts)(null,null,null,e,n),ee(F)})),o.fireChartInstanceEvent("exported",W)):F!==u.LOGMODE.SERVER&&(0,u.logCharts)(q(),$)):A===u.EXPORTMODE.AUTO?(a=v,h.browserDetails.hasCanvas&&"undefined"!=typeof p.btoa?((r=m.createElement("canvas")).width=H.width,r.height=H.height,a=(0,u.embedImagesWithNonDataURL)(a),L=(0,u.replaceImagesWithNonDataUrl)(L),(0,u.hasUndownloadableImage)(a)||y===u.EXPORTFORMAT.SVG?(n=Y(u.EXPORTFORMAT.SVG,a),(0,h.downloadCharts)(null,null,null,n,$)):(0,h.drawSvgOnCanvas)({svg:L,canvas:r,x:0,y:0,width:H.width,height:H.height,useCanvas:z},(function(){var e;switch(y){case u.EXPORTFORMAT.PNG:e=r.toDataURL("image/png");break;case u.EXPORTFORMAT.JPEG:e=r.toDataURL("image/jpeg");break;case u.EXPORTFORMAT.PDF:(0,d.addImage)(r.toDataURL("image/jpeg"),H.height,H.width),e=(0,d.getDataUrl)();break;default:e=r.toDataURL("image/jpeg")}n=Y("IMAGE-DATA",e),(0,h.downloadCharts)(null,null,null,n,$)}))):K(a),ee(F)):A===u.EXPORTMODE.SERVER&&(K(v),ee(F))}))}),(function(){o.fireChartInstanceEvent("exportCancelled",b)}))},t}(o.ComponentInterface);t["default"]=x},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(321));t["default"]=function(e){return(0,a["default"])(e)&&e.length}},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]=function(e){return Array.isArray(e)}},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t.svgStrToDataUrl=t.logCharts=t.extractNonDataImageFromSVG=t.parseUrl=t.extractNonDataURLFromSVG=t.removeImagesWithNonDataURL=t.hasUndownloadableImage=t.replaceImagesWithNonDataUrl=t.embedImagesWithNonDataURL=t.makeImageUrlsAbsolute=t.isCacheAllImagesCompleted=t.getImageCachedDetails=t.cacheAllImages=t.objCacheFunctions=t.createExportActionOldString=t.LOGMODE=t.EXPORTFORMAT=t.EXPORTMODE=t.EXPORTACTION=void 0;var a,i=r(323),o=n(r(242)),s=r(184),l=function(e){var t,r,n,a,i,o;t=/(<image [^\>]*href=["']([^\>'"]*)["'][^\>]*\>)/g,r=/^\s*data:([a-z]+\/[a-z]+(;[a-z\-]+\=[a-z\-]+)?)?(;base64)?,[a-z0-9\!\$\&\'\,\(\)\*\+\,\;\=\-\.\_\~\:\@\/\?\%\s]*\s*$/i,n=[];do{null!==(a=t.exec(e))&&(i=a[1],o=a[2],r.test(o)||n.push(i))}while(a&&null!==a);return n},c=function(e){var t,r,n,a=e;for(t=l(a),r=0;r<t.length;r++)n=t[r],a=a.replace(n,"");return a},u=function(e,t){var r,n,a,i,o;void 0===t&&(t=!0),r=/<image [^\>]*href=["']([^\>'"]*)["'][^\>]*\>/g,n=/^\s*data:([a-z]+\/[a-z]+(;[a-z\-]+\=[a-z\-]+)?)?(;base64)?,[a-z0-9\!\$\&\'\,\(\)\*\+\,\;\=\-\.\_\~\:\@\/\?\%\s]*\s*$/i,a=[];do{if(null!==(i=r.exec(e))){if(o=i[1],n.test(o))continue;t&&(o=d(o).href),a.push(o)}}while(i&&null!==i);return a},d=function(e){var t=document.createElement("div");return t.innerHTML="<a></a>",t.firstChild.href=e,t.innerHTML=t.innerHTML,t.firstChild},h={DOWNLOAD:"download",SAVE:"save",DOWNLOADSAVE:"download-save"},f={CLIENT:"client",SERVER:"server",AUTO:"auto"},g=((a={}).cacheCompleted=!1,{cacheAllImages:function(e,t,r){var n,o,l,c;if(void 0===t&&(t=!1),n=u(e),o=n.length,(0,i.isCanvasElemSupported)()&&!t&&o)for(l=0,c=0;c<o;c++)!function(){var e,t;(e=n[c])in a?o===++l&&(a.cacheCompleted=!0,r()):((t=new Image).crossOrigin=s.BLANKSTRING,t.onload=function(){var n,i;(n=document.createElement("canvas")).width=t.width,n.height=t.height,n.getContext("2d").drawImage(this,0,0);try{i=n.toDataURL("image/png"),a[e]={loaded:!0,notCORS:!0,imageUri:i}}catch(s){a[e]={loaded:!0,notCORS:!1}}finally{o===++l&&(a.cacheCompleted=!0,r())}},t.onerror=function(){a[e]={loaded:!1},o===++l&&(a.cacheCompleted=!0,r())},t.src=e)}();else r()},getImageCachedDetails:function(e){return a[e]},isCacheAllImagesCompleted:function(){return a.cacheCompleted}}),p=g.cacheAllImages,m=g.getImageCachedDetails,v=g.isCacheAllImagesCompleted,b=function(e){return e=e.replace(/(:href=")([^"]*)(")/gi,(function(e,t,r,n){return t+d(r).href+n}))},y=function(e){return e.replace(/<image [^\>]*\>/gi,b)},x=function(e){var t,r,n,a,i=y(e);for(t=u(i),r=0;r<t.length;r++)n=t[r],(a=m(n))!==s.UNDEF&&a.loaded&&a.notCORS&&a.imageUri&&(i=i.replace(n,a.imageUri));return i};t.svgStrToDataUrl=function(e){var t=function(e){return'<?xml version="1.0" standalone="no"?>\n <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> '+e}(e);return t="data:image/svg+xml;base64,"+window.btoa(window.unescape(encodeURIComponent(t)))},t.logCharts=function(e,t){t.logEnabled&&t.logMode!==f.SERVER&&function(e,t){var r=new o["default"](s.stubFN,s.stubFN);for(var n in e)e.hasOwnProperty(n)&&(e[n]=encodeURIComponent(e[n]));r.post(t.logHandler,e)}(e,t)},t.hasUndownloadableImage=function(e){var t=x(e);return t!==c(t)},t.replaceImagesWithNonDataUrl=function(e){return c(x(e))},t.embedImagesWithNonDataURL=x,t.makeImageUrlsAbsolute=y,t.isCacheAllImagesCompleted=v,t.getImageCachedDetails=m,t.cacheAllImages=p,t.objCacheFunctions=g,t.createExportActionOldString=function(e){return{download:h.DOWNLOAD,"download-save":h.DOWNLOAD,save:h.SAVE}[e]},t.LOGMODE=f,t.EXPORTFORMAT={PNG:"png",SVG:"svg",JPEG:"jpeg",JPG:"jpg",PDF:"pdf",XLSX:"xlsx",CSV:"csv"},t.EXPORTMODE={CLIENT:"client",SERVER:"server",AUTO:"auto"},t.EXPORTACTION=h,t.parseUrl=d,t.extractNonDataURLFromSVG=u,t.removeImagesWithNonDataURL=c,t.extractNonDataImageFromSVG=l},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t.isCanvasElemSupported=t.drawSvgOnCanvas=t.browserDetails=t.downloadCharts=void 0;var a=n(r(324)),i=r(184),o=r(191),s=n(r(242)),l=window,c=l.Image,u=document,d="download",h="download-save",f=function(){var e=u.createElement("canvas");return!(!e.getContext||!e.getContext("2d"))},g=function(){var e,t=l.navigator.userAgent;return-1!==(e=t.indexOf("Edge"))?{name:"Edge",version:t.substring(e+5,e+11)}:-1!==(e=t.indexOf("Chrome"))?{name:"Chrome",version:t.substring(e+7,e+11)}:-1!==(e=t.indexOf("MSIE"))?{name:"ie",version:t.substring(e+5,e+9)}:-1!==(e=t.indexOf("rv"))&&-1!==t.indexOf("Trident")?{name:"ie",version:t.substring(e+5,e+9)}:-1!==(e=t.indexOf("Firefox"))?{name:"Firefox",version:t.substring(e+8,e+12)}:-1!==(e=t.indexOf("Safari"))?{name:"Safari",version:t.substring(e+7,e+11)}:{name:"default",version:"Not Known"}},p=g(),m=function(e,t,r,n){void 0===n&&(n={});var a,i,o=g(),s=n.chartId,c=n.exportCallback,d=n.paper,h=t;"Chrome"===o.name||"Firefox"===o.name||"Safari"===o.name?("blob"===e&&(h=l.URL.createObjectURL(h)),(i=u.createElement("a")).download=r,i.href=h,u.body.appendChild(i),i.onclick=function(){c&&l[c]&&"function"==typeof l[c]&&l[c]({statusCode:1,statusMessage:"success",DOMId:s,width:d&&d.width,height:d&&d.height}),i.parentNode.removeChild(i)},i.click()):"ie"!==o.name&&"Edge"!==o.name||l.navigator.msSaveBlob&&(a="url"===e?function(e){var t,r,n,a;for(t=e.split(",")[0].indexOf("base64")>=0?l.atob(e.split(",")[1]):l.unescape(e.split(",")[1]),r=e.split(",")[0].split(":")[1].split(";")[0],n=new Uint8Array(t.length),a=0;a<t.length;a++)n[a]=t.charCodeAt(a);return new l.Blob([n],{type:r})}(h):h,l.navigator.msSaveBlob(a,r)&&c&&l[c]&&"function"==typeof l[c]&&l[c]({statusCode:1,statusMessage:"success",DOMId:s,width:d&&d.width,height:d&&d.height}))};t.drawSvgOnCanvas=function(e,t){void 0===e&&(e={});var r,n,i,s,u=e,d=u.svg,h=u.canvas,f=u.x,g=u.y,m=u.width,v=u.height,b=u.useCanvas;"ie"===p.name||"Edge"===p.name||b?new a["default"](d,h,f,g,m,v,(function(){t()})):(s=function(e){return'<?xml version="1.0" standalone="no"?>\n <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> '+e}(d),i=s="data:image/svg+xml;base64,"+l.btoa(l.unescape(encodeURIComponent(s))),r=h.getContext("2d"),(n=new c).onload=function(){r.drawImage(n,f,g,m,v),t()},n.onerror=function(){(0,o.raiseWarning)(this,"","run","libSVGToCanvas:drawSvgOnCanvas","Unable to load image for canvas drawing. Aborting attempt.")},n.src=i)},t.downloadCharts=function(e,t,r,n,a){var c;!t||(c=t,p.name.toLowerCase()==="Chrome".toLowerCase()&&function(e){var t,r,n;for(t=e.length,n=e.length-1;n>=0;n--)(r=e.charCodeAt(n))>127&&r<=2047?t++:r>2047&&r<=65535&&(t+=2),r>=56320&&r<=57343&&n--;return t}(c)>void 0)?n&&function(e,t){var r,n,a,c,f,g,p,m,v=t.exportAction,b=t.exportTargetWindow,y=t.exportCallback,x=t.fusionCharts.apiInstance,C=t.paper,w=t.chartId,_=t.exportHandler,k=e.parameters;if(v===d||v===h){for(r in/(webkit|gecko)/gi.test(l.navigator.userAgent)&&"_self"===b&&(b=a=w+"export_iframe",m||(m=c=(0,i.createElement)("IFRAME",{name:a,width:"1px",height:"1px"},u.body),c.style.cssText="position:absolute;left:-10px;top:-10px;")),n=(0,i.createElement)("form",{method:"POST",action:_,target:b,style:"display:none;"},u.body),e)(0,i.createElement)("input",{type:"hidden",name:r,value:e[r]},n);return n.submit(),u.body.removeChild(n),n=void 0,g=k.match(/exportfilename=([^|]+)/)[1],p=k.match(/exportformat=([^|]+)/)[1],(0,o.triggerEvent)("exported",x,{DOMId:w,height:C.height,width:C.width,fileName:g+"."+p,statusCode:void 0,statusMessage:void 0,notice:void 0}),y&&l[y]&&"function"==typeof l[y]&&l[y]({statusCode:1,statusMessage:"success",DOMId:w,width:C&&C.width,height:C&&C.height}),!0}for(r in f=new s["default"]((function(e){var t={};e.replace(new RegExp("([^?=&]+)(=([^&]*))?","g"),(function(e,r,n,a){t[r]=a})),y&&l[y]&&"function"==typeof l[y]&&l[y](t),(0,o.triggerEvent)("exported",x,t)}),(function(e){var t={statusCode:0,statusMessage:"failure",error:e,DOMId:w,width:C&&C.width,height:C&&C.height};y&&l[y]&&"function"==typeof l[y]&&l[y](t),(0,o.triggerEvent)("exported",x,t,[t])})),e)e.hasOwnProperty(r)&&(e[r]=encodeURIComponent(e[r]));f.post(_,e)}(n,a):m(e,t,r,a)},t.browserDetails=p,t.isCanvasElemSupported=f,p.hasCanvas=f(),p.hasSvg=i.hasSVG},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n,a="undefined"!=typeof window?window:null,i=a.document,o={},s={};(n=function(e,t,r,a,i,o,s){var l={svg:"",context:"",callBack:"",imageArr:[],canvas:"",dimention:{}};if(!(this instanceof n))throw new Error("This function should be used as class");this._getStore=function(e){return"undefined"!=typeof l[e]&&l[e]},this._setStore=function(e,t){"undefined"!=typeof l[e]&&(l[e]=t)},this._setStore("dimention",{x:r,y:a,width:i,height:o}),e&&this.setSVG(e),t&&this.setContext(t),s&&this.setCallback(s),this.drawOnCanvas()}).prototype.setContext=function(e){var t;if(!e.getContext||!e.getContext("2d"))throw new Error("Please provide valid canvas");t=e.getContext("2d"),this._setStore("canvas",e),this._setStore("context",t)},n.prototype.getContext=function(){return this._getStore("context")},n.prototype.setSVG=function(e){var t;if("undefined"!=typeof e.documentElement)t=e,this._setStore("svg",t);else{if("<"!==e.substr(0,1))throw new Error("Please provide valid SVG");t=s.StrToDom(e),this._setStore("svg",t)}},n.prototype.getSVG=function(){return this._getStore("svg")},n.prototype.setCallback=function(e){"function"==typeof e&&this._setStore("callBack",e)},n.prototype.getCallback=function(){return this._getStore("callBack")},n.prototype.drawOnCanvas=function(e,t,r,n,a,i,o){var l,c,u,d,h,f,g,p;e&&this.setSVG(e),t&&this.setContext(t),o&&this.setCallback(o),t=t||this._getStore("canvas"),g=this._getStore("dimention"),o=this.getCallback(),l=this.getContext(),(c=this.getSVG())&&l&&(u=(p=s.getSvgDimention(c)).width,d=p.height,r=r||g.x||0,n=n||g.y||0,a=a||u||g.width,i=i||d||g.height,h=p.width?g.width/a:1,f=p.height?g.height/i:1,s.startTransform("translate("+r+","+n+") scale("+h+","+f+")",l),l.save(),l.fillStyle="#ffffff",l.fillRect(0,0,a,i),l.restore(),s.storeImagesInArr(this),s.drawNodes([c],[],this,l,(function(){"function"==typeof o&&o(),s.resetTransform(l)})))},o.common=function(e,t,r,n,a){var i,l,c,u,d=e.childNodes,h=function(){e.attributes&&n.restore(),a&&a()};for(l in t)t.hasOwnProperty(l)&&"class"!==t[l].name&&"id"!==t[l].name&&"transform"!==t[l].name&&"clip-path"!==t[l].name&&"object"==typeof t[l]&&e.attributes&&!e.attributes[t[l].name]&&e.setAttribute([t[l].name],t[l].value);if(e.attributes&&e.attributes.style)for(l in c=e.attributes.style.value.replace(/;$/,"").split(";"))if(c.hasOwnProperty(l)&&(u=c[l].split(":")[0].trim(),!e.attributes[u]||"undefined"===e.attributes[u].value))try{e.setAttribute(u,c[l].split(":")[1].trim())}catch(f){}e.attributes&&(n.save(),e.attributes.transform&&s.startTransform(e.attributes.transform.value,n),e.attributes["clip-path"]&&s.applyClip(e.attributes["clip-path"].value,n,r)),0===d.length||1===d.length&&!d[0].tagName?"undefined"!=typeof e.tagName?(i="draw"+e.tagName,o[i]?e.attributes.display&&"none"===e.attributes.display.value?h():o[i](e,n,r,"draw",h):h()):h():s.drawNodes(d,"svg"===e.tagName?[]:e.attributes,r,n,h)},o.drawtext=function(e,t,r,n,a){this.drawtspan(e,t,r,n,a)},o.drawtspan=function(e,t,r,n,o){var l,c,u,d,h,f=e.innerHTML||e.textContent,g=e.attributes.x?e.attributes.x.value:0,p=e.attributes.y?e.attributes.y.value:0,m=e.attributes.dx?e.attributes.dx.value:0,v=e.attributes.dy?e.attributes.dy.value:0,b="serief",y="normal",x="16px",C=[];i.getElementsByTagName("body")[0]&&((l=a.getComputedStyle(i.getElementsByTagName("body")[0],null)).getPropertyValue("font-family")&&(b=l.getPropertyValue("font-family")),l.getPropertyValue("font-weight")&&(y=l.getPropertyValue("font-weight")),l.getPropertyValue("font-size")&&(x=l.getPropertyValue("font-size"))),c=e.attributes["font-family"]?e.attributes["font-family"].value:b,u=e.attributes["font-weight"]?e.attributes["font-weight"].value:y,d=e.attributes["text-anchor"]?e.attributes["text-anchor"].value:"start",h=e.attributes["font-size"]?e.attributes["font-size"].value:x,g=Number(g)+Number(m),p=Number(p)+Number(v),f=f.trim(),d="middle"===d?"center":d,t.save(),t.font=u+" "+h+" "+c,t.textAlign=d,"draw"===n&&((!e.attributes.fill||e.attributes.fill&&"none"!==e.attributes.fill.value)&&(s.applyFillEffect(e,t,r,C),t.fillText(f,g,p),s.endFillEffect(e,t)),(!e.attributes.stroke||e.attributes.stroke&&"none"!==e.attributes.stroke.value)&&(s.applyStrokeEffect(e,t,r,C),t.strokeText(f,g,p),s.endStrokeEffect(e,t))),t.restore(),"function"==typeof o&&o()},o.drawcircle=function(e,t,r,n,a){var i=Number(e.attributes.cx.value),o=Number(e.attributes.cy.value),l=Number(e.attributes.r.value),c=[];t.beginPath(),t.arc(i,o,l,0,2*Math.PI),s.bBoxFromPoint([i,1*i+1*l,1*i-1*l],[o,1*o+1*l,1*o-1*l],c),"draw"===n&&((!e.attributes.fill||e.attributes.fill&&"none"!==e.attributes.fill.value)&&(s.applyFillEffect(e,t,r,c),t.fill(),s.endFillEffect(e,t)),(!e.attributes.stroke||e.attributes.stroke&&"none"!==e.attributes.stroke.value)&&(s.applyStrokeEffect(e,t,r,c),t.stroke(),s.endStrokeEffect(e,t))),t.closePath(),"function"==typeof a&&a()},o.drawrect=function(e,t,r,n,a){var i=Number(e.attributes.x.value),o=Number(e.attributes.y.value),l=e.attributes.rx?Number(e.attributes.rx.value):0,c=e.attributes.ry?Number(e.attributes.ry.value):0,u=Number(e.attributes.height.value),d=Number(e.attributes.width.value),h=[],f=t.lineCap;t.lineCap="square",s.bBoxFromPoint([i,i+d],[o,o+u],h),t.beginPath(),t.moveTo(i+l,o),t.lineTo(i+d-l,o),t.quadraticCurveTo(i+d,o,i+d,o+c),t.lineTo(i+d,o+u-c),t.quadraticCurveTo(i+d,o+u,i+d-l,o+u),t.lineTo(i+l,o+u),t.quadraticCurveTo(i,o+u,i,o+u-c),t.lineTo(i,o+c),t.quadraticCurveTo(i,o,i+l,o),"draw"===n&&((!e.attributes.fill||e.attributes.fill&&"none"!==e.attributes.fill.value)&&(s.applyFillEffect(e,t,r,h),t.fill(),s.endFillEffect(e,t)),(!e.attributes.stroke||e.attributes.stroke&&"none"!==e.attributes.stroke.value)&&(s.applyStrokeEffect(e,t,r,h),t.stroke(),s.endStrokeEffect(e,t))),t.closePath(),t.lineCap=f,"function"==typeof a&&a()},o.drawellipse=function(e,t,r,n,a){var i=Number(e.attributes.cx.value),o=Number(e.attributes.cy.value),l=Number(e.attributes.rx.value),c=Number(e.attributes.ry.value),u=.5522848*l,d=.5522848*c,h=i+l,f=o+c,g=[];t.beginPath(),t.moveTo(i-l,o),t.bezierCurveTo(i-l,o-d,i-u,o-c,i,o-c),t.bezierCurveTo(i+u,o-c,h,o-d,h,o),t.bezierCurveTo(h,o+d,i+u,f,i,f),t.bezierCurveTo(i-u,f,i-l,o+d,i-l,o),s.bBoxFromPoint([i+l,i-l],[o+c,o-c],g),"draw"===n&&((!e.attributes.fill||e.attributes.fill&&"none"!==e.attributes.fill.value)&&(s.applyFillEffect(e,t,r,g),t.fill(),s.endFillEffect(e,t)),(!e.attributes.stroke||e.attributes.stroke&&"none"!==e.attributes.stroke.value)&&(s.applyStrokeEffect(e,t,r,g),t.stroke(),s.endStrokeEffect(e,t))),t.closePath(),"function"==typeof a&&a()},o.drawimage=function(e,t,r,n,a){var i,o=e.attributes.x?Number(e.attributes.x.value):0,s=e.attributes.y?Number(e.attributes.y.value):0,l=e.attributes.height?Number(e.attributes.height.value):0,c=e.attributes.width?Number(e.attributes.width.value):0,u=r._getStore("imageArr");t.save(),e.attributes.opacity&&(t.globalAlpha=e.attributes.opacity.value),e.attributes["xlink:href"]?(i=e.attributes["xlink:href"].value,"complete"===u[i].status?(t.drawImage(u[i].obj,o,s,c,l),t.globalAlpha=1,t.restore(),"function"==typeof a&&a()):"error"===u[i].status?(t.globalAlpha=1,t.restore(),"function"==typeof a&&a()):"progress"===u[i].status?(u[i].callback=function(){t.drawImage(u[i].obj,o,s,c,l),t.globalAlpha=1,t.restore(),"function"==typeof a&&a()},u[i].errCallback=function(){t.globalAlpha=1,t.restore(),"function"==typeof a&&a()}):(t.globalAlpha=1,t.restore(),"function"==typeof a&&a())):(t.globalAlpha=1,t.restore(),"function"==typeof a&&a())},o.drawpath=function(e,t,r,n,a){var i,o,l,c,u=e.attributes.d.value.match(/[a-z][^a-z"]*/gi),d=[],h=0,f=0,g={};for(i in t.beginPath(),u)if(u.hasOwnProperty(i))switch(o=u[i].substring(0,1),l=s.getArgsAsArray(u[i].substring(1,u[i].length)),o){case"M":h=Number(l[0]),f=Number(l[1]),t.moveTo(h,f),g.cx=h,g.cy=f;break;case"m":h+=Number(l[0]),f+=Number(l[1]),t.moveTo(h,f),g.cx=h,g.cy=f;break;case"L":for(c=0;l[c];c+=2)s.bBoxFromPoint([h,l[c]],[f,l[c+1]],d),h=Number(l[c]),f=Number(l[c+1]),t.lineTo(h,f);break;case"l":for(c=0;l[c];c+=2)s.bBoxFromPoint([h,1*h+1*l[c]],[f,1*f+1*l[c+1]],d),h+=Number(l[c]),f+=Number(l[c+1]),t.lineTo(h,f);break;case"V":for(c=0;l[c];c+=1)s.bBoxFromPoint([h],[f,l[c]],d),f=Number(l[c]),t.lineTo(h,f);break;case"v":for(c=0;l[c];c+=1)s.bBoxFromPoint([h],[f,1*f+1*l[c]],d),f+=Number(l[c]),t.lineTo(h,f);break;case"H":for(c=0;l[c];c+=1)s.bBoxFromPoint([h,l[c]],[f],d),h=Number(l[c]),t.lineTo(h,f);break;case"h":for(c=0;l[c];c+=1)s.bBoxFromPoint([h,1*h+1*l[c]],[f],d),h+=Number(l[c]),t.lineTo(h,f);break;case"Q":for(c=0;l[c];c+=4)s.qBezierBBox(h,f,l[c],l[c+1],l[c+2],l[c+3],d),t.quadraticCurveTo(Number(l[c]),Number(l[c+1]),Number(l[c+2]),Number(l[c+3])),h=Number(l[c+2]),f=Number(l[c+3]);break;case"q":for(c=0;l[c];c+=4)s.qBezierBBox(h,f,h+1*l[c],f+1*l[c+1],1*h+1*l[c+2],1*f+1*l[c+3],d),t.quadraticCurveTo(h+1*l[c],f+1*l[c+1],h+=Number(l[c+2]),f+=Number(l[c+3]));break;case"C":for(c=0;l[c];c+=6)s.cBezierBBox(h,f,l[c],l[c+1],l[c+2],l[c+3],l[c+4],l[c+5],d),t.bezierCurveTo(l[c],l[c+1],l[c+2],l[c+3],l[c+4],l[c+5]),h=Number(l[c+4]),f=Number(l[c+5]);break;case"c":for(c=0;l[c];c+=6)s.cBezierBBox(h,f,h+1*l[c],1*f+1*l[c+1],h+1*l[c+2],1*f+1*l[c+3],h+1*l[c+4],1*f+1*l[c+5],d),t.bezierCurveTo(h+Number(l[c]),f+Number(l[c+1]),h+Number(l[c+2]),f+Number(l[c+3]),h+=Number(l[c+4]),f+=Number(l[c+5]));break;case"a":case"A":for(c=0;l[c];c+=7){var p,m,v,b,y,x,C,w,_,k,S,E,A,T,M,F,I,L,N=Number(l[c]),D=Number(l[c+1]);if(p=Number(l[c+2])*(Math.PI/180),m=Number(l[c+3]),v=Number(l[c+4]),b=Number(l[c+5]),y=Number(l[c+6]),x=Math.cos(p)*(h-b)/2+Math.sin(p)*(f-y)/2,C=-Math.sin(p)*(h-b)/2+Math.cos(p)*(f-y)/2,N=N<0?-N:N,D=D<0?-D:D,(M=Math.pow(x,2)/Math.pow(N,2)+Math.pow(C,2)/Math.pow(D,2))>1&&(N*=Math.sqrt(M),D*=Math.sqrt(M)),F=N>D?N:D,I=N>D?1:N/D,L=N>D?D/N:1,w=(m===v?-1:1)*Math.sqrt((Math.pow(N,2)*Math.pow(D,2)-Math.pow(N,2)*Math.pow(C,2)-Math.pow(D,2)*Math.pow(x,2))/(Math.pow(N,2)*Math.pow(C,2)+Math.pow(D,2)*Math.pow(x,2))),isNaN(w)&&(w=0),k=D*x*-w/N,S=(_=w*(N*C)/D)*Math.cos(p)-k*Math.sin(p)+(h+b)/2,E=_*Math.sin(p)+k*Math.cos(p)+(f+y)/2,A=s.angleBetweenVectors(1,0,(x-_)/N,(C-k)/D),T=s.angleBetweenVectors((x-_)/N,(C-k)/D,(-x-_)/N,(-C-k)/D),0===v&&T>0&&(T-=Math.PI/180*360),1===v&&T<0&&(T+=Math.PI/180*360),0===N&&0===D){t.lineTo(b,y);break}t.save();var O=s.combineTransformMatrix([[1,0,S,0,1,E],[Math.cos(p),Math.sin(p),0,Math.sin(p),Math.cos(p),0],[I,0,0,0,L,0]]);t.transform(O[0],O[3],O[1],O[4],O[2],O[5]),t.arc(0,0,F,A,A+T,1-v),t.restore(),s.arcBBox(0,0,F,A,A+T,1-v,[O[0],O[3],O[1],O[4],O[2],O[5]],d),"A"===o?(h=Number(l[c+5]),f=Number(l[c+6])):(h+=Number(l[c+5]),f+=Number(l[c+6]))}break;case"Z":case"z":t.closePath(),h=g.cx,f=g.cy}"draw"===n&&((!e.attributes.fill||e.attributes.fill&&"none"!==e.attributes.fill.value)&&(s.applyFillEffect(e,t,r,d),t.fill(),s.endFillEffect(e,t)),(!e.attributes.stroke||e.attributes.stroke&&"none"!==e.attributes.stroke.value)&&(s.applyStrokeEffect(e,t,r,d),t.stroke(),s.endStrokeEffect(e,t)),a())},s.drawNodes=function(e,t,r,n,a){var i=e.length,s=-1,l=0,c=0;!function u(){var d;(s+=1)<i?((d=e[s]).tagName&&"defs"===d.tagName&&(d=e[s+=1]),d.attributes&&(d.attributes.dy&&(c=d.attributes.dy.value=1*d.attributes.dy.value+1*c),d.attributes.dx&&(l=d.attributes.dx.value=1*d.attributes.dx.value+1*l)),o.common(d,t,r,n,u)):a&&a()}()},s.getSvgDimention=function(e){var t,r={width:0,height:0};return t=e.childNodes&&e.childNodes[0]&&e.childNodes[0].attributes,r.width=Number(t.width&&t.width.value||0),r.height=Number(t.height&&t.height.value||0),r},s.storeImagesInArr=function(e){var t,r,n,a,i=e.getSVG();for(a in n=e._getStore("imageArr"),t=i.getElementsByTagName("image"))t.hasOwnProperty(a)&&t[a].attributes&&t[a].attributes["xlink:href"]&&(r=t[a].attributes["xlink:href"].value,n[r]||(n[r]=[],n[r].status="progress",n[r].callback=null,n[r].obj=new Image,n[r].obj.onload=function(e){return function(){var t=n[e].callback;t?(n[e].status="complete",t()):n[e].status="complete"}}(r),n[r].obj.onerror=function(e){return function(){var t=n[e].errCallback;t?(n[e].status="error",t()):n[e].status="error"}}(r),n[r].obj.src=r))},s.startTransform=function(e,t){var r,n,a=e.match(/[^\s][a-z,0-9.\-(\s]+\)/gi);for(n in a)a.hasOwnProperty(n)&&(a[n].indexOf("matrix")>-1&&(r=s.stringToArgs(a[n]),t.transform(r[0],r[1],r[2],r[3],r[4],r[5])),a[n].indexOf("translate")>-1&&(r=s.stringToArgs(a[n]),t.translate(r[0]||0,r[1]||0)),a[n].indexOf("rotate")>-1&&(3===(r=s.stringToArgs(a[n])).length?(t.translate(r[1],r[2]),t.rotate(r[0]*(Math.PI/180)),t.translate(-r[1],-r[2])):t.rotate(r[0]*(Math.PI/180))),a[n].indexOf("scale")>-1&&(1===(r=s.stringToArgs(a[n])).length?t.scale(r[0]||1,r[0]||1):t.scale(r[0]||1,r[1]||1)),a[n].indexOf("skewX")>-1&&(r=s.stringToArgs(a[n]),t.transform(1,0,Math.tan(r[0]*(Math.PI/180)),1,0,0)),a[n].indexOf("skewY")>-1&&(r=s.stringToArgs(a[n]),t.transform(1,Math.tan(r[0]*(Math.PI/180)),0,1,0,0)))},s.resetTransform=function(e){e.setTransform(1,0,0,1,0,0)},s.stringToArgs=function(e){var t=/\(([^)]+)/.exec(e)[1];return s.getArgsAsArray(t)},s.getArgsAsArray=function(e){var t;for(e=e.trim().split(/[\s,]+/),t=0;t<e.length;t++)e[t].trim(),0===e[t].length&&e.splice(t,1);return e},s.applyFillEffect=function(e,t,r,n){var a;e.attributes["fill-opacity"]&&"none"!==e.attributes["fill-opacity"].value?t.globalAlpha=e.attributes["fill-opacity"].value:t.globalAlpha=1,e.attributes.fill&&e.attributes.fill.value.indexOf("url(")>-1?(a=s.getFillStyleById(/url\(.*#([^)'"]+)/.exec(e.attributes.fill.value)[1],t,r,n),t.fillStyle=a):e.attributes.fill?t.fillStyle=e.attributes.fill.value:t.fillStyle="#000000"},s.endFillEffect=function(e,t){t.globalAlpha=1},s.applyStrokeEffect=function(e,t,r,n){e.attributes["stroke-opacity"]&&"none"!==e.attributes["stroke-opacity"].value&&(t.globalAlpha=e.attributes["stroke-opacity"].value),e.attributes["stroke-width"]&&(t.lineWidth=e.attributes["stroke-width"].value,"0"===e.attributes["stroke-width"].value&&(t.globalAlpha=0)),e.attributes["stroke-linecap"]&&"none"!==e.attributes["stroke-linecap"].value&&(t.lineCap=e.attributes["stroke-linecap"].value),e.attributes["stroke-linejoin"]&&"none"!==e.attributes["stroke-linejoin"].value&&(t.lineJoin=e.attributes["stroke-linejoin"].value),e.attributes["stroke-dasharray"]&&"none"!==e.attributes["stroke-dasharray"].value&&t.setLineDash&&t.setLineDash(s.getArgsAsArray(e.attributes["stroke-dasharray"].value)),e.attributes.stroke?t.strokeStyle=e.attributes.stroke.value:t.strokeStyle="#000000"},s.endStrokeEffect=function(e,t){e.attributes["stroke-opacity"]&&"none"!==e.attributes["stroke-opacity"].value&&(t.globalAlpha=1,t.setLineDash&&t.setLineDash([]),t.lineWidth=1),t.globalAlpha=1},s.applyClip=function(e,t,r){var n,a,i,l,c,u=r.getSVG();if(-1!==e.indexOf("url(")){for(l in n=/url\(.*#([^)'"]+)/.exec(e)[1],(a=u.getElementById(n)).attributes&&(t.save(),a.attributes.transform&&s.startTransform(a.attributes.transform.value,t)),i=a.childNodes)i.hasOwnProperty(l)&&i[l].tagName&&i[l].constructor!==Array&&(c="draw"+i[l].tagName,i[l].attributes&&(t.save(),i[l].attributes.transform&&s.startTransform(i[l].attributes.transform.value,t)),o[c]&&(o[c](i[l],t,r,"clip"),t.closePath()),i[l].attributes&&t.restore());a.attributes&&t.restore(),t.clip()}},s.getFillStyleById=function(e,t,r,n){var a=r.getSVG().getElementById(e);return"linearGradient"===a.tagName?s.getLinearGradient(a,t,n):"radialGradient"===a.tagName?s.getRadialGradient(a,t,n):"#FFFFFF"},s.getLinearGradient=function(e,t,r){var n,a,i,o,l,c=e.attributes.x1?s.getPercentValue(e.attributes.x1.value,r.xMax-r.xMin,r.xMin):0,u=e.attributes.y1?s.getPercentValue(e.attributes.y1.value,r.yMax-r.yMin,r.yMin):0,d=e.attributes.x2?s.getPercentValue(e.attributes.x2.value,r.xMax-r.xMin,r.xMin):0,h=e.attributes.y2?s.getPercentValue(e.attributes.y2.value,r.yMax-r.yMin,r.yMin):0;for(i in n=t.createLinearGradient(c,u,d,h),a=e.childNodes)a.hasOwnProperty(i)&&a[i].attributes&&a[i].attributes["stop-color"]&&(o=s.toRGB(a[i].attributes["stop-color"].value),l=a[i].attributes["stop-opacity"]?a[i].attributes["stop-opacity"].value:1,o.status?n.addColorStop(s.getPercentValue(a[i].attributes.offset.value,1,0),"rgba("+o.r+","+o.g+","+o.b+","+Number(l)+")"):n.addColorStop(s.getPercentValue(a[i].attributes.offset.value,1,0),a[i].attributes["stop-color"].value));return n},s.getRadialGradient=function(e,t,r){var n,a,i,o,l,c=e.attributes.cx?s.getPercentValue(e.attributes.cx.value,r.xMax-r.xMin,r.xMin):r.xMin+.5*(r.xMax-r.xMin),u=e.attributes.cy?s.getPercentValue(e.attributes.cy.value,r.yMax-r.yMin,r.yMin):r.yMin+.5*(r.yMax-r.yMin),d=e.attributes.fx?s.getPercentValue(e.attributes.fx.value,r.xMax-r.xMin,r.xMin):r.xMin+.5*(r.xMax-r.xMin),h=e.attributes.fy?s.getPercentValue(e.attributes.fy.value,r.yMax-r.yMin,r.yMin):r.yMin+.5*(r.yMax-r.yMin),f=e.attributes.r?s.getPercentValue(e.attributes.r.value,(r.yMax-r.yMin+r.xMax-r.xMin)/2,0):s.getPercentValue("50%",(r.yMax-r.yMin+r.xMax-r.xMin)/2,0);for(i in n=t.createRadialGradient(d,h,0,c,u,f),a=e.childNodes)a.hasOwnProperty(i)&&a[i].attributes&&a[i].attributes["stop-color"]&&(o=s.toRGB(a[i].attributes["stop-color"].value),l=a[i].attributes["stop-opacity"]?a[i].attributes["stop-opacity"].value:1,o.status?n.addColorStop(s.getPercentValue(a[i].attributes.offset.value,1,0),"rgba("+o.r+","+o.g+","+o.b+","+Number(l)+")"):n.addColorStop(s.getPercentValue(a[i].attributes.offset.value,1,0),a[i].attributes["stop-color"].value));return n},s.getPercentValue=function(e,t,r){var n;return-1!==e.indexOf("%")?((n=/(\d.*)%/.exec(e)[1])>100&&(n=100),n*t/100+1*r):e>1?e:e*t+1*r},s.bBoxFromPoint=function(e,t,r){"undefined"!=typeof r.xMin&&(e.push(r.xMin,r.xMax),t.push(r.yMin,r.yMax)),r.xMin=Math.min.apply(this,e),r.xMax=Math.max.apply(this,e),r.yMin=Math.min.apply(this,t),r.yMax=Math.max.apply(this,t)},s.arcBBox=function(e,t,r,n,a,i,o,s){var l,c,u,d,h,f,g,p,m,v,b;o instanceof Array&&(e=e*o[0]+e*o[2]+o[4],t=t*o[1]+t*o[3]+o[5]),b=function(e,t,r){return(e=(e+2*Math.PI)%(2*Math.PI))<=(t=(t+2*Math.PI)%(2*Math.PI))?e<=r&&r<=t:e>=t?!(e>=r&&r>=t):void 0},l=n%(2*Math.PI),c=a%(2*Math.PI),i&&(l=a%(2*Math.PI),c=n%(2*Math.PI)),u=e+r*Math.cos(l),d=t+r*Math.sin(l),m=[u,e+r*Math.cos(c)],v=[d,t+r*Math.sin(c)],b(l,c,0)&&(m.push(1*e+1*r),v.push(t)),b(l,c,.5*Math.PI)&&(m.push(e),v.push(1*t+1*r)),b(l,c,Math.PI)&&(m.push(e-1*r),v.push(t)),b(l,c,1.5*Math.PI)&&(m.push(e),v.push(t-1*r)),g=Math.max.apply(this,m),h=Math.min.apply(this,m),p=Math.max.apply(this,v),f=Math.min.apply(this,v),"undefined"!=typeof s.xMin?(s.xMin=Math.min(h,s.xMin),s.xMax=Math.max(g,s.xMax),s.yMin=Math.min(f,s.yMin),s.yMax=Math.max(p,s.yMax)):(s.xMin=h,s.xMax=g,s.yMin=f,s.yMax=p)},s.qBezierBBox=function(e,t,r,n,a,i,o){var s,l,c,u,d,h,f,g,p=1*e-2*r+1*a,m=1*t-2*n+1*i;0===p||0===m?(d=Math.max(e,a),c=Math.min(e,a),h=Math.max(t,i),u=Math.min(t,i)):(s=(e-r)/p,l=(t-n)/m,f=e*Math.pow(1-s,2)+2*r*(1-s)*s+a*Math.pow(s,2),g=t*Math.pow(1-l,2)+2*n*(1-l)*l+i*Math.pow(l,2),d=Math.max(e,a,f),c=Math.min(e,a,f),h=Math.max(t,i,g),u=Math.min(t,i,g)),"undefined"!=typeof o.xMin?(o.xMin=Math.min(c,o.xMin),o.xMax=Math.max(d,o.xMax),o.yMin=Math.min(u,o.yMin),o.yMax=Math.max(h,o.yMax)):(o.xMin=c,o.xMax=d,o.yMin=u,o.yMax=h)},s.cBezierBBox=function(e,t,r,n,a,i,o,s,l){var c,u,d,h,f,g,p,m,v,b,y,x,C;null===a&&null===i&&(a=t+2/3*(n-t),n=(r=e+2/3*(r-e))+1/3*(o-e),i=a+1/3*(s-t)),y=function(e,t,r,n,a){return e*Math.pow(1-a,3)+3*t*a*Math.pow(1-a,2)+3*r*a*a*(1-a)+n*a*a*a},f=3*o-9*a+9*r-3*e,g=6*e-12*r+6*a,p=3*r-3*e,o<(c=e)&&(c=o),o>(u=e)&&(u=o),(m=Math.pow(g,2)-4*f*p)>=0&&((v=(-g+Math.sqrt(m))/(2*f))>0&&v<1&&((x=y(e,r,a,o,v))<c&&(c=x),x>u&&(u=x)),(b=(-g-Math.sqrt(m))/(2*f))>0&&b<1&&((x=y(e,r,a,o,b))<c&&(c=x),x>u&&(u=x))),f=3*s-9*i+9*n-3*t,g=6*t-12*n+6*i,p=3*n-3*t,s<(d=t)&&(d=s),s>(h=t)&&(h=s),(m=Math.pow(g,2)-4*f*p)>=0&&((v=(-g+Math.sqrt(m))/(2*f))>0&&v<1&&((C=y(t,n,i,s,v))<d&&(d=C),C>h&&(h=C)),(b=(-g-Math.sqrt(m))/(2*f))>0&&b<1&&((C=y(t,n,i,s,b))<d&&(d=C),C>h&&(h=C))),"undefined"!=typeof l.xMin?(l.xMin=Math.min(c,l.xMin),l.xMax=Math.max(u,l.xMax),l.yMin=Math.min(d,l.yMin),l.yMax=Math.max(h,l.yMax)):(l.xMin=c,l.xMax=u,l.yMin=d,l.yMax=h)},s.combineTransformMatrix=function(e){var t,r,n=e.length-1;if(n<=0)return e[0];for(r=e[0],t=1;t<=n;t++)r[0]=r[0]*e[t][0]+r[1]*e[t][3],r[1]=r[0]*e[t][1]+r[1]*e[t][4],r[2]=r[0]*e[t][2]+r[1]*e[t][5]+1*r[2],r[3]=r[3]*e[t][0]+r[4]*e[t][3],r[4]=r[3]*e[t][1]+r[4]*e[t][4],r[5]=r[3]*e[t][2]+r[4]*e[t][5]+1*r[5];return r},s.angleBetweenVectors=function(e,t,r,n){var a=e*n<t*r?-1:1,i=e*r+t*n,o=Math.sqrt(Math.pow(e,2)+Math.pow(t,2)),s=Math.sqrt(Math.pow(r,2)+Math.pow(n,2));return a*Math.acos(i/(o*s))},s.toRGB=function(e){var t,r,n,a={r:0,g:0,b:0,status:0};return r=function(e){for(n in e)e.hasOwnProperty(n)&&(e[n]<0||isNaN(e[n])?e[n]=0:e[n]>255&&(e[n]=255));return a={r:e[0],g:e[1],b:e[2],status:1}},(e=e.trim()).match(/^rgb\(|^rgba\(/i)?(t=/\(\s*(\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})/.exec(e),r([parseInt(t[1]),parseInt(t[2]),parseInt(t[3])])):e.match(/^#/)&&(t=/(\w{2})(\w{2})(\w{2})/.exec(e),r([parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)])),a},s.StrToDom=function(e){var t;return a.DOMParser?t=(new DOMParser).parseFromString(e,"text/xml"):((t=new a.ActiveXObject("Microsoft.XMLDOM")).async=!1,t.loadXML(e)),t};var l=n;t["default"]=l},function(e,t,r){"use strict";t.__esModule=!0,t.addImage=function(e,t,r){d=t,h=r,s=[],l=0,n=o,a=o,i=o,n=d||c,a=h||u,i=atob(/base64,(.+?)$/g.exec(e)[1]);var d,h},t.getDataUrl=function(){return"data:application/pdf;base64,"+btoa(function(){var e,t,r=[];for(d("%PDF-1.7"),r[1]=l,d("1 0 obj"),d("/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]"),d("endobj"),r[4]=l,d("4 0 obj"),d("<< /Length 36>>"),d("stream"),d("q "+a+" 0 0 "+n+" 0 0 cm /Im3 Do Q"),d("endstream"),d("endobj"),r[5]=l,d("5 0 obj"),d("<</Type /Page /Parent 2 0 R /MediaBox [0 0 "+a+" "+n+"] /Contents [4 0 R ] /Resources <</ProcSet 1 0 R /Font <<>> /XObject <</Im3 3 0 R >> >> >>"),d("endobj"),r[3]=l,d("3 0 obj"),d("<</Type /XObject /Subtype /Image /Width "+a+" /Height "+n+" /ColorSpace /DeviceRGB /BitsPerComponent 8 /Filter /DCTDecode /Length "+i.length+">>"),d("stream"),d(i),d("endstream"),d("endobj"),r[2]=l,d("2 0 obj"),d("<</Type /Pages /Kids [5 0 R ] /Count 1>>"),d("endobj"),r[6]=l,d("6 0 obj"),d("<</Type /Catalog /Pages 2 0 R >>"),d("endobj"),e=l,d("xref"),d("0 7"),d("0000000000 65535 f "),t=1;t<=6;t++)d(("0000000000"+r[t]).slice(-10)+" 00000 n ");return d("trailer"),d("<</Size 7 /Root 6 0 R >>"),d("startxref"),d(e),d("%%EOF"),s.join("\n")}())};var n,a,i,o,s=[],l=0,c=500,u=500;function d(e){l+=e.length+1,s.push(e)}},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n,a,i=r(323),o=r(325),s=r(184),l=r(322),c=r(191),u="newCanvas",d=window,h=Math.max,f=d.Image,g=d.navigator.userAgent.match(/(iPad|iPhone|iPod)/g),p="IMAGE-DATA",m="https:"===d.location.protocol?"https://export.api3.fusioncharts.com/api/v1.0/logs":"http://export.api3.fusioncharts.com/api/v1.0/logs",v="https:"===d.location.protocol?"https://export.api3.fusioncharts.com/":"http://export.api3.fusioncharts.com/",b="",y=function(e){return!e.match(/http:\/\/|https:\/\//)||!/(http:\/\/|https:\/\/)([^\/\:]*)/.exec(e)[2]||d.location.hostname===/(http:\/\/|https:\/\/)([^\/\:]*)/.exec(e)[2]},x=function(e,t,r,n){var a=e,i=t;return isNaN(a)&&(a=(0,s.pluckNumber)(t,n)*(r/n)),isNaN(i)&&(i=(0,s.pluckNumber)(e,r)*(n/r)),{width:a,height:i}},C=function(){(0,c.triggerEvent)("exportcancelled")};function w(){var e,t,r,w,_,k,S,E,A,T,M,F,I,L=arguments[0]||{},N=0,D=!1,O={exportTargetWindow:(0,s.pluck)(L.exportTargetWindow,g?"_parent":"_self"),exportAction:L.exportAction&&"string"==typeof L.exportAction?(F=L.exportAction.toLowerCase(),[l.EXPORTACTION.DOWNLOAD,l.EXPORTACTION.SAVE,l.EXPORTACTION.DOWNLOADSAVE].indexOf(F)>=0?F:l.EXPORTACTION.DOWNLOAD):l.EXPORTACTION.DOWNLOAD,exportFileName:(0,s.pluck)(L.exportFileName,"FusionCharts"),exportHandler:(0,s.pluck)(L.exportHandler,v),exportParameters:(0,s.pluck)(L.exportParameters,b),exportFormat:(0,s.pluck)(L.exportFormat,l.EXPORTFORMAT.PNG),exportCallback:(0,s.pluck)(L.exportCallback,b),exportAtClientSide:(0,s.pluckNumber)(L.exportAtClientSide,1),exportMode:("undefined"!=typeof L.exportAtClientSide&&(M={1:l.EXPORTMODE.AUTO,0:l.EXPORTMODE.SERVER}[L.exportAtClientSide]),M=(M=L.exportMode||M||l.EXPORTMODE.AUTO).toLowerCase()),logEnabled:(0,s.pluckNumber)(L.logEnabled,0),logMode:(T=L.logMode,void 0!==T&&"string"==typeof T&&T.toUpperCase()in l.LOGMODE?l.LOGMODE[T.toUpperCase()]:l.LOGMODE.AUTO),logHandler:(0,s.pluck)(L.logHandler,m)},R=O.exportFormat.toLowerCase(),P=0,V=0,B=a.items,j=x,G=function(e,t,r){var n;return n=!!O.logEnabled,O.logMode===l.LOGMODE.CLIENT&&(n=!1),{charttype:"combined",stream_type:e||"",stream:t||"",is_single_export:!1,is_full_version:!1,version:s.PROJECT_VERSION,user_time_zone:-(new Date).getTimezoneOffset(),log_enabled:n,parameters:["exportfilename="+O.exportFileName,"exportformat="+O.exportFormat,"exportaction="+(0,l.createExportActionOldString)(O.exportAction),"exportactionnew="+O.exportAction,"configuredexportaction="+(r||O.exportAction),"exportparameters="+O].join("|")}},H=function(){return{chartType:"combined",isSingleExport:!1,isFullVersion:!1,exportAction:O.exportAction,userTimeZone:-(new Date).getTimezoneOffset(),exportFileName:[O.exportFileName,O.exportFormat].join("."),exportFormat:O.exportFormat,version:s.PROJECT_VERSION}},z=function(e){e===l.LOGMODE.CLIENT&&(0,l.logCharts)(H(),O)},U=function(e){var t,r,a;(0,c.triggerEvent)("beforeexport",n,n,n,(function(){r="undefined"!=typeof d.btoa&&("Chrome"===i.browserDetails.name||"Firefox"===i.browserDetails.name||"Safari"===i.browserDetails.name||"Edge"===i.browserDetails.name||"ie"===i.browserDetails.name),O.exportMode===l.EXPORTMODE.CLIENT||O.exportMode===l.EXPORTMODE.AUTO&&r?(O.exportAction!==l.EXPORTACTION.DOWNLOAD&&O.exportAction!==l.EXPORTACTION.DOWNLOADSAVE||(t=O.exportMode===l.EXPORTMODE.AUTO?G(p,e):null,(0,i.downloadCharts)("url",e,O.exportFileName+"."+R,t,O),(0,c.triggerEvent)("exported",n,{fileName:O.exportFileName+"."+R})),O.exportAction===l.EXPORTACTION.SAVE||O.exportAction===l.EXPORTACTION.DOWNLOADSAVE?(a=O.exportAction,O.exportAction===l.EXPORTACTION.DOWNLOADSAVE&&(O.exportAction=l.EXPORTACTION.SAVE),t=G(p,e,a),O.paper={width:n,height:n},O.fusionCharts={},(0,i.downloadCharts)(null,null,null,t,O),delete O.paper,delete O.fusioncharts,z(O.logMode)):O.logMode!==l.LOGMODE.SERVER&&(0,l.logCharts)(H(),O)):(t=G(p,e),O.paper={width:n,height:n},O.fusionCharts={},(0,i.downloadCharts)(null,null,null,t,O),delete O.paper,delete O.fusioncharts,z(O.logMode))}),C)},X=function(){if(0===(N-=1)&&D)switch(R){case"png":U(r.toDataURL("image/png"));break;case"jpeg":U(r.toDataURL("image/jpeg"));break;case"pdf":(0,o.addImage)(r.toDataURL("image/jpeg"),P,V),U((0,o.getDataUrl)());break;default:U(r.toDataURL("image/png"))}},W=function(){var e=this;(0,i.drawSvgOnCanvas)({svg:arguments[0],canvas:r,x:e.x,y:e.y,width:e.width,height:e.height,useCanvas:arguments[1]},X)},$=function(t,r){var n,i;(e=a.items[t]).jsVars.instanceAPI&&(_=(_=(_=(_=e.jsVars.instanceAPI.getFromEnv("paper").toSVG(!0)).replace(/NS\d+:/gi,"xlink:")).replace(/(\sd\s*=\s*["'])[M\s\d\.]*(["'])/gi,"$1M 0 0 L 0 0$2")).replace(/(xlink:title\s*=\s*)['"].*?["']/gi,""),N+=1,n=_,i=a.options["export"].useCanvas,(0,l.cacheAllImages)(n,!1,(function(){n=(0,l.replaceImagesWithNonDataUrl)(n),W.call(r||e,n,i)})))};if((I={})[l.EXPORTMODE.CLIENT]=1,I[l.EXPORTMODE.AUTO]=0,I[l.EXPORTMODE.SERVER]=0,O.exportatclientside=I[O.exportMode],i.browserDetails.hasCanvas){for(function(){var e,r,n,a,i=L.charts;if(t=[],i)for(n in i)i.hasOwnProperty(n)&&(e=B[i[n].id])&&(r=i[n],a=j(Number(r.width),Number(r.height),e.width,e.height),t.push({id:e.id,width:a.width,height:a.height,x:r.x,y:r.y}));else for(n in B)B.hasOwnProperty(n)&&(e=B[n],t.push({id:e.id,width:e.width,height:e.height}))}(),A=0,k=t.length;A<k;A+=1)(E=t[A]).x=(0,s.pluckNumber)(E.x,5),E.y=(0,s.pluckNumber)(E.y,P+5),E.height=(0,s.pluckNumber)(E.height),E.width=(0,s.pluckNumber)(E.width),P=h(P,E.y+E.height),V=h(V,E.x+E.width);var Y,q;P=L.imageHeight||P+5,V=L.imageWidth||V+5,Y=function(){for(A=0,k=t.length;A<k;A+=1)E=t[A],A===k-1&&(D=!0),$(E.id,E)},q=L.background,(r=d.document.createElement("canvas")).id=u,r.width=V,r.height=P,r.style.border="1px solid black",(w=r.getContext("2d")).fillStyle=q&&q.bgColor||"#ffffff",w.fillRect(0,0,V,P),q&&q.bgImage&&y(q.bgImage)?((S=new f).src=q.bgImage,S._userData=q,w.globalAlpha=(0,s.pluckNumber)(q.bgImageAlpha,100)/100,S.onload=function(){var e=this._userData,t=(0,s.pluckNumber)(e.bgImageX,0),r=(0,s.pluckNumber)(e.bgImageY,0),n=j(Number(e.bgImageWidth),Number(e.bgImageHeight),this.width,this.height);try{w.drawImage(this,t,r,n.width,n.height)}finally{w.globalAlpha=1,Y()}},S.onerror=function(){Y()}):Y()}}var _={extension:function(e){e.batchExport=w,a=e},name:"batchExportLinker",type:"extension",requiresFusionCharts:!0};t["default"]=_},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(328)),i=r(184),o=function(e){var t=e.sender;(function(e,t){return e.getType()===t})(t,"chartAPI")&&t.registerFactory("logo",(function(e){var t=e.getFromEnv("chart-attrib");(0,i.componentFactory)(e,a["default"],"logo",(0,i.getValidValue)(t.logourl,"")?1:0,[t])}))},s={extension:function(e){e.addEventListener("instantiated",o)},name:"LogoExtension",type:"extension",requiresFusionCharts:!0};t["default"]=s},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(201)),i=n(r(198)),o=r(199),s=r(184),l={vAlign:"top",hAlign:"left"},c={link:{cursor:"pointer",_cursor:"pointer"},normal:{cursor:"default",_cursor:"normal"}},u={tr:{vAlign:"top",hAlign:"right"},bl:{vAlign:"bottom",hAlign:"left"},br:{vAlign:"bottom",hAlign:"right"},cc:{vAlign:"middle",hAlign:"middle"}},d=!(!window.SVGAngle&&!document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")),h=function(e){var t=e.config;return{load:function(){var r,n=e.getGraphicalElement("logoImage"),a=e.getFromEnv("chartConfig"),i=a.borderWidth||0,o=t.logoPosition,l=t.logoScale,c=t.logoLeftMargin,u=t.logoTopMargin,h=t.logoURL,f=t.logoAlpha,g=t.logoPositionSTR,p=t.logoLink;n.show(),r=(0,s.setImageDisplayMode)("none",o.vAlign,o.hAlign,l,i,a.width,a.height,n._.RefImg),d&&(r.w=r.width||0,r.h=r.height||0),r.transform="T"+c+","+u,n.attr(r),e.getFromEnv("chart").fireChartInstanceEvent("LogoLoaded",{logoURL:h,logoAlpha:f,logoPosition:g,logoScale:l,logoLink:p})},error:function(r){var n=t.logoURL,a=t.logoAlpha,i=t.logoPositionSTR,o=t.logoScale,s=t.logoLink;e.getFromEnv("chart").fireChartInstanceEvent("LogoLoadError",{logoURL:n,logoAlpha:a,logoPosition:i,logoScale:o,logoLink:s,error:r})},mouseover:function(r){var n=(0,s.getMouseCoordinate)(e.getFromEnv("chartInstance").ref,r),a=t.logoURL,i=t.logoAlpha,o=t.logoPositionSTR,l=t.logoScale,c=t.logoLink;e.getFromEnv("chart").fireChartInstanceEvent("LogoRollover",{logoURL:a,logoAlpha:i,logoPosition:o||"tl",logoScale:l,logoLink:c,chartX:n.chartX,chartY:n.chartY,pageX:n.pageX,pageY:n.pageY})},mouseout:function(r){var n=(0,s.getMouseCoordinate)(e.getFromEnv("chartInstance").ref,r),a=t.logoURL,i=t.logoAlpha,o=t.logoPositionSTR,l=t.logoScale,c=t.logoLink;e.getFromEnv("chart").fireChartInstanceEvent("LogoRollout",{logoURL:a,logoAlpha:i,logoPosition:o||"tl",logoScale:l,logoLink:c,chartX:n.chartX,chartY:n.chartY,pageX:n.pageX,pageY:n.pageY})},click:function(r){var n=(0,s.getMouseCoordinate)(e.getFromEnv("chartInstance").ref,r),a=t.logoURL,i=t.logoAlpha,o=t.logoPositionSTR,l=t.logoScale,c=t.logoLink;e.getFromEnv("chart").fireChartInstanceEvent("LogoClick",{logoURL:a,logoAlpha:i,logoPosition:o||"tl",logoScale:l,logoLink:c,chartX:n.chartX,chartY:n.chartY,pageX:n.pageX,pageY:n.pageY},void 0,t.linkClickFN)}}},f=function(e){function t(){var t;t=e.call(this)||this;var r=(0,a["default"])(t);return r.config._context={},r.config.handler=h(r),r.config.linkClickFN=function(){var e=r.config.logoLink;e&&r.getFromEnv("linkClickFN").call({link:e},!0)},t}(0,i["default"])(t,e);var r=t.prototype;return r.configureAttributes=function(){var e=this.config,t=this.getFromEnv("chart-attrib");e.logoURL=(0,s.getValidValue)(t.logourl,""),e.logoPositionSTR=(0,s.pluck)(t.logoposition,"tl").toLowerCase(),e.logoPosition=u[e.logoPositionSTR]||l,e.logoAlpha=(0,s.pluckNumber)(t.logoalpha,100),e.logoLink=(0,s.getValidValue)(t.logolink),e.logoScale=(0,s.pluckNumber)(t.logoscale,100),e.logoLeftMargin=(0,s.pluckNumber)(t.logoleftmargin,0),e.logoTopMargin=(0,s.pluckNumber)(t.logotopmargin,0),this.setState("dirty",!0)},r._contextChanged=function(){var e,t=this.config,r=this.getFromEnv("chartConfig"),n=r.borderWidth,a=r.width,i=r.height;return n!==t._context.chartBorderWidth&&(t._context.chartBorderWidth=n,e=!0),a!==t._context.chartWidth&&(t._context.chartWidth=a,e=!0),i!==t._context.chartHeight&&(t._context.chartHeight=i,e=!0),e},r.draw=function(){var e=this.config,t=this.getGraphicalElement("logoImage"),r=e.logoURL,n=!this.getState("removed");(!n||this.getState("dirty")||this._contextChanged())&&r&&n&&(t=this.getFromEnv("animationManager").setAnimation({el:t||"image",attr:{opacity:.01*e.logoAlpha||1,src:r},component:this,container:this.getLinkedParent().getChildContainer("logoGroup")}),this.getGraphicalElement("logoImage")||(this.addGraphicalElement("logoImage",t),t.on("load",e.handler.load),t.on("error",e.handler.error),t.on("fc-click",e.handler.click),t.on("fc-mouseover",e.handler.mouseover),t.on("fc-mouseout",e.handler.mouseout)),t.css(c[e.logoLink?"link":"normal"]))},t}(o.ComponentInterface);t["default"]=f},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n="Theme";var a={extension:function(e){e.addEventListener("register",(function(t,r){var a,i=r[0],o=r[1];if(i&&"string"==typeof i&&"theme"===i&&o&&"object"==typeof o){if(o instanceof Array)for(a=0;a<o.length;a++)e.addDep({extension:o[a],name:o[a].name+n,type:"theme"});else e.addDep({extension:o,name:o.name+n,type:"theme"});t.preventDefault()}}))},name:"ThemeEngine",type:"extension",requiresFusionCharts:!0};t["default"]=a},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n,a=r(191);(n={outputHelpers:{text:function(e,t){n.outputTo("#"+e.eventId+" ["+(e.sender.id||e.sender).toString()+'] fired "'+e.eventType+'" event. '+("error"===e.eventType||"warning"===e.eventType?t.message:""))},event:function(e,t){this.outputTo(e,t)},verbose:function(e,t){n.outputTo(e.eventId,e.sender.id,e.eventType,t)}},outputHandler:function(e,t){"function"==typeof n.outputTo&&n.currentOutputHelper(e,t)},currentOutputHelper:void 0,outputTo:void 0,enabled:!1}).currentOutputHelper=n.outputHelpers.text;var i={extension:function(e){e["debugger"]={outputFormat:function(e){var t=e;return!(!t||"function"!=typeof t.toLowerCase||"function"!=typeof n.outputHelpers[t=t.toLowerCase()])&&(n.currentOutputHelper=n.outputHelpers[t],!0)},outputTo:function(t){"function"==typeof t?n.outputTo=t:null===t&&(e["debugger"].enable(!1),delete n.outputTo)},enable:function(t,r,i){var o,s=t,l=r,c=i;return"object"==typeof s&&1===arguments.length&&(s=(o=s).state,l=o.outputTo,c=o.outputFormat),"function"==typeof s&&("string"!=typeof l||2!==arguments.length&&!o||(c=l),l=s,s=!0),"boolean"==typeof s&&s!==n.enabled&&(n.enabled=s,n.enabled?(0,a.addListener)("*",n.outputHandler):(0,a.removeListener)("*",n.outputHandler)),"function"==typeof l&&(n.outputTo=l),e["debugger"].outputFormat(c),n.enabled}}},name:"Debugger",type:"extension",requiresFusionCharts:!0};t["default"]=i},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a,i=n(r(332)),o=r(184),s=r(196),l=0;function c(e,t){var r=this.apiInstance,n=t,c=r.getChildren("dataset")[0],u=c.getChildren(),d=u.centerLabel&&u.centerLabel[0],h=r.config;d===a&&((0,o.componentFactory)(c,i["default"],"centerLabel",1,[h]),d=u.centerLabel&&u.centerLabel[0]),r.addJob("eiMethods-center-lebel"+l++,(function(){var t,i,o=r.getDatasets()[0],s=o.config.piePlotOptions.innerSize;if(t=d.config,"object"!=typeof n)n=t;else{for(i in t)n[i]===a&&(n[i]=t[i]);t=Object.assign(t,n)}n.label=e,t.label=e,o.centerLabelConfig=t,s&&d&&d.draw(e||"")}),s.priorityList.postRender)}var u={extension:function(e){e.addEventListener("instantiated",(function(e){var t=e.sender;(function(e){var t=e.getName().toLowerCase();return("doughnut2d"===t||"multilevelpie"===t)&&"dataset"===e.getType()})(t)&&t.registerFactory("centerLabel",(function(){var e=t.getFromEnv("chartConfig"),r=!(!e.centerlabel&&!e.defaultcenterlabel);t.getFromEnv("chartInstance").centerLabel=c,(0,o.componentFactory)(t,i["default"],"centerLabel",r?1:0,[e])}))}))},name:"CenterLabelExtension",type:"extension",requiresFusionCharts:!0};t["default"]=u},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(199),o=r(184),s=r(192),l=n(r(333));(0,s.addDep)({name:"centerLabelAnimation",type:"animationRule",extension:l["default"]});var c=function(e){function t(){return e.apply(this,arguments)||this}(0,a["default"])(t,e);var r=t.prototype;return r.getName=function(){return"centerLabel"},r.getType=function(){return"centerLabel"},r.configure=function(e){var t=this.getFromEnv("chart-attrib"),r=this.getFromEnv("number-formatter"),n=e.dataLabelStyle,a=this;a.config={label:(0,o.parseUnsafeString)((0,o.pluck)(t.defaultcenterlabel,"")),font:(0,o.pluck)(t.centerlabelfont,n.fontFamily),fontSize:(0,o.pluckNumber)(t.centerlabelfontsize,parseInt(n.fontSize,10)),color:(0,o.getFirstColor)((0,o.pluck)(t.centerlabelcolor,t.valuefontcolor,e.style.inCanvasStyle.color,"555555")),alpha:(0,o.pluckNumber)(t.centerlabelalpha,100),bold:(0,o.pluckNumber)(t.centerlabelbold,n.fontWeight),italic:(0,o.pluckNumber)(t.centerlabelitalic,n.style),bgColor:(0,o.pluck)(t.centerlabelbgcolor,""),bgAlpha:(0,o.pluckNumber)(t.centerlabelbgalpha,100),borderColor:(0,o.pluck)(t.centerlabelbordercolor,n.borderColor),borderAlpha:(0,o.pluckNumber)(t.centerlabelborderalpha,100),borderThickness:(0,o.pluckNumber)(t.centerlabelborderthickness,n.borderThickness),borderRadius:(0,o.pluckNumber)(t.centerlabelborderradius,n.borderRadius),textPadding:(0,o.pluckNumber)(t.centerlabeltextpadding,n.borderPadding),padding:(0,o.pluckNumber)(t.centerlabelpadding,2),bgOval:(0,o.pluckNumber)(t.centerlabelbgoval,0),shadow:(0,o.pluckNumber)(t.showcenterlabelshadow,0),hoverColor:t.centerlabelhovercolor&&(0,o.getFirstColor)((0,o.pluck)(t.centerlabelhovercolor)),hoverAlpha:(0,o.pluckNumber)(t.centerlabelhoveralpha),toolText:(0,o.parseUnsafeString)((0,o.pluck)(t.centerlabeltooltext,o.BLANKSTRING))},a.addExtEventListener("datasetrollover",(function(e){var t=e.data,n=(0,o.pluck)(function(e,t,r){var n=e;if(n)for(var a,i=t.length||0;i--;)a=new RegExp(t[i],"gi"),n=n.replace(a,r[i]);return n}(e.sender.getFromEnv("dataSource").chart.centerlabel,["\\$value","\\$percentValue","\\$displayValue","\\$label"],[r.scale(t.value),t.pValue,t.displayValue,t.label]),"");a.draw(n,!1)}),this.getFromEnv("chart").getDatasets()[0]),a.addExtEventListener("datasetrollout",(function(e){a.draw((0,o.pluck)(e.sender.config.label,""),!1)}),this.getFromEnv("chart").getDatasets()[0])},r.draw=function(e){var t,r,n=this,a=n.getFromEnv("chart"),i=a.config.canvasLeft+.5*a.config.canvasWidth,s=a.config.canvasTop+.5*a.config.canvasHeight,l=a.getDatasets()[0].config.innerSize,c=a.getDatasets()[0].config.innerSize,u=a.getDatasets()[0].config,d=this.config,h=n.getFromEnv("animationManager"),f=n.getFromEnv("smartLabel"),g=this.getGraphicalElement("centerLabel"),p=g,m=this.getGraphicalElement("centerLabelBg"),v=a.getChildContainer("plotGroup"),b=d.padding,y=2*d.textPadding,x={fontFamily:d.font,fontSize:d.fontSize+"px",lineHeight:1.2*d.fontSize+"px",fontWeight:d.bold?"bold":"",fontStyle:d.italic?"italic":""},C=1.414*(.5*l-b)-y,w=1.414*(.5*c-b)-y,_=n.getFromEnv("toolTipController");t=(0,o.pluck)(e,d.label),f.setStyle(x),f.useEllipsesOnOverflow(a.config.useEllipsesWhenOverflow),r=f.getSmartText(t,C,w),t?(d.bgOval&&(m=h.setAnimation({el:m||"circle",attr:{cx:i,cy:s,r:.5*l-b,visibility:"visible",container:v,fill:(0,o.hashify)(d.bgColor),"fill-opacity":d.bgAlpha/100,stroke:(0,o.hashify)(d.borderColor),"stroke-width":d.borderThickness,"stroke-opacity":d.borderAlpha/100},component:n})),p=h.setAnimation({el:g||"text",component:n,container:v,css:x,attr:{x:i,y:s,text:r.text,visibility:"visible",direction:a.config.textDirection,fill:(0,o.toRaphaelColor)({FCcolor:{color:d.color,alpha:d.alpha}}),"text-bound":d.bgOval?"none":[(0,o.toRaphaelColor)({FCcolor:{color:d.bgColor,alpha:d.bgAlpha}}),(0,o.toRaphaelColor)({FCcolor:{color:d.borderColor,alpha:d.borderAlpha}}),d.borderThickness,d.textPadding,d.borderRadius]},label:"text"}),_.enableToolTip(p,d.toolText||r.tooltext)):(p&&h.setAnimation({el:p,attr:{visibility:"hidden"},component:n}),m&&h.setAnimation({el:m,attr:{visibility:"hidden"},component:n})),g?p.attr("text")!==t&&n.centerLabelChange(t):(n.addEventListener("fc-mouseover",(function(){n._centerLabelRollover(a)})),n.addEventListener("fc-mouseout",(function(){n._centerLabelRollout(a)})),n.addEventListener("fc-click",(function(){n._centerLabelClick(a)})),n.addGraphicalElement("centerLabel",p),n.addGraphicalElement("centerLabelBg",m)),u.lastCenterLabelConfig=d,u.centerLabelConfig=d},r.centerLabelChange=function(e){var t=this.getFromEnv("chart"),r=t.config,n=this.getFromEnv("chartInstance"),a={height:r.height,width:r.width,pixelHeight:t.getFromEnv("chartWidth"),pixelWidth:t.getFromEnv("chartHeight"),id:n.id,renderer:n.args.renderer,container:n.options.containerElement,centerLabelText:e};t.fireChartInstanceEvent("centerLabelChanged",a)},r._centerLabelRollover=function(e){var t=e.config,r=e.getFromEnv("chartInstance"),n=this.config,a={height:t.height,width:t.width,pixelHeight:e.getFromEnv("chartWidth"),pixelWidth:e.getFromEnv("chartHeight"),id:r.id,renderer:r.args.renderer,container:r.options.containerElement,centerLabelText:n&&n.label};this.getFromEnv("paper").attr("text")&&e.fireChartInstanceEvent("centerLabelRollover",a,void 0,this.hoverOnCenterLabel.bind(this,e))},r._centerLabelRollout=function(e){var t=e.config,r=e.getFromEnv("chartInstance"),n=this.config,a={height:t.height,width:t.width,pixelHeight:e.getFromEnv("chartWidth"),pixelWidth:e.getFromEnv("chartHeight"),id:r.id,renderer:r.args.renderer,container:r.options.containerElement,centerLabelText:n&&n.label};this.getFromEnv("paper").attr("text")&&e.fireChartInstanceEvent("centerLabelRollout",a,void 0,this.hoverOffCenterLabel.bind(this,e))},r._centerLabelClick=function(e){var t,r=e.config,n=e.getFromEnv("chartInstance"),a={height:r.height,width:r.width,pixelHeight:e.getFromEnv("chartWidth"),pixelWidth:e.getFromEnv("chartHeight"),id:n.id,renderer:n.args.renderer,container:n.options.containerElement};t=this.config,a.centerLabelText=t&&t.label,this.getFromEnv("paper").attr("text")&&e.fireChartInstanceEvent("centerLabelClick",a)},r.hoverOnCenterLabel=function(e){var t=e.getChildren("dataset")[0].config.lastCenterLabelConfig;(t.hoverColor||t.hoverAlpha)&&this.getGraphicalElement("centerLabel").attr({fill:(0,o.toRaphaelColor)({FCcolor:{color:t.hoverColor||t.color,alpha:t.hoverAlpha||t.alpha}})})},r.hoverOffCenterLabel=function(e){var t=e.getChildren("dataset")[0].config.lastCenterLabelConfig;(t.hoverColor||t.hoverAlpha)&&this.getGraphicalElement("centerLabel").attr({fill:(0,o.toRaphaelColor)({FCcolor:{color:t.color,alpha:t.alpha}})})},t}(i.ComponentInterface);t["default"]=c},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]={"initial.centerLabel.centerLabel.text.appearing":function(e){if(e.attr)return[{initialAttr:{x:e.attr.x,y:e.attr.y}}]}}},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=r(184),i=n(r(335)),o=n(r(337)),s={dragnode:!0,hlineargauge:!0,column3d:!0,mscolumn3d:!0,bar3d:!0,pareto3d:!0,msbar3d:!0,stackedcolumn3d:!0,stackedbar3d:!0,mscombi3d:!0,mscolumnline3d:!0,stackedcolumn3dline:!0,mscolumn3dlinedy:!0,stackedcolumn3dlinedy:!0,realtimearea:!0,realtimecolumn:!0,realtimeline:!0,realtimestackedarea:!0,realtimestackedcolumn:!0,angulargauge:!0,realtimelinedy:!0,kagi:!0,treemap:!0,heatmap:!0,boxandwhisker2d:!0,scatter:!0,timeseries:!0,bubble:!0,errorscatter:!0,sparkwinloss:!0,zoomscatter:!0,zoomline:!0,zoomlinedy:!0,chord:!0},l=function(e){if("chartAPI"===e.sender.getType()){var t=e.sender,r=t.getFromEnv("chartInstance");r.drawCrossline=function(e){r.drawConsolidatedToolTip(e),t.iterateComponents((function(t){"crossline-manager"===t.getType()&&(e!==a.UNDEF?t.show({value:e}):t.hide())}))}}},c=function(e){var t,r,n,a=e.sender.apiInstance.getChildren("canvas");for(n=0;n<a.length;n++)(t=(t=a[n].getChildren("crosslineManagerBand"))&&t[0])&&(r=t._handlerAPI,t.config.axisScrolling=!0,r.onhoverout(e))},u=function(e){var t,r,n=e.sender.apiInstance.getChildren("canvas");for(r=0;r<n.length;r++)(t=n[r].getChildren("crosslineManagerBand"))&&t[0]&&(t[0].config.axisScrolling=!1)},d=function(e){if("canvas"===e.sender.getName()){var t,r,n=e.sender;n.registerFactory("crossLineManager",(function(){var l=e.sender.getFromEnv("chart"),c=l&&l.getName();c&&!s[c.toLowerCase()]&&((0,a.componentFactory)(n,o["default"],"crosslineManagerBand"),t=n.getChildren("crosslineManagerBand")[0],r=t._handlerAPI,t.configure(),(0,a.componentFactory)(t,i["default"],"crossline"),t.addExtEventListener("fc-mouseover",r.onhover,n),t.addExtEventListener("fc-mousemove",r.onhover,n),t.addExtEventListener("fc-mouseout",r.onhoverout,n))}))}},h={extension:function(e){e.addEventListener("preconfigure",l),e.addEventListener("scrollstart",c),e.addEventListener("scrollend",u),e.addEventListener("instantiated",d)},name:"crossline-manager",type:"extension",requiresFusionCharts:!0};t["default"]=h},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=r(199),o=r(184),s=r(192),l=n(r(336)),c=function(e){function t(){var t;return t=e.call(this)||this,(0,s.addDep)({name:"crosslineAnimation",type:"animationRule",extension:l["default"]}),t}(0,a["default"])(t,e);var r=t.prototype;return r.getName=function(){return"crossline"},r.getType=function(){return"crossline"},r.show=function(e){void 0===e&&(e={});var t=!!e.onTop,r=e.type;t!==this.config.prevRenderedOnTop&&this.hide(),!this[r]&&(r="band"),this[r](e),this.config.prevRenderedOnTop=t},r.band=function(e){void 0===e&&(e={});var t,r,n=e.managerId,a=e.x1,i=e.y1,s=e.x2,l=e.y2,c=(0,o.toRaphaelColor)({color:(0,o.pluck)(e.fillcolor,"#EEEEEE"),alpha:(0,o.pluckNumber)(e.alpha,50)}),u=this.getLinkedParent().getLinkedParent().getEffectiveDimensions(),d=[u.left,u.top,u.width,u.height].toString(),h=this.getLinkedParent().getChildContainer("crosslineBottom"),f=this.getLinkedParent().getChildContainer("crosslineTop");r=e.onTop?f:h,(t=this.getGraphicalElement("crosslineBand"+n))?e.animDuration?t.animate({path:["M",a,i,"L",s,l]},e.animDuration,"ease-in"):t.attr({path:["M",a,i,"L",s,l],"clip-rect":d}):this.addGraphicalElement("crosslineBand"+n,this.getFromEnv("paper").path({path:["M",a,i,"L",s,l],"clip-rect":d,stroke:c,fill:c,"stroke-width":e.thickness,"stroke-linecap":"butt"},r))},r.hide=function(){for(var e=this.getGraphicalElement(),t=Object.keys(e),r=t.length-1;r>-1;r--)e[t[r]].stop(o.UNDEF,!0,!0),e[t[r]].remove(),delete e[t[r]]},t}(i.ComponentInterface);t["default"]=c},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]={crossline:{crossline:{path:{updating:function(e){return[{initialAttr:{path:e.el.attr("path")},finalAttr:{path:e.attr.path}}]}}}}}},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(201)),i=n(r(198)),o=r(184),s=r(199),l=o.hasSVG?0:.5,c=function(e){return{onhover:function(t,r){!e.config.axisScrolling&&e.show(r.axes?{axesInfo:r.axes}:{event:t})},onhoverout:function(t){e.hide({event:t})}}},u=function(e,t,r){return r.getFromEnv("animationManager").setAnimation({el:"group",attr:{name:e},container:t,state:"appearing",component:r,label:"group"})},d=function(e){function t(){var t;return(t=e.call(this)||this)._handlerAPI=c((0,a["default"])(t)),t.mouseOutTimer=o.UNDEF,t}(0,i["default"])(t,e);var r=t.prototype;return r.getAttachedAxisInfo=function(e){void 0===e&&(e={});var t,r,n,a,i=this.getLinkedParent().getAxes(),s=e.originalEvent&&(0,o.getMouseCoordinate)(this.getLinkedParent().getFromEnv("chart-container"),e.originalEvent,this.getFromEnv("chart")),l=s&&s.chartX||0,c=s&&s.chartY||0;for(t=i.length-1;t>=0;t--)if(r=i[t].axis,!i[t].isY)return n=!!r.config.isVertical,a=r.getTranslation(),{value:n?r.getValue(c+a):r.getValue(l+a),axis:r,isVertical:n,isY:!1}},r.configure=function(){var e=this.config,t=this.getFromEnv("chartConfig"),r=this.getFromEnv("chart-attrib");e.drawCrossLine=(0,o.pluckNumber)(r.drawcrossline,t.drawcrossline,0),e.bandStyle={fillcolor:(0,o.pluck)(r.crosslinecolor,t.crosslinecolor,"#EEEEEE"),alpha:(0,o.pluckNumber)(r.crosslinealpha,t.crosslinealpha,50),thickness:(0,o.pluckNumber)(t.defaultcrosslinethickness),managerId:this.getId(),onTop:(0,o.pluckNumber)(r.drawcrosslineontop,t.drawcrosslineontop,0),cursor:"pointer",animDuration:(0,o.pluckNumber)(r.crosslineanimation,0)&&1e3*(0,o.pluckNumber)(r.crosslineanimationduration,.09)}},r.createGroup=function(){var e=this.getLinkedParent().getChildContainer("crosslineBottom"),t=this.getLinkedParent().getChildContainer("crosslineTop");!this.getChildContainer("crosslineTop")&&this.addChildContainer("crosslineTop",u("crosslineTop",t,this)),!this.getChildContainer("crosslineBottom")&&this.addChildContainer("crosslineBottom",u("crosslineBottom",e,this))},r.show=function(e){void 0===e&&(e={});var t=e.event;clearTimeout(this.mouseOutTimer),this.config.attachedCanvasAxisInfo=this.getAttachedAxisInfo(t),this._setAptAxesInfo(e.axesInfo,e.value),this._show(t)},r._setAptAxesInfo=function(e,t){void 0===e&&(e=[]);var r,n,a=e.length,i=this.config.attachedCanvasAxisInfo;if(e.length)for(n=0;n<a;n++)if((r=e[n]).axis===i.axis){i.value=r.value;break}t!==o.UNDEF&&(i.value=t)},r._show=function(e){var t,r,n,a,i,s,c=this.config,u=this.getFromEnv("chartConfig"),d=this.getChildren("crossline")[0],h=c.attachedCanvasAxisInfo,f=h.axis,g=f.getLimit().max-f.config.endPad,p=Math.round(h.value),m=h.axis.getPixel(p)-h.axis.getTranslation(),v=Object.assign({},c.bandStyle),b=this.getFromEnv("canvasConfig"),y=b.canvasTop,x=b.canvasLeft;p<0||p>g||this.config.lastIndex!==p&&c.drawCrossLine&&((n=v.thickness)===o.UNDEF&&(!1===u._hascolumn?n=1:(t=f.getPixel(0),r=f.getPixel(1),n=Math.abs(r-t))),i=m,s=n,a=Math.round(i+(s%2/2+l))-(s%2/2+l),this.createGroup(),v.thickness=n,v=h.isVertical?Object.assign(v,{x1:x,y1:a,x2:x+b.canvasWidth,y2:a}):Object.assign(v,{x1:a,y1:y,x2:a,y2:y+b.canvasHeight}),d.show(v),this.getFromEnv("chart").fireChartInstanceEvent("onChangeCrossLine",{currentIndex:p,lastIndex:this.config.lastIndex,source:e?"mouse interaction":"public API"}),this.config.lastIndex=p)},r.hide=function(e){var t=this;void 0===e&&(e={});var r=this;this.mouseOutTimer=setTimeout((function(){r.getFromEnv("chart").fireChartInstanceEvent("onChangeCrossLine",{lastIndex:r.config.lastIndex,source:e.event?"mouse interaction":"public API"}),delete t.config.lastIndex,t.getChildren("crossline")[0].hide()}),20)},r.getType=function(){return"crossline-manager"},r.getName=function(){return"crossline-manager-band-category-axis"},t}(s.ComponentInterface);t["default"]=d},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(201)),i=n(r(198)),o=r(199),s=r(184),l={candlestick:!0},c=function(e){return{onhover:function(t){t.originalEvent&&e.show(t)},onhoverout:function(t){t.originalEvent&&e.hide(t)}}},u=function(e){if(e.sender.getType&&"chartAPI"===e.sender.getType()&&l[e.sender.getName&&e.sender.getName()]){var t,r,n=e.sender;n.registerFactory("multiCanvasCrossline",(function(){(0,s.componentFactory)(n,d,"multiCanvasCrosslineManager"),t=n.getChildren("multiCanvasCrosslineManager")[0],r=t._handlers,n.iterateComponents((function(e){"canvas"===e.getName()&&(e.addEventListener("fc-mouseover",r.onhover),e.addEventListener("fc-mousemove",r.onhover),e.addEventListener("fc-mouseout",r.onhoverout))}))}),["canvas"])}},d=function(e){function t(){var t;return(t=e.call(this)||this)._handlers=c((0,a["default"])(t)),t}(0,i["default"])(t,e);var r=t.prototype;return r.getAxesInfo=function(e,t){void 0===e&&(e={});var r,n,a,i,o=t.getAxes(),l=[],c=(0,s.getMouseCoordinate)(this.getFromEnv("chart-container"),e.originalEvent,this.getFromEnv("chart")),u=c.chartX||0,d=c.chartY||0;for(r=o.length-1;r>=0;r--)n=o[r].axis,a=o[r].isY,i=!!n.config.isVertical,l.push({value:i?n.getValue(d):n.getValue(u),axis:n,isVertical:i,isY:a});return l},r.getName=function(){return"multiCanvasCrosslineManager"},r.getType=function(){return"multiCanvasCrosslineManager"},r.show=function(e){var t=this,r=e.sender;this.getFromEnv("chart").iterateComponents((function(n){"canvas"===n.getName()&&n!==r&&n.fireEvent("fc-mousemove",{axes:t.getAxesInfo(e,r)})}))},r.hide=function(e){var t=e.sender,r=(0,s.getMouseCoordinate)(t.getFromEnv("chart-container"),e&&e.originalEvent,t.getFromEnv("chart"));t.isWithinCanvas(r.chartX,r.chartY)||this.getFromEnv("chart").iterateComponents((function(e){"canvas"===e.getName()&&e!==t&&e.fireEvent("fc-mouseout")}))},t}(o.ComponentInterface),h={extension:function(e){e.addEventListener("instantiated",u)},name:"multi-canvas-crossline-manager",type:"extension",requiresFusionCharts:!0};t["default"]=h},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(340)),i=r(347);t.getConfig=i.getConfig,t.setConfig=i.setConfig;var o=a["default"];t["default"]=o},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(341))["default"];t["default"]=a},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(342)),i=r(364),o=r(343),s=function(){function e(e,t,r){this.dataTables={},this._defaultDataTable=null,this._id=+new Date+"",e&&t&&e.constructor===Array&&t.constructor===Array&&this.createDataTable(e,t,r)}var t=e.prototype;return t.createDataTable=function(e,t,r,n){if(!e||!t)throw new Error("Both data and schema must be provided to build DataTable");if(e.constructor!==Array)throw new Error("Data must be provided in 2D array format or array of json objects");if(t.constructor!==Array||0===t.length)throw new Error("Input schema is not in a correct format - schema must be an array of column configurations");var i,s,l={},c=n;if(s=Object.keys(this.dataTables),c){if(s.includes(c))throw new Error("A table with the id "+c+" already exists in the DataStore. Please use a different id.")}else c=(0,o.createTableID)(s);return Object.assign(l,{enableIndex:!0,enableUTC:!1},r),i=new a["default"](this,(0,o.parseAndIndexData)(e,t,l),t,l,null,null,c),0===s.length&&(this._defaultDataTable=i),this.dataTables[c]=i,i},t.appendRows=function(e,t){var r,n,a,i=this.getDataTable(t),s=i.getSchema();a=(0,o.buildDateColumnsFormatter)(s),n=(0,o.parseData)(e,s,a),(r=i._data).push.apply(r,n),(0,o.indexData)(i._data,s,i._config,a),i.flushResults(),this.trigger("itemsAdded",{rows:e,parsedRows:n,tableID:t})},t.deleteRows=function(e,t){var r=this.getDataTable(t),n=r.query(e),a=n.getData().data,i=r.indexOf("_row_id"),o=n.indexOf("_row_id"),s=a.map((function(e){return e[o]}));r._data=r._data.filter((function(e){return!s.includes(e[i])})),r.flushResults(),this.trigger("itemsRemoved",{rows:a,tableID:t}),n.dispose()},t.getDataTable=function(e){if(e){if(!this.dataTables[e])throw new Error("DataTable with id "+e+" is not found in the DataStore.");return this.dataTables[e]}return this._defaultDataTable},t.on=function(e,t){(0,i.addHandler)(e,t,this)},t.off=function(e,t){(0,i.removeHandler)(e,t,this)},t.trigger=function(e,t){(0,i.triggerEvent)(e,this,t)},t.dispose=function(){var e=this;for(var t in e.dataTables)e.dataTables.hasOwnProperty(t)&&(e.dataTables[t].dispose(),delete e.dataTables[t]);delete e._id,delete e.dataTables,delete e._defaultDataTable,this.trigger("disposed"),e=null},t._propagate=function(e){for(var t in this.trigger("payloadReceived",e),this.dataTables)this.dataTables.hasOwnProperty(t)&&this.dataTables[t]._payloadReceiver(e)},e}();t["default"]=s},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n=r(343),a=r(364),i=function(){function e(e,t,r,n,a,i,o){this._dataStore=e,this._parentTable=a,this._children=[],this._childrenTableIDs=[],this._opsFunnel=i,this._data=t||[],this._schema=r,this._config=n,this._id=o;var s,l=1;if(this._id||(s=this._parentTable&&this._parentTable._id?this._parentTable._id:"table_1",this._id=s+"_"+l),this._parentTable){for(;this._parentTable._childrenTableIDs.includes(this._id);)this._id=s?s+"_"+ ++l:this._id+"_1";this._parentTable._children.push(this),this._parentTable._childrenTableIDs.push(this._id)}this._result=null}var t=e.prototype;return t.count=function(){return this._executeFunnel().data.length},t.getSchema=function(){return this._executeFunnel().schema},t.getID=function(){return this._id},t.getDataStore=function(){return this._dataStore},t.getChildren=function(e){if(e){for(var t=0;t<this._children.length;t++)if(this._children[t]._id===e)return this._children[t];return null}return this._children},t.getData=function(e,t){var r,n=e,a=t;return n=n||0,a=a&&("string"==typeof a||a instanceof String)||null===a?void 0:a,{data:(r=this._executeFunnel()).data&&r.data.slice(n,a&&a>0?n+a:a),schema:r.schema}},t.dispose=function(){var e=this;if(e._parentTable&&e._parentTable._children){var t;for(t=0;t<e._parentTable._children.length&&("undefined"==typeof e._id||e._id!==e._parentTable._children[t]._id);t++);t!==e._parentTable._children.length&&e._parentTable._children.splice(t,1)}delete e._dataStore,delete e._parentTable,delete e._opsFunnel,delete e._data,delete e._schema,delete e._config,delete e._result,delete e._id,e.disposeChildren(),delete e._children,delete e._childrenTableIDs,e._trigger("disposed"),delete e._evtHandlers,e.disposed=!0,e=null},t.disposeChildren=function(){for(var e=(this._children&&this._children.length||0)-1;e>=0;e--)this._children[e].dispose();this._children=[],this._childrenTableIDs=[]},t.min=function(e){var t=this.getData();return(0,n.columnMinValue)(e,t.data,t.schema)},t.max=function(e){var t=this.getData();return(0,n.columnMaxValue)(e,t.data,t.schema)},t.unique=function(e){var t=this.getData();return(0,n.columnUnique)(e,t.data,t.schema)},t.extents=function(e){var t=this.getData();return(0,n.columnExtents)(e,t.data,t.schema)},t.addColumns=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var n=t.length;if(n>0){this._calcColumns=this._calcColumns||[];for(var a=0;a<n;a++){if(!t[a].name)throw new Error("name is required in column "+(a+1));if(t[a].calcFn&&!(t[a].calcFn instanceof Function))throw new Error("calcFn must be a function in column "+(a+1));t[a].calcFn||(t[a].calcFn=function(){}),this._calcColumns.push(Object.assign({},t[a]))}}this._trigger("updated",t)},t.query=function(t){var r=t;return r&&r.constructor!==Array&&(r=[r]),new e(this._dataStore,this._data,this._schema,this._config,this,r)},t.indexOf=function(e){var t=this._executeFunnel();return(0,n.columnIndexOf)(e,t.schema)},t.on=function(e,t){(0,a.addHandler)(e,t,this)},t.off=function(e,t){(0,a.removeHandler)(e,t,this)},t._trigger=function(e,t){(0,a.triggerEvent)(e,this,t)},t._executeFunnel=function(){if(!this._result)if(this._opsFunnel){var e,t,r,a,i;t=(e=this._parentTable._executeFunnel()).data.slice(0),r=e.schema.slice(0),a=Object.assign({},e.config),i=this._opsFunnel.length;for(var o=0;o<i;o++)if(this._opsFunnel[o]&&this._opsFunnel[o].fn){var s=this._opsFunnel[o].fn(t,r,a);t=s.generatorFn?s.generatorFn():s.data,r=s.schema,void 0===(a=Object.assign(a,s.config)).indexBy&&(a.enableIndex=!1)}this._result={data:t,schema:r,config:a}}else this._result={data:this._data,schema:this._schema,config:this._config};if(this._calcColumns&&this._calcColumns.length>0){var l=(0,n.addColumnsSchema)(this._result.schema,this._calcColumns);this._result.schema=l.schema,this._result.data=(0,n.addColumnsData)(this._result.data,this._result.schema,l.calcColumns),delete this._calcColumns}return this._result},t.flushResults=function(){var e=this._result&&this._result.schema.length||0,t=this._children&&this._children.length||0;e&&(this._calcColumns=[]);for(var r=0;r<e;r++)this._result.schema[r].calcFn&&this._calcColumns.push(this._result.schema[r]);this._result&&(this._result=null);for(var n=0;n<t;n++)this._children[n].flushResults()},t.propagate=function(e){this.getDataStore()._propagate({trigger:this,payload:e})},t._payloadReceiver=function(e){var t=this._children&&this._children.length||0;e&&e.trigger&&e.trigger!==this&&this._trigger("payloadReceived",e);for(var r=0;r<t;r++)this._children[r]._payloadReceiver(e)},t.getMinDiff=function(e){var t=this.getData();return(0,n.columnMinDiff)(e,t.data,t.schema,this._config.indexBy)},t.isUTCEnabled=function(e){return(0,n.isUTCEnabled)(e,this.getSchema())},e}();t["default"]=i},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t.columnIndexOf=d,t.columnMinValue=function(e,t,r){var n,a;if(null===(n=d(e,r))||-1===n)return null;if(t&&t.length>0){var o;a=Number.POSITIVE_INFINITY;for(var s=0;s<t.length;s++)o="interval"===r[n].type?t[s][n]?t[s][n].start:null:t[s][n],(0,i.isNumber)(o)&&o<a&&(a=o)}return a},t.columnMaxValue=function(e,t,r){var n,a;if(null===(n=d(e,r))||-1===n)return null;if(t&&t.length>0){var o;a=Number.NEGATIVE_INFINITY;for(var s=0;s<t.length;s++)o="interval"===r[n].type?t[s][n]?t[s][n].end:null:t[s][n],(0,i.isNumber)(o)&&o>a&&(a=o)}return a},t.columnMinDiff=function(e,t,r,n){var a,s,l=t,c=t.length;if(null===(a=d(e,r))||-1===a)return null;if(r[a]&&["date","number"].indexOf(r[a].type)<0)throw new Error("Operation valid only on date or number columns");n&&e===n||(l=t.slice(0)).sort((function(e,t){return(0,o.numberComparator)(e[a],t[a])}));if(l&&c>0){var u,h,f;s=Number.POSITIVE_INFINITY;for(var g=0;g<l.length-1&&(h=l[g][a],f=l[g+1][a],(0,i.isNumber)(f)&&(0,i.isNumber)(h))&&(u=f-h,0!==(s=(0,i.isNumber)(u)&&u>=0&&u<s?u:s));g++);}return s===Number.POSITIVE_INFINITY?null:s},t.columnExtents=function(e,t,r){var n,a=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,s=d(e,r);if(null===s||-1===s)return null;if(t&&t.length>0)for(var l=0;l<t.length;l++)n="interval"===r[s].type?t[l][s]?t[l][s].start:null:t[l][s],(0,i.isNumber)(n)&&n<a&&(a=n),n="interval"===r[s].type?t[l][s]?t[l][s].end:null:t[l][s],(0,i.isNumber)(n)&&n>o&&(o=n);return{min:a,max:o}},t.columnUnique=function(e,t,r){var n,a=d(e,r),i=[];if(null===a||-1===a)return[];for(var o=0;o<t.length;o++)i.push(t[o][a]);if(t&&t.length>0)return 1===(n=Array.from(new Set(i))).length&&"undefined"==typeof n[0]?[]:n;return[]},t.addColumnsSchema=function(e,t){for(var r=t.length,n=e.slice(0),a=0;a<r;a++){var i=n.length;t[a].originalName=t[a].name;for(var o=0;o<i;o++)t[a].name===n[o].name&&(t[a].i=t[a].i&&++t[a].i||1,t[a].name=t[a].originalName+" "+t[a].i),t[a].type&&-1!==["string","number","date"].indexOf(t[a].type)||(t[a].type="string");delete t[a].originalName,delete t[a].i,n.push({name:t[a].name,type:t[a].type||"string"}),t[a].calcFn&&(n[n.length-1].calcFn=t[a].calcFn),t[a].format&&(n[n.length-1].format=t[a].format),t[a].enableUTC&&(n[n.length-1].enableUTC=t[a].enableUTC),t[a].columnIndex=n.length-1}return{schema:n,calcColumns:t}},t.addColumnsData=function(e,t,r){for(var n,a=e.length,i=r.length,o=t.length,s={},l=f(r),c=0;c<o;c++)s[t[c].name]=c;for(var u=0;u<a;u++)for(var d=0;d<i;d++)r[d].calcFn&&(n=r[d].calcFn(e[u],s,u),n=h(r[d],n,l),e[u][r[d].columnIndex]=n);return e},t.parseAndIndexData=function(e,t,r){var n=f(t),a=g(e,t,n);return p(a,t,r,n),a},t.createTableID=function(e){var t=e.length+1;for(;e.includes("table-"+t);)t++;return"table-"+t},t.buildDateColumnsFormatter=f,t.parseData=g,t.indexData=p,t.isUTCEnabled=function(e,t){var r;if(null===(r=d(e,t))||-1===r||"date"!==t[r].type&&"interval"!==t[r].type)return null;return t[r].enableUTC!==a?t[r].enableUTC:(0,l.getConfig)("enableUTC")};var a,i=r(344),o=r(345),s=n(r(346)),l=r(347),c=n(r(348)),u=n(r(363));function d(e,t){if(!t||!e)return null;for(var r=0;r<t.length;r++)if(t[r]&&t[r].hasOwnProperty("name")&&t[r].name===e)return r;return-1}function h(e,t,r){return r[e.name]!==a&&t?r[e.name]?+r[e.name].parse(t):+new Date(t):"number"===e.type?(0,i.isNumber)(t)?t:t?parseFloat(t):null:t}function f(e){for(var t={},r=0;r<e.length;r++){if(!e[r].name)throw new Error("Input schema is not in a correct format - each column must have a name");e[r].type&&"date"===e[r].type&&(t[e[r].name]=e[r].format?(e[r].enableUTC!==a?e[r].enableUTC:(0,l.getConfig)("enableUTC"))?c["default"].utcParser(e[r].format):c["default"].parser(e[r].format):null)}return t}function g(e,t,r){var n=[];if(e.length>0){var a,i=r,o=t.findIndex((function(e){return"_row_id"===e.name}));i||(i=f(t)),-1===o&&(o=t.push({name:"_row_id",type:"string"})-1);for(var s=0;s<e.length;s++)e[s][o]=(0,u["default"])();try{for(var l,c,d,g=t.length,p=0;p<e.length;p++){if(l=[],(c=e[p]).constructor===Array)for(d=Math.min(g,c.length),a=0;a<d;a++)l[a]=h(t[a],c[a],i);else{if("object"!=typeof c)continue;for(a=0;a<g;a++)c[t[a].name]&&(l[a]=h(t[a],c[t[a].name],i))}n.push(l)}}catch(m){throw new Error("Error while parsing the data - "+m)}}return n}function p(e,t,r,n){if(r.enableIndex){var a,i,l;if(!r.indexBy){(l=n)||(l=f(t));var c=Object.keys(l);if(c.length>0)r.indexBy=c[0];else{for(a=0;a<t.length;a++)if(t[a].type&&"number"===t[a].type){r.indexBy=t[a].name;break}a===t.length&&(r.indexBy=t[0].name)}}for(a=0;a<t.length&&(!t[a]||t[a].name!==r.indexBy);a++);if(a===t.length)throw new Error("Index column is not found in schema");switch(t[a].type){case"number":case"date":i=o.numberComparator;break;default:i=o.stringComparator}(0,s["default"])(e,(function(e,t){return i(e[a],t[a])}))}}},function(e,t,r){"use strict";t.__esModule=!0,t.isNumber=void 0;t.isNumber=function(e){return"number"==typeof e&&!isNaN(e-e)}},function(e,t,r){"use strict";t.__esModule=!0,t.stringComparator=t.numberComparator=void 0;var n=r(344);t.stringComparator=function(e,t){return null==e?t===e?0:1:(0,n.isNumber)(t)?(0,n.isNumber)(e)?e-t:-1:e===t?0:e<t?-1:1},t.numberComparator=function(e,t){return null==e?t===e?0:1:(0,n.isNumber)(t)?e-t:isNaN(e)&&isNaN(t)?0:-1}},function(e,t,r){"use strict";function n(e,t,r,n,a){var i=r||0,o=n||e.length,s=a||i+1,l=t;for(l||(l=function(e,t){return e-t}),i===s&&++s;s<o;++s){var c=i,u=s,d=e[u];do{var h=c+(u-c>>1);l(d,e[h])<0?u=h:c=h+1}while(c<u);for(var f=s;f>c;--f)e[f]=e[f-1];e[c]=d}}t.__esModule=!0,t.binaryInsertionSort=n,t.mergeSort=function f(e,t){var r,n,a,i=t;if(e.constructor!==Array)throw new TypeError("Merge sort can only be applied on Array.");if(1===e.length)return e;i||(i=function(e,t){return e-t});r=Math.floor(e.length/2);n=e.slice(0,r);a=e.slice(r);return function(e,t,r){var n=[],a=0,i=0;for(;a<e.length&&i<t.length;)r(e[a],t[i])<=0?(n.push(e[a]),a++):(n.push(t[i]),i++);return n.concat(e.slice(a)).concat(t.slice(i))}(f(n,i),f(a,i),i)},t["default"]=void 0;var a=64,i=7,o=256,s=40;function l(e,t,r,n){var a=r+1;if(a===n)return 1;if(t(e[a++],e[r])<0){for(;a<n&&t(e[a],e[a-1])<0;)a++;!function(e,t,r){var n=r,a=t;for(--n;a<n;){var i=e[a];e[a++]=e[n],e[n--]=i}}(e,r,a)}else for(;a<n&&t(e[a],e[a-1])>=0;)a++;return a-r}function c(e,t,r,n,a,i){var o,s,l=0,c=0,u=1;if(i(e,t[r+a])>0){for(c=n-a;u<c&&i(e,t[r+a+u])>0;)l=u,(u=1+(u<<1))<=0&&(u=c);u>c&&(u=c),l+=a,u+=a}else{for(c=a+1;u<c&&i(e,t[r+a-u])<=0;)l=u,(u=1+(u<<1))<=0&&(u=c);u>c&&(u=c),o=l,l=a-u,u=a-o}for(l++;l<u;)i(e,t[r+(s=l+(u-l>>>1))])>0?l=s+1:u=s;return u}function u(e,t,r,n,a,i){var o,s,l=0,c=0,u=1;if(i(e,t[r+a])<0){for(c=a+1;u<c&&i(e,t[r+a-u])<0;)l=u,(u=1+(u<<1))<=0&&(u=c);u>c&&(u=c),o=l,l=a-u,u=a-o}else{for(c=n-a;u<c&&i(e,t[r+a+u])>=0;)l=u,(u=1+(u<<1))<=0&&(u=c);u>c&&(u=c),l+=a,u+=a}for(l++;l<u;)i(e,t[r+(s=l+(u-l>>>1))])<0?u=s:l=s+1;return u}var d=function(){function e(e,t){this.arr=e,this.comparer=t,this.length=e.length,this.tmpStorageLen=this.length<2*o?this.length>>>1:o,this.tmp=new Array(this.tmpStorageLen),this.runBaseArr=new Array(s),this.runLenArr=new Array(s),this.minGallop=i,this.stackSize=0}var t=e.prototype;return t.pushRun=function(e,t){this.runBaseArr[this.stackSize]=e,this.runLenArr[this.stackSize]=t,this.stackSize++},t.mergeCollapse=function(){for(var e;this.stackSize>1;){if((e=this.stackSize-2)>=1&&this.runLenArr[e-1]<=this.runLenArr[e]+this.runLenArr[e+1]||e>=2&&this.runLenArr[e-2]<=this.runLenArr[e]+this.runLenArr[e-1])this.runLenArr[e-1]<this.runLenArr[e+1]&&e--;else if(this.runLenArr[e]>this.runLenArr[e+1])break;this.mergeAt(e)}},t.mergeForceCollapse=function(){for(var e;this.stackSize>1;)(e=this.stackSize-2)>0&&this.runLenArr[e-1]<this.runLenArr[e+1]&&e--,this.mergeAt(e)},t.mergeAt=function(e){var t,r=this.comparer,n=this.arr,a=this.runBaseArr[e],i=this.runLenArr[e],o=this.runBaseArr[e+1],s=this.runLenArr[e+1];this.runLenArr[e]=i+s,e===this.stackSize-3&&(this.runBaseArr[e+1]=this.runBaseArr[e+2],this.runLenArr[e+1]=this.runLenArr[e+2]),this.stackSize--,a+=t=u(n[o],n,a,i,0,r),0!==(i-=t)&&0!==(s=c(n[a+i-1],n,o,s,s-1,r))&&(i<=s?this.mergeLo(a,i,o,s):this.mergeHi(a,i,o,s))},t.mergeLo=function(e,t,r,n){var a,o,s,l,d=0,h=0,f=r,g=e,p=t,m=n;for(d=0;d<p;d++)this.tmp[d]=this.arr[e+d];if(this.arr[g++]=this.arr[f++],0!=--m)if(1!==p){for(a=this.minGallop;;){o=0,s=0,l=!1;do{if(this.comparer(this.arr[f],this.tmp[h])<0){if(this.arr[g++]=this.arr[f++],s++,o=0,0==--m){l=!0;break}}else if(this.arr[g++]=this.tmp[h++],o++,s=0,1==--p){l=!0;break}}while((o|s)<a);if(l)break;do{if(0!==(o=u(this.arr[f],this.tmp,h,p,0,this.comparer))){for(d=0;d<o;d++)this.arr[g+d]=this.tmp[h+d];if(g+=o,h+=o,(p-=o)<=1){l=!0;break}}if(this.arr[g++]=this.arr[f++],0==--m){l=!0;break}if(0!==(s=c(this.tmp[h],this.arr,f,m,0,this.comparer))){for(d=0;d<s;d++)this.arr[g+d]=this.arr[f+d];if(g+=s,f+=s,0===(m-=s)){l=!0;break}}if(this.arr[g++]=this.tmp[h++],1==--p){l=!0;break}a--}while(o>=i||s>=i);if(l)break;a<0&&(a=0),a+=2}if(this.minGallop=a,a<1&&(this.minGallop=1),1===p){for(d=0;d<m;d++)this.arr[g+d]=this.arr[f+d];this.arr[g+m]=this.tmp[h]}else for(d=0;d<p;d++)this.arr[g+d]=this.tmp[h+d]}else{for(d=0;d<m;d++)this.arr[g+d]=this.arr[f+d];this.arr[g+m]=this.tmp[h]}else for(d=0;d<p;d++)this.arr[g+d]=this.tmp[h+d]},t.mergeHi=function(e,t,r,n){var a,o,s,l,d=0,h=t,f=n,g=e+h-1,p=f-1,m=r+f-1,v=0,b=0;for(d=0;d<f;d++)this.tmp[d]=this.arr[r+d];if(this.arr[m--]=this.arr[g--],0!=--h)if(1!==f){for(a=this.minGallop;;){o=0,s=0,l=!1;do{if(this.comparer(this.tmp[p],this.arr[g])<0){if(this.arr[m--]=this.arr[g--],o++,s=0,0==--h){l=!0;break}}else if(this.arr[m--]=this.tmp[p--],s++,o=0,1==--f){l=!0;break}}while((o|s)<a);if(l)break;do{if(0!==(o=h-u(this.tmp[p],this.arr,e,h,h-1,this.comparer))){for(h-=o,b=(m-=o)+1,v=(g-=o)+1,d=o-1;d>=0;d--)this.arr[b+d]=this.arr[v+d];if(0===h){l=!0;break}}if(this.arr[m--]=this.tmp[p--],1==--f){l=!0;break}if(0!==(s=f-c(this.arr[g],this.tmp,0,f,f-1,this.comparer))){for(f-=s,b=(m-=s)+1,v=(p-=s)+1,d=0;d<s;d++)this.arr[b+d]=this.tmp[v+d];if(f<=1){l=!0;break}}if(this.arr[m--]=this.arr[g--],0==--h){l=!0;break}a--}while(o>=i||s>=i);if(l)break;a<0&&(a=0),a+=2}if(this.minGallop=a,a<1&&(this.minGallop=1),1===f){for(b=(m-=h)+1,v=(g-=h)+1,d=h-1;d>=0;d--)this.arr[b+d]=this.arr[v+d];this.arr[m]=this.tmp[p]}else for(v=m-(f-1),d=0;d<f;d++)this.arr[v+d]=this.tmp[d]}else{for(b=(m-=h)+1,v=(g-=h)+1,d=h-1;d>=0;d--)this.arr[b+d]=this.arr[v+d];this.arr[m]=this.tmp[p]}else for(v=m-(f-1),d=0;d<f;d++)this.arr[v+d]=this.tmp[d]},e}();var h=function(e,t,r,i){var o,s,c,u,h,f=r,g=i,p=t;if(e.constructor!==Array)throw new TypeError("Sorting can only be applied on arrays.");if(f=f||0,p||(p=function(e,t){return e-t}),!((o=(g=g||e.length)-f)<2))if(o<a)n(e,p,f,g,f+(s=l(e,p,f,g)));else{c=function(e){for(var t=0,r=e;r>=a;)t|=1&r,r>>=1;return r+t}(o),u=new d(e,p);do{(s=l(e,p,f,f+o))<c&&(n(e,p,f,f+(h=o<=c?o:c),f+s),s=h),u.pushRun(f,s),u.mergeCollapse(),o-=s,f+=s}while(0!==o);u.mergeForceCollapse()}};t["default"]=h},function(e,t,r){"use strict";t.__esModule=!0,t.getConfig=function(e){if(!e)throw new Error("configName is missing");return n[e]},t.setConfig=function(e,t){if(!e)throw new Error("configName is missing");n[e]=t};var n={enableUTC:!1}},function(e,t,r){"use strict";var n=r(182),a=r(178);t.__esModule=!0,t["default"]=t.TimeConverter=void 0;var i=a(r(349)),o=n(r(351)),s=r(357),l=r(356),c=a(r(352)),u=a(r(358)),d=a(r(355)),h=a(r(360)),f=a(r(362)),g=/^\s*\d+/,p=/^\s*Q\d+/,m=/^%/,v=/[\\^$*+?|[\]().{}]/g,b=function(e,t,r){var n=e<0?"-":"",a=(n?-e:e)+"",i=a.length;return n+(i<r?new Array(r-i+1).join(t)+a:a)},y=function(e){return e.replace(v,"\\$&")},x=function(e){return new RegExp("^(?:"+e.map(y).join("|")+")","i")},C=function(e){for(var t={},r=-1,n=e.length;++r<n;)t[e[r].toLowerCase()]=r;return t},w=function(e,t,r){var n=g.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1},_=function(e,t,r){var n=g.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1},k=function(e,t,r){var n=g.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1},S=function(e,t,r){var n=g.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1},E=function(e,t,r){var n=g.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1},A=function(e,t,r){var n=p.exec(t.slice(r,r+2));return n?(e.m=3*(n[0][1]-1),r+n[0].length):-1},T=function(e,t,r){var n=g.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1},M=function(e,t,r){var n=g.exec(t.slice(r,r+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1},F=function(e,t,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return n?(e.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1},I=function(e,t,r){var n=g.exec(t.slice(r,r+2));return n?(e.m=n[0]-1,r+n[0].length):-1},L=function(e,t,r){var n=g.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1},N=function(e,t,r){var n=g.exec(t.slice(r,r+3));return n?(e.m=0,e.d=+n[0],r+n[0].length):-1},D=function(e,t,r){var n=g.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1},O=function(e,t,r){var n=g.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1},R=function(e,t,r){var n=g.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1},P=function(e,t,r){var n=g.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1},V=function(e,t,r){var n=g.exec(t.slice(r,r+6));return n?(e.L=Math.floor(n[0]/1e3),r+n[0].length):-1},B=function(e,t,r){var n=m.exec(t.slice(r,r+1));return n?r+n[0].length:-1},j=function(e,t,r){var n=g.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1},G=function(e,t,r){var n=g.exec(t.slice(r));return n?(e.Q=1e3*+n[0],r+n[0].length):-1},H=function(e,t){return b(e.getDate(),t,2)},z=function(e,t){return b(e.getHours(),t,2)},U=function(e,t){return b(e.getHours()%12||12,t,2)},X=function(e,t){return b(1+c["default"].count(u["default"].floor(e),e),t,3)},W=function(e,t){return b(e.getMilliseconds(),t,3)},$=function(e,t){return W(e,t)+"000"},Y=function(e,t){return b(e.getMonth()+1,t,2)},q=function(e,t){return b(e.getMinutes(),t,2)},K=function(e,t){return b(e.getSeconds(),t,2)},J=function(e,t){return"Q"+Math.ceil((e.getMonth()+1)/3)},Z=function(e){var t=e.getDay();return 0===t?7:t},Q=function(e,t){return b(s.sunday.count(u["default"].floor(e),e),t,2)},ee=function(e,t){var r=e,n=r.getDay();return r=n>=4||0===n?s.thursday.floor(r):s.thursday.ceil(r),b(s.thursday.count(u["default"].floor(r),r)+(4===u["default"].floor(r).getDay()),t,2)},te=function(e){return e.getDay()},re=function(e,t){return b(s.monday.count(u["default"].floor(e),e),t,2)},ne=function(e,t){return b(e.getFullYear()%100,t,2)},ae=function(e,t){return b(e.getFullYear()%1e4,t,4)},ie=function(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+b(t/60|0,"0",2)+b(t%60,"0",2)},oe=function(e,t){return b(e.getUTCDate(),t,2)},se=function(e,t){return b(e.getUTCHours(),t,2)},le=function(e,t){return b(e.getUTCHours()%12||12,t,2)},ce=function(e,t){return b(1+d["default"].count(h["default"].floor(e),e),t,3)},ue=function(e,t){return b(e.getUTCMilliseconds(),t,3)},de=function(e,t){return ue(e,t)+"000"},he=function(e,t){return b(e.getUTCMonth()+1,t,2)},fe=function(e,t){return b(e.getUTCMinutes(),t,2)},ge=function(e,t){return b(e.getUTCSeconds(),t,2)},pe=function(e,t){return"Q"+Math.ceil((e.getUTCMonth()+1)/3)},me=function(e){var t=e.getUTCDay();return 0===t?7:t},ve=function(e,t){return b(l.utcSunday.count(h["default"].floor(e),e),t,2)},be=function(e,t){var r=e,n=r.getUTCDay();return r=n>=4||0===n?l.utcThursday.floor(r):l.utcThursday.ceil(r),b(l.utcThursday.count(h["default"].floor(r),r)+(4===h["default"].floor(r).getUTCDay()),t,2)},ye=function(e){return e.getUTCDay()},xe=function(e,t){return b(l.utcMonday.count(h["default"].floor(e),e),t,2)},Ce=function(e,t){return b(e.getUTCFullYear()%100,t,2)},we=function(e,t){return b(e.getUTCFullYear()%1e4,t,4)},_e=function(){return"+0000"},ke=function(){return"%"},Se=function(e){return+e},Ee=function(e){return Math.floor(+e/1e3)},Ae=function(){function e(e){var t=this,r=e.dateTime,n=e.date,a=e.time,s=e.periods,l=e.days,c=e.shortDays,u=e.months,d=e.shortMonths,h=x(s),f=C(s),g=x(l),p=C(l),m=x(c),v=C(c),b=x(u),y=C(u),Ae=x(d),Te=C(d);this._formats={a:function(e){return c[e.getDay()]},A:function(e){return l[e.getDay()]},b:function(e){return d[e.getMonth()]},B:function(e){return u[e.getMonth()]},d:H,e:H,f:$,H:z,I:U,j:X,L:W,m:Y,M:q,p:function(e){return s[+(e.getHours()>=12)]},q:J,Q:Se,s:Ee,S:K,u:Z,U:Q,V:ee,w:te,W:re,y:ne,Y:ae,Z:ie,"%":ke},this._utcFormats={a:function(e){return c[e.getUTCDay()]},A:function(e){return l[e.getUTCDay()]},b:function(e){return d[e.getUTCMonth()]},B:function(e){return u[e.getUTCMonth()]},d:oe,e:oe,f:de,H:se,I:le,j:ce,L:ue,m:he,M:fe,p:function(e){return s[+(e.getUTCHours()>=12)]},q:pe,Q:Se,s:Ee,S:ge,u:me,U:ve,V:be,w:ye,W:xe,y:Ce,Y:we,Z:_e,"%":ke},this._parses={a:function(e,t,r){var n=m.exec(t.slice(r));return n?(e.w=v[n[0].toLowerCase()],r+n[0].length):-1},A:function(e,t,r){var n=g.exec(t.slice(r));return n?(e.w=p[n[0].toLowerCase()],r+n[0].length):-1},b:function(e,t,r){var n=Ae.exec(t.slice(r));return n?(e.m=Te[n[0].toLowerCase()],r+n[0].length):-1},B:function(e,t,r){var n=b.exec(t.slice(r));return n?(e.m=y[n[0].toLowerCase()],r+n[0].length):-1},c:null,d:L,e:L,f:V,H:D,I:D,j:N,L:P,m:I,M:O,p:function(e,t,r){var n=h.exec(t.slice(r));return n?(e.p=f[n[0].toLowerCase()],r+n[0].length):-1},Q:j,q:A,s:G,S:R,u:_,U:k,V:S,w:w,W:E,x:null,X:null,y:M,Y:T,Z:F,"%":B},this._formats.x=function(e){return new i["default"](n,t._formats).format(e)},this._formats.X=function(e){return new i["default"](a,t._formats).format(e)},this._formats.c=function(e){return new i["default"](r,t._formats).format(e)},this._utcFormats.x=function(e){return new i["default"](n,t._utcFormats).format(e)},this._utcFormats.X=function(e){return new i["default"](a,t._utcFormats).format(e)},this._utcFormats.c=function(e){return new i["default"](r,t._utcFormats).format(e)},this._parses.c=function(e,n,a){return new o["default"](r,t._parses).parseSpecifier(e,n,a)},this._parses.x=function(e,r,a){return new o["default"](n,t._parses).parseSpecifier(e,r,a)},this._parses.X=function(e,r,n){return new o["default"](a,t._parses).parseSpecifier(e,r,n)}}var t=e.prototype;return t.formatter=function(e){return void 0===e&&(e=""),new i["default"](e.toString(),this._formats)},t.utcFormatter=function(e){return void 0===e&&(e=""),new i["default"](e.toString(),this._utcFormats)},t.parser=function(e){var t=e;return new o["default"](t+="",this._parses,(function(e){if(e.y>=0&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}))},t.utcParser=function(e){var t=e;return new o["default"](t+="",this._parses,o.utcDate)},e}();t.TimeConverter=Ae;var Te=new Ae(f["default"]);t["default"]=Te},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(350)),i=function(){function e(e,t){this._specifier=e,this._formats=t}var t=e.prototype;return t.format=function(e){var t,r,n,i=[],o=e,s=-1,l=0,c=this._specifier,u=c.length;for(o instanceof Date||(o=new Date(+o));++s<u;)37===c.charCodeAt(s)&&(i.push(c.slice(l,s)),t=c.charAt(++s),r=a["default"][t],null==r?r="e"===t?" ":"0":t=c.charAt(++s),n=this._formats[t],n&&(t=n(o,r)),i.push(t),l=s+1);return i.push(c.slice(l,s)),i.join("")},t.toString=function(){return this._specifier},e}();t["default"]=i},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]={"-":"",_:" ",0:"0"}},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=t.utcDate=void 0;var a=n(r(350)),i=n(r(352)),o=n(r(355)),s=r(356),l=r(357),c=function(e){return{y:e,m:0,d:1,H:0,M:0,S:0,L:0}},u=function(e){if(e.y>=0&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))};t.utcDate=u;var d=function(){function e(e,t,r){this._specifier=e,this._parses=t,this._newDate=r}var t=e.prototype;return t.parseSpecifier=function(e,t,r){for(var n,i,o=0,s=this._specifier.length,l=t.length,c=r;o<s;){if(c>=l)return-1;if(37===(n=this._specifier.charCodeAt(o++))){if(n=this._specifier.charAt(o++),!(i=this._parses[n in a["default"]?this._specifier.charAt(o++):n])||(c=i(e,t,c))<0)return-1}else if(n!==t.charCodeAt(c++))return-1}return c},t.parse=function(e){var t,r,n=c(1900),a=e;if(a+="",this.parseSpecifier(n,a,0)!==a.length)return null;if("Q"in n)return new Date(n.Q);if("p"in n&&(n.H=n.H%12+12*n.p),"V"in n){if(n.V<1||n.V>53)return null;"w"in n||(n.w=1),"Z"in n?(r=(t=u(c(n.y))).getUTCDay(),t=r>4||0===r?s.utcMonday.ceil(t):s.utcMonday.floor(t),t=o["default"].offset(t,7*(n.V-1)),n.y=t.getUTCFullYear(),n.m=t.getUTCMonth(),n.d=t.getUTCDate()+(n.w+6)%7):(r=(t=this._newDate(c(n.y))).getDay(),t=r>4||0===r?l.monday.ceil(t):l.monday.floor(t),t=i["default"].offset(t,7*(n.V-1)),n.y=t.getFullYear(),n.m=t.getMonth(),n.d=t.getDate()+(n.w+6)%7)}else("W"in n||"U"in n)&&("w"in n||(n.w="u"in n?n.u%7:"W"in n?1:0),r="Z"in n?u(c(n.y)).getUTCDay():this._newDate(c(n.y)).getDay(),n.m=0,n.d="W"in n?(n.w+6)%7+7*n.W-(r+5)%7:n.w+7*n.U-(r+6)%7);return"Z"in n?(n.H+=n.Z/100|0,n.M+=n.Z%100,u(n)):this._newDate(n)},t.toString=function(){return this._specifier},e}();t["default"]=d},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(353)),i=r(354),o=new a["default"]("day",(function(e){return e.setHours(0,0,0,0)}),(function(e,t){return e.setDate(e.getDate()+t)}),(function(e,t){return(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*i.durationMinute)/i.durationDay}),(function(e){return e.getDate()-1}));t["default"]=o},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n=new Date,a=new Date,i=function(e){return null==e},o=function(){function e(e,t,r,n,a){this._name=e,this._floori=t,this._offseti=r,this._count=n,this._field=a}var t=e.prototype;return t.name=function(){return this._name},t.floor=function(e){var t=new Date(Number(e));return this._floori(t),t},t.ceil=function(e){var t=new Date(e-1);return this._floori(t),this._offseti(t,1),this._floori(t),t},t.round=function(e){var t=this.floor(e),r=this.ceil(e);return e-t<r-e?t:r},t.offset=function(e,t){var r=new Date(Number(e));return this._offseti(r,i(t)?1:Math.floor(t)),r},t.range=function(e,t,r){var n,a=[],o=this.ceil(e),s=i(r)?1:Math.floor(r);if(!(o<t&&s>0))return a;do{n=new Date(Number(o)),a.push(n),this._offseti(o,s),this._floori(o)}while(n<o&&o<t);return a},t.filter=function(t){var r=this;return new e(this.name(),(function(e){if(!Number.isNaN(Number(e)))for(;r._floori(e),!t(e);)e.setTime(e-1)}),(function(e,n){var a=n;if(!Number.isNaN(Number(e)))if(a<0)for(;++a<=0;){0;do{r._offseti(e,-1)}while(!t(e))}else for(;--a>=0;)do{r._offseti(e,1)}while(!t(e))}))},t.count=function(e,t){var r=0;return this._count&&(n.setTime(Number(e)),a.setTime(Number(t)),this._floori(n),this._floori(a),r=Math.floor(this._count(n,a))),r},t.every=function(e){var t=this,r=Math.floor(e);return this._count&&Number.isFinite(r)&&r>0?r>1?this.filter(this._field?function(e){return t._field(e)%r==0}:function(e){return t.count(0,e)%r==0}):this:null},e}();t["default"]=o},function(e,t,r){"use strict";t.__esModule=!0,t.durationYear=t.durationQuarter=t.durationMonth=t.durationWeek=t.durationDay=t.durationHour=t.durationMinute=t.durationSecond=void 0;t.durationYear=315576e5,t.durationQuarter=78894e5,t.durationMonth=2592e6,t.durationWeek=6048e5,t.durationDay=864e5,t.durationHour=36e5,t.durationMinute=6e4,t.durationSecond=1e3},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(353)),i=r(354),o=new a["default"]("day",(function(e){return e.setUTCHours(0,0,0,0)}),(function(e,t){return e.setUTCDate(e.getUTCDate()+t)}),(function(e,t){return(t-e)/i.durationDay}),(function(e){return e.getUTCDate()-1}));t["default"]=o},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t.utcSaturday=t.utcFriday=t.utcThursday=t.utcWednesday=t.utcTuesday=t.utcMonday=t.utcSunday=t["default"]=void 0;var a=n(r(353)),i=r(354),o=function(e,t){return new a["default"](t,(function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)}),(function(e,t){return e.setUTCDate(e.getUTCDate()+7*t)}),(function(e,t){return(t-e)/i.durationWeek}))},s=o(0,"week"),l=o(0,"sunday"),c=o(1,"monday"),u=o(2,"tuesday"),d=o(3,"wednesday"),h=o(4,"thursday"),f=o(5,"friday"),g=o(6,"saturday");t.utcSaturday=g,t.utcFriday=f,t.utcThursday=h,t.utcWednesday=d,t.utcTuesday=u,t.utcMonday=c,t.utcSunday=l;var p=s;t["default"]=p},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t.saturday=t.friday=t.thursday=t.wednesday=t.tuesday=t.monday=t.sunday=t["default"]=void 0;var a=n(r(353)),i=r(354),o=function(e,t){return new a["default"](t,(function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)}),(function(e,t){return e.setDate(e.getDate()+7*t)}),(function(e,t){return(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*i.durationMinute)/i.durationWeek}))},s=o(0,"week"),l=o(0,"sunday"),c=o(1,"monday"),u=o(2,"tuesday"),d=o(3,"wednesday"),h=o(4,"thursday"),f=o(5,"friday"),g=o(6,"saturday");t.saturday=g,t.friday=f,t.thursday=h,t.wednesday=d,t.tuesday=u,t.monday=c,t.sunday=l;var p=s;t["default"]=p},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=new(n(r(359))["default"])("year",(function(e){e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,t){return e.setFullYear(e.getFullYear()+t)}),(function(e,t){return t.getFullYear()-e.getFullYear()}),(function(e){return e.getFullYear()}));t["default"]=a},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(353)),o=function(e){function t(){return e.apply(this,arguments)||this}return(0,a["default"])(t,e),t.prototype.every=function(e){var t=Math.floor(e);return this.count&&Number.isFinite(t)&&t>0?new i["default"]("year",(function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,r){return e.setFullYear(e.getFullYear()+r*t)})):null},t}(i["default"]);t["default"]=o},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=new(n(r(361))["default"])("year",(function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,t){return e.setUTCFullYear(e.getUTCFullYear()+t)}),(function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()}),(function(e){return e.getUTCFullYear()}));t["default"]=a},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(353)),o=function(e){function t(){return e.apply(this,arguments)||this}return(0,a["default"])(t,e),t.prototype.every=function(e){var t=e;return isFinite(t=Math.floor(t))&&t>0?new i["default"]("year",(function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,r){return e.setUTCFullYear(e.getUTCFullYear()+r*t)})):null},t}(i["default"]);t["default"]=o},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n={dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]};t["default"]=n},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n=0,a=function(e){return void 0===e&&(e=""),e+""+n++};t["default"]=a},function(e,t,r){"use strict";function n(e,t){if("string"!=typeof e)throw new Error("eventName must be a non-empty string");if(!(t instanceof Object))throw new Error("sender must be an object");return t._evtHandlers&&t._evtHandlers[e]||[]}t.__esModule=!0,t.addHandler=function a(e,t,r){var n;if(t instanceof Array){for(var i=[],o=t.length,s=0;s<o;s+=1)i.push(a(e,t[s],r));return i}if(!e||"string"!=typeof e)throw new Error("eventName must be a non-empty string");if("function"!=typeof t)throw new Error("handler must be a function");if(!(r instanceof Object))throw new Error("sender must be an object");r._evtHandlers=r._evtHandlers||{};r._evtHandlers[e]&&r._evtHandlers[e]instanceof Array||(r._evtHandlers[e]=[]);n=r._evtHandlers[e].length;for(var l=0;l<n;l++)if(r._evtHandlers[e][l]===t)return!1;r._evtHandlers[e].push(t);return!0},t.getHanlders=n,t.removeHandler=function i(e,t,r){var a,o;if(t instanceof Array){for(var s=[],l=t.length,c=0;c<l;c+=1)s.push(i(e,t[c],r));return s}if(!e||"string"!=typeof e)throw new Error("eventName must be a non-empty string");if(t&&"function"!=typeof t)throw new Error("handler must be a function");if(!(r instanceof Object))throw new Error("sender must be an object");a=n(e,r);if(!(a instanceof Array)||0===a.length)return;if(!t)return delete r._evtHandlers[e],!0;o=a.length;for(var u=0;u<o;u++)a[u]===t&&a.splice(u,1);return!0},t.triggerEvent=function(e,t,r){var a,i,o;if(!e||"string"!=typeof e)throw new Error("eventName must be a non-empty string");if(!(t instanceof Object))throw new Error("sender must be an object");if(a=n(e,t),o={eventName:e,sender:t,data:r},!(a instanceof Array)||0===a.length)return;i=a.length;for(var s=0;s<i;s++)a[s](o);return!0}},function(e,t,r){"use strict";t.__esModule=!0;var n=r(366);t.between=n.between,t.equals=n.equals,t.less=n.less,t.lessEquals=n.lessEquals,t.greater=n.greater,t.greaterEquals=n.greaterEquals,t.filter=n.filter,t.select=n.select,t.groupBy=n.groupBy,t.pipe=n.pipe,t.sort=n.sort,t.pivot=n.pivot},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0;var a=r(367);t.indexColBetween=a.indexColBetween,t.between=a.between,t.indexColEquals=a.indexColEquals,t.equals=a.equals,t.indexColLess=a.indexColLess,t.less=a.less,t.indexColLessEquals=a.indexColLessEquals,t.lessEquals=a.lessEquals,t.indexColGreater=a.indexColGreater,t.greater=a.greater,t.indexColGreaterEquals=a.indexColGreaterEquals,t.greaterEquals=a.greaterEquals;var i=r(370);t.filter=i.filter,t.select=i.select;var o=n(r(371));t.groupBy=o["default"];var s=n(r(391));t.pipe=s["default"];var l=n(r(392));t.sort=l["default"];var c=n(r(393));t.pivot=c["default"]},function(e,t,r){"use strict";t.__esModule=!0,t.indexColBetween=s,t.between=function(e,t,r){var n=t,o=r;return{ops:"between",type:i.OperatorTypes.GenericFilter,_updateArgs:function(e,t){n=e,o=t},fn:function(t,r,i,l){var c,u,d=t;if(l&&(d=l.call()),(c=(0,a.columnIndexOf)(e,r))>=0)return u=f(r,c),i&&i.indexBy===e?s(c,n,o,u).fn(d,r,i):{data:d,schema:r,config:i,generatorFn:function(){return d.filter((function(e){return u(e,n)>=0&&u(e,o)<=0}))}};throw new Error("Column '"+e+"' is not found in the schema.")}}},t.indexColEquals=l,t.equals=function(e,t){var r=t;return{ops:"equals",type:i.OperatorTypes.GenericFilter,_updateArgs:function(e){r=e},fn:function(t,n,i,o){var s,c,u=t;if(o&&(u=o.call()),(s=(0,a.columnIndexOf)(e,n))>=0)return c=f(n,s),i&&i.indexBy===e?l(s,r,c).fn(u,n,i):{data:u,schema:n,config:i,generatorFn:function(){return u.filter((function(e){return 0===c(e,r)}))}};throw new Error("Column '"+e+"' is not found in the schema.")}}},t.indexColLess=c,t.less=function(e,t){var r=t;return{ops:"less",type:i.OperatorTypes.GenericFilter,_updateArgs:function(e){r=e},fn:function(t,n,i,o){var s,l,u=t;if(o&&(u=o.call()),(s=(0,a.columnIndexOf)(e,n))>=0)return l=f(n,s),i&&i.indexBy===e?c(s,r,l).fn(u,n,i):{data:u,schema:n,config:i,generatorFn:function(){return u.filter((function(e){return l(e,r)<0}))}};throw new Error("Column '"+e+"' is not found in the schema.")}}},t.indexColLessEquals=u,t.lessEquals=function(e,t){var r=t;return{ops:"lessEquals",type:i.OperatorTypes.GenericFilter,_updateArgs:function(e){r=e},fn:function(t,n,i,o){var s,l,c=t;if(o&&(c=o.call()),(s=(0,a.columnIndexOf)(e,n))>=0)return l=f(n,s),i&&i.indexBy===e?u(s,r,l).fn(c,n,i):{data:c,schema:n,config:i,generatorFn:function(){return c.filter((function(e){return l(e,r)<=0}))}};throw new Error("Column '"+e+"' is not found in the schema.")}}},t.indexColGreater=d,t.greater=function(e,t){var r=t;return{ops:"greater",type:i.OperatorTypes.GenericFilter,_updateArgs:function(e){r=e},fn:function(t,n,i,o){var s,l,c=t;if(o&&(c=o.call()),(s=(0,a.columnIndexOf)(e,n))>=0)return l=f(n,s),i&&i.indexBy===e?d(s,r,l).fn(c,n,i):{data:c,schema:n,config:i,generatorFn:function(){return c.filter((function(e){return null!==e[s]&&"undefined"!=typeof e[s]&&l(e,r)>0}))}};throw new Error("Column '"+e+"' is not found in the schema.")}}},t.indexColGreaterEquals=h,t.greaterEquals=function(e,t){var r=t;return{ops:"greaterEquals",type:i.OperatorTypes.GenericFilter,_updateArgs:function(e){r=e},fn:function(t,n,i,o){var s,l,c=t;if(o&&(c=o.call()),(s=(0,a.columnIndexOf)(e,n))>=0)return l=f(n,s),i&&i.indexBy===e?h(s,r,l).fn(c,n,i):{data:c,schema:n,config:i,generatorFn:function(){return c.filter((function(e){return null!==e[s]&&"undefined"!=typeof e[s]&&l(e,r)>=0}))}};throw new Error("Column '"+e+"' is not found in the schema.")}}};var n=r(368),a=r(343),i=r(369),o=r(345);function s(e,t,r,a){var s=t,l=r,c=a;return{ops:"indexColBetween",type:i.OperatorTypes.IndexOpsFilter,_updateArgs:function(e,t){s=e,l=t},fn:function(t,r,a,i){var u,d,h,g=t;return i&&(g=i.call()),c||(c=f(r,e)),h="interval"===r[e].type?function(t,r){return(0,o.numberComparator)(t[e].end,r)}:c,u=(0,n.leftMostExactOrGreater)(s,g,c,0,g.length),d=(0,n.rightMostExactOrLesser)(l,g,h,u,g.length),{data:g,schema:r,config:a,generatorFn:function(){return g.slice(u,d+1)}}}}}function l(e,t,r){var a=t,o=r;return{ops:"indexColEquals",type:i.OperatorTypes.IndexOpsFilter,_updateArgs:function(e){a=e},fn:function(t,r,i,s){var l,c,u=t;return s&&(u=s.call()),o||(o=f(r,e)),(l=(0,n.leftMostExactOrGreater)(a,u,o,0,u.length))>=u.length||0!==o(u[l],a)?{data:[],schema:r,config:i}:(c=(0,n.rightMostExactOrLesser)(a,u,o,l,u.length),{data:u,schema:r,config:i,generatorFn:function(){return u.slice(l,c+1)}})}}}function c(e,t,r){var a=t,o=r;return{ops:"indexColLess",type:i.OperatorTypes.IndexOpsFilter,_updateArgs:function(e){a=e},fn:function(t,r,i,s){var l,c=t;return s&&(c=s.call()),o||(o=f(r,e)),l=(0,n.leftMostExactOrGreater)(a,c,o,0,c.length),{data:c,schema:r,config:i,generatorFn:function(){return c.slice(0,l)}}}}}function u(e,t,r){var a=t,o=r;return{ops:"indexColLessEquals",type:i.OperatorTypes.IndexOpsFilter,_updateArgs:function(e){a=e},fn:function(t,r,i,s){var l,c=t;return s&&(c=s.call()),o||(o=f(r,e)),l=(0,n.rightMostExactOrLesser)(a,c,o,0,c.length),{data:c,schema:r,config:i,generatorFn:function(){return c.slice(0,l+1)}}}}}function d(e,t,r){var a=t,o=r;return{ops:"indexColGreater",type:i.OperatorTypes.IndexOpsFilter,_updateArgs:function(e){a=e},fn:function(t,r,i,s){var l,c,u=t;return s&&(u=s.call()),o||(o=f(r,e)),l=(0,n.rightMostExactOrLesser)(a,u,o,0,u.length),c=(0,n.leftMostExactOrGreater)(null,u,o,l,u.length),{data:u,schema:r,config:i,generatorFn:function(){return u.slice(l+1,c)}}}}}function h(e,t,r){var a=t,o=r;return{ops:"indexColGreaterEquals",type:i.OperatorTypes.IndexOpsFilter,_updateArgs:function(e){a=e},fn:function(t,r,i,s){var l,c,u=t;return s&&(u=s.call()),o||(o=f(r,e)),l=(0,n.leftMostExactOrGreater)(a,u,o,0,u.length),c=(0,n.leftMostExactOrGreater)(null,u,o,l,u.length),{data:u,schema:r,config:i,generatorFn:function(){return u.slice(l,c)}}}}}var f=function(e,t){switch(e[t].type){case"interval":return function(e,r){return(0,o.numberComparator)(e[t].start,r)};case"number":case"date":return function(e,r){return(0,o.numberComparator)(e[t],r)};default:return function(e,r){return(0,o.stringComparator)(String(e[t]).toLowerCase(),String(r).toLowerCase())}}}},function(e,t,r){"use strict";t.__esModule=!0,t.leftMostExactOrGreater=function(e,t,r,n,a){var i=n,o=a;for(;i<o;){var s=i+Math.floor((o-i)/2);r(t[s],e)<0?i=s+1:o=s}return i},t.rightMostExactOrLesser=function(e,t,r,n,a){var i=n,o=a;for(;i<o;){var s=i+Math.floor((o-i)/2);r(t[s],e)>0?o=s:i=s+1}return i-1}},function(e,t,r){"use strict";t.__esModule=!0,t.OperatorTypes=void 0;t.OperatorTypes={IndexOpsFilter:0,GenericFilter:1,GroupBy:2,Sort:3,Select:4}},function(e,t,r){"use strict";t.__esModule=!0,t.select=function(e,t){var r=e,i=t;return r=r&&r.constructor!==Array?[r]:r,{ops:"select",type:n.OperatorTypes.Select,fn:function(e,t,n,o){var s,l,c=[],u=[];if(r)if((i=i||{exclude:!1}).exclude)for(s=0;s<t.length;s++)r.includes(t[s].name)||(c.push(t[s]),u.push(s));else for(s=0;s<r.length;s++)(l=(0,a.columnIndexOf)(r[s],t))>-1&&!u.includes(l)&&(c.push(t[l]),u.push(l));else c=t;return{data:e,schema:c,config:n,generatorFn:function(){var t=u.length;if(t>0){var r,n,a,i=[];for(r=0;r<e.length;r++){for(a=[],n=0;n<t;n++)a[n]=e[r][u[n]];i[r]=a}return i}return e.slice(0)}}}}},t.filter=function(e){var t=this;return{ops:"filter",type:n.OperatorTypes.GenericFilter,fn:function(r,n,a,i){var o=r;return{data:o,schema:n,config:a,generatorFn:function(){i&&(o=i.call());for(var r={},a=0;a<n.length;a++)r[n[a].name]=a;return o.filter((function(n){return e.call(t,n,r)}))}}}}};var n=r(369),a=r(343)},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t._singleSortedAddRow=p,t._singleSortedAddRowDate=m,t["default"]=void 0;var a,i=r(343),o=r(372),s=r(387),l=r(388),c=n(r(389)),u=r(347),d=r(369),h=r(368),f=r(345);function g(e,t,r,n){var i,o,s,l,u,d=[],h=t,f=r,g=h.length,p=f.length;for(h=h instanceof Array?h:[h],f=f instanceof Array?f:[f],s=0;s<g;s++)i=n(h[s].column,e),u={name:h[s].outputAs||h[s].column,type:"date"===i.type?"interval":i.type},i.enableUTC!==a&&(u.enableUTC=i.enableUTC),d.push(u);for(s=0;s<p;s++){if(l=f[s].operation||"avg",i=n(f[s].column,e),!c["default"].resolve(l))throw new Error(l+" is not a defined operation");switch(l){case"first":case"last":o=i.type;break;case"count":o="number";break;default:if("number"!==i.type)throw new Error(l+" can apply only on numbers");o="number"}d.push({name:f[s].outputAs||f[s].column+(l?" - "+l:""),type:o})}return d}function p(e,t,r){var n=t;return n&&r===n[0]||(n=[r],e.push(n)),n}function m(e,t,r,n,a){var i=t;if(r>=i[0].end){var s;switch(n.duration.Unit){case"Month":case"Quarter":case"Year":s=(0,o.getDateStart)(r,n.duration,n.enableUTC,n.weekStartFrom,a);break;default:s=r-(r-a)%n.duration.ms}i=[(0,l.interval)(s,n)],e.push(i)}return i}function v(){var e={};return function(t,r,n){if(!e[t]){var o=(0,i.columnIndexOf)(t,r),s=r[o];if(s===a)throw new Error("incorrect column name in config - "+t);e[t]=s,e[t].column=t,e[t].index=o,"date"===s.type&&n&&(e[t].peaks=(0,i.columnExtents)(t,n,r))}return e[t]}}function b(e,t,r,n,a,i,s,c,u,d){var h,f,g,p,m="",v=[],b=r.length,x=c;if(e.length>0){for(h=0;h<b;h++)if("date"===(f=a(r[h].column,t)).type){if(i[h].startValFloorVal>e[f.index])return x;switch(r[h].timeUnit.name){case"Month":case"Quarter":case"Year":i[h].value=(0,o.getDateStart)(e[f.index],i[h].intervalConfig.duration,i[h].intervalConfig.enableUTC,i[h].intervalConfig.weekStartFrom,i[h].startValFloorVal);break;default:i[h].value=e[f.index]-(e[f.index]-i[h].startValFloorVal)%i[h].intervalConfig.duration.ms}m+=i[h].value+"-"}else v[h]=e[f.index],m+=e[f.index]+"-";if(s[m=m.slice(0,-1)]>=0)v=u[s[m]],g=s[m];else{for(var C in s[m]=x++,i)p=(0,l.interval)(i[C].value,i[C].intervalConfig),v[C]=p;u.push(v),g=u.length-1}return d[g]=d[g]||{},v&&y(e,t,v,b,n,a,d[g]),x}}function y(e,t,r,n,i,o,s){var l,u,d,h,f=i.length;for(h=0;h<f;h++)if(e[(l=o(i[h].column,t)).index]!==a&&null!==e[l.index]){switch(u=i[h].operation||"avg"){case"sum":case"min":case"max":case"first":case"last":d=null;break;default:d=s[h]=s[h]&&s[h]+1||1}r[n+h]="count"===u?d:c["default"].resolve(u)(r[n+h]!==a?r[n+h]:null,e[l.index],d)}}var x=function(e,t){var r=e,n=t;return{ops:"groupBy",type:d.OperatorTypes.GroupBy,_updateArgs:function(e,t){r=e,n=t},fn:function(e,t,c,d){var x=e;if(d&&(x=d.call()),!r||0===r.length)throw new Error("groupConfigArray cannot be empty");if(!n||0===n.length)throw new Error("aggrConfigArray cannot be empty");return!(r instanceof Array)&&r instanceof Object&&(r=[r]),!(n instanceof Array)&&n instanceof Object&&(n=[n]),1===r.length&&c&&r[0].column===c.indexBy?function(e,t,r,n,c){var d,b,x,C,w,_,k,S,E,A=[],T=e.length,M=0,F=v(),I=[];if((b=F(n.column,t)).outputAs=n.outputAs,d=g(t,[b],c,F),T>0){if(S=b.enableUTC||(0,u.getConfig)("enableUTC"),"date"===b.type){var L,N,D;if(C=(0,s.duration)(n.timeUnit,Math.abs(n.binSize)||1),e[0]&&e[0][b.index]&&e[T-1]&&e[T-1][b.index]||(L=(0,i.columnExtents)(n.column,e,t,r.indexBy)),N=e[0]&&e[0][b.index]||L.min,D=n.startValue&&parseInt(n.startValue,10))if(D>=N){w=(0,o.getDateStart)(D,(0,s.duration)(n.timeUnit,1),S,n.weekStartFrom),M=(0,h.leftMostExactOrGreater)(w,e,(function(e,t){return(0,f.numberComparator)(e[b.index],t)}),0,e.length)}else w=(0,o.getDateStart)(N,C,S,n.weekStartFrom,D);else w=(0,o.getDateStart)(N,(0,s.duration)(n.timeUnit,1),S,n.weekStartFrom);x=e[T-1]&&e[T-1][b.index]||L.max}if(w===a||w<=x){var O={duration:C,outputFormat:n.outputFormat,enableUTC:S,weekStartFrom:n.weekStartFrom};for(w!==a&&(_=[(0,l.interval)(w,O)],A.push(_)),E=M;E<T;E++)e[E].length>0&&("date"===b.type?_=m(A,_,e[E][b.index],O,w):"string"!==b.type&&"number"!==b.type||(_=p(A,_,e[E][b.index])),k=A.length-1,I[k]=I[k]||{},_&&y(e[E],t,_,1,c,F,I[k]))}}return{data:A,schema:d,config:{indexBy:n.outputAs||n.column}}}(x,t,c,r[0],n):function(e,t,r,n,a){var i,l,c,d,h,f=[],p=[],m=!0,y=e.length,x=n.length,C={},w=[],_=v(),k={},S=0;for(h=0;h<x;h++)(l=_(n[h].column,t,e)).outputAs=n[h].outputAs,"date"===l.type&&(C[h]||(n[h].startValue>=l.peaks.max&&(m=!1),C[h]=Object.assign({},l),C[h].intervalConfig={duration:(0,s.duration)(n[h].timeUnit,Math.abs(n[h].binSize)||1),outputFormat:n[h].outputFormat,enableUTC:l.enableUTC||(0,u.getConfig)("enableUTC"),weekStartFrom:n[h].weekStartFrom},c=parseInt(n[h].startValue,10)||l.peaks.min,C[h].startValFloorVal=c&&(0,o.getDateStart)(c,(0,s.duration)(n[h].timeUnit,1),C[h].intervalConfig.enableUTC,C[h].intervalConfig.weekStartFrom,parseInt(n[h].startValue,10)),C[h].max=l.peaks.max)),p[h]=l,d||n[h].column!==r.indexBy||(d=n[h].outputAs||n[h].column);if(i=g(t,p,a,_),m&&y>0)for(h=0;h<y;h++)S=b(e[h],t,n,a,_,C,k,S,f,w);return{data:f,schema:i,config:{indexBy:d}}}(x,t,c,r,n)}}};t["default"]=x},function(e,t,r){"use strict";var n=r(178),a=r(182);t.__esModule=!0,t.getDefaultOutputFormat=function(e){switch(e){case"Millisecond":case"Second":case"Minute":case"Hour":case"Day":case"Month":case"Year":return c[e];case"Week":return c.Day;case"Quarter":return c.Month}},t.dateIntervalToString=function(){var e,t=this.config;switch(e="undefined"!=typeof t.enableUTC&&t.enableUTC?l["default"].utcFormatter(t.outputFormat):l["default"].formatter(t.outputFormat),t.duration.Unit){case"Millisecond":case"Second":case"Minute":case"Hour":case"Day":case"Month":case"Year":return e.format(new Date(this.start))+(t.duration.number>1?" - "+e.format(new Date(this.end-1)):"");case"Week":case"Quarter":return e.format(new Date(this.start))+" - "+e.format(new Date(this.end-1))}},t.dateRangeCaclulator=function(e,t,r,n,a){void 0===a&&(a=!1);var i,o,s;i=e,a&&((s=Object.assign({},t)).number=1,i=h(i,s,r,n));return o=f(i,t.Unit,t.number,r,n),{startDate:i,endDate:o}},t.getDateStart=h,t.getDateOffset=f;var i=a(r(373)),o=a(r(381)),s=r(386),l=n(r(348)),c={Year:"%Y",Month:"%b %Y",Day:"%b %d, %Y",Hour:"%b %d, %Y %H hrs",Minute:"%b %d, %Y %H:%M",Second:"%b %d, %Y %H:%M:%S",Millisecond:"%b %d, %Y %H:%M:%S:%L"},u={Millisecond:i.timeMillisecond,Second:i.timeSecond,Minute:i.timeMinute,Hour:i.timeHour,Day:i.timeDay,Week:{0:i.timeSunday,1:i.timeMonday,2:i.timeTuesday,3:i.timeWednesday,4:i.timeThursday,5:i.timeFriday,6:i.timeSaturday},Month:i.timeMonth,Quarter:i.timeQuarter,Year:i.timeYear},d={Millisecond:o.utcMillisecond,Second:o.utcSecond,Minute:o.utcMinute,Hour:o.utcHour,Day:o.utcDay,Week:{0:o.utcSunday,1:o.utcMonday,2:o.utcTuesday,3:o.utcWednesday,4:o.utcThursday,5:o.utcFriday,6:o.utcSaturday},Month:o.utcMonth,Quarter:o.utcQuarter,Year:o.utcYear};function h(e,t,r,n,a){var i,o=void 0!==r&&r?d[t.Unit]:u[t.Unit],l=n;if(l&&!s.Weekdays[l.name])throw new Error("Invalid weekStartFrom provided: "+l);return 1===t.number?"Week"===t.Unit?+o[(l=l||s.Weekdays.Sunday).id].floor(new Date(e)):+o.floor(new Date(e)):a?"Week"===t.Unit?(i=o[(l=l||s.Weekdays.Sunday).id].count(a,e)%t.number)?f(+o[l.id].floor(e),t.Unit,-i,r,l):+o[l.id].floor(e):(i=o.count(a,e)%t.number)?f(+o.floor(e),t.Unit,-i,r,l):+o.floor(e):"Week"===t.Unit?+o[(l=l||s.Weekdays.Sunday).id].every(t.number).floor(new Date(e)):+o.every(t.number).floor(new Date(e))}function f(e,t,r,n,a){switch(t){case"Month":case"Quarter":case"Year":return+(void 0!==n&&n?d[t]:u[t]).offset(new Date(e),r);default:return e+s.DatetimeUnits[t].ms*r}}},function(e,t,r){"use strict";var n=r(182),a=r(178);t.__esModule=!0;var i=a(r(374));t.timeMillisecond=i["default"];var o=a(r(376));t.timeSecond=o["default"];var s=a(r(377));t.timeMinute=s["default"];var l=a(r(378));t.timeHour=l["default"];var c=a(r(352));t.timeDay=c["default"];var u=n(r(357));t.timeWeek=u["default"],t.timeSunday=u.sunday,t.timeMonday=u.monday,t.timeTuesday=u.tuesday,t.timeWednesday=u.wednesday,t.timeThursday=u.thursday,t.timeFriday=u.friday,t.timeSaturday=u.saturday;var d=a(r(379));t.timeQuarter=d["default"];var h=a(r(380));t.timeMonth=h["default"];var f=a(r(358));t.timeYear=f["default"]},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=new(n(r(375))["default"])("millisecond",(function(){}),(function(e,t){return e.setTime(Number(e)+Number(t))}),(function(e,t){return t-e}));t["default"]=a},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(198)),i=n(r(353)),o=function(e){function t(){return e.apply(this,arguments)||this}return(0,a["default"])(t,e),t.prototype.every=function(e){var t=Math.floor(e);return this.count&&Number.isFinite(t)&&t>0?t>1?new i["default"]("millisecond",(function(e){return e.setTime(Math.floor(e/t)*t)}),(function(e,r){return e.setTime(Number(e)+r*t)}),(function(e,r){return(r-e)/t})):this:null},t}(i["default"]);t["default"]=o},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(353)),i=r(354),o=new a["default"]("second",(function(e){return e.setTime(Math.floor(e/i.durationSecond)*i.durationSecond)}),(function(e,t){return e.setTime(Number(e)+t*i.durationSecond)}),(function(e,t){return(t-e)/i.durationSecond}),(function(e){return e.getUTCSeconds()}));t["default"]=o},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(353)),i=r(354),o=new a["default"]("minute",(function(e){return e.setTime(Math.floor(e/i.durationMinute)*i.durationMinute)}),(function(e,t){return e.setTime(Number(e)+t*i.durationMinute)}),(function(e,t){return(t-e)/i.durationMinute}),(function(e){return e.getMinutes()}));t["default"]=o},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(353)),i=r(354),o=new a["default"]("hour",(function(e){var t=e.getTimezoneOffset()*i.durationMinute%i.durationHour;t<0&&(t+=i.durationHour),e.setTime(Math.floor((Number(e)-t)/i.durationHour)*i.durationHour+t)}),(function(e,t){return e.setTime(Number(e)+t*i.durationHour)}),(function(e,t){return(t-e)/i.durationHour}),(function(e){return e.getHours()}));t["default"]=o},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=new(n(r(353))["default"])("quarter",(function(e){e.setMonth(e.getMonth()-(e.getMonth()+3)%3,1),e.setHours(0,0,0,0)}),(function(e,t){return e.setMonth(e.getMonth()+3*t)}),(function(e,t){return(t.getMonth()-(t.getMonth()+3)%3-(e.getMonth()-(e.getMonth()+3)%3))/3+4*(t.getFullYear()-e.getFullYear())}),(function(e){return Math.floor(e.getMonth()/3)}));t["default"]=a},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=new(n(r(353))["default"])("month",(function(e){e.setDate(1),e.setHours(0,0,0,0)}),(function(e,t){return e.setMonth(e.getMonth()+t)}),(function(e,t){return t.getMonth()-e.getMonth()+12*(t.getFullYear()-e.getFullYear())}),(function(e){return e.getMonth()}));t["default"]=a},function(e,t,r){"use strict";var n=r(182),a=r(178);t.__esModule=!0,t["default"]=void 0;var i=a(r(374));t.utcMillisecond=i["default"];var o=a(r(376));t.utcSecond=o["default"];var s=a(r(382));t.utcMinute=s["default"];var l=a(r(383));t.utcHour=l["default"];var c=a(r(355));t.utcDay=c["default"];var u=n(r(356));t.utcWeek=u["default"],t.utcSunday=u.utcSunday,t.utcMonday=u.utcMonday,t.utcTuesday=u.utcTuesday,t.utcWednesday=u.utcWednesday,t.utcThursday=u.utcThursday,t.utcFriday=u.utcFriday,t.utcSaturday=u.utcSaturday;var d=a(r(384));t.utcQuarter=d["default"];var h=a(r(385));t.utcMonth=h["default"];var f=a(r(360));t.utcYear=f["default"];var g={getInterval:function(e){switch(e+""){case"millisecond":return i["default"];case"second":return o["default"];case"minute":return s["default"];case"hour":return l["default"];case"day":return c["default"];case"week":return u["default"];case"sunday":return u.utcSunday;case"monday":return u.utcMonday;case"tuesday":return u.utcTuesday;case"wednesday":return u.utcWednesday;case"thursday":return u.utcThursday;case"friday":return u.utcFriday;case"saturday":return u.utcSaturday;case"quarter":return d["default"];case"month":return h["default"];case"year":return f["default"]}}};t["default"]=g},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(353)),i=r(354),o=new a["default"]("minute",(function(e){return e.setUTCSeconds(0,0)}),(function(e,t){return e.setTime(Number(e)+t*i.durationMinute)}),(function(e,t){return(t-e)/i.durationMinute}),(function(e){return e.getUTCMinutes()}));t["default"]=o},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=n(r(353)),i=r(354),o=new a["default"]("hour",(function(e){return e.setUTCMinutes(0,0,0)}),(function(e,t){return e.setTime(Number(e)+t*i.durationHour)}),(function(e,t){return(t-e)/i.durationHour}),(function(e){return e.getUTCHours()}));t["default"]=o},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=new(n(r(353))["default"])("quarter",(function(e){e.setUTCMonth(e.getUTCMonth()-(e.getUTCMonth()+3)%3,1),e.setUTCHours(0,0,0,0)}),(function(e,t){return e.setUTCMonth(e.getUTCMonth()+3*t)}),(function(e,t){return(t.getUTCMonth()-(t.getUTCMonth()+3)%3-(e.getUTCMonth()-(e.getUTCMonth()+3)%3))/3+4*(t.getUTCFullYear()-e.getUTCFullYear())}),(function(e){return Math.floor(e.getMonth()/3)}));t["default"]=a},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a=new(n(r(353))["default"])("month",(function(e){e.setUTCDate(1),e.setUTCHours(0,0,0,0)}),(function(e,t){return e.setUTCMonth(e.getUTCMonth()+t)}),(function(e,t){return t.getUTCMonth()-e.getUTCMonth()+12*(t.getUTCFullYear()-e.getUTCFullYear())}),(function(e){return e.getUTCMonth()}));t["default"]=a},function(e,t,r){"use strict";t.__esModule=!0,t.Weekdays=t.DatetimeUnits=void 0;var n=r(354),a={Millisecond:{name:"Millisecond",ms:1},Second:{name:"Second",ms:n.durationSecond},Minute:{name:"Minute",ms:n.durationMinute},Hour:{name:"Hour",ms:n.durationHour},Day:{name:"Day",ms:n.durationDay},Week:{name:"Week",ms:n.durationWeek},Month:{name:"Month",ms:n.durationMonth},Quarter:{name:"Quarter",ms:n.durationQuarter},Year:{name:"Year",ms:n.durationYear}};t.Weekdays={Sunday:{name:"Sunday",id:0},Monday:{name:"Monday",id:1},Tuesday:{name:"Tuesday",id:2},Wednesday:{name:"Wednesday",id:3},Thursday:{name:"Thursday",id:4},Friday:{name:"Friday",id:5},Saturday:{name:"Saturday",id:6}},t.DatetimeUnits=a},function(e,t,r){"use strict";t.__esModule=!0,t.duration=function(e,t){var r=t;if(!e||!n.DatetimeUnits[e.name])throw new Error("Invalid Unit provided: "+e);return r=Math.abs(r)||1,{Unit:e.name,number:r,ms:e.ms*r}};var n=r(386)},function(e,t,r){"use strict";t.__esModule=!0,t.interval=function(e,t,r){void 0===r&&(r=!1);if(t.duration.ms){var i=(0,a.dateRangeCaclulator)(e,t.duration,t.enableUTC,t.weekStartFrom||n.Weekdays.Sunday,r),o=i.startDate,s=i.endDate;return t.outputFormat=t.outputFormat||(0,a.getDefaultOutputFormat)(t.duration.Unit),{start:o,end:s,config:t,toString:a.dateIntervalToString}}};var n=r(386),a=r(372)},function(e,t,r){"use strict";var n=r(182);t.__esModule=!0,t["default"]=void 0;var a={store:{},_defaultAggregators:n(r(390)),register:function(e,t){return this.store[e]=t,this},getRegisteredAggregations:function(){return Object.assign(this.store)},getDefaultAggregations:function(){return Object.assign(this._defaultAggregators)},resolve:function(e){return this._defaultAggregators[e]||this.store[e]}};t["default"]=a},function(e,t,r){"use strict";t.__esModule=!0,t.stddev=t.variance=t.last=t.first=t.max=t.min=t.count=t.avg=t.sum=void 0;var n=function(e,t,r){return((r-1)*e+t)/r},a=function(e,t,r){var a,i=t,o=0;return e&&(i=e.avg,o=e.variance),a=i,r>1&&(o=(o*(r-2)+(t-(i=n(i,t,r)))*(t-a))/(r-1)),{avg:i,variance:o}};t.stddev=function(e,t,r){var n,i;return e&&(n={avg:e.avg,variance:e.stddev*e.stddev}),{avg:(i=a(n,t,r)).avg,stddev:Math.sqrt(i.variance)}},t.variance=a,t.last=function(e,t){return t},t.first=function(e,t){return null===e?t:e},t.max=function(e,t){return null!==e?e<t?t:e:t},t.min=function(e,t){return null!==e?e>t?t:e:t},t.count=function(e){return e+1},t.avg=n,t.sum=function(e,t){return e+t}},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=function(){for(var e,t=[],r=[],i=[],o=function(e,t){for(var r=[],n=e.length,i=0;i<n;i++)t[i]||r.push(e[i]);return r&&r.length>0&&(0,a.binaryInsertionSort)(r,(function(e,t){return e.type-t.type})),r},s=arguments.length,l=new Array(s),c=0;c<s;c++)l[c]=arguments[c];e=l.length;for(var u=0;u<e;u++)switch(l[u].type){case n.OperatorTypes.IndexOpsFilter:case n.OperatorTypes.GenericFilter:t.push(l[u]),r.push(!1);break;case n.OperatorTypes.Select:case n.OperatorTypes.Sort:t.push(l[u]),r.push(!0);break;case n.OperatorTypes.GroupBy:i=i.concat(o(t,r),l[u]),t=[],r=[]}return i=i.concat(function(e){var t=[],r=e.length;(0,a.binaryInsertionSort)(e,(function(e,t){return e.type-t.type})),t.push(e[0]);for(var n=1;n<r;n++)e[n].type>=3&&e[n].type===t[t.length-1].type&&t.pop(),t.push(e[n]);return t}(t))};var n=r(369),a=r(346)},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t["default"]=void 0;var a,i=r(369),o=r(343),s=r(345),l=n(r(346));var c=function(e){var t=e;return{ops:"sort",type:i.OperatorTypes.Sort,_updateArgs:function(e){t=e},fn:function(e,r,n,i){var c=e;return{data:c,schema:r,config:t.constructor===Array&&t.length?{indexBy:t[0].column}:t.constructor===Object?{indexBy:t.column}:a,generatorFn:function(){var e;if(i&&(c=i.call()),t.constructor===Function)e=t;else{t.constructor!==Array&&(t=[t]);var n,a,u,d=[],h=[];for(n=0;n<t.length;n++)if(t[n].column){if(a=(0,o.columnIndexOf)(t[n].column,r),h.push(a),-1===a)throw new Error("Sort column is not found in schema - "+t[n].column);switch(r[a].type){case"number":case"interval":case"date":d.push(s.numberComparator);break;default:d.push(s.stringComparator)}}e=function(e,a){for(n=0;n<t.length;n++){if(0!==(u="interval"===r[h[n]].type?"desc"===t[n].order?d[n](a[h[n]].start,e[h[n]].start):d[n](e[h[n]].start,a[h[n]].start):"desc"===t[n].order?d[n](a[h[n]],e[h[n]]):d[n](e[h[n]],a[h[n]])))return u;if(n===t.length-1)return 0}}}return(0,l["default"])(c,e),c}}}}};t["default"]=c},function(e,t,r){"use strict";var n=r(182),a=r(178);t.__esModule=!0,t["default"]=void 0;var i,o=r(343),s=r(372),l=r(387),c=r(388),u=a(r(389)),d=r(347),h=r(369),f=n(r(371)),g=r(345),p=r(368);function m(e,t,r,n,a,o,s,l,c){var d,h,f,g,p,m=a.length;for(g=0;g<m;g++)if(e[d=l(a[g].column,t)]!==i&&null!==e[d]){switch(h=a[g].operation||"avg",p=s[e[o]+" - "+(a[g].outputAs||a[g].column+(h?" - "+h:""))],h){case"sum":case"min":case"max":case"first":case"last":f=null;break;default:f=c[p]=c[p]&&c[p]+1||1}r[n+p]="count"===h?f:u["default"].resolve(h)(r[n+p]!==i?r[n+p]:null,e[d],f)}}var v=function(e,t,r){var n=e,a=t,v=r;return{ops:"pivot",type:h.OperatorTypes.GroupBy,_updateArgs:function(e,t,r){n=e,a=t,v=r},fn:function(e,t,r,h){if(0===n.length)throw new Error("groupConfigArray cannot be empty");if(0===v.length)throw new Error("aggrConfigArray cannot be empty");if(!a)throw new Error("pivotCol cannot be empty");return!(n instanceof Array)&&n instanceof Object&&(n=[n]),!(v instanceof Array)&&v instanceof Object&&(v=[v]),1===n.length&&r&&n[0].column===r.indexBy?function(e,t,r,n,a,h){var v,b,y,x,C,w,_,k,S,E,A,T,M,F,I,L=[],N=e.length,D=0,O=(P={},function(e,t){return P[e]||(P[e]=(0,o.columnIndexOf)(e,t)),P[e]}),R=[];var P;if(-1===(x=(0,o.columnIndexOf)(n.column,t)))throw new Error("incorrect column name in groupConfigArr - "+n);if(-1===(w=(0,o.columnIndexOf)(h,t)))throw new Error("incorrect pivot column name");if(C=t[x],_=t[w],(S=Object.assign({},n)).type=C.type,S.outputAs=n.outputAs,y=function(e,t,r,n,a){var s,l,c,d,h,f,p,m,v,b,y,x,C,w=[],_={},k=0,S=r,E=n;for(S=S instanceof Array?S:[S],E=E instanceof Array?E:[E],d=S.length,h=E.length,b=0;b<d;b++){if(f=(0,o.columnIndexOf)(S[b].column,t),p=t[f],-1===f)throw new Error("incorrect column name in groupConfigArr - "+S[b].column);C={name:S[b].outputAs||S[b].column,type:"date"===p.type?"interval":p.type},p.enableUTC!==i&&(C.enableUTC=p.enableUTC),w.push(C)}switch(a.type){case"number":case"date":s=g.numberComparator;break;default:s=g.stringComparator}for((l=(0,o.columnUnique)(a.name,e,t)).sort((function(e,t){return s(e,t)})),c=l.length,b=0;b<h;b++){if(x=E[b].operation||"avg",f=(0,o.columnIndexOf)(E[b].column,t),p=t[f],-1===f)throw new Error("incorrect column name in aggrConfigArr - "+E[b].column);if(!u["default"].resolve(x))throw new Error(x+" is not a defined operation");switch(x){case"first":case"last":m=p.type;break;case"count":m="number";break;default:if("number"!==p.type)throw new Error(x+" can apply only on numbers");m="number"}for(y=0;y<c;y++)v=l[y]+" - "+(E[b].outputAs||E[b].column+(x?" - "+x:"")),_[v]=k++,w.push({name:v,type:m})}return{schema:w,pivots:_}}(e,t,S,a,_),v=y.schema,b=y.pivots,N>0){if(F=C.enableUTC||(0,d.getConfig)("enableUTC"),"date"===C.type){var V,B,j;if(E=(0,l.duration)(n.timeUnit,Math.abs(n.binSize)||1),e[0]&&e[0][x]&&e[N-1]&&e[N-1][x]||(V=(0,o.columnExtents)(n.column,e,t,r.indexBy)),B=e[0]&&e[0][x]||V.min,j=n.startValue&&parseInt(n.startValue,10))if(j>=B){A=(0,s.getDateStart)(j,(0,l.duration)(n.timeUnit,1),F,n.weekStartFrom),D=(0,p.leftMostExactOrGreater)(A,e,(function(e,t){return(0,g.numberComparator)(e[x],t)}),0,e.length)}else A=(0,s.getDateStart)(B,E,F,n.weekStartFrom,j);else A=(0,s.getDateStart)(B,(0,l.duration)(n.timeUnit,1),F,n.weekStartFrom);k=e[N-1]&&e[N-1][x]||V.max}if(A===i||A<=k){var G={duration:E,outputFormat:n.outputFormat,enableUTC:F,weekStartFrom:n.weekStartFrom};for(A!==i&&(T=[(0,c.interval)(A,G)],L.push(T)),I=D;I<N;I++)e[I].length>0&&("date"===C.type?T=(0,f._singleSortedAddRowDate)(L,T,e[I][x],G,A):"string"!==C.type&&"number"!==C.type||(T=(0,f._singleSortedAddRow)(L,T,e[I][x])),M=L.length-1,R[M]=R[M]||{},T&&m(e[I],t,T,1,a,w,b,O,R[M]))}}return{data:L,schema:v,config:{indexBy:n.outputAs||n.column}}}(e,t,r,n[0],v,a):function(e,t,r,n,a,s,l){var c,u,d,h,p,m,v,b,y,x,C={},w={},_=function(e){return w.hasOwnProperty(e)?w[e]:-1},k=function(e,t){w[e]=t},S=function(e,t,r,n){return e+" - "+(t||r+(n?" - "+n:""))},E=[];switch(c=(0,f["default"])(a.concat({column:l}),s),u=c.fn(e,t,r,n),h=(0,o.columnUnique)(l,e,t),v=(0,o.columnIndexOf)(l,u.schema),u.schema[v].type){case"number":case"date":d=g.numberComparator;break;default:d=g.stringComparator}p=h&&h.sort((function(e,t){return d(e,t)}))||[],m=u.schema.filter((function(e){return e.name!==l})),b=m.length,y=a.map((function(e){return e.outputAs||e.column})),x=function(){for(var e,t=[],r=function(r){if(y.includes(m[r].name))t.push(m[r]),C[m[r].name]=r;else{e=s.filter((function(e){return(e.outputAs||e.column+(e.operation?" - "+e.operation:""))===m[r].name}))[0];for(var n=0;n<p.length;n++)t.push({name:S(p[n],e.outputAs,e.column,e.operation),type:m[r].type})}},n=0;n<b;n++)r(n);return t}(),u.data.length>0&&(E=function(e){var t,r,n,a,i,o=[],c=e.length,d={},h={},f="";for(t=0;t<c;t++)d[e[t].name]=t;for(t=0;t<u.data.length;t++){for(h={},f="",r=0;r<u.schema.length;r++)C.hasOwnProperty(u.schema[r].name)?(h[d[u.schema[r].name]]=u.data[t][r],"interval"===u.schema[r].type?f+=u.data[t][r].start:f+=u.data[t][r]):u.schema[r].name!==l&&(a=s.filter((function(e){return(e.outputAs||e.column+(e.operation?" - "+e.operation:""))===u.schema[r].name}))[0],(i=d[S(u.data[t][v],a.outputAs,a.column,a.operation)])&&(h[i]=u.data[t][r]));if((n=_(f))>-1){var g=o[n];for(var p in h)g[p]=h[p]}else{var m=new Array(c);for(var b in h)m[b]=h[b];o.push(m),k(f,o.length-1)}}return o}(x));return{data:E,schema:x,config:{indexBy:u.config.indexBy===l?i:u.config.indexBy}}}(e,t,r,h,n,v,a)}}};t["default"]=v},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0;var a=n(r(389));t.aggregatorStore=a["default"]},function(e,t,r){"use strict";t.__esModule=!0;var n=r(396);t.before=n.before,t.after=n.after;var a=r(397);t.parseDate=a.parseDate,t.formatDate=a.formatDate;var i=r(387);t.duration=i.duration;var o=r(386);t.DatetimeUnits=o.DatetimeUnits,t.Weekdays=o.Weekdays},function(e,t,r){"use strict";t.__esModule=!0,t.before=function(e,t,r,i){if(!e)throw new Error("duration is missing");if(t&&(isNaN(t)||isNaN(+new Date(t))))throw new Error("timestamp is incorrect");return(0,n.getDateOffset)(isNaN(t)?+new Date:t,e.Unit,-e.number,r,i||a.Weekdays.Sunday)},t.after=function(e,t,r,i){if(!e)throw new Error("duration is missing");if(t&&(isNaN(t)||isNaN(+new Date(t))))throw new Error("timestamp is incorrect");return(0,n.getDateOffset)(isNaN(t)?+new Date:t,e.Unit,e.number,r,i||a.Weekdays.Sunday)};var n=r(372),a=r(386)},function(e,t,r){"use strict";var n=r(178);t.__esModule=!0,t.parseDate=function(e,t,r){var n,i;t&&(n=void 0!==r&&r?a["default"].utcParser(t):a["default"].parser(t),i=(i=n.parse(e))&&i.getTime());i||(i=void 0!==r&&r?+new Date(e+"Z"):+new Date(e));if(!i)throw new Error("Incorrect string or format provided");return i},t.formatDate=function(e,t,r){var n,o,s=t;if(isNaN(parseInt(e,10)))throw new Error("Timestamp must be a number: "+e);s||(s=i);if(n=void 0!==r&&r?a["default"].utcFormatter(s):a["default"].formatter(s),!(o=n.format(new Date(e))))throw new Error("Incorrect format provided: "+s);return o};var a=n(r(348)),i="%a, %-d %b %Y, %H:%M:%S:%L"},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]={column2d:"charts",column3d:"charts",bar2d:"charts",bar3d:"charts",pie2d:"charts",pie3d:"charts",line:"charts",area2d:"charts",doughnut2d:"charts",doughnut3d:"charts",pareto2d:"charts",pareto3d:"charts",mscolumn2d:"charts",mscolumn3d:"charts",msline:"charts",msarea:"charts",msbar2d:"charts",msbar3d:"charts",stackedcolumn2d:"charts",marimekko:"charts",stackedcolumn3d:"charts",stackedarea2d:"charts",stackedcolumn2dline:"charts",stackedcolumn3dline:"charts",stackedbar2d:"charts",stackedbar3d:"charts",msstackedcolumn2d:"charts",mscombi2d:"charts",mscombi3d:"charts",mscolumnline3d:"charts",mscombidy2d:"charts",mscombidy3d:"charts",mscolumn3dlinedy:"charts",stackedcolumn2dlinedy:"charts",stackedarea2dlinedy:"charts",stackedcolumn3dlinedy:"charts",msstackedcolumn2dlinedy:"charts",scatter:"charts",bubble:"charts",ssgrid:"charts",scrollbar2d:"charts",scrollcolumn2d:"charts",scrollcolumn3d:"charts",scrollline2d:"charts",scrollarea2d:"charts",scrollstackedcolumn2d:"charts",scrollstackedbar2d:"charts",scrollcombi2d:"charts",scrollmsstackedcolumn2d:"charts",scrollmsstackedcolumn2dlinedy:"charts",scrollcombidy2d:"charts",spline:"charts",splinearea:"charts",msspline:"charts",mssplinearea:"charts",mssplinedy:"charts",multiaxisline:"powercharts",multilevelpie:"powercharts",sunburst:"powercharts",waterfall2d:"powercharts",msstepline:"powercharts",inversemsline:"powercharts",inversemscolumn2d:"powercharts",inversemsarea:"powercharts",errorbar2d:"powercharts",errorscatter:"powercharts",errorline:"powercharts",logmsline:"powercharts",logmscolumn2d:"powercharts",logstackedcolumn2d:"powercharts",radar:"powercharts",chord:"powercharts",dragnode:"powercharts",candlestick:"powercharts",selectscatter:"powercharts",dragcolumn2d:"powercharts",dragline:"powercharts",dragarea:"powercharts",boxandwhisker2d:"powercharts",kagi:"powercharts",heatmap:"powercharts",sankey:"powercharts",angulargauge:"widgets",bulb:"widgets",cylinder:"widgets",drawingpad:"widgets",funnel:"widgets",hbullet:"widgets",hled:"widgets",hlineargauge:"widgets",vlineargauge:"widgets",pyramid:"widgets",realtimearea:"widgets",realtimecolumn:"widgets",realtimeline:"widgets",realtimelinedy:"widgets",realtimestackedarea:"widgets",realtimestackedcolumn:"widgets",sparkcolumn:"widgets",sparkline:"widgets",sparkwinloss:"widgets",thermometer:"widgets",vbullet:"widgets",vled:"widgets",zoomline:"zoomline",zoomlinedy:"zoomline",gantt:"gantt",treemap:"treemap",zoomscatter:"zoomscatter",overlappedbar2d:"overlappedbar2d",overlappedcolumn2d:"overlappedcolumn2d",msstackedcolumn2dsplinedy:"msstackedcolumn2dsplinedy",timeseries:"timeseries"}},function(e,t,r){"use strict";t.__esModule=!0,t["default"]=void 0;var n=r(184),a=12e4,i="utf-8",o={};var s=function(e){var t=e;if(!o[t]){var r=document.getElementsByTagName("head")[0],s=document.createElement("script"),l=setTimeout((function(){s.onerror({type:"timeout",target:s})}),a);s.charset=i,s.timeout=a,o[t]=new Promise((function(e,t){s.onreadystatechange=function(){"loaded"===s.readyState&&s.onload({})},s.onload=function(t){s.onerror=s.onload=null,clearTimeout(l),e(t)},s.onerror=function(e){s.onerror=s.onload=null,clearTimeout(l),t(e)}})),(0,n.isXSSSafe)(t,!1)||(t="function"==typeof window.encodeURIComponent?window.encodeURIComponent(t):window.escape(t)),s.src=t,r.appendChild(s)}return o[t]};t["default"]=s},function(e,t){(function(t){e.exports=t}).call(this,{})}])["default"]}));(window.webpackJsonpFusionCharts=window.webpackJsonpFusionCharts||[]).push([[2],{1015:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(334))["default"];t["default"]=n},1117:function(e,t,a){"use strict";t.__esModule=!0,t.symbolList=void 0;var i,n=(0,a(192).getDep)("redraphael","plugin"),o=Math.cos,r=Math.sin,l=Math.PI;t.symbolList=i,t.symbolList=i={pinModeIcon:function(e,t,a){var i=.5*a,n=e-a,o=e+a,r=e-i,l=e+i,s=e+.5,c=s+1,h=s+1.5,u=t-a,d=t+i,g=t-i,p=t+(a-i);return["M",n,u,"L",r,g,r,p,n,d,e-.5,d,e,t+a+.5,s,d,o,d,l,p,l,g,o,u,h,u,h,g,h,p,c,p,c,g,h,g,h,u,"Z"]},zoomOutIcon:function(e,t,a){var i=e-.2*a,l=t-.2*a,s=.8*a,c=n.rad(43),h=n.rad(48),u=i+s*o(c),d=l+s*r(c),g=i+s*o(h),p=l+s*r(h),f=a,m=n.rad(45);return["M",u,d,"A",s,s,0,1,0,g,p,"Z","M",u+1,d+1,"L",u+f*o(m),d+f*r(m),g+f*o(m),p+f*r(m),g+1,p+1,"Z","M",i-2,l,"L",i+2,l,"Z"]},resetIcon:function(e,t,a){var i=a,n=e-i,s=t,c=(l/2+l)/2,h=e+i*o(c),u=t+i*r(c),d=2*i/3;return["M",n,s,"A",i,i,0,1,1,h,u,"L",h+d,u-1,h+2,u+d-.5,h,u]},zoomInIcon:function(e,t,a){var i=e-.2*a,l=t-.2*a,s=.8*a,c=n.rad(43),h=n.rad(48),u=i+s*o(c),d=l+s*r(c),g=i+s*o(h),p=l+s*r(h),f=a,m=n.rad(45);return["M",u,d,"A",s,s,0,1,0,g,p,"Z","M",u+1,d+1,"L",u+f*o(m),d+f*r(m),g+f*o(m)-1,p+f*r(m)-1,g+1,p+1,"Z","M",i-2,l,"L",i+2,l,"Z","M",i,l-2,"L",i,l+2,"Z"]},zoomModeIcon:function(e,t,a){var i=[],l=e-.2*a,s=t-.2*a,c=.8*a,h=n.rad(43),u=n.rad(48),d=l+c*o(h),g=s+c*r(h),p=l+c*o(u),f=s+c*r(u),m=a,v=n.rad(45),b=d+m*o(v),x=g+m*r(v),y=p+m*o(v)-1,C=f+m*r(v)-1;return i=i.concat(["M",d,g,"A",c,c,0,1,0,p,f,"Z","M",d+1,g+1,"L",b,x,y,C,y+1,C-1,y+1.5,C+1.5,y-1,C+1,y,C,p+1,f+1,"Z","M",l-2,s,"L",l+2,s,"Z","M",l,s-2,"L",l,s+2,"Z"])},panModeIcon:function(e,t,a){var i,n=a;return[].concat(["M",(i=e)-(n*=2.5)/16,t-n/8,"L",i+n/16,t-n/8,"L",i+n/16,t-n/3.2,"L",i+6*n/32,t-10*n/32,"L",i,t-n/2,"L",i-6*n/32,t-10*n/32,"L",i-n/16,t-n/3.2,"Z","M",i+4*n/32,t-2*n/32,"L",i+10*n/32,t-2*n/32,"L",i+10*n/32,t-6*n/32,"L",i+16*n/32,t,"L",i+10*n/32,t+6*n/32,"L",i+10*n/32,t+2*n/32,"L",i+4*n/32,t+2*n/32,"Z","M",i+2*n/32,t+5*n/32,"L",i+2*n/32,t+10*n/32,"L",i+6*n/32,t+10*n/32,"L",i,t+16*n/32,"L",i-6*n/32,t+10*n/32,"L",i-2*n/32,t+10*n/32,"L",i-2*n/32,t+5*n/32,"Z","M",i-4*n/32,t-2*n/32,"L",i-10*n/32,t-2*n/32,"L",i-10*n/32,t-6*n/32,"L",i-16*n/32,t,"L",i-10*n/32,t+6*n/32,"L",i-10*n/32,t+2*n/32,"L",i-4*n/32,t+2*n/32,"Z"])}}},1158:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(566)),r=a(184),l=function(e){function t(){return e.apply(this,arguments)||this}(0,n["default"])(t,e);var a=t.prototype;return a.getType=function(){return"group"},a.getName=function(){return"columnOverlappedGroup"},a.setColumnPosition=function(){var e,t=this.getFromEnv("chart-attrib"),a=this.getFromEnv("xAxis"),i=this.getFromEnv("chart"),n=this.getFromEnv("numOfColumns"),o=Math.max((0,r.pluckNumber)(t.plotspacepercent),0),l=Math.max((0,r.pluckNumber)(o,20)%100,0),s=l/200,c=a.getPixel(0),h=a.getPixel(1),u=i.isBar?i.config.maxBarHeight:i.config.maxColWidth,d=Math.abs(h-c),g=!0,p=0,f=0;this.addToEnv("groupMaxWidth",d),this._mapChildren((function(e){e.getState("removed")||!1===e.getState("visible")||f++})),this.addToEnv("numOfColumns",f),this.addToEnv("numColDiff",(0,r.pluckNumber)(n-f,0)),void 0===(e=this.getFromEnv("plotWidth"))&&(e=(1-.01*o)*d||Math.min(d*(1-2*s),u*(f||1))),this._mapChildren((function(t){t.getState("removed")||!1===t.getState("visible")||(t.addToEnv("plotWidth",e-e/f*p),p++)})),h-NaN-(c-NaN+void 0)<4&&(g=!1),0===l&&(g=!0),this.addToEnv("isCrisp",g)},t}(o["default"]);t["default"]=l},1168:function(e,t,a){"use strict";(function(e){/*! +* The buffer module from node.js, for the browser. +* +* @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org> +* @license MIT +*/var i=a(1169),n=a(1170),o=a(1171);function r(){return s.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function l(e,t){if(r()<t)throw new RangeError("Invalid typed array length");return s.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=s.prototype:(null===e&&(e=new s(t)),e.length=t),e}function s(e,t,a){if(!(s.TYPED_ARRAY_SUPPORT||this instanceof s))return new s(e,t,a);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return u(this,e)}return c(this,e,t,a)}function c(e,t,a,i){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,a,i){if(t.byteLength,a<0||t.byteLength<a)throw new RangeError("'offset' is out of bounds");if(t.byteLength<a+(i||0))throw new RangeError("'length' is out of bounds");t=a===undefined&&i===undefined?new Uint8Array(t):i===undefined?new Uint8Array(t,a):new Uint8Array(t,a,i);s.TYPED_ARRAY_SUPPORT?(e=t).__proto__=s.prototype:e=d(e,t);return e}(e,t,a,i):"string"==typeof t?function(e,t,a){"string"==typeof a&&""!==a||(a="utf8");if(!s.isEncoding(a))throw new TypeError('"encoding" must be a valid string encoding');var i=0|p(t,a),n=(e=l(e,i)).write(t,a);n!==i&&(e=e.slice(0,n));return e}(e,t,a):function(e,t){if(s.isBuffer(t)){var a=0|g(t.length);return 0===(e=l(e,a)).length?e:(t.copy(e,0,0,a),e)}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(i=t.length)!=i?l(e,0):d(e,t);if("Buffer"===t.type&&o(t.data))return d(e,t.data)}var i;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function h(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function u(e,t){if(h(t),e=l(e,t<0?0:0|g(t)),!s.TYPED_ARRAY_SUPPORT)for(var a=0;a<t;++a)e[a]=0;return e}function d(e,t){var a=t.length<0?0:0|g(t.length);e=l(e,a);for(var i=0;i<a;i+=1)e[i]=255&t[i];return e}function g(e){if(e>=r())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r().toString(16)+" bytes");return 0|e}function p(e,t){if(s.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var a=e.length;if(0===a)return 0;for(var i=!1;;)switch(t){case"ascii":case"latin1":case"binary":return a;case"utf8":case"utf-8":case undefined:return H(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*a;case"hex":return a>>>1;case"base64":return z(e).length;default:if(i)return H(e).length;t=(""+t).toLowerCase(),i=!0}}function f(e,t,a){var i=!1;if((t===undefined||t<0)&&(t=0),t>this.length)return"";if((a===undefined||a>this.length)&&(a=this.length),a<=0)return"";if((a>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return _(this,t,a);case"utf8":case"utf-8":return A(this,t,a);case"ascii":return F(this,t,a);case"latin1":case"binary":return E(this,t,a);case"base64":return L(this,t,a);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,t,a);default:if(i)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),i=!0}}function m(e,t,a){var i=e[t];e[t]=e[a],e[a]=i}function v(e,t,a,i,n){if(0===e.length)return-1;if("string"==typeof a?(i=a,a=0):a>2147483647?a=2147483647:a<-2147483648&&(a=-2147483648),a=+a,isNaN(a)&&(a=n?0:e.length-1),a<0&&(a=e.length+a),a>=e.length){if(n)return-1;a=e.length-1}else if(a<0){if(!n)return-1;a=0}if("string"==typeof t&&(t=s.from(t,i)),s.isBuffer(t))return 0===t.length?-1:b(e,t,a,i,n);if("number"==typeof t)return t&=255,s.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?n?Uint8Array.prototype.indexOf.call(e,t,a):Uint8Array.prototype.lastIndexOf.call(e,t,a):b(e,[t],a,i,n);throw new TypeError("val must be string, number or Buffer")}function b(e,t,a,i,n){var o,r=1,l=e.length,s=t.length;if(i!==undefined&&("ucs2"===(i=String(i).toLowerCase())||"ucs-2"===i||"utf16le"===i||"utf-16le"===i)){if(e.length<2||t.length<2)return-1;r=2,l/=2,s/=2,a/=2}function c(e,t){return 1===r?e[t]:e.readUInt16BE(t*r)}if(n){var h=-1;for(o=a;o<l;o++)if(c(e,o)===c(t,-1===h?0:o-h)){if(-1===h&&(h=o),o-h+1===s)return h*r}else-1!==h&&(o-=o-h),h=-1}else for(a+s>l&&(a=l-s),o=a;o>=0;o--){for(var u=!0,d=0;d<s;d++)if(c(e,o+d)!==c(t,d)){u=!1;break}if(u)return o}return-1}function x(e,t,a,i){a=Number(a)||0;var n=e.length-a;i?(i=Number(i))>n&&(i=n):i=n;var o=t.length;if(o%2!=0)throw new TypeError("Invalid hex string");i>o/2&&(i=o/2);for(var r=0;r<i;++r){var l=parseInt(t.substr(2*r,2),16);if(isNaN(l))return r;e[a+r]=l}return r}function y(e,t,a,i){return W(H(t,e.length-a),e,a,i)}function C(e,t,a,i){return W(function(e){for(var t=[],a=0;a<e.length;++a)t.push(255&e.charCodeAt(a));return t}(t),e,a,i)}function k(e,t,a,i){return C(e,t,a,i)}function S(e,t,a,i){return W(z(t),e,a,i)}function w(e,t,a,i){return W(function(e,t){for(var a,i,n,o=[],r=0;r<e.length&&!((t-=2)<0);++r)a=e.charCodeAt(r),i=a>>8,n=a%256,o.push(n),o.push(i);return o}(t,e.length-a),e,a,i)}function L(e,t,a){return 0===t&&a===e.length?i.fromByteArray(e):i.fromByteArray(e.slice(t,a))}function A(e,t,a){a=Math.min(e.length,a);for(var i=[],n=t;n<a;){var o,r,l,s,c=e[n],h=null,u=c>239?4:c>223?3:c>191?2:1;if(n+u<=a)switch(u){case 1:c<128&&(h=c);break;case 2:128==(192&(o=e[n+1]))&&(s=(31&c)<<6|63&o)>127&&(h=s);break;case 3:o=e[n+1],r=e[n+2],128==(192&o)&&128==(192&r)&&(s=(15&c)<<12|(63&o)<<6|63&r)>2047&&(s<55296||s>57343)&&(h=s);break;case 4:o=e[n+1],r=e[n+2],l=e[n+3],128==(192&o)&&128==(192&r)&&128==(192&l)&&(s=(15&c)<<18|(63&o)<<12|(63&r)<<6|63&l)>65535&&s<1114112&&(h=s)}null===h?(h=65533,u=1):h>65535&&(h-=65536,i.push(h>>>10&1023|55296),h=56320|1023&h),i.push(h),n+=u}return function(e){var t=e.length;if(t<=N)return String.fromCharCode.apply(String,e);var a="",i=0;for(;i<t;)a+=String.fromCharCode.apply(String,e.slice(i,i+=N));return a}(i)}t.Buffer=s,t.SlowBuffer=function(e){+e!=e&&(e=0);return s.alloc(+e)},t.INSPECT_MAX_BYTES=50,s.TYPED_ARRAY_SUPPORT=e.TYPED_ARRAY_SUPPORT!==undefined?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(t){return!1}}(),t.kMaxLength=r(),s.poolSize=8192,s._augment=function(e){return e.__proto__=s.prototype,e},s.from=function(e,t,a){return c(null,e,t,a)},s.TYPED_ARRAY_SUPPORT&&(s.prototype.__proto__=Uint8Array.prototype,s.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&s[Symbol.species]===s&&Object.defineProperty(s,Symbol.species,{value:null,configurable:!0})),s.alloc=function(e,t,a){return function(e,t,a,i){return h(t),t<=0?l(e,t):a!==undefined?"string"==typeof i?l(e,t).fill(a,i):l(e,t).fill(a):l(e,t)}(null,e,t,a)},s.allocUnsafe=function(e){return u(null,e)},s.allocUnsafeSlow=function(e){return u(null,e)},s.isBuffer=function(e){return!(null==e||!e._isBuffer)},s.compare=function(e,t){if(!s.isBuffer(e)||!s.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var a=e.length,i=t.length,n=0,o=Math.min(a,i);n<o;++n)if(e[n]!==t[n]){a=e[n],i=t[n];break}return a<i?-1:i<a?1:0},s.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},s.concat=function(e,t){if(!o(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return s.alloc(0);var a;if(t===undefined)for(t=0,a=0;a<e.length;++a)t+=e[a].length;var i=s.allocUnsafe(t),n=0;for(a=0;a<e.length;++a){var r=e[a];if(!s.isBuffer(r))throw new TypeError('"list" argument must be an Array of Buffers');r.copy(i,n),n+=r.length}return i},s.byteLength=p,s.prototype._isBuffer=!0,s.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)m(this,t,t+1);return this},s.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)m(this,t,t+3),m(this,t+1,t+2);return this},s.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)m(this,t,t+7),m(this,t+1,t+6),m(this,t+2,t+5),m(this,t+3,t+4);return this},s.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?A(this,0,e):f.apply(this,arguments)},s.prototype.equals=function(e){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===s.compare(this,e)},s.prototype.inspect=function(){var e="",a=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,a).match(/.{2}/g).join(" "),this.length>a&&(e+=" ... ")),"<Buffer "+e+">"},s.prototype.compare=function(e,t,a,i,n){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(t===undefined&&(t=0),a===undefined&&(a=e?e.length:0),i===undefined&&(i=0),n===undefined&&(n=this.length),t<0||a>e.length||i<0||n>this.length)throw new RangeError("out of range index");if(i>=n&&t>=a)return 0;if(i>=n)return-1;if(t>=a)return 1;if(this===e)return 0;for(var o=(n>>>=0)-(i>>>=0),r=(a>>>=0)-(t>>>=0),l=Math.min(o,r),c=this.slice(i,n),h=e.slice(t,a),u=0;u<l;++u)if(c[u]!==h[u]){o=c[u],r=h[u];break}return o<r?-1:r<o?1:0},s.prototype.includes=function(e,t,a){return-1!==this.indexOf(e,t,a)},s.prototype.indexOf=function(e,t,a){return v(this,e,t,a,!0)},s.prototype.lastIndexOf=function(e,t,a){return v(this,e,t,a,!1)},s.prototype.write=function(e,t,a,i){if(t===undefined)i="utf8",a=this.length,t=0;else if(a===undefined&&"string"==typeof t)i=t,a=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(a)?(a|=0,i===undefined&&(i="utf8")):(i=a,a=undefined)}var n=this.length-t;if((a===undefined||a>n)&&(a=n),e.length>0&&(a<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var o=!1;;)switch(i){case"hex":return x(this,e,t,a);case"utf8":case"utf-8":return y(this,e,t,a);case"ascii":return C(this,e,t,a);case"latin1":case"binary":return k(this,e,t,a);case"base64":return S(this,e,t,a);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return w(this,e,t,a);default:if(o)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),o=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var N=4096;function F(e,t,a){var i="";a=Math.min(e.length,a);for(var n=t;n<a;++n)i+=String.fromCharCode(127&e[n]);return i}function E(e,t,a){var i="";a=Math.min(e.length,a);for(var n=t;n<a;++n)i+=String.fromCharCode(e[n]);return i}function _(e,t,a){var i=e.length;(!t||t<0)&&(t=0),(!a||a<0||a>i)&&(a=i);for(var n="",o=t;o<a;++o)n+=G(e[o]);return n}function T(e,t,a){for(var i=e.slice(t,a),n="",o=0;o<i.length;o+=2)n+=String.fromCharCode(i[o]+256*i[o+1]);return n}function P(e,t,a){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>a)throw new RangeError("Trying to access beyond buffer length")}function D(e,t,a,i,n,o){if(!s.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>n||t<o)throw new RangeError('"value" argument is out of bounds');if(a+i>e.length)throw new RangeError("Index out of range")}function I(e,t,a,i){t<0&&(t=65535+t+1);for(var n=0,o=Math.min(e.length-a,2);n<o;++n)e[a+n]=(t&255<<8*(i?n:1-n))>>>8*(i?n:1-n)}function M(e,t,a,i){t<0&&(t=4294967295+t+1);for(var n=0,o=Math.min(e.length-a,4);n<o;++n)e[a+n]=t>>>8*(i?n:3-n)&255}function O(e,t,a,i,n,o){if(a+i>e.length)throw new RangeError("Index out of range");if(a<0)throw new RangeError("Index out of range")}function R(e,t,a,i,o){return o||O(e,0,a,4),n.write(e,t,a,i,23,4),a+4}function V(e,t,a,i,o){return o||O(e,0,a,8),n.write(e,t,a,i,52,8),a+8}s.prototype.slice=function(e,t){var a,i=this.length;if((e=~~e)<0?(e+=i)<0&&(e=0):e>i&&(e=i),(t=t===undefined?i:~~t)<0?(t+=i)<0&&(t=0):t>i&&(t=i),t<e&&(t=e),s.TYPED_ARRAY_SUPPORT)(a=this.subarray(e,t)).__proto__=s.prototype;else{var n=t-e;a=new s(n,undefined);for(var o=0;o<n;++o)a[o]=this[o+e]}return a},s.prototype.readUIntLE=function(e,t,a){e|=0,t|=0,a||P(e,t,this.length);for(var i=this[e],n=1,o=0;++o<t&&(n*=256);)i+=this[e+o]*n;return i},s.prototype.readUIntBE=function(e,t,a){e|=0,t|=0,a||P(e,t,this.length);for(var i=this[e+--t],n=1;t>0&&(n*=256);)i+=this[e+--t]*n;return i},s.prototype.readUInt8=function(e,t){return t||P(e,1,this.length),this[e]},s.prototype.readUInt16LE=function(e,t){return t||P(e,2,this.length),this[e]|this[e+1]<<8},s.prototype.readUInt16BE=function(e,t){return t||P(e,2,this.length),this[e]<<8|this[e+1]},s.prototype.readUInt32LE=function(e,t){return t||P(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},s.prototype.readUInt32BE=function(e,t){return t||P(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},s.prototype.readIntLE=function(e,t,a){e|=0,t|=0,a||P(e,t,this.length);for(var i=this[e],n=1,o=0;++o<t&&(n*=256);)i+=this[e+o]*n;return i>=(n*=128)&&(i-=Math.pow(2,8*t)),i},s.prototype.readIntBE=function(e,t,a){e|=0,t|=0,a||P(e,t,this.length);for(var i=t,n=1,o=this[e+--i];i>0&&(n*=256);)o+=this[e+--i]*n;return o>=(n*=128)&&(o-=Math.pow(2,8*t)),o},s.prototype.readInt8=function(e,t){return t||P(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},s.prototype.readInt16LE=function(e,t){t||P(e,2,this.length);var a=this[e]|this[e+1]<<8;return 32768&a?4294901760|a:a},s.prototype.readInt16BE=function(e,t){t||P(e,2,this.length);var a=this[e+1]|this[e]<<8;return 32768&a?4294901760|a:a},s.prototype.readInt32LE=function(e,t){return t||P(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},s.prototype.readInt32BE=function(e,t){return t||P(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},s.prototype.readFloatLE=function(e,t){return t||P(e,4,this.length),n.read(this,e,!0,23,4)},s.prototype.readFloatBE=function(e,t){return t||P(e,4,this.length),n.read(this,e,!1,23,4)},s.prototype.readDoubleLE=function(e,t){return t||P(e,8,this.length),n.read(this,e,!0,52,8)},s.prototype.readDoubleBE=function(e,t){return t||P(e,8,this.length),n.read(this,e,!1,52,8)},s.prototype.writeUIntLE=function(e,t,a,i){(e=+e,t|=0,a|=0,i)||D(this,e,t,a,Math.pow(2,8*a)-1,0);var n=1,o=0;for(this[t]=255&e;++o<a&&(n*=256);)this[t+o]=e/n&255;return t+a},s.prototype.writeUIntBE=function(e,t,a,i){(e=+e,t|=0,a|=0,i)||D(this,e,t,a,Math.pow(2,8*a)-1,0);var n=a-1,o=1;for(this[t+n]=255&e;--n>=0&&(o*=256);)this[t+n]=e/o&255;return t+a},s.prototype.writeUInt8=function(e,t,a){return e=+e,t|=0,a||D(this,e,t,1,255,0),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},s.prototype.writeUInt16LE=function(e,t,a){return e=+e,t|=0,a||D(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):I(this,e,t,!0),t+2},s.prototype.writeUInt16BE=function(e,t,a){return e=+e,t|=0,a||D(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):I(this,e,t,!1),t+2},s.prototype.writeUInt32LE=function(e,t,a){return e=+e,t|=0,a||D(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},s.prototype.writeUInt32BE=function(e,t,a){return e=+e,t|=0,a||D(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},s.prototype.writeIntLE=function(e,t,a,i){if(e=+e,t|=0,!i){var n=Math.pow(2,8*a-1);D(this,e,t,a,n-1,-n)}var o=0,r=1,l=0;for(this[t]=255&e;++o<a&&(r*=256);)e<0&&0===l&&0!==this[t+o-1]&&(l=1),this[t+o]=(e/r>>0)-l&255;return t+a},s.prototype.writeIntBE=function(e,t,a,i){if(e=+e,t|=0,!i){var n=Math.pow(2,8*a-1);D(this,e,t,a,n-1,-n)}var o=a-1,r=1,l=0;for(this[t+o]=255&e;--o>=0&&(r*=256);)e<0&&0===l&&0!==this[t+o+1]&&(l=1),this[t+o]=(e/r>>0)-l&255;return t+a},s.prototype.writeInt8=function(e,t,a){return e=+e,t|=0,a||D(this,e,t,1,127,-128),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},s.prototype.writeInt16LE=function(e,t,a){return e=+e,t|=0,a||D(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):I(this,e,t,!0),t+2},s.prototype.writeInt16BE=function(e,t,a){return e=+e,t|=0,a||D(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):I(this,e,t,!1),t+2},s.prototype.writeInt32LE=function(e,t,a){return e=+e,t|=0,a||D(this,e,t,4,2147483647,-2147483648),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},s.prototype.writeInt32BE=function(e,t,a){return e=+e,t|=0,a||D(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},s.prototype.writeFloatLE=function(e,t,a){return R(this,e,t,!0,a)},s.prototype.writeFloatBE=function(e,t,a){return R(this,e,t,!1,a)},s.prototype.writeDoubleLE=function(e,t,a){return V(this,e,t,!0,a)},s.prototype.writeDoubleBE=function(e,t,a){return V(this,e,t,!1,a)},s.prototype.copy=function(e,t,a,i){if(a||(a=0),i||0===i||(i=this.length),t>=e.length&&(t=e.length),t||(t=0),i>0&&i<a&&(i=a),i===a)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(a<0||a>=this.length)throw new RangeError("sourceStart out of bounds");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),e.length-t<i-a&&(i=e.length-t+a);var n,o=i-a;if(this===e&&a<t&&t<i)for(n=o-1;n>=0;--n)e[n+t]=this[n+a];else if(o<1e3||!s.TYPED_ARRAY_SUPPORT)for(n=0;n<o;++n)e[n+t]=this[n+a];else Uint8Array.prototype.set.call(e,this.subarray(a,a+o),t);return o},s.prototype.fill=function(e,t,a,i){if("string"==typeof e){if("string"==typeof t?(i=t,t=0,a=this.length):"string"==typeof a&&(i=a,a=this.length),1===e.length){var n=e.charCodeAt(0);n<256&&(e=n)}if(i!==undefined&&"string"!=typeof i)throw new TypeError("encoding must be a string");if("string"==typeof i&&!s.isEncoding(i))throw new TypeError("Unknown encoding: "+i)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<a)throw new RangeError("Out of range index");if(a<=t)return this;var o;if(t>>>=0,a=a===undefined?this.length:a>>>0,e||(e=0),"number"==typeof e)for(o=t;o<a;++o)this[o]=e;else{var r=s.isBuffer(e)?e:H(new s(e,i).toString()),l=r.length;for(o=0;o<a-t;++o)this[o+t]=r[o%l]}return this};var B=/[^+\/0-9A-Za-z-_]/g;function G(e){return e<16?"0"+e.toString(16):e.toString(16)}function H(e,t){var a;t=t||Infinity;for(var i=e.length,n=null,o=[],r=0;r<i;++r){if((a=e.charCodeAt(r))>55295&&a<57344){if(!n){if(a>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(r+1===i){(t-=3)>-1&&o.push(239,191,189);continue}n=a;continue}if(a<56320){(t-=3)>-1&&o.push(239,191,189),n=a;continue}a=65536+(n-55296<<10|a-56320)}else n&&(t-=3)>-1&&o.push(239,191,189);if(n=null,a<128){if((t-=1)<0)break;o.push(a)}else if(a<2048){if((t-=2)<0)break;o.push(a>>6|192,63&a|128)}else if(a<65536){if((t-=3)<0)break;o.push(a>>12|224,a>>6&63|128,63&a|128)}else{if(!(a<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(a>>18|240,a>>12&63|128,a>>6&63|128,63&a|128)}}return o}function z(e){return i.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(B,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function W(e,t,a,i){for(var n=0;n<i&&!(n+a>=t.length||n>=e.length);++n)t[n+a]=e[n];return n}}).call(this,a(6))},1169:function(e,t,a){"use strict";t.byteLength=function(e){var t=c(e),a=t[0],i=t[1];return 3*(a+i)/4-i},t.toByteArray=function(e){var t,a,i=c(e),r=i[0],l=i[1],s=new o(function(e,t,a){return 3*(t+a)/4-a}(0,r,l)),h=0,u=l>0?r-4:r;for(a=0;a<u;a+=4)t=n[e.charCodeAt(a)]<<18|n[e.charCodeAt(a+1)]<<12|n[e.charCodeAt(a+2)]<<6|n[e.charCodeAt(a+3)],s[h++]=t>>16&255,s[h++]=t>>8&255,s[h++]=255&t;2===l&&(t=n[e.charCodeAt(a)]<<2|n[e.charCodeAt(a+1)]>>4,s[h++]=255&t);1===l&&(t=n[e.charCodeAt(a)]<<10|n[e.charCodeAt(a+1)]<<4|n[e.charCodeAt(a+2)]>>2,s[h++]=t>>8&255,s[h++]=255&t);return s},t.fromByteArray=function(e){for(var t,a=e.length,n=a%3,o=[],r=0,l=a-n;r<l;r+=16383)o.push(h(e,r,r+16383>l?l:r+16383));1===n?(t=e[a-1],o.push(i[t>>2]+i[t<<4&63]+"==")):2===n&&(t=(e[a-2]<<8)+e[a-1],o.push(i[t>>10]+i[t>>4&63]+i[t<<2&63]+"="));return o.join("")};for(var i=[],n=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l=0,s=r.length;l<s;++l)i[l]=r[l],n[r.charCodeAt(l)]=l;function c(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var a=e.indexOf("=");return-1===a&&(a=t),[a,a===t?0:4-a%4]}function h(e,t,a){for(var n,o,r=[],l=t;l<a;l+=3)n=(e[l]<<16&16711680)+(e[l+1]<<8&65280)+(255&e[l+2]),r.push(i[(o=n)>>18&63]+i[o>>12&63]+i[o>>6&63]+i[63&o]);return r.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},1170:function(e,t){t.read=function(e,t,a,i,n){var o,r,l=8*n-i-1,s=(1<<l)-1,c=s>>1,h=-7,u=a?n-1:0,d=a?-1:1,g=e[t+u];for(u+=d,o=g&(1<<-h)-1,g>>=-h,h+=l;h>0;o=256*o+e[t+u],u+=d,h-=8);for(r=o&(1<<-h)-1,o>>=-h,h+=i;h>0;r=256*r+e[t+u],u+=d,h-=8);if(0===o)o=1-c;else{if(o===s)return r?NaN:(g?-1:1)*Infinity;r+=Math.pow(2,i),o-=c}return(g?-1:1)*r*Math.pow(2,o-i)},t.write=function(e,t,a,i,n,o){var r,l,s,c=8*o-n-1,h=(1<<c)-1,u=h>>1,d=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,g=i?0:o-1,p=i?1:-1,f=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===Infinity?(l=isNaN(t)?1:0,r=h):(r=Math.floor(Math.log(t)/Math.LN2),t*(s=Math.pow(2,-r))<1&&(r--,s*=2),(t+=r+u>=1?d/s:d*Math.pow(2,1-u))*s>=2&&(r++,s/=2),r+u>=h?(l=0,r=h):r+u>=1?(l=(t*s-1)*Math.pow(2,n),r+=u):(l=t*Math.pow(2,u-1)*Math.pow(2,n),r=0));n>=8;e[a+g]=255&l,g+=p,l/=256,n-=8);for(r=r<<n|l,c+=n;c>0;e[a+g]=255&r,g+=p,r/=256,c-=8);e[a+g-p]|=128*f}},1171:function(e,t){var a={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==a.call(e)}},404:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(405)),r=i(a(480)),l=function(e){function t(){var t;return(t=e.call(this)||this).registerFactory("dataset",r["default"],["vCanvas"]),t}(0,n["default"])(t,e),t.getName=function(){return"SSCartesian"};var a=t.prototype;return a.getName=function(){return"SSCartesian"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;t.hasLegend=!1,t.linethickness=4},a._checkInvalidSpecificData=function(){var e=this.getFromEnv("dataSource").data;if(!e||!e.length)return!0},a._setCategories=function(){var e=this.getFromEnv("dataSource"),t=this.getChildren("xAxis"),a=e.dataset,i=e.data||a&&a[0].data;t[0].setTickValues(i)},t}(o["default"]);t["default"]=l},405:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(406)),r=a(184),l=i(a(421)),s=i(a(472)),c=i(a(475)),h=i(a(477)),u=i(a(479)),d=Math.max,g=Math.min,p=function(e,t){return e<t&&t>0?t-e:0},f=function(e){function t(){var t;return(t=e.call(this)||this).registerFactory("axis",l["default"],["canvas"]),t.registerFactory("canvas",s["default"]),t.registerFactory("vCanvas",c["default"],["axis"]),t.registerFactory("mouseTracker",h["default"],["canvas"]),t}(0,n["default"])(t,e),t.getName=function(){return"Cartesian"};var a=t.prototype;return a.getName=function(){return"Cartesian"},a.getType=function(){return"chartAPI"},a._allocateXAxisLabelSpace=function(e){var t,a=this.config,i=e.getAxisEndLabelDisplaySpace(),n=i.left,o=i.right,r=i.top,l=i.bottom,s=a.availableWidth,c=a.availableHeight,h=a.canvasLeft,u=a.canvasRight,d=a.canvasTop,g=a.canvasBottom,f=a.width,m=a.height;r+l>c&&(r=c*r/(t=r+l),l=c*l/t),n+o>s&&(n=s*n/(t=n+o),o=s*o/t),n=p(h,n),o=p(f-u,o),r=p(d,r),l=p(m-g,l),this._allocateSpace({left:n,right:o,top:r,bottom:l})},a._setCategories=function(){var e=this.getFromEnv("dataSource"),t=this.getChildren("xAxis"),a=e.categories&&e.categories.length&&e.categories[0].category;t&&t[0].setTickValues(a)},a._feedAxesRawData=function(){var e,t,a=this.config,i=this.getFromEnv("dataSource");return e=this.getSpecificxAxisConf(),t=this.getSpecificyAxisConf(),e.vtrendlines=(0,r.extend2)([],i.vtrendlines),t.trendlines=(0,r.extend2)([],i.trendlines),a.isstacked&&(t.isPercent=(0,r.pluckNumber)(a.stack100percent,0)),{yAxisConf:[t],xAxisConf:[e]}},a.getSpecificxAxisConf=function(){var e=this.getFromEnv("chart-attrib"),t=this.config,a=this.config.is3D,i=this.getBasexAxisConf();return i.isReverse=t.reverseXAxis,i.axisLineColor=(0,r.pluck)(e.xaxislinecolor,e.axislinecolor,"#000000"),i.showAlternateGridColor=(0,r.pluckNumber)(e.showalternatevgridcolor,0),i.numDivLines=(0,r.pluckNumber)(e.numvdivlines,t.numVDivLines),i.axisName=e.xaxisname,i.setAdaptiveMin=(0,r.pluckNumber)(e.setadaptivexmin,t.setadaptivexmin,t.setadaptivexmin),i.showLimits=(0,r.pluckNumber)(e.showvlimits,t.showvlimits),i.showDivLineValues=(0,r.pluckNumber)(e.showvdivlinevalues,e.showvdivlinevalues,t.showvdivlinevalues),i.zeroPlaneThickness=(0,r.pluckNumber)(e.vzeroplanethickness,e.vdivlinethickness,t.zeroplanethickness,2),i.zeroPlaneAlpha=(0,r.pluckNumber)(e.vzeroplanealpha,e.vdivlinealpha,t.zeroplanealpha),i.showZeroPlaneValue=(0,r.pluckNumber)(e.showvzeroplanevalue,t.showzeroplanevalue),i.showAxisLine=a?0:(0,r.pluckNumber)(e.showxaxisline,e.showaxislines,e.drawAxisLines,t.showxaxisline,0),i.maxLabelHeight=e.maxlabelheight,i.showZeroPlane=(0,r.pluckNumber)(e.showvzeroplane,t.showzeroplane),i},a.getSpecificyAxisConf=function(){var e=this.getFromEnv("chart-attrib"),t=this.config,a=this.config.is3D,i=a?r.chartPaletteStr.chart3D:r.chartPaletteStr.chart2D,n=t.isInverse,o=this.getFromEnv("color-manager"),l=(0,r.pluckNumber)(e.showzeroplane,t.showzeroplane,1),s=(0,r.pluckNumber)(e.showzeroplanevalue,t.showzeroplanevalue);return l||void 0!==s||(s=0),{isVertical:!0,isReverse:!n,isOpposit:(0,u["default"])(e.yaxisposition,"right"),outCanfontFamily:(0,r.pluck)(e.outcnvbasefont,e.basefont,"Verdana,sans"),outCanfontSize:(0,r.pluckFontSize)(e.outcnvbasefontsize,e.basefontsize,10),outCancolor:(0,r.pluck)(e.outcnvbasefontcolor,e.basefontcolor,o.getColor(i.baseFontColor)).replace(/^#? ([a-f0-9]+)/gi,"#$1"),axisBreaks:e.yaxisbreaks,axisNamePadding:e.yaxisnamepadding,axisValuePadding:e.yaxisvaluespadding,axisNameFont:e.yaxisnamefont,axisNameFontSize:e.yaxisnamefontsize,axisNameFontColor:e.yaxisnamefontcolor,axisNameFontBold:e.yaxisnamefontbold,axisNameFontItalic:e.yaxisnamefontitalic,axisNameBgColor:e.yaxisnamebgcolor,axisNameBorderColor:e.yaxisnamebordercolor,axisNameAlpha:e.yaxisnamealpha,axisNameFontAlpha:e.yaxisnamefontalpha,axisNameBgAlpha:e.yaxisnamebgalpha,axisNameBorderAlpha:e.yaxisnameborderalpha,axisNameBorderPadding:e.yaxisnameborderpadding,axisNameBorderRadius:e.yaxisnameborderradius,axisNameBorderThickness:e.yaxisnameborderthickness,axisNameBorderDashed:e.yaxisnameborderdashed,axisNameBorderDashLen:e.yaxisnameborderdashlen,axisNameBorderDashGap:e.yaxisnameborderdashgap,axisNameWidth:e.yaxisnamewidth,useEllipsesWhenOverflow:e.useellipseswhenoverflow,rotateAxisName:(0,r.pluckNumber)(e.rotateyaxisname,1),axisName:e.yaxisname,divLineColor:(0,r.pluck)(e.divlinecolor,o.getColor(i.divLineColor)),divLineAlpha:(0,r.pluck)(e.divlinealpha,a?o.getColor("divLineAlpha3D"):o.getColor("divLineAlpha")),divLineThickness:(0,r.pluckNumber)(e.divlinethickness,1),divLineIsDashed:Boolean((0,r.pluckNumber)(e.divlinedashed,e.divlineisdashed,0)),divLineDashLen:(0,r.pluckNumber)(e.divlinedashlen,4),divLineDashGap:(0,r.pluckNumber)(e.divlinedashgap,2),showAlternateGridColor:(0,r.pluckNumber)(e.showalternatehgridcolor,1),alternateGridColor:(0,r.pluck)(e.alternatehgridcolor,o.getColor("altHGridColor")),alternateGridAlpha:(0,r.pluck)(e.alternatehgridalpha,o.getColor("altHGridAlpha")),numDivLines:(0,r.pluckNumber)(e.numdivlines,t.numDivLines),axisMinValue:t.yRangeMin||e.yaxisminvalue,axisMaxValue:t.yRangeMax||e.yaxismaxvalue,setAdaptiveMin:(0,r.pluckNumber)(e.setadaptivesymin,e.setadaptiveymin,t.setAdaptiveMin),adjustDiv:e.adjustdiv,labelStep:e.yaxisvaluesstep,showAxisValues:(0,r.pluckNumber)(e.showyaxisvalues,e.showyaxisvalue,t.showyaxisvalues),showLimits:(0,r.pluckNumber)(e.showyaxislimits,e.showlimits,this.showLimits),showDivLineValues:(0,r.pluckNumber)(e.showdivlinevalues,e.showdivlinevalue,t.showdivlinevalues),showZeroPlane:l,zeroPlaneColor:e.zeroplanecolor,zeroPlaneThickness:(0,r.pluckNumber)(e.zeroplanethickness,e.divlinethickness,t.zeroplanethickness,2),zeroPlaneAlpha:(0,r.pluckNumber)(e.zeroplanealpha,e.divlinealpha,t.zeroplanealpha),showZeroPlaneValue:s,showZeroPlaneOnTop:t.showzeroplaneontop,trendlineColor:e.trendlinecolor,trendlineToolText:e.trendlinetooltext,trendlineThickness:e.trendlinethickness,trendlineAlpha:e.trendlinealpha,showTrendlinesOnTop:e.showtrendlinesontop,showAxisLine:a?0:(0,r.pluckNumber)(e.showyaxisline,e.showaxislines,e.drawAxisLines,t.showyaxisline,0),axisLineThickness:(0,r.pluckNumber)(e.yaxislinethickness,e.axislinethickness,1),axisLineAlpha:(0,r.pluckNumber)(e.yaxislinealpha,e.axislinealpha,100),axisLineColor:(0,r.pluck)(e.yaxislinecolor,e.axislinecolor,"#000000"),forceTrendBelow:!!t.is3D,labelFont:e.yaxisvaluefont,labelFontSize:e.yaxisvaluefontsize,labelFontColor:e.yaxisvaluefontcolor,labelAlpha:e.yaxisvaluealpha,labelFontBold:e.yaxisvaluefontbold,labelFontItalic:e.yaxisvaluefontitalic,labelBdrColor:e.yaxisvaluebordercolor,labelBdrAlpha:e.yaxisvalueborderalpha,labelBgAlpha:e.yaxisvaluebgalpha,labelLink:e.yaxisvaluelink,labelBgColor:e.yaxisvaluebgcolor,labelBdrThickness:e.yaxisvalueborderthickness,labelBdrPadding:e.yaxisvalueborderpadding,labelBdrRadius:e.yaxisvalueborderradius,labelBdrDashed:e.yaxisvalueborderdashed,labelBdrDashLen:e.yaxisvalueborderdashlen,labelBdrDashGap:e.yaxisvalueborderdashgap}},a.getBasexAxisConf=function(){var e=this.getFromEnv("chart-attrib"),t=this.config.is3D,a=t?r.chartPaletteStr.chart3D:r.chartPaletteStr.chart2D,i=this.getFromEnv("color-manager");return{isVertical:!1,isOpposit:(0,u["default"])(e.xaxisposition,"top"),outCanfontFamily:(0,r.pluck)(e.outcnvbasefont,e.basefont,"Verdana,sans"),outCanfontSize:(0,r.pluckFontSize)(e.outcnvbasefontsize,e.basefontsize,10),outCancolor:(0,r.pluck)(e.outcnvbasefontcolor,e.basefontcolor,i.getColor(a.baseFontColor)).replace(/^#? ([a-f0-9]+)/gi,"#$1"),axisNamePadding:e.xaxisnamepadding,axisValuePadding:e.labelpadding,axisNameFont:e.xaxisnamefont,axisNameFontSize:e.xaxisnamefontsize,axisNameFontColor:e.xaxisnamefontcolor,axisNameFontBold:e.xaxisnamefontbold,axisNameFontItalic:e.xaxisnamefontitalic,axisNameBgColor:e.xaxisnamebgcolor,axisNameBorderColor:e.xaxisnamebordercolor,axisNameAlpha:e.xaxisnamealpha,axisNameFontAlpha:e.xaxisnamefontalpha,axisNameBgAlpha:e.xaxisnamebgalpha,axisNameBorderAlpha:e.xaxisnameborderalpha,axisNameBorderPadding:e.xaxisnameborderpadding,axisNameBorderRadius:e.xaxisnameborderradius,axisNameBorderThickness:e.xaxisnameborderthickness,axisNameBorderDashed:e.xaxisnameborderdashed,axisNameBorderDashLen:e.xaxisnameborderdashlen,axisNameBorderDashGap:e.xaxisnameborderdashgap,useEllipsesWhenOverflow:e.useellipseswhenoverflow,divLineColor:(0,r.pluck)(e.vdivlinecolor,e.divlinecolor,i.getColor(a.divLineColor)),divLineAlpha:(0,r.pluck)(e.vdivlinealpha,e.divlinealpha,t?i.getColor("divLineAlpha3D"):i.getColor("divLineAlpha")),divLineThickness:(0,r.pluckNumber)(e.vdivlinethickness,e.divlinethickness,1),divLineIsDashed:Boolean((0,r.pluckNumber)(e.vdivlinedashed,e.vdivlineisdashed,e.divlinedashed,e.divlineisdashed,0)),divLineDashLen:(0,r.pluckNumber)(e.vdivlinedashlen,e.divlinedashlen,4),divLineDashGap:(0,r.pluckNumber)(e.vdivlinedashgap,e.divlinedashgap,2),alternateGridColor:(0,r.pluck)(e.alternatevgridcolor,i.getColor("altVGridColor")),alternateGridAlpha:(0,r.pluck)(e.alternatevgridalpha,i.getColor("altVGridAlpha")),labelFont:e.labelfont,labelFontSize:e.labelfontsize,labelFontColor:e.labelfontcolor,labelAlpha:e.labelalpha,labelFontBold:e.labelfontbold,labelFontItalic:e.labelfontitalic,labelBdrColor:e.labelbordercolor,labelBdrAlpha:e.labelborderalpha,labelLink:e.labellink,labelBgColor:e.labelbgcolor,labelBdrThickness:e.labelborderthickness,labelBdrPadding:e.labelborderpadding,labelBdrRadius:e.labelborderradius,labelBdrDashed:e.labelborderdashed,labelBgAlpha:e.labelbgalpha,labelBdrDashLen:e.labelborderdashlen,labelBdrDashGap:e.labelborderdashgap,axisMinValue:e.xaxisminvalue,axisMaxValue:e.xaxismaxvalue,adjustDiv:e.adjustvdiv,labelDisplay:e.labeldisplay,showLabels:e.showlabels,rotateLabels:e.rotatelabels,slantLabel:(0,r.pluckNumber)(e.slantlabels,e.slantlabel),labelStep:(0,r.pluckNumber)(e.labelstep,e.xaxisvaluesstep),showAxisValues:(0,r.pluckNumber)(e.showxaxisvalues,e.showxaxisvalue),zeroPlaneColor:e.vzeroplanecolor,trendlineColor:e.trendlinecolor,trendlineToolText:e.trendlinetooltext,trendlineThickness:e.trendlinethickness,trendlineAlpha:e.trendlinealpha,showTrendlinesOnTop:e.showtrendlinesontop,axisLineThickness:(0,r.pluckNumber)(e.xaxislinethickness,e.axislinethickness,1),axisLineAlpha:(0,r.pluckNumber)(e.xaxislinealpha,e.axislinealpha,100)}},a.getConfig=function(e){return e?this.config[e]:this.config},a._getSumValueSpace=function(e){var t,a={},i=this.config,n=this.isBar,o=this.getFromEnv("dataSource").chart,l=i.showSum=(0,r.pluckNumber)(o.showsum,i.showSum,0),s=(0,r.pluckNumber)(i.stack100percent),c=i.isstacked,h=0,u=[],d=0;if(this.iterateComponents((function(e){"cartesianStackGroup"!==e.getName()&&"marimekkoStackgroup"!==e.getName()||u.push(e)})),l&&s&&c&&u.length){for(t=u.length-1;t>=0;t--)a=u[t].getMaxSumValueSpace(),n?h=Math.max(h,a.maxWidth):d=Math.max(d,a.maxHeight);d>e&&(d=e),h>e&&(h=e)}return{top:d,right:h}},a.setAxisDimention=function(){var e,t,a=this.getChildren("xAxis")&&this.getChildren("xAxis")[0],i=this.getChildren("yAxis")&&this.getChildren("yAxis")[0],n=this.config,o=n.xDepth||0,l=this.getFromEnv("chart-attrib"),s=(0,r.pluckNumber)(l.canvasleftpadding),c=(0,r.pluckNumber)(l.canvasrightpadding),h=this.getChildren("canvas")&&this.getChildren("canvas")[0].config,u=h&&h.canvasBorderWidth,d=a&&a.isScrollEnabled(),g=(d||n.is3D)&&n.shift||0,p=h.canvasPadding,f=h.canvasLeft,m=f+h.canvasWidth,v=h.canvasPaddingLeft,b=h.canvasPaddingRight,x=h.canvasTop,y=n.sumValueSpace&&n.sumValueSpace.top||0,C=h.canvasPaddingTop;e=null==s?Math.max(v,p):s,t=null==c?Math.max(b,p):c,a&&a.setAxisConfig({canvasPaddingLeft:e,canvasPaddingRight:t}),a&&a.setAxisDimention({x:f+o+e,y:a.config.isOpposit?x-u-(d?g:0)-y:n.canvasBottom+g+u,opposite:a.config.isOpposit?n.canvasBottom+g+u:x-u-g,axisLength:h.canvasWidth-o-e-t}),i&&i.setAxisDimention({x:i.config.isOpposit?m+u:f-u,y:x+C,opposite:i.config.isOpposit?f-u:m+u,axisLength:h.canvasHeight-C-h.canvasPaddingBottom})},a._getTrendLineMinMax=function(e,t){var a,i,n,o,r,l=t,s="v"===e?this.getFromEnv("dataSource").vtrendlines:this.getFromEnv("dataSource").trendlines,c={max:-Infinity,min:Infinity};if(l=l||"p",s)for(i=0,o=s.length;i<o;i+=1)for(n=0,r=s[i].line?s[i].line.length:0;n<r;n+=1)a=s[i].line[n],"s"===l&&"s"!==a.parentyaxis||"s"!==l&&"s"===a.parentyaxis||(c.max=d(a.startvalue||-Infinity,a.endvalue||-Infinity,c.max),c.min=g(a.startvalue||Infinity,a.endvalue||Infinity,c.min));return c},t}(o["default"]);t["default"]=f},406:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(407)),r=a(184),l=function(e){function t(){return e.apply(this,arguments)||this}(0,n["default"])(t,e);var a=t.prototype;return a._spaceManager=function(){var e,t,a,i,n,o,l,s,c,h,u,d,g,p,f=this.config,m=this.getChildren("xAxis")&&this.getChildren("xAxis")[0],v=f.legendposition,b=f.xDepth,x=f.yDepth,y=f.canvasBgDepth,C=f.canvasBaseDepth,k=f.canvasBasePadding,S=this.getChildren("canvas")[0],w=S.config.canvasBorderWidth,L=f.realTimeConfig&&f.realTimeConfig.showRTValue,A=f.borderWidth,N=f.canvasMarginTop,F=f.canvasMarginBottom,E=f.canvasMarginLeft,_=f.canvasMarginRight,T=f.minCanvasHeight,P=f.minCanvasWidth,D=f.minChartWidth,I=f.minChartHeight,M=f.height,O=f.width,R=!1,V=!1,B=f.origCanvasTopMargin,G=f.origCanvasBottomMargin,H=f.origCanvasLeftMargin,z=f.origCanvasRightMargin;f.canvasWidth-2*A<D&&(h=(f.canvasWidth-D)/2),f.canvasHeight-2*A<I&&(c=(f.canvasHeight-I)/2),this._allocateSpace({top:c||A,bottom:c||A,left:h||A,right:h||A}),this._manageYAxisSpace(),this._allocateSpace(this._manageActionBarSpace&&this._manageActionBarSpace(.225*f.availableHeight)||{}),this._manageLegendSpace&&f.showLegend&&this._manageLegendSpace(void 0),e=v===r.POSITION_BOTTOM?.6*f.availableHeight:.6*f.availableWidth,x&&(this._allocateSpace({bottom:x}),f.shift=b+k+C),y&&this._allocateSpace({right:y}),f.canvasWidth-2*w<P&&(d=(f.canvasWidth-P)/2),this._allocateSpace({left:d||w,right:d||w}),P>O-E-_&&(V=!0,t=f.canvasWidth-P,p=E+_,E=f.canvasMarginLeft=t*E/p,_=f.canvasMarginRight=t*_/p),n=E>f.canvasLeft?E-f.canvasLeft:0,o=_>O-f.canvasRight?_+f.canvasRight-O:0,this._allocateSpace({left:n,right:o}),V&&(p=H+z,(s=f.canvasWidth)>P&&(n=(t=s-P)*H/p,o=t*z/p),this._allocateSpace({left:n,right:o})),f.actualCanvasMarginRight=o,f.actualCanvasMarginBottom=i,this._manageChartMenuBar(e),e=.2*f.availableHeight,this._getSumValueSpace?(f.sumValueSpace=this._getSumValueSpace(e),this._allocateSpace(f.sumValueSpace)):f.sumValueSpace={top:0,right:0},e=.3*f.availableHeight,f.realtimeEnabled&&(L?this._allocateSpace(this._realTimeValuePositioning(e)):this._hideRealTimeValue()),this._resetViewPortConfig&&this._resetViewPortConfig(),this._setAxisScale&&this._setAxisScale(),e=.6*f.availableHeight,f.xAxisSpaceAllocation=g=m&&m.placeAxis(e),m&&this._allocateSpace(g),f.canvasHeight-2*w<T&&(u=(f.canvasHeight-T)/2),this._allocateSpace({top:u||w,bottom:u||w}),this._allocateSpace({bottom:C}),T>M-N-F&&(R=!0,t=f.canvasHeight-T,p=N+F,N=f.canvasMarginTop=t*N/p,F=f.canvasMarginBottom=t*F/p),a=N>f.canvasTop?N-f.canvasTop:0,i=F>M-f.canvasBottom?F+f.canvasBottom-M:0,this._allocateSpace({top:a,bottom:i}),R&&(p=B+G,(l=f.canvasHeight)>T&&(a=(t=l-T)*B/p,i=t*G/p),this._allocateSpace({top:a,bottom:i})),f.actualCanvasMarginTop=a,f.actualCanvasMarginLeft=n,S.setDimension({top:f.canvasTop,left:f.canvasLeft,width:f.canvasWidth,height:f.canvasHeight})},a._manageYAxisSpace=function(){var e,t,a,i=this.config,n=this.getChildren("yAxis"),o=[];for(t=0;t<(n&&n.length);t++)a=(e=n[t])&&e.placeAxis(.7*i.availableWidth)||{},o.push({axisIndex:t,spaceTaken:a}),e&&this._allocateSpace(a);i.yAxisSpaceAllocation=o},a._postSpaceManagement=function(){var e,t=this.config,a=this.getChildren(),i=a.xAxis&&a.xAxis[0],n=a.legend&&a.legend[0],o=t.xDepth,r=this.getChildren("canvas");for(this.setAxisDimention&&this.setAxisDimention(),i&&this._allocateXAxisLabelSpace(i),i&&i.shiftLabels(-o,0),n&&n.postSpaceManager(),e=0;e<(r&&r.length);e++)r[e].setCanvasPadding();this.setAxisDimention&&this.setAxisDimention(),this.allocateDimensionOfChartMenuBar()},t}(o["default"]);t["default"]=l},407:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t._drawDataset=M,t.configurer=O,t["default"]=void 0;var n=i(a(198)),o=i(a(227)),r=i(a(408)),l=i(a(411)),s=a(192),c=i(a(412)),h=a(293),u=i(a(414)),d=i(a(416)),g=i(a(418)),p=i(a(209)),f=a(191),m=i(a(420)),v=a(184),b=i(a(186)),x=(0,s.getDep)("redraphael","plugin"),y="VML"===x.type,C=Math.max,k=Math.min,S=Math.round,w={datalabelclick:!0,connectorclick:!0,categoryclick:!0,processclick:!0,milestoneclick:!0,labelclick:!0,dataplotclick:!0},L=v.preDefStr.SEVENTYSTRING,A=v.preDefStr.AUTOSTRING,N="onpointerover"in window.document,F=function(e,t,a){return a.getFromEnv("animationManager").setAnimation({el:"group",attr:e,container:t,state:"appearing",component:a,label:"group"})},E=function(e){var t=e.data.config;t._containerMouseState="mousedown",t._mdx1=e.clientX!==v.UNDEF?e.clientX:e.changedTouches&&e.changedTouches[0].clientX,t.mdy1=e.clientY!==v.UNDEF?e.clientY:e.changedTouches&&e.changedTouches[0].clientY,"touchstart"===e.type&&(t._touchStartedAt=(new Date).getTime())},_=function(e){var t=e.data.config,a=e.clientX!==v.UNDEF?e.clientX:e.changedTouches&&e.changedTouches[0].clientX,i=e.clientY!==v.UNDEF?e.clientY:e.changedTouches&&e.changedTouches[0].clientY;(Math.abs(t._mdx1-a)>=2.5||Math.abs(t.mdy1-i)>=2.5)&&(e.data.config._containerMouseState=v.UNDEF)},T=function(e){(new Date).getTime()-e.data.config._touchStartedAt<500&&setTimeout((function(){P(e)}))},P=function(e){var t,a=e.data,i=a.getFromEnv("chartInstance"),n=e.originalEvent,o=a.config,r=(0,v.getMouseCoordinate)(a.getFromEnv("chart-container"),n,a);i.ref&&"mousemove"!==o._containerMouseState&&(t=(0,v.extend2)({height:i.args.height,width:i.args.width,pixelHeight:a.getFromEnv("chartWidth"),pixelWidth:a.getFromEnv("chartHeight"),id:i.args.id,renderer:i.args.renderer,container:i.options.containerElement},r),a.fireChartInstanceEvent("chartclick",t),o.link&&(!o.hotElemClicked||o.clickURLOverridesPlotLinks)&&a.getFromEnv("linkClickFN").call({link:o.link}),o.hotElemClicked=!1)},D=function(e){var t=e.type,a=e.data,i=a.getFromEnv("eventListeners");"mouseover"!==t&&"touchstart"!==t||!1!==a.config.mouseStateIn?"mouseout"!==t&&"touchend"!==t||(a.config.posOb=!1):(a.config.mouseStateIn=!0,R.onContainerRollOver(e),i.push(b["default"].listen(y?document:window,"mouseover",R.winMouseHover,a)))};function I(){var e,t,a,i,n=this,o=n,r=n.config,l="t"===r.toolbarVAlign?"chartMenuBar":"actionBar",s=n.getFromEnv("tool-config");e=n.getChildren(l)[0],t=r.printOption.enabled,a=o.config.realTimeConfig||{},i=e.attachChild(h.Hamburger,"tool","hamburgerMenu-"+e.getId()+"-"+n.getId()+"-0"),n.addToEnv("hamburger",i),i.configure(Object.assign({},s,{name:"ContextIcon"})),i._mouseOutEvent||(i._mouseOutEvent=function(){this.getChild("listContainer").hide()}),i._mouseOverEvent||(i._mouseOverEvent=function(){this.getChild("listContainer").show()}),i.addEventListener("fc-mouseover",i._mouseOverEvent),i.addEventListener("fc-mouseout",i._mouseOutEvent),t&&i.appendInMenu([{name:"Print",action:"click",handler:function(){n.getFromEnv("chartInstance").print()}}]),o._setRTmenu&&o._setRTmenu(a.showRTmenuItem,a.useMessageLog)}function M(){this.getChildren("canvas")[0]._mapChildren((function(e){e.syncDraw()}))}function O(e){this.config.skipConfigureIteration={},this.parseChartAttr(e),this.createComponent(e),this.setTooltipStyle(),this.configureChildren()}(0,s.addDep)({name:"commonAnimation",type:"animationRule",extension:m["default"]});var R=function(e){(0,n["default"])(a,e),a.getName=function(){return"CommonAPI"};var t=a.prototype;function a(){var t;return(t=e.call(this)||this).addToEnv("stringConstants",{COMPONENT:"component",CANVAS:"canvas",CAPTION:"caption"}),t.addToEnv("getMouseCoordinate",v.getMouseCoordinate),t._drawDataset=M,t.config.mouseStateIn=!1,t.registerFactory("toolbox",l["default"]),t.registerFactory("canvas",r["default"]),t._firstConfigure=!0,t}return t.plotEventHandler=function(e,t,a,i){void 0===t&&(t={});var n,o,r=t.type,l=a,s=(0,v.getMouseCoordinate)(this.getFromEnv("chart-container"),t,this),c=e&&e.data("eventArgs")||i,h=(0,v.extend2)(s,c),u=this.fireGroupEvent,d=e&&e.data("groupId"),g=function(e,a){t.FusionChartsPreventEvent=!0};"index"in h&&!("dataIndex"in h)&&(h.dataIndex=h.index),"value"in h&&!("dataValue"in h)&&(h.dataValue=h.value),"dataplotrollover"===(l=(0,v.pluck)(l,"dataplotclick").toLowerCase())?(t.FusionChartsPreventEvent=!1,u?(0,f.raiseEventGroup)(d,l,h,this.getFromEnv("chartInstance"),v.UNDEF,v.UNDEF,g):this.fireChartInstanceEvent(l,h,v.UNDEF,v.UNDEF,g)):u&&!w[l]?(0,f.raiseEventGroup)(d,l,h,this.getFromEnv("chartInstance")):this.fireChartInstanceEvent(l,h),"fc-click"!==r&&"click"!==r&&"mouseup"!==r&&"touchend"!==r||!/click/i.test(l)||(o=(n=this.getFromEnv())&&n.linkClickFN,h.link&&o&&o.call({link:h.link},!0))},t.getName=function(){return"Cartesian"},t.preConfigure=function(t){var a=this.getFromEnv("number-formatter");this.addToEnv("chart-attrib",t.chart),a?a.configure():this.addToEnv("number-formatter",new p["default"](this)),e.prototype.preConfigure.call(this,t)},t.postConfigure=function(t){e.prototype.postConfigure.call(this,t),this._firstConfigure=!1},t.setDefaults=function(){e.prototype.setDefaults.call(this);var t=this.getFromEnv("number-formatter");t&&t.setDefaults&&t.setDefaults()},t.getType=function(){return"chartAPI"},t.parseChartAttr=function(e){var t,a,i,n,o,r,l,s,c,h,u,d,p,f,m=e||this.getFromEnv("dataSource"),b=this.config.is3D,x=b?v.chartPaletteStr.chart3D:v.chartPaletteStr.chart2D,y=this.isBar,S=this.getFromEnv("color-manager");S||(S=new g["default"](this),this.addToEnv("color-manager",S)),m.chart=m.chart||m.graph||m.map||{},delete m.map,delete m.graph,!(t=m.chart)&&(t=m.chart={}),a=this.config||(this.config={}),(0,v.parseConfiguration)(t,a,{},{showvalues:!0,crosslinecolor:!0,drawcrosslineontop:!0,crosslinealpha:!0,drawcrossline:!0}),a.showValues=(0,v.pluckNumber)(t.showvalues,a.showvalues),a.viewPortConfig={scaleY:1,scaleX:1,x:0,y:0},this.addToEnv("tool-config",function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];var i=t[0],n=t.slice(1);return n.forEach((function(e){for(var t in e)e.hasOwnProperty(t)&&e[t]!==v.UNDEF&&(i[t]=e[t])})),i}({},{scale:t.toolbarbuttonscale,width:t.toolbarbuttonwidth,height:t.toolbarbuttonheight,radius:t.toolbarbuttonradius,spacing:t.toolbarbuttonspacing,marginTop:t.toolbarbuttonmargintop,marginLeft:t.toolbarbuttonmarginleft,marginRight:t.toolbarbuttonmarginright,marginBottom:t.toolbarbuttonmarginbottom,fill:t.toolbarbuttoncolor,labelFill:t.toolbarlabelcolor,symbolFill:t.toolbarsymbolcolor,hoverFill:t.toolbarbuttonhovercolor,stroke:t.toolbarbuttonbordercolor,symbolStroke:t.toolbarsymbolbordercolor,strokeWidth:t.toolbarbuttonborderthickness,symbolStrokeWidth:t.toolbarsymbolborderthickness,bSymbolPadding:t.toolbarsymbolpadding,symbolHPadding:t.toolbarsymbolhpadding,symbolVPadding:t.toolbarsymbolvpadding,hAlign:t.toolbarhalign,vAlign:t.toolbarvalign})),b&&(y?(a.xDepth=5,a.yDepth=5):(a.xDepth=10,a.yDepth=10),a.showCanvasBase=f=Boolean((0,v.pluckNumber)(t.showcanvasbase,1)),a.canvasBasePadding=(0,v.pluckNumber)(t.canvasbasepadding,2),a.canvasBaseDepth=f?(0,v.pluckNumber)(t.canvasbasedepth,10):0,a.canvasBgDepth=(0,v.pluckNumber)(t.canvasbgdepth,3)),S&&S.configure(),a.placeAxisLabelsOnTop=(0,v.pluckNumber)(t.placexaxislabelsontop,0),a.enableAnimation=(0,v.pluckNumber)(t.animation,t.defaultanimation,1),a.showToolTip=(0,v.pluckNumber)(t.showtooltip,1),a.printOption={enabled:(0,v.pluckNumber)(t.printshowbutton,t.showprintmenuitem,0)},a.drawCrossLineOnTop=(0,v.pluckNumber)(t.drawcrosslineontop,1),l=a.style={},this.addToEnv("style",l),a.textDirection="1"===t.hasrtltext?"rtl":v.BLANKSTRING,l.inCanfontFamily=i=(0,v.pluck)(t.basefont,"Verdana,sans"),l.inCanfontSize=n=(0,v.pluckFontSize)(t.basefontsize,10),l.inCancolor=o=(0,v.pluck)(t.basefontcolor,S.getColor(x.baseFontColor)),l.outCanfontFamily=(0,v.pluck)(t.outcnvbasefont,i),l.fontSize=r=(0,v.pluckFontSize)(t.outcnvbasefontsize,n),l.outCanfontSize=r+v.PXSTRING,l.outCancolor=(0,v.pluck)(t.outcnvbasefontcolor,o).replace(/^#? ([a-f0-9]+)/gi,"#$1"),l.baseFontSize=n,l.inCanfontSize=n+v.PXSTRING,l.inCancolor=o.replace(/^#? ([a-f0-9]+)/gi,"#$1"),l.inCanvasStyle=h={fontFamily:i,fontSize:n,color:o},a.valueFontAlpha=(0,v.pluckNumber)(t.valuefontalpha,t.valuealpha,100),a.valueBgAlpha=(0,v.pluckNumber)(t.valuebgalpha,t.valuealpha,100),a.valueBorderAlpha=(0,v.pluckNumber)(t.valueborderalpha,t.valuealpha,100),a.valueFontColor=(0,v.pluck)(t.valuefontcolor,o),a.valueBgColor=(0,v.pluck)(t.valuebgcolor)||v.BLANKSTRING,l.inCanLineHeight=u=(0,v.setLineHeight)(h),p=(0,v.getFirstValue)(t.valuebordercolor,v.BLANKSTRING),p=a.valueBorderColor=p?(0,v.convertColor)(p,a.valueBorderAlpha):v.BLANKSTRING,a.reverseXAxis=this.config.allowreversexaxis&&(0,v.pluckNumber)(t.reversexaxis,0),a.showBorder=(0,v.pluckNumber)(t.showborder,a.showBorder,b?0:1),a.borderWidth=C(a.showBorder?(0,v.pluckNumber)(t.borderthickness,1):0,0),a.useplotgradientcolor=(0,v.pluckNumber)(t.plotgradientcolor,a.useplotgradientcolor,0),a.valuefontbold=(0,v.pluckNumber)(t.valuefontbold,a.valuefontbold),a.dataLabelStyle=d={fontFamily:(0,v.pluck)(t.valuefont,i),fontSize:(0,v.pluck)(t.valuefontsize,(0,v.pInt)(n,10))+v.PXSTRING,lineHeight:u,color:(0,v.convertColor)((0,v.pluck)(t.valuefontcolor,o),a.valueFontAlpha),fontWeight:a.valuefontbold?"bold":"normal",fontStyle:(0,v.pluckNumber)(t.valuefontitalic)?"italic":"normal",border:p||t.valuebgcolor?(0,v.pluckNumber)(t.valueborderthickness,1)+"px solid":v.BLANKSTRING,borderColor:p,borderThickness:(0,v.pluckNumber)(t.valueborderthickness,1),borderPadding:(0,v.pluckNumber)(t.valueborderpadding,2),borderRadius:(0,v.pluckNumber)(t.valueborderradius,0),backgroundColor:t.valuebgcolor?(0,v.convertColor)(t.valuebgcolor,a.valueBgAlpha):v.BLANKSTRING,borderDash:(0,v.pluckNumber)(t.valueborderdashed,0)?(0,v.getDashStyle)((0,v.pluckNumber)(t.valueborderdashlen,4),(0,v.pluckNumber)(t.valueborderdashgap,2)):v.DASH_DEF},(0,v.setLineHeight)(d),a.legendposition=(0,v.pluck)(t.legendposition,v.POSITION_BOTTOM),a.alignLegendWithCanvas=(0,v.pluckNumber)(t.alignlegendwithcanvas,1),a.origMarginTop=(0,v.pluckNumber)(t.charttopmargin,this.chartTopMargin,15),a.origMarginLeft=(0,v.pluckNumber)(t.chartleftmargin,this.chartLeftMargin,15),a.origMarginBottom=(0,v.pluckNumber)(t.chartbottommargin,this.chartBottomMargin,15),a.origMarginRight=(0,v.pluckNumber)(t.chartrightmargin,this.chartRightMargin,15),a.origCanvasLeftMargin=(0,v.pluckNumber)(t.canvasleftmargin,0),a.origCanvasRightMargin=(0,v.pluckNumber)(t.canvasrightmargin,0),a.origCanvasTopMargin=(0,v.pluckNumber)(t.canvastopmargin,0),a.origCanvasBottomMargin=(0,v.pluckNumber)(t.canvasbottommargin,0),a.minChartWidthPercent=(0,v.pluckNumber)(t.minchartwidth,this.minChartWidth,50)/100,a.minChartHeightPercent=(0,v.pluckNumber)(t.minchartheight,this.minChartHeight,50)/100,a.minCanvasWidthPercent=(0,v.pluckNumber)(t.mincanvaswidth,this.minCanvasWidth,60)/100,a.minCanvasHeightPercent=(0,v.pluckNumber)(t.mincanvasheight,this.minCanvasHeight,30)/100,s=(0,v.pluck)(t.zeroplanecolor,t.divlinecolor,S.getColor(x.divLineColor)),c=(0,v.pluck)(t.zeroplanealpha,t.divlinealpha,S.getColor("divLineAlpha")),a.zeroPlaneColor=(0,v.convertColor)(s,c),a.zeroPlaneBorderColor=(0,v.convertColor)((0,v.pluck)(t.zeroplanebordercolor,s),(0,v.pluckNumber)(t.zeroplaneshowborder,1)?c:0),a.zeroPlaneShowBorder=(0,v.pluckNumber)(t.zeroplaneshowborder,1),a.realtimeEnabled=(0,v.pluckNumber)(t.realtimeenabled,this.isRealTime),a.showLegend=(0,v.pluckNumber)(t.showlegend,this.showLegend,1),a.link=t.clickurl,a.transposeAxis=(0,v.pluckNumber)(this.transposeAxis,t.transposeaxis,0),a.useEllipsesWhenOverflow=(0,v.pluckNumber)(t.useellipseswhenoverflow,t.useellipsewhenoverflow,1),a.drawTrendRegion=(0,v.pluckNumber)(t.drawcrossline,0),a.plotcolorintooltip=(0,v.pluckNumber)(t.plotcolorintooltip,this.config.singleseries?0:1),a.plotbinsize=k((0,v.pluckNumber)(t.plotbinsize,this.plotbinsize,.5),1),a.labelbinsize=k((0,v.pluckNumber)(t.labelbinsize,1),1),a.labelbinsize=a.plotbinsize>a.labelbinsize?a.plotbinsize:a.labelbinsize,a.enableMouseOutEvent=(0,v.pluckNumber)(t.enablemouseoutevent,this.enableMouseOutEvent,1),a.plotSpacePercent=Math.max((0,v.pluckNumber)(t.plotspacepercent,this.plotSpacePercent),0),a.maxColWidth=Math.abs((0,v.pluckNumber)(t.maxcolwidth,50)),a.maxBarHeight=Math.abs((0,v.pluckNumber)(t.maxbarheight,50)),a.overlapColumns=(0,v.pluckNumber)(t.overlapcolumns,t.overlapbars,a.is3D?0:1),a.plotPaddingPercent=t.plotpaddingpercent,a.tooltipgrayoutcolor=(0,v.pluck)(t.tooltipgrayoutcolor,v.preDefStr.colors.AAAAAA),a.clickURLOverridesPlotLinks=(0,v.pluckNumber)(t.clickurloverridesplotlinks,0),a.toolbarX=(0,v.pluckNumber)(t.toolbarx),a.toolbarY=(0,v.pluckNumber)(t.toolbary),a.toolbarPosition=function(e){var t=e;switch(t){case"tr":case"rt":case"top right":case"right top":t="tr";break;case"br":case"rb":case"bottom right":case"right bottom":t="br";break;case"tl":case"lt":case"top left":case"left top":t="tl";break;case"bl":case"lb":case"bottom left":case"left bottom":t="bl";break;default:t="tr"}return t}((0,v.pluck)(t.toolbarposition,"tr").toLowerCase()),a.toolbarHAlign="left"===(v.BLANKSTRING+t.toolbarhalign).toLowerCase()?"l":a.toolbarPosition.charAt(1),a.toolbarVAlign="bottom"===(v.BLANKSTRING+t.toolbarvalign).toLowerCase()?"b":a.toolbarPosition.charAt(0),a.toolbarVMargin=(0,v.pluckNumber)(t.toolbarvmargin,6),a.toolbarHMargin=(0,v.pluckNumber)(t.toolbarhmargin,10),this.addToEnv("chartConfig",a),this.addToEnv("linkClickFN",(0,v.getLinkAction)(this.getFromEnv("dataSource"),this)),this.addToEnv("dataLabelStyle",d)},t.createComponent=function(){var e;e=this.config.skipConfigureIteration,this.createBaseComponent(),this.getFromEnv("animationManager").setAnimationState(this._firstConfigure?"initial":"update"),(0,v.componentFactory)(this,c["default"],"caption"),e.caption=!0,(0,v.componentFactory)(this,u["default"],"subCaption"),e.subCaption=!0,(0,v.componentFactory)(this,d["default"],"background"),e.background=!0,this._createConfigurableComponents&&this._createConfigurableComponents(),this.config.realtimeEnabled&&this._realTimeConfigure&&this._realTimeConfigure()},t.configureChildren=function(){var e=this;e._mapChildren((function(t){!t.getState("removed")&&e.config.skipConfigureIteration[t.getName()]&&t.configure&&t.configure()}))},t.attachMenuButtons=function(){I.call(this)},t.configureAttributes=function(e){O.call(this,e)},t.setTooltipStyle=function(){var e=this.config;this.getFromEnv("toolTipController").setStyle({backgroundColor:v.hasSVG?(0,v.convertColor)(e.tooltipbgcolor||"FFF",e.tooltipbgalpha||100):(e.tooltipbgcolor||"FFF").replace(/\s+/g,"").replace(/^#?([a-f0-9]+)/gi,"#$1"),color:(e.tooltipcolor||e.basefontcolor||"545454").replace(/\s+/g,"").replace(/^#?([a-f0-9]+)/gi,"#$1"),borderColor:v.hasSVG?(0,v.convertColor)(e.tooltipbordercolor||"666",e.tooltipborderalpha||100):(e.tooltipbordercolor||"666").replace(/\s+/g,"").replace(/^#?([a-f0-9]+)/gi,"#$1"),borderWidth:(0,v.pluckNumber)(e.tooltipborderthickness,1)+"px",showToolTipShadow:(0,v.pluckNumber)(e.showtooltipshadow,e.showshadow,1),borderRadius:(0,v.pluckNumber)(e.tooltipborderradius,0)+"px",fontSize:(0,v.pluckNumber)(e.basefontsize,10)+"px",fontFamily:e.basefont||this.getFromEnv("style").inCanfontFamily,padding:(0,v.pluckNumber)(e.tooltippadding||3)+"px"})},t.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;t.valuefontbold=0,t.stickytracking=1,t.usemessagelog=0,t.zeroplanethickness=v.UNDEF,t.animationeffect="linear",t.showshadow=1,t.showhovereffect=v.UNDEF,t.plothovereffect=v.UNDEF,t.anchorhovereffect=v.UNDEF,t.plotborderdashed=v.UNDEF,t.stack100percent=v.UNDEF,t.showpercentvalues=v.UNDEF,t.showpercentintooltip=v.UNDEF,t.plotbordercolor=v.UNDEF,t.showtooltip=1,t.seriesnameintooltip=1,t.rotatevalues=0,t.minimizetendency=0,t.plotfillangle=270,t.valuepadding=2,t.useplotgradientcolor=1,t.plotborderthickness=1,t.plotfillalpha=L,t.showvalues=1,t.valueposition=A,t.drawcrossline=v.UNDEF,t.tooltipsepchar=", ",t.usedataplotcolorforlabels=0,t.placevaluesinside=0,t.showplotborder=1,t.use3dlighting=1,t.useroundedges=0,t.plotspacepercent=20,t.plotpaddingpercent=v.UNDEF,t.plotfillratio=v.UNDEF,t.maxcolwidth=50,t.plotborderdashlen=5,t.plotborderdashgap=4,t.useScaleRecursively=!0,t.formatnumberscale=1,t.decimals=2,t.decimalprecision=10,t.tooltipbgcolor="FFF",t.tooltipcolor=v.UNDEF,t.tooltipbordercolor="666",t.tooltipbgalpha=100,t.tooltipborderthickness=1,t.showtooltipshadow=v.UNDEF,t.basefontsize=10,t.basefont="Verdana, sans",t.tooltipborderradius=0,t.tooltippadding=3,t.tooltipborderalpha=100,t.origw=v.UNDEF,t.origh=v.UNDEF,t.showBorder=v.UNDEF},t.configure=function(t){var a=t;this.sanitizeData(a),this.addToEnv("dataSource",a),this.fireEvent("internal.dataSanitized",{}),a=this.getFromEnv("dataSource"),e.prototype.configure.call(this,a)},t._checkInvalidData=function(){var e=this.getFromEnv("dataSource"),t=this.getFromEnv("chartInstance");if(!(this.isWidget||this.isMap||e.data&&0!==e.data.length||e.dataset||e.value||e.lineset||e.annotations||e.category||e.tasks||e.process||e.axis))return t.__state.dataReady=!1,t.jsVars.hasNativeMessage=!0,t.jsVars.drawCount+=1,!0},t._checkInvalidSpecificData=function(){var e=this.getFromEnv("dataSource"),t=e.dataset,a=e.categories;if(!t||!a||0===a.length||!a[0].category)return!0},t.sanitizeData=function(e){e.chart=e.chart||e.graph||e.map||{}},t.setChartEvents=function(){var e=this.getFromEnv("eventListeners"),t=this.getFromEnv("dataSource"),i=t&&t.chart,n=this.getFromEnv("paper")&&this.getFromEnv("paper").canvas,o=this.getFromEnv("chart-container"),r=i&&(0,v.pluckNumber)(i.enablechartmousemoveevent,0);(i||n)&&(b["default"].unlisten(o,N?"click":"touchend",N?P:T),e.push(b["default"].listen(o,"mousedown touchstart",E,this)),e.push(b["default"].listen(o,"mousemove touchmove",_,this)),e.push(b["default"].listen(o,N?"click":"touchend",N?P:T,this)),b["default"].unlisten(n,"mouseover",D,this),b["default"].unlisten(n,"touchstart",D,this),b["default"].unlisten(n,"mouseout",D,this),b["default"].unlisten(n,"touchend",D,this),e.push(b["default"].listen(n,"mouseover touchstart mouseout touchend",D,this)),b["default"].unlisten(o,"mousemove",a.onContainerMouseMove,this),b["default"].unlisten(o,"touchmove",a.onContainerMouseMove,this),r&&e.push(b["default"].listen(o,"mousemove touchmove",a.onContainerMouseMove,this)))},t.get=function(e,t){var a=this[e];return t?a&&a[t]:a},t.prepareAttributes=function(){this.config.hasChartMessage||e.prototype.prepareAttributes.call(this)},t.disposeChartStyleSheet=function(){var e=this.getFromEnv("paper");e&&e.cssClear()},t.createChartStyleSheet=function(){this.getFromEnv("paper").cssRender()},t._dispose=function(){for(var t=this.getFromEnv("eventListeners"),a=t&&t.length;a--;)t[a].unlisten();e.prototype._dispose.call(this)},t._allocateSpace=function(e){var t,a,i=this.getChildren("canvas"),n=i&&i[0].config,o=this.config,r=o.canvasHeight,l=o.canvasWidth,s=o.availableHeight,c=o.availableWidth;a=o.canvasLeft+=e.left||0,t=o.canvasTop+=e.top||0,l=o.canvasWidth=C(l-((e.left||0)+(e.right||0)),0),r=o.canvasHeight=C(r-((e.top||0)+(e.bottom||0)),0),o.availableHeight=C(s-((e.top||0)+(e.bottom||0)),0),o.availableWidth=C(c-((e.left||0)+(e.right||0)),0),o.canvasRight=a+l,o.canvasBottom=t+r,n&&(n.canvasPaddingLeft=C(n.canvasPaddingLeft,e.paddingLeft||0),n.canvasPaddingRight=C(n.canvasPaddingRight,e.paddingRight||0),n.canvasPaddingTop=C(n.canvasPaddingTop,e.paddingTop||0),n.canvasPaddingBottom=C(n.canvasPaddingBottom,e.paddingBottom||0)),i&&i[0].setDimension({top:t,left:a,width:l,height:r})},t._fetchCaptionPos=function(e){var t=this.config,a=t.width,i=this.getChildren("chartMenuBar")&&this.getChildren("chartMenuBar")[0],n=(i?i.getLogicalSpace():{}).width||0,o=(this.getChildren("caption")&&this.getChildren("caption")[0]).config,r=o.width,l="l"===t.toolbarHAlign,s=t.width-e,c=l?e:s,h=t.origMarginRight,u=t.origMarginLeft,d=l?u:h;return o.align===v.POSITION_MIDDLE?c-r/2-d-n:"start"===o.align?l?-1:a-t.canvasLeft-d-r-n+o.horizontalPadding:l?a-(h+u+n+r):-1},t._manageCaptionSpacing=function(e,t){return this.getChildren("caption")[0].manageSpace(e,t)},t._manageChartMenuBar=function(e){var t,a,i=this.config,n=this.getChildren("chartMenuBar")&&this.getChildren("chartMenuBar")[0],o=i.toolbarY!==v.UNDEF,r=n?n.getLogicalSpace():{height:0,width:0},l=(this.getChildren("caption")&&this.getChildren("caption")[0]).config,s=l.isOnTop,c=i.width/2,h=i.canvasRight,u=h?(i.canvasLeft+h)/2:c,d=0,g=l.alignWithCanvas?u:c;return o&&(r.height=0),n&&n.setDimension({x:i.toolbarX!==v.UNDEF?i.toolbarX:(0,v.pluckNumber)("l"===i.toolbarHAlign?0:+i.width),y:i.toolbarY!==v.UNDEF?i.toolbarY:(0,v.pluckNumber)("t"===i.toolbarVAlign?0:+i.height),width:r.width,height:r.height}),delete l._offsetHeight,a=l.alignWithCanvas?i.canvasWidth:i.width-i.origMarginLeft-i.origMarginRight,s?(t=this._manageCaptionSpacing(e,a),d=this._fetchCaptionPos(g),l._offsetHeight=d<0?r.height:0,t.top=d<0?(0,v.pluckNumber)(t.top,0)+r.height:C(t.top,r.height),this._allocateSpace(t)):(this._allocateSpace({top:r.height}),t=this._manageCaptionSpacing(e,a),this._allocateSpace(t)),{top:r?C(r.height,t.top):t.top,bottom:t.bottom}},t._manageSpace=function(){var e,t,a,i,n,o,r,l,s,c,h,u,d=this.getChildren("canvas")&&this.getChildren("canvas")[0],g=d&&d.config,p=this.config,f=this.getFromEnv("chartWidth"),m=this.getFromEnv("chartHeight");p.width=f,p.height=m,p.minChartHeight=s=p.minChartHeightPercent*m,p.minChartWidth=c=p.minChartWidthPercent*f,p.minCanvasWidth=e=p.minCanvasWidthPercent*c,p.minCanvasHeight=t=p.minCanvasHeightPercent*s,p.marginTop=a=p.origMarginTop,p.marginLeft=i=p.origMarginLeft,p.marginBottom=n=p.origMarginBottom,p.marginRight=o=p.origMarginRight,p.canvasMarginTop=p.origCanvasTopMargin,p.canvasMarginLeft=p.origCanvasLeftMargin,p.canvasMarginBottom=p.origCanvasBottomMargin,p.canvasMarginRight=p.origCanvasRightMargin,p.canvasHeight=r=p.height-p.marginTop-p.marginBottom,p.canvasWidth=l=p.width-p.marginLeft-p.marginRight,p.availableHeight=r-t,p.availableWidth=l-e,r<s&&(h=m-s,p.canvasHeight=s,u=a+n,p.marginTop=h*a/u,p.marginBottom=h*n/u,p.availableHeight=s-t),l<c&&(h=f-c,u=o+i,p.canvasWidth=c,p.marginLeft=h*i/u,p.marginRight=h*o/u,p.availableWidth=c-e),p.canvasLeft=p.marginLeft,p.canvasTop=p.marginTop,g&&(g.canvasPaddingLeft=k(g.origCanvasLeftPad,S(.1*p.height)),g.canvasPaddingRight=k(g.origCanvasRightPad,S(.1*p.height)),g.canvasPaddingTop=k(g.origCanvasTopPad,S(.1*p.height)),g.canvasPaddingBottom=k(g.origCanvasBottomPad,S(.1*p.height))),this._spaceManager()},t._preDraw=function(){this._mapChildren((function(e){e.getState("removed")||e.preDraw&&e.preDraw()})),this._setAxisLimits&&this._setAxisLimits(),this._createToolBoxGantt&&this._createToolBoxGantt()},t._clearTimers=function(){var e,t=this.config&&this.config.realTimeConfig,a=this.config.timers,i=a&&a.setTimeout,n=a&&a.setInterval;for(e in t&&(t.refreshIntervalFlag=!1),i)clearTimeout(i[e]);for(e in n)clearInterval(n[e])},t.setChartCursor=function(){var e=this.config.link,t=this.getFromEnv("paper").canvas.style;x.svg?t.cursor=e?v.POINTER:"default":this.getFromEnv("paper").canvas.style.cursor=e?v.HAND:"default"},t._createLayers=function(){var e,t=this.getFromEnv("animationManager");e=this.getContainer("parentgroup")||this.addContainer("parentgroup",t.setAnimation({el:"group",attr:{name:"parentgroup"},component:this})),!this.getChildContainer("backgroundGroup")&&this.addChildContainer("backgroundGroup",F({name:"background"},e,this)),!this.getChildContainer("axisBottomGroup")&&this.addChildContainer("axisBottomGroup",F({name:"axisbottom"},e,this)),!this.getChildContainer("belowPlotGroup")&&this.addChildContainer("belowPlotGroup",F({name:"belowplot"},e,this)),!this.getChildContainer("plotGroup")&&this.addChildContainer("plotGroup",F({name:"plots"},e,this)),!this.getChildContainer("axisTopGroup")&&this.addChildContainer("axisTopGroup",F({name:"axistop"},e,this)),!this.getChildContainer("sumLabelsLayer")&&this.addChildContainer("sumLabelsLayer",F({name:"sumlabels","class":"fusioncharts-datalabels"},e,this)),!this.getChildContainer("datalabelsGroup")&&this.addChildContainer("datalabelsGroup",F({name:"datalabel"},e,this)),!this.getChildContainer("abovePlotGroup")&&this.addChildContainer("abovePlotGroup",F({name:"aboveplot"},e,this)),!this.getChildContainer("captionGroup")&&this.addChildContainer("captionGroup",F({name:"caption"},e,this)),!this.getChildContainer("defaultGroup")&&this.addChildContainer("defaultGroup",F({name:"chartdefault"},e,this)),!this.getChildContainer("defaultShadowGroup")&&this.addChildContainer("defaultShadowGroup",F({name:"chartdefault-shadow"},e,this)),!this.getChildContainer("trackerGroup")&&this.addChildContainer("trackerGroup",F({name:"tracker"},e,this)),!this.getChildContainer("logoGroup")&&this.addChildContainer("logoGroup",F({name:"logo"},e,this)),this.getChildren("legend")!==v.UNDEF&&!this.getChildContainer("legendGroup")&&this.addChildContainer("legendGroup",F({name:"legend"},e,this)),!this.getChildContainer("toolbar-master")&&this.addChildContainer("toolbar-master",F({name:"toolbar-master"},e,this))},t._setDataLabelStyle=function(){var e=this.config.dataLabelStyle,t={fontFamily:e.fontFamily,fontSize:e.fontSize,fontWeight:e.fontWeight,fontStyle:e.fontStyle};this.getChildContainer("datalabelsGroup").css(t)},t._manageCaptionPosition=function(){var e,t,a,i=this.config,n=this.getChildren(),o=n.caption&&n.caption[0],r=n.subCaption&&n.subCaption[0],l=o.config,s=l.widgetValueHeight||0,c=r.config,h=i.canvasWidth,u=l.align,d=l.text,g=l.alignWithCanvas,p=l.horizontalPadding,f=i.width,m=i.canvasLeft,b=i.canvasRight,x=i.marginRight,y=i.marginLeft,C=i.marginTop,k=(S(m)||0)+(0,v.pluckNumber)(h,f)/2,w=l.height,L=c.height,A=n.legend&&n.legend[0]&&n.legend[0].config||{},N=A.height||0,F=A.legendPadding||0,E=i.legendposition,_=this.getFromEnv("gLegend")||{},T=0,P=!!(_.conf||{}).showLegend,D=this.config.borderWidth,I=n.actionBar,M=0;switch(A.isActive||(N=0),P&&this.config.gLegendEnabled&&(T=_.getLogicalSpace().height),u){case"end":e=g?b-p:f-p;break;case"start":e=g?m+p:p;break;default:e=g?k:y+.5*(f-y-x)||f/2}l.isOnTop?t=(D||0)+(C||0):("right"===E.toLowerCase()&&(F=0,N=0,T=0),I&&I.length&&((M=(I[0].getLogicalSpace&&I[0].getLogicalSpace()||{}).height)===v.UNDEF||M===Infinity||M<0)&&(M=0),t=this.config.height-this.config.marginBottom-w-(L||0)-(D||0)-(F||0)-(N||0)-T-s-M),t+=l._offsetHeight||0,o.setDimention({x:e,y:t}),a=d?t+w+2:t||C||0,r.setDimention({x:e,y:a})},t.resizeCanvas=function(){var e=this.getFromEnv("paper"),t=this.config,a=this.getFromEnv("animationManager"),i=this.getFromEnv("chartWidth"),n=this.getFromEnv("chartHeight");v.hasSVG||!t._prevWidth&&!t._prevHeight||e.setSize(t._prevWidth,t._prevHeight),a.setAnimation({el:e,attr:{width:i,height:n},component:this})},t._updateVisuals=function(){var e=this.getFromEnv("core-options"),t=this.getFromEnv("paper"),a=this.config,i=this.getFromEnv("chartWidth"),n=this.getFromEnv("chartHeight");e&&!e._SVGDefinitionURLUpdated&&(/^\s*absolute\s*$/i.test(e.SVGDefinitionURL)&&(x._url=(x._g&&x._g.win||window).location.href.replace(/#.*?$/,v.BLANKSTRING)),e._SVGDefinitionURLUpdated=!0),t?this.resizeCanvas():((t=new x(this.getFromEnv("chart-container"),i,n)).setHTMLClassName("fusioncharts-div"),this.addToEnv("paper",t),t.setConfig("stroke-linecap",v.ROUND),this.setChartEvents()),a._prevWidth=i,a._prevHeight=n,this.setChartCursor(),this._createLayers(),this._setDataLabelStyle(),this._drawTexts()},t.allocateDimensionOfChartMenuBar=function(){var e=this.config,t=this.getFromEnv("toolbar"),a=t.config,i=a.hDirection,n=a.vDirection,o=t.getLogicalSpace(),r=t.getDimension(),l=r.y,s=r.x;"t"===e.toolbarVAlign?(l+=e.toolbarVMargin*n+k(0,o.height*n),s+=e.toolbarHMargin*i-C(0,o.width*i),s="l"===e.toolbarHAlign?s+o.width:s-o.width):(l=e.height-e.marginBottom-o.height,s="b"===e.toolbarVAlign&&"r"===e.toolbarHAlign?e.width-e.marginRight-o.width:e.marginLeft),e.toolbarX!==v.UNDEF&&(s=e.toolbarX),e.toolbarY!==v.UNDEF&&(l=e.toolbarY),t.setDimension({x:s,y:l,width:o.width,height:o.height}),t.manageSpace()},t.draw=function(){var e=this.getFromEnv("chartInstance");this.config.hasChartMessage?(this._hide(),this.resizeCanvas(),this.drawChartMessage(),this.fireChartInstanceEvent("nodatatodisplay",{},[e.id]),e.jsVars.drawCount+=1,e.__state.dataReady=!1,e.jsVars.hasNativeMessage=!0):(this._hideChartMessage(),this._clearTimers&&this._clearTimers(),this.config.plotOverFlow=!1,this._show(),this._updateVisuals(),this.setState("initiated",!0),e.jsVars.drawCount+=1,e.jsVars.hasNativeMessage=!1)},t.manageSpace=function(){this.config.hasChartMessage?this.getChildren("chartMessage")[0].manageSpace():(this._preDraw(),this.addToolbar&&this.addToolbar(),this._manageSpace(),this._postSpaceManagement&&this._postSpaceManagement())},t._show=function(){this.getContainer("parentgroup")&&this.getContainer("parentgroup").show()},t._manageActionBarSpace=function(){var e=this.config,t=this.getChildren("actionBar"),a=(t&&t[0]&&t[0].getLogicalSpace()||{}).height||0;return e.actionBarHeight=a,{bottom:a}},t._hide=function(){this.getContainer("parentgroup")&&this.getContainer("parentgroup").hide()},a.onContainerMouseMove=function(e){var t,a=e.data,i=a.getFromEnv("chartInstance"),n=e.originalEvent,o=(0,v.getMouseCoordinate)(a.getFromEnv("chart-container"),n,a);i.ref&&(t=(0,v.extend2)({height:i.args.height,width:i.args.width,pixelHeight:a.getFromEnv("chartWidth"),pixelWidth:a.getFromEnv("chartHeight"),id:i.args.id,renderer:i.args.renderer,container:i.options.containerElement},o),a.fireChartInstanceEvent("chartMouseMove",t))},a.onContainerRollOver=function(e){var t,a=e.data,i=a.getFromEnv("chartInstance"),n=e.originalEvent,o=(0,v.getMouseCoordinate)(a.getFromEnv("chart-container"),n,a);i.ref&&(t=(0,v.extend2)({height:i.args.height,width:i.args.width,pixelHeight:a.getFromEnv("chartWidth"),pixelWidth:a.getFromEnv("chartHeight"),id:i.args.id,renderer:i.args.renderer,container:i.options.containerElement},o),a.fireChartInstanceEvent("chartRollOver",t))},a.onContainerRollOut=function(e){var t,a=e.chart,i=a.getFromEnv("chartInstance"),n=e.event,o=(0,v.getMouseCoordinate)(a.getFromEnv("chart-container"),n,a);i.ref&&(t=(0,v.extend2)({height:i.args.height,width:i.args.width,pixelHeight:a.getFromEnv("chartWidth"),pixelWidth:a.getFromEnv("chartHeight"),id:i.args.id,renderer:i.args.renderer,container:i.options.containerElement},o),a.fireChartInstanceEvent("chartRollOut",t))},a.winMouseHover=function(e){var t=e.originalEvent,i=t.target||t.originalTarget||t.srcElement||t.relatedTarget||t.fromElement,n=e.data,o=n.getFromEnv("paper"),r={chart:n,event:e.originalEvent};y?o.getById(i.parentNode.raphaelid)||(a.onContainerRollOut(r),n.config.mouseStateIn=!1,b["default"].unlisten(document,"mouseover",a.winMouseHover)):i.viewportElement||(n.config.mouseStateIn=!1,a.onContainerRollOut(r),b["default"].unlisten(window,"mouseover",a.winMouseHover))},a}(o["default"]),V=R;t["default"]=V},408:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=function(e){var t;(0,o.componentFactory)(e,n["default"],"canvas",e.config.showVolumeChart?2:1),t=e.getChildren("canvas");for(var a=0,i=t.length;a<i;a++)t[a].configure()};var n=i(a(409)),o=a(184)},409:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(201)),o=i(a(198)),r=a(199),l=a(184),s=a(192),c=i(a(410)),h=Math.max,u=l.preDefStr.miterStr,d=l.preDefStr.noneStr,g=l.preDefStr.ROUND,p=function(e,t,a){return a.getFromEnv("animationManager").setAnimation({el:"group",attr:{name:e},container:t,component:a,label:"group"})};(0,s.addDep)({name:"canvasAnimation",type:"animationRule",extension:c["default"]});var f=function(e){function t(){var t;t=e.call(this)||this;var a=(0,n["default"])(t);return a.config={},a.config.axes=a.config.axes||[],a.setLinkedItem("axes",[]),a.setLinkedItem("primaryAxis",{}),a.addToEnv("canvasConfig",t.config),t}(0,o["default"])(t,e);var a=t.prototype;return a.getName=function(){return"canvas"},a.getType=function(){return"canvas"},a.createGroup=function(){var e=this.getFromEnv("chart"),t=e.getChildContainer(),a=e.getContainer("parentgroup"),i=this.getEffectiveDimensions(),n=this.getFromEnv("chart-attrib"),o=(0,l.pluckNumber)(n.areaovercolumns,1),r=this.getChildContainer("axisReferenceVisualsFloor"),s=this.getChildContainer("axisReferenceVisualsBottom"),c=this.getChildContainer("axisReferenceVisualsMiddle"),h=this.getChildContainer("axisReferenceVisualsTop"),u=this.getChildContainer("axisReferenceVisualsCeil"),d=this.getChildContainer("areaGroup"),g=this.getChildContainer("areaShadowGroup"),f=this.getChildContainer("columnGroup"),m=this.getChildContainer("columnShadowGroup"),v=t.plotGroup,b=[i.left,i.top,i.width,i.height].toString();!this.getContainer("canvasGroup")&&this.addContainer("canvasGroup",p("canvas",a,this)).insertAfter(t.backgroundGroup),s||(s=this.addChildContainer("axisReferenceVisualsBottom",p("axisReferenceVisualsBottom",a,this)).insertAfter(t.axisBottomGroup)),r||(r=this.addChildContainer("axisReferenceVisualsFloor",p("axisReferenceVisualsFloor",a,this)).insertAfter(t.axisBottomGroup)),r.attr({"clip-rect":b}),!this.getChildContainer("crossline")&&this.addChildContainer("crossline",p("crossline",a,this)).insertBefore(t.plotGroup),!this.getChildContainer("crosslineBottom")&&this.addChildContainer("crosslineBottom",p("crosslineBottom",a,this)).insertBefore(t.plotGroup),!this.getChildContainer("crosslineTop")&&this.addChildContainer("crosslineTop",p("crosslineTop",a,this)).insertBefore(t.abovePlotGroup),!this.getChildContainer("datalabelsGroup")&&this.addChildContainer("datalabelsGroup",p("canvasdatalabel",e.getChildContainer("datalabelsGroup"),this)),c||(c=this.addChildContainer("axisReferenceVisualsMiddle",p("axisReferenceVisualsMiddle",a,this)).insertBefore(t.plotGroup)),c.attr({"clip-rect":b}),h||(h=this.addChildContainer("axisReferenceVisualsTop",p("axisReferenceVisualsTop",a,this)).insertBefore(t.datalabelsGroup)),!this.getChildContainer("quadrantGroup")&&this.addChildContainer("quadrantGroup",p("quadrant",a,this)).insertAfter(c),u||this.addChildContainer("axisReferenceVisualsCeil",p("axisReferenceVisualsCeil",a,this)).insertBefore(t.datalabelsGroup),!this.getChildContainer("sumLabelsLayer")&&this.addChildContainer("sumLabelsLayer",t.sumLabelsLayer),m||(m=this.addChildContainer("columnShadowGroup",p("column-shadow-group",v,this))),f||(f=this.addChildContainer("columnGroup",p("column",v,this))),g||(g=this.addChildContainer("areaShadowGroup",p("area-shadow-group",v,this))),d||(d=this.addChildContainer("areaGroup",p("area",v,this))),o?(m.insertBefore(g),f.insertBefore(g)):(g.insertBefore(m),d.insertBefore(m)),!this.getChildContainer("lineShadowGroup")&&this.addChildContainer("lineShadowGroup",p("line-shadow-group",v,this)),!this.getChildContainer("lineGroup")&&this.addChildContainer("lineGroup",p("line",v,this)),!this.getChildContainer("defaultShadowGroup")&&this.addChildContainer("defaultShadowGroup",p("default-shadow-group",v,this)),!this.getChildContainer("defaultGroup")&&this.addChildContainer("defaultGroup",p("default",v,this))},a.isWithinCanvas=function(e,t){var a=this.config,i=a.canvasLeft,n=i+a.canvasWidth,o=a.canvasTop,r=o+a.canvasHeight;return e>=i&&e<=n&&t>=o&&t<=r},a.setCanvasPadding=function(){var e,t=this.config;e=this.getCanvasPadding(),t.canvasPaddingLeft=h(t.canvasPaddingLeft,e.paddingLeft||0),t.canvasPaddingRight=h(t.canvasPaddingRight,e.paddingRight||0),t.canvasPaddingTop=h(t.canvasPaddingTop,e.paddingTop||0),t.canvasPaddingBottom=h(t.canvasPaddingBottom,e.paddingBottom||0)},a.getEffectiveDimensions=function(){var e=this.config;return{left:e.canvasLeft,top:e.canvasTop,width:e.canvasWidth,height:e.canvasHeight,paddingLeft:e.canvasPaddingLeft,paddingTop:e.canvasPaddingTop,paddingRight:e.canvasPaddingRight,paddingBottom:e.canvasPaddingBottom}},a.setDimension=function(e){var t=this.config;t.canvasTop=e.top,t.canvasLeft=e.left,t.canvasWidth=e.width,t.canvasHeight=e.height},a.getCanvasPadding=function(){var e,t,a,i,n=this.getFromEnv("chartConfig").canvasWidth,o=this.config.maxPaddingPercent*n/100,r={paddingLeft:0,paddingRight:0,paddingTop:0,paddingBottom:0};return this._mapChildren((function(a){for(t in e=a.getCanvasPadding&&a.getCanvasPadding()||{})e.hasOwnProperty(t)&&(r[t]=h(e[t],r[t]))})),a=r.paddingLeft||0,i=r.paddingRight||0,o<a&&(r.paddingLeft=o),o<i&&(r.paddingRight=o),r},a.configureAttributes=function(e){void 0===e&&(e={});var t,a,i,n,o,r=this.getLinkedParent(),s=this.getFromEnv("chartConfig"),c=this.config,u=this.getFromEnv("chart-attrib"),d=this.getFromEnv("color-manager"),g=s.is3D,p=g?l.chartPaletteStr.chart3D:l.chartPaletteStr.chart2D,f=c.isRoundEdges=(0,l.pluckNumber)(u.useroundedges,0),m=(0,l.pluckNumber)(u.showxaxisline,u.showyaxisline,u.showaxislines,0)?0:1;c.canvasBorderRadius=(0,l.pluckNumber)(u.plotborderradius,f?2:0),i=c.showCanvasBorder=Boolean((0,l.pluckNumber)(u.showcanvasborder,m,t,f?0:1)),o=c.oriCanvasBorderThickness=h((0,l.pluckNumber)(u.canvasborderthickness,f?0:(0,l.pluckNumber)(r.config.canvasborderthickness,2),0)),t=c.canvasBorderWidth=g?0:i?o:0,c.canvasBorderColor=(0,l.convertColor)((0,l.pluck)(u.canvasbordercolor,d.getColor(l.canvasBorderColorStr)),(0,l.pluck)(u.canvasborderalpha,d.getColor("canvasBorderAlpha"))),a=c.canBGAlpha=(0,l.pluck)(u.canvasbgalpha,d.getColor(l.canvasBGAlphaStr)),c.canBGColor={FCcolor:{color:(0,l.pluck)(u.canvasbgcolor,d.getColor(p.canvasBgColor)),alpha:(0,l.pluck)(u.canvasbgalpha,100),angle:(0,l.pluck)(u.canvasbgangle,0),ratio:(0,l.pluck)(u.canvasbgratio)}},n=c.shadow=(0,l.pluckNumber)(u.showshadow,f,0)&&f?{enabled:!0,opacity:a/100}:0,c.shadowOnCanvasFill=n&&n.enabled,c.canvasPadding=(0,l.pluckNumber)(u.canvaspadding,0),c.origCanvasTopPad=(0,l.pluckNumber)(u.canvastoppadding,0),c.origCanvasBottomPad=(0,l.pluckNumber)(u.canvasbottompadding,0),c.origCanvasLeftPad=(0,l.pluckNumber)(u.canvasleftpadding,0),c.origCanvasRightPad=(0,l.pluckNumber)(u.canvasrightpadding,0),Object.assign(c,e),this.config.inputComponents=[],this.config.maxPaddingPercent=12.5,this._mapChildren((function(e){e.getState("removed")||e.getType&&"dataset"===e.getType()||"axisRefVisuals"===e.getType()||e.configure&&e.configure()}))},a.disposeAllInputs=function(){this.config.inputComponents.forEach((function(e){e.dispose()})),this.config.inputComponents.length=0},a.axisExists=function(e){var t,a,i=this.getLinkedItem("axes"),n=!1;for(t=0,a=i.length;t<a;t++)if(i[t].axis===e){n=!0;break}return n},a.attachAxis=function(e,t,a){var i=this.getLinkedItem("axes"),n=t?"yAxis":"xAxis",o=this.getFromEnv(n)||[];return this.axisExists(e)||(i.push({axis:e,isY:t,config:a||{}}),o.push(e),this.addToEnv(n,o)),this},a.setPrimaryAxis=function(e,t){this.getLinkedItem("primaryAxis")[e]=this.getLinkedItem("axes").find((function(e){return e.axis===t}))},a.getAxes=function(){var e;return Object.keys(e=this.getLinkedItem("primaryAxis")).length?[e.xAxis,e.yAxis]:this.getLinkedItem("axes").slice(0)},a.detachAxis=function(e,t){var a=this.getLinkedItem("axes"),i=Infinity;return t?a.splice(t,1):(a.forEach((function(t,a){t.axis===e&&(i=a)})),a.splice(i,1))},a.preDraw=function(){this._mapChildren((function(e){e.getState("removed")||e.preDraw&&e.preDraw()}))},a.draw=function(){this.createGroup(),!this.getFromEnv("chart").config.skipCanvasDrawing&&this.drawCanvas()},a.drawCanvas=function(){var e,t,a,i,n,o,r,s=this,c=s.getFromEnv("chart"),p=c.isBar,f=s.getFromEnv("chart-attrib"),m=s.getFromEnv("animationManager"),v=c.config,b=s.config,x=b.clip={},y=c.getChildContainer("plotGroup"),C=c.getChildContainer("datalabelsGroup"),k=s.getGraphicalElement("canvasBorderElement"),S=s.getGraphicalElement("canvasElement"),w=b.canvasLeft||(b.canvasLeft=v.canvasLeft),L=b.canvasTop||(b.canvasTop=v.canvasTop),A=b.canvasWidth||(b.canvasWidth=v.canvasWidth),N=b.canvasHeight||(b.canvasHeight=v.canvasHeight),F=b.xDepth=v.xDepth||0,E=b.yDepth=v.yDepth||0,_=s.getContainer("canvasGroup"),T=s.getChildContainer("quadrantGroup"),P=b.canvasBorderRadius,D=b.canvasBorderWidth,I=.5*D,M=b.canvasBorderColor,O=b.canBGColor,R=b.canBGAlpha,V=b.shadow,B=b.showCanvasBG=Boolean((0,l.pluckNumber)(f.showcanvasbg,1)),G=b.shadowOnCanvasFill,H=b.showCanvasBorder;i=O,n={x:w-I,y:L-I,width:A+D,height:N+D,r:P,"stroke-width":D,stroke:M,"stroke-linejoin":D>2?g:u},H?(k&&k.show(),t=m.setAnimation({el:k||"rect",component:s,attr:{x:w-I,y:L-I,width:A+D,height:N+D,r:P,"stroke-width":D,stroke:M,"stroke-linejoin":D>2?g:u},label:"rect",container:_}).shadow(V),k||s.addGraphicalElement("canvasBorderElement",t)):k&&(s.removeGraphicalElement(k),m.setAnimation({el:k,component:s,callback:function(){k.hide()}})),o=H?0:b.oriCanvasBorderThickness,x["clip-canvas"]=[h(0,w-F-o),h(0,L-E-o),h(1,A+2*F+2*o),h(1,N+E+2*o)],x["clip-sum-value"]=[h(0,w-F),p?L:0,h(1,p?v.width-w:A+2*F),h(1,p?N+E:L+N)],x["clip-canvas-init"]=[h(0,w-F),h(0,L-E),1,h(1,N+2*E)],e=x["clip-canvas"].slice(0),r=function(e,t){m.setAnimation({el:e,attr:{"clip-rect":t},label:"container",component:s,state:e.attrs["clip-rect"]?"updating":"appearing"})},v.skipClipping||(r(y,e),r(C,e),r(T,e),r(s.getChildContainer("sumLabelsLayer"),x["clip-sum-value"])),B?(n={x:w,y:L,width:A,height:N,r:P,"stroke-width":0,stroke:d,fill:(0,l.toRaphaelColor)(i)},S&&S.show(),a=m.setAnimation({el:S||"rect",attr:n,label:"rect",container:_,component:s}),S||s.addGraphicalElement("canvasElement",a),G?a.shadow({opacity:R/100}):a.shadow(!1)):S&&m.setAnimation({el:S,component:s,callback:function(){S.hide()}})},t}(r.ComponentInterface);t["default"]=f},410:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]={"initial.canvas.canvas":function(){return{"rect.appearing":function(){return[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"initial"}]},"*":null}},"update.canvas.canvas":{"rect.updating":[{slot:"middle"}]}}},411:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=function(e){var t,a=e,l=a.config,s=a.getFromEnv("chart-attrib"),c="t"===l.toolbarVAlign?"chartMenuBar":"actionBar",h="t"===l.toolbarVAlign?"actionBar":"chartMenuBar";(0,i.componentFactory)(a,n.ToolBar,h,0,[s]),(0,i.componentFactory)(a,n.ToolBar,c,1,[s]),t=a.getChildren(c)[0],a.addToEnv("toolbar",t),o.SymbolStore.register("ContextIcon",(function(e,t,a){var i=e,n=t,o=2*a,l=r(o/4),s=.7*r(o/2),c=i-s,h=i+s,u=n+l,d=n-l;return["M",c,n,"L",h,n,"M",c,u,"L",h,u,"M",c,d,"L",h,d]})),a.attachMenuButtons()};var i=a(184),n=a(293),o=a(297),r=Math.round},412:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=a(184),r=a(199),l=a(192),s=i(a(413)),c=Math.max,h=Math.min,u=Math.ceil;(0,l.addDep)({name:"captionAnimation",type:"animationRule",extension:s["default"]});var d=function(e){function t(){return e.apply(this,arguments)||this}(0,n["default"])(t,e);var a=t.prototype;return a.getType=function(){return"caption"},a.getName=function(){return"caption"},a.configure=function(){var e=this.getFromEnv("chart"),t=e.getFromEnv("chart-attrib"),a=this.config||{},i=e.getFromEnv("style"),n=i.outCanfontFamily,r=i.outCancolor,l=i.fontSize,s=["top","center"];switch(this.config.text=(0,o.parseUnsafeString)(t.caption),a.style={fontFamily:(0,o.pluck)(t.captionfont,n),color:(0,o.convertColor)((0,o.pluck)(t.captionfontcolor,r).replace(/^#? ([a-f0-9]+)/gi,"#$1")),fontSize:(0,o.pluckNumber)(t.captionfontsize,l+3)+"px",fontWeight:0===(0,o.pluckNumber)(t.captionfontbold)?o.NORMAL:o.BOLD},a.align||(a.align=o.BLANKSTRING),a.align=(0,o.pluck)(t.captionposition,t.captionalignment,"center"),a.align&&((s=a.align.split("-"))[0]&&(s[0]=s[0].toLowerCase()),s[1]&&(s[1]=s[1].toLowerCase()),s.length<2&&(s[1]=s[0])),s[0]){case"top":a.isOnTop=1;break;case"bottom":a.isOnTop=0;break;default:a.isOnTop=(0,o.pluckNumber)(t.captionontop,1)}switch(s[1]){case"right":a.align="end";break;case"left":a.align="start";break;default:a.align="middle"}a.isOnLeft=!(0,o.pluckNumber)(t.captiononright,0),a.captionPosition=(0,o.getValidValue)(t.captionposition,"top").toLowerCase(),a.alignWithCanvas=(0,o.pluckNumber)(t.aligncaptionwithcanvas,e.config.alignCaptionWithCanvas,1),a.horizontalPadding=(0,o.pluckNumber)(t.captionhorizontalpadding,a.alignWithCanvas?0:15),a.drawCaption=!0,(0,o.setLineHeight)(a.style)},a.allocatePosition=function(){this.getFromEnv("chart")._manageCaptionPosition()},a.draw=function(){var e,t=this.getFromEnv("chart"),a=t.config,i=t.getFromEnv("animationManager"),n=t.config.textDirection,r=t.getChildContainer().captionGroup,l=t.getFromEnv("smartLabel"),s=this.getGraphicalElement("captionElement"),c=this.getFromEnv("toolTipController"),h=this.config,u=h.style,d=h.text,g=h.x,p=h.align;d?(e={text:h.text,fill:u.color,x:g,y:h.y,"text-anchor":p||"middle","vertical-align":h.verticalAlign||"top",visibility:h.drawCaption?o.visibleStr:o.hiddenStr,direction:n},(s=this.addGraphicalElement("captionElement",i.setAnimation({el:s||"text",attr:e,container:r,state:void 0,component:this,label:"text"}))).css(u),a.showtooltip?c.enableToolTip(s,h.originalText):c.disableToolTip(s),l&&(l.useEllipsesOnOverflow(a.useEllipsesWhenOverflow),l.setStyle(u))):s&&i.setAnimation({el:s,component:this,callback:function(){this.hide()},doNotRemove:!0}),a.savedCaption=s},a.manageSpace=function(e,t){var a,i,n,r,l,s=this.getFromEnv("chart"),d=s.config,g=s.getChildren("caption")[0],p=s.getChildren("subCaption")[0],f=g.config,m=p.config,v=s.getFromEnv("dataSource").chart,b=s.getFromEnv("smartLabel"),x=e,y=(0,o.parseUnsafeString)(v.caption),C=(0,o.parseUnsafeString)(v.subcaption),k=(0,o.pluckNumber)(v.captionpadding,10),S=k,w=!1,L=0,A=0,N=0,F=0,E=0,_=s.getChildren("canvas"),T=c(_&&_[0].config.canvasBorderThickness,0),P=0,D=0;return x>3?(k<T&&(k=T+2),y!==o.BLANKSTRING&&(n=f.style,F=u((0,o.pluckNumber)(parseFloat(n.fontHeight,10),parseFloat(n.lineHeight,10),12))),C!==o.BLANKSTRING&&(l=m.style,E=(0,o.pluckNumber)(parseInt(l.fontHeight,10),parseInt(l.lineHeight,10),12)),(F>0||E>0)&&((L=F+E+k)>(x=c(x,0))?(w=!0,(A=L-x)<k?k=c(A,5):(A-=k,k=0,E>A?(N=E-A+10,E=0,m._originalText=m.text,m.text=o.BLANKSTRING):(A-=E,E=0,F>A&&(N=F-A)))):N=x-L,b.useEllipsesOnOverflow(d.useEllipsesWhenOverflow),F>0&&(b.setStyle(n),N=(F+=N)-(a=b.getSmartText(y,t,F)).height,f.height=F=a.height,f.text=a.text,f.originalText=!!a.tooltext&&a.tooltext,P=a.width),E>0&&(b.setStyle(l),N=(E+=N)-(i=b.getSmartText(C,t,E)).height,E=i.height,m.text=i.text,m.height=i.height,m.originalText=!!i.tooltext&&i.tooltext,D=i.width),w&&N>0&&(k+=h(S-k,N)),f.captionPadding=k,f.height=F,f.width=P,m.width=D,m.height=E,L=F+E+k),L>d.canvasHeight?(L=0,f.drawCaption=!1):f.drawCaption=!0,r=f.isOnTop?{top:L}:{bottom:L,top:5}):(r={bottom:0,top:0},f.drawCaption=!1),r},a.setDimention=function(e){var t=this.config;t.x=e.x,t.y=e.y},t}(r.ComponentInterface);t["default"]=d},413:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]={"initial.caption.caption":function(){return{"text.appearing":function(){return[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"initial"}]}}}}},414:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=a(184),r=i(a(412)),l=a(192),s=i(a(415)),c=Math.max;(0,l.addDep)({name:"subcaptionAnimation",type:"animationRule",extension:s["default"]});var h=function(e){function t(){return e.apply(this,arguments)||this}(0,n["default"])(t,e);var a=t.prototype;return a.getType=function(){return"caption"},a.getName=function(){return"subCaption"},a.configure=function(){var e=this.getFromEnv("chart"),t=e.getFromEnv("chart-attrib"),a=this.config||{},i=e.getFromEnv("style"),n=e.getChildren("caption")[0],r=i.outCanfontFamily,l=i.outCancolor,s=i.fontSize,h=["top","center"];switch(a.text=(0,o.parseUnsafeString)(t.subcaption),a.align||(a.align=o.BLANKSTRING),a.align=(0,o.pluck)(t.captionposition,t.captionalignment,"center"),n.config.align&&((h=n.config.align.split("-"))[0]&&(h[0]=h[0].toLowerCase()),h[1]&&(h[1]=h[1].toLowerCase()),h.length<2&&(h[1]=h[0])),h[0]){case"top":a.isOnTop=1;break;case"bottom":a.isOnTop=0;break;default:a.isOnTop=(0,o.pluckNumber)(t.captionontop,1)}a.alignWithCanvas=(0,o.pluckNumber)(e.aligncaptionwithcanvas,t.aligncaptionwithcanvas,1),a.horizontalPadding=(0,o.pluckNumber)(t.captionhorizontalpadding,n.config.alignWithCanvas?0:15),a.style={fontFamily:(0,o.pluck)(t.subcaptionfont,t.captionfont,r),color:(0,o.convertColor)((0,o.pluck)(t.subcaptionfontcolor,t.captionfontcolor,l).replace(/^#? ([a-f0-9]+)/gi,"#$1")),fontSize:(0,o.pluckNumber)(t.subcaptionfontsize,(0,o.pluckNumber)(c((0,o.pluckNumber)(t.captionfontsize)-3,-1),s)+(0,o.pluckNumber)(e.subTitleFontSizeExtender,1))+"px",fontWeight:0===(0,o.pluckNumber)(t.subcaptionfontbold,e.subTitleFontWeight,t.captionfontbold)?o.NORMAL:o.BOLD},(0,o.setLineHeight)(a.style)},a.draw=function(){var e,t=this.getFromEnv("chart"),a=t.getFromEnv("animationManager"),i=t.getChildren("caption")[0],n=t.config,r=n.textDirection,l=t.getChildContainer().captionGroup,s=this.getGraphicalElement("subCaptionElement"),c=this.getFromEnv("toolTipController"),h=this.config,u=h.style,d=h.text,g=i.config.align;d?(e={text:h.text,fill:u.color,x:h.x,y:h.y,"text-anchor":g||"middle","vertical-align":"top",direction:r,visibility:i.config.drawCaption?o.visibleStr:o.hiddenStr},(s=this.addGraphicalElement("subCaptionElement",a.setAnimation({el:s||"text",attr:e,container:l,state:void 0,component:this,hookFn:function(){this.css(u)},label:"text"}))).css(u),n.showtooltip?c.enableToolTip(s,h.originalText):c.disableToolTip(s)):s&&this.removeGraphicalElement(s),n.savedSubCaption=s},a.setDimention=function(e){this.config.x=e.x,this.config.y=e.y},t}(r["default"]);t["default"]=h},415:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n={"initial.caption.subCaption":i(a(413))["default"]["initial.caption.caption"]};t["default"]=n},416:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(201)),o=i(a(198)),r=a(199),l=a(184),s=a(192),c=i(a(417)),h="BackgroundLoaded",u="BackgroundLoadError",d="none",g=function(e){var t=e.config;return{load:function(){var a=t.bgImageDisplayMode,i=t.bgImageVAlign,n=t.bgImageHAlign,o=t.bgImageScale,r=t.bgSWFAlpha,l=t.bgSWF,s=e.getGraphicalElement("backgroundImage")._.RefImg;e.getFromEnv("chart").fireChartInstanceEvent(h,{url:l,bgImageAlpha:r,bgImageDisplayMode:a,bgImageVAlign:i,bgImageHAlign:n,bgImageScale:o,imageheight:s.height,imagewidth:s.width})},error:function(a){var i=t.bgImageDisplayMode,n=t.bgImageVAlign,o=t.bgImageHAlign,r=t.bgImageScale,l=t.bgSWFAlpha,s=t.bgSWF;e.getFromEnv("chart").fireChartInstanceEvent(u,{url:s,bgImageAlpha:l,error:a,bgImageDisplayMode:i,bgImageVAlign:n,bgImageHAlign:o,bgImageScale:r})}}};(0,s.addDep)({name:"backgroundAnimation",type:"animationRule",extension:c["default"]});var p=function(e){function t(){var t;return(t=e.call(this)||this).config.handler=g((0,n["default"])(t)),t}(0,o["default"])(t,e);var a=t.prototype;return a.getName=function(){return"background"},a.getType=function(){return"background"},a._getBackgroundCosmetics=function(){var e=this.getFromEnv("chart-attrib"),t=this.getFromEnv("color-manager"),a=this.getFromEnv("chartConfig").is3D?l.chartPaletteStr.chart3D:l.chartPaletteStr.chart2D;return{FCcolor:{color:(0,l.pluck)(e.bgcolor,t.getColor(a.bgColor)),alpha:(0,l.pluck)(e.bgalpha,t.getColor(a.bgAlpha)),angle:(0,l.pluck)(e.bgangle,t.getColor(a.bgAngle)),ratio:(0,l.pluck)(e.bgratio,t.getColor(a.bgRatio))}}},a.configureAttributes=function(){var e,t,a,i=this.config,n=this.getFromEnv("chart-attrib"),o=this.getFromEnv("chartConfig"),r=o.is3D,s=this.getFromEnv("color-manager"),c=i.bgImageDisplayMode=(0,l.pluck)(n.bgimagedisplaymode,"none").toLowerCase();i.bgSWF=(0,l.pluck)(n.bgimage,n.bgswf),i.bgSWFAlpha=(0,l.pluckNumber)(n.bgimagealpha,n.bgswfalpha,100),e=i.showBorder=(0,l.pluckNumber)(n.showborder,o.showBorder,r?0:1),i.borderWidth=Math.max(e?(0,l.pluckNumber)(n.borderthickness,1):0,0),i.borderRadius=(0,l.pluckNumber)(n.borderradius,0),i.borderDashStyle=(0,l.pluckNumber)(n.borderdashed,0)?(0,l.getDashStyle)((0,l.pluckNumber)(n.borderdashlen,4),(0,l.pluckNumber)(n.borderdashgap,2),void 0):d,i.borderAlpha=(0,l.pluck)(n.borderalpha,r?"100":s&&s.getColor("borderAlpha")),i.borderColor=(0,l.convertColor)((0,l.pluck)(n.bordercolor,r?"#666666":s&&s.getColor("borderColor")),i.borderAlpha),i.bgImageVAlign=t=(0,l.getValidValue)(n.bgimagevalign,"").toLowerCase(),i.bgImageHAlign=a=(n.bgimagehalign||"").toLowerCase(),i.bgImageScale=(0,l.pluckNumber)(n.bgimagescale,100),i.containerBackgroundColor=(0,l.getContainerBackgroundColor)(this.getFromEnv("chartInstance")),i.backgroundColor=this._getBackgroundCosmetics(),"tile"===c||"fill"===c||"fit"===c?("top"!==t&&"middle"!==t&&"bottom"!==t&&(i.bgImageVAlign="middle"),"left"!==a&&"middle"!==a&&"right"!==a&&(i.bgImageHAlign="middle")):("top"!==t&&"middle"!==t&&"bottom"!==t&&(i.bgImageVAlign="top"),"left"!==a&&"middle"!==a&&"right"!==a&&(i.bgImageHAlign="left"))},a.draw=function(){var e,t,a,i,n,o,r=this.getFromEnv("paper"),s=this.getGraphicalElement("backgroundElement"),c=this.getGraphicalElement("borderElement"),h=this.config,u=this.getFromEnv("chart"),d=this.getFromEnv("chartConfig"),g=h.backgroundColor,p=this.getFromEnv("animationManager"),f=this.getGraphicalElement("backgroundImage"),m=h.bgSWF,v=u.getChildContainer("backgroundGroup"),b=d.width,x=d.height,y=h.borderWidth||0,C=h.borderRadius,k=h.borderDashStyle,S=h.borderColor,w=h.bgSWFAlpha,L=y+","+y+","+(b-2*y)+","+(x-2*y),A=h.bgImageDisplayMode,N=h.bgImageVAlign,F=h.bgImageHAlign,E=h.bgImageScale;r.canvas.style.backgroundColor=h.containerBackgroundColor,a={x:y,y:y,width:(o=b-2*y)<0?0:o,height:(n=x-2*y)>0?n:0,stroke:l.preDefStr.noneStr,fill:(0,l.toRaphaelColor)(g)},(e=p.setAnimation({el:s||"rect",attr:a,container:v,component:this,label:"rect"})).show(),s||this.addGraphicalElement("backgroundElement",e),a={x:y/2,y:y/2,width:(o=b-y)<0?0:o,height:(n=x-y)>0?n:0,stroke:S,"stroke-width":y,"stroke-dasharray":k,fill:l.preDefStr.noneStr,r:C||0},(t=p.setAnimation({el:c||"rect",attr:a,container:v,component:this,label:"rect"})).show(),c||this.addGraphicalElement("borderElement",t),m&&!this.getState("removed")?((i=p.setAnimation({el:f||"imagegrid",attr:{imagegrid:[A,N,F,E,y,b,x],src:m,opacity:.01*w,"clip-rect":L},container:v,component:this,label:"imagegrid"})).show(),f||(this.addGraphicalElement("backgroundImage",i),i.on("load",h.handler.load),i.on("error",h.handler.error))):f&&this.removeGraphicalElement(f)},t}(r.ComponentInterface);t["default"]=p},417:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]={"initial.background.background":function(){return{"rect.appearing":function(){return[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"initial"}]}}}}},418:function(e,t,a){"use strict";var i=a(178),n=a(182);t.__esModule=!0,t["default"]=void 0;var o=a(184),r=n(a(419)),l=i(a(321));function s(e,t){var a,i,n,r,l,s,c,h,d,g,p,f=u.stringConstants,m=t.replace(/\s/g,f.BLANK).toLowerCase(),v=[];if(m===f.BLANK||null==m)v=[e];else for(n=m.split(f.COMMASTRING),r=e.split(f.COMMASTRING),l=Math.max(n.length,r.length,1),s=n[0],c=r[0],g=/[\{\}]/gi,p=0;p<l;p++)h=(n[p]||s).replace(g,""),d=r[p]||c,"color"===h?v.push(d):"light"===h.substr(0,5)?(i=100-(i=-1===(a=h.indexOf("-"))?1:h.substr(a+1,h.length-a)),v.push((0,o.getLightColor)(d,i))):"dark"===h.substr(0,4)?(i=100-(i=-1===(a=h.indexOf("-"))?1:h.substr(a+1,h.length-a)),v.push((0,o.getDarkColor)(d,i))):v.push(h);return v}function c(e,t){var a,i,n=e.toString().split(u.stringConstants.COMMASTRING),r=[],l=100;for(i=0;i<t;i++)a=(0,o.pluckNumber)(n[i]),u.defined(a)&&(l=a),r[i]=l;return r.join()}function h(e,t){var a,i,n=e.split(u.stringConstants.COMMASTRING),o=[],r=0;for(i=0;i<t;i++)a=n[i],a=(a=isNaN(a)||void 0===a?0:Math.abs(Number(a)))>100?100:a,o[i]=a,r+=a;if(r=r>100?100:r,n.length<t)for(i=n.length;i<t;i++)o[i]=(100-r)/(t-n.length);return o[-1]=0,o.join()}var u=function(){function e(e){this.parseColorMix=s,this.parseAlphaList=c,this.parseRatioList=h,this.linkedItems={iapi:e},this.configure(),this.paletteColors=["AFD8F8","F6BD0F","8BBA00","FF8E46","008E8E","D64646","8E468E","588526","B3AA00","008ED6","9D080D","A186BE","CC6600","FDC689","ABA000","F26D7D","FFF200","0054A6","F7941C","CC3300","006600","663300","6DCFF6"]}var t=e.prototype;return t.configure=function(){var t=this,a=e.stringConstants,i=t.linkedItems.iapi,n=i.getFromEnv("dataSource").chart||{},s=t.paletteOptions=(0,o.extend2)((0,o.extend2)({},r),i.defaultPaletteOptions||{},!1,!0),c=t.themeEnabled=n.palettethemecolor;t.paletteIndex=(n.palette>0&&n.palette<6?n.palette:(0,o.pluckNumber)(i.paletteIndex,1))-1,t.iterator=0,t.paletteColors=s.paletteColors[t.themeEnabled?0:t.paletteIndex],e.defined(n.palettecolors)&&n.palettecolors!==a.BLANK&&(t.paletteColors=(0,l["default"])(n.palettecolors)?n.palettecolors.slice():n.palettecolors.split(/\s*\,\s*/)),t.paletteLen=t.paletteColors.length,t.useFlatColors=(0,o.pluckNumber)(n.useflatdataplotcolor,i.useFlatColor,0),c&&(t.paletteIndex=5,s.bgColor[5]=(0,o.getLightColor)(c,35)+a.COMMASTRING+(0,o.getLightColor)(c,10),s.bgAngle[5]=270,s.bgRatio[5]=a.BGRATIOSTRING,s.bgAlpha[5]="50,50",s.canvasBgColor[5]=a.COLOR_WHITE,s.canvasBgAngle[5]=0,s.canvasBgAlpha[5]=a.HUNDREDSTRING,s.canvasBgRatio[5]=a.BLANK,s.canvasBorderColor[5]=(0,o.getDarkColor)(c,80),s.canvasBorderAlpha[5]=100,s.showShadow[5]=1,s.divLineColor[5]=(0,o.getDarkColor)(c,20),s.divLineAlpha[5]=40,s.altHGridColor[5]=(0,o.getLightColor)(c,20),s.altHGridAlpha[5]=15,s.altVGridColor[5]=(0,o.getLightColor)(c,80),s.altVGridAlpha[5]=10,s.anchorBgColor[5]=a.COLOR_WHITE,s.toolTipBgColor[5]=a.COLOR_WHITE,s.toolTipBorderColor[5]=(0,o.getDarkColor)(c,80),s.baseFontColor[5]=c.split&&c.split(a.COMMASTRING)[0],s.borderColor[5]=(0,o.getDarkColor)(c,60),s.borderAlpha[5]=50,s.legendBgColor[5]=a.COLOR_WHITE,s.legendBorderColor[5]=(0,o.getDarkColor)(c,80),s.plotGradientColor[5]=a.COLOR_WHITE,s.plotBorderColor[5]=(0,o.getDarkColor)(c,85),s.plotFillColor[5]=(0,o.getDarkColor)(c,85),s.bgColor3D[5]=a.COLOR_WHITE,s.bgAlpha3D[5]=a.HUNDREDSTRING,s.bgAngle3D[5]=90,s.bgRatio3D[5]=a.BLANK,s.canvasBgColor3D[5]=(0,o.getLightColor)(c,20),s.canvasBaseColor3D[5]=(0,o.getLightColor)(c,40),s.divLineColor3D[5]=(0,o.getDarkColor)(c,20),s.divLineAlpha3D[5]=40,s.legendBgColor3D[5]=a.COLOR_WHITE,s.legendBorderColor3D[5]=(0,o.getDarkColor)(c,80),s.toolTipbgColor3D[5]=a.COLOR_WHITE,s.toolTipBorderColor3D[5]=(0,o.getDarkColor)(c,80),s.baseFontColor3D[5]=c.split&&c.split(a.COMMASTRING)[0],s.anchorBgColor3D[5]=a.COLOR_WHITE,s.tickColor&&(s.tickColor[5]=(0,o.getDarkColor)(c,90)),s.trendDarkColor&&(s.trendDarkColor[5]=(0,o.getDarkColor)(c,90)),s.trendLightColor&&(s.trendLightColor[5]=(0,o.getLightColor)(c,s.TrendLightShadeOffset)),s.msgLogColor&&(s.msgLogColor[5]=(0,o.getLightColor)(c,80)),s.dialColor&&(s.dialColor[5]=(0,o.getDarkColor)(c,95)+",FFFFFF,"+(0,o.getDarkColor)(c,95)),s.dialBorderColor&&(s.dialBorderColor[5]=(0,o.getDarkColor)(c,95)+",FFFFFF,"+(0,o.getDarkColor)(c,95)),s.pivotColor&&(s.pivotColor[5]=(0,o.getLightColor)(c,95)+",FFFFFF,"+(0,o.getLightColor)(c,95)),s.pivotBorderColor&&(s.pivotBorderColor[5]=(0,o.getDarkColor)(c,95)+",FFFFFF,"+(0,o.getDarkColor)(c,95)),s.pointerBorderColor&&(s.pointerBorderColor[5]=(0,o.getDarkColor)(c,75)),s.pointerBgColor&&(s.pointerBgColor[5]=(0,o.getDarkColor)(c,75)),s.thmBorderColor&&(s.thmBorderColor[5]=(0,o.getDarkColor)(c,90)),s.thmFillColor&&(s.thmFillColor[5]=(0,o.getLightColor)(c,55)),s.gaugeBorderColor&&(s.gaugeBorderColor[5]=(0,o.getDarkColor)(c,90)),s.gaugeFillColor&&(s.gaugeFillColor[5]=(0,o.getLightColor)(c,55)),s.cylFillColor&&(s.cylFillColor[5]=(0,o.getLightColor)(c,55)),s.periodColor&&(s.periodColor[5]=(0,o.getLightColor)(c,10)),s.winColor&&(s.winColor[5]="666666"),s.lossColor&&(s.lossColor[5]="CC0000"),s.drawColor&&(s.drawColor[5]="666666"),s.scorelessColor&&(s.scorelessColor[5]="FF0000"),s.gridColor&&(s.gridColor[5]=(0,o.getLightColor)(c,30)),s.categoryBgColor&&(s.categoryBgColor[5]=(0,o.getLightColor)(c,10)),s.dataTableBgColor&&(s.dataTableBgColor[5]=(0,o.getLightColor)(c,10)),s.gridResizeBarColor&&(s.gridResizeBarColor[5]=(0,o.getDarkColor)(c,90)),s.scrollBarColor&&(s.scrollBarColor[5]=(0,o.getLightColor)(c,50)))},t.getColor=function(e){return this.paletteOptions[e][this.paletteIndex]},t.getPlotColor=function(e){var t=this,a=t.paletteColors,i=t.useFlatColors?t.getColor("plotFillColor"):a[e%t.paletteLen];return i||(t.iterator===t.paletteLen&&(t.iterator=0),i=a[t.iterator],t.iterator+=1),i},e}();u.stringConstants={BLANK:"",COMMASTRING:",",BGRATIOSTRING:"0,100",COLOR_WHITE:"FFFFFF",HUNDREDSTRING:"100"},u.defined=function(e){return null!=e};var d=u;t["default"]=d},419:function(e,t,a){"use strict";t.__esModule=!0,t.anchorBgColor3D=t.baseFontColor3D=t.toolTipBorderColor3D=t.toolTipbgColor3D=t.legendBorderColor3D=t.legendBgColor3D=t.divLineAlpha3D=t.divLineColor3D=t.canvasBaseColor3D=t.canvasBgColor3D=t.bgRatio3D=t.bgAngle3D=t.bgAlpha3D=t.bgColor3D=t.plotFillColor=t.plotBorderColor=t.plotGradientColor=t.legendBorderColor=t.legendBgColor=t.borderAlpha=t.borderColor=t.baseFontColor=t.toolTipBorderColor=t.toolTipBgColor=t.anchorBgColor=t.altVGridAlpha=t.altVGridColor=t.altHGridAlpha=t.altHGridColor=t.divLineAlpha=t.divLineColor=t.showShadow=t.canvasBorderAlpha=t.canvasBorderColor=t.canvasBgRatio=t.canvasBgAlpha=t.canvasBgAngle=t.canvasBgColor=t.bgAlpha=t.bgRatio=t.bgAngle=t.bgColor=t.paletteColors=void 0;var i=["AFD8F8","F6BD0F","8BBA00","FF8E46","008E8E","D64646","8E468E","588526","B3AA00","008ED6","9D080D","A186BE","CC6600","FDC689","ABA000","F26D7D","FFF200","0054A6","F7941C","CC3300","006600","663300","6DCFF6"],n=[i,i,i,i,i],o=[270,270,270,270,270],r=["0,100","0,100","0,100","0,100","0,100"],l=["FFFFFF","FFFFFF","FFFFFF","FFFFFF","FFFFFF"],s=["100","100","100","100","100"],c=["","","","",""],h=[100,100,100,90,100],u=["FFFFFF","FFFFFF","FFFFFF","FFFFFF","FFFFFF"],d=["FFFFFF","FFFFFF","FFFFFF","FFFFFF","FFFFFF"],g=["FFFFFF","FFFFFF","FFFFFF","FFFFFF","FFFFFF"],p=["FFFFFF","FFFFFF","FFFFFF","FFFFFF","FFFFFF"],f=["333333","8A8A8A","FFFFFF","FFFFFF","FFFFFF"],m=["FFFFFF","FFFFFF","FFFFFF","FFFFFF","FFFFFF"],v=["100","100","100","100","100"],b=["","","","",""],x=[100,100,100,100,100],y=["FFFFFF","FFFFFF","FFFFFF","FFFFFF","FFFFFF"],C=["FFFFFF","FFFFFF","FFFFFF","FFFFFF","FFFFFF"];t.anchorBgColor3D=C,t.baseFontColor3D=["49563A","4A4A4A","49351D","48505A","681C09"],t.toolTipBorderColor3D=["49563A","666666","49351D","576373","681C09"],t.toolTipbgColor3D=y,t.legendBorderColor3D=["C6CFB8","C8C8C8","DFC29C","CFD5DA","FAD1C7"],t.legendBgColor3D=["F0F3ED","F3F3F3","F7F0E8","EEF0F2","FEF8F5"],t.divLineAlpha3D=x,t.divLineColor3D=["ACBB99","A4A4A4","BE9B6B","7C8995","D49B8B"],t.canvasBaseColor3D=["ACBB99","BCBCBD","C8A06C","96A4AF","FAC7BC"],t.canvasBgColor3D=["DDE3D5","D8D8D7","EEDFCA","CFD2D8","FEE8E0"],t.bgRatio3D=b,t.bgAngle3D=[90,90,90,90,90],t.bgAlpha3D=v,t.bgColor3D=m,t.plotFillColor=["767575","D8DCC5","99C4CD","DEC49C","FEC1D0"],t.plotBorderColor=f,t.plotGradientColor=p,t.legendBorderColor=["545454","545454","415D6F","845001","D55979"],t.legendBgColor=g,t.borderAlpha=[50,50,50,50,50],t.borderColor=["767575","545454","415D6F","845001","68001B"],t.baseFontColor=["555555","60634E","025B6A","A15E01","68001B"],t.toolTipBorderColor=["545454","545454","415D6F","845001","68001B"],t.toolTipBgColor=d,t.anchorBgColor=u,t.altVGridAlpha=[10,20,10,15,10],t.altVGridColor=["767575","D8DCC5","99C4CD","DEC49C","FEC1D0"],t.altHGridAlpha=[50,35,10,20,15],t.altHGridColor=["EEEEEE","D8DCC5","99C4CD","DEC49C","FEC1D0"],t.divLineAlpha=[40,45,65,40,30],t.divLineColor=["717170","7B7D6D","92CDD6","965B01","68001B"],t.showShadow=[0,1,1,1,1],t.canvasBorderAlpha=h,t.canvasBorderColor=["545454","545454","415D6F","845001","68001B"],t.canvasBgRatio=c,t.canvasBgAlpha=s,t.canvasBgAngle=[0,0,0,0,0],t.canvasBgColor=l,t.bgAlpha=["50,50","60,50","40,20","20,10","30,30"],t.bgRatio=r,t.bgAngle=o,t.bgColor=["CBCBCB,E9E9E9","CFD4BE,F3F5DD","C5DADD,EDFBFE","A86402,FDC16D","FF7CA0,FFD1DD"],t.paletteColors=n},420:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]={"*.*.*":{"*.disappearing":[{finalAttr:{opacity:0},slot:"initial",callback:function(){this.hide()}}]}}},421:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=function(e){var t,a,i=e.getChildren("canvas")[0],l=i.getChildren("axisRefVisualCartesian")[0],s={zoomable:!0,pannable:!0},c=e._feedAxesRawData(),h=function(e){var t=e.sender;l.addexplicitDrawItems(t.getId(),t),l.asyncDraw()};(0,n.componentFactory)(e,o["default"],"yAxis",1,c.yAxisConf),(0,n.componentFactory)(e,r["default"],"xAxis",1,c.xAxisConf),t=e.getChildren("yAxis")[0],a=e.getChildren("xAxis")[0],t.setLinkedItem("canvas",i),a.setLinkedItem("canvas",i),l.setLinkedItem(t.getId(),t),l.setLinkedItem(a.getId(),a),l.addExtEventListener("visiblerangeset",h,a),l.addExtEventListener("visiblerangeset",h,t),i.attachAxis(a,!1,e.zoomX?s:{}),i.attachAxis(t,!0,e.zoomY?s:{}),e._setCategories()};var n=a(184),o=i(a(422)),r=i(a(470))},422:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(423)),r=i(a(426)),l=i(a(449)),s=i(a(450)),c=i(a(451)),h=a(458),u=a(184),d=function(e){function t(){var t;return(t=e.call(this)||this).config.scale=new r["default"],t}(0,n["default"])(t,e);var a=t.prototype;return a.getName=function(){return"numeric"},a.generateTicks=function(){var e,t,a,i=this.getScale(),n=this.config,o=n.numDivLines+1,r=i.getDomain(),c=r[0],h=r[1],u=n.axisRange,d=u.min,g=u.max,p=n.dataLimit;return c===d&&h===g?((0,s["default"])(p.min,p.max,i,n),n.ticks):(e=i.ticks(o),t=Math.abs(e[1]-e[0]),c===d&&-1===e.indexOf(d)&&e.unshift(d),h===g&&-1===e.indexOf(g)&&e.push(g),(a=Math.abs(d%t))&&(d-=a),(a=Math.abs(g%t))&&(g-=a),n._allTicks=(0,l["default"])(d,g,t).concat(g),u.tickInterval=t,e)},a.setTickValues=function(e){this.config.userTicks=e||[],this.config.tickValues={tickValue:[]}},a._parseTickValues=function(e){var t,a,i,n,o=this.getFromEnv("chart"),r=this.config,l=e&&e.length,s=0;for(r.tickValues={},t=r.tickValues.tickValue=[],i=0;i<l;i+=1)if(a=(0,u.extend2)({},e[i]),n=Number(a.x),!a.vline){if((0,h.extractStyleInfo)(a,o),!n&&0!==n)continue;a.x=n,r.irregularCatAxis=!0,t.push(a),t[s].label=(0,u.parseUnsafeString)(t[s].label),s+=1}r.oriCatLen=s},a.calculateTicksOnLabelMode=function(){var e,t,a,i,n,o,r,l=this.config,s=l.xAxisLabelMode,c=Object.assign([],l.userTicks),h=this.getFromEnv("number-formatter");if("mixed"===s||"auto"===s){if(t=[],e=h.xAxis,"mixed"===s)for(a=0,n=c.length;a<n;a+=1)t[c[a].x||c[a].y||a]=!0;else c=[];for(r=this.getAxisConfig(),o=l.ticks,i=0;i<o.length;++i)t[a=o[i]]||c.push({label:u.BLANKSTRING+e.call(h,a),x:a,showverticalline:0===a?r.showZeroPlane:1,isNumeric:!0,linecolor:0===a?r.zeroPlaneColor:r.divLineColor,linealpha:0===a?r.zeroPlaneAlpha:r.divLineAlpha,linethickness:0===a?r.zeroPlaneThickness:r.divLineThickness,linedashed:r.divLineIsDashed,linedashLen:r.divLineDashLen,linedashgap:r.divLineDashGap})}this._parseTickValues(c)},a.getInterval=function(){return this.config.axisRange.tickInterval},a._setAxisRange=function(e){var t,a,i,n=e.min,r=e.max,l=this.config,c=l.axisRange,h=l.dataLimit,u=l.dependentInfo;if(!(n>r))if(h.min===n&&h.max===r||(a=!0),void 0===l.visibleMin||l.setPadding||a){var d=(0,o["default"])([n,r,h.min,h.max]);if(n=d[0],r=d[1],h.min=n,h.max=r,this.fireEvent("dataLimitSet",Object.assign({},h)),u){if(u.limit){if(!(t=u.dataLimit))return;var g=(0,o["default"])([n,r,t.min,t.max]);n=g[0],r=g[1],l.isDataLimitSet=!0}if(u.count&&void 0===u.numDivLines)return}(0,s["default"])(n,r,this.getScale(),l),i=l.isZeroTickForced?3:2,this.fireEvent("divlinesSet",l.ticks.length-i),l.tickValues&&this.calculateTicksOnLabelMode(),this.setVisibleConfig(c.min,c.max)}else l.setPadding=!1},a.getTicks=function(){return this.config.ticks},t}(c["default"]);d.prototype.setDataLimit=h.setDataLimit;var g=d;t["default"]=g},423:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(424)),o=i(a(425)),r=function(e,t){return void 0===e&&(e=[]),[(0,n["default"])(e,t),(0,o["default"])(e,t)]};t["default"]=r},424:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(e,t){void 0===e&&(e=[]);var a,i,n=e.length,o=-1;if("function"==typeof t){for(;++o<n;)if(null!=(a=t(e[o],o,e))&&a<=a)for(i=a;++o<n;)null!=(a=t(e[o],o,e))&&a<i&&(i=a)}else for(;++o<n;)if(null!=(a=e[o])&&a<=a)for(i=a;++o<n;)null!=(a=e[o])&&a<i&&(i=a);return i};t["default"]=i},425:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(e,t){void 0===e&&(e=[]);var a,i,n=e.length,o=-1;if("function"==typeof t){for(;++o<n;)if(null!=(a=t(e[o],o,e))&&a>=a)for(i=a;++o<n;)null!=(a=t(e[o],o,e))&&a>i&&(i=a)}else for(;++o<n;)if(null!=(a=e[o])&&a>=a)for(i=a;++o<n;)null!=(a=e[o])&&a>i&&(i=a);return i};t["default"]=i},426:function(e,t,a){"use strict";var i=a(182),n=a(178);t.__esModule=!0,t["default"]=void 0;var o=n(a(198)),r=i(a(427)),l=i(a(444)),s=n(a(429)),c=a(445),h=function(e){function t(){return e.call(this,r.deInterpolateLinear,s["default"])||this}(0,o["default"])(t,e);var a=t.prototype;return a.ticks=function(e){void 0===e&&(e=7);var t=this.getDomain();return this.majorTicks=(0,l["default"])(t[0],t[t.length-1],e)},a.tickFormat=function(e,t){return(0,c.tickFormat)(this.getDomain(),e,t,this._localeConverter)},a.nice=function(e){void 0===e&&(e=7);var t,a=this.getDomain(),i=0,n=a.length-1,o=a[i],r=a[n];return r<o&&(t=o,o=r,r=t,t=i,i=n,n=t),(t=(0,l.tickIncrement)(o,r,e))>0?(o=Math.floor(o/t)*t,r=Math.ceil(r/t)*t,t=(0,l.tickIncrement)(o,r,e)):t<0&&(o=Math.ceil(o*t)/t,r=Math.floor(r*t)/t,t=(0,l.tickIncrement)(o,r,e)),t>0?(a[i]=Math.floor(o/t)*t,a[n]=Math.ceil(r/t)*t,this.setDomain(a)):t<0&&(a[i]=Math.ceil(o*t)/t,a[n]=Math.floor(r*t)/t,this.setDomain(a)),this},a.copy=function(){return(0,r.copyScale)(this,new t)},a.minorTicks=function(e,t){void 0===e&&(e=4),void 0===t&&(t=this.majorTicks||this.ticks());var a,i,n,o,r=t.length,l=t[1]-t[0],s=[];for(o=0;o<r-1;++o)for(n=t[o],i=l/(Number(e)+1),a=1;a<=e;a+=1)s.push(n+i*a);return s},a.contextTicks=function(){return this.contextTicksArr||[]},a.getType=function(){return"linear"},t}(r["default"]);t["default"]=h},427:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t.copyScale=function(e,t){return t.setInterpolate(e.getInterpolate()).setClamp(e.getClamp()).setDomain(e.getDomain()).setRange(e.getRange())},t.deInterpolateLinear=d,t.bimap=u,t["default"]=void 0;var n=i(a(428)),o=i(a(431)),r=i(a(430)),l=i(a(432)),s=a(433),c=0,h=[0,1];function u(e,t,a,i){var n,o;return e[0]>e[1]?(n=a(e[1],e[0]),o=i(t[1],t[0])):(n=a(e[0],e[1]),o=i(t[0],t[1])),function(e){return o(n(e))}}function d(e,t){var a=Number(e),i=Number(t)-a;return i?function(e){return(e-a)/i}:(0,r["default"])(i)}var g=function(){function e(e,t){this.domain=h,this.range=h,this.deInterpolate=e,this.reInterpolate=t,this.interpolate=n["default"],this.clamp=!1,this.input=null,this.output=null,this.locale=l["default"],this._localeConverter=new s.NumberConverter(l["default"]),this._rescale(),this._id="scale_"+c++}var t=e.prototype;return t._rescale=function(){return this.input=null,this.output=null,this},t.setDomain=function(e){return void 0===e&&(e=h),this.domain=e.map(Number),this._rescale()},t.getDomain=function(){return this.domain.slice()},t.setRange=function(e){return void 0===e&&(e=h),this.range=e.slice(),this._rescale()},t.getRange=function(){return this.range.slice()},t.setInterpolate=function(e){return void 0===e&&(e=n["default"]),this.interpolate=e,this._rescale()},t.getInterpolate=function(){return this.interpolate},t.setClamp=function(e){return void 0===e&&(e=!1),this.clamp=!!e,this._rescale()},t.getClamp=function(){return this.clamp},t.rangeRound=function(e){return void 0===e&&(e=h),this.range=e.slice(),this.interpolate=o["default"],this._rescale()},t.getRangeValue=function(e){var t=null!==e?e:void 0,a=this.getClamp()?function(e){return function(t,a){var i=Number(t),n=Number(a),o=e(i,n);return function(e){return e<=i?0:e>=n?1:o(e)}}}(this.deInterpolate):this.deInterpolate;return this.output||(this.output=u(this.getDomain(),this.getRange(),a,this.interpolate)),this.output(Number(t))},t.getDomainValue=function(e){var t=this.getClamp()?function(e){return function(t,a){var i=Number(t),n=Number(a),o=e(i,n);return function(e){return e<=0?i:e>=1?n:o(e)}}}(this.reInterpolate):this.reInterpolate;return this.input||(this.input=u(this.getRange(),this.getDomain(),d,t)),this.input(Number(e))},t.setLocale=function(e){return void 0===e&&(e=l["default"]),this.locale=e,this._localeConverter=new s.NumberConverter(e),this},t.getLocale=function(){return this.locale},t.getId=function(){return this._id},e}();t["default"]=g},428:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(429)),o=i(a(430));function r(e){return null!=e}var l=function(e,t){var a=n["default"];return r(t)&&r(e)&&"boolean"!=typeof t?a(e,t):(0,o["default"])(t)};t["default"]=l},429:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(e,t){var a=Number(e),i=Number(t)-a;return function(e){return i*e+a}};t["default"]=i},430:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(e){return function(){return e}};t["default"]=i},431:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(e,t){var a=Number(e),i=Number(t)-a;return function(e){return Math.round(i*e+a)}};t["default"]=i},432:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i={decimal:".",thousands:",",grouping:[3],prefix:"$",suffix:""};t["default"]=i},433:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=t.NumberConverter=void 0;var n=i(a(432)),o=i(a(434)),r=i(a(436)),l=i(a(442)),s=i(a(443)),c=i(a(437)),h=function(e){return e},u=function(){function e(e){this.localeInfo={group:e.grouping&&e.thousands?(0,l["default"])(e.grouping,e.thousands):h,prefix:e.prefix,suffix:e.suffix,decimal:e.decimal,numerals:e.numerals?(0,s["default"])(e.numerals):h,percent:e.percent||"%",prefixes:e.prefixes||["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"]}}var t=e.prototype;return t.formatter=function(e){return new r["default"](e,this.localeInfo)},t.formatPrefix=function(e,t){var a=new c["default"](e);a.type="f";var i=this.localeInfo.prefix,n=this.localeInfo.suffix,l=Object.assign({},this.localeInfo,{prefix:"",suffix:""}),s=new r["default"](a,l),h=3*Math.max(-8,Math.min(8,Math.floor((0,o["default"])(t)/3))),u=Math.pow(10,-h),d=this.localeInfo.prefixes[8+h/3];return{format:function(e){return i+s.format(u*e)+d+n},setCustomPrefix:function(e){return s.setCustomPrefix(e),this},getCustomPrefix:function(e){return s.getCustomPrefix(e)},setCustomSuffix:function(e){return s.setCustomSuffix(e),this},getCustomSuffix:function(e){return s.getCustomSuffix(e)}}},e}();t.NumberConverter=u;var d=new u(n["default"]);t["default"]=d},434:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(435)),o=function(e){var t=(0,n["default"])(Math.abs(e));return t?t[1]:NaN};t["default"]=o},435:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(e,t){var a,i,n;return(a=(n=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0?null:[(i=n.slice(0,a)).length>1?i[0]+i.slice(2):i,+n.slice(a+1)]};t["default"]=i},436:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(437)),o=i(a(438)),r=i(a(441)),l=a(439),s="=",c="g",h="",u="0",d=function(e){return null==e},g=function(){function e(e,t){this.specifier=new n["default"](e),this.localeInfo=t;var a=this.specifier.symbol;this.fill=this.specifier.fill,this.align=this.specifier.align,this.sign=this.specifier.sign,this.zero=this.specifier.zero,this.width=this.specifier.width,this.comma=this.specifier.comma,this.precision=this.specifier.precision,this.trim=this.specifier.trim,this.type=this.specifier.type,"n"===this.type?(this.comma=!0,this.type=c):o["default"][this.type]||(d(this.precision)&&(this.precision=12),this.trim=!0,this.type=c),(this.zero||"0"===this.fill&&"="===this.align)&&(this.zero=!0,this.fill=u,this.align=s),"$"===a?this.prefix=this.localeInfo.prefix:"#"===a&&/[boxX]/.test(this.type)?this.prefix="0"+this.type.toLowerCase():this.prefix=h,"$"===a?this.suffix=this.localeInfo.suffix:/[%p]/.test(this.type)?this.suffix=this.localeInfo.percent:this.suffix=h,this.formatType=o["default"][this.type],this.mayHaveSuffix=/[defgprs%]/.test(this.type),d(this.precision)?this.precision=6:/[gprs]/.test(this.type)?this.precision=Math.max(1,Math.min(21,this.precision)):this.precision=Math.max(0,Math.min(20,this.precision)),this.setCustomPrefix(""),this.setCustomSuffix("")}var t=e.prototype;return t.format=function(e){var t,a,i,n,o,s,c=this.prefix,u=this.suffix,d=this.formatType,g=e;if("c"===this.type)u=d(g)+u,g=h;else if(t=(g=+g)<0,g=d(Math.abs(g),this.precision),this.trim&&(g=(0,r["default"])(g)),t&&0==+g&&(t=!1),c=t?("("===this.sign?this.sign:"-")+c:"-"===this.sign||"("===this.sign?""+c:this.sign+c,u="s"===this.type?this.localeInfo.prefixes[8+l.prefixExponent/3]+u:""+u,u+=t&&"("===this.sign?")":"",this.mayHaveSuffix)for(n=-1,o=g.length;++n<o;)if((s=g.charCodeAt(n))<48||s>57){u=(46===s?this.localeInfo.decimal+g.slice(n+1):g.slice(n))+u,g=g.slice(0,n);break}switch(this.comma&&!this.zero&&(g=this.localeInfo.group(g,Infinity)),i=(a=c.length+g.length+u.length)<this.width?new Array(this.width-a+1).join(this.fill):"",this.comma&&this.zero&&(g=this.localeInfo.group(i+g,i.length?this.width-u.length:Infinity),i=h),this.align){case"<":g=c+g+u+i;break;case"=":g=c+i+g+u;break;case"^":a=i.length/2,g=i.slice(0,a)+c+g+u+i.slice(a);break;default:g=i+c+g+u}return this.getCustomPrefix()+this.localeInfo.numerals(g)+this.getCustomSuffix()},t.setCustomPrefix=function(e){return this._customPrefix=e+"",this},t.getCustomPrefix=function(){return this._customPrefix},t.setCustomSuffix=function(e){return this._customSuffix=e+"",this},t.getCustomSuffix=function(){return this._customSuffix},t.toString=function(){return this.specifier.toString()},e}();t["default"]=g},437:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=/^(?:(.)?([<>=^]))?([+\-\( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i,n=function(e){return null==e},o=function(){function e(e){var t=i.exec(e);if(!t)throw new Error("Invalid number format specifier: "+e);this.fill=t[1]||" ",this.align=t[2]||">",this.sign=t[3]||"-",this.symbol=t[4]||"",this.zero=Boolean(t[5]),this.width=t[6]&&Number(t[6]),this.comma=Boolean(t[7]),this.precision=t[8]&&Number(t[8].slice(1)),this.trim=Boolean(t[9]),this.type=t[10]||""}return e.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(n(this.width)?"":Math.max(1,0|this.width))+(this.comma?",":"")+(n(this.precision)?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type},e}();t["default"]=o},438:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(439)),o=i(a(440)),r={"%":function(e,t){return(100*e).toFixed(t)},b:function(e){return Math.round(e).toString(2)},c:function(e){return e+""},d:function(e){return Math.round(e).toString(10)},e:function(e,t){return e.toExponential(t)},f:function(e,t){return e.toFixed(t)},g:function(e,t){return e.toPrecision(t)},o:function(e){return Math.round(e).toString(8)},p:function(e,t){return(0,o["default"])(100*e,t)},r:o["default"],s:n["default"],X:function(e){return Math.round(e).toString(16).toUpperCase()},x:function(e){return Math.round(e).toString(16)}};t["default"]=r},439:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=t.prefixExponent=void 0;var n,o=i(a(435));t.prefixExponent=n;var r=function(e,a){var i,r,l,s,c=(0,o["default"])(e,a);return c?(i=c[0],(l=(r=c[1])-(t.prefixExponent=n=3*Math.max(-8,Math.min(8,Math.floor(r/3))))+1)===(s=i.length)?i:l>s?i+new Array(l-s+1).join("0"):l>0?i.slice(0,l)+"."+i.slice(l):"0."+new Array(1-l).join("0")+(0,o["default"])(e,Math.max(0,a+l-1))[0]):e+""};t["default"]=r},440:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(435)),o=function(e,t){var a,i,o=(0,n["default"])(e,t);return o?(a=o[0],i=o[1],Number(i)<0?"0."+new Array(-i).join("0")+a:a.length>i+1?a.slice(0,i+1)+"."+a.slice(i+1):a+new Array(i-a.length+2).join("0")):e+""};t["default"]=o},441:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(e){for(var t,a=e.length,i=1,n=-1;i<a;++i)if("."===e[i])n=t=i;else if("0"===e[i])0===n&&(n=i),t=i;else if(n>0){if(!+e[i])break;n=0}return n>0?e.slice(0,n)+e.slice(t+1):e};t["default"]=i},442:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(e,t){return function(a,i){for(var n=a.length,o=[],r=0,l=e[0],s=0;n>0&&l>0&&(s+l+1>i&&(l=Math.max(1,i-s)),o.push(a.substring(n-=l,n+l)),!((s+=l+1)>i));)l=e[r=(r+1)%e.length];return o.reverse().join(t)}};t["default"]=i},443:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(e){return function(t){return t.replace(/[0-9]/g,(function(t){return e[+t]}))}};t["default"]=i},444:function(e,t,a){"use strict";t.__esModule=!0,t.tickIncrement=l,t.tickStep=function(e,t,a){void 0===e&&(e=0);void 0===t&&(t=1);void 0===a&&(a=7);var r=Math.abs(t-e)/Math.max(0,a),l=Math.floor(Math.log(r)/Math.LN10),s=Math.pow(10,l),c=r/s;c>=i?s*=10:c>=n?s*=5:c>=o&&(s*=2);return t<e?-s:s},t["default"]=void 0;var i=Math.sqrt(50),n=Math.sqrt(10),o=Math.sqrt(2);function r(e){return e>=i?10:e>=n?5:e>=o?2:1}function l(e,t,a){void 0===e&&(e=0),void 0===t&&(t=1),void 0===a&&(a=7);var i=(t-e)/Math.max(0,a),n=Math.floor(Math.log(i)/Math.LN10),o=i/Math.pow(10,n);return n>=0?r(o)*Math.pow(10,n):-Math.pow(10,-n)/r(o)}var s=function(e,t,a){void 0===e&&(e=0),void 0===t&&(t=1),void 0===a&&(a=7);var i,n,o,r=-1,s=[],c=+t,h=+e,u=+a;if(h===c&&u>0)return[h];if((i=c<h)&&(n=h,h=c,c=n),0===(o=l(h,c,u))||!isFinite(o))return[];if(o>0)for(h=Math.ceil(h/o),c=Math.floor(c/o),n=Math.ceil(c-h+1);++r<n;)s[r]=(h+r)*o;else for(h=Math.floor(h*o),c=Math.ceil(c*o),n=Math.ceil(h-c+1);++r<n;)s[r]=(h-r)/o;return i&&s.reverse(),s};t["default"]=s},445:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t.tickIncrement=p,t.tickStep=f,t.tickFormat=function(e,t,a,i){void 0===i&&(i=n["default"]);var c,h,u,g=e[0],p=e[e.length-1],m=f(g,p,d(t)?7:t);switch((u=new l["default"](d(a)?",f":a)).type){case"s":return h=Math.max(Math.abs(g),Math.abs(p)),c=(0,s["default"])(m,h),d(u.precision)&&!isNaN(c)&&(u.precision=c),function(e){return i.formatPrefix(u,h).format(e)};case"":case"e":case"g":case"p":case"r":c=(0,r["default"])(m,Math.max(Math.abs(g),Math.abs(p))),d(u.precision)&&!isNaN(c)&&(u.precision=c-("e"===u.type));break;case"f":case"%":c=(0,o["default"])(m),d(u.precision)&&!isNaN(c)&&(u.precision=c-2*("%"===u.type))}return function(e){return i.formatter(u).format(e)}},t["default"]=void 0;var n=i(a(433)),o=i(a(446)),r=i(a(447)),l=i(a(437)),s=i(a(448)),c=Math.sqrt(50),h=Math.sqrt(10),u=Math.sqrt(2),d=function(e){return null==e};function g(e){return e>=c?10:e>=h?5:e>=u?2:1}function p(e,t,a){void 0===e&&(e=0),void 0===t&&(t=1),void 0===a&&(a=7);var i=(t-e)/Math.max(0,a),n=Math.floor(Math.log(i)/Math.LN10),o=i/Math.pow(10,n);return n>=0?g(o)*Math.pow(10,n):-Math.pow(10,-n)/g(o)}function f(e,t,a){void 0===e&&(e=0),void 0===t&&(t=1),void 0===a&&(a=7);var i=Math.abs(t-e)/Math.max(0,a),n=Math.floor(Math.log(i)/Math.LN10),o=Math.pow(10,n),r=i/o;return r>=c?o*=10:r>=h?o*=5:r>=u&&(o*=2),t<e?-o:o}var m=function(e,t,a){void 0===e&&(e=0),void 0===t&&(t=1),void 0===a&&(a=7);var i,n,o,r,l,s,c=-1,h=[];if(s=+a,(r=+e)===(l=+t)&&s>0)return[r];if((i=l<r)&&(n=r,r=l,l=n),0===(o=p(r,l,s))||!isFinite(o))return[];if(o>0)for(r=Math.ceil(r/o),l=Math.floor(l/o),n=Math.ceil(l-r+1);++c<n;)h[c]=(r+c)*o;else for(r=Math.floor(r*o),l=Math.ceil(l*o),n=Math.ceil(r-l+1);++c<n;)h[c]=(r-c)/o;return i&&h.reverse(),h};t["default"]=m},446:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(434)),o=function(e){return Math.max(0,-(0,n["default"])(Math.abs(e)))};t["default"]=o},447:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(434)),o=function(e,t){var a=Math.abs(e),i=Math.abs(t)-a;return Math.max(0,(0,n["default"])(i)-(0,n["default"])(a))+1};t["default"]=o},448:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(434)),o=function(e,t){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor((0,n["default"])(t)/3)))-(0,n["default"])(Math.abs(e)))};t["default"]=o},449:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(){var e,t,a,i,n,o=[];if(arguments.length>2?(e=arguments.length<=0?undefined:arguments[0],t=arguments.length<=1?undefined:arguments[1],a=arguments.length<=2?undefined:arguments[2]):1===arguments.length?(e=0,t=arguments.length<=0?undefined:arguments[0],a=1):(e=arguments.length<=0?undefined:arguments[0],t=arguments.length<=1?undefined:arguments[1],a=1),i=Math.floor(Math.max(0,Math.ceil((t-e)/a))),isFinite(i))for(n=0;n<i;++n)o.push(a*n+e);return o};t["default"]=i},450:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(449)),o=a(427),r=i(a(429)),l=i(a(424)),s=a(184),c=(0,o.bimap)([2,100],[80,20],o.deInterpolateLinear,r["default"]),h=function(e,t,a,i){var o,r,h,u,d,g,p,f,m,v,b,x,y,C,k,S,w,L,A,N,F,E,_,T=t,P=e,D=i.isPercent?0:i.axisMinValue,I=i.isPercent?100:i.axisMaxValue,M=!!i.adjustDiv,O=i.numDivLines,R=!!i.setAdaptiveMin,V=i.axisRange,B=Math.pow(2,-24),G=!0,H=.2,z=!0,W=i.xAxisLabelMode,j=i.dependentInfo;if(o=i.majorTMNumber!==s.UNDEF?Math.max(0,O-2):O,j&&j.count&&!j.limit&&j.numDivLines!==s.UNDEF&&(o=O=j.numDivLines,M=!1),r=o+1,P===s.UNDEF&&T===s.UNDEF&&(P=0,T=1,G=!1),T===P&&0===T&&(T=1,G=!1),"categories"!==W&&"mixed"!==W||(G=!1),G?(u=Math.floor(Math.log(Math.abs(T))/Math.LN10),h=Math.floor(Math.log(Math.abs(P))/Math.LN10),d=Math.max(h,u),g=Math.pow(10,d),Math.abs(T)/g<2&&Math.abs(P)/g<2&&(d--,g=Math.pow(10,d)),x=Math.floor(Math.log(T-P)/Math.LN10),y=Math.pow(10,x),T-P>0&&g/y>=10&&(g=y,d=x),f=(Math.floor(T/g)+1)*g,m=P<0?(Math.floor(Math.abs(P/g))+1)*g*-1:R?(m=Math.floor(Math.abs(P/g)-1)*g)<0?0:m:0,!R&&T<=0&&(f=0),v=!(!I&&0!==I),b=!(!D&&0!==D),i.freezeLimit||(!1===v||!0===v&&Number(I)<T&&T-Number(I)>B?(T=f,v=!1):T=Number(I),!1===b||!0===b&&Number(D)>P&&Number(D)-P>B?(P=m,b=!1):P=Number(D))):(b=!(!D&&0!==D),!0===(v=!(!I&&0!==I))&&(Number(I)>=T||t===s.UNDEF)?T=Number(I):v=!1,!0===b&&(Number(D)<=P||e===s.UNDEF)?P=Number(D):b=!1),b&&!v&&t===s.UNDEF&&(T=P<0?0:P+1),v&&!b&&e===s.UNDEF&&(P=T>0?0:T-1),w=[P,T],a.setDomain(w),M&&!i.freezeLimit)v||b?(F=(C=(N=function(e,t,a,i,n,o){for(var r,l,c,h,u,d,g,p,f,m,v,b,x=t-e,y=e,C=Math.ceil(a*(1-i)),k=Math.floor(a*(1+i)),S=[],w=-1,L=function(e){return function(e){var t,a,i=[10,5,2,1],n=i.length;for(t=0;t<n;++t)if(e%i[t]%1==0){a=!0;break}return a}(r=x/(e+1))?e:s.UNDEF};!(m&&v||((b=a+ ++w)>=k&&(v=!0),h=L(b))||((b=a-w)<=C&&(m=!0),h=L(b))););for(e<0&&t>0&&n&&(c=!0),l=0;l<h;l++)c&&y<0&&y+r>0&&(S.push(0),u=!0),y+=r,S.push(y);return h===s.UNDEF&&n&&((g=(S=o.ticks(a)).length)>1?(d=.2*(r=Math.abs(S[0]-S[1])),p=S[0],f=S[g-1],Math.abs(e-p)<=d&&0!==p&&S.shift(),Math.abs(t-f)<=d&&0!==f&&S.pop(),0!==p&&0!==f||(u=!0)):0===S[0]&&(u=!0)),c&&!u&&-1===S.indexOf(0)&&(e<0&&S[0]>0?S=[0].concat(S):t>0&&S[S.length-1]<0?S.push(0):S=[0],u=!0),{output:S,interval:r,isZeroTickForced:u}}(P,T,o,H=(_=o)>=100?.2:_<=1?0:c(_)/100,i.forceZeroTick,a)).output).length,E=N.isZeroTickForced,Math.abs((o-F+(E?1:0))/o)>H?p=(T-P)/r:(p=0===F||1===F&&E?T-P:N.interval,i.isZeroTickForced=E,i.ticks=E&&0===P?C.concat(T):[P].concat(C,T),z=!1)):(i.ticks=o?a.nice(r).ticks(r):a.getDomain(),p=Math.abs(i.ticks[1]-i.ticks[0]),z=!1);else if(v||b||i.freezeLimit)p=(T-P)/r;else{var U=a.nice(r).getDomain();((S=(k=U[0])+(p=function(e){if(e<=1)return 1;var t=[],a=Math.ceil(e);return t[2]=a%2,t[5]=a%5,t[10]=a%10,(0,l["default"])(t)+a}(g=((S=U[1])-k)/r))*r)-T)/T>H||(k-P)/P>H?(a.setDomain([P,T]),p=(T-P)/r):(P=k,T=S,a.setDomain([P,T]))}z&&(P<0&&T>0&&i.forceZeroTick?(0===(A=(L=(0,n["default"])(P,0,p))[L.length-1]+p)?A+=p:i.isZeroTickForced=!0,i.ticks=L.concat(0,(0,n["default"])(A,T,p),T)):i.ticks=(0,n["default"])(P,T,p).concat(T));var q=a.getDomain();P=q[0],T=q[1],i._allTicks=i.ticks.slice(),V.tickInterval=p,V.min=P,V.max=T};t["default"]=h},451:function(e,t,a){"use strict";var i=a(182),n=a(178);t.__esModule=!0,t["default"]=void 0;var o=n(a(198)),r=i(a(452)),l=a(184),s=a(458),c=n(a(425)),h=function(e){function t(){return e.apply(this,arguments)||this}(0,o["default"])(t,e);var a=t.prototype;return a._getHMaxLabelDimention=function(e){var t,a,i,n,o,s,h,u,d,g,p,f,m,v,b,x,y,C,k,S,w,L,A,N,F,E,_,T,P,D,I,M,O,R,V,B=this,G=e,H=B.config,z=B.getFromEnv("chart"),W=z.config,j=z.getFromEnv("smartLabel"),U=H.axisRange,q=H.labels,Y=H.labelDisplay,X=H.slantLabel,K=q.style,Z=H.maxLabelHeight,J=B.getInterval(),$=H.staggerLines,Q=H.labelStep,ee=W.canvasLeft,te=W.canvasRight,ae=$-2,ie=U.max,ne=U.min,oe=0,re=H.tickValues&&H.tickValues.tickValue,le=re&&re.length,se=z.distributedColumns,ce=0,he={text:l.UNDEF,width:0,style:l.UNDEF},ue=0,de=4,ge=l.stubFN,pe=l.stubFN,fe=l.stubFN,me={},ve=0,be=!1,xe=0,ye=!1,Ce=Number.POSITIVE_INFINITY,ke=H.ticks,Se=Number.POSITIVE_INFINITY;if(se)for(x=0;x<le;x++)re[x+1]?re[x].x&&(re[x].plotWidth=B.getPixel(re[x+1].x-re[x].x)-B.getPixel(0)):re[x].plotWidth=B.getPixel(W.canvasRight-re[x].x)-B.getPixel(0);if(H.tickValues&&(!re||0===re.length))return{width:0,height:0};function we(e,t){switch(t.toLowerCase()){case"left":return Math.abs(B._getCustomPixel(e));case"right":return Math.abs(W.width-B._getCustomPixel(e))}}if("rotate"===Y&&(H.rotateLabels=1),H.tickValues||(H.irregularCatAxis=!1),H.sWidthAdjstFactor=a=0===ae?1:1===ae?1.5:ae,j.useEllipsesOnOverflow(W.useEllipsesWhenOverflow),j.setStyle({fontSize:K.fontSize,fontFamily:K.fontFamily,lineHeight:K.lineHeight,fontWeight:K.fontWeight}),H.irregularCatAxis){for(re.sort((function(e,t){return e.x-t.x})),x=0,ce=re.length;x<ce;x++){if(o=re[x],void 0!==L){if(Se=Math.abs(o.x-L),N=Math.abs(B._getCustomPixel(ne)-B._getCustomPixel(ne+Se)),j.setStyle(Object.assign({},o.style)),N<1.2*j.getOriSize("W").width){o.label=l.BLANKSTRING,Se=Ce;continue}F._individualIWR=N,o._individualIWL=N,Ce=Se}F=o,L=o.x}for(Se===Number.POSITIVE_INFINITY&&(Se=Math.floor(Math.min(o.x,ie-o.x)),Se=Math.max(Se,4)),x=0,ce=re.length;x<ce;x++)o=re[x],x||(o._individualIWL=Infinity),x===ce-1&&(o._individualIWR=Infinity),o.individualIW=Math.min(o._individualIWL,o._individualIWR);h=Math.abs(B._getCustomPixel(ne)-B._getCustomPixel(ne+Se)),h=Math.min(2*we(re[0].x,"left"),2*we(re[ce-1].x,"right"),h)}else h=Math.abs(B._getCustomPixel(ne)-B._getCustomPixel(ne+J));if(G=Z||G,me.__root__={getHeight:function(e){var t=re[e]._ovrStyle.lineHeight;return parseInt(t.replace(/(\d+)px/,"$1"),10)},getWidth:function(){return G},getCalculatedLabelStep:function(e){var t,a,i,n,o,r,d,g,p,f,m,v=0,b=e.length,x=Number.NEGATIVE_INFINITY,y={},C=0,k=H.rotateLabels,S="wrap"===Y||"auto"===Y;for(v=0;v<b;v++)(n=e[v]).style=n.style||{};if(H.irregularCatAxis)return H.labelStep;for(v=0;v<b;v++)(n=e[v])&&(n.label||(n.label=""),o=n.oriLabel||n.label,s={fontSize:K.fontSize,fontFamily:K.fontFamily,lineHeight:K.lineHeight,fontWeight:K.fontWeight},C++,n.style=n.style||{},(0,l.extend2)(s,n.style),y[t=s.fontSize+s.fontFamily+s.lineHeight+s.fontWeight]?o.length>y[t].label.length&&(y[t].label=o):y[t]={label:o,style:s});for(r in y)y.hasOwnProperty(r)&&(a=y[r].style,i=y[r].label,a.lineHeight=(0,l.setLineHeight)(a),j.setStyle(a),k&&(p=parseInt(a.lineHeight,10)),u=j.getSmartText(i,l.UNDEF,p),(g=0===k?u.width>60?60:u.width:u.height)>x&&(x=g,f=y[r]));if((S&&(x=Math.min(R,x)),d=Math.floor(Math.abs(B._getCustomPixel(ie)-B._getCustomPixel(ne))/x),m=Math.max(Math.ceil(C/d),H.labelStep),h=Math.abs(B._getCustomPixel(ne)-B._getCustomPixel(ne+m)),S&&0===k)&&(j.setStyle(f.style),(0,c["default"])(Object.values(j.getOriSize(f.label).detailObj))>h-2*de))return m+=1,h=Math.abs(B._getCustomPixel(ne)-B._getCustomPixel(ne+m)),m;return C<=d?H.labelStep:m}},me._inProp={},me.getCopyById=function(e){var t,a=this._inProp,i=this.__root__,n=a.copyStore;return(t=(n=n||{})[e])?t:((0,l.extend2)(t=n[e]={},i),t)},H.tickValues){switch(Y){case"rotate":q.rotation=X?300:270,p=me.getCopyById("rotate");break;case"stagger":(p=me.getCopyById("stagger")).getHeight=function(e){var t,a;return a=(t=H.tickValues.tickValue[e])&&t.style||(t.style={}),s={fontSize:K.fontSize,fontFamily:K.fontFamily,lineHeight:K.lineHeight,fontWeight:K.fontWeight},(0,l.extend2)(s,a),j.setStyle(s),j.getOriSize(t.label).height},p.getWidth=function(e){return de=1,e.individualIW?e.individualIW:2*h*a-de},fe=function(e){var t,a,i,n,o,r,l=e.length,s=0;if(j.setStyle(K),i=j.getOriSize("WWW").height,a=e[l-1],Math.floor(a._cumulativeSum)<=Math.ceil(l*(i+2)))o=Math.floor(G/i),$=o-$<0?o:$;else{o=Math.floor(G/(i+4));do{for(s=0,n=(r=o)-1,l=e.length;n<l;){if(l-n<o&&(n=l-1),~~((t=e[n])._cumulativeSum-s)>-~G){be=!0;break}be=!1,s=t._cumulativeSum,n+=r}}while(o--&&be);o++,$=Math.min($,o)}H.drawnStaggerLines=$},ge=function(e){var t,a,n,o,r=0;for(o=0,a=e.length;o<a;o++)(t=e[o]).stepSkipped||((n=(t&&t.style||{}).lineHeight)||(n=K.lineHeight),i=r++%$,t.labelPadding=i?n.replace(/px/i,"")*i:0)};break;case"none":(p=me.getCopyById("none")).getHeight=l.stubFN,p.getWidth=l.stubFN,pe=l.stubFN,H.rotateLabels&&(q.rotation=X?300:270,A=G),p.getCalculatedLabelStep=function(){return H.labelStep};break;default:(p=me.getCopyById("auto")).getHeight=function(){return G},p.getWidth=function(e){return e.individualIW?e.individualIW:h-2*de},j.setStyle(he.style),V=j.getOriSize("WWW"),R=V.width,pe=function(e,t){var a,i,n,o;if(!H.irregularCatAxis&&(j.setStyle(e),V=j.getOriSize("WWW"),(R=V.width)>=h&&0!==H.rotateLabels)){for(q.rotation=X?300:270,q.forceRotate=!0,p=me.getCopyById("rotate"),d=p.getWidth,g=p.getHeight,he.width=0,a=0,i=t.length;a<i;a++)(n=t[a])&&(n.label||n.oriLabel)&&0!==(0,l.pluckNumber)(n.showlabel,H.showLabels,1)&&!0!==n.stepSkipped&&(o=n._ovrStyle,j.setStyle({fontSize:o.fontSize,fontFamily:o.fontFamily,lineHeight:o.lineHeight,fontWeight:o.fontWeight}),u=j.getSmartText(n.oriLabel,d(n),g(a)),n.label=u.text,n.labelTooltext=u.tooltext,n._sLabel=u,he.width<u.width&&(he.text=u.text,he.width=u.width,he.height=u.height,he.style=o));f=he.text}}}for(d=p.getWidth,g=p.getHeight,Q=H.labels.step=H.labelStep=H._oriLabelStep,Q=H.labels.step=H.labelStep=p.getCalculatedLabelStep(re),x=(0,r.minimumEnquiry)(re),m=0,y=0,ce=re.length;x<ce;x++,m++)(o=re[x])&&(o.label||o.oriLabel)&&0!==(0,l.pluckNumber)(o.showlabel,H.showLabels,1)&&(ye=!0,s={fontSize:K.fontSize,fontFamily:K.fontFamily,lineHeight:K.lineHeight,fontWeight:K.fontWeight},(0,l.extend2)(s,o.style),s.lineHeight=(0,l.setLineHeight)(s),(I=s.fontSize+s.fontFamily+s.lineHeight+s.fontWeight)!==D&&(j.setStyle(s),D=I),m%Q?(o.stepSkipped=!0,o.appliedSmartLabel=!1,xe++):(o.appliedSmartLabel=!0,o.stepSkipped=!1,o._ovrStyle=s,re[x].plotWidth?t=Math.max("rotate"===Y?re[x].plotWidth-6:0,g(x)):("rotate"===Y?x<ce-1&&(n=B.getPixel(x+1)-B.getPixel(x)-10):n=0,"rotate"===Y&&isNaN(+n)&&(n=W.canvasWidth/B.getVisibleLength()-3),t=Math.max(n,g(x))),ve+=(u=j.getSmartText(o.oriLabel||o.label,d(o),t)).height+2,B.components.labels[y++]={config:{width:u.width,height:u.height,props:{label:{}}}},o._cumulativeSum=ve,o.oriLabel=o.oriLabel||o.label,o.label=u.text,o.labelTooltext=u.tooltext,o._sLabel=u,he.width<u.oriTextWidth&&((0,l.extend2)(he,u),he.style=s),ue<u.height&&(ue=u.height)));if(!ye)return{height:0,width:0};if(fe(re,xe),ge(re,xe),pe(he.style,re),f=he.text||"","mixed"===H.xAxisLabelMode)for(S=H.isPercent?z.getFromEnv("number-formatter").percentValue:z.getFromEnv("number-formatter").xAxis,oe=f.length,x=0,M=ke&&ke.length;x<M;++x)k=ke[x],(C=""+S.call(z.getFromEnv("number-formatter"),k,H.axisIndex)).length>oe&&(f=C,oe=C.length);for(he.height=Math.max(ue,he.height||0),T=re.length,x=0,ce=re.length;x<ce&&!(E=re[x])._sLabel;x++);for(x=(ce=re.length)-1;x>=0&&!(_=re[x])._sLabel;x--);P=1!==B.getZoom(),q.rotation||P||!E._sLabel?(H.axisEndLabelDisplaySpace.left=0,H.axisEndLabelDisplaySpace.right=0):(H.axisEndLabelDisplaySpace.left=Math.max(ee-(B._getCustomPixel(E.x||0)-E._sLabel.width/2),0),H.axisEndLabelDisplaySpace.right=Math.max(B._getCustomPixel(_.x||T-1)+_._sLabel.width/2-te,0)),w=he}else{for(S=H.numberFormatterFn?z.getFromEnv("number-formatter")[H.numberFormatterFn]:H.isPercent?z.getFromEnv("number-formatter").percentValue:z.getFromEnv("number-formatter").xAxis,x=0,M=ke&&ke.length;x<M;++x)O=ke[x],k=(0,l.toPrecision)(O,10),C=""+S.call(z.getFromEnv("number-formatter"),k,H.axisIndex),O===ne&&(v=C),O===ie&&(b=C),w=j.getOriSize(C),B.components.labels[x]={config:{width:w.width,height:w.height,props:{label:{}}}},C.length>oe&&(f=C,oe=C.length);j.setStyle({fontSize:K.fontSize,fontFamily:K.fontFamily,lineHeight:K.lineHeight,fontWeight:K.fontWeight}),w=j.getOriSize(f||""),"rotate"===Y&&(q.rotation=270),H.rotateLabels&&(q.rotation=X?300:270),q.rotation||(v=j.getOriSize(v||""),b=j.getOriSize(b||""),H.axisEndLabelDisplaySpace.left=v.width/2+2,H.axisEndLabelDisplaySpace.right=b.width/2+2)}return H.tickValues&&"stagger"===Y&&(w.height=$*he.height),w.width=A?Math.min(A,w.width):w.width,w.width=(0,l.pluckNumber)(w.width),w.maxWidth=(0,l.pluckNumber)(w.maxWidth),w},a._getVMaxLabelDimention=function(e){var t,a,i,n,o,r,s,c,h,u,d,g,p,f,m=e,v=this.config,b=this.getFromEnv("chart"),x=b.config,y=b.getFromEnv("smartLabel"),C=v.labels.style,k=v.useEllipsesWhenOverflow,S=v.maxLabelWidthPercent,w=v.minLabelWidthPercent,L=0,A=b.getFromEnv("dataSource").categories,N={height:0,width:0},F=v.ticks,E={};if(y.useEllipsesOnOverflow(x.useEllipsesWhenOverflow),y.setStyle({fontSize:C.fontSize,fontFamily:C.fontFamily,lineHeight:C.lineHeight,fontWeight:C.fontWeight}),v.tickValues){for(A&&(E={fontFamily:A[0].font,fontSize:A[0].fontsize,color:A[0].fontcolor}),S&&(a=S/100*x.width)<m&&(m=a),w&&(i=w/100*x.width)>m&&(m=i),n=0,h=(c=v.tickValues.tickValue).length;n<h;n++)u=c[n],0!==(0,l.pluckNumber)(u.showlabel,v.showLabels)&&(p={fontFamily:(0,l.pluck)(u.font,u.labelfont,E.fontFamily,C.fontFamily),fontSize:(0,l.pluck)(u.fontsize,u.labelfontsize,E.fontSize,C.fontSize).replace(/px/i,"")+"px",fontWeight:"normal"===C.fontWeight?(0,l.pluckNumber)(u.fontbold,u.labelfontbold,0)?"bold":"normal":C.fontWeight,fontStyle:"normal"===C.fontStyle?(0,l.pluckNumber)(u.fontitalic,u.labelfontitalic,0)?"italic":"normal":C.fontStyle},(f={fontFamily:(0,l.pluck)(p.fontFamily,E.fontFamily,C.fontFamily),fontSize:(0,l.pluck)(p.fontSize,E.fontSize,C.fontSize),fontWeight:(0,l.pluck)(p.fontWeight,C.fontWeight),fontStyle:(0,l.pluck)(p.fontStyle,C.fontStyle)}).lineHeight=(0,l.setLineHeight)(f),y.setStyle(f),d=y.getSmartText(u.oriLabel||u.label,m,C.lineHeight,k),this.components.labels[n]={config:{width:d.width,height:d.height,props:{label:{}}}},u.oriLabel=u.oriLabel||u.label,u.label=s=d.text,u.labelTooltext=d.tooltext,d.width>L&&(N=d,L=d.width));return N}for(g=v.numberFormatterFn?b.getFromEnv("number-formatter")[v.numberFormatterFn]:v.isPercent?b.getFromEnv("number-formatter").yAxisPercentValue:b.getFromEnv("number-formatter").yAxis,n=0,o=F&&F.length;n<o;++n)r=(0,l.toPrecision)(F[n],10),s=""+g.call(b.getFromEnv("number-formatter"),r,v.axisIndex),d=y.getSmartText(s),this.components.labels[n]={config:{width:d.width,height:d.height,props:{label:{}}}},s.length>L&&(t=s,L=s.length);return y.getOriSize(t)},a.getCleanValue=function(e,t){return this.getFromEnv("number-formatter").getCleanValue(e,t)},a.generateMinorTicks=function(){if(this)return[]},a.setCanvas=function(e){this.config.canvas=e},a._adjustNumberFormatter=function(e){var t,a,i=this.config,n=i.axisIndex,o=i.isVertical,r=this.getFromEnv("chart").getFromEnv("number-formatter"),s=i._defaultDecimalPrecision,c=i._defaultForceDecimal,h=0;a=o||"yAxis"===i.numberFormatterFn?(r.Y[n]||r.Y[0]).yAxisLabelConf:r.paramX,s!==l.UNDEF?a.decimalprecision=s:i._defaultDecimalPrecision=a.decimalprecision,c!==l.UNDEF?a.forcedecimals=c:i._defaultForceDecimal=a.forcedecimals,parseInt(e,10)>0||(t=e.toString().split(".")[1])&&((h=t.match(/^[0]*/)[0].length+1)>a.decimalprecision&&(a.forcedecimals=1),a.decimalprecision=Math.max(h,a.decimalprecision))},a.setLabelConfig=function(e){var t,a=this.config.labels;for(t in e)e.hasOwnProperty(t)&&(a[t]=e[t])},t}(r["default"]);h.prototype._parseLabel=s._parseLabel,h.prototype._drawLabel=s._drawLabel,h.prototype.getTrendLineLimits=s.getTrendLineLimits,h.prototype.setAxisPadding=s.setAxisPadding,h.prototype.getLabel=s.getLabel;var u=h;t["default"]=u},452:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t.minimumEnquiry=t.getCrispPath=t["default"]=void 0;var n=i(a(198)),o=i(a(453)),r=a(184),l=i(a(454)),s=i(a(429)),c=i(a(455)),h=i(a(456)),u=a(192),d=a(294),g=a(458),p=function(e,t){var a,i,n=!1,o=t%2;return e[1]===e[4]&&(a=e[1],i=Math.round(a),e[1]=e[4]=o?i>a?i-.5:i+.5:i,n=!0),e[2]===e[5]&&(a=e[2],i=Math.round(a),e[2]=e[5]=o?i>a?i-.5:i+.5:i,n=!0),{path:e,isCrisped:n}},f=function(e){return function(t,a){return!!(e.minValue<=t&&e.maxValue>=t||e.minValue<=a&&e.maxValue>=a)}},m=function(e){return function(t){return!!(e.minValue<=t&&e.maxValue>=t)}},v={wrtVisible:!0},b=function(e){for(var t=0,a=e.length;t<a;t++)if(e[t].label||e[t].oriLabel)return t};t.minimumEnquiry=b,t.getCrispPath=p,(0,u.addDep)({name:"cartesianAxisAnimation",type:"animationRule",extension:l["default"]});var x=function(e){function t(){var t;return(t=e.call(this)||this).config.referenceInfo=[],t.config.prevTicks=[],t.config.prevIntervalArr=[],t.config.prevTrendLabels=[],t.config.prevCategoryIntervalArr=[],t}(0,n["default"])(t,e);var a=t.prototype;return a.placeAxis=function(e){var t,a=this.getScale(),i=this.getFromEnv("chart"),n=this.getChildren("scrollBar")&&this.getChildren("scrollBar")[0],o=this.config.isVertical,r=this.config.isOpposit,l=this.config.isReverse,s=i.config,c={};return n&&!n.getState("removed")&&(t=n.getLogicalSpace())&&(o?(i.config.shift=t.width+n.config.conf.padding,c[r?"right":"left"]=i.config.shift):(i.config.shift=t.height+n.config.conf.padding,c[r?"top":"bottom"]=i.config.shift),i._allocateSpace(c)),o?(l?a.setRange([s.canvasBottom,s.canvasTop]):a.setRange([s.canvasTop,s.canvasBottom]),this._placeVerticalAxis(e)):(l?a.setRange([s.canvasRight,s.canvasLeft]):a.setRange([s.canvasLeft,s.canvasRight]),this._placeHorizontalAxis(e))},a._placeVerticalAxis=function(e){var t,a,i,n,o,l,s,c,h,u,d,g,p,f,m,v,b,x,y=e,C=this.config,k=this.getFromEnv("chart"),S=k.config,w=k.getFromEnv("smartLabel"),L=C.axisRange,A=C.minLabelWidthPercent,N=C.name,F=C.isOpposit,E=this.getFromEnv("number-formatter"),_=S.canvasHeight,T=C.labelPadding=(0,r.pluckNumber)(C.rawAttr.axisValuePadding,4),P=(0,r.pluckNumber)(C.rawAttr.axisNamePadding,5),D=C.useEllipsesWhenOverflow,I=C.name.style,M=C.trend.trendStyle,O=C.axisName,R=C.trendLines,V=C.drawLabelsOpposit,B=C.drawAxisNameOpposit,G=0,H=0,z=0,W=0,j=0,U=0,q={left:0,right:0},Y=r.BLANKSTRING,X=r.BLANKSTRING,K=0,Z=-1;if(A&&(Z=A/100*S.width),C.oriCanvasHeight=_,T<0&&(C.labelPadding=2),v=C.drawTick&&C.tickLength?C.axisLineThickness+C.tickLength:C.axisLineThickness,C.showAxisLine?(C.labelPadding=(0,r.pluckNumber)(T,2)+v,C.labelPadding<0&&(C.labelPadding=(C.axisLineThickness<0?0:v)+2),y-=C.axisLineThickness):(C.labelPadding=(0,r.pluckNumber)(T,2),C.labelPadding<0&&(C.labelPadding=2)),h=L.max,u=L.min,C.name.rotation=0,C.labels.step=C.labelStep,C.labels.isDraw=1,C.labels.drawNormalVal=C.showDivLineValues,C.labels.drawLimitVal=C.showLimits,K=I.lineHeight,K=Number(K.replace(/px/i,"")),O&&K<y&&(y-=K),1!==C.showLimits&&1!==C.showDivLineValues&&(C.labels.isDraw=0),((g=C.drawLabels?this._getVMaxLabelDimention(y-C.labelPadding):{width:0,height:0}).width+C.labelPadding>y&&!C.tickValues||0===g.width)&&(C.labels.isDraw=0),C.labels.isDraw&&(C.labelMaxW=g.width>Z?g.width:Z,C.labelMaxH=g.height,z=G=C.labelMaxW+C.labelPadding),C.drawTrendLines&&C.drawTrendLabels&&R&&R.length){for(n=C.isPercent?E.percentValue:C.isVertical?E.yAxis:E.xAxis,w.useEllipsesOnOverflow(S.useEllipsesWhenOverflow),w.setStyle({fontSize:M.fontSize,fontFamily:M.fontFamily,lineHeight:M.lineHeight,fontWeight:M.fontWeight}),t=0,a=R.length;t<a;t+=1)for(c=0,p=R[t].line&&R[t].line.length;c<p;c+=1)f=R[t].line[c],b=E.getCleanValue((0,r.pluck)(f.startvalue,f.value,0)),x=(0,r.pluckNumber)(f.endvalue,b),b<=h&&b>=u&&x<=h&&x>=u&&(s=1===(m=(0,r.pluckNumber)(f.valueonright,F?1:0))?f.endvalue||f.startvalue:f.startvalue||f.endvalue,(d=(0,r.parseUnsafeString)(f.origText||f.displayvalue||s||""))===s&&(d=""+n.call(E,d)),m?d.length>X.length&&(X=d):d.length>Y.length&&(Y=d));for(U=(g=w.getOriSize(X)).width?g.width+C.labelPadding:0,j=(g=w.getOriSize(Y)).width?g.width+C.labelPadding:0,F?(U>z&&U>y&&(U=y),j>y-(z=Math.max(z,U+C.labelPadding))&&(j=Math.min(j,y-z))):(j>z&&j>y&&(j=y),U>y-(z=Math.max(z,j+C.labelPadding))&&(U=Math.min(U,y-z))),t=0,a=R.length;t<a;t+=1)for(c=0,p=R[t].line&&R[t].line.length;c<p;c+=1)f=R[t].line[c],b=E.getCleanValue((0,r.pluck)(f.startvalue,f.value,0)),x=(0,r.pluckNumber)(f.endvalue,b),d=1===Number(f.valueonright)?f.origText||f.displayvalue||""+x||"":f.origText||f.displayvalue||""+b||"",(d=(0,r.parseUnsafeString)(""+d))!==f.endvalue&&d!==f.startvalue||(d=""+n.call(E,d)),f.origText=d,l=(m=(0,r.pluckNumber)(f.valueonright,F?1:0))?w.getSmartText(d,U,k.config.canvasHeight,D):w.getSmartText(d,j,k.config.canvasHeight,D),(i=C.parsedTrendLabels[H++])&&(i.attr.text=f.displayvalue=l.text),l.tooltext?(f.valueToolText=l.tooltext,i&&(i.valueToolText=f.valueToolText)):(delete f.valueToolText,i&&delete i.valueToolText)}return y+=K,!C.drawAxisName||y-z-U<=0||""===O?(N.isDraw=!1,N.value=r.BLANKSTRING):(w.setStyle({fontSize:I.fontSize,fontFamily:I.fontFamily,lineHeight:I.lineHeight,fontWeight:I.fontWeight}),N.isDraw=!0,C.rotateAxisName?(C.name.rotation=F?90:270,o=w.getSmartText(O,_,y-z-U),N.value=O,C.nameMaxW=Math.min(o.height),W=C.nameMaxW+P):(o=w.getSmartText(O,y-z-U,_),N.value=O,C.nameMaxW=Math.min(o.width,y-z),C.nameMaxH=o.height,C.axisNameWidth>=0&&(C.nameMaxW=Math.min(C.nameMaxW,C.axisNameWidth)),W=C.nameMaxW+P)),F?(V?(q.left+=Math.max(G,j),q.right+=U):(q.left+=j,q.right+=Math.max(G,U)),B?(C.axisNamePadding=q.left+P,q.left+=W):(C.axisNamePadding=q.right+P,q.right+=W)):(V?(q.left+=j,q.right+=Math.max(G,U)):(q.left+=Math.max(G,j),q.right+=U),B?(C.axisNamePadding=q.right+P,q.right+=W):(C.axisNamePadding=q.left+P,q.left+=W)),N.isDraw&&C.axisNamePadding+C.nameMaxW>y&&(C.axisNamePadding=y-C.nameMaxW,W=C.nameMaxW+C.axisNamePadding-z),q},a._placeHorizontalAxis=function(e){var t,a,i,n,o,l,s,c,h,u,d,g,p,f,m,v,b,x,y=e,C=this.config,k=this.getFromEnv("chart"),S=k.config,w=k.getFromEnv("smartLabel"),L=C.axisRange,A=C.name,N=C.isOpposit,F=k.getFromEnv("number-formatter"),E=C.drawLabelsOpposit,_=C.drawAxisNameOpposit,T=0,P=S.canvasWidth,D=C.labelPadding=(0,r.pluckNumber)(C.rawAttr.axisValuePadding,4),I=(0,r.pluckNumber)(C.rawAttr.axisNamePadding,5),M=C.useEllipsesWhenOverflow,O=C.name.style,R=C.trend.trendStyle,V=C.axisName,B=C.vTrendLines,G=0,H=0,z=0,W={top:0,bottom:0},j=0,U=0;if(D<0&&(C.labelPadding=2),v=C.drawTick&&C.tickLength?C.axisLineThickness+C.tickLength:C.axisLineThickness,C.showAxisLine?(C.labelPadding=(0,r.pluckNumber)(D,2)+v,C.labelPadding<0&&(C.labelPadding=(C.axisLineThickness<0?0:v)+2),y-=C.axisLineThickness):(C.labelPadding=(0,r.pluckNumber)(D,2),C.labelPadding<0&&(C.labelPadding=2)),s=L.max,c=L.min,C.labels.rotation=0,C.labels.step=C.labelStep,C.labels.isDraw=1,C.labels.drawNormalVal=C.showDivLineValues,C.labels.drawLimitVal=C.showLimits,U=O.lineHeight,U=Number(U.replace(/px/i,"")),V&&U<y&&(y-=U),C.rotateLabels&&"stagger"!==C.labelDisplay&&"none"!==C.labelDisplay&&(C.labelDisplay="rotate"),1!==C.showLimits&&1!==C.showDivLineValues&&(C.labels.isDraw=0),f=C.drawLabels?this._getHMaxLabelDimention(y-C.labelPadding):{width:0,height:0},C.labels.rotation?f.width+C.labelPadding>y&&!C.tickValues&&(C.labels.isDraw=0):f.height+C.labelPadding>y&&!C.tickValues&&(C.labels.isDraw=0),C.labels.isDraw&&(C.labels.rotation?(C.labelMaxW=f.height,C.labelMaxH=f.width,T=f.width+C.labelPadding):(C.labelMaxW=f.width,C.labelMaxH=f.height,T=f.height+C.labelPadding),G=T),d=(G=Math.max(G,C.labelPadding))<=y?y-G:y,C.drawTrendLines&&C.drawTrendLabels&&B&&C.isActive)for(m=C.isPercent?this.getFromEnv("number-formatter").percentValue:C.isVertical?this.getFromEnv("number-formatter").yAxis:this.getFromEnv("number-formatter").xAxis,w.useEllipsesOnOverflow(S.useEllipsesWhenOverflow),w.setStyle({fontSize:R.fontSize,fontFamily:R.fontFamily,lineHeight:R.lineHeight,fontWeight:R.fontWeight}),a=0,i=B.length;a<i;a+=1)for(l=0,u=B[a].line&&B[a].line.length;l<u;l+=1)g=B[a].line[l],b=F.getCleanValue((0,r.pluck)(g.startvalue,g.value,0)),x=(0,r.pluckNumber)(g.endvalue,b),b<=s&&b>=c&&x<=s&&x>=c&&(t=1===(0,r.pluckNumber)(g.valueonright,0)?g.endvalue||g.startvalue:g.startvalue||g.endvalue,(h=(0,r.parseUnsafeString)(g.origText||g.displayvalue||t||""))===t&&(h=""+m.call(k.getFromEnv("number-formatter"),h)),g.origText=h,d-((p=w.getSmartText(h,k.canvasWidth,R.lineHeight,M)).height+2)<0?g.displayvalue=r.BLANKSTRING:((n=C.parsedTrendLabels[H++])&&(n.attr.text=g.displayvalue=p.text),j=j<p.height?p.height:j),p.tooltext?(g.valueToolText=p.tooltext,n&&(n.valueToolText=g.valueToolText)):(delete g.valueToolText,n&&delete n.valueToolText));return d-=j,G+=N?0:j,d+=U,y+=U,!C.drawAxisName||d<=0||""===V?(A.isDraw=!1,A.value=r.BLANKSTRING):(w.setStyle({fontSize:O.fontSize,fontFamily:O.fontFamily,lineHeight:O.lineHeight,fontWeight:O.fontWeight}),A.isDraw=!0,o=w.getSmartText(V,P,d),A.value=V,C.nameMaxW=P,C.nameMaxH=o.height,z=o.height+I,C.axisNamePadding=I+G,C.axisNamePadding+o.height>y&&(C.axisNamePadding=y-o.height,z=o.height+C.axisNamePadding-G)),N?(E?W.bottom+=T+j:(W.top+=T,W.bottom+=j),C.trendBottomPadding=W.bottom-j+2,_?W.bottom+=z:W.top+=z):(E?(W.top+=T,W.bottom+=j):W.bottom+=T+j,C.trendBottomPadding=W.bottom-j+2,_?W.top+=z:W.bottom+=z),W},a._parseCategoryPlotLine=function(){var e,t,a,i=this.config,n=i.axisRange,o=i.tickValues.tickValue,l=(0,r.convertColor)(i.divLineColor,i.divLineAlpha),s=i.divLineThickness,c=i.divLineIsDashed?(0,r.getDashStyle)(i.divLineDashLen,i.divLineDashGap,s):r.DASH_DEF,h=m(this.getVisibleConfig()),u=i._allTicks,d=u.length;if(e={stroke:l,"stroke-width":s,"stroke-dasharray":c},(!o[0]||o[0].x===r.UNDEF&&o[0].y===r.UNDEF)&&i.lines.isDraw&&i.categoryNumDivLines)for(t=0;t<d;++t)h(a=u[t])&&a!==n.min&&a!==n.max&&this.setReferenceInfo({from:a,type:"line",layer:1,attr:e})},a._drawComponents=function(){var e=this.config;e.drawAxisName&&this._drawAxisName(),e.drawAxisLine&&this._drawAxisLine(),e.tickValues?e.drawLabels&&this._drawCategory():e.drawLabels&&this._drawLabel(),e.drawTrendLines&&this.drawTrendLabel()},a.drawTrendLabel=function(){var e,t,a,i,n,o,l,s,c,u,d,g,p,f,m,b,x=this.config,y=x.parsedTrendLabels,C=this.getFromEnv("animationManager"),k=this.getFromEnv("toolTipController"),S=x.axisTrendLabelContainer,w=x.isOpposit,L=x.labelPadding,A=x.vTrendLines,N=x.trendLines,F=x.axisDimention,E=this.getVisibleConfig(),_=E.minValue,T=E.maxValue,P=!0;for(m=0,b=y.length;m<b;m++)y[m].id=m+"_trend";for(A?i=w?F.opposite+(x.trendBottomPadding||0):F.y+(x.trendBottomPadding||0):(i=w?F.opposite-(L||0):F.x-(L||0),n=w?F.x+(L||0):F.opposite+(L||0)),m=0,b=(p=(0,h["default"])((function(e,t){return e.attr.text===t.attr.text}),x.prevTrendLabels,y)).length;m<b;m++)(g=this.getGraphicalElement(p[m].id))&&this.removeGraphicalElement(g);if(x.prevTrendLabels=(0,r.extend2)([],y),x.drawTrendLabels)for(m=0,b=y.length;m<b;m++)t=y[m],a=this.getGraphicalElement(m+"_trend"),l=+t.from,c=+t.to,P=!0,(f=!isNaN(c))?(_>(s=l+(c-l)/2)||T<s)&&(P=!1):(_>l||T<l)&&(P=!1),P?(A?(u=this.getPixel(l,v),d=c?this.getPixel(c,v):0,o=(0,r.pluckNumber)(t.isTrendZone,x.isTrendZone,1),f&&c!==l&&o?(t.attr.x=u+(d-u)/2,t.attr.y=i):(t.attr.x=c?d:u,t.attr.y=i)):N&&(u=this.getPixel(l,v),d=c?this.getPixel(c,v):0,e=(0,r.pluckNumber)(t.valueOnRight,x.isOpposit?1:0),o=(0,r.pluckNumber)(t.isTrendZone,x.isTrendZone,0),f&&c!==l&&o?(t.attr.x=e?n:i,t.attr.y=u+(d-u)/2):(t.attr.x=e?n:i,t.attr.y=c&&e?d:u)),a=this.addGraphicalElement(m+"_trend",C.setAnimation({container:S,el:a||"text",attr:t.attr,css:t.css,data:{value:s||l},component:this,label:"text"})),x.showTooltip&&t.valueToolText?k.enableToolTip(a,t.valueToolText):k.disableToolTip(a)):a&&this.removeGraphicalElement(a);else for(m=0,b=y.length;m<b;m++)(g=this.getGraphicalElement(y[m].id))&&this.removeGraphicalElement(g)},a._drawAxisName=function(){var e,t,a,i,n,o,l=this.config,s=this.getFromEnv("toolTipController"),c=this.getLinkedItem("canvas").getEffectiveDimensions(),h=this.getFromEnv("animationManager"),u=c.left,d=c.top,g=c.width,p=c.height,f=d+p,m=u+g,v=this.getFromEnv("chart").config,b=l.name.style,x=l.name.value,y=l.isOpposit,C=l.isVertical,k=this.getFromEnv("smartLabel"),S=l.axisNameContainer,w=l.axisNamePadding,L=l.nameMaxH,A=l.nameMaxW,N=l.axisDimention,F=C?N.x:N.y,E=N.opposite,_=this.getGraphicalElement("axisName"),T=(0,r.pluckNumber)(l.name.rotation,C?90:270),P=this.getFromEnv("paper"),D={fontFamily:b.fontFamily,fontSize:b.fontSize,lineHeight:b.lineHeight,fontWeight:b.fontWeight,fontStyle:b.fontStyle};l.name.isDraw?(e={fontFamily:b.fontFamily,fill:b.color,"vertical-align":"middle","font-size":b.fontSize,"line-height":b.lineHeight},k.useEllipsesOnOverflow(v.useEllipsesWhenOverflow),k.setStyle({fontSize:b.fontSize,fontFamily:b.fontFamily,lineHeight:b.lineHeight,fontWeight:b.fontWeight}),l.drawAxisNameOpposit&&(y=!y,F=E),C?(w=Math.max(w,function(e,t){var a=0;return e.relativeAxis&&e.relativeAxis.config&&e.relativeAxis.config.axisNamePadding&&(a=Math.max(e.relativeAxis.config.axisNamePadding,a)),e.isOpposit&&t.canvasMarginRight&&(a=Math.max(a,t.canvasMarginRight-t.marginLeft-e.nameMaxW)),!e.isOpposit&&t.canvasMarginLeft&&(a=Math.max(a,t.canvasMarginLeft-t.marginRight-e.nameMaxW)),a}(l,v)),i=l.axisNameAlignCanvas||v.captionalignment&&"left"===v.captionalignment?p:Math.max(p,l.oriCanvasHeight||0),T?(a=(t=k.getSmartText(x,i,A)).tooltext,n=t.width):(a=(t=k.getSmartText(x,A,i)).tooltext,n=t.height),o=l.drawAxisNameFromBottom?f-n/2:n>p?v.height/2:d+p/2,e.text=t.text,e.x=y?(F||m)+w+A/2:(F||u)-w-A/2,e.y=o):(a=(t=k.getSmartText(x,g,L)).tooltext,y&&v.canvasMarginTop&&(w=Math.max(w,v.canvasMarginTop-v.marginTop-L)),!y&&v.canvasMarginBottom&&(w=Math.max(w,v.canvasMarginBottom-v.marginBottom-L)),e.text=t.text,e.x=u+g/2,e.y=y?(F||d)-w-L/2:(F||f)+w+L/2),e["text-bound"]=""===t.text?[]:[b.backgroundColor,b.borderColor,b.borderColor?b.borderThickness:0,b.borderPadding,b.borderRadius,b.borderDash],e.transform=P.getSuggestiveRotation(C?T:0,e.x,e.y),_=this.addGraphicalElement("axisName",h.setAnimation({css:D,el:_||"text",attr:e,container:S,component:this,label:"text"})),l.showTooltip?s.enableToolTip(_,a):s.disableToolTip(_)):_&&this.removeGraphicalElement(_)},a._drawAxisLine=function(){var e,t,a,i,n,o,l,s,h,u,d,g,f,m,b,x,y,C,k=this.config,S=k.isVertical,w=k.isOpposit,L=this.getFromEnv("chart"),A=this.getLinkedItem("canvas").getEffectiveDimensions(),N=this.getFromEnv("animationManager"),F=A.top,E=A.left,_=F+A.height,T=E+A.width,P=k.axisDimention,D=S?P.x:P.y,I=k.drawAxisLineWRTCanvas,M=L.getFromEnv("chart-attrib"),O=k.axisAxisLineContainerBottom,R=this.getGraphicalElement("axisLine"),V=[];if(i=1===(0,r.pluckNumber)(M.showyaxisline,M.showyaxisline)?(0,r.pluckNumber)(M.yaxislinethickness,M.pyaxislinethickness,1):0,k.showAxisLine){if(S?(n=w?(D=I?T:D)+k.axisLineThickness/2:(D=I?E:D)-k.axisLineThickness/2,a=(x=p(["M",n,_,"L",n,F],k.axisLineThickness)).path):(n=w?(D=I?F:D)-k.axisLineThickness/2:(D=I?_:D)+k.axisLineThickness/2,a=(x=p(["M",E-i,n,"L",T,n],k.axisLineThickness)).path),s={path:a,stroke:k.axisLineColor,"stroke-linecap":"butt","stroke-width":k.axisLineThickness,"shape-rendering":x.isCrisped?"crisp":r.UNDEF},k.drawTick&&k.tickLength)for(e={stroke:k.tickColor,"stroke-width":k.tickWidth},o=S?w?n+k.tickLength:n-k.tickLength:w?n-k.tickLength:n+k.tickLength,b=0,C=(y=k.tickValues?k.tickValues.tickValue.map((function(e){return S?e.y:e.x})):k.ticks).length;b<C;b+=1)f=(g=y[b])+"_tick",u=this.getGraphicalElement(f),l=this.getPixel(g,v),e.path=p(S?["M",n,l,"L",o,l]:["M",l,n,"L",l,o],k.tickWidth).path,h=N.setAnimation({el:u||"path",attr:e,data:{value:g,path:e.path},container:O,component:this,label:"path"}),u||this.addGraphicalElement(f,h),V.push(f);t=N.setAnimation({el:R||"path",attr:s,container:O,component:this,label:"path"}),R||this.addGraphicalElement("axisLine",t),V.push("axisLine")}for(b=0,C=(m=(0,c["default"])(k.prevTicks,V)).length;b<C;b++)(d=this.getGraphicalElement(m[b]))&&this.removeGraphicalElement(d);k.prevTicks=V},a._parseCategory=function(){var e,t,a,i,n,o,l,s,c,h,u,d,g,p,f,m,b,x,y,C,k,S,w,L,A,N,F,E,_,T=this.config,P=T.axisDimention||{},D=this.getFromEnv("chart"),I=D.getFromEnv("smartLabel"),M=this.components,O=M.labels,R=this.getLinkedItem("canvas").getEffectiveDimensions(),V=D.config,B=T.isOpposit,G=T.labels,H=G.style,z=T.isVertical,W=R.top,j=R.left,U=W+R.height,q=j+R.width,Y=T.labelPadding,X=z?P.x:P.y,K=P.opposite,Z=D.getFromEnv("dataSource").categories,J={},$=T.tickValues.tickValue,Q=T.axisRange.min,ee=T.drawnStaggerLines,te=(T.labelStep!==T.labels.step||1!==this.getZoom())&&"stagger"===T.labelDisplay;if(T.labels.isDraw)for(z&&(A=Math.abs(this.getPixel(0,v)-this.getPixel(0+T.axisRange.tickInterval,v)),T.labelMaxH>A&&(k=Math.ceil(T.labelMaxH/A)),k>T.labels.step&&(T.labels.step=k)),te&&(L=2*Math.abs(this.getPixel(Q,v)-this.getPixel(Q+T.labels.step,v))*T.sWidthAdjstFactor-1),F=(i=T.labels.rotation)?T.labelMaxH:T.labelMaxW,E=i?T.labelMaxW:T.labelMaxH,T.drawLabelsOpposit&&(B=!B,X=K),Z&&Z[0]&&"auto"!==T.xAxisLabelMode&&(J.fontFamily=Z[0].font,J.fontSize=Z[0].fontsize,J.color=Z[0].fontcolor),T.ParentCss=g={fontFamily:(0,r.pluck)(J.fontFamily,H.fontFamily),fontSize:(0,r.pluck)(J.fontSize,H.fontSize),fontWeight:(0,r.pluck)(H.fontWeight),fontStyle:(0,r.pluck)(H.fontStyle)},g.lineHeight=(0,r.setLineHeight)(g),y=this._getCategoryArr(),M.labelIndexArr=[],e=0,C=y.length;e<C;e+=1)t=$[_=y[e].index],b=y[e].value,M.labelIndexArr.push(_),c=(0,r.pluck)(t.font,t.labelfont),h=(0,r.pluck)(t.fontsize,t.labelfontsize),u=(0,r.pluck)(t.fontbold,t.labelfontbold)?(0,r.pluckNumber)(t.fontbold,t.labelfontbold,0)?"bold":r.NORMAL:r.UNDEF,d=(0,r.pluck)(t.fontitalic,t.labelfontitalic)?(0,r.pluckNumber)(t.fontitalic,t.labelfontitalic,0)?"italic":r.NORMAL:r.UNDEF,f=(0,r.convertColor)((0,r.pluck)(t.fontcolor,t.labelfontcolor,J.color,H.color),(0,r.pluckNumber)(t.labelalpha,T.rawAttr.labelAlpha,D.config.singleseries?r.UNDEF:t.alpha,100)),c||h||u||d?(s={},c&&(s.fontFamily=c),h&&(s.fontSize=h),u&&(s.fontWeight=u),d&&(s.fontStyle=d),s.lineHeight=h?(0,r.setLineHeight)(s):g.lineHeight):s=r.UNDEF,(s||g)&&-1!==(o=(s||g).lineHeight).indexOf("px")&&(n=o.replace(/px/i,""),n=parseFloat(n)),!1===t.appliedSmartLabel&&(I.setStyle(t._ovrStyle||g),N=I.getSmartText(t.oriLabel||t.label,F,E),t.oriLabel=t.oriLabel||t.label,t.label=N.text,t.labelTooltext=N.labelTooltext,t.appliedSmartLabel=!0),m=this.getPixel(b,v),z?(a=t.label||"",l=Number(t.labelPadding)||0,p={fill:f,"line-height":n,opacity:1,"text-anchor":B?r.POSITION_START:r.POSITION_END,text:a,cursor:!V.singleseries&&t.link||t.labellink||H.labelLink?r.POINTER:"",x:B?(X||q)+Y:(X||j)-Y,y:l?m+l:m}):(a=t.label||"",l=Number(t.labelPadding)||0,p={fill:f,"line-height":n,opacity:1,text:a,cursor:!V.singleseries&&t.link||t.labellink||H.labelLink?r.POINTER:"",x:m,y:B?(X||W)-Y:(X||U)+Y},i?(p["text-anchor"]=B?r.POSITION_START:r.POSITION_END,p["vertical-align"]=r.POSITION_MIDDLE):(p["text-anchor"]=r.POSITION_MIDDLE,p["vertical-align"]=B?r.POSITION_BOTTOM:r.POSITION_TOP),te?((S=t.labelCount%ee)&&((n=t.style.lineHeight)||(n=T.labels.style.lineHeight),w=n.replace(/px/i,"")*S,p.y=B?p.y-w:p.y+w),I.setStyle(t._ovrStyle||g),N=I.getSmartText(t.oriLabel||t.label,L,E),t.oriLabel=t.oriLabel||t.label,p.text=t.label=N.text,t.labelTooltext=N.labelTooltext,t.appliedSmartLabel=!0):l&&(B?p.y-=l:p.y+=l)),x={label:t.label,lineHeight:o,border:(0,r.pluckNumber)(t.borderthickness,t.labelborderthickness)?(0,r.pluckNumber)(t.borderthickness,t.labelborderthickness,1)+"px solid":"",borderColor:t.bordercolor||t.labelbordercolor?(0,r.convertColor)(t.bordercolor||t.labelbordercolor,(0,r.pluckNumber)(t.borderalpha,t.labelborderalpha,t.alpha,t.labelalpha,100)):r.BLANKSTRING,borderThickness:(0,r.pluckNumber)(t.borderthickness,t.labelborderthickness),borderPadding:(0,r.pluckNumber)(t.borderpadding,t.labelborderpadding),borderRadius:(0,r.pluckNumber)(t.borderradius,t.labelborderradius),backgroundColor:t.bgcolor||t.labelbgcolor?(0,r.convertColor)(t.bgcolor||t.labelbgcolor,(0,r.pluckNumber)(t.bgalpha,t.labelbgalpha,t.alpha,t.labelalpha,T.rawAttr.labelAlpha,100)):r.BLANKSTRING,borderDash:(0,r.pluckNumber)(t.borderdashed,t.labelborderdashed,0)?(0,r.getDashStyle)((0,r.pluckNumber)(t.borderdashlen,t.labelborderdashlen,4),(0,r.pluckNumber)(t.borderdashgap,t.labelborderdashgap,2)):0===(0,r.pluckNumber)(t.borderdashed,t.labelborderdashed)?r.DASH_DEF:H.borderDash},t.label?p["text-bound"]=[(0,r.pluck)(x.backgroundColor,H.backgroundColor),(0,r.pluck)(x.borderColor,H.borderColor),(0,r.pluck)(x.borderThickness,H.borderThickness),(0,r.pluck)(x.borderPadding,H.borderPadding),(0,r.pluck)(x.borderRadius,H.borderRadius),(0,r.pluck)(x.borderDash,H.borderDash)]:p["text-bound"]=[],G.shiftX&&(p.x+=G.shiftX),G.shiftY&&(p.y+=G.shiftY),p.transform=(0,r.getSuggestiveRotation)(i,p.x,p.y),O[_]=O[_]||{config:{props:{label:{}}}},O[_].config.props.label.attr=p,O[_].config.props.label.css=s},a.allocatePosition=function(){var e=this.config;e.tickValues?e.drawLabels&&this._parseCategory():e.drawLabels&&this._parseLabel(),this.getChildren("scrollBar")&&this.getChildren("scrollBar")[0]&&this.getChildren("scrollBar")[0].setDimension(this.getScrollbarDimension())},a._drawCategory=function(){var e,t,a,i,n,o,l,s,c,u,d,g=this.config,p=this.getFromEnv("chart"),f=p.config,m=g.labels,v=this.getFromEnv("animationManager"),b=m.style,x=this.getFromEnv("toolTipController"),y=g.axisContainer,C=this.config.categoryLabel||(this.config.categoryLabel=[]),k=function(e){return function(t){p.plotEventHandler(this,t,e)}},S=g.tickValues.tickValue,w=[];if(g.labels.isDraw){for(y.css(g.ParentCss),o=this._getCategoryArr(),e=0,s=(n=(0,h["default"])((function(e,t){return e.value===t.value}),g.prevCategoryIntervalArr,o)).length;e<s;e++)(u=this.getGraphicalElement(n[e].value+"_label"))&&this.removeGraphicalElement(u);for(g.prevCategoryIntervalArr=(0,r.extend2)([],o),e=0,s=o.length;e<s;e+=1)w[e]=o[e].value+"_label";for(e=0,s=o.length;e<s;e+=1)t=S[d=o[e].index],i=(c=this.components.labels[d].config).props.label.attr,l=this.getGraphicalElement(w[e]),a=v.setAnimation({el:l||"text",attr:i,container:y,data:{value:void 0},component:this,label:"text",css:c.props.label.css}),l||(this.addGraphicalElement(w[e],a),a.on("fc-click",k("dataLabelClick")).hover(k("dataLabelRollOver"),k("dataLabelRollOut"))),a.data("eventArgs",{link:!f.singleseries&&t.link||t.labellink||b.labelLink,text:i.text,index:d}),t.labelTooltext?x.enableToolTip(a,t.labelTooltext):x.disableToolTip(a),C[d]=a}else for(e=0,s=g.prevCategoryIntervalArr.length;e<s;e++)(u=this.getGraphicalElement(g.prevCategoryIntervalArr[e].value+"_label"))&&this.removeGraphicalElement(u)},a._getCategoryArr=function(){var e,t,a,i,n,o,l,s,c,h,u=this.config,d=u.isVertical,g=0,p=0,f=[];for(e=u.tickValues.tickValue,i=b(e),a=e?e.length-1:0,d&&(c=Math.abs(this.getPixel(0,v)-this.getPixel(1,v)),u.labelMaxH>c&&(g=Math.ceil(u.labelMaxH/c)),g>u.labels.step&&(u.labels.step=g)),s=u.labels.step>0?u.labels.step:1,h=1!==this.getZoom(),o=this.getVisibleConfig(),t=i;t<=a;t+=s)(n=e[t])&&(l=(0,r.pluckNumber)(n.x,n.y,t),0!==(0,r.pluckNumber)(n.showlabel,u.showLabels,1)&&(h&&(l<o.minValue||l>o.maxValue)?n.labelCount=p++:("auto"!==u.xAxisLabelMode&&"mixed"!==u.xAxisLabelMode||0!==u.showZeroPlane&&0!==u.showZeroPlaneValue||0!==l)&&(u.labels.drawNormalVal||u.labels.drawLimitVal&&(t===i||t===a))&&(u.labels.drawNormalVal||t===i||t===a)&&(u.labels.drawLimitVal||t!==i&&t!==a)&&(n.labelCount=p++,f.push({index:t,value:l}))));return f},a.getValue=function(e,t){void 0===t&&(t={wrtVisible:!1});var a=this.getScale(),i=this.getTranslation();return a.getDomainValue(t.wrtVisible?e:e-i)},a.getPixel=function(e,t){void 0===t&&(t={wrtVisible:!1});var a=this.getScale(),i=this.getTranslation(),n=a.getRangeValue(e);return t.wrtVisible?n:n+i},a._getCustomPixel=function(e,t,a){if(void 0===a&&(a={wrtVisible:!1}),!t)return this.getPixel(e,a);var i=this.getScale().copy(),n=i.getRange(),o=n[0],r=n[1],l=Math.min(o,r),s=i.getRangeValue(e),c=this.getTranslation();return i.setRange([l,l+t]),a.wrtVisible?s:s+c},a.getTranslation=function(){return this.config.translation||0},a.setScrollType=function(e){"none"!==e&&"smart"!==e&&"always"!==e||(this.config.scrollType=e,"none"===e?this.disableScroll():this.enableScroll())},a.getScrollType=function(){return this.config.scrollType},a._createScrollBar=function(){var e,t=this,a=t.config,i=t.getFromEnv("chart"),n=t.getFromEnv("animationManager"),o=t.getChildren("scrollBar")&&t.getChildren("scrollBar")[0];o||(o=t.attachChild(new d.ScrollBar,"scrollBar")),o.configure({isHorizontal:!a.isVertical}),o.attachEventHandlers({scrollStart:function(t){e=t,i.fireChartInstanceEvent("scrollstart",{scrollPosition:t})},scroll:function(e){var o=a.axisRange.max,r=a.axisRange.min,l=t.getVisibleConfig(),c=l.minValue,h=l.maxValue-c,u=o-h,d=(0,s["default"])(r,u),g=a.isReverse?d(1-e):d(e);t.setState("scrolling",!0),n.setAnimationState("scroll"),i.fireChartInstanceEvent("onScroll",{scrollPosition:e}),t.setVisibleConfig(g,g+h)},scrollEnd:function(t){i.fireChartInstanceEvent("scrollend",{scrollPosition:t,prevScrollPosition:e})}})},a._disposeScrollBar=function(){var e=this.getChildren("scrollBar")&&this.getChildren("scrollBar")[0];e&&e.remove()},a.getScrollbarDimension=function(){var e,t,a,i,n,o,l,s,c,h,u,d,g,p,f,m,b,x=this.getFromEnv("chart"),y=this.config,C=y.isOpposit,k=y.axisRange,S=y.scrollOptions||(y.scrollOptions={}),w=k.max,L=k.min,A=S.vxLength,N=this.getChildren("scrollBar")[0],F=x.getChildren("canvas")[0].config,E=y.scrollbarContainer;if(N)return e=N.config,t=F.canvasLeft,a=F.canvasTop,i=F.canvasHeight,n=F.canvasWidth,o=F.canvasBorderWidth,l=y.showAxisLine&&y.axisLineThickness||0,s=(0,r.pluckNumber)(o,y.lineStartExtension),c=(0,r.pluckNumber)(o,y.lineEndExtension),S.viewPortMin=L,S.viewPortMax=w,h=(f=(g=this.getVisibleConfig()).maxValue-(p=g.minValue))/(m=k.max-k.min),b=(p-k.min)/(m-f),u=S.windowedCanvasWidth=this.getPixel(A,v),d=S.fullCanvasWidth=this.getPixel(w-L,v)-u,e.scrollRatio=h,e.roundEdges=F.isRoundEdges,e.fullCanvasWidth=d,e.windowedCanvasWidth=u,e.parentLayer=E,e.scrollPosition=b,y.isVertical?(e.scrollPosition=y.isReverse?1-b:b,{x:C?t+n+o+(e.padding||0):t-x.config.shift-o,y:a-o-(e.padding||0),height:i+2*o}):(e.scrollPosition=b,{x:t-s,y:C?a-o-l-(x.config.shift||0)-(e.padding||0):a+i+o+l,width:n+s+c})},a.enableScroll=function(){this._createScrollBar()},a.disableScroll=function(){this._disposeScrollBar()},a.isScrollEnabled=function(){var e=this.getChildren("scrollBar");return!(!e||!e[0]||e[0].getState("removed"))},a.setVisibleConfig=function(e,t){var a,i=this.config,n=this.getZoom(),o=this.getScale();return!(e>=t||e<i.axisRange.min||t>i.axisRange.max)&&(a=o.setDomain([e,t]).getDomain(),i.visibleMin=a[0],i.visibleMax=a[1],i.zoom=this._computeZoom(),i.translation=this._computeTranslation(),1===n&&1===this.getZoom()||(i.ticks=this.generateTicks(),i.minorTicks=this.generateMinorTicks(),i.tickValues&&this.calculateTicksOnLabelMode&&this.calculateTicksOnLabelMode()),this.clearReferenceInfo(),this._parseReferenceVisuals(),this.fireEvent("visiblerangeset",{minValue:e,maxValue:t}),this.asyncDraw(),!0)},a.hide=function(){var e=this.config;e.axisContainer&&(e.axisLabelContainerTop.hide(),e.axisContainer.hide(),e.axisNameContainer.hide(),e.axisTrendLabelContainer.hide(),e.axisAxisLineContainer.hide(),e.axisAxisLineContainerBottom.hide())},a.show=function(){var e=this.config;e.axisContainer&&(e.axisLabelContainerTop.show(),e.axisContainer.show(),e.axisNameContainer.show(),e.axisTrendLabelContainer.show(),e.axisAxisLineContainer.show(),e.axisAxisLineContainerBottom.show())},a.getZoom=function(){return this.config.zoom||1},a._computeTranslation=function(){var e=this.config,t=this.getVisibleConfig(),a=(0,r.pluckNumber)(t.minValue,e.axisRange.min,0),i=(0,r.pluckNumber)(e.axisRange.min,t.minValue,0);return this.getPixel(a)-this.getPixel(i)},a._computeZoom=function(){var e=this.config,t=this.getVisibleConfig(),a=(0,r.pluckNumber)(t.minValue,e.axisRange.min,0),i=(0,r.pluckNumber)(t.maxValue,e.axisRange.max,1),n=(0,r.pluckNumber)(e.axisRange.min,t.minValue,0),o=(0,r.pluckNumber)(e.axisRange.max,t.maxValue,1),l=e.maxZoomLimit,s=(o-n)/(i-a);return s>l?l:s},a.getTickValues=function(){var e=this.config.tickValues;return e&&e.tickValue||[]},a.dataLabels=function(e){var t=this.config.axisIndex;return this.getFromEnv("number-formatter").dataLabels(e,t)},a.getAxisBase=function(){var e=this.getVisibleConfig(),t=e.minValue,a=e.maxValue;return t<0&&a>0?0:a<=0?a:t},a._parseReferenceVisuals=function(){var e,t,a=this.config,i=this.getTickValues(),n=i.length,o=this.getFromEnv("chartConfig").is3D;a.isActive||(e=a.lines.isDraw,t=a.band.isDraw,a.lines.isDraw=0,a.band.isDraw=0),a.tickValues?a.drawLabels&&this._parseCategoryLine(i,0,n):a.drawPlotlines&&this._parsePlotLine(),a.tickValues&&"auto"!==a.xAxisLabelMode?(a.drawPlotlines&&!o&&this._parseCategoryPlotLine(),a.drawPlotBands&&!o&&this._parseCategoryPlotBand(),"mixed"===a.xAxisLabelMode&&a.drawPlotBands&&!o&&this._parsePlotBand()):a.drawPlotBands&&!o&&this._parsePlotBand(),a.isActive||(a.lines.isDraw=e,a.band.isDraw=t),a.drawTrendLines&&this._parseTrendLine()},a._parseCategoryPlotBand=function(){var e,t,a,i,n,o=this.config,l=o.tickValues.tickValue,s=o.showAlternateGridColor,c=o.alternateGridColor,h=o.alternateGridAlpha,u=o._allTicks,d=this.getLimit(),g=d.min,p=d.max,m=f(this.getVisibleConfig());if((!l[0]||l[0].x===r.UNDEF&&l[0].y===r.UNDEF)&&s&&o.band.isDraw&&o.categoryNumDivLines)for(e={fill:(0,r.toRaphaelColor)((0,r.convertColor)(c,h)),"stroke-width":0},t=0,n=0;n<u.length;++t,++n)m(u[n],u[n+1])&&(a=u[n],t%2==0&&(i=u[n+1])!==r.UNDEF&&(a===g&&(a="canvasStart"),i===p&&(i="canvasEnd"),this.setReferenceInfo({from:a,to:i,layer:0,type:"band",attr:e})))},a._parseTrendLine=function(){var e,t,a,i,n,o,l,s,c,h,u,d,g,p,f,m,v,b,x,y,C=this.config,k=C.isVertical,S=C.axisIndex,w=this.getFromEnv("chart-attrib"),L=this.getFromEnv("number-formatter"),A=C.axisRange,N=A.max,F=A.min,E=C.trend.trendStyle,_={fontFamily:E.fontFamily,fontSize:E.fontSize,lineHeight:E.lineHeight,fontWeight:E.fontWeight,fontStyle:E.fontStyle},T=C.vTrendLines,P=C.trendLines,D=0;if(l=P||T)for(a=0,i=l.length;a<i;a+=1)for(e=0,t=l[a].line&&l[a].line.length;e<t;e+=1)v=k?"yAxis":"xAxis",(u=l[a].line[e]).startvalue||u.value||0,p=L.getCleanValue((0,r.pluck)(u.startvalue,u.value,0)),f=Number(u.endvalue)||r.UNDEF,n=(0,r.getValidValue)((0,r.parseUnsafeString)((0,r.pluck)(l[a].line[e].tooltext,l[0].tooltext,C.trendlineToolText))),n=(0,r.parseTooltext)(n,[7,15,16,17,18,19],{startValue:p,startDataValue:L[v](p,S),endValue:f||p,endDataValue:L[v](f||p,S),axisName:C.axisName},u),p>N||p<F||f>N||f<F||(T?(d=(0,r.parseUnsafeString)(u.displayvalue||""),s=(0,r.pluckNumber)(u.istrendzone,C.isTrendZone,1),f!==r.UNDEF&&""!==f&&f!==p&&s?(c={fill:(0,r.convertColor)((0,r.pluck)(u.color,C.trendlineColor),(0,r.pluck)(u.alpha,C.trendlineAlpha,40)),"stroke-width":0},h={fill:(0,r.convertColor)((0,r.pluck)(u.color,E.color),(0,r.pluck)(E.valueAlpha,u.alpha,C.trendlineAlpha,99)),"vertical-align":r.POSITION_TOP,text:d}):(m=(0,r.pluckNumber)(u.thickness,C.trendlineThickness,1),c={stroke:(0,r.convertColor)((0,r.pluck)(u.color,C.trendlineColor),(0,r.pluck)(u.alpha,C.trendlineAlpha,99)),"stroke-width":m,"stroke-dasharray":(0,r.pluck)(u.dashed,C.trendlinesAreDashed)===r.ONESTRING?(0,r.getDashStyle)((0,r.pluckNumber)(u.dashlen,C.trendlinesDashLen),(0,r.pluckNumber)(u.dashgap,C.trendlinesDashGap)):r.DASH_DEF},h={fill:(0,r.convertColor)((0,r.pluck)(u.color,E.color),(0,r.pluck)(E.valueAlpha,u.alpha,C.trendlineAlpha,99)),"vertical-align":r.POSITION_TOP,text:d})):P&&(d=(0,r.pluck)((0,r.parseUnsafeString)(u.displayvalue),u.startvalue,""),g=(0,r.pluckNumber)(u.valueonright,C.isOpposit?1:0),s=(0,r.pluckNumber)(u.istrendzone,C.isTrendZone,0),f!==r.UNDEF&&""!==f&&f!==p&&s?(c={fill:(0,r.convertColor)((0,r.pluck)(u.color,C.trendlineColor),(0,r.pluck)(u.alpha,C.trendlineAlpha,40)),"stroke-width":0},h={"text-anchor":g?r.POSITION_START:r.POSITION_END,fill:(0,r.convertColor)((0,r.pluck)(u.color,E.color),(0,r.pluck)(E.valueAlpha,u.alpha,C.trendlineAlpha,99)),text:d}):(m=(0,r.pluckNumber)(u.thickness,C.trendlineThickness,1),c={stroke:(0,r.convertColor)((0,r.pluck)(u.color,C.trendlineColor),(0,r.pluck)(u.alpha,C.trendlineAlpha,99)),"stroke-width":m,"stroke-dasharray":(0,r.pluck)(u.dashed,C.trendlinesAreDashed)===r.ONESTRING?(0,r.getDashStyle)((0,r.pluckNumber)(u.dashlen,C.trendlinesDashLen),(0,r.pluckNumber)(u.dashgap,C.trendlinesDashGap)):r.DASH_DEF},h={"text-anchor":g?r.POSITION_START:r.POSITION_END,fill:(0,r.convertColor)((0,r.pluck)(u.color,E.color),(0,r.pluck)(E.valueAlpha,u.alpha,C.trendlineAlpha,99)),text:d})),h["text-bound"]=h.text?[E.backgroundColor,E.borderColor,E.borderThickness,E.borderPadding,E.borderRadius,E.borderDash]:[],C.showTooltip&&n||(n=r.BLANKSTRING),o=C.forceTrendBelow?0:(0,r.pluckNumber)(u.showontop,w.showtrendlinesontop,0),k?(b=p,y=f!==r.UNDEF?f:p):(b=f!==r.UNDEF?f:p,y=p),x=s&&b!==y?"band":"line",b!==r.UNDEF&&this.setReferenceInfo({from:b,to:y,toolText:n,attr:c,layer:o?3:2,type:x,id:"trend"+D+x}),C.parsedTrendLabels.push({css:_,valueOnRight:g,isTrendZone:s,from:p,to:f,attr:h}),D+=1)},a._parsePlotLine=function(){var e,t,a,i,n,o=this.config,l=o.axisRange,s=l.max,c=l.min,h=m(this.getVisibleConfig()),u=o.showCanvasBorder,d=(0,r.convertColor)(o.divLineColor,o.divLineAlpha),g=o.divLineThickness,p=o.divLineIsDashed?(0,r.getDashStyle)(o.divLineDashLen,o.divLineDashGap):r.DASH_DEF,f=(0,r.convertColor)(o.zeroPlaneColor,o.zeroPlaneAlpha),v=o.zeroPlaneThickness,b=o._allTicks,x=b.length,y=o.showZeroPlaneOnTop,C=o.minorTicks,k=C&&C.length;if(o.lines.isDraw)for(t=0;t<x;++t)h(e=b[t])&&(i={"stroke-dasharray":p},0===o.showZeroPlane&&0===e||u&&(e===s||e===c)||(0===e&&e!==c&&e!==s?(i.stroke=f,i["stroke-width"]=v,y=o.showZeroPlaneOnTop):(y=0,i.stroke=d,i["stroke-width"]=g),this.setReferenceInfo({type:"line",from:e,layer:0===e&&y?3:1,attr:i})));for(n={stroke:o.minorDivlinecolor,"stroke-width":o.minorDivLineThickness,"stroke-dasharray":p},t=0;t<k;++t)a=C[t],this.setReferenceInfo({type:"line",from:a,layer:1,attr:n})},a._parseCategoryLine=function(e,t,a){var i,n,o,l,s,c,h=t,u=a,d=this.config,g=this.getFromEnv("color-manager"),p=this.getFromEnv("chartInstance").getJSONData().categories,f={};if(h=h||0,u=u||e?e.length-1:0,d.drawPlotlines)for(c=1!==this.getZoom(),o=this.getVisibleConfig(),p&&p[0]&&(f.verticalLineColor=p[0].verticallinecolor,f.verticalLineAlpha=p[0].verticallinealpha,f.verticalLineThickness=p[0].verticallinethickness,f.verticalLineDashed=p[0].verticallinedashed,f.verticalLineDashLen=p[0].verticallinedashlen,f.verticalLineDashGap=p[0].verticallinedashgap),i=h;i<=u;i+=1)(n=e[i])&&(s=(0,r.pluckNumber)(n.x,n.y,i),1===Number(n.showverticalline)&&(c&&(s<o.minValue||s>o.maxValue)||((l={stroke:(0,r.convertColor)((0,r.pluck)(n.linecolor,f.verticalLineColor,d.divLineColor,g.getColor("divLineColor")),(0,r.pluck)(n.linealpha,f.verticalLineAlpha,g.getColor("divLineAlpha"))),"stroke-width":(0,r.pluckNumber)(n.linethickness,f.verticalLineThickness,1)})["stroke-dasharray"]=(0,r.pluckNumber)(n.linedashed,f.verticalLineDashed,0)?(0,r.getDashStyle)((0,r.pluckNumber)(n.linedashLen,f.verticalLineDashLen,4),(0,r.pluckNumber)(n.linedashgap,f.verticalLineDashGap,2),l["stroke-width"]):r.DASH_DEF,this.setReferenceInfo({type:"line",from:s,layer:1,attr:l}))))},a._parsePlotBand=function(){var e,t,a,i,n,o,l=this.config,s=l.showAlternateGridColor,c=l.alternateGridColor,h=l.alternateGridAlpha,u=l._allTicks,d=f(this.getVisibleConfig()),g=l.isReverse;if(s&&l.band.isDraw)for(t=1,e={fill:(0,r.toRaphaelColor)((0,r.convertColor)(c,h)),"stroke-width":0},i=0,a=u.length;i<a;++i,++t)d(u[i],u[i+1])&&t%2==0&&u[i+1]!==r.UNDEF&&(o=g?Math.max(u[i],u[i+1]):Math.min(u[i],u[i+1]),n=g?Math.min(u[i],u[i+1]):Math.max(u[i],u[i+1]),this.setReferenceInfo({from:o,to:n,type:"band",layer:0,attr:e}))},a.getReferenceInfo=function(){return this.config.referenceInfo},a.setReferenceInfo=function(e){this.config.referenceInfo.push(e)},a.clearReferenceInfo=function(){var e=this.config;e.referenceInfo=[],e.parsedTrendLabels=[],e.parsedVlineInfo=[]},a.resetStoredLimits=function(){this.config.dataLimit={}},a.decideScroll=function(){var e=this.getScrollType();"always"===e||"smart"===e&&1!==this.getZoom()?this.enableScroll():this.disableScroll()},a.getAxisDimension=function(){var e=this.config.axisDimention;return{x:e.x,y:e.y,opposite:e.opposite,axisLength:e.axisLength}},t}(o["default"]);x.prototype.setAxisDimention=g.setAxisDimention,x.prototype.shiftLabels=g.shiftLabels,x.prototype._createContainer=g._createContainer;var y=x;t["default"]=y},453:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=a(199),r=a(184),l=function(e,t){return e<t?t:e},s=function(e){function t(){return e.apply(this,arguments)||this}(0,n["default"])(t,e);var a=t.prototype;return a.getType=function(){return"axis"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this),this.components={labels:[]};var t=this.config;t.setAdaptiveMin=0,t.adjustDiv=1,t.axisNameWidth=r.UNDEF,t.rotateAxisName=0,t.useEllipsesWhenOverflow=1,t.divLineColor=r.UNDEF,t.divLineAlpha=r.UNDEF,t.divLineThickness=r.UNDEF,t.divLineIsDashed=r.UNDEF,t.divLineDashLen=r.UNDEF,t.divLineDashGap=r.UNDEF,t.showAlternateGridColor=r.UNDEF,t.alternateGridColor=r.UNDEF,t.alternateGridAlpha=r.UNDEF,t.showZeroPlane=1,t.zeroPlaneAlpha=80,t.showZeroPlaneValue=1,t.showZeroPlaneOnTop=1,t.showAxisLine=r.UNDEF,t.axisLineThickness=r.UNDEF,t.axisLineAlpha=r.UNDEF,t.tickLength=0,t.trendlineToolText=r.UNDEF,t.trendlineColor="333333",t.trendlineThickness=1,t.trendlineAlpha=r.UNDEF,t.showTrendlinesOnTop=0,t.trendlinesAreDashed=0,t.trendlinesDashLen=5,t.trendlinesDashGap=2,t.isTrendZone=r.UNDEF,t.showTrendlines=1,t.showTrendlineLabels=1,t.showLabels=1,t.maxLabelHeight=r.UNDEF,t.rotateLabels=r.UNDEF,t.slantLabel=0,t.showAxisValues=1,t.showTooltip=1,t.isActive=!0,t.drawLabels=!0,t.drawOnlyCategoryLine=!1,t.drawLabelsOpposit=!1,t.drawPlotlines=!0,t.drawAxisLine=!0,t.drawPlotBands=!0,t.drawAxisName=!0,t.drawAxisNameOpposit=!1,t.axisNameAlignCanvas=!1,t.drawAxisNameFromBottom=!1,t.drawTrendLines=!0,t.drawTrendLabels=!0,t.drawTick=!0,t.drawTickMinor=!0,t.animateAxis=!0,t.drawAxisLineWRTCanvas=!0,t.isRelativeAxisInverse=!1,t.axisIndex=0,t.uniqueClassName=0,t.viewPortRatio={},t.canvas={},t.axisRange={},t.drawnStaggerLines=r.UNDEF,t.axisDimention={},t.forceZeroTick=!0,t.isZeroTickForced=!1,t.extremeLabels={firstLabel:{},lastLabel:{}},t._setRangeAgain=!1,t._defaultForceDecimal=r.UNDEF,t._defaultDecimalPrecision=r.UNDEF,t.rangeChanged=!1,t.dimensionChanged=!1,t.apparentScrollPos=0,t.visibleMin=r.UNDEF,t.visibleMax=r.UNDEF,t.setPadding=!1,t.trendLimits=r.UNDEF},a.configureAttributes=function(e){var t,a,i,n,o=this.config,s=this.getFromEnv("chart"),c=this.getFromEnv("dataSource"),h=s.config.is3D,u=c.chart,d=this.getFromEnv("number-formatter");t=o.rawAttr=e,o.referenceInfo=[],o.parsedTrendLabels=[],o.parsedVlineInfo=[],o.trendLines=t.trendlines,o.vTrendLines=t.vtrendlines,(0,r.parseConfiguration)(t,o),o.axisName=(0,r.parseUnsafeString)(t.axisName),o.axisValuePadding=o.axisNamePadding||(0,r.pluckNumber)(t.axisValuePadding,4),o.axisNamePadding=o.axisNamePadding||(0,r.pluckNumber)(t.axisNamePadding,5),o.maxLabelWidthPercent=(0,r.pluckNumber)(t.maxLabelWidthPercent),o.maxLabelWidthPercent=Math.abs(o.maxLabelWidthPercent),o.minLabelWidthPercent=Math.abs((0,r.pluckNumber)(t.minLabelWidthPercent)),o.numDivLines=(0,r.pluckNumber)(t.numDivLines,4),o.numDivLines=l(o.numDivLines,0),o.categoryNumDivLines=(0,r.pluckNumber)(t.numDivLines,0),o.axisValuePadding=l(o.axisValuePadding,0),o.isReverse=(0,r.pluckNumber)(t.isReverse,0),o.isOpposit=(0,r.pluckNumber)(t.isOpposit,0),o.isVertical=(0,r.pluckNumber)(t.isVertical,0),o.categoryDivLinesFromZero=1,o.axisMinValue=d.getCleanValue(t.axisMinValue),o.axisMaxValue=d.getCleanValue(t.axisMaxValue),o.zeroPlaneColor=(0,r.pluck)(t.zeroPlaneColor,t.divLineColor),o.zeroPlaneThickness=(0,r.pluck)(t.zeroPlaneThickness,t.divLineThickness),o.axisLineColor=(0,r.convertColor)(t.axisLineColor,t.axisLineAlpha),o.tickAlpha=(0,r.pluckNumber)(t.tickAlpha,o.axisLineAlpha),o.tickColor=(0,r.convertColor)((0,r.pluck)(t.tickColor,t.axisLineColor),o.tickAlpha),o.tickWidth=(0,r.pluckNumber)(t.tickWidth,o.axisLineThickness),o.maxZoomLimit=(0,r.pluckNumber)(u.maxzoomlimit,s.maxzoomlimit,1e3),o.showVLines=(0,r.pluckNumber)(u.showvlines,1),o.showVLinesOnTop=(0,r.pluckNumber)(u.showvlinesontop,0),o.showVLineLabels=(0,r.pluckNumber)(u.showvlinelabels,this.showVLineLabels,1),o.showVLineLabelBorder=(0,r.pluckNumber)(u.showvlinelabelborder,1),o.rotateVLineLabels=(0,r.pluckNumber)(u.rotatevlinelabels,0),o.vLineColor=(0,r.pluck)(u.vlinecolor,"333333"),o.vLineLabelColor=(0,r.pluck)(u.vlinelabelcolor),o.vLineThickness=(0,r.pluck)(u.vlinethickness,1),o.vLineAlpha=(0,r.pluckNumber)(u.vlinealpha,80),o.vLineLabelBgColor=(0,r.pluck)(u.vlinelabelbgcolor,"ffffff"),o.vLineLabelBgAlpha=(0,r.pluckNumber)(u.vlinelabelbgalpha,h?50:100),o.staggerLines=Math.max((0,r.pluckNumber)(u.staggerlines,2),2),o.staggerLines=l(o.staggerLines,1),o.trendlineValuesOnOpp=(0,r.pluck)(t.trendlineValuesOnOpp,t.trendlineValuesOnOpp,0),o.labelDisplay=(0,r.pluck)(t.labelDisplay,"auto").toLowerCase(),o.labelStep=(0,r.pluckNumber)(t.labelStep,1),o.labelStep=Math.round(o.labelStep),o.labelStep=l(o.labelStep,1),o.startPad=0,o.endPad=0,o._oriLabelStep=o.labelStep,o.showLimits=(0,r.pluckNumber)(t.showLimits,o.showAxisValues),o.showUpperLimit=t.showLimits,o.showDivLineValues=(0,r.pluckNumber)(t.showDivLineValues,o.showAxisValues),o.showCanvasBorder=s.getChildren("canvas")[0].config.showCanvasBorder?1:0,o.axisBreak=t.axisBreaks,o.isBreak=!!o.axisBreak,o.isBreak&&this._processAxisBreak(),a=(a=(0,r.getFirstValue)(t.axisNameBorderColor,r.BLANKSTRING))?(0,r.convertColor)(a,(0,r.pluckNumber)(t.axisNameBorderAlpha,t.axisNameAlpha,100)):r.BLANKSTRING,o.name=o.name||{},o.name.style={fontFamily:(0,r.pluck)(t.axisNameFont,t.outCanfontFamily),fontSize:(0,r.pluck)(t.axisNameFontSize,(0,r.pInt)(t.outCanfontSize))+r.PXSTRING,color:(0,r.convertColor)((0,r.pluck)(t.axisNameFontColor,t.outCancolor),(0,r.pluckNumber)(t.axisNameFontAlpha,t.axisNameAlpha,100)),fontWeight:(0,r.pluckNumber)(t.axisNameFontBold,1)?"bold":r.NORMAL,fontStyle:(0,r.pluckNumber)(t.axisNameFontItalic)?"italic":r.NORMAL,border:a||t.axisNameBgColor?(0,r.pluckNumber)(t.axisNameBorderThickness,1)+"px solid":r.UNDEF,borderColor:a,borderThickness:(0,r.pluckNumber)(t.axisNameBorderThickness,1),borderPadding:(0,r.pluckNumber)(t.axisNameBorderPadding,2),borderRadius:(0,r.pluckNumber)(t.axisNameBorderRadius,0),backgroundColor:t.axisNameBgColor?(0,r.convertColor)(t.axisNameBgColor,(0,r.pluckNumber)(t.axisNameBgAlpha,t.axisNameAlpha,100)):r.BLANKSTRING,borderDash:(0,r.pluckNumber)(t.axisNameBorderDashed,0)?(0,r.getDashStyle)((0,r.pluckNumber)(t.axisNameBorderDashLen,4),(0,r.pluckNumber)(t.axisNameBorderDashGap,2)):r.DASH_DEF},o.name.style.lineHeight=(0,r.setLineHeight)(o.name.style),i=(i=(0,r.getFirstValue)(u.trendvaluebordercolor,r.BLANKSTRING))?(0,r.convertColor)(i,(0,r.pluckNumber)(u.trendvalueborderalpha,u.trendvaluealpha,100)):r.BLANKSTRING,o.trend=o.trend||{},o.trend.trendStyle={fontFamily:(0,r.pluck)(u.trendvaluefont,t.outCanfontFamily),color:(0,r.pluck)(u.trendvaluefontcolor,t.trendlineColor,t.outCancolor,"333333"),valueAlpha:u.trendvaluealpha,fontSize:(0,r.pluckFontSize)(u.trendvaluefontsize,(0,r.pInt)(t.outCanfontSize))+r.PXSTRING,fontWeight:(0,r.pluckNumber)(u.trendvaluefontbold)?"bold":r.NORMAL,fontStyle:(0,r.pluckNumber)(u.trendvaluefontitalic)?"italic":r.NORMAL,border:i||u.trendvaluebgcolor?(0,r.pluckNumber)(u.trendvalueborderthickness,1)+"px solid":"",borderColor:i,borderThickness:(0,r.pluckNumber)(u.trendvalueborderthickness,1),borderPadding:(0,r.pluckNumber)(u.trendvalueborderpadding,2),borderRadius:(0,r.pluckNumber)(u.trendvalueborderradius,0),backgroundColor:u.trendvaluebgcolor?(0,r.convertColor)(u.trendvaluebgcolor,(0,r.pluckNumber)(u.trendvaluebgalpha,u.trendvaluealpha,100)):r.BLANKSTRING,borderDash:(0,r.pluckNumber)(u.trendvalueborderdashed,0)?(0,r.getDashStyle)((0,r.pluckNumber)(u.trendvalueborderdashlen,4),(0,r.pluckNumber)(u.trendvalueborderdashgap,2)):r.DASH_DEF},o.trend.trendStyle.lineHeight=(0,r.setLineHeight)(o.trend.trendStyle),o.labels=o.labels||{},o.lines=o.lines||{},o.band=o.band||{},n=(n=(0,r.getFirstValue)(t.labelBdrColor,r.BLANKSTRING))?(0,r.convertColor)(n,(0,r.pluckNumber)(t.labelBdrAlpha,t.labelAlpha,100)):r.BLANKSTRING,o.labels.style={fontFamily:(0,r.pluck)(t.labelFont,t.outCanfontFamily),fontSize:(0,r.pluckNumber)(t.labelFontSize,(0,r.pInt)(t.outCanfontSize))+r.PXSTRING,fontWeight:(0,r.pluckNumber)(t.labelFontBold)?"bold":r.NORMAL,fontStyle:(0,r.pluckNumber)(t.labelFontItalic)?"italic":r.NORMAL,color:(0,r.convertColor)((0,r.pluck)(t.labelFontColor,t.outCancolor),(0,r.pluckNumber)(t.labelAlpha,100)),labelLink:t.labelLink,border:n||t.labelBgColor?(0,r.pluckNumber)(t.labelBdrThickness,1)+"px solid":"",borderColor:n,borderThickness:(0,r.pluckNumber)(t.labelBdrThickness,1),borderPadding:(0,r.pluckNumber)(t.labelBdrPadding,2),borderRadius:(0,r.pluckNumber)(t.labelBdrRadius,0),backgroundColor:t.labelBgColor?(0,r.convertColor)(t.labelBgColor,(0,r.pluckNumber)(t.labelBgAlpha,t.labelAlpha,100)):r.BLANKSTRING,borderDash:(0,r.pluckNumber)(t.labelBdrDashed,0)?(0,r.getDashStyle)((0,r.pluckNumber)(t.labelBdrDashLen,4),(0,r.pluckNumber)(t.labelBdrDashGap,2)):r.DASH_DEF},o.labels.style.lineHeight=(0,r.setLineHeight)(o.labels.style),o.numberFormatterFn=(0,r.pluck)(t.numberFormatterFn),o.apparentScrollPos=t.apparentScrollPos||o.apparentScrollPos,o.axisRange={},o.dataLimit={},o.axisEndLabelDisplaySpace={left:0,right:0,top:0,bottom:0},o.isConfigured=!0,o._defaultForceDecimal=r.UNDEF,o._defaultDecimalPrecision=r.UNDEF,o.lines.isDraw=(0,r.pluckNumber)(t.lines&&t.lines.isDraw,1),o.band.isDraw=(0,r.pluckNumber)(t.band&&t.band.isDraw,1)},a.createContainer=function(e,t,a){var i=this.getFromEnv("animationManager");return this.addContainer(e,i.setAnimation({container:a,attr:t,el:this.getContainer(e)||"group",component:this,label:"group"}))},a.createGroup=function(e,t,a,i){return void 0===i&&(i="group"),this.getFromEnv("animationManager").setAnimation({container:a,attr:t,el:this.config[e]||"group",component:this,label:i})},a.getValuePadding=function(){var e=this.config;return{left:e.startPad,right:e.endPad}},a.draw=function(){var e,t,a,i,n=this.config,o=this.getFromEnv("chart").config,r=n.isVertical,l=o.viewPortConfig,s=this.getChildren().limitUpdater,c=n.viewPortRatio||{};this._createContainer(),a=l.y*l.scaleY,i=l.x*l.scaleX,c.scaleX&&c.scaleY&&(c.scaleX!==l.scaleX||c.scaleY!==l.scaleY)?(c.scaleX=l.scaleX,c.scaleY=l.scaleY,this._drawComponents()):(r?(t=a-l.y*l.scaleY,n.axisContainer.transform("t0,"+t),n.axisLabelContainerTop.transform("t0,"+t)):(e=i-l.x*l.scaleX,n.axisContainer.transform("t"+e+",0"),n.axisLabelContainerTop.transform("t"+e+",0")),this._drawComponents()),this.addExtEventListener("animationcomplete",(function(){s&&s.forEach((function(e){e.draw()}))}),this.getFromEnv("animationmanager")),this.addToEnv("prevScale",this.getScale().copy())},a.setScale=function(e){this.config.scale=e},a.getScale=function(){return this.config.scale},a.getLimit=function(){var e=this.config.axisRange;return{min:e.min,max:e.max,tickInterval:e.tickInterval}},a.getVisibleConfig=function(){var e=this.config;return{minValue:e.visibleMin,maxValue:e.visibleMax}},a.setAxisConfig=function(e){var t,a=this.config;for(t in e)e.hasOwnProperty(t)&&(a[t]=e[t])},a.getAxisConfig=function(e){var t=this.config;return e?t[e]:t},a.getVisibleLength=function(){var e=this.getVisibleConfig();return Math.abs(e.maxValue-e.minValue)},a.getAxisEndLabelDisplaySpace=function(){return this.config.axisEndLabelDisplaySpace||{}},a.getTicksLen=function(){var e=this.config.tickValues;return e&&e.tickValue.length||0},t}(o.ComponentInterface);t["default"]=s},454:function(e,t,a){"use strict";t.__esModule=!0,t.axisAnimationFinal=t.axisAnimationAxis=t.appearingFinal=t.appearingAxis=t["default"]=void 0;var i=[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"axis"}],n=[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}],o={"text.appearing":n,"path.appearing":n,"rect.appearing":n},r={"text.appearing":i,"path.appearing":i,"rect.appearing":i,"scrollbar.appearing":i};t.axisAnimationAxis=r,t.axisAnimationFinal=o,t.appearingFinal=n,t.appearingAxis=i;var l={"initial.axis.numeric":r,"initial.axis.category":r,"initial.axis.log":r,"update.axis.numeric":o,"update.axis.category":o,"update.axis.log":o};t["default"]=l},455:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(e,t){return e.filter((function(e){return t.indexOf(e)<0}))};t["default"]=i},456:function(e,t,a){var i=a(457),n=a(273)((function(e,t,a){for(var n=[],o=0,r=t.length;o<r;)i(e,t[o],a)||i(e,t[o],n)||n.push(t[o]),o+=1;return n}));e.exports=n},457:function(e,t){e.exports=function(e,t,a){for(var i=0,n=a.length;i<n;){if(e(t,a[i]))return!0;i+=1}return!1}},458:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t._parseLabel=t.extractStyleInfo=t.getLabel=t.setAxisPadding=t._createContainer=t.shiftLabels=t.setTickValues=t._drawLabel=t.getPixel=t.getTrendLineLimits=t.setDataLimit=t.setAxisDimention=void 0;var n=i(a(459)),o=i(a(423)),r=a(184),l={wrtVisible:!0},s=function(e,t){var a,i,n,o,l,s,c,h={labelfont:["fontFamily"],labelfontcolor:["fontColor"],labelfontsize:["fontSize",function(e){return e?(0,r.pluckNumber)(e)+"px":r.UNDEF}],labelfontbold:["fontWeight",function(e){return e?"bold":"normal"}],labelfontitalic:["fontStyle",function(e){return e?"italic":"normal"}],labelfontalpha:["fontAlpha"]},u=t.getFromEnv("dataSource").categories,d=u&&u[0]||{},g=function(e){return e},p=!1,f={};for(a in d)"category"===a||a in e||(i=d[a],e[a]=i);for(a in h)l=(o=h[a])[0],s=o[1]||g,i=e[a],n=e[l.toLowerCase()],i===r.UNDEF&&n===r.UNDEF||(c=s(i))===r.UNDEF&&(c=s(n))===r.UNDEF||(f[l]=c,p=!0),p&&(e.style=f)};t.getLabel=function(e){var t=this.config,a=t.tickValues&&t.tickValues.tickValue[e],i={};return a&&a.tooltext&&(i.label=a.label,a.tooltext=(0,r.parseTooltext)(a.tooltext,[3],i)),{label:a&&(a.oriLabel||a.label),tooltext:a&&a.tooltext}},t.setAxisPadding=function(e,t){void 0===e&&(e=0),void 0===t&&(t=0);var a,i=this.config,n=e,o=t,r=this.getScale().getDomain(),l=r[0],s=r[1];1===i.oriCatLen&&(0===n&&(n=.5),0===o&&(o=.5)),a=n-i.startPad,i.startPad=Math.max(i.startPad,n),i.endPad=Math.max(i.endPad,o),a>0&&(i.setPadding=!0,this._setAxisRange({min:l-a,max:s+a})),i.tickValues||i.originalMax&&i.originalMin&&this.setDataLimit(i.originalMax,i.originalMin)},t._createContainer=function(){var e,t,a,i,n,o=this.config,r=o.isVertical,l=this.getLinkedParent().getChildContainer(),s=l.axisBottomGroup,c=l.axisTopGroup,h=-this.getTranslation(),u=r?"T0,"+h:"T"+h+",0";t=this.createContainer("axisNameGroup",{name:"dataset-Name-group"},s),e=this.createContainer("axisLineGroup",{name:"axis-Line-group"},c),a=this.createContainer("axisTrendGroupTop",{name:"dataset-Trend-group-top"},c),i=this.createContainer("axisLabelGroup",{name:"dataset-Label-group"},s),n=this.createContainer("axisLabelGroupTop",{name:"dataset-Label-group"},c),this.getGraphicalElement("scrollbarContainer")||this.addGraphicalElement("scrollbarContainer",this.createGroup("scrollbarContainer",{name:"scrollbar-container"},e,"scrollbar")),o.axisContainer=this.createGroup("axisContainer",{name:"dataset-axis",transform:u},i),o.axisLabelContainerTop=this.createGroup("axisLabelContainerTop",{name:"dataset-top-label",transform:u},n),o.axisAxisLineContainer=this.createGroup("axisAxisLineContainer",{name:"axis-line-tick"},e),o.axisTrendLabelContainer=this.createGroup("axisTrendLabelContainer",{name:"dataset-axis-trend-label"},a),o.axisNameContainer=this.createGroup("axisNameContainer",{name:"dataset-axis-name"},t),o.axisAxisLineContainerBottom=this.createGroup("axisAxisLineContainerBottom",{name:"axis-line-tick-bottom"},s)},t.shiftLabels=function(e,t){var a=this.config.labels;a.shiftX=e,a.shiftY=t},t.setTickValues=function(e){var t,a,i,n=e&&e.length,o=this.config,l=o.startPad||0,c=this.getFromEnv("chart"),h=0,u=o.tickValues={},d=u.tickValue=[],g=u.vline=[],p=u.tickIdMap={},f=o.endPad||0;for(o.hasCategory=1,t=0;t<n;t+=1)i=(a=(0,r.extend2)({},e[t])).id||""===a.id,a.vline?(a.startIndex=d.length-1,g.push(a)):(i&&(p[a.id.toLowerCase()]={tickObj:a,index:h}),(o.mapTickValuesById&&i||!o.mapTickValuesById)&&(s(a,c),d.push(a),d[h].label=(0,r.parseUnsafeString)(d[h].label),h+=1));o.oriCatLen=h,this._setAxisRange({max:Number((0,r.toPrecision)(h-1+f,10)),min:Number((0,r.toPrecision)(0-l,10)),tickInterval:Number((0,r.toPrecision)(1,10))})},t._parseLabel=function(){var e,t,a,i,n,o,s,c,h,u,d,g,p,f,m,v,b=this,x=b.config,y=b.getLinkedItem("canvas").getEffectiveDimensions(),C=x.axisDimention,k=b.getFromEnv("chart"),S=k.config,w=x.axisRange,L=x.isOpposit,A=x.labels,N=b.components,F=N.labels,E=A.style,_=k.getFromEnv("smartLabel"),T=x.isVertical,P=w.max,D=w.min,I=b.getFromEnv("number-formatter"),M=y.top,O=y.left,R=M+y.height,V=O+y.width,B=x.labelPadding,G=x.extremeLabels,H=T?C.x:C.y,z=C.opposite,W=x.labelMaxH,j=x.labelMaxW,U=w.tickInterval,q=Math.abs(b.getPixel(D,l)-b.getPixel(D+U,l)),Y=[],X=x.ticks,K=0,Z=x.isReverse,J=(0,r.pluckNumber)(b.getFromEnv("chart-attrib").showzeroplanevalue),$=!0,Q=b.getLimit();if(_.useEllipsesOnOverflow(S.useEllipsesWhenOverflow),_.setStyle({fontSize:E.fontSize,fontFamily:E.fontFamily,lineHeight:E.lineHeight,fontWeight:E.fontWeight}),(i=E.lineHeight)&&-1!==i.indexOf("px")&&(i=parseFloat(i.replace("px",""))),0===J&&($=!1),x.labels.isDraw){var ee;if(x.drawLabelsOpposit&&(L=!L,H=z),h={fill:E.color,"line-height":i,"font-size":E.fontSize,opacity:1,cursor:E.labelLink?"pointer":""},a=x.labels.rotation,T?(x.labelMaxH>q&&!x.tickValues&&(s=Math.ceil(x.labelMaxH/q)),h["text-anchor"]=L?r.POSITION_START:r.POSITION_END):(x.labelMaxW>q&&!x.tickValues&&(s=Math.ceil(x.labelMaxW/q)),a?(h["text-anchor"]=L?r.POSITION_START:r.POSITION_END,h["vertical-align"]="middle"):h["vertical-align"]=L?r.POSITION_BOTTOM:r.POSITION_TOP,d=O,g=S.width-V),s>x.labels.step&&(x.labels.step=s),c=x.numberFormatterFn?I[x.numberFormatterFn]:x.isPercent?I.yAxisPercentValue:T?I.yAxis:I.xAxis,G.firstLabel={},G.lastLabel={},v=X.filter((function(e,t,a){return 0!==e||x.showZeroPlaneValue?!(!T&&(x.isReverse?0!==t:t!==a.length-1)&&b.getPixel(e,l)+x.labelMaxW>V)&&(t%x.labels.step==0?(Y[K++]=t,!0):!(!x.labels.drawLimitVal||0!==t&&t!==a.length-1)&&(Y[K++]=t,!0)):!(!$||$&&Q.max!==e&&Q.min!==e)&&(Y[K++]=t,!0)})),x.isZeroTickForced&&-1!==v.indexOf(0))K=0,Y=[],m=b.getPixel(0),v=v.filter((function(e,t,a){return ee=b.getPixel(e),0===a[t+1]||0===a[t-1]?T?!(ee+W>=m&&m>=ee-W)&&(Y[K++]=t,!0):!(ee+j>=m&&m>=ee-j)&&(Y[K++]=t,!0):(Y[K++]=t,!0)}));for(n=(T?j:q/2)*x.labels.step,o=T?q/2:W,N.labelIndexArr=Y.slice(),e=0,t=v.length;e<t;e+=1)p=v[e],F[Y[e]]=F[Y[e]]||{config:{props:{label:{}}}},u=Object.assign({},h),f=r.UNDEF,(x.labels.drawNormalVal||p===D||p===P)&&(x.labels.drawLimitVal||p!==D&&p!==P)?p===D&&x.lowerLimitDisplay&&x.labels.drawLimitVal?(f=_.getSmartText(x.lowerLimitDisplay,n,o+i/2),u.text=f.text,u.tooltext=f.tooltext):p===P&&x.upperLimitDisplay&&x.labels.drawLimitVal?(f=_.getSmartText(x.upperLimitDisplay,n,o+i/2),u.text=f.text,u.tooltext=f.tooltext):(u.text=r.BLANKSTRING+c.call(I,p,x.axisIndex),f=_.getOriSize(u.text)):u.text=r.BLANKSTRING,T?(u.x=L?(H||V)+B:(H||O)-B,u.y=b.getPixel(p,l),(Z&&p===D&&x.lowerLimitDisplay||!Z&&p===P&&x.upperLimitDisplay)&&f&&f.height>i&&(u["vertical-align"]=r.POSITION_BOTTOM),(Z&&p===P&&x.upperLimitDisplay||!Z&&p===D&&x.lowerLimitDisplay)&&f&&f.height>i&&(u["vertical-align"]=r.POSITION_TOP),x.placeValuesInside&&(u["text-anchor"]=L?r.POSITION_END:r.POSITION_START)):(u.x=b.getPixel(p,l),u.y=L?(H||M)-B:(H||R)+B,(!Z&&p===D||Z&&p===P)&&f&&f.width>2*d&&(u["text-anchor"]=r.POSITION_START),(!Z&&p===P||Z&&p===D)&&f&&f.width>2*g&&(u["text-anchor"]=r.POSITION_END),x.placeValuesInside?u["vertical-align"]=L?r.POSITION_TOP:r.POSITION_BOTTOM:u["vertical-align"]=L?r.POSITION_BOTTOM:r.POSITION_TOP),u["text-bound"]=void 0===p?[]:[(0,r.pluck)(E.backgroundColor,r.BLANKSTRING),(0,r.pluck)(E.borderColor,r.BLANKSTRING),(0,r.pluck)(E.borderThickness,r.BLANKSTRING),(0,r.pluck)(E.borderPadding,0),(0,r.pluck)(E.borderRadius,0),(0,r.pluck)(E.borderDash,"none")],A.shiftX&&(u.x+=A.shiftX),A.shiftY&&(u.y+=A.shiftY),u.transform=(0,r.getSuggestiveRotation)(a,u.x,u.y),F[Y[e]].config.props.label.attr=u}},t._drawLabel=function(){var e,t,a,i,o,r,l,s,c,h,u,d=this.getFromEnv("chart"),g=this.config,p=this.getFromEnv("animationManager"),f=this.getFromEnv("toolTipController"),m=g.axisRange,v=g.labels.style,b=this.components,x=m.max,y=m.min,C=g.axisContainer,k=g.extremeLabels,S=g.ticks,w=[],L={fontFamily:v.fontFamily,fontSize:v.fontSize,fontWeight:v.fontWeight,fontStyle:v.fontStyle,lineHeight:v.lineHeight},A=function(e){return function(t){d.plotEventHandler(this,t,e)}};if(g.labels.isDraw)for(u=b.labels,h=b.labelIndexArr,C.css(L),t=0,a=h&&h.length;t<a;t+=1)o=(s=S[e=h[t]])+"_label",i=this.getGraphicalElement(o),l=u[e].config.props.label.attr,(i=this.addGraphicalElement(o,p.setAnimation({el:i||"text",attr:l,container:C,data:{value:s},component:this,label:"text"}))).on("fc-click",A("dataLabelClick")).hover(A("dataLabelRollOver"),A("dataLabelRollOut")),i.data("eventArgs",{link:v.labelLink,text:l.text,index:e}),l.tooltext?f.enableToolTip(i,l.tooltext):f.disableToolTip(i),s===x?k.lastLabel.graphic=i:s===y&&(k.firstLabel.graphic=i),w.push(o);for(e=0,a=(c=(0,n["default"])(g.prevIntervalArr,w)).length;e<a;e++)(r=this.getGraphicalElement(c[e]))&&this.removeGraphicalElement(r);g.prevIntervalArr=w},t.getPixel=function(e){return this.getScale().getRangeValue(e)},t.getTrendLineLimits=function(){var e,t,a,i,n=this.config,l=n.trendLines||n.vTrendLines||n.trendPoints,s=l&&l[0]&&l[0].line||l&&l.point;if(n.trendLimits)return n.trendLimits;var c=(0,o["default"])(s,(function(e){return""===e.startvalue?r.UNDEF:Number(e.startvalue)}));e=c[0],t=c[1];var h=(0,o["default"])(s,(function(e){return""===e.endvalue?r.UNDEF:Number(e.endvalue)}));return a=h[0],i=h[1],n.trendLimits=(0,o["default"])([e,t,a,i],(function(e){return Number(e)})),n.trendLimits},t.setDataLimit=function(e,t){var a,i,n,l,s=e,c=t,h=this.config,u=this.getFromEnv("dataSource").categories,d=u&&u[0]&&u[0].category,g=h.startPad||0,p=h.endPad||0,f=h.xAxisLabelMode;if("categories"===f||"mixed"===f){var m=(0,o["default"])(d,(function(e){return Number(e.x)}));a=m[0],i=m[1]}var v=this.getTrendLineLimits();n=v[0],l=v[1];var b=(0,o["default"])([n,l,a,i,c,s],(function(e){return Number(e)}));c=b[0],s=b[1],h.originalMax=s,h.originalMin=c,s=h.isPercent?100:s+p,c=h.isPercent?0:c-g,this._setAxisRange({min:c,max:s}),h.axisRange.tickInterval!==r.UNDEF&&this._adjustNumberFormatter(h.axisRange.tickInterval)},t.setAxisDimention=function(e){var t=this.getScale(),a=this.config,i=this.getFromEnv("chart").config,n=a.axisDimention||(a.axisDimention={}),o=a.isReverse;n.opposite=(0,r.pluckNumber)(e.opposite,n.opposite),n.x=(0,r.pluckNumber)(e.x,n.x,i.canvasLeft),n.y=(0,r.pluckNumber)(e.y,n.y,i.canvasTop),n.axisLength=(0,r.pluckNumber)(e.axisLength,n.axisLength),a.isVertical?o?t.setRange([n.y+n.axisLength,n.y]):t.setRange([n.y,n.y+n.axisLength]):o?t.setRange([n.x+n.axisLength,n.x]):t.setRange([n.x,n.x+n.axisLength]),a.translation=this._computeTranslation()},t.extractStyleInfo=s},459:function(e,t,a){var i=a(460),n=a(269)((function(e,t){for(var a=[],n=0,o=e.length;n<o;)i(e[n],t)||i(e[n],a)||(a[a.length]=e[n]),n+=1;return a}));e.exports=n},460:function(e,t,a){var i=a(461);e.exports=function(e,t){return i(t,e,0)>=0}},461:function(e,t,a){var i=a(462);e.exports=function(e,t,a){var n,o;if("function"==typeof e.indexOf)switch(typeof t){case"number":if(0===t){for(n=1/t;a<e.length;){if(0===(o=e[a])&&1/o===n)return a;a+=1}return-1}if(t!=t){for(;a<e.length;){if("number"==typeof(o=e[a])&&o!=o)return a;a+=1}return-1}return e.indexOf(t,a);case"string":case"boolean":case"function":case"undefined":return e.indexOf(t,a);case"object":if(null===t)return e.indexOf(t,a)}for(;a<e.length;){if(i(e[a],t))return a;a+=1}return-1}},462:function(e,t,a){var i=a(269),n=a(463),o=i((function(e,t){return n(e,t,[],[])}));e.exports=o},463:function(e,t,a){var i=a(464),n=a(457),o=a(465),r=a(276),l=a(466),s=a(467),c=a(469);function h(e,t,a,o){var r=i(e),l=i(t);function s(e,t){return u(e,t,a.slice(),o.slice())}return!n((function(e,t){return!n(s,t,e)}),l,r)}function u(e,t,a,i){if(l(e,t))return!0;var n=c(e);if(n!==c(t))return!1;if(null==e||null==t)return!1;if("function"==typeof e["fantasy-land/equals"]||"function"==typeof t["fantasy-land/equals"])return"function"==typeof e["fantasy-land/equals"]&&e["fantasy-land/equals"](t)&&"function"==typeof t["fantasy-land/equals"]&&t["fantasy-land/equals"](e);if("function"==typeof e.equals||"function"==typeof t.equals)return"function"==typeof e.equals&&e.equals(t)&&"function"==typeof t.equals&&t.equals(e);switch(n){case"Arguments":case"Array":case"Object":if("function"==typeof e.constructor&&"Promise"===o(e.constructor))return e===t;break;case"Boolean":case"Number":case"String":if(typeof e!=typeof t||!l(e.valueOf(),t.valueOf()))return!1;break;case"Date":if(!l(e.valueOf(),t.valueOf()))return!1;break;case"Error":return e.name===t.name&&e.message===t.message;case"RegExp":if(e.source!==t.source||e.global!==t.global||e.ignoreCase!==t.ignoreCase||e.multiline!==t.multiline||e.sticky!==t.sticky||e.unicode!==t.unicode)return!1}for(var d=a.length-1;d>=0;){if(a[d]===e)return i[d]===t;d-=1}switch(n){case"Map":return e.size===t.size&&h(e.entries(),t.entries(),a.concat([e]),i.concat([t]));case"Set":return e.size===t.size&&h(e.values(),t.values(),a.concat([e]),i.concat([t]));case"Arguments":case"Array":case"Object":case"Boolean":case"Number":case"String":case"Date":case"Error":case"RegExp":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"ArrayBuffer":break;default:return!1}var g=s(e);if(g.length!==s(t).length)return!1;var p=a.concat([e]),f=i.concat([t]);for(d=g.length-1;d>=0;){var m=g[d];if(!r(m,t)||!u(t[m],e[m],p,f))return!1;d-=1}return!0}e.exports=u},464:function(e,t){e.exports=function(e){for(var t,a=[];!(t=e.next()).done;)a.push(t.value);return a}},465:function(e,t){e.exports=function(e){var t=String(e).match(/^function (\w*)/);return null==t?"":t[1]}},466:function(e,t,a){var i=a(269)((function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}));e.exports=i},467:function(e,t,a){var i=a(270),n=a(276),o=a(468),r=!{toString:null}.propertyIsEnumerable("toString"),l=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],s=function(){"use strict";return arguments.propertyIsEnumerable("length")}(),c=function(e,t){for(var a=0;a<e.length;){if(e[a]===t)return!0;a+=1}return!1},h=i("function"!=typeof Object.keys||s?function(e){if(Object(e)!==e)return[];var t,a,i=[],h=s&&o(e);for(t in e)!n(t,e)||h&&"length"===t||(i[i.length]=t);if(r)for(a=l.length-1;a>=0;)n(t=l[a],e)&&!c(i,t)&&(i[i.length]=t),a-=1;return i}:function(e){return Object(e)!==e?[]:Object.keys(e)});e.exports=h},468:function(e,t,a){var i=a(276),n=Object.prototype.toString;e.exports=function(){return"[object Arguments]"===n.call(arguments)?function(e){return"[object Arguments]"===n.call(e)}:function(e){return i("callee",e)}}},469:function(e,t,a){var i=a(270)((function(e){return null===e?"Null":e===undefined?"Undefined":Object.prototype.toString.call(e).slice(8,-1)}));e.exports=i},470:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(451)),r=i(a(449)),l=i(a(471)),s=a(184),c=a(458),h=s.preDefStr.POSITION_START,u=s.preDefStr.POSITION_MIDDLE,d=s.preDefStr.POSITION_TOP,g=s.preDefStr.POSITION_BOTTOM,p=s.preDefStr.POSITION_END,f={wrtVisible:!0},m=function(e){function t(){var t;return(t=e.call(this)||this).config.scale=new l["default"],t}(0,n["default"])(t,e);var a=t.prototype;return a.getName=function(){return"category"},a.getCategoryFromId=function(e){var t=this.config.tickValues;return(t&&t.tickIdMap)[e]||{}},a.generateTicks=function(){var e=this.getScale(),t=this.config,a=e.getDomain(),i=t.categoryNumDivLines+1,n=(a[1]-a[0])/i,o=t.axisRange,l=o.min,s=o.max,c=(s-l)/i;return t._allTicks=(0,r["default"])(l,s,c).concat(s),o.tickInterval=c,(0,r["default"])(a[0],a[1],n).concat(a[1])},a._parseCategoryVline=function(){var e,t,a,i,n,o,r,l,c,f,m,v,b,x,y,C,k,S,w,L,A,N,F,E,_,T,P,D,I,M,O=this.config,R=O.axisRange,V=R.min,B=R.max,G=this.getFromEnv("chart").config,H=G.style||{},z=O.isVertical,W={fontFamily:G.style.inCanfontFamily,fontSize:G.style.inCanfontSize,color:G.style.inCancolor,lineHeight:G.style.inCanLineHeight};for(a=(t=O.tickValues.vline).length,P=1!==this.getZoom(),D=this.getVisibleConfig(),o=0;o<a;o++)i=t[o],n=(0,s.parseUnsafeString)(i.label),r=Boolean((0,s.pluckNumber)(i.showlabelborder,O.showVLineLabelBorder,1)),e=Boolean((0,s.pluckNumber)(i.showlabelbackground,1)),"center"===(l=(0,s.pluck)(i.labelhalign,z?h:u))?l=u:"left"===l?l=h:"right"===l&&(l=p),(c=(0,s.pluck)(i.labelvalign,z?u:g).toLowerCase())===u?c=u:c===d?c=g:c===g&&(c=d),f=(0,s.pluckNumber)(i.labelposition,0),m=(0,s.pluckNumber)(i.lineposition,.5),v=(0,s.pluckNumber)(i.showvlines,O.showVLines,1),b=(0,s.pluckNumber)(i.alpha,O.vLineAlpha,80),x=(0,s.pluck)(i.color,O.vLineColor).replace(/^#?/,"#"),y=e?(0,s.pluck)(i.labelbgcolor,O.vLineLabelBgColor,"333333").replace(/^#?/,"#"):s.BLANKSTRING,E=(0,s.pluck)(i.labelcolor,O.vLineLabelColor,i.color,H.inCancolor,O.vLineColor).replace(/^#?/,"#"),C=(0,s.pluckNumber)(i.thickness,O.vLineThickness,1),2,k=Boolean(Number((0,s.pluck)(i.dashed,0))),S=(0,s.pluckNumber)(i.dashlen,5),L=(0,s.pluckNumber)(i.dashgap,2),w=W.fontSize,w=parseInt(w.replace(/px/i,""),10),_=(0,s.pluckNumber)(i.rotatelabel,O.rotateVLineLabels)?270:0,m=m<0||m>1?.5:m,f=f<0||f>1?0:f,x=(0,s.convertColor)(x,v?b:"0"),M=i.animate&&!z?i.startIndex+1:i.startIndex,T=this._getVlinePos(M,m)-(i.animate?i.leftShift:0),P&&(T<D.minValue||T>D.maxValue)||T<V||T>B||(A={opacity:1,stroke:x,"stroke-width":C,"stroke-dasharray":k?(0,s.getDashStyle)(S,L):"none"},F={opacity:1,text:n,"text-anchor":l,"vertical-align":c,"text-bound":[]},N={fontSize:W.fontSize,fontFamily:W.fontFamily,lineHeight:W.lineHeight},I={from:T,layer:(0,s.pluckNumber)(i.showontop,O.showVLinesOnTop,0)?3:2,attr:A,type:"line",startIndex:i.startIndex,linePosition:m},n&&(F["text-bound"]=[y,v&&r?x:s.BLANKSTRING,v&&r?1:0,2,s.UNDEF,v&&r?"solid":s.BLANKSTRING],F.fill=v?E:x,I.text={label:n,attr:F,layer:4,labelRotation:_,labelPosition:f,css:N}),this.setReferenceInfo(I),this.config.parsedVlineInfo.push(I))},a._parseReferenceVisuals=function(){e.prototype._parseReferenceVisuals.call(this),this.config.drawPlotlines&&this._parseCategoryVline()},a.categoryInsert=function(e,t,a){var i,n,o,r,l,c=e,h=this.config,u=h.axisRange.min,d=t.length,g=h.endPad||0;for(i=h.tickValues.tickValue,o=h.tickValues.tickIdMap,n=h.tickValues.vline,r=0;r<d;r+=1)"true"!==(l=(0,s.extend2)({},t[r])).vline&&!0!==l.vline&&1!==l.vline&&"1"!==l.vline?(l.id&&(o[l.id]={tickObj:l,i:c}),i.splice(c,0,l),c+=1):(l.startIndex=c-2,n.push(l));a&&this._setAxisRange({min:u,max:Number((0,s.toPrecision)(i.length-1+g,10))})},a.categoryDelete=function(e,t,a){var i,n,o,r=this.config,l=r.axisRange,s=l.min;for(n=0,o=(i=r.tickValues.vline).length;n<o;n++)i[n].animate=!0,i[n].leftShift=t;r.tickValues.tickValue.splice(e,t),this._shiftVline(e,t,"left"),a&&this._setAxisRange({min:s,max:l.max-t})},a._shiftVline=function(e,t,a){var i,n,o=this.config,r=o.tickValues.vline,l=o.tickValues.tickValue.length,s=r.length;for(i=0;i<s;i+=1)(n=r[i]).startIndex>=e&&("right"===a?n.startIndex+=t:n.startIndex-=t,(n.startIndex<0||n.startIndex>=l)&&(r.splice(i,1),s-=1,i-=1))},a.categoryTranslate=function(e){var t,a=e,i=this.config;a=(a||0)*(this.getPixel(1,f)-this.getPixel(0,f)),i.isReverse&&(a=-a),t=["T",a,",","0"].join(""),this.realTimeTranslatableGroups=[{group:i.axisContainer,translationStr:t},{group:i.axisTrendLabelContainer,translationStr:t}]},a.updateTicksValues=function(e,t){var a,i,n,o,r,l,s,c=this.config,h=c.parsedVlineInfo;if((a=c.tickValues.tickValue)[e])for(s in t)t.hasOwnProperty(s)&&("x"===s&&(i=!0),a[e][s]=t[s]);if(i)for(o=0,r=h.length;o<r;++o)if((l=(n=h[o]).startIndex)===e)n.from=this._getVlinePos(l,n.linePosition);else if(l+1===e){n.from=this._getVlinePos(l,n.linePosition);break}},a._getVlinePos=function(e,t){var a,i,n,o=this.getTickValues(),r=this.config,l=this.getLimit(),c=l.min,h=l.max,u=o[e],d=o[e+1];return u?d||(a=o[0]&&o[0].x?h:r.oriCatLen-1,n=!0):(a=o[0]&&o[0].x?c:-1,n=!0),i=n?t:((a=(0,s.pluckNumber)(u.x,u.y,e))-(0,s.pluckNumber)(d.x,d.y,e+1))*t,a+Math.abs(i)},a.getInterval=function(){if(this)return 1},a._setAxisRange=function(e){var t,a,i=e.min,n=e.max,o=this.config,l=o.axisRange,c=o.periodLength,h=o.dataLimit,u=h.max,d=h.min;i>n||(u===n&&d===i||(t=!0),o.visibleMin===s.UNDEF||o.setPadding||t?(h.max=n,h.min=i,c&&(o.categoryNumDivLines=(n-i)/c-1),a=(n-i)/(o.categoryNumDivLines+1),this.getScale().setDomain([i,n]),o.ticks=(0,r["default"])(i,n,a).concat(n),o._allTicks=o.ticks.slice(),l.min=i,l.max=n,l.tickInterval=a,this.setVisibleConfig(l.min,l.max)):o.setPadding=!1)},t}(o["default"]);m.prototype.setTickValues=c.setTickValues;var v=m;t["default"]=v},471:function(e,t,a){"use strict";var i=a(182),n=a(178);t.__esModule=!0,t["default"]=void 0;var o=n(a(198)),r=i(a(427)),l=n(a(429)),s=function(e){function t(){return e.call(this,r.deInterpolateLinear,l["default"])||this}return(0,o["default"])(t,e),t.prototype.copy=function(){return(0,r.copyScale)(this,new t)},t}(r["default"]);t["default"]=s},472:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=function(e){var t,a=e._parseCanvasCosmetics&&e._parseCanvasCosmetics();if((0,r.componentFactory)(e,n["default"],"canvas",e.config.showVolumeChart?2:1),t=e.getChildren("canvas"))for(var i=0,l=t.length;i<l;i++)t[i].configure(a),(0,r.componentFactory)(t[i],o["default"],"axisRefVisualCartesian")};var n=i(a(409)),o=i(a(473)),r=a(184)},473:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=a(199),r=i(a(429)),l=i(a(455)),s=a(452),c=i(a(474)),h=a(192);(0,h.addDep)({name:"cartesianAxisRefAnimation",type:"animationRule",extension:c["default"]});var u=function(e){function t(){var t;return(t=e.call(this)||this).config.map={},t.config.explicitDrawItems={},t}(0,n["default"])(t,e);var a=t.prototype;return a.getType=function(){return"axisRefVisuals"},a.getName=function(){return"axisRefVisualsCartesian"},a.draw=function(){var e,t,a,i,n,o,r,l=this.getDrawingInfo(),s=this.getexplicitDrawItems(),c=this.config,h=c.map,u={},d=this.getLinkedParent(),g=d.getAxes(),p=[],f=d.getChildContainer("axisReferenceVisualsFloor"),m=d.getChildContainer("axisReferenceVisualsBottom"),v=d.getChildContainer("axisReferenceVisualsMiddle"),b=d.getChildContainer("axisReferenceVisualsTop"),x=d.getChildContainer("axisReferenceVisualsCeil");for(d.config.trendlines=[],d.config.vtrendlines=[],t=0;t<g.length;++t)p.push(g[t].axis.getId());for(i in c.containers=[f,m,v,b,x],l)if(l.hasOwnProperty(i)&&(n=this.getLinkedItem(i),p.indexOf(n.getId())>=0))for((o=u[i])||(o=u[i]=[]),e=l[i],t=0;t<e.length;++t)"band"===(a=(r=e[t]).type)?o.push.apply(o,this.createBand(r,n)):"line"===a&&o.push.apply(o,this.createLine(r,n));if(c.isSmartDrawing)for(i in h)h.hasOwnProperty(i)&&!s[i]&&this.getLinkedItem(i)&&(u[i]=h[i]);this.resetexplicitDrawItems(),this.removeExtraElements(u)},a.getDrawingInfo=function(){var e,t,a={},i=this.getexplicitDrawItems(),n=this.isCanvasChnaged(),o=(this.config.isSmartDrawing=Object.keys(i).length&&!n)?i:this.getLinkedItem();for(e in o)o.hasOwnProperty(e)&&(t=o[e],a[e]=t.getReferenceInfo());return a},a.createLine=function(e,t){var a,i,n,o,l=this.config.containers,c=l[e.layer],h=t.config,u=this.getFromEnv("paper"),d=this.getFromEnv("chart").getName(),g=this.getLinkedParent(),p=this.getFromEnv("animationManager"),f=this.getFromEnv("toolTipController"),m=g.config,v=m.trendlines,b=h.isVertical,x=m.canvasLeft,y=m.canvasTop,C=y+m.canvasHeight,k=x+m.canvasWidth,S=(0,r["default"])(x,k),w=(0,r["default"])(y,C),L=t.getScale(),A=L.getRangeValue(e.from),N=void 0!==e.to&&L.getRangeValue(e.to)||A,F=b?["M",x,A,"L",k,N]:["M",A,C,"L",N,y],E=e.attr,_=e.text,T=_&&_.attr,P=_&&_.labelPosition||0,D=t.getId(),I=e.id||e.from,M=D+"_"+I,O=this.getGraphicalElement(M),R=e.handlers,V={start:e.from,end:e.to};for(n in E.path=(0,s.getCrispPath)(F,(o=E["stroke-width"],null!==o?E["stroke-width"]:1)).path.toString(),/trend/.test(e.id)&&v.push({x1:F[1],y1:F[2],x2:F[4],y2:F[5],tooltext:e.toolText,tolerance:E["stroke-width"]<5?2.5:E["stroke-width"]/2}),E["stroke-linecap"]="butt",(O=this.addGraphicalElement(M,p.setAnimation({container:c,el:O||"path",attr:E,component:this,axis:t,data:{value:V,path:F},label:"path"}))).data("data",V),_&&(a=D+"_"+I+T.text,i=this.getGraphicalElement(a),b?(T.x=S(P),T.y=A):(T.x=A,T.y=w(P)),T.text=_.label,T.transform=u.getSuggestiveRotation(_.labelRotation,T.x,T.y),(i=this.addGraphicalElement(a,p.setAnimation({container:l[_.layer],el:i||"text",attr:T,component:this,axis:t,data:{value:e.from},label:"text",css:_.css}))).data("data",e.from)),/zoomscatter/i.test(d)||(e.toolText?f.enableToolTip(O,e.toolText):f.disableToolTip(O)),R)R.hasOwnProperty(n)&&(O.on(n,R[n].bind(t)),i&&i.on(n,R[n].bind(t)));return _?[M,a]:[M]},a.createBand=function(e,t){var a,i,n,o,r,l,s=this.config.containers[e.layer],c=t.config,h=this.getFromEnv("animationManager"),u=this.getFromEnv("toolTipController"),d=this.getLinkedParent(),g=this.getFromEnv("chart").getName(),p=d.config,f=c.isVertical,m=p.canvasLeft,v=p.canvasTop,b=v+p.canvasHeight,x=m+p.canvasWidth,y=t.getScale(),C=e.from,k=void 0!==e.to?e.to:C,S=t.getId(),w=e.attr,L=e.handlers;for(r in a="canvasStart"===C?f?v:m:y.getRangeValue(C),i="canvasEnd"===k?f?b:x:y.getRangeValue(k),l=Math.abs(a-i),f?(w.x=m,w.y=Math.min(a,i),w.width=x-m,w.height=l):(w.x=Math.min(a,i),w.y=v,w.width=l,w.height=b-v),n=S+"_"+(e.id||w.x+"_"+w.y),o=this.getGraphicalElement(n),/trend/.test(e.id)&&d.config.vtrendlines.push({x1:w.x,y1:w.y,x2:w.x+w.width,y2:w.y+w.height,tooltext:e.toolText,tolerance:w["stroke-width"]<5?2.5:w["stroke-width"]/2,isTrendZone:1}),o=this.addGraphicalElement(n,h.setAnimation({container:s,el:o||"rect",attr:w,component:this,label:"rect"})),/zoomscatter/i.test(g)||(e.toolText?u.enableToolTip(o,e.toolText):u.disableToolTip(o)),L)L.hasOwnProperty(r)&&o.on(r,L[r].bind(t));return[n]},a.removeExtraElements=function(e){var t,a,i,n,o,r,s=this.config.map;for(t in s)if(e[t])for(n=(r=(0,l["default"])(s[t],e[t])).length,i=0;i<n;++i)(o=this.getGraphicalElement(r[i]))&&this.removeGraphicalElement(o);else for(n=(a=s[t]).length,i=0;i<n;++i)(o=this.getGraphicalElement(a[i]))&&this.removeGraphicalElement(o);this.config.map=e},a.setLinkedItem=function(t,a){e.prototype.setLinkedItem.call(this,t,a);var i,n=this;"axis"===a.getType()&&n.addExtEventListener("predraw",(function(e){(i=e.sender).getState("removed")&&(n.removeLinkedItem(i.getId()),n.asyncDraw())}),a)},a.addexplicitDrawItems=function(e,t){this.config.explicitDrawItems[e]=t},a.getexplicitDrawItems=function(){return this.config.explicitDrawItems},a.resetexplicitDrawItems=function(){this.config.explicitDrawItems={}},a.isCanvasChnaged=function(){var e,t=this.getLinkedParent().getEffectiveDimensions(),a=this.config;return e=JSON.stringify(t)!==JSON.stringify(a.canvasDim),a.canvasDim=t,e},t}(o.ComponentInterface);t["default"]=u},474:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=a(454),n={"initial.axisRefVisuals.axisRefVisualsCartesian":i.axisAnimationAxis,"update.axisRefVisuals.axisRefVisualsCartesian":i.axisAnimationFinal};t["default"]=n},475:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=function(e){var t,a,i,r,l,s,c,h=e.getChildren("canvas"),u=h.length,d=[],g=[];for(r=0;r<u;r++,d=[],g=[])if(!(t=h[r]).getState("removed")){for(i=t.getFromEnv("xAxis"),s=0;s<(i&&i.length);s++)i[s].getState("removed")||d.push(i[s]);for(i=t.getFromEnv("yAxis"),s=0;s<(i&&i.length);s++)i[s].getState("removed")||g.push(i[s]);for((0,o.componentFactory)(t,n["default"],"vCanvas",d.length*g.length),a=t.getChildren("vCanvas"),l=0,s=0;l<(d&&d.length);l++)for(c=0;c<(g&&g.length);c++,s++)a[s].xAxis(d[l]).yAxis(g[c]).canvas(t),a[s].configure(),a[s].addToEnv("vCanvas",a[s])}};var n=i(a(476)),o=a(184)},476:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=a(199),r=a(184),l=function(e,t){var a=e;return a="comp_"+a,t&&(this.config[a]=t),(t||!this.config[a])&&this||this.config[a]},s=function(e,t){return["T",e,",",t].join("")},c=function(e){return-e.getTranslation()},h=function(e,t){return{h:e,v:t}},u=["columnShadowVcanvasGroup","columnVcanvasGroup","areaShadowVcanvasGroup","areaVcanvasGroup","lineShadowVcanvasGroup","lineVcanvasGroup","defaultShadowVcanvasGroup","defaultVcanvasGroup","sumLabelsLayer","vcanvasLabelGroup"],d=function(e,t,a){return a.getFromEnv("animationManager").setAnimation({el:"group",attr:{name:e},container:t,state:"appearing",component:a,label:"group"})},g=function(e){return!/category/i.test(e.getName())},p=function(e){function t(){return e.apply(this,arguments)||this}(0,n["default"])(t,e);var a=t.prototype;return a.getName=function(){return"virtualCanvas"},a.getType=function(){return"canvas"},a.xAxis=function(e){var t=l.call(this,"xAxis",e);return e&&this.listenToAxis(e),e&&this.addToEnv("xAxis",e),t},a.yAxis=function(e){var t=l.call(this,"yAxis",e);return e&&this.listenToAxis(e),e&&this.addToEnv("yAxis",e),t},a.paper=function(e){return l.call(this,"paper",e)},a.canvas=function(e){return l.call(this,"canvas",e)},a.configure=function(e){void 0===e&&(e={});var t=this.getFromEnv("chartConfig"),a=this.config;Object.assign(a,e),a.transposeAxis=t.transposeAxis,this._mapChildren((function(e){e.getState("removed")||"dataset"===e.getType()||e.configure&&e.configure()}))},a.getHorizontalVerticalAxes=function(){var e=this.xAxis(),t=this.yAxis();return t.config.isVertical?h(e,t):h(t,e)},a.preDraw=function(){this._mapChildren((function(e){e.getState("removed")||"dataset"===e.getType()||e.setVisibility&&e.setVisibility()}));var e,t=this.config.transposeAxis,a=this.getFromEnv("chart"),i=this.getAxisValuePadding(),n=i.left,o=i.right,r=i.top,l=i.bottom;(e=this.getDataLimits(!t)).min!==Infinity||e.max!==-Infinity?(this._setYAxisLimits(e.min,e.max),a._storeIntialLimit&&a._storeIntialLimit(e.min,e.max)):(this._setYAxisLimits(void 0,void 0),a._storeIntialLimit&&a._storeIntialLimit(void 0,void 0)),this._setXAxisLimits(e.xMin,e.xMax),this._setAxisValuePadding(n,o,r,l)},a.childChanged=function(e){void 0===e&&(e={});var t,a=this.config,i=a.transposeAxis;!1!==e.dataLimitChanged&&(t=this.getDataLimits(!i),!i||t.min===a.range.min&&t.max===a.range.max||(a.range.min=t.min,a.range.max=t.max,this.getFromEnv("yAxis").resetStoredLimits(),t.min!==Infinity||t.max!==-Infinity?this._setYAxisLimits(t.min,t.max):this._setYAxisLimits(void 0,void 0)),t.xMin===a.range.xMin&&t.xMax===a.range.xMax||(a.range.xMin=t.xMin,a.range.xMax=t.xMax,this.getFromEnv("xAxis").resetStoredLimits(),this._setXAxisLimits(t.xMin,t.xMax))),this.asyncDraw()},a._setAxisValuePadding=function(e,t,a,i){this.getFromEnv("xAxis").setAxisPadding(e,t),a&&i&&this.getFromEnv("yAxis").setAxisPadding(e,t)},a.getAxisValuePadding=function(){var e={},t=-Infinity,a=-Infinity,i=-Infinity,n=-Infinity;return this._mapChildren((function(o){o.getState("removed")||(e=o.getAxisValuePadding&&o.getAxisValuePadding()||{},t=Math.max(t,e.left||-Infinity),a=Math.max(a,e.right||-Infinity),i=Math.max(i,e.top||-Infinity),n=Math.max(n,e.bottom||-Infinity))})),t===-Infinity&&(t=0),a===-Infinity&&(a=0),i===-Infinity&&(i=0),n===-Infinity&&(n=0),this.config.padding||(this.config.padding={},this.config.padding.left=t,this.config.padding.right=a,this.config.padding.top=i,this.config.padding.bottom=n),{left:t,right:a,top:i,bottom:n}},a._setYAxisLimits=function(e,t){var a=this.getFromEnv("yAxis");g(a)&&a.setDataLimit(t,e)},a._setXAxisLimits=function(e,t){var a=this.getFromEnv("xAxis");g(a)&&(t!==-Infinity||e!==+Infinity?a.setDataLimit(t,e):a.setDataLimit(void 0,void 0))},a.getDataLimits=function(e){var t,a,i,n=this.getFromEnv("chart"),o=-Infinity,l=+Infinity,s=o,c=l,h=l,u=o;return this._mapChildren((function(n){var d;n.getDataLimits&&!n.getState("removed")&&(e||n.getState("visible"))&&(t=n.getDataLimits(e),d=t,a=(0,r.pluck)(d.xMax,o),i=(0,r.pluck)(d.xMin,l),s=Math.max(s,d.max),c=Math.min(c,d.min),u=Math.max(u,a),h=Math.min(h,i))})),this.config.range||(this.config.range={},this.config.range.min=c,this.config.range.max=s,this.config.range.xMin=h,this.config.range.xMax=u),n.config.yMax=s,n.config.yMin=c,{min:c,max:s,xMin:h,xMax:u}},a.listenToAxis=function(e){var t,a=this;t=function(){a.getState("drawn")&&a.asyncDraw()},this.getState("visiblerangeset"+e.getId())||(this.setState("visiblerangeset"+e.getId(),!0),a.addExtEventListener("visiblerangeset",t,e))},a.createContainer=function(){var e=this.getLinkedParent();!this.getChildContainer("columnShadowVcanvasGroup")&&this.addChildContainer("columnShadowVcanvasGroup",d("vcanvas-column-shadow",e.getChildContainer("columnShadowGroup"),this)),!this.getChildContainer("columnVcanvasGroup")&&this.addChildContainer("columnVcanvasGroup",d("vcanvas-column-plot",e.getChildContainer("columnGroup"),this)),!this.getChildContainer("areaShadowVcanvasGroup")&&this.addChildContainer("areaShadowVcanvasGroup",d("vcanvas-area-shadow",e.getChildContainer("areaShadowGroup"),this)),!this.getChildContainer("areaVcanvasGroup")&&this.addChildContainer("areaVcanvasGroup",d("vcanvas-area-plot",e.getChildContainer("areaGroup"),this)),!this.getChildContainer("lineShadowVcanvasGroup")&&this.addChildContainer("lineShadowVcanvasGroup",d("vcanvas-line-shadow",e.getChildContainer("lineShadowGroup"),this)),!this.getChildContainer("lineVcanvasGroup")&&this.addChildContainer("lineVcanvasGroup",d("vcanvas-line-plot",e.getChildContainer("lineGroup"),this)),!this.getChildContainer("defaultShadowVcanvasGroup")&&this.addChildContainer("defaultShadowVcanvasGroup",d("vcanvas-default-shadow",e.getChildContainer("defaultShadowGroup"),this)),!this.getChildContainer("defaultVcanvasGroup")&&this.addChildContainer("defaultVcanvasGroup",d("vcanvas-default-plot",e.getChildContainer("defaultGroup"),this)),!this.getChildContainer("vcanvasLabelGroup")&&this.addChildContainer("vcanvasLabelGroup",d("vcanvas-label",e.getChildContainer("datalabelsGroup"),this)),!this.getChildContainer("columnTrendGroup")&&this.addChildContainer("columnTrendGroup",d("columnTrendGroup",this.getChildContainer("columnVcanvasGroup"),this)),!this.getChildContainer("sumLabelsLayer")&&this.addChildContainer("sumLabelsLayer",d("vcanvas-sumLabelsLayer",e.getChildContainer("sumLabelsLayer"),this))},a.applyTranslation=function(){var e=this,t=function(e){return s(c(e.h),c(e.v))}(e.getHorizontalVerticalAxes());e.createContainer(),u.forEach((function(a){var i;i=a,(i=e.getChildContainer(i)).attr({transform:t})}))},a.draw=function(){this.applyTranslation(),this.setState("drawn",!0)},a.getCanvasPadding=function(){var e,t,a={paddingLeft:0,paddingRight:0,paddingTop:0,paddingBottom:0};return this._mapChildren((function(i){if(i.getCanvasPadding&&!i.getState("removed")&&i.getState("visible"))for(t in e=i.getCanvasPadding()||{})e.hasOwnProperty(t)&&(a[t]=Math.max(e[t],a[t]))})),a},a.rtShiftAnim=function(e,t){var a,i=this,n=e,o=t,r=i.getFromEnv("xAxis"),l=i.getFromEnv("yAxis"),c=r.getPixel(1)-r.getPixel(0),h=l.getPixel(1)-l.getPixel(0),d=i.getFromEnv("animationManager");a=s(n=(n||0)*c,o=(o||0)*h),u.forEach((function(e){i.getChildContainer(e).attr({transform:a}),d.setAnimation({el:i.getChildContainer(e),attrs:{transform:"T0,0"}})}))},t}(o.ComponentInterface);t["default"]=p},477:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=function(e){var t;e.config.enablemousetracking?((0,o.componentFactory)(e,n["default"],"mouseTracker"),t=e.getChildren("mouseTracker")[0],e.config.mouseTrackerEventAdded||(t.addEvents(),e.config.mouseTrackerEventAdded=!0)):((t=e.getChildren("mouseTracker")&&e.getChildren("mouseTracker")[0])&&t._removeListners(),e.config.mouseTrackerEventAdded=!1)};var n=i(a(478)),o=a(184)},478:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(201)),o=i(a(198)),r=a(199),l="fc-mouseover",s="fc-mousedown",c="fc-mouseup",h="fc-mousemove",u="fc-click",d=function(e){function t(){var t,a;return(t=e.call(this)||this).pIndex=1,t.handler=(a=(0,n["default"])(t),function(e){e.originalEvent&&a.getFromEnv("chart")._mouseEvtHandler(e,a.config.evtData)}),t.eventsList=[s,c,h,u,l],t.config={},t.config.evtData={},t}(0,o["default"])(t,e);var a=t.prototype;return a.getMouseEvents=function(e,t,a){var i=this._lastDatasetIndex,n=this._lastPointIndex,o={fireOut:!1,events:[]};switch(e.type){case u:o.events.push(u);break;case h:i===t&&n===a?(clearTimeout(this.mouseoutTimer),o.events.push(h)):(o.events.push(l),o.fireOut=!0);break;case s:i===t&&n===a||(o.fireOut=!0,o.events.push(l)),o.events.push(s);break;case l:i===t&&n===a?clearTimeout(this.mouseoutTimer):(o.fireOut=!0,o.events.push(l));break;case c:this.hasTouchEvent=!1,o.events.push(c);break;case"fc-mouseout":o.fireOut=!0}return o},a.addEvents=function(){var e,t,a,i=this.getFromEnv("chart"),n=i.getChildren("canvas"),o=this.config.evtData,r=this.eventsList;for(i.config.enableMouseOutEvent&&r.push("fc-mouseout"),this._removeListners(),o.chart=i,o.mouseTracker=this,t=0;t<n.length;t++)for(a in e=n[t],r)e.addEventListener(r[a],this.handler)},a._removeListners=function(){var e,t,a,i=this.getFromEnv("chart").getChildren("canvas"),n=this.eventsList;for(a=0;a<i.length;a++)for(t in e=i[a],n)e.removeEventListener(n[t],this.handler);this._removeDocEvents()},a._removeDocEvents=function(){this.eventOutput&&this.eventOutput.unlisten(),this.eventOutput=void 0},a._dispose=function(){this._removeListners(),e.prototype._dispose.call(this)},t}(r.ComponentInterface);t["default"]=d},479:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]=function(e,t){return String(e).toLowerCase()===String(t).toLowerCase()}},480:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=function(e){var t,a,i=e.getChildren(),s=i.canvas&&i.canvas[0],c=s&&s.getChildren("vCanvas"),h=c&&c[0]||s||e,u=e.getFromEnv("dataSource"),d=u.dataset,g=(0,r["default"])(d)&&d[0].data,p=u.data||g;a=g?(0,n["default"])({},d[0],{},l(p)):l(p);if(!p||0===p.length)return void e.setChartMessage();t=e.getDSdef(),(0,o.datasetFactory)(h,t,"dataset",1,[a])};var n=i(a(183)),o=a(184),r=i(a(320)),l=function(e){var t=[],a=[];return(0,o.fcEach)(e,(function(e,i){"true"!==e.vline&&!0!==e.vline&&1!==e.vline&&"1"!==e.vline?t.push(e):a.push({index:i,data:e})})),{catData:a,data:t}}},481:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=t._removePlots=void 0;var n,o=i(a(201)),r=i(a(198)),l=a(184),s=a(199),c=a(192),h=i(a(482)),u=a(196),d="column",g=l.hasTouch?l.TOUCH_THRESHOLD_PIXELS:l.CLICK_THRESHOLD_PIXELS,p=l.regex.dropHash,f=l.preDefStr.DEFAULT,m=l.preDefStr.showHoverEffectStr,v=l.preDefStr.setRolloverAttrStr,b=l.preDefStr.setRolloutAttrStr,x=Math,y=x.min,C=x.max,k=x.abs,S={top:!0},w={right:!0},L={left:!0},A={bottom:!0},N=x.ceil,F=x.round,E=function(e,t){if(void 0===e&&(e={}),"function"==typeof t){var a=function(a){if(e.hasOwnProperty(a)){var i=e[a];Array.isArray(i)?i.forEach((function(e){return t(e,a)})):e[a]&&t(e[a],a)}};for(var i in e)a(i)}},_=function(e,t,a){return a.getFromEnv("animationManager").setAnimation({el:"group",attr:{name:e},container:t,state:"appearing",component:a,label:"group"})},T=function(e,t){void 0===e&&(e=[]),e.forEach((function(e){return E(e&&e.graphics,t)})),e.length=0};t._removePlots=T,(0,c.addDep)({name:"columnAnimation",type:"animationRule",extension:h["default"]});var P=function(e){function t(){var t;t=e.call(this)||this;var a=(0,o["default"])(t);return a.components={},a.components.removeDataArr=[],a.__hideElem=function(e,t){a._setRemoveAnim(e,"label"===t?"plotLabel":"rect")},a.__removeElem=function(e,t){a.__hideElem(e,t)},a.config.primitiveType=d,t}(0,r["default"])(t,e);var a=t.prototype;return a.getType=function(){return"dataset"},a.getName=function(){return"column"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;t.showvalues=n,t.includeinlegend=1,t.plotfillalpha=n,t.plotfillangle=n,t.ratio=n},a.preConfigure=function(t){if(!t)return!1;this.trimData(t),this.config.JSONData=t,e.prototype.preConfigure.call(this,t)},a.setSkippingInfo=function(e){this.addToEnv("skipInfo",e||{plotsPerBin:1,drawOnlyMap:[],draw:[],hide:[],skippingApplied:!1,dragHashMap:[]})},a.getSkippingInfo=function(){return this.getFromEnv("skipInfo")||{plotsPerBin:1,drawOnlyMap:[],draw:[],hide:[],skippingApplied:!1,dragHashMap:[]}},a.configure=function(t){if(!t)return!1;e.prototype.configure.call(this,t)},a.configureAttributes=function(){var e=this.getFromEnv("chart"),t=this.config;this.parseAttributes(),this._setConfigure(),this.getState("visible")&&!1===t.oldVisible&&(t.appearing=!0),t.oldVisible=this.getState("visible"),this._realTimeConfigure&&this._realTimeConfigure(),!1!==e.config.hasLegend&&e.config.showLegend&&this._addLegend(),this.ErrorValueConfigure&&this.ErrorValueConfigure(),this.config.YForStackUpdated=!1,this.setState("dirty",!0)},a.parseAttributes=function(){var e,t,a,i=this.getFromEnv("chart"),n=i.getChildren("yAxis")[0].config.isReverse,o=this.config,r=this.config.JSONData,s=i.config.singleseries,c=i.config,h=i.getFromEnv("chart-attrib"),u=this.getFromEnv("color-manager"),d=this.getJSONIndex(),g=o.plotColor=u.getPlotColor(d),p=(0,l.pluckNumber)(r.dashed,h.plotborderdashed,0),f=(0,l.pluckNumber)(h.useplotgradientcolor,1),m=i.isBar,v=i.config.is3D,b=i.config.isdual;o.showTextOutline=(0,l.pluckNumber)(h.textoutline,0),o.dashed=p,o.parentYAxis=b&&"s"===(0,l.pluck)(r.parentyaxis&&r.parentyaxis.toLowerCase(),"p")?1:0,o.maxValue=-Infinity,o.minValue=Infinity,o.defaultPadding={left:.5,right:.5},(0,l.parseConfiguration)(r,o,c,{data:!0}),o.seriesname=(0,l.parseUnsafeString)(r.seriesname),o.showValues=(0,l.pluckNumber)(r.showvalues,h.showvalues,1),o.minplotheightforvalue=(0,l.pluckNumber)(r.minplotheightforvalue,h.minplotheightforvalue,0),o.showplotborder=(0,l.pluckNumber)(h.showplotborder,v?0:1),e=c.plotborderdashlen,t=c.plotborderdashgap,o.plotfillangle=(0,l.pluckNumber)(360-h.plotfillangle,m?180:n?90:270),o.plotfillalpha=a=(0,l.pluck)(r.alpha,h.plotfillalpha,l.HUNDREDSTRING),o.plotColor=g=(0,l.pluck)(r.color,g),o.legendSymbolColor=(0,l.getFirstColor)(o.plotColor),o.plotgradientcolor=(0,l.getDefinedColor)(h.plotgradientcolor,u.getColor("plotGradientColor")),!f&&(o.plotgradientcolor=""),o.plotborderalpha=(0,l.pluck)(h.plotborderalpha,a,l.HUNDREDSTRING),o.plotbordercolor=(0,l.pluck)(h.plotbordercolor,v&&!s?"#ffffff":u.getColor("plotBorderColor")),o.plotborderdashstyle=p?(0,l.getDashStyle)(e,t,void 0):"none",o.showShadow=v?(0,l.pluckNumber)(h.showshadow,1):(0,l.pluckNumber)(h.showshadow,u.getColor("showShadow")),o.definedGroupPadding=C(c.plotSpacePercent,0),o.includeinlegend=(0,l.pluckNumber)(r.includeinlegend,o.seriesname?1:0),this.setState("visible",1===(0,l.pluckNumber)(r.visible,!Number(r.initiallyhidden),1)),!0===this.getState("visible")?this._conatinerHidden=!1:this._containerHidden=!0,o.legendInteractivity=!1,this.setState("visible",1===(0,l.pluckNumber)(this.getState("visible"),o.JSONData.visible,!Number(o.JSONData.initiallyhidden),1))},a.trimData=function(e){if(this.components||!this.components.data||!this.components.data.length){var t,a,i=this.components,n=this.config,o=n&&n.context,r=this.getFromEnv("chart").isRealTime,l=o&&o.prevCatlen,s=this.getFromEnv("xAxis"),c=r?0:s.getTicksLen(),h=l-c,u=i&&i.data,d=u&&u.length,g=e.data&&e.data.length||0,p=d-g;h>p?(t=h,a=c):(t=p,a=g),t>0&&this.removeData(a,t,!1)}},a.hidePlots=function(){var e,t=this,a=t.components.data,i=t.getSkippingInfo(),n=i.hide,o=i.hideLabel;n.forEach((function(i){(e=a[i])&&e.graphics&&(E(e.graphics,t.__removeElem),e&&(e.graphics={}))})),o.forEach((function(i){(e=a[i])&&e.graphics&&(E(e.graphics,t.__removeElem),e&&(e.graphics={}))}))},a._setConfigure=function(e,t){var a,i,o,r,s,c,h,d,p=this,f=p.getFromEnv("chart"),m=f.config,v=p.config,b=p.getFromEnv("xAxis"),x=f.isRealTime,y=m.realTimeConfig&&m.realTimeConfig.numDisplaySets,C=p.getFromEnv("dataSource").categories&&p.getFromEnv("dataSource").categories[0]&&p.getFromEnv("dataSource").categories[0].category,k=v.initCatLen=x?C&&Array.isArray(C)&&C.filter((function(e){return!e.vline})).length||0:b.getTicksLen(),S=v.JSONData||[],w=e||S.data,L=e&&e.data.length,A=v.showplotborder,N=m.plotborderthickness,F=p.components.data,E=m.isDrag,_=p.getSkippingInfo&&p.getSkippingInfo(),T=_&&_.draw||[],P=_&&_.skippingApplied;for(h=L===n&&k>y?k-y:0,a=x?(0,l.pluckNumber)(L,k):Math.min(k,w&&w.length),m.dragTolerance=E?(A&&N>5?N/2+1:5)+g:0,F||(F=p.components.data=[]),P&&(a=T.length),c=h;c<a;c++)s=T[c]||c,e?(i=e&&e.data[s]||{},r=t!==n?F[d=t+s]:F[d=F.length-a+s],o=d):(i=w&&w[s]||{},r=F[s-=h],o=s),r||(r=F[o]={}),r.config||(r.config={},r.graphics={}),p._plotConfigure(o,i,L),d&&d++;P&&p.addJob("configureRestID",(function(){p._configureRestData()}),u.priorityList.postRender)},a._configureRestData=function(){var e,t,a,i,o,r=this.config,s=this.config.JSONData,c=s.data,h=this.getFromEnv("chart-attrib"),u=this.getFromEnv("xAxis").getTicksLen(),d=(this.getSkippingInfo&&this.getSkippingInfo()).drawOnlyMap,g=this.components.data;for(g||(g=this.components.data=[]),r.maxValue=-Infinity,r.minValue=Infinity,i=0;i<u;i++)d[i]||(a=g[i],t=i,(e=c&&c[i]||{}).tooltext!==n&&(e.tooltext=(0,l.parseTooltext)(e.tooltext,[3],{label:e.label},e,h,s)),a||(a=g[i]={}),a.config||(g[i].config={}),this._plotConfigure(t,e),o&&o++)},a._plotConfigure=function(e,t,a){var i,o,r,s,c,h,u,d,g,p,f,m,v,b,x,k,S,w,L,A,N,F,E,_,T,P,D,I,M,O,R,V,B,G,H=this.getFromEnv("chart"),z=H.config,W=this.config,j=W.JSONData,U=H.config.singleseries,q=this.getFromEnv("yAxis"),Y=this.getFromEnv("xAxis"),X=this.components.data[e],K=H.getFromEnv("dataSource").chart,Z=this.getFromEnv("color-manager"),J=W.showplotborder,$=W.plotColor,Q=z.showtooltip,ee=z.yaxisname,te=z.xaxisname,ae=z.tooltipsepchar,ie=z.seriesnameintooltip,ne=z.plotborderdashlen,oe=z.plotborderdashgap,re=z.plotborderthickness,le=(0,l.pluckNumber)(z.useroundedges,0),se=z.plothovereffect,ce=W.plotfillangle,he=W.plotborderdashstyle,ue=X.config,de=H.isBar,ge=H.config.is3D,pe=z.use3dlighting,fe=z.realTimeConfig&&z.realTimeConfig.numDisplaySets,me=fe-W.initCatLen,ve=fe&&me>=0?me:0,be=z.usedataplotcolorforlabels;G=Y.getLabel(a?e-a:ve+e),ue.origLabel=B=(0,l.getValidValue)((0,l.parseUnsafeString)(G.label)),v=ue.label=(0,l.getValidValue)((0,l.parseUnsafeString)(G.tooltext))||B,t.tooltext!==n&&(t.tooltext=(0,l.parseTooltext)(t.tooltext,[3],{label:G.label},t,K,j)),ue.dataLabelStyle=this._configureDataLabelStyle(t),ue.minplotheightforvalue=(0,l.pluckNumber)(t.minplotheightforvalue,W.minplotheightforvalue),ue.showValue=(0,l.pluckNumber)(t.showvalue,W.showValues),ue.givenPlotShowValue=(0,l.pluckNumber)(t.showvalue),ue.setValue=m=q.getCleanValue(t.value,(0,l.pluckNumber)(z.stack100percent)),ue.setLink=(0,l.pluck)(t.link),ue.toolTipValue=I=q.dataLabels(m),ue.setDisplayValue=M=(0,l.parseUnsafeString)(t.displayvalue),ue.displayValue=(0,l.pluck)(M,I),ue.dashed=O=(0,l.pluckNumber)(t.dashed,W.dashed),R=(0,l.pluckNumber)(t.dashlen,ne),V=oe=(0,l.pluckNumber)(t.dashgap,oe),null!==m&&(W.maxValue=C(W.maxValue,m),W.minValue=y(W.minValue,m)),ue.plotBorderDashStyle=f=1===O?(0,l.getDashStyle)(R,V):0===O?"none":he,U?($=Z.getPlotColor((0,l.pluckNumber)(e-a,e)),$=(0,l.pluck)(t.color,$),be&&Y.updateTicksValues(e,{labelfontcolor:(0,l.convertColor)($)}),p=(0,l.pluck)(t.alpha,t.borderalpha,W.plotborderalpha,d).toString()):($=(0,l.pluck)(t.color,W.plotColor),p=(0,l.pluck)(t.alpha,W.plotborderalpha,d).toString()),g=(0,l.pluck)(t.ratio,W.ratio),d=(0,l.pluck)(t.alpha,W.plotfillalpha),ue.plotFillAlpha=d,ue.plotBorderAlpha=p,ue.shadow={opacity:W.showShadow?d/100:0},m<0&&!le&&(h=W.plotfillangle,ce=de?180-ce:360-ce),ue.colorArr=b=(0,l.getColumnColor)($+","+W.plotgradientcolor,d,g,ce,le,W.plotbordercolor,p,de?1:0,!!ge),ue.originalPlotColor=$,0!==se&&(x=(0,l.pluck)(t.hovercolor,j.hovercolor,K.plotfillhovercolor,K.columnhovercolor,$),k=(0,l.pluck)(t.hoveralpha,j.hoveralpha,K.plotfillhoveralpha,K.columnhoveralpha,d),!(S=(0,l.pluck)(t.hovergradientcolor,j.hovergradientcolor,K.plothovergradientcolor,W.plotgradientcolor))&&(S=""),w=(0,l.pluck)(t.hoverratio,j.hoverratio,K.plothoverratio,g),L=(0,l.pluckNumber)(360-t.hoverangle,360-j.hoverangle,360-K.plothoverangle,ce),A=(0,l.pluck)(t.borderhovercolor,j.borderhovercolor,K.plotborderhovercolor,W.plotbordercolor),N=(0,l.pluck)(t.borderhoveralpha,j.borderhoveralpha,K.plotborderhoveralpha,K.plotfillhoveralpha,K.columnhoveralpha,p,d),F=(0,l.pluckNumber)(t.borderhoverthickness,j.borderhoverthickness,K.plotborderhoverthickness,W.showplotborder&&re),E=t.borderhoverdashed||j.borderhoverdashed||K.plotborderhoverdashed,_=(0,l.pluckNumber)(t.borderhoverdashgap,j.borderhoverdashgap,K.plotborderhoverdashgap,ne),T=(0,l.pluckNumber)(t.borderhoverdashlen,j.borderhoverdashlen,K.plotborderhoverdashlen,oe),P=E!==n?Number(E)?(0,l.getDashStyle)(T,_):"":f,(z.drawTrendRegion&&!ge||1===se&&x===$)&&(x=(0,l.getLightColor)(x,70)),D=(0,l.getColumnColor)(x+","+S,k,w,L,le,A,N.toString(),de?1:0,!!ge),ue.setRolloutAttr={fill:ge?[(0,l.toRaphaelColor)(b[0]),!pe]:(0,l.toRaphaelColor)(b[0]),stroke:J?(0,l.toRaphaelColor)(b[1]):l.TRACKER_FILL,"stroke-width":J?re:0,"stroke-dasharray":f},ue.setRolloverAttr={fill:ge?[(0,l.toRaphaelColor)(D[0]),!pe]:(0,l.toRaphaelColor)(D[0]),stroke:A?(0,l.toRaphaelColor)(D[1]):l.TRACKER_FILL,"stroke-width":F,"stroke-dasharray":P},ue.hoverColor=x,ue.hoverAlpha=k,ue.hoverBorderColor=A,ue.hoverBorderAlpha=N),i=ue.toolTipValue,ue.origToolText=r=(0,l.getValidValue)((0,l.parseUnsafeString)((0,l.pluck)(t.tooltext,j.plottooltext,K.plottooltext))),Q?null===i?u=!1:r!==n?(c=[1,2,3,4,5,6,7],o={yaxisName:ee,xaxisName:te,formattedValue:i,label:v},u=(0,l.parseTooltext)(r,c,o,t,K,j)):(ie&&(s=(0,l.getFirstValue)(j&&j.seriesname)),u=s?s+ae:"",u+=v?v+ae:""):u=!1,ue.toolText=u,ue.setTooltext=u,h&&(ce=h),ue._x=e,ue._y=m},a.updateYForStack=function(){var e,t,a,i,o,r,s=this.getFromEnv("chartConfig"),c=(0,l.pluckNumber)(s.showpercentvalues),h=(0,l.pluckNumber)(s.showpercentintooltip),u=this.config.JSONData,d=this.getFromEnv("chart-attrib"),g=this.getFromEnv("xAxis").getTicksLen(),p=this.components.data,f=this.getFromEnv("stackValues"),m=c||h?-1:1,v=this.getSkippingInfo&&this.getSkippingInfo(),b=v&&v.skippingApplied,x=v&&v.draw||[],y=x&&x.length;for(b&&(g=y),i=0;i<g;i++)t=(e=p[a=x[i]||i])&&e.config,e!==n&&(o=(0,l.getValidValue)((0,l.parseUnsafeString)((0,l.pluck)(t.origToolText,u.plottooltext,d.plottooltext))),r=f[a]&&f[a].positive+m*f[a].negative||1,t._b=this._parseValues(a,t._b,r,o),s.stack100percent&&(t._y=t.value+t._b))},a._parseValues=function(e,t,a,i){var n,o,r=t,s=this.getFromEnv("chartConfig"),c=this.components.data[e].config,h=(0,l.pluckNumber)(s.showpercentvalues),u=(0,l.pluckNumber)(s.showpercentintooltip),d=this.getState("visible"),g=c.setValue,p=(0,l.pluckNumber)(s.stack100percent),f=this.getFromEnv("number-formatter"),m=this.getFromEnv("yAxis"),v=c.setDisplayValue;return o=(d&&g||0)/a*100,n=f.percentValue(o),p&&(c.value=o,r=(r||0)/a*100),u&&(c.toolTipValue=n),h&&!v&&(c.displayValue=n),i&&(c.toolText=(0,l.parseTooltext)(c.setTooltext,[14,24,25,112],{percentValue:n,sum:m.dataLabels(a),unformattedSum:a})),r},a._addLegend=function(){var e,t,a,i=this.getFromEnv("chart").isBar,n=this.getFromEnv("chart-attrib"),o=this.config,r=(0,l.getFirstColor)(o.legendSymbolColor),s=this.getFromEnv("legend"),c=(0,l.pluckNumber)(n.use3dlighting,n.useplotgradientcolor,1),h=(0,l.getLightColor)(r,60).replace(p,l.HASHSTRING);o.includeinlegend?(e=c?{FCcolor:{color:r+","+r+","+(0,l.getLightColor)(r,40)+","+r+","+r,ratio:"0,30,30,30,10",angle:i?0:270,alpha:"100,100,100,100,100"}}:{FCcolor:{color:r,angle:i?0:270,ratio:"0",alpha:"100"}},a=s.getItem(this.config.legendItemId),t={type:this.getName(),index:this.getJSONIndex(),label:(0,l.getFirstValue)(this.config.JSONData.seriesname)},a||(this.config.legendItemId=s.createItem(this),a=s.getItem(this.config.legendItemId),this.addExtEventListener("fc-click",(function(){a.itemClickFn()}),a)),a.configure(t),a.setStateCosmetics("default",{symbol:{fill:(0,l.toRaphaelColor)(e),rawFillColor:r,stroke:(0,l.toRaphaelColor)(h)}}),this.getState("visible")?a.removeLegendState("hidden"):a.setLegendState("hidden")):this.config.legendItemId&&s.disposeItem(this.config.legendItemId)},a.legendInteractivity=function(e){var t=e.getLinkedParent().getFromEnv("chart"),a=this.getState("visible"),i=this.config;if(t.getFromEnv("animationManager").setAnimationState("legendInteraction"),i.legendInteractivity=!0,a?this.hide():this.show(),l.isFirefox){var n=t.getChildContainer("plotGroup");n.attrs["clip-rect"]&&n.attr({"clip-rect":n.attrs["clip-rect"]})}i.drawnEvtListenerAttached||(i.drawnEvtListenerAttached=!0,this.addEventListener("drawn",(function(){i.legendInteractivity=!1})))},a.createPinElem=function(){var e,t,a,i=this,n=i.getFromEnv("chart"),o=arguments[1].group,r=i.components.data,l=i.graphics.pinElems||(i.graphics.pinElems=[]),s=i.getLinkedParent().getChildContainer().columnVcanvasGroup;for(e=l.length-1;e>=0;e--)l[e].remove(),l.pop();if(i.getState("visible"))for(e=i.config.scrollMinVal;e<i.config.scrollMaxVal;e++)(a=r[e])&&a.graphics&&(t=a.graphics.element.clone().attr({transform:["T",-(n.config._visx+k(s.transform()[0][1])),-n.config.canvasBottom]}),o.appendChild(t),l.push(t))},a._checkPointerOverColumn=function(e,t,a){var i,o,r,l,s,c,h,u,d,p=this.getFromEnv("chart").config,f=p.plotborderthickness,m=p.showplotborder,v=this.components.data,b=v&&v.length,x=0,y=0,C=p.dragTolerance||0,k=(this.getSkippingInfo&&this.getSkippingInfo()).plotsPerBin;for(h=d=(d=(u=(N(e/k)-1)*k+1)+k-1)<b?d:b;h>=u;h--){if(!(i=v[h]))return;if(i._height<g&&(x=g),i._width<g&&(y=g),(i._xPos||i._yPos)&&(o=i.config.setValue,m&&f!==n?c=f/2:f=c=0,null!==o&&(r=t-i._xPos+c,l=a-i._yPos+c+(o>=0?C:0),s=r>=-y/2&&r<=(y||i._width)+f&&l>=-x/2&&l<=(x||i._height)+f+(o<0?2*C:C))))return{pointIndex:h,hovered:s,pointObj:v[h]}}},a._getHoveredPlot=function(e,t){var a,i,n=e,o=t,r=this.getFromEnv("chart").isBar,l=this.getFromEnv("xAxis");return r?o+=l.getTranslation():n+=l.getTranslation(),a=l.getValue(r?o:n),(i=Math.round(a))-a>0?this._checkPointerOverColumn(i,n,o)||this._checkPointerOverColumn(i-1,n,o):this._checkPointerOverColumn(i+1,n,o)||this._checkPointerOverColumn(i,n,o)},a.getPlotInCategoryAt=function(e,t){void 0===e&&(e=0),void 0===t&&(t=0);var a,i,n,o,r=this.components.data,l=this.getFromEnv("xAxis"),s=this.getFromEnv("yAxis"),c=l.getTranslation()||0,h=s.getTranslation()||0,u=this.getState("visible"),d=e+c,g=t+h;if("category"===l.getName()&&l.config.hasCategory)i=l;else{if("category"!==s.getName()||!s.config.hasCategory)return!1;i=s}return null!=(n=i.config.isVertical)&&(a=r[Math.round(i.getValue(n?g:d))],o=this._getHoveredPlot(e,t),u&&o?o:!(!u||!a)&&{pointIndex:a._index,hovered:!1,pointObj:a})},a._decideTooltipType=function(e,t){var a=this.getFromEnv("chart").config.drawTrendRegion,i=this.components,n=this.getFromEnv("toolTipController"),o=i.data[e],r=o&&(o.config.finalTooltext||o.config.toolText),l=this.config.currentToolTip,s=t.originalEvent;r&&!a&&(l?n.draw(s,r,l):l=this.config.currentToolTip=n.draw(s,r))},a._firePlotEvent=function(e,t,a){var i,o=this.getFromEnv("chart"),r=this.components,l=this.getFromEnv("toolTipController"),s=r.data[t],c=s.graphics&&s.graphics.element,h=this.config.currentToolTip;if(c)switch(i=s.config.setLink,e){case"fc-mouseover":this._decideTooltipType(t,a),function(e,t,a,i,n){var o=t.graphics,r=o&&o.element,l=e.getFromEnv("animationManager"),s=r&&r.getData();!0!==s.draged&&(r&&0!==s.showHoverEffect&&(l.setAnimationState("mouseOver"),l.setAnimation({el:r,label:"rect",component:n,attr:r.getData().setRolloverAttr})),!i&&r&&e.plotEventHandler(r,a,"DataPlotRollOver"))}(o,s,a,n,this),i&&(c.node.style.cursor="pointer");break;case"fc-mouseout":l.hide(h),function(e,t,a,i,n){var o=t.graphics,r=o&&o.element,l=e.getFromEnv("animationManager"),s=r&&r.getData();!0!==s.draged&&(r&&0!==s.showHoverEffect&&(l.setAnimationState("mouseOut"),l.setAnimation({el:r,label:"rect",component:n,attr:r.getData().setRolloutAttr})),!i&&r&&e.plotEventHandler(r,a,"DataPlotRollOut"))}(o,s,a,n,this),i&&(c.node.style.cursor=f);break;case"fc-click":o.plotEventHandler(c,a);break;case"fc-mousemove":this._decideTooltipType(t,a)}},a.createContainer=function(){var e,t,a,i,n,o=this.getType(),r=this.getFromEnv("chart"),l=this.getLinkedParent(),s=this.config.primitiveType||o;!l.getChildContainer(s+"VcanvasGroup")&&(s="default"),e=l.getChildContainer(s+"VcanvasGroup"),n=l.getChildContainer(s+"ShadowVcanvasGroup"),t=l.getChildContainer("commonElemGroup")||e,i=l.getChildContainer("commonElemGroupLine"),a=l.getChildContainer("anchorGroup")||e,!this.getContainer("shadowGroup")&&this.addContainer("shadowGroup",_("shadow-group",n,this)),!this.getContainer("errorShadowGroup")&&this.addContainer("errorShadowGroup",_("error-shadow-group",n,this)),!this.getContainer("commonElemsGroup")&&this.addContainer("commonElemsGroup",_("common-elems-group",t,this)),i?!this.getContainer("commonElemsGroupLine")&&this.addContainer("commonElemsGroupLine",_("common-elems-group",i,this)):this.removeContainer("commonElemsGroupLine"),!this.getContainer("plotGroup")&&this.addContainer("plotGroup",_("plot-group",a,this)),!this.getContainer("errorPlotGroup")&&this.addContainer("errorPlotGroup",_("error-plot-group",e,this)),r.hasAnchor&&this.getContainer("errorPlotGroup").insertBefore(this.getContainer("plotGroup")),!this.getContainer("labelGroup")&&this.addContainer("labelGroup",_("label-group",l.getChildContainer("vcanvasLabelGroup"),this).attr("class","fusioncharts-datalabels"))},a.createCoordinates=function(){var e,t,a,i,o,r,l,s,c,h,u=this.config,d=this.components.data,g=this.getFromEnv("chart"),p=g.isBar,f=this.getFromEnv("yAxis"),m=this.getFromEnv("xAxis"),v=f.getAxisBase(),b=f.getPixel(v),x=m.config.isVertical,y=g.config.xDepth||0,C=g.config.yDepth||0,k=d.length,S=this.components,w=this.getLinkedParent(),L=w.getstackConf&&w.getstackConf(),A=S.data,N=this.getSkippingInfo&&this.getSkippingInfo(),F=N&&N.skippingApplied,E=N&&N.draw||[],_=E&&E.length;for(!p&&(y=-y),p&&(C=-C),F&&(k=_),o=0;o<k;o++)t=(e=A[i=E[o]||o])&&e.config,e!==n&&(a=t._b,c=m.getPixel(L&&L[i]&&L[i].x||t._x),r=(isFinite(c)?c:0)+y,h=f.getPixel(t._y),l=(isFinite(h)?h:0)+C,s=(a?f.getPixel(a):b)+C,x?(t._Px=l,t._Py=r,t._Pby=r,t._Pbx=s):(t._Px=r,t._Py=l,t._Pby=s,t._Pbx=r),0===t.givenPlotShowValue?t.showValue=0:1===t.givenPlotShowValue?t.showValue=1:1!==t.givenPlotShowValue&&u.showValues&&(Math.sqrt((s-l)*(s-l))<t.minplotheightforvalue?t.showValue=0:t.showValue=1),this.getLineShift&&(t._Py+=this.getLineShift("y")))},a.setContainerVisibility=function(e){var t,a=this.getContainer();for(t in a)a.hasOwnProperty(t)&&(!1!==this.getState("visible")||!1!==this._conatinerHidden&&this._conatinerHidden!==n||e?(a[t].show(),this._conatinerHidden=!1):(a[t].hide(),this._conatinerHidden=!0))},a.plotAnimManager=function(e,t,a,i){var n,o,r,l,s,c,h=this.getFromEnv("chart"),u=h.getFromEnv("animationManager"),d=h.config.is3D,g=h.config,p=this.getState("visible"),f=t.x,m=this.getSkippingInfo&&this.getSkippingInfo(),v=m&&m.draw||[],b=this.getFromEnv("plotGroup3d");c=((r=e&&e.config)&&r.setValue)<0,s=d?(o=c?b.negativeGroupArray:b.positiveGroupAarray)[h.isBar?o.length-1-a:a]:this.getContainer("plotGroup"),l={el:(n=e.graphics.element)||(d?"cubepath":"rect"),container:s,attr:p&&t,doNotRemove:!0,props:{originalIndex:v[a]||a},index:a,length:i,component:this,label:"rect"},p||(l.callback=function(){this.hide()}),e.graphics.element=n=u.setAnimation(l),d&&(n.appendTo(s),(g.isstacked&&c||!g.isstacked&&h.isBar)&&n.toBack()),null!==e.config.setValue?this.getState("visible")&&n.show():(n.remove(),delete e.graphics.element),r._oldPx=r._Px,r._oldX=f,p&&(e.oldPrevDataObj=e.prevDataObj)},a.flushOnScroll=function(e,t){for(var a,i=this.components.data,n=e,o=t-1;n<=o;n++)(a=i[n])&&a.graphics&&(E(a.graphics,this.__removeElem),a.graphics={})},a.removingDraw=function(){var t=this;t.components.data.forEach((function(e){E(e.graphics,t.__removeElem),delete e.graphics})),e.prototype.removingDraw.call(this)},a._contextChanged=function(){var e;this.config.context||(this.config.context={});var t,a=this.config.context,i=a.shift,n=this.getFromEnv("xAxis"),o=this.getFromEnv("yAxis"),r=a.axisLimit,l=!1,s={yAxis:{limit:o.getVisibleConfig()},xAxis:{limit:n.getVisibleConfig()}};return s.yAxis.limitPixel={min:o.getPixel(s.yAxis.limit.minValue),max:o.getPixel(s.yAxis.limit.maxValue)},s.xAxis.limitPixel={min:n.getPixel(s.xAxis.limit.minValue),max:n.getPixel(s.xAxis.limit.maxValue)},r!==(t=JSON.stringify(s))&&(a.axisLimit=t,l=!0),i!==this.getFromEnv("shift")&&(a.shift=this.getFromEnv("shift"),l=!0),a.prevColNum!==this.getFromEnv("numOfColumns")&&(a.prevColNum=this.getFromEnv("numOfColumns"),l=!0),n.getProcessLen?e=n.getProcessLen():n.getTicksLen&&(e=n.getTicksLen()),a.prevCatlen!==e&&(a.prevCatlen=e,l=!0),!!this.getFromEnv("chart").isRealTime||l},a.calculateScrollRange=function(){var e,t=this.config,a=this.getFromEnv("xAxis"),i=a.getTicksLen(),n=this.getSkippingInfo&&this.getSkippingInfo()||{},o=n.skippingApplied,r=n.draw||[],l=n.labelDraw||[],s=r.length;e=o?s-1:i,t.scrollMinVal=C(F(a.getVisibleConfig().minValue),0)-1,t.scrollMaxVal=y(F(a.getVisibleConfig().maxValue)+1,e)+1,e=o?l.length-1:i,t.scrollMinValForLabel=C(F(a.getVisibleConfig().minValue),0)-1,t.scrollMaxValForLabel=y(F(a.getVisibleConfig().maxValue)+1,e)+1},a.drawPlots=function(){var e,t,a,i,n,o,r,l,s,c=this.getFromEnv("chart"),h=this.config,u=c.config.plothovereffect,d=this.components.data,g=this.getContainer("shadowGroup"),p=h._oldStartIndex,f=h._oldEndIndex,x=this.getSkippingInfo&&this.getSkippingInfo(),y=x&&x.draw;for(r=h.scrollMinVal,l=h.scrollMaxVal,r>p&&this.flushOnScroll(p,r>f?f:r),l<f&&this.flushOnScroll(l<p?p:l,f),h._oldStartIndex=r,h._oldEndIndex=l,e=r,s=l-1;e<l;e++,s--)(t=d[y[e]||e])&&(o=(i=t.config).props.element.attr,this.plotAnimManager(t,o,e,l),n=t.trackerConfig,(a=t.graphics.element)&&(a.shadow(i.shadow,g).data("BBox",void 0),c.config.enablemousetracking&&a.data("eventArgs",n.eventArgs).data(m,u).data(v,i.setRolloverAttr||{}).data(b,i.setRolloutAttr||{})));h.appearing&&(h.appearing=!1)},a.setColumnPosition=function(){var e,t;if((e=this.getFromEnv("plotWidth"))===n){var a,i,o=this.getFromEnv("xAxis"),r=this.getFromEnv("chartConfig"),s=this.getSkippingInfo().plotsPerBin,c=C(r.plotSpacePercent,0),h=C((0,l.pluckNumber)(c,20)%100,0),u=1===s?h/200:0,d=o.getPixel(0),g=o.getPixel(s),p=this.getFromEnv("chart"),f=p.isBar?p.config.maxBarHeight:p.config.maxColWidth,m=k(g-d),v=!0;e=(a=(1-.01*c)*m||y(m*(1-2*u),1*f))/1,g-(i=a/2)-(d-i+a)<4&&(v=!1),0===h&&(v=!0),this.addToEnv("isCrisp",v)}this.addToEnv("columnWidth",e),t=this.getFromEnv("shift")||0,this.addToEnv("columnXShift",t-this.getFromEnv("columnWidth")/2)},a.addDatasetSpecificEvtArgs=function(e){var t=this.config,a=e,i=a.config,n=this.getFromEnv("chart").config,o=a.trackerConfig.eventArgs;Object.assign(o,{color:i.originalPlotColorl,gradientColor:t.plotgradientcolor,alpha:i.plotFillAlpha,borderColor:i.plotbordercolor||t.plotbordercolor,borderAlpha:i.plotBorderAlpha,borderThickness:n.plotborderthickness,borderDashed:i.dashed,hoverColor:i.hoverColor,hoverAlpha:i.hoverAlpha,borderHoverColor:i.hoverBorderColor,borderHoverAlpha:i.hoverBorderAlpha})},a.parsePlotAttributes=function(e,t){var a,i,n,o,r,s,c,h,u,d,p,f,m,v,b,x,C,N,F,E,_,T,P,D,I=this.config,M=this.config.JSONData,O=this.getFromEnv("chart"),R=O.getFromEnv("dataSource").chart,V=O.config.isstacked,B=this.config,G=this.groupManager,H=this.getJSONIndex(),z=t,W=this.getState("visible"),j=O.config,U=O.config.is3D,q=O.isBar,Y=j.xDepth||0,X=j.yDepth||0,K=this.getFromEnv("yAxis"),Z=this.getFromEnv("xAxis"),J=j.showtooltip,$=!1!==this.getState("visible"),Q=this.components.data,ee=e.config,te=K.getAxisBase(),ae=K.yBasePos=K.getPixel(te),ie=(0,l.pluckNumber)(B.plotborderthickness,j.plotborderthickness),ne=(0,l.pluckNumber)(j.useroundedges,0),oe=B.use3dlighting,re=y(I.yAxisMinPixel,I.yAxisMaxPixel),le=G&&G.stackConf,se=this.getFromEnv("columnXShift"),ce=O.config.viewPortConfig,he=ce.x,ue=ce.scaleX,de=(0,l.pluckNumber)(j.showplotborder);m=ee.setLink,b=ee.colorArr||[],Z.config.isVertical?(h=this.getFromEnv("columnWidth"),c=se):(r=this.getFromEnv("columnWidth"),s=se),e.graphics||(Q[z].graphics={}),v=ee.displayValue,!$&&(ee._Py=ee._Pby),F=y(ee._Px,ee._Pbx)+(s||0)+he*ue,E=y(ee._Py,ee._Pby)+(c||0),le&&(F-=r/2),_=r||k(ee._Px-ee._Pbx),T=h||k(ee._Py-ee._Pby),a=q?ee._Px-ee._Pbx>0?w:L:ee._Py-ee._Pby>0?A:S,f=(0,l.getValidValue)((0,l.parseUnsafeString)((0,l.pluck)(ee.origToolText,M.plottooltext,R.plottooltext))),this.fineTunePlotDimension&&(F=(D=this.fineTunePlotDimension(F,E,T,_,z)).xPos,E=D.yPos,_=D.width,T=D.height),i=F,n=E,u=_,d=T,o=Z.getPixel(1)-Z.getPixel(0)-(q?d:u),!isFinite(d)&&(d=0),W&&(o<5&&this.getFromEnv("columnWidth")<5||(C=(0,l.crispBound)(F,E,u,d,ie,a,V)),C?(i=C.x,n=C.y,ie=C["stroke-width"],u=C.width,d=C.height||1):(i=F,n=E),Z.config.isVertical?i===re&&(i-=ie,u+=ie):n+d===re?d+=ie:n===re&&(n-=ie,d+=ie),ee.setRolloutAttr&&(ee.setRolloutAttr["stroke-width"]=I.showplotborder?ie:0)),p=ee.finalTooltext=!1!==ee.toolText?ee.toolText+(f?"":ee.toolTipValue):"",x=ee.plotBorderDashStyle,(N=e.trackerConfig={}).eventArgs={index:z,link:m,value:ee.setValue,displayValue:v,categoryLabel:ee.origLabel,toolText:p,id:"",datasetIndex:H,datasetName:M.seriesname,visible:W},this.addDatasetSpecificEvtArgs(e),P=ae===n+0,ee.props={element:{attr:{x:i||0,width:u||0,height:d||0,y:n||0,r:ne,fill:(0,l.toRaphaelColor)(b[0])||"",stroke:de?(0,l.toRaphaelColor)(b[1])||"":l.TRACKER_FILL,"stroke-width":de?ie:0,"stroke-dasharray":x,"stroke-linejoin":"miter",visibility:W,cursor:m?"pointer":""}}},U&&(ee.props.element.attr.noGradient=!oe,ee.props.element.attr.xDepth=Y,ee.props.element.attr.yDepth=X),e._xPos=i+Y,e._width=u,e._yPos=n-X,e._height=d,e._index=z,e._plotBorderThickness=ie,(m||J)&&(d<g&&(n-=(g-d)/2,d=g),N.attr={x:i,y:n,width:u,height:d,r:ne,cursor:m?"pointer":"",stroke:l.TRACKER_FILL,"stroke-width":de?ie:0,fill:l.TRACKER_FILL,visibility:W}),ee.oldValue=void 0,e._oldYBaseTouched=P},a.parseLabelAttributes=function(e){var t,a,i,o,r,l,s,c,h,u,d,g,p,f=this.getFromEnv("chart"),m=f.config,v=f.getFromEnv("smartLabel"),b=f.config.dataLabelStyle,x=this.config.legendInteractivity,y=this.getState("visible"),C=m.rotatevalues?270:0;if(u=(d=e&&e.config)&&d.setValue,e===n||u===n||null===u||!0===d.labelSkip)return d&&delete d.labelSkip,void((p=e&&e.graphics)&&p.label&&p.label.hide());(r=e.graphics)&&(c=e._yPos,h=e._xPos,i=d.displayValue,d.showValue&&null!==u?(x&&d._state||(v.setStyle(b),o=v.getOriSize(i),d._state=C?{labelWidth:o.height,labelHeight:o.width}:{labelWidth:o.width,labelHeight:o.height}),s=(g=this._getValuePosition({labelWidth:d._state.labelWidth,labelHeight:d._state.labelHeight,width:e._width,height:e._height,yPos:c,xPos:h,value:u})).textX,l=g.textY,d.props||(d.props={}),t=d.dataLabelStyle,d.props.label={attr:{x:s,y:l,text:i,"text-bound":[t.backgroundColor,t.borderColor,b.borderThickness,b.borderPadding,b.borderRadius,b.borderDash],opacity:y?1:0}},a=d.props.label.attr,x||(a["line-height"]=b.lineHeight,a.fill=t.color)):r.label&&(r.label.attr({"text-bound":[]}),r.label.hide()))},a.allocatePosition=function(){var e,t,a,i,n,o,r,l,s=this.getFromEnv("chart"),c=s.config,h=this.config,u=this.components.data.length,d=this.getFromEnv("yAxis"),g=this.components.data,p=c.isstacked,f=this.getSkippingInfo&&this.getSkippingInfo(),m=f&&f.draw;for(this.deleteFromEnv("columnWidth"),this.setColumnPosition(),this.calculateScrollRange(),p&&this.updateYForStack(),this.createCoordinates(),i=d.getLimit(),r=d.getPixel(i.max),l=d.getPixel(i.min),n=h.scrollMinVal,o=h.scrollMaxVal,r>l?(h.yAxisMaxPixel=r,h.yAxisMinPixel=l):(h.yAxisMaxPixel=l,h.yAxisMinPixel=r),t=0;t<u;t++)e=m[t]||t,s.hasScroll&&(e<n||e>o)||(a=g[e])&&(this.parsePlotAttributes(a,e),this.parseLabelAttributes(a))},a.draw=function(){var e,t,a=this,i=a.config,n=a.getState("visible"),o=a.getFromEnv("xAxis"),r=o.getPixel(0),l=o.getPixel(1),s=a.getFromEnv("groupMaxWidth"),c=a.getFromEnv("chart").config.xDepth||0,h=a.getFromEnv("yAxis"),d=i.drawn,g=h.getLimit(),p=g.max,f=g.min,m=p>0&&f<0,v=a._contextChanged(),b=(a.getSkippingInfo&&a.getSkippingInfo()||{}).skippingApplied;s||(s=k(l-r),a.addToEnv("groupMaxWidth",s)),(a.getState("removed")||a.getState("dirty")||v&&n)&&(!d&&a.createContainer(),a.setContainerVisibility(!0),b&&a.hidePlots(),a.drawPlots(),a.drawCommonElements&&!a.config.skipCommonElements&&a.drawCommonElements(),e=i.scrollMinValForLabel,t=i.scrollMaxValForLabel,i.drawn?a.drawLabel(e,t):a.addJob("labelDrawID",(function(){a.drawLabel(e,t)}),u.priorityList.label),i.drawn=!0,a.removePlots(),i.oldGroupMaxWidth=s,i.oldDataIsPositiveNegative=m,i.oldZeroAxisPos=h.getPixel(h.getAxisBase())+c,a.drawErrorValue&&a.drawErrorValue(),i.prevVisible=n,i.catDiff=0)},a.show=function(){var e=this.getLinkedParent(),t=this.getFromEnv("legend");t&&t.getItem(this.config.legendItemId)&&t.getItem(this.config.legendItemId).removeLegendState("hidden"),this.setState("visible",!0),this.config.appearing=!0,this._conatinerHidden=!1,this.setState("dirty",!0),e.childChanged(),this.config.appearing=!1,this.asyncDraw()},a.hide=function(){var e=this.getLinkedParent(),t=this.getFromEnv("legend");t&&t.getItem(this.config.legendItemId)&&t.getItem(this.config.legendItemId).setLegendState("hidden"),this.setState("dirty",!0),this.setState("visible",!1),e.childChanged(),this.asyncDraw()},a.drawLabel=function(e,t){var a,i,o,r,s,c,h,u,d,g,p,f,m=this.getFromEnv("chart"),v=this.getFromEnv("animationManager"),b=m.config,x=this.getFromEnv("xAxis"),y=this.getFromEnv("paper"),C=this.getState("visible"),k=m.getFromEnv("smartLabel"),S=m.config.dataLabelStyle,w=this.config,L=x.getTicksLen(),A=this.components,N=A.data,F=A.pool,E=b.rotatevalues?270:0,_=w.labelDrawn,T=this.getSkippingInfo&&this.getSkippingInfo(),P=T&&T.skippingApplied,D=T&&T.labelDraw||[],I=D.length,M=(0,l.pluckNumber)(e,0),O=(0,l.pluckNumber)(t,P?I:L),R=I===Math.abs(O-(M+1)),V=function(){this.attr({"text-bound":[]}),this.hide()};for((f=this.getContainer("labelGroup")).css({fontFamily:S.fontFamily,fontSize:S.fontSize,fontWeight:S.fontWeight,fontStyle:S.fontStyle}),f.show(),k.useEllipsesOnOverflow(m.config.useEllipsesWhenOverflow),k.setStyle(S),r=M;r<O;r++)h=(u=(a=N[o=P&&R?D[r]:r])&&a.config)&&u.setValue,a!==n&&h!==n&&null!==h&&!0!==u.labelSkip?(s=a.graphics)&&(u.showValue&&null!==h?(i=u.props.label.attr,c=a._xPos,!s.label&&_&&m.isRealTime&&((d=(0,l.extend2)({},i)).x=i.x-c+(a._newXPos||0),d.transform=y.getSuggestiveRotation(E,d.x,i.y),F&&F.label[0]&&(s.label=F.label[0],F.label.splice(0,1))),i.transform=y.getSuggestiveRotation(E,i.x,i.y),(g=s.label)||F&&F.label[0]&&(g=s.label=F.label[0],F.label.splice(0,1)),(g=v.setAnimation({el:s.label||"text",attr:i,component:this,label:"plotLabel",index:o,container:f,callback:!C&&V}))&&g.show(),g&&g.outlineText(w.showTextOutline,i.fill),s.label||(s.label=this.addGraphicalElement("plotLabel",g,!0))):s.label&&(s.label.attr({"text-bound":[]}),s.label.hide())):(u&&delete u.labelSkip,(p=a&&a.graphics)&&p.label&&p.label.hide());w.labelDrawn=!0},a._getValuePosition=function(e){var t,a,i,n,o,r,s,c,h,u=this.getFromEnv("chart"),d=u.getChildren(),g=u.config,p=d.yAxis[0],f=g.xDepth||0,m=g.yDepth||0,v=g.canvasTop,b=g.canvasHeight+m,x=e.yPos,k=u.config.is3D,S=u.config.isstacked,w=g.valuepadding+2,L=e.height,A=e.width,N=g.placevaluesinside,F=e.labelHeight,E=p.getAxisConfig("isReverse"),_=e.value;return E||(c=!(_<0)),r=h=F+w,n=L,i=x-(s=.5*h+w),a=e.xPos+.5*A,(o=(0,l.pluck)(c,_<0))?(t=v+b-(x+L+m),i=x):t=x-v,S?(i=y(v+b-.5*r,i=x+.5*L+(m||0)),i=C(v+.5*r,i),a-=f):N?n>=r?(i=x+(o?L-s:s),k&&(a-=f,i+=m)):t>=r?(i=x+(o?L+s:-s),k&&o&&(a-=f,i+=m)):(i=x+(o?L-s:s),k&&(a-=f,i+=m)):t>=r?(i=x+(o?L+s:-s),k&&(o?(a-=f,i+=m):a-=f/2)):(i=x+(o?L-s:s),k&&(a-=f,i+=m)),{textX:a,textY:i}},a.getDataLimits=function(){return{max:this.config.maxValue,min:this.config.minValue}},a.addData=function(e,t,a){var i,o=this.components,r=o.data,l=e.data.length;for(o.addDataArr=e.data,0===t?this.startPosition=!0:t+l!==r.length&&t!==n||(this.startPosition=!1),i=0;i<l;i++)t!==n?r.splice(t+i,0,{config:{}}):r.push({config:{}});this._setConfigure(e,t),a&&this.asyncDraw()},a.removeData=function(e,t,a){var i,o,r=e,l=t,s=this.getFromEnv("chart"),c=this.components,h=c.data,u=c.removeDataArr||(c.removeDataArr=[]);for(l===n&&(l=1),(r=r||0)+l!==h.length&&s.isRealTime?0!==r&&r!==n||(this.endPosition=!1):this.endPosition=!0,c.removeDataArr=u=u.concat(h.splice(r,l)),i=(o=u.length)-1;i>=0;i--)u[i]||u.splice(i,1);this.removeDataLen=o,a&&this.asyncDraw()},a.updateData=function(e,t,a){var i=this.config,n=i.maxValue,o=i.prevMin,r=this.getFromEnv("chart"),l=this.groupManager||this,s=r.getFromEnv("xAxis"),c=r.getFromEnv("yAxis");this._setConfigure(e,t),this.getDataLimits(),i.maxValue===n&&i.minValue===o||(this.maxminFlag=!0),a&&(r._setAxisLimits(),s&&s[0].asyncDraw(),c&&c[0].asyncDraw(),l.asyncDraw())},a.removePlots=function(){var e=this.components,t=e&&e.removeDataArr;T(t,this.__removeElem)},a.removeGraphicElem=function(e,t){this.__removeElem(e,t)},a.getAxisValuePadding=function(){return this.config.defaultPadding},a.getCanvasPadding=function(){var e,t,a,i,o,r,s=this.config||(this.config={}),c=this.components||{},h=this.getFromEnv("chart"),u=h.config.rotatevalues,d=this.getFromEnv("xAxis"),g=this.getFromEnv("yAxis"),p=h.config.dataLabelStyle,f=this.getSkippingInfo(),m=f.skippingApplied,v=f.draw,b=c.data||[],x=m?v[0]:0,y=m?v[v.length-1]:b.length-1,k=s.leftMostData||b[x],S=s.rightMostData||b[y],w={},L={},A=0,N=0,F=0,E=d.getPixel(0),_=this.getFromEnv("smartLabel"),T={paddingLeft:0,paddingRight:0,paddingTop:0,paddingBottom:0},P=0,D=d.getValuePadding(),I=s.topMostData,M=s.bottomMostData;return this.setColumnPosition(),r={xPosOffset:this.getFromEnv("columnXShift"),columnWidth:this.getFromEnv("columnWidth"),height:n},k&&(i=(e=k.config).showValue,a=e&&e.anchorProps||{},i&&(t=e.displayValue,_.useEllipsesOnOverflow(h.config.useEllipsesWhenOverflow),_.setStyle(p),L=_.getOriSize(t),P=u?L.height:L.width),null!==e.setValue&&(o=d.getPixel(D.left),(F=(A=a.enabled&&(0,l.pluckNumber)(a.radius,0)+(0,l.pluckNumber)(a.borderThickness,0)/2||0)-(o-E))<0&&(F=0),(N=(P||0)/2-(o-E)-(r&&r.xPosOffset+r.columnWidth/2||0))<0&&(N=0)),T.paddingLeft=C(F,N)),F=N=0,S&&(i=(e=S.config).showValue,a=e&&e.anchorProps||{},i&&!u&&(t=e.displayValue,_.setStyle(p),w=_.getOriSize(t),P=u?w.height:w.width),null!==e.setValue&&(o=d.getPixel(D.right),(F=(A=a.enabled&&(0,l.pluckNumber)(a.radius,0)+(0,l.pluckNumber)(a.borderThickness,0)/2||0)-(o-E))<0&&(F=0),(N=(P||0)/2-(o-E)+(r&&r.xPosOffset+r.columnWidth/2||0))<0&&(N=0)),T.paddingRight=C(F,N)),I&&(i=(e=I.config).showValue,a=e&&e.anchorProps||{},null!==e.setValue&&(A=(0,l.pluckNumber)(a.radius,0)+(0,l.pluckNumber)(a.borderThickness,0)/2,N=Math.max(A-(g.getPixel(e.setValue.y)-g.getPixel(g.getLimit().max)),0)),T.paddingTop=N),M&&(a=(e=M.config)&&e.anchorProps||{},null!==e.setValue&&(A=(0,l.pluckNumber)(a.radius,0)+(0,l.pluckNumber)(a.borderThickness,0)/2,N=Math.max(A-(g.getPixel(g.getLimit().min)-g.getPixel(e.setValue.y)),0)),T.paddingBottom=N),T},a.getEventArgs=function(){var e=this.config||{};return{datasetName:(this.config.JSONData||{}).seriesname,datasetIndex:this.getJSONIndex(),id:e.userID,visible:!this.getState("visible")}},a.getData=function(){return this.components.data},a.setJSONIndex=function(e){this.config.index=e},a.getJSONIndex=function(){return this.config.index||0},a.remove=function(t){var a=this.config.legendItemId,i=this.getFromEnv("chart").getChildren("legend"),n=this.getFromEnv("legend");i&&i.length&&n&&a&&n.disposeItem(a),e.prototype.remove.call(this,t)},a.setMaxMin=function(e){var t,a,i,o=this.components,r=o.data,l=o.removeDataArr,s=this.config,c=r.length,h=-Infinity,u=+Infinity,d=s.maxValue,g=s.minValue,p=l.length,f=!1;if(e)f=d===e.startValue||g===e.startValue||d<e.config.setValue||g>e.config.setValue;else if(p)for(t=0;t<p;++t)if(d===(i=l[t]&&l[t].config&&l[t].config.setValue)||g===i){f=!0;break}if(f){for(t=0;t<c;t++)r[t]&&(a=r[t].config.setValue)!==n&&(h=C(h,a),u=y(u,a));s.maxValue=h,s.minValue=u}},t}(s.ComponentInterface);P.prototype._configureDataLabelStyle=l.configureDataLabelStyle;var D=P;t["default"]=D},482:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=a(184),n={"initial.dataset.column":function(){var e=this,t=e.getFromEnv("chart"),a=t.config.yDepth||0,n="y",o="height",r="x",l="width",s=e.getFromEnv("yAxis"),c=e.getFromEnv("xAxis"),h=function(i,c){var h,u,d,g,p=e.config,f=c&&c.graphics&&c.graphics.element,m=i.attr,v=s.getPixel(s.getAxisBase())+(t.isBar?-a:a),b={},x=p.oldZeroAxisPos;if(h=f.attr(),b[n]=u=h[n],b[o]=h[o],b[r]=h[r],b[l]=h[l],d=h[n]+h[o],v!==x&&(x-v>=0?(u>v&&u<=x+.7&&(b[n]=v,d>x&&(b[o]=d-b[n])),d>v&&d<=x+.7&&(b[o]=v-(b[n]||0===b[n]?b[n]:u))):(u<v&&u>=x-.7&&(b[n]=v,d>v&&(b[o]=d-b[n])),d<v&&d>=x-.7&&(b[o]=v-(b[n]||0===b[n]?b[n]:u))),g=!0),e.config.catDiff&&(b[r]=m[r],b[l]=m[l],g=!0),c._plot_1Start=b,g)return{finalAttr:b,slot:"axis"}};return{"rect.appearing":function(h){var u,d,g,p,f=s.getPixel(s.getAxisBase())+(t.isBar?-a:a),m=h.props&&h.props.originalIndex||h.index,v=e.components.data[m],b=h.attr;return c.config.isVertical&&(n="x",o="width",r="y",l="height"),u=b[n],d=b[o],p=Math.sign(u+d/2-f),g=1===p?u:u+d,v._posWRT0=p,[{initialAttr:function(){var e={};return e[n]=g,e.opacity=0,e[o]=0,e},finalAttr:{opacity:1},startEnd:function(){var t=h.length;return i.animHelperFN.getTimeByValue(i.animHelperFN.animByWeight(h.index,t,.6),{startPx:f,endPx:1===p?e.config.yAxisMaxPixel:e.config.yAxisMinPixel},{startPx:g,endPx:1===p?b[n]+b[o]:b[n]})},hookFn:function(){this.attr({opacity:1})},effect:"linear",slot:"plot"}]},"rect.updating":function(i){var u,d,g,p,f,m,v,b,x,y,C,k,S,w,L,A,N,F,E,_,T,P,D,I,M,O,R,V,B=[],G=e.components.data[i.props&&i.props.originalIndex||i.index],H=i.attr,z=G&&G.graphics&&G.graphics.element,W=s.getPixel(s.getAxisBase())+(t.isBar?-a:a),j=0,U=e.getFromEnv("numColDiff");return c.config.isVertical&&(n="x",o="width",r="y",l="height"),(V=h(i,G))&&B.push(V),S=(k=G.prevDataObj)&&k._plot_1Start,E=k&&k._plot_1End,w=k&&k._plot_2Start,L=G.oldPrevDataObj,A=G.oldPrevDataObj&&G.oldPrevDataObj._plot_1End,g=(u=(b=G._plot_1Start)[n])+(d=b[o]),p=u+d/2,v=(f=H[n])+(m=H[o])/2,N=(g+(f+m))/2,_=Math.sign(p-W),T=Math.sign(v-W),(C={})[n]=(y={})[n]=(u+f)/2,C[o]=y[o]=(d+m)/2,d?_!==T?(C[o]=y[o]=0,y[n]=L&&L._oldPosWRT0===_?A[n]+(1===_?A[o]:0):W,C[n]=w?w[n]+(1===T?w[o]:0):W,F=x=!0):k!==L&&(D=(P=A||!(!E||Math.sign(E[n]+E[o]/2-W)!==_)&&E)?P[n]+(1===_?P[o]:0):W,1===_?(C[n]=y[n]=D,C[o]=y[o]=N-y[n]):C[o]=y[o]=D-y[n],x=!0):k&&k._oldPosWRT0===T||0===e.stackIndex?((O={})[o]=0,O[n]=S?S[n]+(k._posWRT0>0?S[o]:0):W,G._posWRT0=T,G._plot_1Start=O,C[n]=y[n]=(O[n]+f)/2,C[o]=y[o]=m/2):p===W&&(T!==G._posWRT0?j=.5:(x=!0,y[n]=1===T?W:W-y[o])),U<0?(y[r]=H[r],y[l]=H[l],x=!0):U>0?j=.5:b[r]===H[r]&&b[l]===H[l]||(.5===j?((O={})[r]=H[r],O[l]=H[l],I=function(){F&&z.attr(C),z.attr(O)}):(y[r]=H[r],y[l]=H[l],x=!0,I&&(M=function(){z.attr(O)},I=void 0))),x&&(B.push({finalAttr:y,startEnd:{start:0,end:.5},hookFn:M,slot:"plot"}),j=.5),!I&&(I=function(){F&&z.attr(C)}),B.push({effect:"linear",startEnd:{start:j,end:1},finalAttr:{x:H.x,y:H.y,width:H.width,height:H.height},callback:function(){null!==G.config.setValue&&void 0!==G.config.setValue||this.hide()},hookFn:I,slot:"plot"}),delete(R=Object.assign({},H)).x,delete R.y,delete R.width,delete R.height,B.push({finalAttr:R,effect:"linear",slot:"plot"}),G._plot_1End=y,G._plot_2Start=C,G._oldPosWRT0=G._posWRT0,G._posWRT0=T,B},"rect._disappearing":function(i){var r,l,c,u,d,g=s.getPixel(s.getAxisBase())+(t.isBar?-a:a),p=e.components.removeDataArr,f=p&&p[i.props&&i.props.originalIndex||i.index]||e.components.data[i.props&&i.props.originalIndex||i.index],m=f&&f.graphics&&f.graphics.element,v=f.oldPrevDataObj&&f.oldPrevDataObj._plot_1End,b=[];if(m)return(u=h(i,f))&&b.push(u),s.config.isVertical||(n="x",o="width"),r=(l=(d=f._plot_1Start)[n])+d[o]/2>g?v?v[n]+v[o]:l:v?v[n]:g,(c={})[n]=r,c[o]=0,c.width=f._width,c.x=f._xPos,b.push({startEnd:{start:0,end:e.getFromEnv("numOfColumns")<1?1:.5},finalAttr:c,slot:"plot"}),f._plot_1End=i.finalAttr,b},"plotLabel.appearing":[{initialAttr:{opacity:0},slot:"final"}],"plotLabel._disappearing":[{hookFn:function(){this.hide()},slot:"initial"}],"plotLabel.updating":[{hookFn:function(){this.hide()},slot:"initial"},{hookFn:function(){this.show()},initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}],"group.appearing":function(e){return"label-group"===e.attr.name?[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}]:[{initialAttr:{opacity:1},finalAttr:{opacity:1},slot:"final"}]},"*":null}}};t["default"]=n},498:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(499)),r=a(184),l=a(192),s=i(a(501)),c=Math.abs,h="line";(0,l.addDep)({name:"lineAnimation",type:"animationRule",extension:s["default"]});var u=function(e){function t(){var t;return(t=e.call(this)||this).updateYForStack=r.stubFN,t.config.primitiveType=h,t}(0,n["default"])(t,e);var a=t.prototype;return a.getType=function(){return"dataset"},a.getName=function(){return"line"},a.createPinElem=function(){var e,t,a,i=this,n=i.getFromEnv("chart"),o=arguments[1].group,r=i.config.lineOb,l=i.getGraphicalElement("pinElems")||i.addGraphicalElement("pinElems",[]),s=i.getFromEnv("paper"),h=i.getLinkedParent().getChildContainer("lineVcanvasGroup");for(t=l.length-1;t>=0;t--)l[t].remove(),l.pop();if(i.getState("visible"))for(a in r)e=r[a].el,l.push(s.path(o).attr({path:e.attrs.path,transform:["T",-(n.config._visx+c(h.transform()[0][1])),-n.config.canvasBottom]}).attr(i.config.pin))},a._addLegend=function(){var e,t,a,i=this.getFromEnv("chart"),n=this.config,o=i.getChildren("legend")[0],l=(0,r.pluckNumber)(n.drawanchors,1);n.includeinlegend?(a={enabled:n.includeinlegend,type:this.getName(),drawLine:(0,r.pluck)(n.drawLine,!0),index:this.getJSONIndex(),anchorSide:l?n.anchorsides:0,label:(0,r.getFirstValue)(this.config.JSONData.seriesname)},(e=o.getItem(this.config.legendItemId))||(this.config.legendItemId=o.createItem(this),e=o.getItem(this.config.legendItemId),this.addExtEventListener("fc-click",(function(){e.itemClickFn()}),e)),t={symbol:{fill:(0,r.toRaphaelColor)({color:n.anchorbgcolor,alpha:n.anchorbgalpha}),rawFillColor:n.anchorbgcolor,rawStrokeColor:n.anchorbordercolor,stroke:(0,r.toRaphaelColor)({color:n.anchorbordercolor,alpha:"100"}),"stroke-width":n.anchorborderthickness,lineWidth:n.linethickness}},e.setStateCosmetics("default",t),this.getState("visible")?e.removeLegendState("hidden"):e.setLegendState("hidden"),e.configure(a)):this.config.legendItemId&&o.disposeItem(this.config.legendItemId)},a._getDataLimits=function(){var e=this.config,t=this.getFromEnv("chart").config,a=e.maxValue,i=e.minValue,n=-Infinity,o=+Infinity,r=t.transposeAxis;return!1===this.getState("visible")&&r&&(a=n,i=o),{max:a,min:i}},a._drawCommonElementsHelper=function(e){var t,a,i,n=this,o=r.BLANKSTRING,l={},s=n.getFromEnv("animationManager"),c=n.config,h=c.shadow,u=c.linethickness,d=n.getContainer("commonElemsGroup"),g=function(){!1===n.getState("visible")&&this.hide()};for(o in e){for(t=["M0,0"],a=0,i=(l=e[o]).path&&l.path.length;a<i;++a)t=t.concat(l.path[a].getPathArr());n.config.drawLine?(l.el=s.setAnimation({el:l.el||"path",container:d,component:n,attr:!1!==n.getState("visible")&&Object.assign({path:t},l.attr),label:"line",callback:g}),n.getState("visible")&&l.el&&l.el.show()):l.el&&(l.el=s.setAnimation({el:l.el,component:n,doNotRemove:!0,callback:function(){this.hide()}})),!l.used&&delete e[o],l.el&&(u?l.el.shadow(h,d):l.el.shadow({opacity:0},d),l.el.toFront()),l.old=!0,l.used=!1,l.prevPath=l.path,l.attrs=void 0,l.path=void 0}},a.getLineShift=function(e){var t=this.getFromEnv("chart"),a=t.config.is3D,i=t.config.use3dlineshift;return"y"===e?a?i?0:-10:0:a?10:0},a.drawCommonElements=function(){var e,t,a,i,n,o,l,s,c,h,u=this.components.data,d=this.config,g=this.getFromEnv("xAxis"),p=this.getFromEnv("yAxis"),f=d.lineDashStyle,m=d.linethickness,v={color:d.linecolor,alpha:d.alpha},b=[(0,r.toRaphaelColor)(v),f].join(":"),x=b,y={x:g.getLimit(),y:p.getLimit()},C=u.length,k=this.config.lineOb||{},S=0,w=!1,L=this.getSkippingInfo&&this.getSkippingInfo(),A=L&&L.draw||[],N=A.length,F=L&&L.skippingApplied,E=function(e,t,a){var i=k[e];i||(i=k[e]={}),e!==x&&(i.hasDifferentColor=!0),i.used=!0,i.pathWithNull=a,i.path=i.path||[],i.stroke=e.split(":")[0],i.dashStyle=e.split(":")[1],i.path.push(t),i.dashStyle=i.dashStyle&&i.dashStyle.split(","),i.attr={"stroke-dasharray":i.dashStyle,"stroke-width":m,stroke:i.stroke,"stroke-linecap":"round","stroke-linejoin":m>2?"round":"miter"}},_=[];for(y.x.minPixel=g.getPixel(y.x.min),y.x.maxPixel=g.getPixel(y.x.max),y.y.minPixel=p.getPixel(y.y.min),y.y.maxPixel=p.getPixel(y.y.max),y.y.base=p.getPixel(0),y.x.base=g.getPixel(0),F&&(C=N),i=0;i<C;++i)(n=u[a=A[i]||i])&&((l=n.config||{})._Pbx=void 0,l._Pby=void 0,_[a]={config:{_Px:l._Px,_Py:l._Py,setValue:l.setValue}},t={color:l.setColor,alpha:l.setAlpha},e=l.dashStyle,b!==(o=[(0,r.toRaphaelColor)({color:(0,r.pluck)(t.color,v.color),alpha:(0,r.pluck)(t.alpha,v.alpha)}),e||f].join(":"))&&null!==n._yVal&&(w=!0,s=a,c=this.getLinePath(u,{begin:S,end:s+1}),h=this.getLinePath(u,{begin:S,end:s+1},void 0),l.connStartIndex=S,l.connEndIndex=s,E(b,c,h.getPathArr()),b=o,S=a,s=null),null!==n._yVal&&(b=o));o||(o=r.BLANKSTRING),d.pathStartIndex=S,d.pathEndIndex=s,E(o,c=this.getLinePath(u,{begin:w?S:d.scrollMinVal,end:w?s:d.scrollMaxVal}),(h=this.getLinePath(u,{begin:S,end:s},void 0)).getPathArr()),this._drawCommonElementsHelper(k),this.config.lineOb=k,d.prevLim=y,d.prevDataStore=_},a.show=function(){e.prototype.show.call(this),this.fireEvent("datasetVisibilityChanged",{dataset:this,state:"show"})},a.hide=function(){e.prototype.hide.call(this),this.fireEvent("datasetVisibilityChanged",{dataset:this,state:"hide"})},t}(o["default"]);t["default"]=u},499:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n,o=i(a(201)),r=i(a(198)),l=i(a(481)),s=a(184),c=a(196),h=a(192),u=i(a(500)),d=!s.hasSVG,g="DataPlotRollOver",p="DataPlotRollOut",f="area",m="L",v="Z",b=s.hasTouch?s.TOUCH_THRESHOLD_PIXELS:s.CLICK_THRESHOLD_PIXELS,x=s.preDefStr.DEFAULT,y=s.preDefStr.setRolloverAttrStr,C=s.preDefStr.setRolloutAttrStr,k=function(e){void 0===e&&(e="full");var t=this.pathMap,a=this.path2Map,i=[],n=[],o=!0;switch(e){case"detailed":for(var r in t)if(t.hasOwnProperty(r)&&(i.push(t[r]),a[r].length)){var l=t[r],s=Object.assign([],a[r]);if(s[s.length-1]===v&&s.pop(),s.length){var c=Object.assign([],l[l.length-1]),h=Object.assign([],l[0]);c[0]="M",h[0]=m,s.unshift(c),s.push(h)}n.push(s)}return(i=i.flat()).length?{top:i,bottom:n.flat()}:{top:["M0,0"],bottom:["M0,0"]};case"top":o=!1;default:for(var u in t)t.hasOwnProperty(u)&&(i.push(t[u]),o&&i.push(a[u]));return(i=i.flat()).length?i:["M0,0"]}},S=function(e){return e!==n&&null!==e&&""!==e},w=Math,L=w.min,A=w.max,N=w.ceil,F=function(e,t){var a,i,n,o,r,l,c,h,u,g,p,f,m,v,b,x,k=e.getFromEnv("chart").config,S=t.config,w=t.graphics,N=w.image||w.element,F=S.eventArgs,E=N._.RefImg,_=t._xPos,T=t._yPos,P=S.anchorProps,D=e.getContainer("shadowGroup"),I=S.hoverEffects,M=S.setLink,O=P.imageScale,R=P.imageAlpha,V=I.imageHoverAlpha,B=I.imageHoverScale,G=E.height*O*.01,H=E.width*O*.01,z=E.width*B*.01,W=E.height*B*.01;v=P.isAnchorRadius,P.markerRadius=i=P.radius=v?P.radius:L(H,G)/2,d?(f={x:_-E.width*O*.005,y:T-E.height*O*.005,width:H,height:G},p={x:_-E.width*B*.005,y:T-E.height*B*.005,width:z,height:E.height*B*.01,alpha:V},S.isAnchorsDrawn=!0,k.dragTolerance=k.dragTolerance<G?G+.5:k.dragTolerance,N.data("alwaysInvisible",!O).data("setRolloverProperties",I).data("hoverEnabled",I).data(y,p).data(C,f).data("imgRef",E).data("anchorRadius",O).data("anchorHoverRadius",B),N.attr(f),f.alpha=R):(a=P.symbol[1],b=I.isAnchorHoverRadius,n=P.shadow,h=P.imagePadding,I.radius=b?I.anchorRadius:i+1,r=I.radius-h-.5*I.anchorBorderThickness,c=i-h-.5*P.borderThickness,p=f={},k.dragTolerance=k.dragTolerance<i?i+.5:k.dragTolerance,x={fill:(0,s.toRaphaelColor)({color:P.bgColor,alpha:P.bgAlpha}),"stroke-width":P.borderThickness,stroke:(0,s.toRaphaelColor)({color:P.borderColor,alpha:P.borderAlpha})},f=(0,s.extend2)({path:(0,s.polyPathToPath)([a||2,_,T,i,P.startAngle,void 0])},x),I&&(p={path:(0,s.polyPathToPath)([I.anchorSides||2,_,T,I.radius,I.startAngle,I.dip]),fill:(0,s.toRaphaelColor)({color:I.anchorColor,alpha:I.anchorBgAlpha}),"stroke-width":I.anchorBorderThickness,stroke:(0,s.toRaphaelColor)({color:I.anchorBorderColor,alpha:I.anchorBorderAlpha})},V>(g=A(I.anchorAlpha,I.anchorBorderAlpha))&&(V=g)),P.bgAlpha&&P.borderAlpha&&R>(u=A(P.bgAlpha,P.borderAlpha))&&(R=u),(m=w.element).attr(Object.assign(x,{path:f.path})),m.attr({cursor:M?"pointer":""}).data("alwaysInvisible",!i).data("setRolloverProperties",I).data("hoverEnabled",I.enabled).data(y,p).data(C,f).data("anchorRadius",i).data("anchorHoverRadius",I&&I.radius).data("eventArgs",F).shadow(n,D),l=(0,s.polyPathToPath)([a||2,_,T,c>0?c:0,P.startAngle,void 0]),o=(0,s.polyPathToPath)([a||2,_,T,r>0?r:0,I.startAngle,I.dip]),P.imgRefWidth=E.width,P.imgRefHeight=E.height,P.imgRefScale=O,P.rolloutClipRadius=c,f={x:_-E.width*O*.005,y:T-E.height*O*.005,width:H,height:G,"clip-path":l},p={x:_-E.width*B*.005,y:T-E.height*B*.005,width:z,height:W,alpha:V,"clip-path":o},N.attr({x:f.x,y:f.y,width:f.width,height:f.height,"clip-path":f["clip-path"]}).data("alwaysInvisible",!O).data("setRolloverProperties",I).data(y,p).data(C,f).data("anchorRadius",O).data("imgRef",E).data("anchorHoverRadius",B),S.isAnchorsDrawn=!0,i=A(i,I&&I.anchorRadius||0,2)),t._xPos=_,t._yPos=T,e.parseLabelAttributes(t,t._index)};(0,h.addDep)({name:"areaAnimation",type:"animationRule",extension:u["default"]});var E=function(e){function t(){var t;t=e.call(this)||this;var a=(0,o["default"])(t);return a.__removeElem=function(e,t){a._setRemoveAnim(e,"element"===t||"image"===t?"anchor":"label")},a.config.primitiveType=f,t}(0,r["default"])(t,e);var a=t.prototype;return a.getType=function(){return"dataset"},a.getName=function(){return"area"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;t.valueposition=n,t.plotborderdashlen=n,t.plotborderdashgap=n,t.plotborderdashstyle=n,t.plotborderthickness=n,t.linethickness=n,t.linedashlen=n,t.linedashgap=n,t.dashed=n,t.linedashstyle=n,t.linecolor=n,t.linealpha=n,t.anchorbgcolor=n,t.anchorbordercolor=n,t.anchorradius=n,t.anchoralpha=n,t.anchorimageurl=n,t.anchorsides=n,t.anchorbgalpha=n,t.anchorborderthickness=n,t.anchorshadow=n,t.anchorstartangle=n,t.anchorimagealpha=n,t.anchorimagescale=n,t.anchorimagepadding=n,t.alpha=n,t.parentyaxis=n,t.inheritplotbordercolor=n},a._getHoveredPlot=function(e,t){var a,i,n,o,r,l,s=e,c=this.getFromEnv("xAxis"),h=this.components.data,u=h.length,d=this.config,g=this.getFromEnv("chartConfig").viewPortConfig.step||1,p=d&&d.radius||0,f=(this.getSkippingInfo&&this.getSkippingInfo()).plotsPerBin;for(s+=c.getTranslation(),i=Math.floor(Math.max(c.getValue(s-p),0)),n=Math.ceil(Math.min(c.getValue(s+p),u-1)),r+f-1,f>1&&(i=r=(N(i/f)-1)*f+1,n=N(n/f)*f),l=n;l>=i&&(!(a=h[l])||l%g||!(o=this.isWithinShape(a,l,s,t)));l--);return o},a.getClip=function(e){var t=this.getFromEnv("xAxis"),a=this.getFromEnv("yAxis"),i=a.getLimit(),n=t.getLimit(),o=t.getPixel(n.min),r=a.getPixel(i.min),l=a.getPixel(i.max),s=Math.abs(t.getPixel(n.max)-o),c=r-l,h=[];return h.push(o),h.push(c<0?r:l),"init"===e?h.push(0):"canvas"===e&&h.push(s),h.push(Math.abs(c)),h},a.isWithinShape=function(e,t,a,i,n){var o,r,l,c,h,u,d,g,p,f,m,v,x,y,C=n;if(e&&((C=e.config.setValue)||0===C))return o=e.config.anchorProps,r=e.config,c=o&&o.borderThickness,this,h=this.getFromEnv("chart").config.viewPortConfig,u=this.components.data,d=(0,s.pluckNumber)(r.dragTolerance,0),y=h?h.x*h.scaleX:0,g=e._xPos-y,null!==(p=e._yPos)?(x=e.config.hoverEffects,(l=Math.max(o&&o.radius,x&&x.anchorRadius||0,b)+c/2)||(l=3),f=a-g,m=i-p,((v=Math.sqrt(Math.pow(f,2)+Math.pow(m,2)))<=l||v<=d)&&{pointIndex:t,hovered:!0,pointObj:u[t]}):void 0},a._parseShadowOptions=function(){var e=this.getFromEnv("chart"),t=this.config,a=e.getFromEnv("dataSource").chart,i=this.getFromEnv("color-manager"),n=(0,s.pluckNumber)(e.defaultPlotShadow,i.getColor("showShadow"));return{opacity:(0,s.pluckNumber)(a.showshadow,n)?t.alpha/100:0}},a._firePlotEvent=function(e,t,a){var i,o,r,l=this.getFromEnv("chart"),s=this.components,c=this.getFromEnv("toolTipController"),h=s.data[t]||{},u=this.getGraphicalElement("sharedAnchor"),d=h.graphics&&h.graphics.element||(h.config&&h.config.setValue)!==n&&u,g=this.config.currentToolTip,p=l.getFromEnv("paper").canvas.style;if(d)switch(r=(i=h.config).setLink,o=i.eventArgs,e){case"fc-mouseover":this._decideTooltipType(t,a),this._rolloverResponseSetter(l,h,a),r&&(p.cursor="pointer");break;case"fc-mouseout":c.hide(g),this._rolloutResponseSetter(l,h,a),p.cursor=x;break;case"fc-click":l.plotEventHandler(d,a,"dataplotclick",o);break;case"fc-mousemove":this._decideTooltipType(t,a)}},a._rolloverResponseSetter=function(e,t,a,i){var n=t.graphics,o=n&&(n.element||this.getAnchor(t)),r=o&&o.data("draged"),l=o&&o.data("hoverEnabled");!0!==r&&(this._hoverFunc(t,g,l,e.getFromEnv("dataSource").chart),!i&&o&&e.plotEventHandler(o,a,g))},a._rolloutResponseSetter=function(e,t,a,i){var n=t.graphics,o=n&&(n.element||this.getAnchor(t)),r=o&&o.data("draged"),l=o&&o.data("hoverEnabled"),s=this.type,c=t.config,h=c.anchorProps,u=h.radius&&h.anchorAlpha;!0!==r&&(this._hoverFunc(t,p,l,e.getFromEnv("dataSource").chart),!i&&o&&e.plotEventHandler(o,a,p)),c.isAnchorsDrawn&&!u&&"area"===s&&o&&o.hide()},a.getAnchor=function(e){void 0===e&&(e={});var t,a,i,n,o,r,l,s,c,h=this.getFromEnv("animationManager"),u=this.getGraphicalElement("sharedAnchor"),d=e.config;return u?(t=d.anchorProps,a=d.eventArgs,(r=(o=d.hoverEffects).enabled)&&(i=o.attrs&&o.attrs.setRolloutAttr,n=o.attrs&&o.attrs.setRolloverAttr),l=t.radius,s=t.shadow,c=this.getFromEnv("chartConfig").prevAnchorHovered,o.anchorAnimation=0,e._index!==c&&(u.shadow(s,this.getContainer("shadowGroup")).data("anchorRadius",l).data("anchorHoverRadius",o.anchorRadius).data("hoverEnabled",r).data("eventArgs",a),r&&u.data(y,n).data(C,i)),this.getFromEnv("chartConfig").prevAnchorHovered=e._index,u):(u=h.setAnimation({el:"path",container:this.getContainer("plotGroup"),label:"anchor",doNotRemove:!0,component:this}),this.addGraphicalElement("sharedAnchor",u),u)},a.configureAttributes=function(e){if(!e)return!1;this.trimData(e);var t=this.getFromEnv("chart");this.config.JSONData=e,this.parseAttributes(),this._setConfigure(),this._realTimeConfigure&&this._realTimeConfigure(),!1!==t.config.hasLegend&&t.config.showLegend&&this._addLegend(),this.setState("dirty",!0)},a.parseAttributes=function(){var e,t,a=this.getFromEnv("chart"),i=a.config,o=this.config,r=this.getName(),l=this.config.JSONData,c=a.getFromEnv("chart-attrib"),h=a.config.singleseries,u=this.getFromEnv("color-manager"),d=Math.floor(this.getJSONIndex()),g=(0,s.pluckNumber)(l.showplotborder,c.showplotborder||1),p=(0,s.getFirstColor)(!h||(0,s.getValidValue)(c.palettecolors)?u.getPlotColor(d):u.getColor("plotFillColor").split(/\s*\,\s*/)[0]),f=i.isdual,m=i.haslineset;o.showTextOutline=(0,s.pluckNumber)(c.textoutline,0),o.maxValue=-Infinity,o.minValue=Infinity,(0,s.parseConfiguration)(l,o,a.config,{data:!0}),o.inheritplotbordercolor=(0,s.pluckNumber)(l.inheritplotbordercolor,c.inheritplotbordercolor,0),o.showValues=(0,s.pluckNumber)(l.showvalues,c.showvalues,"radar"===r?0:1),o.anchorimageurl=(0,s.pluck)(l.anchorimageurl,c.anchorimageurl,n),o.plotColor=p,o.parentYAxis=f?m?1:"s"===(0,s.pluck)(l.parentyaxis&&l.parentyaxis.toLowerCase(),"p")?1:0:0,o.valueposition=o.valueposition.toLowerCase(),o.plotfillcolor=(0,s.pluck)(l.color,c.plotfillcolor,p),o.seriesname=(0,s.parseUnsafeString)(l.seriesname),e=i.useplotgradientcolor,o.plotgradientcolor=0!==e?(0,s.getDefinedColor)(c.plotgradientcolor,u.getColor("plotGradientColor")):"",o.plotfillalpha=(0,s.pluck)(l.alpha,i.plotfillalpha),o.fillColor={color:o.plotfillcolor+(o.plotgradientcolor?","+o.plotgradientcolor:""),alpha:o.plotfillalpha,angle:o.plotfillangle},o.plotborderalpha=g?(0,s.pluck)(l.plotborderalpha,c.plotborderalpha,l.alpha,o.inheritplotbordercolor?"100":c.plotfillalpha,"95"):0,o.plotbordercolor=(0,s.pluck)(l.plotbordercolor,c.plotbordercolor,c.areabordercolor,o.inheritplotbordercolor?o.fillColor.color:h?(0,s.getValidValue)(c.palettecolors)?u.getPlotColor(0):u.getColor("plotBorderColor").split(/\s*\,\s*/)[0]:"666666"),o.plotborderColorObject={color:o.plotbordercolor,alpha:o.plotborderalpha,angle:o.plotfillangle},o.drawLine=(0,s.pluckNumber)(l.drawline,c.drawlines,1),o.plotborderdashstyle=o.dashed?(0,s.getDashStyle)(o.plotborderdashlen,o.plotborderdashgap):"none",o.linecolor=(0,s.pluck)(l.color,c.linecolor,o.plotColor),o.legendSymbolColor="line"===this.type?o.linecolor:o.plotfillcolor,o.includeinlegend=(0,s.pluckNumber)(l.includeinlegend,o.seriesname?1:0),t=(0,s.getDashStyle)(o.linedashlen,o.linedashgap),o.lineDashStyle=o.dashed?t:"none",o.defaultPadding={left:0,right:0},o.shadow=this._parseShadowOptions(),o.drawanchors=(0,s.pluckNumber)(l.drawanchors,l.showanchors,c.showanchors,c.drawanchors),o.anchorbgcolor=(0,s.getFirstColor)((0,s.pluck)(l.anchorbgcolor,i.anchorbgcolor,u.getColor("anchorBgColor"))),o.anchorbordercolor=(0,s.getFirstColor)((0,s.pluck)(l.anchorbordercolor,i.anchorbordercolor,o.linecolor,o.plotColor)),this.setState("visible",1===(0,s.pluckNumber)(l.visible,!Number(l.initiallyhidden),1)&&o.drawLine)},a._setConfigure=function(e,t){var a,i,o,r,l,h,u,d,g,p=this.getFromEnv("chart"),f=this.config,m=p.config,v=this.config.JSONData||[],x=this.getFromEnv("xAxis"),y=p.isRealTime,C=m.realTimeConfig&&m.realTimeConfig.numDisplaySets,k=this.getFromEnv("dataSource").categories&&this.getFromEnv("dataSource").categories[0]&&this.getFromEnv("dataSource").categories[0].category,S=f.initCatLen=y?k&&Array.isArray(k)&&k.filter((function(e){return!e.vline})).length||0:x.getTicksLen(),w=e||v.data,L=e&&e.data.length,A=m.isDrag,N=this.getSkippingInfo&&this.getSkippingInfo(),F=N&&N.draw||[],E=F.length,_=N&&N.skippingApplied;for(g=L===n&&S>C?S-C:0,o=y?(0,s.pluckNumber)(L,S):Math.min(S,w&&w.length),f.imageCount=0,(r=this.components.data)||(r=this.components.data=[]),f.maxRadius=-Infinity,m.dragTolerance=m.dragTolerance||-Infinity,_&&(o=E),h=g;h<o;h++)l=F[h]||h,e?(a=e&&e.data[l]||{},i=t!==n?r[d=t+l]:r[d=r.length-o+l],u=d):(a=w&&w[l]||{},i=r[l-=g],u=l),i||(i=r[u]={}),i.config||(i.config={}),i.graphics||(i.graphics={}),this._plotConfigure(u,a,L),d&&d++;_&&this.addJob("configureRestID",this._configureRestData.bind(this),c.priorityList.postRender),m.dragTolerance=A?(m.dragTolerance>5?m.dragTolerance:5.5)+b:0,this.ErrorValueConfigure&&this.ErrorValueConfigure()},a._configureRestData=function(){var e,t,a,i,n,o,r=this.getFromEnv("chart"),l=this.config,s=r.config,c=this.config.JSONData.data||[],h=(this.getSkippingInfo&&this.getSkippingInfo()).drawOnlyMap,u=this.getFromEnv("xAxis").getTicksLen();for(l.imageCount=0,(a=this.components.data)||(a=this.components.data=[]),l.maxRadius=-Infinity,s.dragTolerance=s.dragTolerance||-Infinity,l.maxValue=-Infinity,l.minValue=Infinity,i=0;i<u;i++)h[i]||(t=a[i],e=c&&c[i]||{},n=i,t||(t=a[i]={}),t.config||(a[i].config={}),t.graphics||(t.graphics={}),this._plotConfigure(n,e),o&&o++)},a._plotConfigure=function(e,t,a){var i,o,r,l,c,h,u,d,g,p,f=this.getFromEnv("chart"),m=this.config,v=f.config,x=this.config.JSONData,y=f.getFromEnv("dataSource").chart,C=this.components.data[e],k=this.getFromEnv("xAxis"),S=this.getFromEnv("yAxis"),w=v.isDrag,N=C&&C.config,F=(0,s.parseUnsafeString)(v.yaxisname),E=(0,s.parseUnsafeString)(v.xaxisname),_=v.tooltipsepchar,T=m.dashed,P=v.realTimeConfig&&v.realTimeConfig.numDisplaySets,D=P-m.initCatLen,I=P&&D>=0?D:0;g=k.getLabel(a?e-a:I+e),N.label=(0,s.getValidValue)((0,s.parseUnsafeString)(g.tooltext||g.label)),t.tooltext!==n&&(t.tooltext=(0,s.parseTooltext)(t.tooltext,[3],{label:g.label},t,y,x)),N.dataLabelStyle=this._configureDataLabelStyle(t),N.setValue=r=S.getCleanValue(t.value,m.stack100percent),N.setLink=(0,s.pluck)(t.link),N.anchorProps=this._parseAnchorProperties(e),m.maxRadius=A(N.anchorProps.radius+N.anchorProps.borderThickness/2,m.maxRadius),p=N.anchorProps.radius+N.anchorProps.borderThickness/2,N.dragTolerance=w?(p<6?5.5:p+.5)+b:0,N.label=(0,s.getValidValue)((0,s.parseUnsafeString)(g.tooltext||g.label)),N.showValue=(0,s.pluckNumber)(t.showvalue,m.showValues),N.givenPlotShowValue=(0,s.pluckNumber)(t.showvalue),N.dashed=(0,s.pluckNumber)(t.dashed,T),N.dashStyle=N.dashed?(0,s.getDashStyle)(m.linedashlen,m.linedashgap):"none",N.color=(0,s.pluck)(t.color,m.linecolor),N.setColor=t.color,N.setAlpha=t.alpha,N.setDashed=t.dashed,N.alpha=(0,s.pluck)(t.alpha,t.linealpha,m.alpha,m.linealpha),N.origLabel=(0,s.getValidValue)((0,s.parseUnsafeString)(g.label)),null!==r&&(m.maxValue=A(m.maxValue,r),m.minValue=L(m.minValue,r)),N.setTooltext=(0,s.parseUnsafeString)(t.toolText),N.toolTipValue=o=S.dataLabels(r),N.setDisplayValue=l=(0,s.parseUnsafeString)(t.displayvalue),N.displayValue=(0,s.pluck)(l,o),N.formatedVal=u=N.toolTipValue,N.setTooltext=(0,s.getValidValue)((0,s.parseUnsafeString)((0,s.pluck)(t.tooltext,x.plottooltext,y.plottooltext))),N.valuePosition=(0,s.pluck)(t.valueposition,m.valueposition),N.valuePosition&&(N.valuePosition=N.valuePosition.toLowerCase()),v.showtooltip?null===u?i=!1:N.setTooltext!==n?(c=[1,2,3,4,5,6,7],h={yaxisName:F,xaxisName:E,formattedValue:u,label:N.label},i=(0,s.parseTooltext)(N.setTooltext,c,h,t,y,x)):(v.seriesnameintooltip&&(d=(0,s.getFirstValue)(x&&x.seriesname)),i=d?d+_:"",i+=N.label?N.label+_:"",i+=N.setTooltext?"":N.toolTipValue):i=!1,N.toolText=i,N.setTooltext=i,N.setLevelTooltext=N.setTooltext,N._x=t.index===n?e:t.index,N._y=r,N.finalTooltext=N.setTooltext=i,N.hoverEffects=this._parseHoverEffectOptions(C,t),N.anchorProps.isAnchorHoverRadius=N.hoverEffects.anchorRadius,v.dragTolerance=A(v.dragTolerance,m.maxRadius,N.hoverEffects.anchorRadius)},a.drawCommonElements=function(){var e,t,a,i,o,r,l,c,h,u,d,g,p,f=this,m=f.components.data,v=f.getFromEnv("chart"),b=f.config,x=v.config,y=f.getLinkedParent(),C=f.getJSONIndex(),k=y.config.firstDataSetIndex,S=f.getFromEnv("xAxis"),w=f.getFromEnv("yAxis"),L=b.scrollMinVal,A=b.scrollMaxVal,N=!x.drawfullareaborder,F=b.plotborderColorObject,E=b.plotborderdashstyle,_=b.plotborderthickness,T=b.fillColor,P=f.getFromEnv("animationManager"),D={x:S.getLimit(),y:w.getLimit()},I=[],M=b.shadow,O=f.getContainer("shadowGroup"),R=S.getState("scrolling"),V=f.getSkippingInfo&&f.getSkippingInfo(),B=V&&V.draw||[],G=B.length,H=V&&V.skippingApplied;for(D.x.minPixel=S.getPixel(D.x.min),D.x.maxPixel=S.getPixel(D.x.max),D.y.minPixel=w.getPixel(D.y.min),D.y.maxPixel=w.getPixel(D.y.max),D.y.base=w.getPixel(0),D.x.base=S.getPixel(0),H&&(L=0,A=G),g=L;g<A;g++)m[d=B[g]||g]&&m[d].config&&(I[d]={config:{_Px:m[d].config._Px,_Pbx:m[d].config._Pbx,_Py:m[d].config._Py,_Pby:m[d].config._Pby,setValue:m[d].config.setValue}});if(p={begin:L,end:A},r={path:(a=this.getLinePath(m,R?p:null,!f.getState("visible")&&"base")).getPathArr(),stroke:"none",fill:(0,s.toRaphaelColor)(T)},t=f.getGraphicalElement("lineElement"),e=P.setAnimation({el:t||"path",container:f.getContainer("commonElemsGroup"),attr:f.getState("visible")&&r,component:f,doNotRemove:!0,label:"line",callback:function(){!f.getState("visible")&&this.hide()}}),!t&&e&&f.addGraphicalElement("lineElement",e),f.getState("visible")&&e&&e.show(),f.getState("visible")&&!R&&e.shadow(M,O),l=f.getGraphicalElement("connector"),u=f.getGraphicalElement("bottomConnector"),f.getState("visible")&&l&&l.show(),N)i=a.getPathArr("top"),o="topBorderPath";else if(k===n||C===k)i=a.getPathArr(),o="line";else{var z=a.getPathArr("detailed");i=z.top,c=z.bottom,o="topBorderPath",f.getState("visible")&&u&&u.show(),h=f.addGraphicalElement("bottomConnector",P.setAnimation({attr:{path:c,stroke:(0,s.toRaphaelColor)(F),"stroke-width":_,"stroke-linecap":"round","stroke-linejoin":_>2?"round":"miter","stroke-dasharray":E},el:u||"path",container:f.getContainer("commonElemsGroup"),component:f,label:"bottomPath",callback:function(){!f.getState("visible")&&this.hide()}}))}u&&!h&&f.removeGraphicalElement(u),l=f.addGraphicalElement("connector",P.setAnimation({attr:{path:i,stroke:(0,s.toRaphaelColor)(F),"stroke-width":_,"stroke-linecap":"round","stroke-linejoin":_>2?"round":"miter","stroke-dasharray":E},el:l||"path",container:f.getContainer("commonElemsGroupLine")||f.getContainer("commonElemsGroup"),component:f,label:o,callback:function(){!f.getState("visible")&&this.hide()}})),b.prevLim=D,b.prevDataStore=I,"realTimeUpdate"===v.state&&(f.realTimeUpdated=!0),x.connectnulldataOld=x.connectnulldata},a.addDatasetSpecificEvtArgs=function(e){var t=e.config,a=t.anchorProps,i=t.eventArgs,n=t.hoverEffects;Object.assign(i,{color:t.color,alpha:t.alpha,anchorBgColor:a.bgColor,anchorBgAlpha:a.anchorBgAlpha,anchorAlpha:a.anchorAlpha,anchorBorderColor:a.borderColor,anchorBorderThickness:a.borderThickness,anchorRadius:a.radius,anchorSides:a.sides,anchorStartAngle:a.startAngle,anchorHoverColor:n.anchorColor,anchorHoverAlpha:n.anchorAlpha,anchorHoverSides:n.anchorSides,dashed:t.dashed,valuePosition:t.valuePosition})},a.parsePlotAttributes=function(e,t){var a,i,n,o,r,l,c,h,u,d,g,p=this.getJSONIndex(),f=this.getState("visible"),m=this.config,v=this.config.JSONData,b=t,x={},k={},S={};h=(g=e.config)._Px,u=g._Py,a=g._x,i=g._y,o=g.setLink,n=g.setValue,x=g.anchorProps,d=g.displayValue,c=g.hoverEffects,l=g.finalTooltext=g.toolText,g.eventArgs={index:b,link:o,value:n,displayValue:d,categoryLabel:g.origLabel,toolText:l,id:m.userID,datasetIndex:p||0,datasetName:v.seriesname,visible:f},this.addDatasetSpecificEvtArgs(e),r=x.symbol,e._xPos=h,e._yPos=u,e._xVal=a,e._yVal=i,e._index=b,null!==i&&null!==a?(g.eventArgs.x=a,g.eventArgs.y=i,c.enabled&&(S={path:(0,s.polyPathToPath)([c.anchorSides||2,h,u,c.anchorRadius,c.startAngle,c.dip?c.dip:+("spoke"===m.dip)]),fill:(0,s.toRaphaelColor)({color:c.anchorColor,alpha:c.anchorBgAlpha}),stroke:(0,s.toRaphaelColor)({color:c.anchorBorderColor,alpha:c.anchorBorderAlpha}),"stroke-width":c.anchorBorderThickness},k={path:(0,s.polyPathToPath)([r[1]||2,h,u,x.radius,x.startAngle,g.dip||0]),fill:(0,s.toRaphaelColor)({color:x.bgColor,alpha:x.bgAlpha}),stroke:(0,s.toRaphaelColor)({color:x.borderColor,alpha:x.borderAlpha}),"stroke-width":x.borderThickness},c.attrs={hoverEnabled:c.enabled,anchorRadius:x.radius,anchorHoverRadius:c.anchorRadius},c.attrs[y]=S,c.attrs[C]=k,x.isAnchorHoverRadius=c.attrs.anchorRadius),x.imageUrl&&(g.anchorImageLoaded=!1),g.props={element:{attr:{path:(0,s.polyPathToPath)([r[1]||2,h,u,x.radius,x.startAngle,g.dip||0]),fill:(0,s.toRaphaelColor)({color:x.bgColor,alpha:x.bgAlpha}),stroke:(0,s.toRaphaelColor)({color:x.borderColor,alpha:x.borderAlpha}),"stroke-width":x.borderThickness}}}):n&&(n.isNull=!0)},a.parseLabelAttributes=function(e,t){var a,i,o,r,l,s,c,h,u,d,g,p,f,m,v,b,x,y,C,k,w,L,A,N,F=this.getFromEnv("chart"),E=F.config,_=this.getFromEnv("smartLabel"),T=F.config.dataLabelStyle,P=this.components.data,D=E.stack100percent,I=E.rotatevalues?270:0,M=E.canvasTop,O=E.canvasHeight,R=F.config.isstacked,V=t;if(L=(m=e&&e.config)&&m.setValue,e!==n&&L!==n&&null!==L&&!0!==m.labelSkip){switch(d=m.anchorProps,b=e._yPos||e.config._Py,v=e._xPos||e.config._Px,w=d.markerRadius||d.radius-3,o=E.valuepadding+2+w,m.valuePosition){case"above":g=0;break;case"below":g=1;break;default:x=P[V-1]&&P[V-1].config||{},R&&D?(y=x.value,C=m.value):(y=x.setValue,C=m.setValue),g=V&&y>C?1:0}if(a=m.displayValue,k=m.showValue,i=m.dataLabelStyle,S(a)&&""!==a&&null!==C&&k){if(N={text:a,fill:i.color,"text-bound":[i.backgroundColor,i.borderColor,T.borderThickness,T.borderPadding,T.borderRadius,T.borderDash]},r=_.getOriSize(a),m._state=m._state||{},I?(m._state.labelWidth=r.height,m._state.labelHeight=r.width,m._rotated=!0):(m._state.labelWidth=r.width,m._state.labelHeight=r.height,m._rotated=!1),l=s=m._state.labelHeight,u=.5*s+o,p=b-M,f=M+O-b,c=b,h=v,A=(l+=o)+4,g?f>A?(c+=u,m._valueBelowPoint=1):p>A&&(c-=u,m._valueBelowPoint=0):p>A?(c-=u,m._valueBelowPoint=0):f>A&&(c+=u,m._valueBelowPoint=1),this.getFromEnv("useImprovedLabelPlacement")&&E.showSum&&!D){var B=l+2;c<M+B+l/2?c=M+B+l/2:c>M+O-B-l/2&&(c=M+O-B-l/2)}N.x=h,N.y=c}m.props=m.props||{},m.props.label={attr:N}}else m&&delete m.labelSkip},a.allocatePosition=function(){var e,t,a=this,i=a.config,o=a.getFromEnv("chart"),r=o.config,l=a.components,s=l.data,c=a.getFromEnv("xAxis"),h=0,u=0,d=r.isstacked,g=r.viewPortConfig.step||1,p=o.hasScroll,f=a.getSkippingInfo&&a.getSkippingInfo(),m=f&&f.labelDraw||[],v=f&&f.draw||[];for(t=l.animAttrs=[],a.calculateScrollRange(),c.getState("scrolling")||d&&a.updateYForStack(),a.createCoordinates(),u=i.scrollMinVal;u<i.scrollMaxVal;u+=g)h=v[u]||u,p&&!r.skipAttr&&(h<void 0||h>void 0)||((e=s[h])&&e.config?a.parsePlotAttributes(e,h):t[h]=n);for(g>1&&i.skipIgnorerIndices.map((function(e){return s[e]})).filter((function(e){return e||e.config})).forEach((function(e){return a.parsePlotAttributes(e,h)})),u=i.scrollMinValForLabel;u<i.scrollMaxValForLabel;u+=g)h=m[u]||u,e=s[h],a.parseLabelAttributes(e,h)},a.drawPlot=function(e,t){var a,i,o,r=this.config,l=e.config,s=e.graphics,c=l.anchorProps,h=this.getState("visible"),u=c.radius,d=c.shadow,g=c.anchorAlpha,p=u&&g,f=this.getContainer("plotGroup"),m=this.getContainer("shadowGroup"),v=this.getFromEnv("animationManager");null!==l._y&&null!==l._x?(c.imageUrl?this.drawAnchorImage(e):(a=s.element,(o=s.image)&&o.remove(),delete s.image,(r.drawanchors||p)&&h&&null!==e.config.setValue?(a=s.element=v.setAnimation({el:a||"path",container:f,attr:l.props.element.attr,index:t,length:length,callback:function(){this.show()},component:this,label:"anchor"})).shadow(d,m):a&&(this.__removeElem(s.element,"element"),delete s.element,a=n)),i=l.hoverEffects,a&&(i.enabled?a.data("hoverEnabled",i.attrs.hoverEnabled).data("anchorRadius",i.attrs.anchorRadius).data("anchorHoverRadius",i.attrs.anchorHoverRadius).data(y,i.attrs[y]).data(C,i.attrs[C]):a.data("hoverEnabled",!1),a.data("eventArgs",l&&l.eventArgs))):s.element&&(s.element=v.setAnimation({el:s.element,component:this}))},a.drawPlots=function(){var e,t,a,i=this,o=i.getFromEnv("chart").config,r=i.components,l=i.config,s=r.data,c=0,h=0,u=r.animAttrs,d=l._oldStartIndex,g=l._oldEndIndex,p=i.getGraphicalElement("sharedAnchor"),f=o.viewPortConfig.step||1,m=i.getSkippingInfo&&i.getSkippingInfo(),v=m&&m.draw||[];for(u=r.animAttrs=[],t=l.scrollMinVal,a=l.scrollMaxVal,t>d&&i.flushOnScroll(d,t>g?g:t),a<g&&i.flushOnScroll(a<d?d:a,g),l._oldStartIndex=t,l._oldEndIndex=a,i.hideAllAnchors&&i.hideAllAnchors(),h=t;h<a;h+=f)c=v[h]||h,(e=s[c])&&e.config?i.drawPlot(e,c):u[c]=n;f>1&&l.skipIgnorerIndices.map((function(e){return s[e]})).filter((function(e){return e||e.config})).forEach((function(e){return i.drawPlot(e,c)})),0===c||l.drawanchors?p&&p.hide():p?p.hide():i.getAnchor()},a.drawAnchorImage=function(e){var t,a=this.getContainer("plotGroup"),i=e.graphics,n=this.getFromEnv("animationManager"),o=d?i.element:i.image,r=e.config.anchorProps,l=r.anchorAlpha&&r.radius,s=r.imageAlpha;this.getState("visible")&&l?(d||(i.element=n.setAnimation({el:i.element||"path",container:a,attr:e.config.props.element.attr,label:"anchor",component:this}).show()),e.config.props.element.attr.opacity=.01*s,t=n.setAnimation({el:o||"image",container:a,component:this,label:"anchor",attr:{opacity:.01*s}}),d?i.element=t:i.image=t,o?t.attrs.src!==r.imageUrl?t.attr("src",r.imageUrl):t._.RefImg&&F(this,e):(t.on("load",this._onAnchorImageLoad(e)),t.attr("src",r.imageUrl)),t.show()):(i.image&&n.setAnimation({el:i.image,state:"disappearing",component:this,doNotRemove:!0,callback:function(){this.hide()}}),i.element&&n.setAnimation({el:i.element,state:"disappearing",component:this,doNotRemove:!0,callback:function(){this.hide()}}))},a.getLineSegment=function(e,t,a){var i=t._Px,o=t._Py,r=t._Pbx,l=t._Pby,s=this.getFromEnv("yAxis").getPixel(0),c=t.setValue,h="path-"+e.pathCount,u=this.getFromEnv("chart").config.connectnulldata;return"zero"===a?(o=s,l=s):"base"===a&&(o=t._Pby),e.pathMap[h]||(e.pathMap[h]=[]),e.path2Map[h]||(e.path2Map[h]=[]),null===c||c.isNull?u||(e.pointsJoined>0&&e.path2Map[h][e.path2Map[h].length-1]!==v&&l!==n&&e.path2Map[h].push(v),e.temp=[],e.temp2=[],e.lastValidValue=!1):e.lastValidValue?(e.temp.length&&(e.pathMap[h]=e.pathMap[h].concat(e.temp),r!==n&&(e.path2Map[h]=e.temp2,e.temp2=[]),e.temp=[],e.pointsJoined++),e.pathMap[h].push([m,i,o]),l!==n&&e.path2Map[h].unshift([m,i,l])):(e.temp.push(["M",i,o]),l!==n&&e.temp2.push([m,r,l]),e.pointsJoined=0,e.lastValidValue=!0,e.pathCount++),e},a.getLinePath=function(e,t,a){var i,o,r,l,s,c,h,u,d,g=this,p=g.getFromEnv("chart").config,f=e.length,m=t&&t.begin||0,b=g.getState("visible")?t&&t.end||f:0,x=p.viewPortConfig.step||1,y=(g.removeDataLen,[]),C=g.getSkippingInfo&&g.getSkippingInfo(),S=C&&C.draw||[],w=S.length,L=C&&C.skippingApplied,A=g.config.skipIgnorerIndices,N=[],F={},E=0;for(0,y=y.concat(e),L&&(m=0,b=w),o=m+0;o<b+0;o+=x)if(s=y[i=S[o]||o])if((r=s.config).setValue===n||r&&!0===r.isSkipped)r&&delete r.isSkipped;else{if(x>1)for(;A[E]<o;)(h=y[A[E]])&&((u=h.config).setValue===n||u&&!0===u.isSkipped?u&&delete u.isSkipped:(N=N.concat(u),E++));N=N.concat(r),l=r._Pby,c=o}if(x>1)for(i=c+1;i<=o;i++)(s=y[S[i]||i])&&((r=s.config).setValue===n||r&&!0===r.isSkipped?r&&delete r.isSkipped:A.includes(i)&&(N=N.concat(r),l=r._Pby));return d="path-"+(F=N.reduce((function(e,t){return g.getLineSegment(e,t,a)}),{temp:[],temp2:[],pathMap:{},path2Map:{},pointsJoined:0,lastValidValue:!1,getPathArr:k,pathCount:0})).pathCount,F.path2Map[d]&&F.path2Map[d][F.path2Map[d].length-1]!==v&&F.pointsJoined>0&&l!==n&&F.path2Map[d].push(v),F},a._removeDataVisuals=function(e){var t,a,i,n,o=this.components.pool||(this.components.pool={});if(e)for(a in i=e.graphics)t=o[a]||(o[a]=[]),(n=i[a]).hide&&"function"==typeof n.hide&&(n.attr({"text-bound":[]}),n.hide(),n.shadow&&n.shadow(!1)),t.push(i[a])},a._parseAnchorProperties=function(e,t){var a,i,o,r=this.config,l=this.getName(),c=this.getFromEnv("chart"),h=c.config.anchoralpha,u=!c.config.anchoralpha&&/area/gi.test(l)?0:1,d=r.JSONData,g=c.getFromEnv("dataSource").chart,p=(t||d.data||[])[e]||{},f={};return i=(0,s.pluck)(p.anchorstartangle,d.anchorstartangle,g.anchorstartangle,p.anchorimagealpha,d.anchorimagealpha,g.anchorimagealpha,p.anchorimagescale,d.anchorimagescale,g.anchorimagescale,p.anchorimagepadding,d.anchorimagepadding,g.anchorimagepadding,p.anchorimageurl,d.anchorimageurl,g.anchorimageurl,p.anchorradius,d.anchorradius,g.anchorradius,p.anchorbgcolor,d.anchorbgcolor,g.anchorbgcolor,p.anchorbordercolor,d.anchorbordercolor,g.anchorbordercolor,p.anchoralpha,d.anchoralpha,g.anchoralpha,p.anchorsides,d.anchorsides,g.anchorsides,p.anchorborderthickness,d.anchorborderthickness,g.anchorborderthickness,n)!==n,o=(0,s.pluckNumber)(p.drawanchors,r.drawanchors),f.enabled=i?(0,s.pluckNumber)(o,i):(0,s.pluckNumber)(o,u),f.startAngle=(0,s.pluckNumber)(p.anchorstartangle,r.anchorstartangle),f.imageAlpha=(0,s.pluckNumber)(p.anchorimagealpha,r.anchorimagealpha),f.imageScale=(0,s.pluckNumber)(p.anchorimagescale,r.anchorimagescale),f.imagePadding=(0,s.pluckNumber)(p.anchorimagepadding,r.anchorimagepadding),f.imagePadding<0&&(f.imagePadding=0),f.imageUrl=(0,s.pluck)(p.anchorimageurl,r.anchorimageurl),f.imageUrl&&r.imageCount++,f.radius=f.enabled?(0,s.pluckNumber)(p.anchorradius,r.anchorradius):0,f.isAnchorRadius=(0,s.pluck)(p.anchorradius,d.anchorradius,g.anchorradius),f.bgColor=(0,s.pluck)(p.anchorbgcolor,r.anchorbgcolor),h=f.enabled?(0,s.getFirstAlpha)((0,s.pluck)(p.anchoralpha,r.anchoralpha,f.enabled?s.HUNDREDSTRING:"0")):0,f.anchorAlpha=h,f.anchorBgAlpha=(0,s.pluckNumber)(p.anchorbgalpha,r.anchorbgalpha,h),f.bgAlpha=(0,s.getFirstAlpha)(f.anchorBgAlpha)*h/100,f.imageAlpha=f.imageAlpha*h/100,f.borderColor=(0,s.pluck)(p.anchorbordercolor,r.anchorbordercolor),f.borderAlpha=h,f.sides=(0,s.pluck)(p.anchorsides,r.anchorsides),f.borderThickness=(0,s.pluck)(p.anchorborderthickness,r.anchorborderthickness),f.symbol=(0,s.mapSymbolName)(f.sides).split("_"),a=(0,s.pluckNumber)(p.anchorshadow,r.anchorshadow)&&f.radius>=1,f.shadow={opacity:a?h/100:0},f},a._hideGraphics=function(e){var t,a;for(a in e)if(e.hasOwnProperty(a)){if(!(t=e[a]))continue;t.hide?t.hide():this._hideGraphics(t)}},a._parseHoverEffectOptions=function(e,t){var a=t,i=this.config.JSONData,o=this.getFromEnv("chart"),r=o.getFromEnv("dataSource").chart,l=o.config,c=e.config,h=this.config,u=c.anchorProps||{},d=l.plothovereffect,g=h.drawanchors,p={enabled:!1};return a=a||{},0!==d&&0!==g&&(p.enabled=(0,s.pluck)(a.hovercolor,a.anchorhovercolor,a.hovercolor,i.hovercolor,a.anchorbghovercolor,i.anchorbghovercolor,r.anchorbghovercolor,i.anchorhovercolor,r.anchorhovercolor,a.hoveralpha,a.anchorhoveralpha,i.anchorhoveralpha,r.anchorhoveralpha,a.bghoveralpha,a.anchorbghoveralpha,i.anchorbghoveralpha,r.anchorbghoveralpha,a.anchorborderhovercolor,a.borderhovercolor,i.anchorborderhovercolor,r.anchorborderhovercolor,a.anchorborderhoverthickness,a.borderhoverthickness,i.anchorborderhoverthickness,r.anchorborderhoverthickness,a.anchorborderhoveralpha,a.borderhoveralpha,i.anchorborderhoveralpha,r.anchorborderhoveralpha,a.hoverdip,a.anchorhoverdip,i.anchorhoverdip,r.anchorhoverdip,a.anchorhoverstartangle,i.anchorhoverstartangle,r.anchorhoverstartangle,a.hoversides,a.anchorhoversides,i.anchorhoversides,r.anchorhoversides,a.hoverradius,a.anchorhoverradius,i.anchorhoverradius,r.anchorhoverradius,i.plotfillhovercolor,r.plotfillhovercolor,l.plothovereffect,n)!==n,p.startAngle=(0,s.pluckNumber)(a.anchorhoverstartangle,i.anchorhoverstartangle,r.anchorhoverstartangle,u.startAngle),p.hoverColor=(0,s.pluck)(a.hovercolor,a.anchorhovercolor,i.hovercolor,a.anchorbghovercolor,i.anchorbghovercolor,r.anchorbghovercolor,i.anchorhovercolor,r.anchorhovercolor,r.plotfillhovercolor),p.hoverAlpha=(0,s.pluck)(a.hoveralpha,a.anchorhoveralpha,i.anchorhoveralpha,r.anchorhoveralpha,a.bghoveralpha,a.anchorbghoveralpha,i.anchorbghoveralpha,r.anchorbghoveralpha,i.hoveralpha,r.plotfillhoveralpha),p.anchorSides=(0,s.pluckNumber)(a.hoversides,a.anchorhoversides,i.anchorhoversides,r.anchorhoversides,u.sides),p.anchorRadius=(0,s.pluckNumber)(a.anchorhoverradius,i.anchorhoverradius,r.anchorhoverradius),p.isAnchorHoverRadius=p.anchorRadius,p.anchorRadius=(0,s.pluckNumber)(p.anchorRadius,u.radius+(d?2:0)),p.anchorScale=(0,s.pluck)(a.hoverscale,i.anchorscale,r.anchorscale),p.imageHoverScale=(0,s.pluckNumber)(a.anchorimagehoverScale,i.anchorimagehoverscale,r.anchorimagehoverscale,110),p.imageHoverAlpha=(0,s.pluckNumber)(a.anchorimagehoveralpha,i.anchorimaghoverealpha,r.anchorimagehoveralpha),p.anchorAlpha=(0,s.pluck)(a.anchorhoveralpha,a.hoveralpha,i.anchorhoveralpha,r.anchorhoveralpha,u.anchorAlpha),p.anchorColor=(0,s.getFirstColor)((0,s.pluck)(a.hovercolor,a.anchorhovercolor,a.hoverColor,a.anchorbghovercolor,i.anchorbghovercolor,i.anchorhovercolor,i.hovercolor,r.anchorbghovercolor,r.anchorhovercolor,r.plotfillhovercolor,u.bgColor)),p.anchorBgAlpha=(0,s.pluck)(a.bghoveralpha,a.anchorbghoveralpha,i.anchorbghoveralpha,r.anchorbghoveralpha,r.plotfillhoveralpha,u.bgAlpha),p.anchorBgAlpha=p.anchorBgAlpha*p.anchorAlpha/100,p.anchorBorderColor=(0,s.pluck)(a.borderhovercolor,a.anchorborderhovercolor,i.anchorborderhovercolor,r.anchorborderhovercolor,u.borderColor),p.anchorBorderAlpha=(0,s.pluck)(a.borderhoveralpha,a.anchorborderhoveralpha,i.anchorborderhoveralpha,r.anchorborderhoveralpha,p.anchorAlpha,u.borderAlpha),p.anchorBorderThickness=(0,s.pluckNumber)(a.borderhoverthickness,a.anchorborderhoverthickness,i.anchorborderhoverthickness,r.anchorborderhoverthickness,r.anchorBorderThickness,u.borderThickness),p.dip=(0,s.pluck)(a.hoverdip,a.anchorhoverdip,i.anchorhoverdip,r.anchorhoverdip,u.dip),p.anchorAnimation=(0,s.pluckNumber)(a.anchorhoveranimation,i.anchorhoveranimation,r.anchorhoveranimation,1)),p},a._hoverPlotAnchor=function(e,t){var a,i,n,o,r,l=this.getFromEnv("smartLabel"),s=this.getFromEnv("chart").getChildren("canvas")[0].getEffectiveDimensions(),c=s.top,h=c+s.height,u=e.config._Py,f=this.getFromEnv("animationManager"),m=this.getGraphicalElement("sharedAnchor"),v=e.graphics.element||m,b=e.graphics.label,x=e.config||{},k=x.anchorProps.anchorAlpha,S=x&&x.anchorProps.imageUrl,w=d&&S?e.graphics.element:e.graphics.image,L="image"===v.type,A=v.data("anchorRadius"),N=v.data("anchorHoverRadius"),F=v.data(y),E=v.data(C),_=b&&(b.data("isBelow")?1:-1)*(L?.5*(F.height-E.height):N-A),T=t===g?F:E,P=!0,D={path:T.path},I={fill:T.fill,"stroke-width":T["stroke-width"],stroke:T.stroke},M=b&&b.data("rotation")||"";u-3*(a=l.getOriSize(x.displayValue).height)/2+_<c?_=c-u+3*a/2:u+3*a/2+_>h&&(_=h-u-3*a/2),r={transform:"T0,"+(t===g?_:0)+M},f.setAnimationState(t===g?"mouseOver":"mouseOut"),w&&(n=w.data(y),o=w.data(C),(i=t===g?n:o).alpha*=.01),L?D.alpha*=.01:Object.assign(D,I),(t===g&&!N||t===p&&!A)&&(P=!1),f.setAnimation({el:v,label:"anchor",component:this,doNotRemove:!0,callback:function(){!P&&v.hide()},attr:P&&D}),P&&v.show(),w&&(f.setAnimation({el:w,label:"anchor",component:this,attr:P&&i}),P&&w.show()),(e.graphics&&e.graphics.element||m&&m.element)&&k&&b&&f.setAnimation({el:b,label:"label",component:this,doNotRemove:!0,attr:r})},a.drawLabel=function(e,t){var a,i,o,r,l,c,h,u,d,g,p,f,m=this.config,v=this.getFromEnv("chart"),b=v.config,x=this.getFromEnv("smartLabel"),y=v.config.dataLabelStyle,C=this.components.data,k=this.getFromEnv("paper"),w=this.getFromEnv("animationManager"),L="",A=b.rotatevalues?270:0,N=this.getContainer("labelGroup"),F=this.getState("visible"),E=C.length,_=this.getSkippingInfo&&this.getSkippingInfo(),T=_&&_.skippingApplied,P=_&&_.labelDraw||[],D=P.length,I=(0,s.pluckNumber)(e,0),M=(0,s.pluckNumber)(t,T?D:E),O=D===Math.abs(M-(I+1));for(h={"font-weight":y.fontWeight,"font-style":y.fontStyle,"font-family":y.fontFamily,"font-size":y.fontSize,"line-height":y.lineHeight},x.setStyle(h),d=I;d<M;d++)g=(r=(u=C[T&&O?P[d]:d])&&u.config)&&r.setValue,u!==n&&g!==n&&null!==g&&!0!==r.labelSkip?(a=u.graphics,L=r.displayValue,l=r.showValue,c=a.label,p=r.props.label.attr,S(L)&&l&&F?(o=r.props.label.attr.x,i=r.props.label.attr.y,p.transform=k.getSuggestiveRotation(A,o,i),a.label=c=w.setAnimation({el:c||"text",container:N,component:this,attr:p,label:"label"}),c.data("isBelow",r._valueBelowPoint),c.data("rotation",p.transform),c&&c.outlineText(m.showTextOutline,p.fill)):c&&(a.label=w.setAnimation({el:c,component:this,label:"label"}))):(r&&delete r.labelSkip,(f=u&&u.graphics)&&f.label&&(f.label=w.setAnimation({el:f.label,component:this})))},a.getAxisValuePadding=function(){return this.config.defaultPadding},a._hoverFunc=function(e,t,a,i){if(a)return this._hoverPlotAnchor(e,t,i)},a._onAnchorImageLoad=function(e){var t=this;return function(){var a=e._index;F(t,e),t.config.drawn?t.drawLabel(a,a+1):t.addJob("labelUpdateOnImageLoadID"+a,(function(){t.drawLabel(a,a+1)}),c.priorityList.label)}},t}(l["default"]);t["default"]=E},500:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(e){var t=e.component,a=t.components.data,i=t.getFromEnv("chartConfig").isstacked,n=t.getLinePath(a).getPathArr("detailed").bottom,o=t.getState("_total"),r=t.config._childIndex;if(n.length&&Array.isArray(n[0])){var l=n.length;n[0]=Object.assign([],n[1]),n[0][0]="M",n[l-1]=Object.assign([],n[l-2])}return[{initialAttr:{opacity:0,path:n},finalAttr:{opacity:1,path:e.attr.path},startEnd:{start:i?.5/o*r:0,end:i?.5/o*(r+1):.5},slot:"plot",hookFn:function(){this.attr({opacity:1})}}]},n=function(e){var t=e.component,a=t.components.data,i=t.getFromEnv("chartConfig").isstacked,n=t.getFromEnv("chartConfig").is3D,o=t.getLinePath(a,null,i||n?"base":"zero").getPathArr("top"),r=e.attr,l=t.getState("_total"),s=t.config._childIndex;return[{initialAttr:{opacity:0,path:o},finalAttr:{opacity:1,path:r.path},startEnd:{start:i?.5/l*s:0,end:i?.5/l*(s+1):.5},slot:"plot",hookFn:function(){this.attr({opacity:1})}}]},o=function(){return[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}]},r=function(e){return"label-group"===e.attr.name?[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}]:"plot-group"===e.attr.name?[{initialAttr:{opacity:0},finalAttr:{opacity:1},startEnd:{start:.5,end:1},slot:"plot"}]:[{initialAttr:{opacity:1},finalAttr:{opacity:1},slot:"final"}]},l=function(e){var t=e.component,a=t.components.data,i=t.getFromEnv("chartConfig").isstacked,n=t.getFromEnv("chartConfig").is3D,o=t.getLinePath(a,null,i||n?"base":"zero"),r=e.attr,l=t.getState("_total"),s=t.config._childIndex;return[{initialAttr:{opacity:0,path:o.getPathArr()},finalAttr:{opacity:1,path:r.path},startEnd:{start:i?.5/l*s:0,end:i?.5/l*(s+1):.5},slot:"plot",hookFn:function(){this.attr({opacity:1})}}]},s={"*.dataset.area":function(){return{"anchor.appearing":[{initialAttr:{opacity:0},finalAttr:{opacity:1},startEnd:{start:.5,end:1},slot:"plot"}],"anchor.updating":[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}],"anchor.disappearing":[{finalAttr:{opacity:0,"fill-opacity":0,"stroke-opacity":0},slot:"final"}],"line.appearing":l,"topBorderPath.appearing":n,"bottomPath.appearing":i,"label.appearing":[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}],"label.updating":o,"group.appearing":r,"*":null}}};t["default"]=s},501:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]={"*.dataset.line":function(){var e=this.getClip("canvas"),t=this.getClip("init");return{"anchor.appearing":function(){return[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}]},"anchor.updating":function(){return[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"plot"}]},"anchor.disappearing":function(){return[{finalAttr:{opacity:0,"fill-opacity":0,"stroke-opacity":0},slot:"plot"}]},"line.appearing":function(){return[{initialAttr:{"clip-rect":t},finalAttr:{"clip-rect":e},slot:"middle",callback:function(){this.attr({"clip-rect":null})}}]},"line.updating":function(){return[{initialAttr:{opacity:1,"clip-rect":t},finalAttr:{opacity:1,"clip-rect":e},slot:"plot"}]},"label.appearing":[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}],"group.appearing":function(e){return"label-group"===e.attr.name?[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}]:"plot-group"===e.attr.name?[{initialAttr:{opacity:0},finalAttr:{opacity:1},startEnd:{start:.5,end:1},slot:"plot"}]:[{initialAttr:{opacity:1},finalAttr:{opacity:1},slot:"final"}]},"*":null}}}},507:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t.__feedAxesRawData=c,t.__spaceManager=h,t.__postSpaceManagement=u,t["default"]=void 0;var n=i(a(198)),o=i(a(508)),r=i(a(481)),l=a(184),s=i(a(479));function c(){var e,t,a=this.config,i=this.getFromEnv("color-manager"),n=this.getFromEnv("dataSource"),o=n.chart,r=this.config.is3D,c=r?l.chartPaletteStr.chart3D:l.chartPaletteStr.chart2D;return e={isVertical:!0,isReverse:!1,isOpposit:(0,s["default"])(o.xaxisposition,"right"),outCanfontFamily:(0,l.pluck)(o.outcnvbasefont,o.basefont,"Verdana,sans"),outCanfontSize:(0,l.pluckFontSize)(o.outcnvbasefontsize,o.basefontsize,10),outCancolor:(0,l.pluck)(o.outcnvbasefontcolor,o.basefontcolor,i.getColor(c.baseFontColor)).replace(/^#? ([a-f0-9]+)/gi,"#$1"),axisNamePadding:o.xaxisnamepadding,maxLabelWidthPercent:o.maxlabelwidthpercent,minLabelWidthPercent:o.minlabelwidthpercent,axisValuePadding:o.labelpadding,axisNameFont:o.xaxisnamefont,axisNameFontSize:o.xaxisnamefontsize,axisNameFontColor:o.xaxisnamefontcolor,axisNameFontBold:o.xaxisnamefontbold,axisNameFontItalic:o.xaxisnamefontitalic,axisNameBgColor:o.xaxisnamebgcolor,axisNameBorderColor:o.xaxisnamebordercolor,axisNameAlpha:o.xaxisnamealpha,axisNameFontAlpha:o.xaxisnamefontalpha,axisNameBgAlpha:o.xaxisnamebgalpha,axisNameBorderAlpha:o.xaxisnameborderalpha,axisNameBorderPadding:o.xaxisnameborderpadding,axisNameBorderRadius:o.xaxisnameborderradius,axisNameBorderThickness:o.xaxisnameborderthickness,axisNameBorderDashed:o.xaxisnameborderdashed,axisNameBorderDashLen:o.xaxisnameborderdashlen,axisNameBorderDashGap:o.xaxisnameborderdashgap,axisNameWidth:o.xaxisnamewidth,useEllipsesWhenOverflow:o.useellipseswhenoverflow,divLineColor:(0,l.pluck)(o.vdivlinecolor,o.divlinecolor,i.getColor(c.divLineColor)),divLineAlpha:(0,l.pluck)(o.vdivlinealpha,o.divlinealpha,r?i.getColor("divLineAlpha3D"):i.getColor("divLineAlpha")),divLineThickness:(0,l.pluckNumber)(o.vdivlinethickness,o.divlinethickness,1),divLineIsDashed:Boolean((0,l.pluckNumber)(o.vdivlinedashed,o.vdivlineisdashed,o.divlinedashed,o.divlineisdashed,0)),divLineDashLen:(0,l.pluckNumber)(o.vdivlinedashlen,o.divlinedashlen,4),divLineDashGap:(0,l.pluckNumber)(o.vdivlinedashgap,o.divlinedashgap,2),showAlternateGridColor:0,alternateGridColor:(0,l.pluck)(o.alternatehgridcolor,i.getColor("altHGridColor")),alternateGridAlpha:(0,l.pluck)(o.alternatehgridalpha,i.getColor("altHGridAlpha")),numDivLines:o.numvdivlines,labelFont:o.labelfont,labelFontSize:o.labelfontsize,labelFontColor:o.labelfontcolor,labelAlpha:o.labelalpha,labelFontBold:o.labelfontbold,labelFontItalic:o.labelfontitalic,labelBdrColor:o.labelbordercolor,labelBdrAlpha:o.labelborderalpha,labelLink:o.labellink,labelBgColor:o.labelbgcolor,labelBgAlpha:o.labelbgalpha,labelBdrThickness:o.labelborderthickness,labelBdrPadding:o.labelborderpadding,labelBdrRadius:o.labelborderradius,labelBdrDashed:o.labelborderdashed,labelBdrDashLen:o.labelborderdashlen,labelBdrDashGap:o.labelborderdashgap,axisName:o.xaxisname,axisMinValue:o.xaxisminvalue,axisMaxValue:o.xaxismaxvalue,setAdaptiveMin:o.setadaptivexmin,adjustDiv:o.adjustvdiv,labelDisplay:o.labeldisplay,showLabels:o.showlabels,rotateLabels:o.rotatelabels,slantLabel:(0,l.pluckNumber)(o.slantlabels,o.slantlabel),labelStep:(0,l.pluckNumber)(o.labelstep,o.xaxisvaluesstep),showAxisValues:(0,l.pluckNumber)(o.showxaxisvalues,o.showxaxisvalue),showLimits:o.showvlimits,showDivLineValues:(0,l.pluckNumber)(o.showvdivlinevalues,o.showvdivlinevalues),zeroPlaneColor:o.vzeroplanecolor,zeroPlaneThickness:(0,l.pluckNumber)(o.vzeroplanethickness,o.vdivlinethickness,2),zeroPlaneAlpha:(0,l.pluckNumber)(o.vzeroplanealpha,o.vdivlinealpha,a.zeroplanealpha),showZeroPlaneValue:o.showvzeroplanevalue,trendlineColor:o.trendlinecolor,trendlineToolText:o.trendlinetooltext,trendlineThickness:o.trendlinethickness,rotateAxisName:(0,l.pluckNumber)(o.rotatexaxisname,1),trendlineAlpha:o.trendlinealpha,showTrendlinesOnTop:o.showtrendlinesontop,showAxisLine:r?0:(0,l.pluckNumber)(o.showxaxisline,o.showaxislines,o.drawAxisLines,0),axisLineThickness:(0,l.pluckNumber)(o.xaxislinethickness,o.axislinethickness,1),axisLineAlpha:(0,l.pluckNumber)(o.xaxislinealpha,o.axislinealpha,100),axisLineColor:(0,l.pluck)(o.xaxislinecolor,o.axislinecolor,"#000000")},(t={isVertical:!1,isReverse:!1,isOpposit:(0,s["default"])(o.yaxisposition,"top"),outCanfontFamily:(0,l.pluck)(o.outcnvbasefont,o.basefont,"Verdana,sans"),outCanfontSize:(0,l.pluckFontSize)(o.outcnvbasefontsize,o.basefontsize,10),outCancolor:(0,l.pluck)(o.outcnvbasefontcolor,o.basefontcolor,i.getColor(c.baseFontColor)).replace(/^#? ([a-f0-9]+)/gi,"#$1"),axisNamePadding:o.yaxisnamepadding,axisValuePadding:o.yaxisvaluespadding,axisNameFont:o.yaxisnamefont,axisNameFontSize:o.yaxisnamefontsize,axisNameFontColor:o.yaxisnamefontcolor,axisNameFontBold:o.yaxisnamefontbold,axisNameFontItalic:o.yaxisnamefontitalic,axisNameBgColor:o.yaxisnamebgcolor,axisNameBorderColor:o.yaxisnamebordercolor,axisNameAlpha:o.yaxisnamealpha,axisNameFontAlpha:o.yaxisnamefontalpha,axisNameBgAlpha:o.yaxisnamebgalpha,axisNameBorderAlpha:o.yaxisnameborderalpha,axisNameBorderPadding:o.yaxisnameborderpadding,axisNameBorderRadius:o.yaxisnameborderradius,axisNameBorderThickness:o.yaxisnameborderthickness,axisNameBorderDashed:o.yaxisnameborderdashed,axisNameBorderDashLen:o.yaxisnameborderdashlen,axisNameBorderDashGap:o.yaxisnameborderdashgap,axisNameWidth:o.yaxisnamewidth,useEllipsesWhenOverflow:o.useellipseswhenoverflow,axisName:o.yaxisname,divLineColor:(0,l.pluck)(o.divlinecolor,i.getColor(c.divLineColor)),divLineAlpha:(0,l.pluck)(o.divlinealpha,r?i.getColor("divLineAlpha3D"):i.getColor("divLineAlpha")),divLineThickness:(0,l.pluckNumber)(o.divlinethickness,1),divLineIsDashed:Boolean((0,l.pluckNumber)(o.divlinedashed,o.divlineisdashed,0)),divLineDashLen:(0,l.pluckNumber)(o.divlinedashlen,4),divLineDashGap:(0,l.pluckNumber)(o.divlinedashgap,2),showAlternateGridColor:(0,l.pluckNumber)(o.showalternatevgridcolor,1),alternateGridColor:(0,l.pluck)(o.alternatevgridcolor,i.getColor("altVGridColor")),alternateGridAlpha:(0,l.pluck)(o.alternatevgridalpha,i.getColor("altVGridAlpha")),numDivLines:o.numdivlines,axisMinValue:o.yaxisminvalue,axisMaxValue:o.yaxismaxvalue,setAdaptiveMin:o.setadaptiveymin,adjustDiv:o.adjustdiv,labelStep:o.yaxisvaluesstep,showAxisValues:(0,l.pluckNumber)(o.showyaxisvalues,o.showyaxisvalue),showLimits:(0,l.pluckNumber)(o.showyaxislimits,o.showlimits,this.showLimits),showDivLineValues:(0,l.pluckNumber)(o.showdivlinevalues,o.showdivlinevalue),zeroPlaneColor:o.zeroplanecolor,zeroPlaneThickness:(0,l.pluckNumber)(o.zeroplanethickness,o.divlinethickness,2),zeroPlaneAlpha:(0,l.pluckNumber)(o.zeroplanealpha,o.divlinealpha,a.zeroplanealpha),showZeroPlaneValue:o.showzeroplanevalue,trendlineColor:o.trendlinecolor,trendlineToolText:o.trendlinetooltext,trendlineThickness:o.trendlinethickness,trendlineAlpha:o.trendlinealpha,isTrendZone:0,showTrendlinesOnTop:o.showtrendlinesontop,showAxisLine:r?0:(0,l.pluckNumber)(o.showyaxisline,o.showaxislines,o.drawAxisLines,0),axisLineThickness:(0,l.pluckNumber)(o.yaxislinethickness,o.axislinethickness,1),axisLineAlpha:(0,l.pluckNumber)(o.yaxislinealpha,o.axislinealpha,100),axisLineColor:(0,l.pluck)(o.yaxislinecolor,o.axislinecolor,"#000000"),numberFormatterFn:"yAxis",showZeroPlaneOnTop:a.showzeroplaneontop,forceTrendBelow:!!a.is3D,labelFont:o.yaxisvaluefont,labelFontSize:o.yaxisvaluefontsize,labelFontColor:o.yaxisvaluefontcolor,labelAlpha:o.yaxisvaluealpha,labelFontBold:o.yaxisvaluefontbold,labelFontItalic:o.yaxisvaluefontitalic,labelBdrColor:o.yaxisvaluebordercolor,labelBdrAlpha:o.yaxisvalueborderalpha,labelBgAlpha:o.yaxisvaluebgalpha,labelLink:o.yaxisvaluelink,labelBgColor:o.yaxisvaluebgcolor,labelBdrThickness:o.yaxisvalueborderthickness,labelBdrPadding:o.yaxisvalueborderpadding,labelBdrRadius:o.yaxisvalueborderradius,labelBdrDashed:o.yaxisvalueborderdashed,labelBdrDashLen:o.yaxisvalueborderdashlen,labelBdrDashGap:o.yaxisvalueborderdashgap}).vtrendlines=n.trendlines,e.trendlines=n.vtrendlines,a.isstacked&&(t.isPercent=(0,l.pluckNumber)(a.stack100percent,0)),{xAxisConf:[e],yAxisConf:[t]}}function h(){var e,t,a,i,n,o,r,s,c,h,u,d,g,p,f,m,v,b,x,y=this.config,C=this.getChildren(),k=C.yAxis&&C.yAxis[0],S=C.xAxis&&C.xAxis||[],w=l.preDefStr.POSITION_BOTTOM,L=y.legendposition,A=y.xDepth,N=y.yDepth,F=C.canvas[0],E=y.canvasBgDepth,_=y.canvasBaseDepth,T=y.canvasBasePadding,P=C.canvas[0].config.canvasBorderWidth,D=y.realTimeConfig&&y.realTimeConfig.showRTValue,I=y.borderWidth,M=y.canvasMarginTop,O=y.canvasMarginBottom,R=y.canvasMarginLeft,V=y.canvasMarginRight,B=y.minCanvasHeight,G=y.minCanvasWidth,H=y.minChartWidth,z=y.minChartHeight,W=y.height,j=y.width,U=!1,q=!1,Y=y.origCanvasTopMargin,X=y.origCanvasBottomMargin,K=y.origCanvasLeftMargin,Z=y.origCanvasRightMargin;y.canvasWidth-2*I<H&&(d=(y.canvasWidth-H)/2),y.canvasHeight-2*I<z&&(u=(y.canvasHeight-z)/2),this._allocateSpace({top:u||I,bottom:u||I,left:d||I,right:d||I}),a=S[0],this._resetViewPortConfig&&this._resetViewPortConfig(),this._setAxisScale&&this._setAxisScale(),e=.7*y.availableWidth,y.yAxisSpaceAllocation=v=a&&a.placeAxis(e),a&&this._allocateSpace(v),f=.225*y.availableHeight,p=this._manageActionBarSpace&&this._manageActionBarSpace(f)||{},this._allocateSpace(p),this._manageLegendSpace&&this._manageLegendSpace(),t=L===w?.6*y.availableHeight:.6*y.availableWidth,N&&(this._allocateSpace({left:N}),y.shift=A+T+_),E&&this._allocateSpace({top:E}),y.canvasWidth-2*P<G&&(m=(y.canvasWidth-G)/2),this._allocateSpace({left:m||P,right:m||P}),G>j-R-V&&(q=!0,i=y.canvasWidth-G,x=R+V,R=y.canvasMarginLeft=i*R/x,V=y.canvasMarginRight=i*V/x),r=R>y.canvasLeft?R-y.canvasLeft:0,s=V>j-y.canvasRight?V+y.canvasRight-j:0,this._allocateSpace({left:r,right:s}),this._allocateSpace({left:_}),q&&(x=K+Z,(h=y.canvasWidth)>G&&(r=(i=h-G)*K/x,s=i*Z/x),this._allocateSpace({left:r,right:s})),y.actualCanvasMarginRight=s,y.actualCanvasMarginBottom=o,this._manageChartMenuBar(t),t=.2*y.availableHeight,y.sumValueSpace=this._getSumValueSpace(t),this._allocateSpace(y.sumValueSpace),t=.3*y.availableHeight,y.realtimeEnabled&&(D?this._allocateSpace(this._realTimeValuePositioning(t)):this._hideRealTimeValue()),t=.6*y.availableHeight,y.xAxisSpaceAllocation=b=k&&k.placeAxis(t),k&&this._allocateSpace(b),t=.3*y.availableHeight,this._manageScrollbarPosition&&this._manageScrollbarPosition(t),y.canvasHeight-2*P<B&&(g=(y.canvasHeight-B)/2),this._allocateSpace({top:g||P,bottom:g||P}),B>W-M-O&&(U=!0,i=y.canvasHeight-B,x=M+O,M=y.canvasMarginTop=i*M/x,O=y.canvasMarginBottom=i*O/x),n=M>y.canvasTop?M-y.canvasTop:0,o=O>W-y.canvasBottom?O+y.canvasBottom-W:0,this._allocateSpace({top:n,bottom:o}),U&&(x=Y+X,(c=y.canvasHeight)>B&&(n=(i=c-B)*Y/x,o=i*X/x),this._allocateSpace({top:n,bottom:o})),y.actualCanvasMarginTop=n,y.actualCanvasMarginLeft=r,F.setDimension({top:y.canvasTop,left:y.canvasLeft,width:y.canvasWidth,height:y.canvasHeight})}function u(){var e,t,a,i,n=this.config,o=this.getChildren(),r=o.xAxis&&o.xAxis[0],l=o.yAxis&&o.yAxis[0],s=o.legend&&o.legend[0],c=n.xDepth||0,h=o.canvas[0].config,u=h.canvasBorderWidth,d=h.canvasPadding,g=h.canvasTop,p=h.canvasLeft,f=g-u,m=g+h.canvasHeight+u,v=p-(n.shift||0)-u,b=p+h.canvasWidth+u+n.sumValueSpace.right+(r.isScrollEnabled()&&n.shift||0);l&&this._allocateXAxisLabelSpace(l),e=h.canvasPaddingLeft,t=h.canvasPaddingRight,a=h.canvasPaddingTop,i=h.canvasPaddingBottom,l&&l.setAxisDimention({x:h.canvasLeft+e,y:l.config.isOpposit?f:m,opposite:l.config.isOpposit?m:f,axisLength:h.canvasWidth-e-t}),r&&r.setAxisDimention({x:r.config.isOpposit?b:v,y:g+c+Math.max(a,d),opposite:r.config.isOpposit?v:b,axisLength:h.canvasHeight-c-Math.max(a,d)-Math.max(i,d)}),s&&s.postSpaceManager(),this.allocateDimensionOfChartMenuBar()}var d=function(e){function t(){return e.apply(this,arguments)||this}(0,n["default"])(t,e);var a=t.prototype;return a.getName=function(){return"MSBarCartesian"},t.getName=function(){return"MSBarCartesian"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this),this.config.enablemousetracking=!0},a._feedAxesRawData=function(){return c.call(this)},a._spaceManager=function(){h.call(this)},a._postSpaceManagement=function(){u.call(this)},a.getDSdef=function(){return r["default"]},a.getDSGroupdef=function(){},t}(o["default"]);t["default"]=d},508:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(405)),r=a(509),l=i(a(510)),s=i(a(511)),c=function(e){function t(){var t;return(t=e.call(this)||this).registerFactory("dataset",l["default"],["vCanvas"]),t.registerFactory("legend",s["default"]),t}(0,n["default"])(t,e),t.getName=function(){return"MSCartesian"};var a=t.prototype;return a.getName=function(){return"MSCartesian"},a.getType=function(){return"chartAPI"},a._manageLegendSpace=function(){r._manageLegendSpace.call(this)},a.manageGradientLegendSpace=function(e){return r.manageGradientLegendSpace.call(this,e)},t}(o["default"]);t["default"]=c},509:function(e,t,a){"use strict";t.__esModule=!0,t._manageLegendSpace=function(){var e,t,a,n,o=this.config,r=this.getChildren("legend")&&this.getChildren("legend")[0],l=this.getChildren("gLegend")&&this.getChildren("gLegend")[0],s=this.getFromEnv("dataSource").colorrange,c=o.hasLegend,h={},u=this.hasGradientLegend,d=this.getFromEnv("dataSource").chart,g=(0,i.pluckNumber)(d.mapbycategory,0);u&&s&&(0,i.pluckNumber)(s.gradient)&&!g?(e=l.conf,u=!0,o.gLegendEnabled=!0,n=.5,t=e.legendPosition):(e=r&&r.config,u=!1,o.gLegendEnabled=!1,t=e&&e.legendPos,n=t===i.POSITION_RIGHT?.8:.4);a=t===i.POSITION_RIGHT?o.availableWidth*n:o.availableHeight*n;u?h=this.manageGradientLegendSpace(a):!1!==c&&r&&!r.getState("removed")&&(h=r&&r._manageLegendPosition(a));this._allocateSpace({bottom:h&&h.bottom||0,right:h&&h.right||0})},t.manageGradientLegendSpace=function(e){var t,a,n,o,r=this.config,l=this.getFromEnv("gLegend"),s=l&&l.conf;r.gLegendPadding=(0,i.pluckNumber)(this.getFromEnv("chart-attrib").legendpadding,10),n=Math.min(r.gLegendPadding,.5*e),s?(t=s.legendPosition,o=l.getLogicalSpace(e),a=t===i.POSITION_BOTTOM?{bottom:(o.height||0)+n}:{right:(o.width||0)+n}):a={bottom:0,right:0};return a};var i=a(184)},510:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=function(e){var t,a,n,o,r=e.getFromEnv("dataSource").dataset,l=e.getChildren().canvas[0],s=t=l.getChildren("vCanvas")[0],c=e.config.defaultDatasetType||"";if(!r)return void e.setChartMessage();(n=e.getDSGroupdef())&&((0,i.componentFactory)(t,n,"datasetGroup_"+c,1,[r]),o=t.getChildren("datasetGroup_"+c));o&&(s=o[0]),a=e.getDSdef(),(0,i.datasetFactory)(s,a,"dataset",r.length,r)};var i=a(184)},511:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=function(e){var t;(0,n.componentFactory)(e,o["default"],"legend"),(t=e.getChildren("legend")[0]).configure(),e.addToEnv("legend",t),e.config.showLegend||t.remove()};var n=a(184),o=i(a(512))},512:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(201)),o=i(a(198)),r=a(184),l=a(199),s=i(a(513)),c=a(192),h=a(293),u=i(a(515)),d=a(196),g={left:r.POSITION_START,right:r.POSITION_END,center:r.POSITION_MIDDLE},p=Math,f=p.min,m=p.max,v=p.floor,b=p.ceil,x=r.preDefStr.NORMAL,y={fontWeight:{1:r.preDefStr.BOLD,0:x},fontStyle:{1:"italic",0:x},textDecoration:{1:"underline",0:r.preDefStr.noneStr}},C=function(e){var t,a;return{dragstart:function(){t=e.config.xL||e.config.xPos,a=e.config.yL||e.config.yPos},dragmove:function(i){var n,o,r=i.originalEvent.data[0],l=i.originalEvent.data[1],s=e.config,c=e.getFromEnv("chartConfig"),h=(s.borderWidth||0)+2;n=f(m(t+r,h),c.width-s.width-h),o=f(m(a+l,h),c.height-s.height-h),s.xPos=s.xL=n,s.yPos=s.yL=o,e.addJob("draw",e.dragDraw,d.priorityList&&d.priorityList.draw)}}};(0,c.addDep)({name:"legendAnimation",type:"animationRule",extension:u["default"]});var k=function(e){function t(){var t;t=e.call(this)||this;var a=(0,n["default"])(t);return a._stateCosmetics={},a._legendState=[],a.dragDraw=function(){a.draw()},a.drawScroll=function(){a.createItemGroup()},a.config.handlers=C(a),t}(0,o["default"])(t,e);var a=t.prototype;return a.createItem=function(e){var t;return t=new s["default"],this.attachChild(t,"legendItem"),t.setLinkedItem("owner",e),t.addEventListener("mouseover",(function(){t.setLegendState("hover",!0)})),t.addEventListener("mouseout",(function(){t.removeLegendState("hover")})),t.getId()},a.getItem=function(e){var t=this.getChildren().legendItem;if(void 0===e)return!1;if(t)for(var a=0;a<t.length;a++)if(t[a].getId()===e)return t[a]},a.getSortedLegendItems=function(){var e,t,a=this.getChildren("legendItem")||[],i=this.config.reverselegend,n={},o=[];for(e=0,t=a.length;e<t;e++)void 0===a[e].config.index?n[t+e]=a[e]:n[a[e].config.index]=a[e];return Object.keys(n).sort((function(e,t){return i?t-e:e-t})).forEach((function(e){o.push(n[e])})),o},a.disposeItem=function(e){var t=this.getItem(e);t&&t.remove()},a.getName=function(){return"legend"},a.getType=function(){return"legend"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;t.enabled=!0,t.symbolWidth=12,t.borderRadius=1,t.lastScrollPos=0,t.oriSymbolPadding=3,t.textPadding=4,t.scrollY=0,t.backgroundColor="#ffffff",t.initialItemX=0,t.title={text:r.BLANKSTRING,x:0,y:0,padding:2},t.scroll={},t.itemStyle={}},a.createLegendGroup=function(){var e,t=this.config,a=this.getFromEnv("chart"),i=a.config,n=this.getFromEnv("animationManager"),o=.5*(t.borderWidth||0)+2,r=this.getContainer("legendGroup");t.xL&&(t.xL=f(m(t.xL,o),i.width-t.width-o)),t.yL&&(t.yL=f(m(t.yL,o),i.height-t.height-o)),e=n.setAnimation({el:r||"group",attr:{name:"legendGroup",transform:["T",t.xL||t.xPos,t.yL||t.yPos]},container:a.getChildContainer("legendGroup"),component:this}),r||this.addContainer("legendGroup",e)},a.draw=function(){this.createLegendGroup(),this.drawLegendBox(),this.createItemGroup(),this.drawCaption(),this.createScrollGroup(),this.decideScroll()},a.decideScroll=function(){var e=this.config;e.scroll.enabled?this.createScrollBar():e.hasScroll&&(this.getChildren("legendScrollBar")[0].remove(),e.hasScroll=!1)},a.createItemGroup=function(){var e,t=this.getFromEnv("animationManager"),a=this.getContainer("legendGroup"),i=this.getChildContainer("itemGroup"),n=(0,r.pluckNumber)(this.config.padding,4),o=.5*n,l=Math.max(this.config.height-n,0),s=","+this.config.width+","+l;return e=t.setAnimation({el:i||"group",attr:{name:"item",transform:["T",0,this.config.scrollY||0]},container:a,component:this}),i||this.addChildContainer("itemGroup",e),this.config.scroll.enabled?e.attr({"clip-rect":"0,"+o+s}):e.attr({"clip-rect":null}),e},a.createScrollGroup=function(){var e=this.getFromEnv("animationManager"),t=this.getChildContainer("scrollGroup"),a=this.getContainer("legendGroup");this.config.scroll.enabled&&!this.getGraphicalElement("scrollbarContainer")&&this.addGraphicalElement("scrollbarContainer",e.setAnimation({el:t||"group",attr:{name:"scrollGroup"},container:a,component:this,label:"scrollbar"}))},a.createScrollBar=function(){var e,t,a,i,n,o,l=this,s=l.config,c=l.getFromEnv("chart-attrib"),u=l.getChildren("legendScrollBar")&&l.getChildren("legendScrollBar")[0],g=s.borderWidth||0,p=.5*g,f=(0,r.pluckNumber)(s.padding,4),m=s.width,v=s.height;e={conf:{isHorizontal:!1},handler:{scroll:function(e){s.lastScrollPos=e,s.scrollY=(a-s.totalHeight)*e,l.addJob("scrollDraw",l.drawScroll,d.priorityList&&d.priorityList.draw)},mousedown:function(e){e.preventDefault(),e.stopPropagation()}}},c.legendscrollbgcolor&&(e.conf.color=(0,r.convertColor)(c.legendscrollbgcolor)),u||(u=l.attachChild(new h.ScrollBar,"legendScrollBar"),this.config.hasScroll=!0),u.configure(e.conf),u.attachEventHandlers(e.handler),t=u.config,a=Math.max(v-f,0),i=m-u.getLogicalSpace().width-g+.5*f,n=p,o=Math.max(v-g,0),t.scrollRatio=(a+f)/s.totalHeight,t.startPercent=0,t.scrollPosition=s.lastScrollPos,t.parentLayer=l.getChildContainer("scrollGroup"),u.setDimension({x:i,y:n,height:o})},a.drawCaption=function(){var e,t,a,i,n=this.getChildContainer("itemGroup"),o=this.getGraphicalElement("caption"),l=this.getFromEnv("animationManager"),s=this.config,c=(0,r.pluckNumber)(s.padding,4),h=s.scroll.enabled,u=s.width;if(s.title&&s.title.text!==r.BLANKSTRING&&s.validLegendItem){switch(s.title.align){case r.POSITION_START:a=c;break;case r.POSITION_END:a=u-c-(h?10:0);break;default:a=.5*u}t=s.title.style,e={text:s.title.text,title:s.title.originalText||r.BLANKSTRING,x:a,y:c,fill:s.title.style.color,direction:s.textDirection,"line-height":t.lineHeight,"vertical-align":r.POSITION_TOP,"text-anchor":s.title.align,opacity:1},i={"font-weight":t.fontWeight,"font-style":t.fontStyle,"font-family":t.fontFamily,"font-size":t.fontSize},o&&o.show(),o?l.setAnimation({el:o,attr:e,component:this}):(o=l.setAnimation({el:"text",attr:e,component:this,container:n}),(o=this.addGraphicalElement("caption",o)).css(i)),this.getFromEnv("toolTipController").enableToolTip(o,s.title.originalText)}else o&&l.setAnimation({el:o,component:this,doNotRemove:!0,callback:function(){o.hide()}})},a.drawLegendBox=function(){var e,t=this.getFromEnv("animationManager"),a=this.config,i=this.getContainer("legendGroup"),n=a.width,o=this.getGraphicalElement("box"),r=a.height,l=a.borderRadius,s=a.backgroundColor,c=a.borderColor,h=a.borderAlpha,u=a.backgroundAlpha,d=a.borderWidth||0;return e=t.setAnimation({el:o||"rect",attr:{x:0,y:0,width:n,height:r,r:l,stroke:c,"stroke-width":d,fill:s||"none","stroke-opacity":h/100,"fill-opacity":u/100,cursor:a.legendAllowDrag?"move":"default"},container:i,component:this,label:"legendGroup"}),o||(this.addGraphicalElement("box",e),e.shadow(a.shadow)),e},a.getPosition=function(){var e,t,a,i,n,o=this.getFromEnv("chart").config,l=this.config,s=o.height-o.canvasBottom,c=o.canvasLeft,h=o.canvasWidth,u=l.chartMarginLeft||0,d=l.chartMarginRight||0,g=l.chartMarginBottom||0,p=o.actionBarHeight||0,f=l.actualCanvasMarginLeft||0,m=o.actualCanvasMarginBottom||0,v=o.actualCanvasMarginRight||0,b=l.alignLegendWithCanvas,x=o.height,y=o.canvasTop,C=l.width||0,k=l.height||0,S=o.borderWidth,w=o.oriCanvasLeft,L=o.oriTopSpace,A=o.oriBottomSpace,N=0,F=l.borderWidth||0;return l.legendPos===r.POSITION_RIGHT&&(l.align=r.POSITION_RIGHT,l.verticalAlign=r.POSITION_MIDDLE,n=l.layout="vertical"),n?(e=o.width-d-v-C-S,t=(N=(0,r.pluckNumber)(L,y))+.5*(x-(0,r.pluckNumber)(A,s)-N-k)+(l.y||0)):(a=o.width-(u+f+(d+v)),i=b?h-C:a-C,e=(b?(0,r.pluckNumber)(w,c):u+f)+i/2,t=x-k-m-g-p),(0,r.crispBound)(e,t,C,k,F)},a.setTranslation=function(e,t){var a=this.config;a._translateX=e,a._translateY=t,a.translate="t"+e+","+t},a.allocatePosition=function(){var e,t=this.config;e=t.translate?(0,r.crispBound)(t._translateX,t._translateY,t.width,t.height,t.borderWidth):this.getPosition(),t.xPos=e.x,t.yPos=e.y,t.width=e.width,t.height=e.height},a._manageLegendPosition=function(e){var t=this.config,a=t.legendPos;return t.padding=4,t.textPadding=4,a===r.POSITION_RIGHT?this._placeLegendBlockRight(e):this._placeLegendBlockBottom(e)},a.setDimension=function(e){var t,a,i,n,o,l,s,c,h,u,d,g,p,x,y,C,k,S,w,L,A,N,F,E,_=this.config,T=this.getSortedLegendItems(),P=T.length,D=e.width,I=e.height,M=I,O=0,R=0,V=0,B=0,G=0,H=0,z=0,W=0,j=[],U=!1,q=_.padding,Y=_.textPadding,X=this.getFromEnv("smartLabel"),K=this.getStateCosmetics("default"),Z=parseInt(K.text["font-size"],10)||10,J=0,$=0,Q=_.title,ee=Q.padding,te=_.minimiseWrappingInLegend,ae=_.legendPadding,ie=_.legendScale,ne=_.alignLegendWithCanvas,oe=_.numColumns,re=_.oriSymbolPadding,le=D;for(x={width:2*q,height:2*q},(p=Z+1)<=0&&(p=1),D=Math.max(D-2*q,0),re*=ie,(p=f(p*=ie,D))<=0&&(re=p=0),_.symbolWidth=p,_.textPadding=4,_.legendHeight=g=p+2*re,_.rowHeight=l=m(parseInt(K.text["line-height"],10)||12,g),o=Y+re+q,X.setStyle((0,r.extend2)({},K.text)),y=X.getOriSize(r.TESTSTR).height,s=ae+_.borderWidth/2+1,s=m(f(s,I-y-8),0),ae=.05*l,_.initialItemY=0,_.initialItemX=0,C=0;C<P;C+=1)a=t=(n=T[C]).config||(n.config={}),(i=t.name=(0,r.parseUnsafeString)(a.label))===r.BLANKSTRING||0===a.enabled||!1===a.enabled||n.getState("removed")?t.enabled=0:(t.enabled=1,V+=1,A=!0,N=X.getOriSize(i),O=m(O,N.width),H=m(H,f(N.height,M)),R+=N.width);if(_.validLegendItem=A,B=R/V,R+=(E=g+ae+Y+re+2*q)*V,_.x=!ne&&R>le?0:_.x,A){for(B+=E,O+=E,oe>0&&V<oe&&(oe=V),R<=D&&(oe<=0||oe===V)?(oe=V,G=B=R/V,U=!0,H>l&&(W=(H-l)/2,l=H)):oe>0&&(G=D/oe)>B?G>O&&(G=O):D>O&&(te||1.5*B>O)?(V<(oe=v(D/O))&&(oe=V),G=O):D>=2*B?(V<(oe=v(D/B))&&(oe=V),(G=v(D/oe))>O&&(G=O)):(oe=1,G=D),_.itemWidth=G,(c=b(G-E))<0&&(re=c=Y=0),_.symbolPadding=re,_.textPadding=Y,_.width=Math.max(G*oe-ae,0),Q.oriText!==r.BLANKSTRING&&(X.setStyle(Q.style),N=X.getSmartText(Q.oriText,D,M),Q.text=N.text,N.tooltext&&(Q.originalText=N.tooltext),d=N.width+2*q,_.width<d&&(_.initialItemX=(d-_.width)/2,_.width=d),_.initialItemY=z=N.height+ee),X.setStyle((0,r.extend2)({},K.text)),C=0;C<P;C+=1)if(0!==(t=(n=T[C]).config).enabled){if(0===c&&(j[$]=!0,t.name=r.BLANKSTRING,k=1,w=parseInt($/oe,10),S=$%oe,t._legendX=S*G,t._legendY=w*l+2*q,t._legendH=k*l,t._totalWidth=p+re),U)(N=X.getOriSize(t.name)).height<l&&(t._legendTestY=(l-N.height)/2),t._markerYGutter=W,t._legendX=J,t._legendY=2*q,t._legendH=l,t._totalWidth=p+o+N.width,J+=N.width+E;else{for(N=X.getSmartText(t.name,c,M),t.name=N.text,N.tooltext&&(t.originalText=N.tooltext);!0===j[$];)$+=1;for(h=N.height/l,u=$,k=0;k<h;k+=1,u+=oe)j[u]=!0;N.height<l&&(t._legendTestY=(l-N.height)/2),w=parseInt($/oe,10),S=$%oe,t._legendX=S*G,t._legendY=w*l+2*q,t._legendH=k*l,t._totalWidth=p+o+N.width}$++}L=U?1:b(j.length/oe),x.height+=L*l+z,_.height=_.totalHeight=x.height,_.rowHeight=l,_.legendNumColumns=oe,_.height-2*re>I?(_.height=I,(F=_.scroll||(_.scroll={})).enabled=!0,F.flatScrollBars=_.flatScrollBars,F.scrollBar3DLighting=_.scrollBar3DLighting,_.width=_.width+12>D?_.width:_.width+12):_.scroll.enabled=!1,s+=_.height,_.isActive=!0,_.enabled=!0}else _.enabled=!1,_.width=0,s=0;return{width:D,height:s}},a._placeLegendBlockBottom=function(e){var t,a,i,n,o,l=this.getFromEnv("chart"),s=l.config,c=l.getFromEnv("chartWidth"),h=l.getFromEnv("chartHeight"),u=s.canvasLeft,d=s.width-(s.canvasRight||0),g=l.getFromEnv("smartLabel"),p=this.config,f=p.chartMarginLeft,m=p.chartMarginRight,v=p.chartMarginTop,b=p.alignLegendWithCanvas,x=this.getSortedLegendItems().length,y=p.legendPadding,C=s.canvasMarginRight,k=s.canvasMarginLeft,S=l.getChildren("yAxis"),w=S&&S[0].config.isVertical?S:l.getChildren("xAxis"),L=w&&w[0],A=w&&w[1],N=L&&L.config||{},F=A&&A.config||{},E=N.nameMaxW,_=F.nameMaxW,T=N.name&&N.name.style||{},P=F.name&&F.name.style||{},D=N.axisName||r.BLANKSTRING,I=F.axisName||r.BLANKSTRING,M=s.canvasWidth-s.canvasMarginLeft-s.canvasMarginRight;return p.paddingBottom=s.height-s.canvasBottom,g.useEllipsesOnOverflow(s.useEllipsesWhenOverflow),g.setStyle(T),n=g.getOriSize(D),g.setStyle(P),o=g.getOriSize(I),M<y&&(p.padding=y=M=0),(n||o)&&(a=(0,r.pluckNumber)(n.height,0)>(0,r.pluckNumber)(o.height,0)?(i=E)&&n.width:(i=_)&&o.width),M=b?M:c-(a+v>h-e?2*i+m+f+C+k:m+f+k+C),p.showLegend&&0!==x?(p.x=(u-f-d+m)/2,t=this.setDimension({width:M,height:e}).height):(t=0,p.height=0,p.width=0),{bottom:t,right:0}},a._placeLegendBlockRight=function(e){var t,a,i,n,o,l,s,c,h,u,d=e,g=this.config,p=this.getFromEnv("chart"),v=p.config,b=p.getFromEnv("smartLabel"),x=p.getChildren("canvas")&&p.getChildren("canvas")[0].config.canvasBorderThickness||0,y=g.textPadding,C=g.title.padding,k=g.oriSymbolPadding,S=g.legendPadding,w=g.legendScale,L=this.getStateCosmetics("default"),A=parseInt(L.text["font-size"],10),N=2*v.canvasHeight,F=0,E=2*g.padding,_={width:E,height:E},T={},P=!1,D=this.getSortedLegendItems(),I=D.length,M=0;if(g.initialItemY=0,g.initialItemX=0,(d-=E+S)<S&&(g.padding=S=d=0),(n=A+1)<=0&&(n=1),k*=w,(n=f(n*=w,d))<=0&&(k=n=0),g.symbolPadding=k,g.symbolWidth=n,g.legendHeight=o=n+2*k,g.rowHeight=m(parseInt(L.text["line-height"],10)||12,o),t=S+g.borderWidth/2+x,(i=d-o-S-y)<0&&(i=0),b.useEllipsesOnOverflow(v.useEllipsesWhenOverflow),b.setStyle((0,r.extend2)({},L.text)),g.showLegend&&0!==I){for(M=0;M<I;M+=1)D[M].getState("removed")||(h=l=(u=D[M]).config||(u.config={}),s=l.name=(0,r.parseUnsafeString)(h.label),l._legendX=0,l._legendY=_.height,0!==h.enabled&&!1!==h.enabled&&s!==r.BLANKSTRING?(l.enabled=1,P=!0,0===i?(_.height+=l._legendH=o,l.name=r.BLANKSTRING,l._totalWidth=n+k):(a=b.getSmartText(s,i,N),l.name=a.text,a.tooltext&&(l.originalText=a.tooltext),a.height<o&&(l._legendTestY=(o-a.height)/2),l._totalWidth=n+k+y+a.width+S,_.height+=l._legendH=m(a.height,o),F=m(a.width,F))):l.enabled=0);g.validLegendItem=P,P?(g.itemWidth=F+o+S+y,g.width=g.itemWidth+E,g.title.oriText!==r.BLANKSTRING&&(b.setStyle(g.title.style),a=b.getSmartText(g.title.oriText,d,N),g.title.text=a.text,a.tooltext&&(g.title.originalText=a.tooltext),c=a.width+E,g.width<c&&(g.initialItemX=(c-g.width)/2,g.width=c),g.initialItemY=a.height+C,_.height+=g.initialItemY),g.height=g.totalHeight=_.height,t=f(g.width+t,d),T.right=t+S,g.isActive=!0,g.enabled=!0):(g.enabled=!1,g.width=0,T.right=0)}else T.right=0,g.height=0,g.width=0;return T},a.postSpaceManager=function(){var e=this.config,t=e.legendPos,a=this.getFromEnv("chart").config.canvasHeight;t===r.POSITION_RIGHT&&(e.height>a?(e.height=a,e.scroll.enabled=!0,e.scroll.flatScrollBars=e.flatScrollBars,e.scroll.scrollBar3DLighting=e.scrollBar3DLighting,e.width+=(e.scroll.scrollBarWidth=10)+(e.scroll.scrollBarPadding=2)):e.scroll.enabled=!1)},a.configureAttributes=function(t){void 0===t&&(t={}),e.prototype.configureAttributes.call(this,t);var a,i,n,o,l,s=this.config,c=this.getFromEnv("chart"),h=c.config,u=this.getFromEnv("style"),d=c.getFromEnv("chart-attrib"),p=c.config.is3D,f=this.getFromEnv("color-manager"),v=p?r.chartPaletteStr.chart3D:r.chartPaletteStr.chart2D,b=s.interactiveLegend=!1!==c.hasInteractiveLegend&&Boolean((0,r.pluckNumber)(d.interactivelegend,1)),x=(0,r.pluckNumber)(d.useroundedges,0),C=u.outCancolor,k=t.style&&t.style.text,S=(0,r.pluck)(d.legenditemfont,k&&k["font-family"],u.outCanfontFamily),w=(0,r.pluckNumber)(d.legendiconscale,1),L=(0,r.pluckFontSize)(d.legenditemfontsize,k&&k["font-size"],u.fontSize)+"px",A=(0,r.pluck)(d.legenditemfontcolor,k&&k.color,C).replace(/^#?([a-f0-9]+)/gi,"#$1"),N=(0,r.getFirstColor)((0,r.pluck)(d.legenditemhoverfontcolor,A));s.isActive=!1,s.chartMarginTop=h.origMarginTop,s.chartMarginRight=h.origMarginRight,s.chartMarginBottom=h.origMarginBottom,s.chartMarginLeft=h.origMarginLeft,s.reverselegend=(0,r.pluckNumber)(d.reverselegend,0),s.showLegend=(0,r.pluckNumber)(d.showlegend,!c.dontShowLegendByDefault,1),a=(0,r.setLineHeight)({fontSize:L}),s.legendPos=(0,r.pluck)(d.legendposition,c.legendposition,t.legendPosition,r.POSITION_BOTTOM).toLowerCase(),s.numColumns=(0,r.pluckNumber)(d.legendnumcolumns,0),s.xL=s.yL=0,(w<=0||w>5)&&(w=1),s.drawCustomLegendIcon=(0,r.pluckNumber)(d.drawcustomlegendicon,t.drawcustomlegendicon,0),s.legendScale=w,s.legendPadding=(0,r.pluckNumber)(d.legendpadding,7),s.alignLegendWithCanvas=(0,r.pluckNumber)(t.alignlegendwithcanvas,h.alignLegendWithCanvas),s.title.style={fontFamily:(0,r.pluck)(d.legendcaptionfont,S),fontSize:(0,r.pluckFontSize)(d.legendcaptionfontsize,u.fontSize)+"px",color:(0,r.pluck)(d.legendcaptionfontcolor,C).replace(/^#?([a-f0-9]+)/gi,"#$1"),fontWeight:y.fontWeight[(0,r.pluckNumber)(d.legendcaptionfontbold,1)]||r.BLANKSTRING},l=d.legendcaptionalignment?d.legendcaptionalignment.toLowerCase():g.center,s.title.align=g[l]||g.center,s.title.style["text-anchor"]=s.title.align,s.padding=4,i=(0,r.pluck)(d.legendbordercolor,f.getColor(v.legendBorderColor)),n=s.borderAlpha=(0,r.pluckNumber)(d.legendborderalpha,100),s.borderColor=(0,r.convertColor)(i,n),s.borderWidth=(0,r.pluckNumber)(d.legendborderthickness,t.legendborderthickness,!x||d.legendbordercolor?1:0),s.borderRadius=(0,r.pluckNumber)(x,0),s.backgroundAlpha=o=(0,r.pluckNumber)(d.legendbgalpha,t.legendbgalpha,100),s.backgroundColor=(0,r.convertColor)((0,r.pluck)(d.legendbgcolor,f.getColor(v.legendBgColor)),o),s.symbol3DLighting=Boolean((0,r.pluckNumber)(d.use3dlighting,d.useplotgradientcolor,1)),s.shadow=Boolean((0,r.pluckNumber)(d.legendshadow,1)),s.shadow&&(s.shadow={enabled:s.shadow,opacity:m(n,o)/100}),s.prevReversed=Boolean((0,r.pluckNumber)(s.reversed,0)),s.reversed=Boolean((0,r.pluckNumber)(d.reverselegend,0)),s.lineWidth=(0,r.pluckNumber)(d.linethickness,2),s.borderRadius=(0,r.pluckNumber)(d.legendborderradius,x?3:0),s.legendAllowDrag=Boolean((0,r.pluckNumber)(d.legendallowdrag,0)),s.title.oriText=(0,r.parseUnsafeString)((0,r.getFirstValue)(d.legendcaption,r.BLANKSTRING)),s.legendScrollBgColor=(0,r.getFirstColor)((0,r.pluck)(d.legendscrollbgcolor,d.scrollcolor,f.getColor("altHGridColor"))),s.legendScrollBarColor=(0,r.pluck)(d.legendscrollbarcolor,i),s.legendScrollBtnColor=(0,r.pluck)(d.legendscrollbtncolor,i),s.minimiseWrappingInLegend=(0,r.pluckNumber)(d.minimisewrappinginlegend,0),s.flatScrollBars=(0,r.pluckNumber)(d.flatscrollbars,0),s.scrollBar3DLighting=(0,r.pluckNumber)(d.scrollbar3dlighting,1),s.orderReversed=!1,this.setStateCosmetics("hidden",{symbol:{fill:(0,r.convertColor)((0,r.pluck)(d.legenditemhiddencolor,"cccccc").replace(/^#?([a-f0-9]+)/gi,"#$1")),stroke:(0,r.convertColor)((0,r.pluck)(d.legenditemhiddencolor,"cccccc").replace(/^#?([a-f0-9]+)/gi,"#$1"))},text:{fill:(0,r.convertColor)((0,r.pluck)(d.legenditemhiddencolor,"cccccc").replace(/^#?([a-f0-9]+)/gi,"#$1"))}}),this.setStateCosmetics("default",{text:{fill:(0,r.convertColor)(A),"font-family":S,cursor:b?r.preDefStr.POINTER:"default","font-size":L,"line-height":a,"vertical-align":r.POSITION_TOP,"text-anchor":r.POSITION_START,direction:"rtl"===h.textDirection?"rtl":"initial","font-weight":y.fontWeight[(0,r.pluckNumber)(d.legenditemfontbold,0)]||r.BLANKSTRING},symbol:{bgColor:(0,r.pluck)(d.legendiconbgcolor),cursor:b?r.preDefStr.POINTER:"default",borderColor:(0,r.pluck)(d.legendiconbordercolor),bgAlpha:(0,r.pluck)(d.legendiconbgalpha,d.legendiconalpha,100),borderAlpha:(0,r.pluck)(d.legendiconborderalpha,d.legendiconalpha,100),borderThickness:(0,r.pluckNumber)(d.legendiconborderthickness),startAngle:(0,r.pluckNumber)(d.legendiconstartangle,45),sides:(0,r.pluckNumber)(d.legendiconsides,t.legendiconsides,4)}}),this.setStateCosmetics("hover",(function(e,t){return t.hasState("hidden")||(e.text||(e.text={}),e.text.fill=(0,r.convertColor)(N.replace(/^#?([a-f0-9]+)/gi,"#$1")),e.text.cursor="inherit"),e})),s.legendAllowDrag&&!s._dragEvtListenerBinded?(this.addEventListener("fc-dragstart",s.handlers.dragstart),this.addEventListener("fc-dragmove",s.handlers.dragmove),s._dragEvtListenerBinded=!0):!s.legendAllowDrag&&s._dragEvtListenerBinded&&(this.removeEventListener("fc-dragstart",s.handlers.dragstart),this.removeEventListener("fc-dragmove",s.handlers.dragmove),s._dragEvtListenerBinded=!1)},a.getLegendState=function(){return this._legendState},a.hasState=function(e){var t,a,i=this.getLegendState();for(t=0,a=i.length;t<a;t++)if(i[t]===e)return!0;return!1},a.setLegendState=function(e,t){this.hasState(e)||(t?this._legendState.push(e):this._legendState.unshift(e)),this.asyncDraw()},a.removeLegendState=function(e){var t,a,i=1;if(e)for(t=0,a=this._legendState.length;t<a&&i;t++)e===this._legendState[t]&&(this._legendState.splice(t,1),i=0);else this._legendState.length=0;this.asyncDraw()},a.setStateCosmetics=function(e,t){this._stateCosmetics[e]=t},a.removeStateCosmetics=function(e){delete this._stateCosmetics[e]},a.getStateCosmetics=function(e){return this._stateCosmetics[e]},a.hide=function(){var e=this.getFromEnv("chart").getChildContainer("legendGroup");e&&e.hide()},t}(l.ComponentInterface);t["default"]=k},513:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=a(184),r=a(199),l=a(192),s=i(a(514)),c=o.preDefStr.POINTER,h="M",u="L",d="Z",g=function(e,t){var a=e.config,i=e.getLinkedParent().config,n=i.symbolWidth,r=(0,o.pluckNumber)(i.padding,4),l=.5*n,s=(i.initialItemX||0)+a._legendX+r,h=(i.initialItemY||0)+a._legendY-r,u=s+i.symbolPadding+l,d=h+(a._markerYGutter||0)+i.symbolPadding+l,g=(0,o.mapSymbolName)(a.anchorSide),p=a.symbol=g&&g.split("_")||[],f="spoke"===p[0]?1:0;return("line"===a.type||a.drawLine)&&(l*=.6),{path:(0,o.polyPathToPath)([p[1]||2,u,d,l,a.startAngle,a.spoke||f]),cursor:t.cursor||c,stroke:t.stroke,fill:t.fill,"stroke-width":t["stroke-width"]||.5}};(0,l.addDep)({name:"legendItemAnimation",type:"animationRule",extension:s["default"]});var p=function(e){function t(){var t;return(t=e.call(this)||this)._stateCosmetics={},t._legendState=[],t}(0,n["default"])(t,e);var a=t.prototype;return a.getName=function(){return"legendItem"},a.parseLegendCosmetics=function(){var e,t,a,i=this.getLinkedParent(),n=i.getLegendState(),r=this.getLegendState(),l=["default"],s={};for(l=l.concat(n,r),a=0;a<l.length;a++)e=i.getStateCosmetics(l[a]),t=this.getStateCosmetics(l[a]),e&&("function"==typeof e?s=e(s,this):(0,o.extend2)(s,e)),t&&("function"==typeof t?s=t(s,this):(0,o.extend2)(s,t));return s},a.getType=function(){return"legendItem"},a.configure=function(e){var t,a,i=this.config;for(t in e)if(e.hasOwnProperty(t))if("object"!=typeof e[t])i[t]=e[t];else{var n=i[t]?i[t]:{};for(a in e[t])n[a]=e[t][a];i[t]=n}},a.itemClickFn=function(){var e=this.getFromEnv("chart-attrib"),t=(0,o.pluckNumber)(e.interactivelegend,1),a=this.getLinkedItem("owner");t&&a.legendInteractivity(this)},a.dispose=function(){this.removeEventListener("fc-click",this.click),this.removeEventListener("fc-mouseover",this.mouseover),this._dispose()},a.getLegendState=function(){return this._legendState},a.hasState=function(e){var t,a,i=this.getLegendState();for(t=0,a=i.length;t<a;t++)if(i[t]===e)return!0;return!1},a.setLegendState=function(e,t){this.hasState(e)||(t?this._legendState.push(e):this._legendState.unshift(e)),this.asyncDraw()},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this),this.config.eventArguments={}},a.removeLegendState=function(e){var t,a,i=1;if(e)for(t=0,a=this._legendState.length;t<a&&i;t++)e===this._legendState[t]&&(this._legendState.splice(t,1),i=0);else this._legendState.length=0;this.asyncDraw()},a.removeStateCosmetics=function(e){delete this._stateCosmetics[e]},a.setStateCosmetics=function(e,t){this._stateCosmetics[e]=t},a.getStateCosmetics=function(e){return this._stateCosmetics[e]},a.draw=function(){var e,t,a,i,n,r,l,s,p,f,m,v,b,x,y,C,k,S,w,L,A,N,F,E,_,T,P,D,I,M,O,R,V,B,G,H,z,W,j=this.getLinkedParent(),U=j.getFromEnv("chart").config,q=this.getFromEnv("animationManager"),Y=this.config,X=j.config,K=X.legendHeight,Z=X.symbolPadding,J=X.symbolWidth,$=X.interactiveLegend,Q=X.textPadding||2,ee=(0,o.pluckNumber)(X.padding,4),te=X.itemHoverStyle,ae=j.getChildContainer("itemGroup"),ie=X.drawCustomLegendIcon,ne=this.hasState("hidden"),oe={};a=(e=this.parseLegendCosmetics()).symbol,i=X.initialItemX||0,n=X.initialItemY||0,p=Y.type,w=e.symbol.stroke||"000000",L=e.symbol.fill,t=e.symbol.lineWidth||X.lineWidth,N=Y.anchorSide,F=Y.drawLine,f=i+Y._legendX+ee,m=n+Y._legendY-ee,O=this.getGraphicalElement("legendItemBackground"),s=this.getGraphicalElement("legendItemText"),v=this.getGraphicalElement("legendItemLine"),x=this.getGraphicalElement("legendItemSymbol"),!($=(0,o.pluck)(Y.interactiveLegend,$))&&(e.cursor="default"),R=e.text,z=f+K+Q-2,W=m+(Y._legendTestY||0),R.text=Y.name,R.x=z,R.y=W,l=q.setAnimation({el:s||"text",attr:R,component:this,container:ae,label:"icon"}),s||(l=this.addGraphicalElement("legendItemText",l)),l.data("legendItem",Y),V=!1,ie&&!1!==Y.customLegendIcon?(T=!ne&&a.borderColor,P=(0,o.pluck)(a.borderAlpha),E=!ne&&a.bgColor,_=(0,o.pluck)(a.bgAlpha,"100"),D=e.symbol.rawFillColor,L=ne?e.symbol.fill:E||D,L=(0,o.convertColor)(L,_),I=e.symbol.rawStrokeColor,w=ne?e.symbol.stroke:T||I||D,w=(0,o.convertColor)(w,P),y=f+Z+(C=.5*J),r=m+(Y._markerYGutter||0)+Z+C,k="spoke"===(S=(0,o.mapSymbolName)(a.sides)&&(0,o.mapSymbolName)(a.sides).split("_")||[])[0]?1:0,B={path:(0,o.polyPathToPath)([S[1]||2,y,r,C,a.startAngle||0,k]),cursor:e.symbol.cursor||c,stroke:w,fill:L,"stroke-width":(0,o.pluckNumber)(a.borderThickness,1)}):"line"===p||F?(r=m+(Y._markerYGutter||0)+Z+.5*J,H={path:[h,f+Z,r,u,f+Z+J,r]},V=!0,oe={opacity:U.legendiconalpha||1,"stroke-width":t,stroke:w,cursor:e.cursor||c},N&&(B=g(this,e.symbol))):N?B=g(this,e.symbol):"line"!==p&&(w=Y.symbolStroke||w,B={path:function(e,t,a,i,n){var o,r,l,s,c,g,p,f,m,v=[h];switch(n){case"column":case"dragColumn":case"column3D":case"realtimeColumn":case"errorBar2D":r=.5*(o=.25*a),l=.7*i,s=.4*i,v=v.concat([e,t+i,"l",0,-l,o,0,0,l,"z","m",o+r,0,"l",0,-i,o,0,0,i,"z","m",o+r,0,"l",0,-s,o,0,0,s,"z"]);break;case"bar2D":case"bar3D":o=.3*a,r=.6*a,s=(l=i/4)/2,v=v.concat([e,t,u,e+r,t,e+r,t+l,e,t+l,d,h,e,t+l+s,u,e+a,t+l+s,e+a,t+l+s+l,e,t+2*l+s,d,h,e,t+2*(l+s),u,e+o,t+2*(l+s),e+o,t+i,e,t+i,d]);break;case"area":case"area3d":case"areaspline":case"dragArea":case"realTimeArea":case"splinearea":o=.3*a,r=.6*a,l=.6*i,s=.2*i,c=.8*i,v=v.concat([e,t+c,u,e,t+l,e+o,t+s,e+r,t+l,e+a,t+s,e+a,t+c,d]);break;case"pie2D":case"pie3d":case"doughnut2D":case"doughnut3D":r=.9*(o=.5*a),1,1,g=e+o+1,f=t+o-1,p=e+o-1,m=t+o+1,v=v.concat([g,f,u,g,f-r+1,"A",r-1,r-1,0,0,1,g+r-1,f,d,h,p,m,u,p,m-r,"A",r,r,0,1,0,p+r,m,d]);break;case"boxandwhisker2d":v=v.concat([e,t,u,e+a,t,e+a,t+i,e,t+i,d]);break;default:v=v.concat([e,t,u,e+a,t,e+a,t+i,e,t+i,d])}return{path:v}}(f+Z,m+(Y._markerYGutter||0)+Z,J,J,p).path,"stroke-width":.5,stroke:w,fill:L,cursor:e.cursor||c}),H&&V?(Object.assign(H,oe),v=q.setAnimation({el:v||"path",attr:H,component:this,callback:function(){this.show()},container:ae}),this.getGraphicalElement("legendItemLine")||(v=this.addGraphicalElement("legendItemLine",v))):v&&v.hide(),B?(B.opacity=(0,o.pluckNumber)(e.symbol.opacity,1),b=q.setAnimation({el:x||"path",attr:B,component:this,callback:function(){this.show()},container:ae,label:"icon"}),x&&x.node||(b=this.addGraphicalElement("legendItemSymbol",b)),b.data("legendItem",Y)):x&&x.hide(),A=e.background&&e.background.legendBackgroundColor?(0,o.convertColor)(e.background.legendBackgroundColor,e.background.alpha):o.TRACKER_FILL,G={x:f,y:m,width:Y._totalWidth,height:Y._legendH,r:0,fill:A,opacity:1,"stroke-width":1,stroke:"none",cursor:e.symbol.cursor||c},M=q.setAnimation({el:O||"rect",attr:G,css:void 0,component:this,label:"background",container:ae}),O||this.addGraphicalElement("legendItemBackground",M),M.data("legendItem",this).data("interactive",$).data("itemHoverStyle",te).data("itemStyle",e)},t}(r.ComponentInterface);t["default"]=p},514:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=a(184),n={"*.legendItem.legendItem":function(){return{"icon.appearing":function(e){return[{initialAttr:{opacity:0},slot:"plot",startEnd:{start:.5,end:1},finalAttr:{opacity:(0,i.pluckNumber)(e.attr.opacity,1)}}]},"background.appearing":function(e){return[{initialAttr:{opacity:0},slot:"plot",startEnd:{start:.5,end:1},finalAttr:{opacity:e.attr.opacity}}]},"icon.disappearing":function(){return[{finalAttr:{opacity:0},slot:"initial"}]}}}};t["default"]=n},515:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"plot"}],n=[{slot:"plot",startEnd:{start:0,end:.5}}],o=[{slot:"intial"}],r={"*.legend.legend":function(){return{"legendGroup.appearing":i,"legendGroup.updating":n,"legendGroup.disappearing":o,"scrollbar.appearing":i,"scrollbar.updating":n,"scrollbar.disappearing":o}}};t["default"]=r},516:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=t.drawLabel=void 0;var n=i(a(198)),o=i(a(481)),r=a(184),l=a(192),s=i(a(517)),c=r.preDefStr.visibleStr,h=r.preDefStr.hiddenStr,u=r.preDefStr.POSITION_MIDDLE,d=r.preDefStr.POSITION_START,g=r.preDefStr.POSITION_END,p=Math,f=p.min,m=p.max,v=function(e,t){var a,i,n,o,l,s,p,v,b,x,y,C,k,S,w,L,A,N,F,E,_,T,P,D=this.getFromEnv("chart"),I=D.config,M=this.config,O=M.JSONData,R=this.getFromEnv("animationManager"),V=D.getChildren("canvas")[0].config,B=D.config.dataLabelStyle,G=O.data,H=D.config.categories,z=D.config.is3D,W=D.config.isstacked,j=H&&H.length,U=G&&G.length,q=this.getData(),Y=D.getFromEnv("smartLabel"),X=V.yDepth,K=V.xDepth,Z=D.getFromEnv("number-formatter"),J=r.BLANKSTRING,$=I.placevaluesinside,Q=I.canvasWidth,ee=I.canvasLeft,te=I.valuepadding+2,ae=this.getContainer("labelGroup"),ie=this.getSkippingInfo&&this.getSkippingInfo(),ne=ie&&ie.skippingApplied,oe=ie&&ie.labelDraw||[],re=oe.length,le=(0,r.pluckNumber)(e,0),se=(0,r.pluckNumber)(t,ne?re:j<U?j:U),ce=re===Math.abs(se-(le+1)),he=this.getState("visible"),ue=function(){this.hide()};for(he&&ae.show(),Y.setStyle(B),l=le;l<se;l++)L=(E=(i=q[o=ne&&ce?oe[l]:l])&&i.config)&&E.setValue,void 0!==i&&null!=L&&!0!==E.labelSkip?(p=i.graphics)&&(s=G[o],k=i._yPos,S=i._xPos,L=Z.getCleanValue(s.value),C=(0,r.pluckNumber)(L)<0,v=i._height,w=i._width,A=W?u:C?$?d:g:$?g:d,J=E.displayValue,T=p.label,E.showValue&&null!=J&&J!==r.BLANKSTRING&&null!==L?(n={text:J,fill:(a=E.dataLabelStyle).color,"text-bound":[a.backgroundColor,a.borderColor,B.borderThickness,B.borderPadding,B.borderRadius,B.borderDash],"line-height":B.lineHeight,visibility:this.getState("visible")?c:h},N=Y.getOriSize(J).width,N+=te,F=te,b=k+.5*v,x=S+(C?0:w),y=C?S-ee:ee+Q-(S+w),W?(x=m(ee+.5*N,x+=.5*(C?w:-w)),x=f(ee+Q-.5*N,x),x-=z?K:0,b+=z?X:0):$?w>=N?(x+=C?F:-F,z&&(b+=X,x-=K)):N<y?(x+=C?-F:F,A=C?g:d,z&&C&&(x-=K)):(C?(x=S+w+m(N-S-w+ee,0)-F,A=g):(x=S-m(N-(ee+Q-S),0)+F,A=d),z&&(x-=K,b+=X)):y>=N?(x+=C?-F:F,z&&C&&(x-=K,b+=K)):(x+=C?F+N:-(F+N),z&&(x-=K,b+=X)),(x>ee+Q||x<ee)&&(x=ee+4,A=d),n["text-anchor"]=A,n.x=x,n.y=b,n.opacity=he?1:0,(_=R.setAnimation({el:T||"text",container:ae,component:this,attr:n,callback:!he&&ue,label:"plotLabel"})).outlineText(M.showTextOutline,n.fill),T||(p.label=_)):p.label&&(p.label=R.setAnimation({el:p.label,component:this}))):((P=i&&i.graphics)&&P.label&&P.label.hide(),E&&delete E.labelSkip);this.config.labelDrawn=!0};t.drawLabel=v,(0,l.addDep)({name:"barAnimation",type:"animationRule",extension:s["default"]});var b=function(e){function t(){return e.apply(this,arguments)||this}(0,n["default"])(t,e);var a=t.prototype;return a.getType=function(){return"dataset"},a.getName=function(){return"bar2D"},a.drawLabel=function(){var e=this.config;v.call(this,e.scrollMinValForLabel,e.scrollMaxValForLabel)},t}(o["default"]);t["default"]=b},517:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=a(184),n={"initial.dataset.bar2D":function(){var e=this,t=e.getFromEnv("chart"),a=t.config.yDepth||0,n=e.getFromEnv("yAxis");return{"rect.appearing":function(o){var r,l,s,c,h=n.getPixel(n.getAxisBase())+(t.isBar?-a:a),u=o.index,d=e.components.data[u],g=o.attr;return r=g.x,l=g.width,c=Math.sign(r+l/2-h),s=1===c?r:r+l,d._posWRT0=c,[{initialAttr:function(){var e={};return e.x=s,e.width=0,e.opacity=0,e},finalAttr:{opacity:1},startEnd:function(){var t=o.length;return i.animHelperFN.getTimeByValue(i.animHelperFN.animByWeight(u,t,.6),{startPx:h,endPx:1===c?e.config.yAxisMaxPixel:e.config.yAxisMinPixel},{startPx:s,endPx:1===c?g.x+g.width:g.x})},hookFn:function(){this.attr({opacity:1})},effect:"linear",slot:"plot"}]},"plotLabel.appearing":function(){return[{initialAttr:{opacity:0},slot:"final"}]},"*":null}}};t["default"]=n},525:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t.trimData=q,t.hideFn=t.plotClickHandler=t.labelClickFn=t.plotGraphicClick=t["default"]=void 0;var n,o=i(a(183)),r=i(a(201)),l=i(a(198)),s=i(a(499)),c=a(184),h=a(192),u=i(a(526)),d=i(a(262)),g=a(196),p=i(a(248)),f=a(527),m=(0,h.getDep)("redraphael","plugin"),v=window,b=v.document,x=!c.hasSVG,y="createTouch"in b,C=y&&!(v.navigator.maxTouchPoints||v.navigator.msMaxTouchPoints),k=Math,S=k.atan2,w=k.sin,L=k.cos,A=k.max,N=k.min,F=k.abs,E=k.floor,_=k.PI,T=180/k.PI,P=2*_,D=function(e){var t,a,i,n=[[],[],[],[]];for(t=0,a=e.length;t<a;t++)i=(0,f.getCleanAngle)(e[t].point.config.angle),n[(0,f.getQuadrant)(i)].push({point:e[t].point,angle:i});return n},I=function(e,t,a){return a.getFromEnv("animationManager").setAnimation({el:"group",attr:{name:e},container:t,component:a,label:"group"})},M=function(e,t){var a=t?1:n;return(0,c.toRaphaelColor)({color:(0,c.getFirstColor)(e.color,a),alpha:(0,c.getFirstAlpha)(e.alpha,a)})},O=function(e,t,a,i,n){return S((t-a[1]-i.top)/n,e-a[0]-i.left)},R=function(e,t){return function(a){!t.data("plotItem").seriesData.isRotating&&e.plotGraphicClick.call(t,a)}},V=function(e){return function(t){var a,i,n,o,r,l,s,c,h,u,d,g,p,f=this.element||this,m=f.plotItem||f.data("plotItem"),v=f.data("eventArgs")||{},b=m.chart,x=e.getFromEnv("animationManager"),k=m.index,S=e.config,w=S.enableMultiSlicing,L=e.components.data[k],A=L.graphics,N=L.config,F=N.doNotSlice,E=N.slicedTranslation;if(!S.isRotating&&t&&b.plotEventHandler(f,t),!(S.isRotating||S.singletonCase||F)&&b.config&&(i=!w&&e.sliceInOtherPies(k),!(l=N.sliced)||!i)){if(y&&!C){if(d=(new Date).getTime(),m.lastSliceTimeStamp&&d-m.lastSliceTimeStamp<400)return;m.lastSliceTimeStamp=d}return n=A.element,h=A.connector,o=A.label||A.dataLabel,r=A.innerLabel,E="object"==typeof E?"t"+E:E,u=N.connectorPath,s=(l?-1:1)*N.transX,c=(l?-1:1)*N.transY,g=n.data("eventArgs")||n.data("eventArgs",{}),b.fireChartInstanceEvent("slicingStart",{slicedState:l,dataIndex:"index"in v&&v.index,data:e.getPlotData(k,l)}),x.setAnimationState("slicing"),x.setAnimation({el:n,attr:{transform:l?"t0,0":E},component:e,label:"slice",callback:function(){b.fireChartInstanceEvent("slicingEnd",{slicedState:l,dataIndex:"index"in v&&v.index,data:e.getPlotData(k,!l)})}}),o&&o.x&&((a=o.data("textPos"))||(a=o.data("textPos",{x:o.x,y:o.y})),x.setAnimation({el:o,attr:{x:o.x+(l?0:s),y:o.y+(l?0:c)},label:"label-sliced",component:e}),a.x=o.x+(l?0:s)),r&&x.setAnimation({el:r,attr:{x:r.x+(l?0:s),y:r.y+(l?0:c)},label:"label-sliced",component:e}),h&&u&&((p=u.slice(0))[1]+=s,p[2]+=c,p[4]+=s,p[5]+=c,p[6]+=s,p[7]+=c,x.setAnimation({el:h,attr:{path:p},label:"connector-sliced",component:e}),N.connectorPath=p),g.isSliced=l=N.sliced=!l,l}}},B=function(e){var t=e.getFromEnv("animationManager");return{plotDragMove:function(t){var a,i=this.data("plotItem"),n=i.chart,o=t.data,r=o[0],l=o[1],s=o[2],c=o[3],h=i.seriesData,u=e.config;isNaN(r)||isNaN(l)||!u.enableRotation||h.singletonCase||h.isRightClicked||(a=O.call(t,s,c,h.pieCenter,h.chartPosition,1),h.dragStartAngle===a||h.isRotating||(h.isRotating=!0,n.fireChartInstanceEvent("RotationStart",{startingAngle:h._rotationalStartAngle=n._startingAngle()})),u.startAngle+=a-h.dragStartAngle,h.dragStartAngle=a,h.moveDuration=0,u.updateInited||(u.updateInited=!0,n.addJob("pie_batch_rotate",n._batchRotate||(n._batchRotate=function(){e._rotate(),u.updateInited=!1}),g.priorityList.draw,{oneInAFrame:!0})))},plotDragStart:function(t){var a,i=this.data("plotItem"),n=i.chart,o=i.seriesData,r=e.config,l=(0,c.pluckNumber)(t.button,t.originalEvent.button),s=-r.startAngle*T,h=t.data[0],u=t.data[1];o.isRightClicked=!(c.touchEnabled||0===l||1===l),r.enableRotation&&!o.isRightClicked&&(o.isRotating=!1,o.chartPosition=function(e,t){var a,i={left:0,top:0},n=e;if(n.getBoundingClientRect)a=n.getBoundingClientRect(),i.top=a.top+(v.pageYOffset||b.scrollTop||0)-(b.clientTop||0),i.left=a.left+(v.pageXOffset||b.scrollLeft||0)-(b.clientLeft||0);else for(;n;)i.left+=n.offsetLeft||0,i.top+=n.offsetTop||0,n===b.body||n===b.documentElement||t||(i.left-=n.scrollLeft||0,i.top-=n.scrollTop||0),n=n.offsetParent;return i}(n.getFromEnv("chart-container")),a=O.call(t,h,u,o.pieCenter,o.chartPosition,1),o.dragStartAngle=a,o.startingAngleOnDragStart=s)},plotDragEnd:function(){var t=this.data("plotItem"),a=t.chart,i=a.getChildren("dataset")[0].config,n=a.config,o=t.seriesData,r=-i.startAngle*T;o.isRightClicked||(n.clicked=!0,a.disposed||e._rotate(),delete n.clicked,o.isRotating&&(setTimeout((function(){o.isRotating=!1}),0),a.fireChartInstanceEvent("RotationEnd",{startingAngle:(0,c.normalizeAngle)(r,!0),changeInAngle:r-i.startingAngleOnDragStart})),!o.isHovered&&e.config.handlersAPI.onPlotHover(this,!1))},plotRollOver:function(e){var t=this.plotItem||this.data("plotItem"),a=t.chart,i=t.seriesData,n=a.getDatasets()[0],o=n.getFromEnv("animationManager");i.isRotating||(a.plotEventHandler(this,e,"DataPlotRollOver"),n.config.handlersAPI.onPlotHover(this,!0,o)),n.fireEvent("datasetrollover",t),i.isHovered=!0},plotRollOut:function(e){var t=this.plotItem||this.data("plotItem"),a=t.chart,i=t.seriesData,n=a.getDatasets()[0];i.isRotating||(a.plotEventHandler(this,e,"DataPlotRollOut"),n.config.handlersAPI.onPlotHover(this,!1)),n.fireEvent("datasetrollout",t),i.isHovered=!1},onPlotHover:function(a,i){var n=a.data("plotItem"),o=n.center,r=n.rolloverProperties||{},l=i?r.color:n.color,s=i?r.borderWidth:n.borderWidth,h=i?r.borderColor:n.borderColor;l&&(i&&(l.cx=o[0],l.cy=o[1],l.r=n.radius),r.enabled&&t.setAnimation({el:n.graphic,component:e,attr:{fill:(0,c.toRaphaelColor)(l),"stroke-width":s,stroke:h}}))}}},G=function(e,t){return e.point.config.value-t.point.config.value},H=function(e,t){return e.angle-t.angle},z=function(e,t){t&&e.getFromEnv("linkClickFN")&&e.getFromEnv("linkClickFN").call({link:t},!0)},W=function(){this.remove()},j=[1,1,-1,-1],U=[1,-1,-1,1];function q(e){if(this.config.JSONData){var t,a,i,n,o=this.getFromEnv("legend"),r=this.config.JSONData,l=r.data&&r.data.length,s=e.data&&e.data.length||0,c=l-s;for(c>0&&this.removeData(s,c,!1),t=0,a=(i=this.components.removeDataArr||[]).length;t<a;t++)(n=i[t].config).legendItemId&&o.disposeItem(n.legendItemId)}}t.hideFn=function(){this.hide()},t.labelClickFn=z,t.plotGraphicClick=V,t.plotClickHandler=R,(0,h.addDep)({name:"pie2dAnimation",type:"animationRule",extension:u["default"]}),(0,d["default"])(m);var Y=function(e){function t(){var t;return(t=e.call(this)||this).plotGraphicClick=V((0,r["default"])(t)),t}(0,l["default"])(t,e);var a=t.prototype;return a.getType=function(){return"dataset"},a.getName=function(){return"pie2D"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this),this.config.doughnutradius=0},a.configureAttributes=function(e){if(!e)return!1;this.trimData(e),this.config.JSONData=e;var t,a,i,o,r,l=this.getFromEnv("chart"),s=l.config,h=this.config,u=this.config.JSONData,d=this.getFromEnv("chart-attrib"),g=l.config.is3D,p=/pie/.test(this.getName());h.handlersAPI=B(this),this.setState("visible",1===(0,c.pluckNumber)(this.config.JSONData.visible,!Number(this.config.JSONData.initiallyhidden),1)),(0,c.parseConfiguration)({},this.config,l&&l.config),r=h.enableAnimation=(0,c.pluckNumber)(d.animation,d.defaultanimation,1),h.animation=!!r&&{duration:1e3*(0,c.pluckNumber)(d.animationduration,d.moveduration,1)},h.transposeAnim=!(!r&&!(0,c.pluckNumber)(h.transposeanimation,1))&&{duration:1e3*(0,c.pluckNumber)(d.transposeanimduration,.2)},h.showPlotBorder=(0,c.pluckNumber)(d.showplotborder,1),h.showHoverEffect=(0,c.pluckNumber)(d.plothovereffect,d.showhovereffect,n),h.showTooltip=(0,c.pluckNumber)(d.showtooltip,1),h.toolText=(0,c.getValidValue)((0,c.parseUnsafeString)((0,c.pluck)(u.plottooltext,d.plottooltext))),o=h.enableMultiSlicing=(0,c.pluckNumber)(d.enablemultislicing,1),a=h.use3DLighting=(0,c.pluckNumber)(d.use3dlighting,1),t=h.radius3D=a?(0,c.pluckNumber)(d.radius3d,90):100,h.showZeroPies=(0,c.pluckNumber)(d.showzeropies,1),h.showPercentInToolTip=(0,c.pluckNumber)(d.showpercentintooltip,1),h.showLabels=(0,c.pluckNumber)(d.showlabels,1),h.showTextOutline=(0,c.pluckNumber)(d.textoutline,0),h.labelFontColor=(0,c.pluck)(u.labelfontcolor,d.labelfontcolor,s.labelfontcolor),h.labelFont=(0,c.pluck)(u.labelfont,d.labelfont,s.basefont),h.showValues=(0,c.pluckNumber)(u.showvalues,d.showvalues,1),h.showPercentValues=(0,c.pluckNumber)(d.showpercentvalues,d.showpercentagevalues,0),i=h.toolTipSepChar=(0,c.pluck)(d.tooltipsepchar,d.hovercapsepchar,c.COMMASPACE),h.labelSepChar=(0,c.pluck)(d.labelsepchar,i),h.pieBorderColor=(0,c.pluck)(d.plotbordercolor,d.piebordercolor),h.pieBorderAlpha=(0,c.pluckNumber)(d.plotborderalpha,d.pieborderalpha),h.pieBorderThickness=h.showPlotBorder?(0,c.pluckNumber)(d.plotborderthickness,d.pieborderthickness,s.plotborderthickness,1):0,h.plotDashLen=(0,c.pluckNumber)(d.plotborderdashlen,5),h.plotDashGap=(0,c.pluckNumber)(d.plotborderdashgap,4),h.showValueInLegend=(0,c.pluckNumber)(d.showvalueinlegend,0),h.showLabelInLegend=(0,c.pluckNumber)(d.showlabelinlegend,1),h.valueBeforeLabelInLegend=(0,c.pluckNumber)(d.valuebeforelabelinlegend,0),h.showValueAsPercentInLegend=(0,c.pluckNumber)(d.showvalueaspercentinlegend,1),h.legendSepChar=(0,c.pluck)(d.legendsepchar,", "),h.showvalues=(0,c.pluckNumber)(d.showvalues,1),h.chartPosition=(0,c.getPosition)(l.getFromEnv("chart-container"),l),h.timerThreshold=30,t>100&&(t=100),t<0&&(t=0),h.showLegend=(0,c.pluckNumber)(d.showlegend,0),h.reverselegend=!(0,c.pluckNumber)(d.reverselegend,0),l.config.is3D=g,h.pieYScale=(0,c.pluckNumber)(d.pieyscale,40),h.pieYScale<1&&(h.pieYScale=1),h.pieYScale>=100&&(h.pieYScale=80),h.pieYScale/=100,h.pieSliceDepth=(0,c.pluckNumber)(d.pieslicedepth,15),h.pieSliceDepth<1&&(h.pieSliceDepth=1),h.managedPieSliceDepth=h.pieSliceDepth,h.enableMultiSlicing=!!o,h.startAngle=(0,c.pluckNumber)(d.startingangle,0)%360*(-_/180),h.usePerPointLabelColor=d.colorlabelsfromplot===c.ONESTRING,h.reversePlotOrder=(0,c.pluckNumber)(d.reverseplotorder,0),h.animateClockWise=(0,c.pluckNumber)(d.animateclockwise,h.reversePlotOrder),h.showShadow=(0,c.pluckNumber)(d.showshadow,1),h.innerLabelRadiusPercent=(0,c.pluckNumber)(d.innerlabelradiuspercent,67)/100,h.minAngleForValue=(0,c.pluckNumber)(d.minangleforvalue,0)*(_/180),h.minAngleForLabel=(0,c.pluckNumber)(d.minangleforlabel,0)*(_/180),h.singletonCase=1===u.data.length,h.labelPosition=(0,c.pluck)(d.labelposition,h.singletonCase&&p?"inside":"outside").toLowerCase(),h.valuePosition=(0,c.pluck)(d.valueposition,h.singletonCase&&p?"inside":"outside").toLowerCase(),h.valueTotal=0,this._setConfigure(),s.showLegend&&this._addLegend()},a.trimData=function(e){q.call(this,e)},a._parseDisplayProperties=function(e,t){var a,i,o,r,l,s,h,u,d,g,p,f,m=c.BLANKSTRING,v=this.getFromEnv("chart"),b=this.getFromEnv("number-formatter"),x=v.getFromEnv("chart-attrib"),y=this.config,C=(0,c.pluckNumber)(t.y,b.getCleanValue(e.value,!0)),k=y.valueTotal,S=y.showLabels,w=(0,c.parseUnsafeString)((0,c.pluck)(t.seriesName,e.label,e.name,c.BLANKSTRING)),L=y.showPercentValues,A=y.showPercentInToolTip,N=y.labelSepChar,F=y.toolTipSepChar,E=y.showTooltip;a=(0,c.getValidValue)((0,c.parseUnsafeString)((0,c.pluck)(e.tooltext,y.toolText))),i=t.pValue=b.percentValue(C/k*100),r=t.value=b.dataLabels(C)||c.BLANKSTRING,d=t.showLabel=(0,c.pluckNumber)(e.showlabel,S),g=t.showValue=(0,c.pluckNumber)(e.showvalue,y.showValues),t.labelFontColor=(0,c.pluck)(e.labelfontcolor,y.labelFontColor),t.labelFont=(0,c.pluck)(e.labelfont,y.labelFont),l=t.labelText=1===d?w:c.BLANKSTRING,s=t.valueText=1===g?1===L?i:r:c.BLANKSTRING,o=A?i:r,h=(0,c.getValidValue)((0,c.parseUnsafeString)(e.displayvalue)),t.labelPosition=(0,c.pluck)(e.labelposition,y.labelPosition).toLowerCase(),t.valuePosition=(0,c.pluck)(e.valueposition,y.valuePosition).toLowerCase(),p=(0,c.pluckNumber)(e.minangleforlabel),isNaN(p)?t.minAngleForLabel=y.minAngleForLabel:t.minAngleForLabel=p%360*(_/180),f=(0,c.pluckNumber)(e.minangleforvalue),isNaN(f)?t.minAngleForValue=y.minAngleForValue:t.minAngleForValue=f%360*(_/180),t.innerLabelRadiusPercent=(0,c.pluckNumber)(e.innerlabelradiuspercent,y.innerLabelRadiusPercent),u=(0,c.pluck)(h,w+N+(L?i:r),c.BLANKSTRING),h!==n&&g?(s=t.labelText=h,t.valueText=c.BLANKSTRING):s=s!==c.BLANKSTRING&&l!==c.BLANKSTRING?l+N+s:(0,c.pluck)(l,s),E&&(m=a!==n?(0,c.parseTooltext)(a,[1,2,3,5,6,7,14,24,25],{formattedValue:r,label:w,yaxisName:(0,c.parseUnsafeString)(x.yaxisname),xaxisName:(0,c.parseUnsafeString)(x.xaxisname),percentValue:i,sum:b.dataLabels(k),unformattedSum:k},e,x):(m=w)!==c.BLANKSTRING?m+F+o:o),t.displayValue=s,t.displayValueArgs=u,t.toolText=m,t.seriesName=w,t.categoryLabel=w},a._isStyled=function(e){if(this.getFromEnv("chart").config.usedataplotcolorforlabels||e.labelbordercolor||e.labelbgcolor||e.labelborderthickness||e.labelborderalpha||e.labelalpha||e.labelfont||e.labelfontsize||e.labelfontcolor||e.labelfontalpha||e.labelalpha||e.labelfontbold||e.labelfontitalic||e.labelborderpadding||e.labelborderradius||e.labelbgalpha||e.labelborderdashed||e.labelborderdashlen||e.labelborderdashgap)return!0},a._setConfigure=function(e,t){var a,i,o,r,l,s,h,u,d,g,f,m,v,b,x,y,C,k,S,w=this.components,L=w.removeDataArr=w.removeDataArr||[],N=this.getFromEnv("chart"),F=N.getFromEnv("dataSource").chart,E=N.config,_=this.config,T=this.config.JSONData,P=(e||T).data,D=P&&P.length,I=_.showZeroPies,M=_.valueTotal||0,O=[],R=(0,c.pluckNumber)(F.plotborderdashed,0),V=this.components.data||(this.components.data=[]),B=this.getFromEnv("number-formatter"),G=this.getFromEnv("color-manager"),H=_.labelInLeg,z=_.valInLeg,W=_.pieBorderThickness,j=_.reversePlotOrder,U=_.radius3D,q=_.enableMultiSlicing,Y=_.lastSlicedid||0,X=(0,c.pluckNumber)(F.plotBorderDashed,5),K=(0,c.pluckNumber)(F.plotborderdashgap,4),Z=(0,c.pluckNumber)(F.valuebeforelabelinlegend,0),J=(0,c.pluckNumber)(F.showvalueaspercentinlegend,1),$=0,Q=[],ee=(0,c.pluck)(F.legendsepchar,", ");for(E.dataLabelStyle=(0,c.parsexAxisStyles)({},{},F,E.dataLabelStyle,o),a=0;a<D;a+=1)b=P[a],null===(C=B.getCleanValue(b.value,!0))||!I&&0===C?$+=1:(O.push(b),Q.push(a),M+=C);if(!_.singletonCase&&(_.singletonCase=D-$==1),$&&V.length>D-$)for(a=V.length-1;$>0;a-=1,$-=1)V[a]&&(k=(b=V[a]).config,L.push(b),k.y=null);for(0===M&&(O=[]),_.valueTotal=M,_.dataLabelCounter=0,E.allPlotSliceEnabled=E.enableslicing,a=(D=O.length)-1;a>=0;a-=1)x=a,e?(S=O[a],b=t!==n?V[x=t+a]:V[x=V.length-D+a]):(b=V[a]||(V[a]={graphics:{},config:{}}),S=O[a]),(y=b&&b.config)||(y=V[x].config={}),b.graphics||(V[x].graphics={}),y.y=C=B.getCleanValue(S.value,!0),y.seriesName=i=(0,c.parseUnsafeString)((0,c.pluck)(S.label,S.name,c.BLANKSTRING)),y.labellink=(0,c.pluck)(S.labellink,F.labellink),o=(0,c.pluck)(S.color,G.getPlotColor(Q[a])),r=(0,c.pluck)(S.alpha,F.plotfillalpha,c.HUNDREDSTRING),s=(l=y.borderConfig=this._parseBorderConfig(o,r,S)).setPlotBorderColor,h=l.setPlotBorderAlpha,u={opacity:A(r,h)/100},(f=Boolean((0,c.pluckNumber)(S.issliced,F.issliced,0)))&&(q||(-1!==Y&&(V[V.length-Y-1].sliced=!1),_.lastSlicedid=a),_.preSliced=f),v=(m=(0,c.pluckNumber)(S.dashed,R))?(0,c.getDashStyle)((0,c.pluck)(S.dashlen,X),(0,c.pluck)(S.dashgap,K),W):"none",this._parseDisplayProperties(S,y),d=H?i:c.BLANKSTRING,z&&(g=J?B.legendPercentValue(C/M*100):B.legendValue(C),d=Z?g+(d&&ee+d):(d&&d+ee)+g),_.dataLabelCounter+=1,this._isStyled(S)?y.style=(0,c.parsexAxisStyles)(S,{},F,E.dataLabelStyle,o):y.style&&delete y.style,y.showInLegend=d!==c.BLANKSTRING,y.isVisible=!0,y.name=d,y.shadow=u,y.setColor=o,y.setAlpha=r,y.color=(0,p["default"])(o,r,U,_.doughnutradius),y._3dAlpha=r,y.borderColor=(0,c.convertColor)(s,h),y.borderWidth=W,y.link=(0,c.getValidValue)(S.link),y.sliced=f,y.dashStyle=v,y.setBorderDashed=m,(y.doNotSlice=(0,c.pluck)(S.enableslicing,E.enableslicing)!==c.ONESTRING)||E.allPlotSliceEnabled!==c.ZEROSTRING||(E.allPlotSliceEnabled=c.ONESTRING),this._parseHoverEffectOptions(a),y.centerLabelConfig=void 0,y.radius3D=U;j&&V&&V.reverse(),_.dataArr=O,_.enableRotation=V.length>1?(0,c.pluckNumber)(F.enablerotation,1):0},a._parseHoverEffectOptions=function(e){var t,a,i,o,r,l,s,h,u,d,g=this.getFromEnv("chart").getFromEnv("dataSource").chart,p=this.config,f=this.components.data[e].config,m=this.config.JSONData,v=m.data[e],b=f.setColor,x=f._3dAlpha,y=p.radius3D,C=f.borderConfig,k=C.setPlotBorderAlpha,S=C.setPlotBorderColor,w=p.setBorderWidth,L=(0,c.pluckNumber)(f.hovereffect,p.showHoverEffect),A=f.hoverEffects={enabled:L};if(L===n&&(L=A.enabled=(0,c.pluck)(v.hovercolor,m.hovercolor,g.plotfillhovercolor,v.hoveralpha,m.hoveralpha,g.plotfillhoveralpha,v.borderhovercolor,m.borderhovercolor,g.plotborderhovercolor,v.borderhoveralpha,m.borderhoveralpha,g.plotborderhoveralpha,g.plotfillhoveralpha,v.borderhoverthickness,m.borderhoverthickness,g.plotborderhoverthickness,n)!==n),L){if(t=(0,c.pluckNumber)(v.highlightonhover,m.highlight,g.highlight,1),(a=(0,c.pluck)(v.hovercolor,m.hovercolor,g.plotfillhovercolor))&&t&&(t=0),a=(0,c.pluck)(a,b),i=(0,c.pluck)(v.hoveralpha,m.hoveralpha,g.plotfillhoveralpha,x),o=(0,c.pluck)(v.borderhovercolor,m.borderhovercolor,g.plotborderhovercolor,S),f.hoverBorderColor=o,r=(0,c.pluck)(v.borderhoveralpha,m.borderhoveralpha,g.plotborderhoveralpha,g.plotfillhoveralpha,k),l=(0,c.pluckNumber)(v.borderhoverthickness,m.borderhoverthickness,g.plotborderhoverthickness,w),a.replace(/,+?$/,""),1===t){for(u=(h=(s="string"==typeof a)?a.split(/\s{0,},\s{0,}/):a.color.split(/\s{0,},\s{0,}/)).length,d=0;d<u;d++)h[d]=(0,c.getLightColor)(h[d],70);s?a=h.join(","):a.color=h.join(",")}this._setHoverColor(A,a,i,y),A.hoverColor=a,A.alpha=i,A.borderColor=(0,c.convertColor)(o,r),A.borderAlpha=r,A.borderWidth=l}else A.enabled=!1},a.organizeDatalabels=function(){var e,t,a,i,n,o=this.config,r=this.components.data,l=[],s=[],c=r.length;for(e=0;e<c;e++)i=(t=r[e].config).labelPosition,n=t.valuePosition,null!==t.y&&"undefined"!=typeof t.y&&!1!==t.isVisible&&("outside"===i&&"outside"===n?l.push({point:r[e]}):"inside"===i&&"inside"===n?s.push({point:r[e]}):(l.push({point:r[e]}),s.push({point:r[e]})));a=D(l),o.labelsPlacedOutside=this.skipOverlappingLabels(a),o.labelsPlacedInside=s,this.rotateDataLabels()},a.skipOverlappingLabels=function(e){var t,a,i,n,o,r,l=e,s=this.config,c=s.dataLabelOptions,h=c.distance+s.pieMinRadius,u=[];for(o=s.labelLineHeight=parseInt(c.style.fontSize,10),s.labelsMaxInQuadrant=r=E(h/o),a=0;a<4;a++)if(c.skipOverlapLabels&&(t=l[a].length-r)>0)for(l[a].sort(G),i=0,n=(t=l[a].splice(0,t)).length;i<n;i++)this.disposeLabelAndConnector(t[i].point.graphics,[{el:"label",animLabel:"label"},{el:"innerLabel",animLabel:"label"},{el:"connector",animLabel:"connector"}]);for(a=0;a<4;a++)for(i=0,n=l[a].length;i<n;i++)u.push(l[a][i]);return u},a.rotateDataLabels=function(){this.rotateOuterLabels(),this.rotateInnerLabels()},a.rotateOuterLabels=function(){var e,t,a,i,n,r,l,s,h,u,d,g,p,m,v,b,x,y,C,k,S,E,_,T,P,I=this.config,M=this.getFromEnv("chart"),O=M.getFromEnv("animationManager"),V=M.getChildren("legend")[0],B=V&&V.config||{},G=this.getFromEnv("smartLabel"),W=M.config,q=I.dataLabelOptions,Y=I.labelLineHeight,X=I.pieMinRadius,K=M.config,Z=K.canvasLeft,J=K.canvasWidth,$=K.useEllipsesWhenOverflow,Q=q.connectorPadding,ee=q.manageLabelOverflow,te=q.distance,ae=q.enableSmartLabels,ie=D(I.labelsPlacedOutside),ne=te+X,oe=A(ie[0].length,ie[1].length,ie[2].length,ie[3].length),re=Z+.5*J,le=W.canvasTop+.5*W.canvasHeight,se=I.handlersAPI,ce=se.plotDragStart,he=se.plotDragEnd,ue=se.plotDragMove,de=se.plotRollOver,ge=se.plotRollOut,pe=[],fe=[],me=this.getFromEnv("toolTipController"),ve=this.getContainer("label-group");for(t=A(N(oe,I.labelsMaxInQuadrant)*Y,ne+Y),a=0;a<4;a++)ie[a].sort(H);for(ie[0].reverse(),ie[2].reverse(),i=0;i<4;i++){for(k=t,C=ie[i].length*Y,pe=[],a=0,n=ie[i].length;a<n;a++)x=ie[i][a],(l=F(t*w(x.angle)))>k?l=k:l<C&&(l=C),C-=Y,k=l-Y,pe.push(l);for(C=0,k=t-(n-1)*Y,fe=[],a=ie[i].length-1;a>=0;a--)x=ie[i][a],(l=F(t*w(x.angle)))<C?l=C:l>k&&(l=k),C=l+Y,k+=Y,fe.push(l);for(a=0;a<n;a++)l=N(t,(pe[a]+fe[n-1-a])/2),s=t*L(Math.asin(l/t)),p=(r=(x=ie[i][a]).point).config,m=r.graphics,v=p.props.connector.attr,g=c.BLANKSTRING,(S=Object.assign({},p.props.label.attr))["text-anchor"]=0===i||3===i?"start":"end",S.y=u=le+j[i]*l,S.x=h=re+U[i]*(s+2*Q),p.sliced&&(S.y+=p.transY,S.x+=p.transX),"outside"===p.labelPosition&&"outside"===p.valuePosition?this.disposeLabelAndConnector(m,[{el:"innerLabel",animLabel:"label"}]):S.text="outside"===p.labelPosition?p.labelText:p.valueText,S.text?(y={x:re+X*L(x.angle),y:le+X*w(x.angle)},b=p.connectorPath=(0,f.getConnectorPath)(y,{x:re+U[i]*s,y:le+j[i]*l},{isSlanted:q.isSmartLineSlanted,padding:Q,quadrant:i,transX:p.sliced?p.transX:0,transY:p.sliced?p.transY:0}),ee&&(d=1===i||2===i?S.x-Z:Z+J-S.x,"right"!==B.align&&"left"!==B.align||(d-=B.symbolWidth+2*B.borderWidth),G.useEllipsesOnOverflow($),G.setStyle(p.style),e=G.getSmartText(S.text,d,parseFloat(G.style.lineHeight)),S.text=e.text,g=e.tooltext),P=m.label,m.label=T=O.setAnimation({el:P||"text",attr:S,css:p.props.label.css,component:this,container:ve,label:"label"}),T.outlineText(I.showTextOutline,S.fill),P||T.on("fc-dragstart",ce).on("fc-dragmove",ue).on("fc-dragend",he).on("fc-click",z.bind(T,M,p.labellink)).on("fc-click",R(this,T)).on("fc-mouseover",de).on("fc-mouseout",ge),g?g&&me.enableToolTip(T,g):me.disableToolTip(T),T.x=h,T.y=u,T&&T.data("textPos",{x:S.x,y:S.y}).data("plotItem",p.plotItem).data("eventArgs",p.eventArgs),_=m.connector,ae?(m.connector=E=O.setAnimation({el:_||"path",attr:(0,o["default"])({path:b},v),container:ve,component:this,label:"connector"}),_||E.on("fc-dragstart",ce).on("fc-dragmove",ue).on("fc-dragend",he).on("fc-mouseover",de).on("fc-mouseout",ge),E.data("connectorPath",{path:b}).data("plotItem",p.plotItem).data("eventArgs",p.eventArgs)):_&&this.disposeLabelAndConnector(m,[{el:"connector",animLabel:"connector"}])):this.disposeLabelAndConnector(m,[{el:"label",animLabel:"label"},{el:"connector",animLabel:"connector"}])}},a.rotateInnerLabels=function(){var e,t,a,i,n,o,r,l,s,h,u,d,g,p,m=this.config,v=m.labelsPlacedInside,b=m.pieCenter,x=this.getFromEnv("animationManager"),y=b[0],C=b[1],k=v.length,S=this.components.data.length,A=m.handlersAPI,N=A.plotDragStart,E=A.plotDragEnd,_=A.plotDragMove,T=A.plotRollOver,P=A.plotRollOut;for(a=0;a<k;a++)n=(i=v[a].point).config,o=i.graphics,d=Object.assign({},n.props.label.attr),u=F(n.startAngle-n.endAngle),s=n.minAngleForLabel,h=n.minAngleForValue,"inside"===n.valuePosition&&"inside"===n.labelPosition?(this.disposeLabelAndConnector(o,[{el:"label",animLabel:"label"},{el:"connector",animLabel:"connector"}]),u>=h&&u<s?d.text=n.valueText:u<h&&u>=s?d.text=n.labelText:u<h&&u<s&&(d.text=c.BLANKSTRING)):"inside"===n.valuePosition?d.text=u>=h?n.valueText:c.BLANKSTRING:d.text=u>=s?n.labelText:c.BLANKSTRING,d.text?(l=m.pieMinRadius*n.innerLabelRadiusPercent,r=(0,f.getCleanAngle)(n.angle),d.x=e=y+(S>1?l*L(r):0),d.y=t=C+(S>1?l*w(r):0),n.sliced&&(d.y+=n.transY,d.x+=n.transX),d["text-anchor"]="middle",p=o.innerLabel,o.innerLabel=g=x.setAnimation({el:p||"text",attr:d,css:n.props.label.css,component:this,container:this.getContainer("label-group"),label:"label"}),g.outlineText(m.showTextOutline,d.fill),p||g.on("fc-dragstart",N).on("fc-dragmove",_).on("fc-dragend",E).on("fc-click",z.bind(g,this.getFromEnv("chart"),n.labellink)).on("fc-click",R(this,g)).on("fc-mouseover",T).on("fc-mouseout",P),g.x=e,g.y=t,g&&g.data("textPos",{x:d.x,y:d.y}).data("plotItem",n.plotItem).data("eventArgs",n.eventArgs)):this.disposeLabelAndConnector(o,[{el:"innerLabel",animLabel:"label"}])},a.disposeLabelAndConnector=function(e,t){void 0===t&&(t=[]);var a,i,n,o=this.getFromEnv("animationManager"),r=t.length;for(a=0;a<r;a++)e[n=(i=t[a]).el]&&(e[n]=o.setAnimation({el:e[n],component:this,label:i.animLabel})),delete e[n]},a._setHoverColor=function(e,t,a,i){i?e.color=(0,p["default"])(t,a,i,this.config.doughnutradius):(e.color=t,e.alpha=a)},a.updateData=function(){var t=this,a=t.config,i=t.components.data;a.valueTotal-=i[arguments[1]].config.y,e.prototype.updateData.call(this,arguments)},a._rotate=function(){var e,t,a,i,o,r,l,s,h,u=this.getFromEnv("chart"),d=this.config,g=this.components.data,p=u.config,f=d.piePlotOptions,m=(d.startAngle||0)%P,v=d.slicingDistance,b=d.valueTotal,x=P/b,y=p.canvasLeft+.5*p.canvasWidth,C=p.canvasTop+.5*p.canvasHeight,k=d.pieMinRadius,S=.5*(f.innerSize||0);for(o=r=m,h=0;h<g.length;h+=1)l=g[h].config,s=g[h].graphics,null!==(a=l.y)&&a!==n&&(r=o,i=.5*((o-=d.singletonCase?P:a*x)+r),l.angle=i,l.transX=L(i)*v,l.transY=w(i)*v,l.slicedTranslation="t"+L(i)*v+c.COMMASTRING+w(i)*v,(t=l._rotateAttrs)||(t=l._rotateAttrs={ringpath:[],transform:c.BLANKSTRING}),(e=t.ringpath)[0]=y,e[1]=C,e[2]=k,e[3]=S,e[4]=o,e[5]=r,s.element.attr({ringpath:t.ringpath,transform:l.sliced?l.slicedTranslation:""}));this.organizeDatalabels()},a._parsePiePlotOptions=function(){var e=this.config;return{size:e.pieMinRadius,slicedOffset:e.slicingDistance}},a._parseDataLabelOptions=function(){return{style:this.getFromEnv("chart").config.dataLabelStyle}},a._addLegend=function(){var e,t,a,i,n=this.getFromEnv("legend"),o=this.components.data;for(e=0;e<o.length;e++)if(null!==(t=o[e].config).y&&t.seriesName)i={index:e,type:this.getName(),label:t.seriesName,enabled:(0,c.pluckNumber)(t.includeInLegend,1)},(a=n.getItem(t.legendItemId))||(t.legendItemId=n.createItem(this),a=n.getItem(t.legendItemId),this.addExtEventListener("fc-click",a.itemClickFn,a)),a.configure(i),a.setStateCosmetics("default",{symbol:{fill:(0,c.toRaphaelColor)(t.setColor),rawFillColor:t.setColor,stroke:(0,c.toRaphaelColor)(t.borderColor)}});else{if(!t.legendItemId)continue;(a=n.getItem(t.legendItemId))&&n.disposeItem(a.getId()),delete t.legendItemId}},a.getPlotData=function(e,t){var a,i,n,o=this.components.data[e].config,r=this.config.userData||(this.config.userData=[]);if(r[e])a=r[e];else{for(n in a=r[e]={},o)"object"!=typeof(i=o[n])&&"function"!=typeof i&&0!==n.indexOf("_")&&(a[n]=i);a.value=a.y,a.categoryLabel=a.label=a.seriesName,delete a.y,delete a.total,delete a.doNotSlice,delete a.name,delete a.seriesName,delete a.centerAngle,delete a.showInLegend,delete a.angle,delete a.endAngle,delete a.isVisible,delete a.setColor,delete a.slicedTranslation,delete a.startAngle,delete a.transX,delete a.transY,delete a.pValue}return a.sliced=t,a},a._parseBorderConfig=function(e,t,a){var i=this.config.pieBorderColor,n=this.getFromEnv("chart").getFromEnv("dataSource").chart,o=(0,c.pluck)(a.bordercolor,i),r=(0,c.pluck)(a.borderalpha,n.plotborderalpha,n.pieborderalpha);return{setPlotBorderColor:o=(0,c.pluck)(o,(0,c.getLightColor)(e,25)).split(c.COMMASTRING)[0],setPlotBorderAlpha:r=n.showplotborder===c.ZEROSTRING?c.ZEROSTRING:(0,c.pluck)(r,t,"80")}},a.legendInteractivity=function(e){var t,a,i,n=this.components.data,o=e.getId();for(a=0,t=n.length;a<t;a++)n[a].config.legendItemId===o&&(i=n[a].graphics,this.plotGraphicClick.call(i.element))},a._createContainer=function(){var e,t,a,i,n=this.getName(),o=this.groupName,r=this.getLinkedParent(),l=o||this.dsGroup||n;!r.getChildContainer(l+"Group")&&(l="default"),e=r.getChildContainer("datalabelsGroup"),t=this.getContainer("pie-groups")||this.addContainer("pie-groups",I("pie",e,this)),a=this.getContainer("pie-plot-groups")||this.addContainer("pie-plot-groups",I("pie-plot",t,this)),i=this.getContainer("pie-label-groups")||this.addContainer("pie-label-groups",I("pie-label",t,this)),this.getContainer("plot-group")||this.addContainer("plot-group",I("plots",a,this)),this.getContainer("plot-shadow-group")||this.addContainer("plot-shadow-group",I("plot-shadows",a,this).toBack()),this.getContainer("label-group")||this.addContainer("label-group",I("labels",i,this)),this.getContainer("connector-shadow-group")||this.addContainer("connector-shadow-group",I("connector-shadows",i,this)),this.getContainer("anchor-shadow-group")||this.addContainer("anchor-shadow-group",I("anchor-shadows",i,this))},a.allocatePosition=function(){var e,t,a=this.components.data,i=a.length;for(e=0;e<i;e++)t=a[e],this.parsePlotAttributes(t,e),this.parseLabelAttributes(t,e)},a.parsePlotAttributes=function(e,t){var a,i,o,r,l,s,h,u,d,g,p,f,m,v,b=this.components.data,y=this.getFromEnv("chart"),C=y.config,k=this.config,S=t,A=b.length,N=C.canvasWidth,F=C.canvasHeight,E=C.canvasLeft+.5*N,_=C.canvasTop+.5*F,T=k.valueTotal,D=k.piePlotOptions=this._parsePiePlotOptions(),I=D.slicedOffset,O=D.size,R=.5*(k.innerSize||0),V=(k.startAngle||0)%P,B=V-P,G=k.animateClockWise;m=T&&P/T,k.pieCenter=[E,_],r=V,l=V,t>0&&(r=b[t-1].config.startAngle,l=b[t-1].config.endAngle),h=(s=e.config).y,u=s.displayValue,d=s.sliced,a=s.toolText,i=!!s.link,null!==h&&h!==n&&!1!==s.isVisible&&((g=s.color).r=O,g.cx=E,g.cy=_,l=r,p=.5*((r-=k.singletonCase?P:h*m)+l),G?B:V,f=k.previousData={cx:E,cy:_,r:O,r2:R},o=this.config.drawn?[f.cx,f.cy,f.r,f.r2,r,l]:[E,_,O,R,r,l],d&&(s.slicedTranslation="t"+L(p)*I+","+w(p)*I),v={"stroke-width":s.borderWidth,stroke:s.borderColor,fill:x?M(s.color,k.doughnutradius):(0,c.toRaphaelColor)(s.color),transform:d?s.slicedTranslation:"","stroke-dasharray":s.dashStyle,redrawDataLabels:V,ringpath:o,cursor:i?"pointer":""},s.props={element:{attr:v}},s.eventArgs={index:k.reversePlotOrder?A-1-S:S,link:s.link,value:s.y,displayValue:s.displayValueArgs,categoryLabel:s.categoryLabel,isSliced:d,toolText:a,pValue:s.pValue,color:s.setColor,alpha:s.setAlpha,borderColor:s.borderConfig.setPlotBorderColor,borderAlpha:s.borderConfig.setPlotBorderAlpha,dashed:s.setBorderDashed,showLabel:s.showLabel,showValue:s.showValue,labelPosition:s.labelPosition,valuePosition:s.valuePosition,labelFont:s.labelFont,labelFontColor:s.labelFontColor||"#555555",labelLink:s.labellink,hoverColor:s.hoverEffects.hoverColor,hoverAlpha:s.hoverEffects.alpha,borderHoverColor:s.hoverBorderColor,borderHoverAlpha:s.hoverEffects.borderAlpha},s.plotItem={chart:y,index:S,seriesData:k,value:h,pValue:s.pValue,displayValue:s.displayValue||"",angle:s.angle=p,angle1:s.startAngle=r,angle2:s.endAngle=l,slicedX:L(p)*I,slicedY:w(p)*I,sliced:d,labelText:u,toolText:a,name:s.name,link:s.link,percentage:T?h*T/100:0,originalIndex:A-S-1,style:s.style,color:(0,c.toRaphaelColor)(s.color),borderColor:s.borderColor,borderWidth:s.borderWidth,rolloverProperties:s.hoverEffects,radius:O,center:[E,_],innerDiameter:2*R,centerLabelConfig:s.centerLabelConfig,isVisible:s.isVisible,label:s.seriesName,connector:void 0,transX:s.transX=L(p)*I,transY:s.transY=w(p)*I,slicedTranslation:s.slicedTranslation="t"+L(p)*I+","+w(p)*I})},a.parseLabelAttributes=function(e){var t,a,i,o,r,l=this.getFromEnv("chart").config,s=l.dataLabelStyle,h=this.config,u=l.style,d=l.textDirection,g=h.dataLabelOptions;(o=(t=e.config)._textAttrs)||(o=t._textAttrs={}),a=t.y,i=t.displayValue,u=t.style,null!==a&&a!==n&&!1!==t.isVisible&&(i!==n?(u&&((r=t._textCss)||(r=t._textCss={}),r.fontFamily=u.fontFamily,r.fontSize=u.fontSize,r.lineHeight=u.lineHeight,r.fontWeight=u.fontWeight,r.fontStyle=u.fontStyle),t.plotItem.style=t.style=u||(u=s),o.text=i,o.fill=u.color||"#000000",o["text-bound"]=[u.backgroundColor,u.borderColor,u.borderThickness,u.borderPadding,u.borderRadius,u.borderDash],o.direction=d,o["line-height"]=u.lineHeight):o.text=c.BLANKSTRING,t.props.label={attr:o,css:r},t.props.connector={attr:{"stroke-width":g.connectorWidth,stroke:g.connectorColor||"#606060"}})},a.draw=function(){var e,t,a,i,o,r,l,s,h,u,d,g,p,f,m,v,b,x=this.getFromEnv("animationManager"),y=this.getFromEnv("chart").config,C=y.dataLabelStyle,k=this.config,S=k.showShadow,w=this.components,L=w.removeDataArr=w.removeDataArr||[],A=this.getState("visible"),N=w.data||[],E=N.length,_=y.canvasWidth,T=y.canvasHeight,P=y.canvasLeft+.5*_,D=y.canvasTop+.5*T,I=k.handlersAPI.plotDragStart,M=k.handlersAPI.plotDragEnd,O=k.handlersAPI.plotDragMove,V=k.handlersAPI.plotRollOver,B=k.handlersAPI.plotRollOut,G=function(){var e=k.pieCenter||[],t=k.piePlotOptions||[],a={cx:e[0],cy:e[1],r:t.size,r2:.5*(k.innerSize||0)};return function(e){var t,i=!1;for(t in e)if(F(e[t]-a[t])>5){i=!0;break}return i}}(),H=(k.piePlotOptions=this._parsePiePlotOptions()).size,z=.5*(k.innerSize||0),W=this.getFromEnv("toolTipController");for(this.getContainer("pie-groups")||this._createContainer(),s=this.getContainer("plot-group"),h=this.getContainer("plot-shadow-group"),u=this.getContainer("label-group"),d=this.getContainer("connector-shadow-group"),g=this.getContainer("anchor-shadow-group"),this.config.drawn&&(e=G({cx:P,cy:D,r:H,r2:z})&&!1),u.css(C),b=k.valueTotal,A&&b?(s.show(),h.show(),u.show(),d.show(),g.show()):(s.hide(),h.hide(),u.hide(),d.hide(),g.hide()),L.length&&this.removeElement(),t=0;t<E;t+=1)p=(a=N[t]).graphics,m=(f=a.config).y,i=f.toolText,null!==m&&m!==n&&!1!==f.isVisible&&(r=p.element,o=x.setAnimation({el:r||"ringpath",attr:f.props.element.attr,label:"ringpath",props:{startAngle:this.config.startAngle},container:s,component:this}),r||(p.element=o,o.on("fc-dragstart",I).on("fc-dragmove",O).on("fc-dragend",M).on("fc-click",R(this,o)).on("fc-mouseover",V).on("fc-mouseout",B)),v=f.plotItem,l=f.eventArgs,v.graphic=o,o.show().shadow(S&&f.shadow,h).data("plotItem",v).data("dataset",this).data("eventArgs",l),W.enableToolTip(o,i));this.organizeDatalabels(),!this.config.__attachRestoreColor&&this.addExtEventListener("animationComplete",(function(){var t,a;if(e)for(t=0;t<E;t+=1)(a=N[t]).graphics.element&&a.graphics.element.attr({fill:(0,c.toRaphaelColor)(a.config.color)})}),x),this.config.__attachRestoreColor=!0,this.config.drawn=!0},a.sliceInOtherPies=function(e){var t,a=this.components.data,i=a.length,n=0;for(this.enableMultiSlicing=!0;i--;)i!==e&&(t=a[i]).config.sliced&&++n&&this.plotGraphicClick.call(t.graphics);return this.enableMultiSlicing=!1,!!n},a.removeElement=function(){var e,t,a,i,n=this.getFromEnv("animationManager"),o=this.getFromEnv("chart").config,r=this.components.removeDataArr||[],l=r.length,s=this.config,c=o.canvasWidth,h=o.canvasHeight,u=o.canvasLeft+.5*c,d=o.canvasTop+.5*h,g=s.pieMinRadius,p=.5*(s.innerSize||0),f=s.startAngle-P;for(i=0;i<l;i++){for(t in a=r[0].graphics)if(a.hasOwnProperty(t)){if(!(e=a[t]))continue;"element"===t?(n.setAnimation({el:e,attr:{ringpath:[u,d,g,p,f,f+.01],transform:""},callback:W,component:this}),delete a[t]):this.disposeLabelAndConnector(a,[{el:"label",animLabel:"label"},{el:"innerLabel",animLabel:"label"},{el:"connector",animLabel:"connector"}])}r.splice(0,1)}},a.getEventArgs=function(e){var t=e.config.index,a=this.components.data[t].config||{};return{datasetName:a.seriesName,datasetIndex:t,id:a.userID,visible:a.isVisible,label:a.seriesName,value:a.value,percentValue:a.pValue,tooltext:a.toolText,link:a.link,sliced:a.sliced}},a.remove=function(t){var a=this.config.legendItemId,i=this.getFromEnv("legend");i&&a&&i.disposeItem(a),e.prototype.remove.call(this,t)},t}(s["default"]);t["default"]=Y},526:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i={"initial.dataset.pie2D":function(){return{"group.appearing":function(e){return[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:e.component.getFromEnv("chartConfig").alphaanimation?"plot":"initial"}]},"ringpath.appearing":function(e){var t=e.component,a=e.attr.ringpath.slice(0),i=e.attr.ringpath.slice(0),n=e.props.startAngle,o=e.component.config,r=t.getFromEnv("chartConfig"),l=o.animateClockWise;return r.alphaanimation?[{}]:(l&&(i[4]+=2*Math.PI,i[5]+=2*Math.PI),a[4]=n,a[5]=n,[{initialAttr:{ringpath:a},finalAttr:{ringpath:i,transform:""},startEnd:{start:0,end:.75},effect:"linear",slot:"plot"},{initialAttr:{transform:"",ringpath:i},finalAttr:{ringpath:i},startEnd:{start:.75,end:1},effect:"linear",slot:"plot"}])},"label.appearing":[{initialAttr:{opacity:"0"},finalAttr:{opacity:"1"},slot:"final"}],"connector.appearing":function(e){return[{initialAttr:{path:e.attr.path,opacity:"0"},finalAttr:{opacity:"1"},slot:"final"}]},"label.updating":function(e){return[{initialAttr:{x:e.el.attrs.x},slot:"plot"}]}}},"slicing.dataset.pie2D":function(){return{"slice.updating":function(e){return"t0,0"!==(e.attr&&e.attr.transform)?[{initialAttr:{transform:"t0,0"},slot:"plot"}]:[{finalAttr:{transform:"t0,0"},slot:"plot"}]}}}};t["default"]=i},527:function(e,t,a){"use strict";t.__esModule=!0,t.getConnectorPath=t.getQuadrant=t.getCleanAngle=void 0;var i=Math.PI,n=i/2,o=3*i/2,r=2*i,l=function(e){var t=e%r;return t<0?t+r:t};t.getConnectorPath=function(e,t,a){void 0===a&&(a={});var i=a,n=i.isSlanted,o=i.quadrant,r=i.padding,l=i.transX,s=i.transY,c=e.x+l,h=e.y+s,u=t.x+l,d=t.y+s;return["M",c,h,"L",n?u:c,d,u+(1===o||2===o?-1:1)*(r||0),d]},t.getQuadrant=function(e){var t=l(e);return t>=0&&t<n?0:t<i?1:t<o?2:3},t.getCleanAngle=l},529:function(e,t,a){"use strict";t.__esModule=!0,t._manageLegendSpace=function(){var e,t,a,n,o=this.config,r=this.getChildren("legend")&&this.getChildren("legend")[0],l=this.getChildren("gLegend")&&this.getChildren("gLegend")[0],s=this.getFromEnv("dataSource").colorrange,c=o.hasLegend,h={},u=this.hasGradientLegend,d=this.getFromEnv("dataSource").chart,g=(0,i.pluckNumber)(d.mapbycategory,0);u&&s&&(0,i.pluckNumber)(s.gradient)&&!g?(e=l.conf,u=!0,o.gLegendEnabled=!0,n=.5,t=e.legendPosition):(e=r&&r.config,u=!1,o.gLegendEnabled=!1,t=e&&e.legendPos,n=t===i.POSITION_RIGHT?.8:.4);a=t===i.POSITION_RIGHT?o.availableWidth*n:o.availableHeight*n;u?h=this.manageGradientLegendSpace(a):!1!==c&&r&&!r.getState("removed")&&(h=r&&r._manageLegendPosition(a));this._allocateSpace({bottom:h&&h.bottom||0,right:h&&h.right||0})},t.manageGradientLegendSpace=function(e){var t,a,n,o,r=this.config,l=this.getFromEnv("gLegend"),s=l&&l.conf;r.gLegendPadding=(0,i.pluckNumber)(this.getFromEnv("chart-attrib").legendpadding,10),n=Math.min(r.gLegendPadding,.5*e),s?(t=s.legendPosition,o=l.getLogicalSpace(e),a=t===i.POSITION_BOTTOM?{bottom:(o.height||0)+n}:{right:(o.width||0)+n}):a={bottom:0,right:0};return a};var i=a(184)},536:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=function(e){var t,a,i,n=window.parseFloat,o=e._createNode,r=e._setFillAndStroke,l=e.el.constructor,s={Q:"L",Z:"X",q:"l",z:"x",",":" "},c=/,?([achlmqrstvxz]),?/gi,h=function(){return this.join(",").replace(c,t)};e.svg?(t="$1",a=function(){var a=this,i=e.is(arguments[0],"array")?arguments[0]:Array.prototype.slice.call(arguments);i?"string"==typeof i?i=i.replace(c,t):i.toString=h:i="M0,0",a.node.setAttribute("d",i.toString())},e._engine.litepath=function(t,a,i,n,s){var c,h=o("path");return(n||a).canvas.appendChild(h),(c=new l(h,a,n)).type="litepath",c.id=h.raphaelid=e._oid++,h.raphael=!0,r(c,s||{fill:"none",stroke:"#000"}),c},e._getPath.litepath=function(t){return e.parsePathString(t.node.getAttribute("d"))}):e.vml&&(t=function(e,t){return s[t]||t},i=function(){var e=this;return e._transform.apply(e,arguments),e._.bcoord&&(e.node.coordsize=e._.bcoord),e},a=function(e){var a=e;return a?"string"==typeof a?a=a.replace(c,t):a.toString=h:a="M0,0",this.node.path=a,this},e._engine.litepath=function(t,a,r,s,c){var h,u=o("shape"),d=u.style,g=new l(u,a,s),p=c||{fill:"none",stroke:"#000"},f=r;return d.cssText="position:absolute;left:0;top:0;width:21600px;height:21600px;",f=n(f),isNaN(f)?u.coordsize="21600 21600":(g._.bzoom=f,d.width="1px",d.height="1px",u.coordsize=g._.bcoord=f+" "+f),u.coordorigin=a.coordorigin,g.type="litepath",g.id=u.raphaelid=e._oid++,u.raphael=!0,g._transform=g.transform,g.transform=i,e._setFillAndStroke(g,p),(s||a).canvas.appendChild(u),(h=o("skew")).on=!0,u.appendChild(h),g.skew=h,g},e._getPath.litepath=function(t){return e.parsePathString(t.node.path||"")});e.fn.litepath=function(t,i,n){var o,r,s,c=t,h=i,u=n;return"object"==typeof c&&c.constructor!==l&&(o=c,r=(c=c.litepath).zoom,u=c.group),h&&h.constructor===l?(u=h,r=void 0):r=h,c&&c.constructor===l&&(u=c,c=""),(s=e._engine.litepath(c,this,r,u,o)).ca.litepath=a,c&&s.attr("litepath",e.is(c,"array")?[c]:c),this.__set__&&this.__set__.push(s),this._elementsById[s.id]=s}}},545:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=t.setAxisDimention=t.getSpecificyAxisConf=t.getSpecificxAxisConf=t._feedAxesRawData=void 0;var n,o,r,l,s=i(a(198)),c=i(a(508)),h=i(a(546)),u=a(184),d=i(a(547)),g=i(a(479)),p=i(a(425)),f=Math.max;t.setAxisDimention=l,t.getSpecificyAxisConf=r,t.getSpecificxAxisConf=o,t._feedAxesRawData=n;var m=function(e){function t(){var t;return(t=e.call(this)||this).registerFactory("axis",h["default"],["canvas"]),t.registerFactory("dataset",d["default"],["vCanvas"]),t}(0,s["default"])(t,e),t.getName=function(){return"MSDyBaseCartesian"};var a=t.prototype;return a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this),this.config.syncaxislimits=0},a._feedAxesRawData=function(){var e,t,a,i,n,o,r,l,s,c=this.config,h=this.getFromEnv("color-manager"),d=this.getFromEnv("dataSource"),p=this.getFromEnv("chart-attrib"),f=this.config.is3D,m=f?u.chartPaletteStr.chart3D:u.chartPaletteStr.chart2D,v=c.primaryAxisOnleft=(0,u.pluckNumber)(p.primaryaxisonleft,1),b=(0,u.pluckNumber)(p.syncaxislimits,0),x=[{line:[]}],y=[{line:[]}],C=d.trendlines||[],k=(0,u.pluckNumber)(p.showzeroplane,1),S=(0,u.pluckNumber)(p.showzeroplanevalue);for(k||S!==u.UNDEF||(S=0),e=this.getSpecificxAxisConf(),t=this.getSpecificyAxisConf(),a={isActive:!1,isPercent:this.isPercentage,axisIndex:1,uniqueClassName:1,outCanfontFamily:(0,u.pluck)(p.outcnvbasefont,p.basefont,"Verdana,sans"),outCanfontSize:(0,u.pluckFontSize)(p.outcnvbasefontsize,p.basefontsize,10),outCancolor:(0,u.pluck)(p.outcnvbasefontcolor,p.basefontcolor,h.getColor(m.baseFontColor)).replace(/^#? ([a-f0-9]+)/gi,"#$1"),axisNamePadding:p.yaxisnamepadding,axisValuePadding:p.yaxisvaluespadding,axisNameFont:p.syaxisnamefont,axisNameFontSize:p.syaxisnamefontsize,axisNameFontColor:p.syaxisnamefontcolor,axisNameFontBold:p.syaxisnamefontbold,axisNameFontItalic:p.syaxisnamefontitalic,axisNameBgColor:p.syaxisnamebgcolor,axisNameBorderColor:p.syaxisnamebordercolor,axisNameAlpha:p.syaxisnamealpha,axisNameFontAlpha:p.syaxisnamefontalpha,axisNameBgAlpha:p.syaxisnamebgalpha,axisNameBorderAlpha:p.syaxisnameborderalpha,axisNameBorderPadding:p.syaxisnameborderpadding,axisNameBorderRadius:p.syaxisnameborderradius,axisNameBorderThickness:p.syaxisnameborderthickness,axisNameBorderDashed:p.syaxisnameborderdashed,axisNameBorderDashLen:p.syaxisnameborderdashlen,axisNameBorderDashGap:p.syaxisnameborderdashgap,axisNameWidth:p.syaxisnamewidth,useEllipsesWhenOverflow:p.useellipseswhenoverflow,rotateAxisName:(0,u.pluckNumber)(p.rotateyaxisname,1),axisName:p.syaxisname,divLineColor:(0,u.pluck)(p.divlinecolor,h.getColor(m.divLineColor)),divLineAlpha:(0,u.pluck)(p.divlinealpha,h.getColor("divLineAlpha")),divLineThickness:(0,u.pluckNumber)(p.divlinethickness,1),divLineIsDashed:Boolean((0,u.pluckNumber)(p.divlinedashed,p.divlineisdashed,0)),divLineDashLen:(0,u.pluckNumber)(p.divlinedashlen,4),divLineDashGap:(0,u.pluckNumber)(p.divlinedashgap,2),showAlternateGridColor:(0,u.pluckNumber)(p.showalternatehgridcolor,1),alternateGridColor:(0,u.pluck)(p.alternatehgridcolor,h.getColor("altHGridColor")),alternateGridAlpha:(0,u.pluck)(p.alternatehgridalpha,h.getColor("altHGridAlpha")),numDivLines:p.numdivlines,axisMinValue:b?(0,u.pluckNumber)(p.syaxisminvalue,p.pyaxisminvalue,p.yaxisminvalue):p.syaxisminvalue,axisMaxValue:b?(0,u.pluckNumber)(p.syaxismaxvalue,p.pyaxismaxvalue,p.yaxismaxvalue):p.syaxismaxvalue,setAdaptiveMin:p.setadaptivesymin||p.setadaptiveymin,adjustDiv:p.adjustdiv,labelStep:p.yaxisvaluesstep,showAxisValues:(0,u.pluckNumber)(p.showsyaxisvalues,p.showsyaxisvalue,p.showyaxisvalues,p.showyaxisvalue),showLimits:(0,u.pluckNumber)(p.showsecondarylimits,p.showyaxislimits,p.showlimits),showDivLineValues:(0,u.pluckNumber)(p.showdivlinesecondaryvalue,p.showyaxisvalues,p.showyaxisvalue,1),showZeroPlane:k,zeroPlaneColor:p.zeroplanecolor,zeroPlaneThickness:(0,u.pluckNumber)(p.zeroplanethickness,p.divlinethickness,2),zeroPlaneAlpha:p.zeroplanealpha,showZeroPlaneValue:S,trendlineColor:p.trendlinecolor,trendlineToolText:p.trendlinetooltext,trendlineThickness:p.trendlinethickness,trendlineAlpha:p.trendlinealpha,showTrendlinesOnTop:p.showtrendlinesontop,showAxisLine:f?0:(0,u.pluckNumber)(p.showsyaxisline,p.showaxislines,p.drawAxisLines,0),axisLineThickness:(0,u.pluckNumber)(p.syaxislinethickness,p.axislinethickness,1),axisLineAlpha:(0,u.pluckNumber)(p.syaxislinealpha,p.axislinealpha,100),axisLineColor:(0,u.pluck)(p.syaxislinecolor,p.axislinecolor,"#000000"),labelFont:p.yaxisvaluefont,labelFontSize:p.yaxisvaluefontsize,labelFontColor:p.yaxisvaluefontcolor,labelAlpha:p.yaxisvaluealpha,labelFontBold:p.yaxisvaluefontbold,labelFontItalic:p.yaxisvaluefontitalic,labelBdrColor:p.yaxisvaluebordercolor,labelBdrAlpha:p.yaxisvalueborderalpha,labelBgAlpha:p.yaxisvaluebgalpha,labelLink:p.yaxisvaluelink,labelBgColor:p.yaxisvaluebgcolor,labelBdrThickness:p.yaxisvalueborderthickness,labelBdrPadding:p.yaxisvalueborderpadding,labelBdrRadius:p.yaxisvalueborderradius,labelBdrDashed:p.yaxisvalueborderdashed,labelBdrDashLen:p.yaxisvalueborderdashlen,labelBdrDashGap:p.yaxisvalueborderdashgap},e.vtrendlines=(0,u.extend2)([],d.vtrendlines),l=0,r=C.length;l<r;l++)for(o=(i=C[l]&&C[l].line||[]).length,s=0;s<o;s++)n=i[s]||{},(0,g["default"])(n.parentyaxis,"s")?x[0].line.push(n):y[0].line.push(n);return t.trendlines=(0,u.extend2)([],y),a.trendlines=(0,u.extend2)([],x),1===v?(t.isVertical=!0,t.isReverse=!0,t.isOpposit=!1,a.isVertical=!0,a.isReverse=!0,a.isOpposit=!0):(t.isVertical=!0,t.isReverse=!0,t.isOpposit=!0,a.isVertical=!0,a.isReverse=!0,a.isOpposit=!1),{yAxisConf:[t,a],xAxisConf:[e]}},a.getSpecificxAxisConf=function(){var e=this.getFromEnv("chart-attrib"),t=this.config.is3D,a=this.getBasexAxisConf(),i=this.config;return a.zeroPlaneThickness=(0,u.pluckNumber)(e.vzeroplanethickness,e.vdivlinethickness,2),a.zeroPlaneAlpha=(0,u.pluckNumber)(e.vzeroplanealpha,e.vdivlinealpha,i.zeroplanealpha),a.showZeroPlaneValue=e.showvzeroplanevalue,a.showAxisLine=t?0:(0,u.pluckNumber)(e.showxaxisline,e.showaxislines,e.drawAxisLines,0),a.axisLineColor=(0,u.pluck)(e.xaxislinecolor,e.axislinecolor,"#000000"),a.isReverse=!1,a.showAlternateGridColor=(0,u.pluckNumber)(e.showalternatevgridcolor,0),a.numDivLines=e.numvdivlines,a.maxLabelHeight=e.maxlabelheight,a.axisName=e.xaxisname,a.setAdaptiveMin=e.setadaptivexmin,a.showLimits=e.showvlimits,a.showDivLineValues=(0,u.pluckNumber)(e.showvdivlinevalues,e.showvdivlinevalues),a},a.getSpecificyAxisConf=function(){var e=this.getFromEnv("chart-attrib"),t=this.config.is3D,a=t?u.chartPaletteStr.chart3D:u.chartPaletteStr.chart2D,i=this.config,n=this.getFromEnv("color-manager"),o=(0,u.pluckNumber)(e.syncaxislimits,0),r=(0,u.pluckNumber)(e.showzeroplane,1),l=(0,u.pluckNumber)(e.showzeroplanevalue);return r||l!==u.UNDEF||(l=0),{outCanfontFamily:(0,u.pluck)(e.outcnvbasefont,e.basefont,"Verdana,sans"),outCanfontSize:(0,u.pluckFontSize)(e.outcnvbasefontsize,e.basefontsize,10),outCancolor:(0,u.pluck)(e.outcnvbasefontcolor,e.basefontcolor,n.getColor(a.baseFontColor)).replace(/^#? ([a-f0-9]+)/gi,"#$1"),axisNamePadding:(0,u.pluckNumber)(e.pyaxisnamepadding,e.yaxisnamepadding),axisValuePadding:(0,u.pluckNumber)(e.pyaxisvaluespadding,e.yaxisvaluespadding),axisNameFont:(0,u.pluck)(e.pyaxisnamefont,e.yaxisnamefont),axisNameFontSize:(0,u.pluckNumber)(e.pyaxisnamefontsize,e.yaxisnamefontsize),axisNameFontColor:(0,u.pluck)(e.pyaxisnamefontcolor,e.yaxisnamefontcolor),axisNameFontBold:(0,u.pluckNumber)(e.pyaxisnamefontbold,e.yaxisnamefontbold),axisNameFontItalic:(0,u.pluckNumber)(e.pyaxisnamefontitalic,e.yaxisnamefontitalic),axisNameBgColor:(0,u.pluck)(e.pyaxisnamebgcolor,e.yaxisnamebgcolor),axisNameBorderColor:(0,u.pluck)(e.pyaxisnamebordercolor,e.yaxisnamebordercolor),axisNameAlpha:(0,u.pluckNumber)(e.pyaxisnamealpha,e.yaxisnamealpha),axisNameFontAlpha:(0,u.pluckNumber)(e.pyaxisnamefontalpha,e.yaxisnamefontalpha),axisNameBgAlpha:(0,u.pluckNumber)(e.pyaxisnamebgalpha,e.yaxisnamebgalpha),axisNameBorderAlpha:(0,u.pluckNumber)(e.pyaxisnameborderalpha,e.yaxisnameborderalpha),axisNameBorderPadding:(0,u.pluckNumber)(e.pyaxisnameborderpadding,e.yaxisnameborderpadding),axisNameBorderRadius:(0,u.pluckNumber)(e.pyaxisnameborderradius,e.yaxisnameborderradius),axisNameBorderThickness:(0,u.pluckNumber)(e.pyaxisnameborderthickness,e.yaxisnameborderthickness),axisNameBorderDashed:(0,u.pluckNumber)(e.pyaxisnameborderdashed,e.yaxisnameborderdashed),axisNameBorderDashLen:(0,u.pluckNumber)(e.pyaxisnameborderdashlen,e.yaxisnameborderdashlen),axisNameBorderDashGap:(0,u.pluckNumber)(e.pyaxisnameborderdashgap,e.yaxisnameborderdashgap),axisNameWidth:(0,u.pluckNumber)(e.pyaxisnamewidth,e.yaxisnamewidth),useEllipsesWhenOverflow:e.useellipseswhenoverflow,rotateAxisName:(0,u.pluckNumber)(e.rotateyaxisname,1),axisName:(0,u.pluck)(e.pyaxisname,e.yaxisname),divLineColor:(0,u.pluck)(e.divlinecolor,n.getColor(a.divLineColor)),divLineAlpha:(0,u.pluck)(e.divlinealpha,n.getColor("divLineAlpha")),divLineThickness:(0,u.pluckNumber)(e.divlinethickness,1),divLineIsDashed:Boolean((0,u.pluckNumber)(e.divlinedashed,e.divlineisdashed,0)),divLineDashLen:(0,u.pluckNumber)(e.divlinedashlen,4),divLineDashGap:(0,u.pluckNumber)(e.divlinedashgap,2),showAlternateGridColor:(0,u.pluckNumber)(e.showalternatehgridcolor,1),alternateGridColor:(0,u.pluck)(e.alternatehgridcolor,n.getColor("altHGridColor")),alternateGridAlpha:(0,u.pluck)(e.alternatehgridalpha,n.getColor("altHGridAlpha")),numDivLines:e.numdivlines,axisMinValue:o?(0,u.pluckNumber)(e.syaxisminvalue,e.pyaxisminvalue,e.yaxisminvalue):(0,u.pluckNumber)(e.pyaxisminvalue,e.yaxisminvalue),axisMaxValue:o?(0,u.pluckNumber)(e.syaxismaxvalue,e.pyaxismaxvalue,e.yaxismaxvalue):(0,u.pluckNumber)(e.pyaxismaxvalue,e.yaxismaxvalue),setAdaptiveMin:e.setadaptiveymin,adjustDiv:e.adjustdiv,labelStep:e.yaxisvaluesstep,showAxisValues:(0,u.pluckNumber)(e.showyaxisvalues,e.showyaxisvalue),showLimits:(0,u.pluckNumber)(e.showyaxislimits,e.showlimits,this.showLimits),showDivLineValues:(0,u.pluckNumber)(e.showdivlinevalues,e.showdivlinevalue),showZeroPlane:r,zeroPlaneColor:e.zeroplanecolor,zeroPlaneThickness:(0,u.pluckNumber)(e.zeroplanethickness,e.divlinethickness,i.zeroplanethickness,2),zeroPlaneAlpha:(0,u.pluckNumber)(e.zeroplanealpha,e.divlinealpha,i.zeroplanealpha),showZeroPlaneValue:l,showZeroPlaneOnTop:i.showzeroplaneontop,trendlineColor:e.trendlinecolor,trendlineToolText:e.trendlinetooltext,trendlineThickness:e.trendlinethickness,trendlineAlpha:e.trendlinealpha,showTrendlinesOnTop:e.showtrendlinesontop,showAxisLine:t?0:(0,u.pluckNumber)(e.showyaxisline,e.showaxislines,e.drawAxisLines,0),axisLineThickness:(0,u.pluckNumber)(e.yaxislinethickness,e.axislinethickness,1),axisLineAlpha:(0,u.pluckNumber)(e.yaxislinealpha,e.axislinealpha,100),axisLineColor:(0,u.pluck)(e.yaxislinecolor,e.axislinecolor,"#000000"),forceTrendBelow:!!i.is3D,labelFont:e.yaxisvaluefont,labelFontSize:e.yaxisvaluefontsize,labelFontColor:e.yaxisvaluefontcolor,labelAlpha:e.yaxisvaluealpha,labelFontBold:e.yaxisvaluefontbold,labelFontItalic:e.yaxisvaluefontitalic,labelBdrColor:e.yaxisvaluebordercolor,labelBgAlpha:e.yaxisvaluebgalpha,labelBdrAlpha:e.yaxisvalueborderalpha,labelLink:e.yaxisvaluelink,labelBgColor:e.yaxisvaluebgcolor,labelBdrThickness:e.yaxisvalueborderthickness,labelBdrPadding:e.yaxisvalueborderpadding,labelBdrRadius:e.yaxisvalueborderradius,labelBdrDashed:e.yaxisvalueborderdashed,labelBdrDashLen:e.yaxisvalueborderdashlen,labelBdrDashGap:e.yaxisvalueborderdashgap}},a.setAxisDimention=function(){var e,t,a=this.config,i=this.getChildren(),n=i.yAxis,o=i.xAxis&&i.xAxis[0],r=n[0],l=n[1],s=a.xDepth||0,c=i.canvas[0].config,h=c.canvasBorderWidth,u=c.canvasPadding,d=c.canvasPaddingLeft,g=c.canvasPaddingRight,p=c.canvasPaddingTop,m=a.shift||0,v=a.sumValueSpace&&a.sumValueSpace.top||0,b=a.primaryAxisOnleft,x=c.canvasPaddingBottom,y=f(d,u);o&&o.setAxisDimention({x:a.canvasLeft+s+y,y:o.config.isOpposit?a.canvasTop-h-(a.is3D?0:m)-v:a.canvasBottom+m+h,opposite:o.config.isOpposit?a.canvasBottom+m+h:a.canvasTop-h,axisLength:a.canvasWidth-s-y-f(g,u)}),b?(a.yAxisStartXPos=a.canvasLeft-h,a.sYAxisStartXPos=a.canvasRight+h):(a.yAxisStartXPos=a.canvasRight+h,a.sYAxisStartXPos=a.canvasLeft-h),e=a.yAxisStartXPos,t=a.sYAxisStartXPos,r&&r.setAxisDimention({x:e,y:a.canvasTop+p,opposite:t,axisLength:a.canvasHeight-p-x}),l&&l.setAxisDimention({x:t,y:a.canvasTop+p,opposite:e,axisLength:a.canvasHeight-p-x})},a._manageYAxisSpace=function(){var e,t,a,i=this.config,n=this.getChildren("yAxis"),o=[],r=0;for(t=0;t<(n&&n.length);t++)a=(e=n[t])&&e.placeAxis(.7*(i.availableWidth-r))||{},0===t&&(r=a.left),o.push({axisIndex:t,spaceTaken:a});n&&n[0]&&this._allocateSpace({left:(0,p["default"])(o,(function(e){return e.spaceTaken.left})),right:(0,p["default"])(o,(function(e){return e.spaceTaken.right}))}),i.yAxisSpaceAllocation=o},t}(c["default"]);t._feedAxesRawData=n=m.prototype._feedAxesRawData,t.getSpecificxAxisConf=o=m.prototype.getSpecificxAxisConf,t.getSpecificyAxisConf=r=m.prototype.getSpecificyAxisConf,t.setAxisDimention=l=m.prototype.setAxisDimention;var v=m;t["default"]=v},546:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=function(e){var t,a,i,l=e.getChildren("canvas")[0],s=function(e,t){return JSON.stringify(e)!==JSON.stringify(t)},c={zoomable:!0,pannable:!0},h=!!Number(e.config.syncaxislimits),u=l.getChildren("axisRefVisualCartesian")[0],d=e._feedAxesRawData(),g=function(e){var t=e.sender;u.addexplicitDrawItems(t.getId(),t),u.asyncDraw()};(0,n.componentFactory)(e,r["default"],"xAxis",1,d.xAxisConf),(0,n.componentFactory)(e,o["default"],"yAxis",2,d.yAxisConf),t=e.getChildren(),a=t.xAxis[0],(i=t.yAxis).forEach((function(t){t.setLinkedItem("canvas",l),u.setLinkedItem(t.getId(),t),u.addExtEventListener("visiblerangeset",g,t),l.attachAxis(t,!0,e.zoomY?c:{})})),a.setLinkedItem("canvas",l),u.setLinkedItem(a.getId(),a),i[1].setAxisConfig({dependentInfo:{id:i[0].getId(),count:!0,limit:h}}),i[1].getState("divlineEventAdded")||(i[1].addExtEventListener("divlinesSet",(function(e){var t=i[1].config.dependentInfo;e.sender.getId()===t.id&&(t.numDivLines=e.data)}),i[0]),i[1].setState("divlineEventAdded",!0));h&&(i[1].getState("dataLimitEventAdded")||(i[1].addExtEventListener("dataLimitSet",(function(e){var t=i[1].config.dependentInfo;e.sender.getId()===t.id&&s(t.dataLimit,e.data)&&(t.dataLimit=e.data,i[1].config.isDataLimitSet&&i[1].setDataLimit())}),i[0]),i[1].setState("dataLimitEventAdded",!0)),i[0].setAxisConfig({dependentInfo:{id:i[1].getId(),limit:!0}}),i[0].getState("dataLimitEventAdded")||(i[0].addExtEventListener("dataLimitSet",(function(e){var t=i[0].config.dependentInfo;e.sender.getId()===t.id&&s(t.dataLimit,e.data)&&(t.dataLimit=e.data,i[0].setDataLimit())}),i[1]),i[0].setState("dataLimitEventAdded",!0)));u.addExtEventListener("visiblerangeset",g,a),l.attachAxis(a,!1,e.zoomX?c:{}),e._setCategories()};var n=a(184),o=i(a(422)),r=i(a(470))},547:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=function(e){var t,a,r,l,s,c,h,u,d,g,p=e.getFromEnv("dataSource").dataset,f=e.getChildren().canvas[0].getChildren("vCanvas"),m=f[0],v=f[1],b=e.getFromEnv("chartConfig").isdual,x={vCanvasDatasetsDef0:{},vCanvasDatasetsDef1:{}},y={vCanvas0:{},vCanvas1:{}};p||e.setChartMessage();for(a=0;a<p.length;a++)t=p[a],"s"===(u=t.parentyaxis||"").toLowerCase()&&b?(h=(0,i.pluck)(t.renderas,e.config.sDefaultDatasetType),d=v,g=y.vCanvas1,l=x.vCanvasDatasetsDef1):(h=(0,i.pluck)(t.renderas,e.config.defaultDatasetType),d=m,g=y.vCanvas0,l=x.vCanvasDatasetsDef0),h=e.getDSType(h,"s"===u.toLowerCase()),(c=e.getDSGroupdef(h,"s"===u.toLowerCase()))&&((0,i.componentFactory)(d,c,o),g[c.getName().toLowerCase()]=!0),g[h.toLowerCase()]=!0,l[h]?(l[h].conf.push(t),l[h].indices.push(a)):(l[h]={},l[h].indices=[a],l[h].classDef=e.getDSdef(h),l[h].conf=[t],l[h].pYAxis=u.toLowerCase(),l[h].parent=c?d.getChildren(o)[0]:d);for(var C in e.config._hascolumn=!1,x)if(x.hasOwnProperty(C))for(h in l=x[C])l.hasOwnProperty(h)&&("group"===(s=l[h]).parent.getType()&&s.parent.configure(s.conf),(0,i.datasetFactory)(s.parent,s.classDef,"dataset_"+h,s.conf.length,s.conf,s.indices),"column"===h&&(e.config._hascolumn=!0));(r=e.getDatasets()).sort((function(e,t){var a=e.getName(),i=t.getName(),n={line:1,area:2,column:3};return n[a]>n[i]?-1:n[a]<n[i]?1:0})),e.config.datasetOrder=r,(0,n.removeComponents)(f[0],Object.keys(y.vCanvas0)),(0,n.removeComponents)(f[1],Object.keys(y.vCanvas1))};var i=a(184),n=a(548),o="multiseriesColumnManager"},548:function(e,t,a){"use strict";t.__esModule=!0,t.removeComponents=void 0;t.removeComponents=function(e,t){e&&e.iterateComponents((function(e){-1!==t.indexOf(e.getName().toLowerCase())||e.getLinkedParent().getState("removed")||e.remove()}))}},560:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(499)),r=a(184),l=i(a(561)),s=a(192),c=a(562),h=i(a(563)),u=r.preDefStr.setRolloverAttrStr,d=r.preDefStr.setRolloutAttrStr;(0,s.addDep)({name:"mssplineareaAnimation",type:"animationRule",extension:h["default"]});var g=function(e){function t(){var t;return(t=e.call(this)||this).drawCommonElements=r.stubFN,t}(0,n["default"])(t,e);var a=t.prototype;return a.getType=function(){return"dataset"},a.configureAttributes=function(t){e.prototype.configureAttributes&&e.prototype.configureAttributes.call(this,t),l["default"].call(this)},a.getDataLimits=function(){return{max:this.config.maxValue,min:this.config.minValue}},a.drawPlots=function(){var e,t,a,i,n,o,l,s,h,g,p,f,m,v,b,x,y,C,k,S,w,L,A,N,F,E=this.config,_=this.getFromEnv("chart"),T=_.config,P=this.getFromEnv("xAxis"),D=null,I=[],M=this.components.data,O=T.connectnulldata,R=T.minimizetendency,V=E.plotBorderDashStyle,B=E.plotborderthickness,G=this.getContainer(),H=[],z=this.getGraphicalElement("splineElement"),W=E.fillColor,j=this.components.removeDataArr||[],U=j.length,q=G&&G.shadowGroup,Y=E.shadow,X=this.getState("visible"),K={},Z=!T.drawfullareaborder,J=E.plotborderColorObject,$=this.getGraphicalElement("connector"),Q=this.getFromEnv("animationManager"),ee=E._oldStartIndex,te=E._oldEndIndex,ae=this.config.JSONData.renderas||_.config.defaultDatasetType,ie=/area/gi.test(ae);for(E.imagesLoaded=0,M||(M=this.components.data),e=P.getTicksLen(),N=E.scrollMinVal,F=E.scrollMaxVal,N>ee&&this.flushOnScroll(ee,N>te?te:N),F<te&&this.flushOnScroll(F<ee?ee:F,te),E._oldStartIndex=N,E._oldEndIndex=F,t=N;t<F;t++)(h=M[t])&&(f=(s=h&&h.config).setValue,k=(K=s.anchorProps).shadow,g=h.graphics.element,p=h.graphics.hotElement,w=h.graphics.image,null===f?(g&&g.hide(),p&&p.hide(),w&&w.hide(),O||(D=null)):(n=s._Py,i=s._Px,!1===X&&(n=s._Pby),I.push({x:i,y:n,lastXPos:o,lastYPos:D}),o=i,D=n,b=K.anchorAlpha,C=K.radius&&b,v=s.hoverEffects,y=g?X&&C?"updating":"disappearing":"appearing",K.imageUrl?this.drawAnchorImage(h):(x=Object.assign({},s.props.element.attr),"disappearing"!==y&&X||(x=r.UNDEF),g=h.graphics.element=Q.setAnimation({el:g||"path",attr:x,container:G.plotGroup,component:this,label:"anchor"}),w&&w.hide(),g&&g.show().shadow(k,G.anchorShadowGroup).data("anchorRadius",K.radius).data("anchorHoverRadius",v.anchorRadius).data("eventArgs",s.eventArgs),v.enabled&&g&&g.data("anchorRadius",K.radius).data("anchorHoverRadius",v.anchorRadius).data("hoverEnabled",v.enabled).data(u,v.attrs.setRolloverAttr).data(d,v.attrs.setRolloutAttr))));for(a=e,L={path:H=(H=(l=(0,c.getSplinePath)(I,s&&s._Pby,R,ie,a)).closedPath).join(),stroke:(0,r.toRaphaelColor)(J),"stroke-width":Z?0:B,fill:(0,r.toRaphaelColor)(W),"stroke-linecap":"round","stroke-linejoin":B>2?"round":"miter","stroke-dasharray":V},this.getState("visible")||(L=r.UNDEF),!(m=Q.setAnimation({el:z||"path",attr:L,container:G.commonElemsGroup,component:this,label:"line"}))&&z&&this.removeGraphicalElement(z),z||this.addGraphicalElement("splineElement",m),""!==H&&this.getState("visible")?m.show().shadow(Y,q):m&&m.hide(),Z?(A={path:l.openPath.join(),stroke:(0,r.toRaphaelColor)(J),"stroke-width":B,"stroke-linecap":"round","stroke-linejoin":B>2?"round":"miter","stroke-dasharray":V,name:"connector"},S=Q.setAnimation({el:$||"path",attr:A,container:G.commonElemsGroup,state:$?this.getState("visible")?"updating":"disappearing":"appearing",component:this,label:"connectorLine"}),$||this.addGraphicalElement("connector",S)):S&&this.removeGraphicalElement(S),t=0;t<U;t++)this._removeDataVisuals(j.shift())},a.getName=function(){return"splinearea"},t}(o["default"]);t["default"]=g},561:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=a(184),n=function(e,t,a){var i,n,r,l,s={};for(n=0;n<e.length;++n)s["D"+e[n].index]=0;for(i=0;i<10;++i)for(n=0;n<e.length;++n)r=0===n?(3*(e[n+1].y-e[n].y)-s["D"+e[n+1].index])/2:n===e.length-1?(3*(e[n].y-e[n-1].y)-s["D"+e[n-1].index])/2:(3*(e[n+1].y-e[n-1].y)-s["D"+e[n+1].index]-s["D"+e[n-1].index])/4,s["D"+e[n].index]=r;for(l=Math.round(t/(e.length-1)),n=1;n<e.length;++n)o(n,e,s,a,l)},o=function(e,t,a,i,n){var o,r,l,s,c,h,u,d,g,p,f,m,v=t,b=e;for(o=a["D"+v[0].index],r=a["D"+v[b].index],l=v[0].y,s=o,c=3*(v[b].y-v[0].y)-2*o-r,h=2*(v[0].y-v[b].y)+o+r,u=i.max,d=i.min,g=0,p=n;g<=p;g++)(m=l+s*(f=g/p)+c*f*f+h*f*f*f)<d&&(d=m),m>u&&(u=m);i.max=u,i.min=d},r=function(){var e,t=this.config,a=this.getFromEnv("chart"),o=this.getFromEnv("chartConfig"),r=a.config.origRenderWidth,l=o.connectnulldata,s=o.minimizetendency,c=this.components.data,h=Number.MIN_VALUE,u=Number.MAX_VALUE;0===s&&(e=function d(e,t,a,i,o){var r=[],l=!1,s=i||0,c=o;for(c=c||{max:Number.MIN_VALUE,min:Number.MAX_VALUE};s<e.length;++s)if(l){if(isNaN(e[s].config.setValue)||null===e[s].config.setValue){if(a)continue;break}r.push({index:s,y:e[s].config.setValue})}else{if(isNaN(e[s].config.setValue)||null===e[s].config.setValue)continue;l=!0,r.push({index:s,y:e[s].config.setValue})}return r.length>2&&n(r,t,c),s<e.length&&!a&&d(e,t,a,s,c),c}(c,r,l),t.maxValue=Math.max(t.maxValue,e.max),t.minValue=Math.min(t.minValue,e.min),t.maxValue===h&&(t.maxValue=i.UNDEF),t.minValue===u&&(t.minValue=i.UNDEF))};t["default"]=r},562:function(e,t,a){"use strict";t.__esModule=!0,t.getSplinePath=function(e,t,a,l,s){var c,f,m,v,b,x,y,C,k,S,w,L,A,N,F,E,_,T,P,D,I,M,O,R,V,B,G=a,H=[null],z=[],W=[];for(V=0,B=e.length;V<B;V+=1)A=e[V],O=e[V-1]||{},R=e[V+1]||{},x=A.x,m=A.y,y=O.x,v=O.y,C=R.x,b=R.y,k=A.lastYPos,S=A.lastXPos,P=z.length,w=W.length,G?null!==k?(f=I,V===e.length-1?(T=H[V-D-1],_=u(E=N=(x+y)/2,T,y,v),(v>m&&_<m||v<m&&_>m)&&(E=d(_=m,T,y,v)),I.push(E,_,N,(m+v)/2,x,m),z.push(I),W.push(I),l&&p(z,!0,M,t),l&&p(W,!1)):(T=H[V-D-1],v>m&&b>=m||v<m&&b<=m?(L=0,N=g(y,v,x,m),F=m,V-D!=1?(_=u(E=N,T,y,v),(v>m&&_<m||v<m&&_>m)&&(E=d(_=m,T,y,v)),I.push(E,_,N,F,x,m)):I.push((x+y)/2,(m+v)/2,N,F,x,m)):v===m?(L=0,I.push(y,v,x,m,x,m)):(v>m&&m>b||v<m&&m<b)&&(L=h(y,v,C,b),N=g(y,v,x,m),F=u(N,L,x,m),(v>m&&F>v||v<m&&F<v)&&(N=d(F=v,L,x,m)),V-D!=1?(_=u(E=N,T,y,v),(v>m&&_<m||v<m&&_>m)&&(E=d(_=m,T,y,v)),I.push(E,_,N,F,x,m)):I.push((x+y)/2,(m+v)/2,N,F,x,m)),H.push(L))):null===k&&0!==V?(f||(f=[]),f[0]===r&&(z.push(I),W.push(I),l&&p(z,!0,M,t),l&&p(W,!1)),z.push([i,x,m]),W.push([i,x,m]),M=x,I=[r],D=V,H=[null]):(z.push([i,x,m]),W.push([i,x,m]),M=x,I=[r],D=V):null!==k?P>=2?(z[P-1][0]===i&&z.push([o]),W[w-1][0]===i&&W.push([o]),P=z.length,w=W.length,f=z[P-1],c=f.length,z[P-1].push(x),z[P-1].push(m),W[w-1].push(x),W[w-1].push(m),V===s-1&&f[0]===o&&(p(z,!0,M,t),p(W,!1))):(z.push([i,S,k]),z.push([o,x,m]),W.push([i,S,k]),W.push([o,x,m]),M=S):null===k&&P>=2&&((f=z[P-1])[0]===o&&(p(z,!0,M,t),p(W,!1)),z.push([i,x,m]),W.push([i,x,m]),M=x);f=z[z.length-1],l&&f&&(c=f.length,f[c-1]===n||f[0]!==o&&f[0]!==r||(p(z,!0,M,t),p(W,!1)));l||(z=G?z:W).length>=2&&p(z,!1);return{closedPath:z,openPath:W}};var i="M",n="Z",o="R",r="C",l=Math,s=l.sqrt,c=l.abs,h=function(e,t,a,i){return(i-t)/(a-e)},u=function(e,t,a,i){return(e-a)*t+i},d=function(e,t,a,i){return(e-i)/t+a},g=function(e,t,a,i){var n=(i-t)/s((a-e)*(a-e)+(i-t)*(i-t)),o=c(.5*n);return e*o+a*(1-o)},p=function(e,t,a,i){var l=e.length,s=e[l-1],c=s.length,h=s[0],u=s[c-2];c<3||(h!==o&&h!==r||3!==c||(e[l-1][0]="L"),t&&e.push(["L",u,i,a,i,n]))}},563:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=a(184),n="L",o="Z";function r(e){var t,a,r,l=e.length,s=[],c=!1,h=!0;for(r=0;r<l;++r)t=e[r],h?(s.push(t),a=(0,i.extend2)([],t),h=!1):t!==o?c||(s.push(t),t.toString()===e[r-1].toString()&&(c=!0)):(h=!0,c=!1,a[0]=n,s.push(a,o));return s}function l(e){var t=e.component,a=t.components.data,i=t.getLinePath(a,null,"zero"),n=i.getPathArr().slice(0,i.getPathArr().length/2),o=e.attr;return[{initialAttr:{opacity:0,path:n},finalAttr:{opacity:1,path:o&&o.path},startEnd:{start:0,end:.5},slot:"plot",hookFn:function(){this.attr({opacity:1})}}]}function s(e){return"label-group"===e.attr.name?[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}]:"plot-group"===e.attr.name?[{initialAttr:{opacity:0},finalAttr:{opacity:1},startEnd:{start:.5,end:1},slot:"plot"}]:[{initialAttr:{opacity:1},finalAttr:{opacity:1},slot:"final"}]}function c(){return[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}]}function h(e){var t=e.component,a=t.components.data,i=t.getLinePath(a,null,"zero"),n=e.attr;return[{initialAttr:{opacity:0,path:r(i.getPathArr())},finalAttr:{opacity:1,path:n&&n.path},startEnd:{start:0,end:.5},slot:"plot",hookFn:function(){this.attr({opacity:1})}}]}var u={"*.dataset.splinearea":function(){return{"anchor.appearing":[{initialAttr:{opacity:0},finalAttr:{opacity:1},startEnd:{start:.5,end:1},slot:"plot"}],"anchor.updating":[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}],"anchor.disappearing":[{finalAttr:{opacity:0,"fill-opacity":0,"stroke-opacity":0},slot:"final"}],"line.appearing":h,"label.appearing":[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}],"label.updating":c,"group.appearing":s,"connectorLine.appearing":l}}};t["default"]=u},564:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(498)),r=a(184),l=i(a(561)),s=a(192),c=a(562),h=i(a(565));(0,s.addDep)({name:"mssplineAnimation",type:"animationRule",extension:h["default"]});var u=function(e){function t(){return e.apply(this,arguments)||this}(0,n["default"])(t,e);var a=t.prototype;return a.getType=function(){return"dataset"},a.getName=function(){return"spline"},a.configureAttributes=function(t){e.prototype.configureAttributes&&e.prototype.configureAttributes.call(this,t),l["default"].call(this)},a.getDataLimits=function(){return{max:this.config.maxValue,min:this.config.minValue}},a.drawCommonElements=function(){var e,t,a,i,n,o=this.components.data,l=this.config,s=Number(this.getFromEnv("chartConfig").connectnulldata),h=this.getFromEnv("xAxis"),u=this.getFromEnv("yAxis"),d=l.lineDashStyle,g=l.linethickness,p=[],f=null,m={color:l.linecolor,alpha:l.alpha},v={x:h.getLimit(),y:u.getLimit()},b=this.getState("visible")?o.length:0,x=l.lineOb||{},y=[],C=this.getFromEnv("chart"),k=/area/gi.test(C.defaultDatasetType);for(v.x.minPixel=h.getPixel(v.x.min),v.x.maxPixel=h.getPixel(v.x.max),v.y.minPixel=u.getPixel(v.y.min),v.y.maxPixel=u.getPixel(v.y.max),v.y.base=u.getPixel(0),v.x.base=h.getPixel(0),t=0;t<b;++t)(a=o[t])&&(n=(i=a.config||{}).setValue,i._Pbx=void 0,i._Pby=void 0,y[t]={config:{_Px:i._Px,_Py:i._Py,setValue:i.setValue}},null!=n?(p.push({x:i._Px,y:i._Py,lastYPos:f,lastXPos:e}),f=i._Py,e=i._Px):s||(f=null));l.pathStartIndex=0,l.pathEndIndex=void 0,x["default"]=x["default"]||{},x["default"].used=!0,x["default"].path=[{pathArr:(0,c.getSplinePath)(p,u.getPixel(u.getAxisBase()),C.config.minimizetendency,k).closedPath,path2Arr:[],getPathArr:function(){var e=this.pathArr,t=this.path2Arr;return e.length||t.length?e.concat(t):[]}}],x["default"].attr={"stroke-dasharray":d,"stroke-width":g,stroke:(0,r.toRaphaelColor)(m),"stroke-linecap":"round"},this._drawCommonElementsHelper(x),this.config.lineOb=x,l.prevLim=v,l.prevDataStore=y},t}(o["default"]);t["default"]=u},565:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n={"*.dataset.spline":i(a(501))["default"]["*.dataset.line"]};t["default"]=n},566:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=a(199),r=a(184),l=Math,s=l.min,c=l.max,h=l.abs,u=function(e){function t(){var t;return(t=e.call(this)||this).setState("visible",!0),t}(0,n["default"])(t,e);var a=t.prototype;return a.getType=function(){return"group"},t.getName=function(){return"columnMultiSeriesgroup"},a.getName=function(){return"columnMultiSeriesgroup"},a.preConfigure=function(t){if(!t)return!1;this.config.JSONData=t,e.prototype.preConfigure.call(this,t)},a.configure=function(t){if(!t)return!1;e.prototype.configure.call(this,t)},a.setVisibility=function(){var e=0;this._mapChildren((function(e){e.setVisibility&&e.setVisibility()})),this._mapChildren((function(t){t.getState("visible")&&e++})),this.setState("visible",!!e)},a.createContainer=function(){var e,t,a=this.getFromEnv("animationManager"),i=this.getLinkedParent().getChildContainer();for(e in i)t=i[e],!this.getChildContainer(e)&&this.addChildContainer(e,a.setAnimation({el:"group",attr:{name:"manager-"+e},component:this,container:t}))},a.allocatePosition=function(){this.setColumnPosition()},a.draw=function(){this.createContainer()},a.getCanvasPadding=function(){var e,t,a={paddingLeft:0,paddingRight:0,paddingTop:0,paddingBottom:0};return this.setColumnPosition(),this._mapChildren((function(i){for(t in e=!i.getState("removed")&&i.getState("visible")&&i.getCanvasPadding&&i.getCanvasPadding()||{})e.hasOwnProperty(t)&&(a[t]=Math.max(e[t],a[t]))})),a},a.setColumnPosition=function(){var e,t,a,i,n,o=this.getFromEnv("chartConfig"),l=this.getFromEnv("chart-attrib"),u=this.getFromEnv("xAxis"),d=this.getFromEnv("numOfColumns"),g=o.plotSpacePercent,p=c((0,r.pluckNumber)(g,20)%100,0),f=p/200,m=u.getPixel(0),v=u.getPixel(1),b=this.getFromEnv("chart").isBar?o.maxBarHeight:o.maxColWidth,x=h(v-m),y=o.plotPaddingPercent,C=!0,k=o.overlapColumns,S=0,w=0;this.addToEnv("groupMaxWidth",x),this._mapChildren((function(e){e.getState("removed")||!1===e.getState("visible")||w++})),this.addToEnv("numOfColumns",w),this.addToEnv("numColDiff",(0,r.pluckNumber)(d-w,0)),e=(1-.01*g)*x||s(x*(1-2*f),b*(w||1)),void 0===l.plotspacepercent&&e>=o.canvasWidth/2&&(e=x-b/2),i=s((t=0===w?e:e/w)-1,w>1?k||void 0!==y?y>0?t*y/100:0:4:0),this.addToEnv("plotWidth",t-i),a=-(w/2*t-t/2),this._mapChildren((function(e){!e.getState("removed")&&e.getState("visible")&&(e.addToEnv("shift",a+S*t+i/2),S++)})),v-(n=e/2)-(m-n+e)<4&&(C=!1),0===p&&(C=!0),this.addToEnv("isCrisp",C)},a.childChanged=function(e){void 0===e&&(e={});var t,a,i=this.config,n=this.getLinkedParent(),o=0,r=this.getState("visible"),l={};this._mapChildren((function(e){e.getState("visible")&&o++})),this.setState("visible",!!o),r!==!!o&&(a=!0),!1!==e.dataLimitChanged&&((t=this.getDataLimits()).min===i.range.min&&t.max===i.range.max||(i.range.min=t.min,i.range.max=t.max,l.dataLimitChanged=!0,a=!0)),a?n.childChanged&&n.childChanged(l):this.asyncDraw()},a.getAxisValuePadding=function(){var e={},t=-Infinity,a=-Infinity;return this._mapChildren((function(i){i.getState("removed")||(e=i.getAxisValuePadding&&i.getAxisValuePadding()||{},t=Math.max(t,e.left||-Infinity),a=Math.max(a,e.right||-Infinity))})),t===-Infinity&&(t=0),a===-Infinity&&(a=0),this.config.padding||(this.config.padding={},this.config.padding.left=t,this.config.padding.right=a),{left:t,right:a}},a.getDataLimits=function(e){var t,a=+Infinity,i=-Infinity,n=0,o=function(e){i=Math.max(i,e.max),a=Math.min(a,e.min)};return this._mapChildren((function(a){a.getState("removed")||(!1!==a.getState("visible")?(n++,t=a.getDataLimits(e),o(t)):e&&(t=a.getDataLimits(e),o(t)))})),n?this.setState("visible",!0):this.setState("visible",!1),this.config.range||(this.config.range={},this.config.range.min=this.config.dataMin,this.config.range.max=this.config.dataMax),{max:i,min:a}},a.isVisible=function(){return!this.isNotVisible},t}(o.ComponentInterface);t["default"]=u},567:function(e,t,a){"use strict";t.__esModule=!0,t.scrollTo=function(e){var t=this.apiInstance;t.addJob("scrollToAPoint",(function(){if(e>=0&&e<=1){var a=(t.getChildren&&t.getChildren()).xAxis[0],i=a.getChildren("scrollBar")&&a.getChildren("scrollBar")[0],n=i&&i.getChildren("scrollAnchor")[0],o=a.getLimit&&a.getLimit(),r=a.getVisibleConfig&&a.getVisibleConfig(),l=r.maxValue-r.minValue,s=o.max-o.min,c=e*(s-l)+o.min,h=c+l,u=(r.minValue-o.min)/(s-l);n.config.scrollPosition=e,t.fireChartInstanceEvent("scrollStart",{scrollPosition:u}),a.setVisibleConfig(c,h),t.fireChartInstanceEvent("scrollEnd",{previousScrollPosition:u,scrollPosition:e})}}),n.priorityList.postRender)},t.setAxisScale=function(e){void 0===e&&(e=s);var t,a,i,n,c,h=this.config,u=this.getChildren("xAxis")[0],d=u.getTicksLen(),g="bar2d"===e,p=g?l:e,f=this.getFromEnv("dataSource").chart,m=g?h.height:h.width,v=0,b=h.scrollToEnd,x=(0,o.pluckNumber)(f.numvisibleplot,r(m/h.avgScrollPointWidth));h.isstacked?this.iterateComponents((function(e){"cartesianStackGroup"===e.getName()&&!e.getState("removed")&&v++})):this.iterateComponents((function(e){e.getType&&"dataset"===e.getType()&&e.getName&&e.getName().toLowerCase()===p&&!e.getState("removed")&&v++}));i=d*(v=v||1);var y=u.getVisibleConfig();a=y.maxValue,t=y.minValue,x>=2&&x<i?(n=x/v,u.setScrollType("always"),b?t=a-n:a=t+n,0===t&&(a-=1),u.setVisibleConfig(t,a)):(c=u.getLimit(),u.setVisibleConfig(c.min,c.max),u.setScrollType("none"))},t.resetViewPortConfig=function(){this.config.viewPortConfig={scaleX:1,scaleY:1,x:0,y:0}},t.configurer=function(){var e,t=this.getFromEnv("dataSource").chart;(e=this.config).scrollToEnd=(0,o.pluckNumber)(t.scrolltoend,0),e.lastScrollPosition=i};var i,n=a(196),o=a(184),r=Math.floor,l="bar2D",s="column"},572:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(508)),r=i(a(481)),l=i(a(566)),s=function(e){(0,n["default"])(a,e),a.getName=function(){return"MSColumn2D"};var t=a.prototype;function a(){var t;return(t=e.call(this)||this).eiMethods={},t}return t.getName=function(){return"MSColumn2D"},t.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this),this.config.friendlyName="Multi-series Column Chart",this.config.defaultDatasetType="column",this.config.enablemousetracking=!0},t.getDSdef=function(){return r["default"]},t.getDSGroupdef=function(){return l["default"]},a}(o["default"]);t["default"]=s},575:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=a(199),r=a(184),l=a(192),s=i(a(576)),c=r.preDefStr.visibleStr,h=Math,u=h.min,d=h.max;(0,l.addDep)({name:"cartesianStackAnimation",type:"animationRule",extension:s["default"]});var g=function(e){function t(){var t;return(t=e.call(this)||this).setState("visible",!0),t}(0,n["default"])(t,e);var a=t.prototype;return a.getType=function(){return"group"},t.getName=function(){return"cartesianStackGroup"},a.getName=function(){return"cartesianStackGroup"},a.preConfigure=function(t){if(!t)return!1;this.config.JSONData=t,e.prototype.preConfigure.call(this,t)},a.configure=function(t){if(!t)return!1;e.prototype.configure.call(this,t)},a.configureAttributes=function(t){e.prototype.configureAttributes.call(this,t);var a=this.config,i=this.getFromEnv("chartConfig"),n=this.getFromEnv("chart-attrib");a.showTextOutline=(0,r.pluckNumber)(n.textoutline,0),a.showSum=(0,r.pluckNumber)(n.showsum,i.showSum,0)},a.setSkippingInfo=function(e){this.addToEnv("skipInfo",e||{drawOnlyMap:[],plotsPerBin:1,draw:[],hide:[],skippingApplied:!1,dragHashMap:[],prevDrawArray:[]})},a.getSkippingInfo=function(){return this.getFromEnv("skipInfo")||{drawOnlyMap:[],plotsPerBin:1,draw:[],hide:[],skippingApplied:!1,dragHashMap:[],prevDrawArray:[]}},a.setVisibility=function(){var e=0;this._mapChildren((function(t){t.getState("visible")&&e++})),this.setState("visible",!!e)},a.createContainer=function(){var e,t,a=this.getFromEnv("animationManager"),i=this.getLinkedParent(),n=i.getChildContainer();for(e in n)t=n[e],!this.getChildContainer(e)&&this.addChildContainer(e,a.setAnimation({el:"group",attr:{name:"manager-"+e},container:t,component:this}));!this.getContainer("sumLabelsLayer")&&this.addContainer("sumLabelsLayer",a.setAnimation({el:"group",attr:{name:"manager-sumLabelsLayer","class":"fusioncharts-datalabels"},label:"group",container:i.getChildContainer("sumLabelsLayer"),component:this})),!this.getChildContainer("commonElemGroupLine")&&this.addChildContainer("commonElemGroupLine",a.setAnimation({el:"group",attr:{name:"manager-common-elem-group"},label:"group",container:i.getChildContainer("lineVcanvasGroup"),component:this})),!this.getChildContainer("commonElemGroup")&&this.addChildContainer("commonElemGroup",a.setAnimation({el:"group",attr:{name:"manager-common-elem-group"},label:"group",container:i.getChildContainer("areaVcanvasGroup"),component:this})),!this.getChildContainer("anchorGroup")&&this.addChildContainer("anchorGroup",a.setAnimation({el:"group",attr:{name:"manager-anchor-group"},label:"group",container:this.getFromEnv("useLinePlotGroupForAnchorPlacement")?i.getChildContainer("lineVcanvasGroup"):i.getChildContainer("areaVcanvasGroup"),component:this}))},a.draw=function(){this.createContainer(),this.getFirstDataSet(),this.drawSumValue()},a._setStackPosition=function(){var e=+Infinity,t=-Infinity,a=this.getFromEnv("numOfColumns"),i=0,n=[],o=this.getSkippingInfo&&this.getSkippingInfo()||{},l=o.draw||[],s=l.length,c=o.skippingApplied;this._mapChildren((function(a){if(!a.getState("removed")&&!1!==a.getState("visible")){i++;var o,r,h,g,p=a.getData(),f=0,m=p&&p.length,v=0;for(c&&(m=s),h=0;h<m;h++)(o=p[r=l[h]||h])&&o.config&&void 0!==o.config.setValue&&(n[r]||(n[r]={}),g=o.config.setValue,n[r].positive||(n[r].positive=0),n[r].negative||(n[r].negative=0),g>=0?(f=g+(v=n[r].positive),n[r].positive=f):g<0&&(f=g+(v=n[r].negative),n[r].negative=f),null!==g&&(n[r].isNotNull=!0),t=d(f,t),e=u(f,e),o.config._y=f,o.config._b=v)}})),this.config.stackValues=n,this.config.dataMin=e,this.config.dataMax=t,i?this.setState("visible",!0):this.setState("visible",!1),this.addToEnv("stackValues",n),this.addToEnv("numOfColumns",i),this.addToEnv("numColDiff",(0,r.pluckNumber)(a-i,0))},a.allocatePosition=function(){this._setStackPosition()},a._getXpos=function(e){var t=this.getFromEnv("shift")||0;return this.getFromEnv("xAxis").getPixel(e)+t},a.drawSumValue=function(e,t){void 0===e&&(e=0);var a,i,n,o,l,s,h,u,d,g,p,f,m,v,b,x,y=this.config,C=this.getFromEnv("yAxis"),k=this.getFromEnv("paper"),S=this.getFromEnv("animationManager"),w=this.getFromEnv("chart"),L=w.isBar,A=this.getFromEnv("smartLabel"),N=w.config,F=N.canvasRight,E=(0,r.pluckNumber)(N.stack100percent),_=N.rotatevalues?270:0,T=y.stackValues,P=t||T&&T.length,D=N.dataLabelStyle,I=this.getContainer("sumLabelsLayer"),M=this.getGraphicalElement("sumLabels");if(y.showSum){if(I.css(D),A.setStyle(D),(v=M&&M.length)>(b=T.length))for(;v>=b;)x=M[v],v--,x&&(x.hide(),this.removeGraphicalElement(x));for(a=e;a<P;a++)h=Array.isArray(M)&&M[a],T[a]&&T[a].isNotNull?(p=(m=(d=T[a].positive)+(g=T[a].negative))<0?g:d,(f=C.dataLabels(m))&&(o=D.backgroundColor,l=D.borderColor,s=A.getOriSize(f),L?(n=this._getXpos(a),i=C.getPixel(E?100:p),E?i+=s.width/2:i-=i+s.width>F?i+s.width-F:0):(i=this._getXpos(a),n=C.getPixel(E?100:p)),(u=this.getSumValuePosition(s,{stack100percent:E,rotateValues:_,xPos:i,yPos:n,offsetY:p,index:a})).text=f,u.fill=D.color,u["text-bound"]=[o,l,D.borderThickness,D.borderPadding,D.borderRadius,D.borderDash],u["line-height"]=D.lineHeight,u.visibility=c,u.transform=k.getSuggestiveRotation(_,u.x,u.y),u["text-anchor"]&&delete u["text-bound"],I&&I.show(),(h=S.setAnimation({el:h||"text",attr:u,label:"text",container:I,component:this})).show(),h.outlineText(y.showTextOutline,u.fill),Array.isArray(M)&&M[a]||this.addGraphicalElement("sumLabels",h,!0))):h&&h.hide()}else I.hide()},a.getSumValuePosition=function(e,t){var a,i,n,o,r,l,s,c=this.getFromEnv("chart"),h=c.config,u=this.getFromEnv("xAxis"),d=h.canvasBottom,g=h.canvasTop,p=c.config.is3D,f=c.isBar,m=t.stack100percent,v=h.yDepth,b=h.xDepth,x=t.yPos,y=t.xPos,C=this.getFromEnv("canvasConfig").canvasBorderWidth,k=t.offsetY;if(t.rotateValues?(l=e.width,s=e.height):(l=e.height,s=e.width),o=(o=a=l)/2+2,r=(r=i=s)/2+2,m)if(g<=a)x=o;else{var S=u.getAxisConfig("isOpposit"),w=p?0:S?u.getAxisConfig("axisLineThickness"):0,L=u.isScrollEnabled()&&S?h.shift:0;x=f?t.yPos:g-o-C-L-w,y+=f?C+w+L:0}else k>=0&&(f?((n=h.canvasLeft+h.canvasWidth-y)<i?y=y-r+n:y+=r,p&&(x+=v/2)):(n=x-g)<a?x=x+o-n:(x-=f?0:o,y+=f?2:0,this.getFromEnv("useImprovedLabelPlacement")&&(x=this._adjustSumValuePosition(t.index,!0,x,o))-o<g&&(x=g+o))),k<0&&(f?y=(n=y-h.canvasLeft)<i?y+r+2-n:y-r-2:(n=d-x)<a?x-=o:(x+=o,this.getFromEnv("useImprovedLabelPlacement")&&(x=this._adjustSumValuePosition(t.index,!1,x,o))+o>d&&(x=d-o)),p&&(y-=b,x+=v));return{x:y,y:x}},a.childChanged=function(e){void 0===e&&(e={});var t,a,i=this.config,n=this.getLinkedParent(),o=this.getState("visible"),r=0,l={};this._mapChildren((function(e){e.getState("visible")&&r++})),this.setState("visible",!!r),o!==!!r&&(a=!0),!1!==e.dataLimitChanged&&((t=this.getDataLimits()).min===i.range.min&&t.max===i.range.max||(i.range.min=t.min,i.range.max=t.max,l.dataLimitChanged=!0,a=!0)),a?n.childChanged&&n.childChanged(l):this.asyncDraw()},a.getAxisValuePadding=function(){var e={},t=-Infinity,a=-Infinity;return this._mapChildren((function(i){i.getState("removed")||(e=i.getAxisValuePadding&&i.getAxisValuePadding()||{},t=Math.max(t,e.left||-Infinity),a=Math.max(a,e.right||-Infinity))})),t===-Infinity&&(t=0),a===-Infinity&&(a=0),this.config.padding||(this.config.padding={},this.config.padding.left=t,this.config.padding.right=a),{left:t,right:a}},a.getDataLimits=function(e){return this._setStackPosition(),this.config.range||(this.config.range||(this.config.range={}),this.config.range.min=this.config.dataMin,this.config.range.max=this.config.dataMax),e?this._getStackLimit():{max:this.config.dataMax,min:this.config.dataMin}},a._getStackLimit=function(){var e=+Infinity,t=-Infinity,a=[],i=this.getSkippingInfo&&this.getSkippingInfo()||{},n=i.draw||[],o=n.length,r=i.skippingApplied;return this._mapChildren((function(i){if(!i.getState("removed")){var l,s,c,h,g=i.getData(),p=0,f=g&&g.length;for(r&&(f=o),c=0;c<f;c++)(l=g[s=n[c]||c])&&l.config&&void 0!==l.config.setValue&&null!==l.config.setValue&&(a[s]||(a[s]={}),h=l.config.setValue,a[s].positive||(a[s].positive=0),a[s].negative||(a[s].negative=0),h>0?(p=h+a[s].positive,a[s].positive=p):h<0&&(p=h+a[s].negative,a[s].negative=p),t=d(p,t),e=u(p,e))}})),{max:t,min:e}},a.isVisible=function(){return!this.isNotVisible},a.getMaxSumValueSpace=function(){var e,t,a,i,n,o=this.config.stackValues,r=this.getFromEnv("chart"),l={},s=o&&o.length,c=this.getFromEnv("number-formatter"),h=0,u=0,g=this.getFromEnv("smartLabel"),p=r.config.dataLabelStyle;for(g.useEllipsesOnOverflow(r.config.useEllipsesWhenOverflow),g.setStyle(p),e=0;e<s;e++)o[e]&&(n=o[e].positive+o[e].negative,t=c.dataLabels(n),a=(l=g.getOriSize(t)).width,i=l.height,u=d(u,a),h=d(h,i));return{maxWidth:u,maxHeight:h}},a.getCanvasPadding=function(){var e,t,a,i,n,o=this.getSkippingInfo(),r=o.skippingApplied,l=o.draw,s=this.config.stackValues,c=s[r?l[0]:0],h=s[r?l[l.length-1]:s.length-1],u=this.getFromEnv("xAxis"),g=this.getFromEnv("yAxis"),p=this.getFromEnv("chartConfig"),f=this.getFromEnv("smartLabel"),m=u.getValuePadding(),v=0,b=u.getPixel(0),x=p.rotatevalues,y={paddingLeft:0,paddingRight:0,paddingTop:0,paddingBottom:0};return this._setStackPosition(),this._mapChildren((function(a){for(t in e=a.getCanvasPadding&&a.getCanvasPadding()||{})e.hasOwnProperty(t)&&(y[t]=Math.max(e[t],y[t]))})),this.config.showSum&&(c&&(a=g.dataLabels(c.positive+c.negative),f.useEllipsesOnOverflow(p.useEllipsesWhenOverflow),f.setStyle(p.dataLabelStyle),i=f.getOriSize(a),n=x?i.height:i.width,c.isNotNull&&(v=(n||0)/2-(u.getPixel(m.left)-b))<0&&(v=0),y.paddingLeft=d(y.paddingLeft,v)),v=0,h&&(a=g.dataLabels(h.positive+h.negative),f.setStyle(p.dataLabelStyle),i=f.getOriSize(a),n=x?i.height:i.width,h.isNotNull&&(v=(n||0)/2-(u.getPixel(m.right)-b))<0&&(v=0),y.paddingRight=d(y.paddingRight,v))),y},a.getFirstDataSet=function(){var e=this.getChildren("dataset");if(e)for(var t=0;t<e.length;t++){var a=e[t];if(a.getState("visible")&&!a.getState("removed")){this.config.firstDataSetIndex=t;break}this.config.firstDataSetIndex=null}},a._adjustSumValuePosition=function(e,t,a,i){var n,o,r=[],l=a,s=this.getChildren();for(n in s)s.hasOwnProperty(n)&&(o=s[n],r=r.concat(o.filter((function(e){return"dataset"===e.getType()}))));return r.forEach((function(a){var n,o,r=a.components.data[e],s=r&&r.config,h=s&&s._state,u=s&&s.props&&s.props.label&&s.props.label.attr;!a.getState("removed")&&a.getState(c)&&u&&h&&(n={y:u.y,height:h.labelHeight},o={y:l,height:i},(n.y<=o.y&&o.y<=n.y+n.height||n.y<=o.y+o.height&&o.y+o.height<=n.y+n.height)&&(l=t?u.y-.6*h.labelHeight-.6*i:u.y+.6*h.labelHeight+.6*i))})),l},t}(o.ComponentInterface);t["default"]=g},576:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(){return[{initialAttr:{opacity:1},finalAttr:{opacity:1},slot:"plot"}]},n=function(){return[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"final"}]},o={"initial.group.cartesianStackGroup":function(){return{"group.appearing":i,"text.appearing":n,"*":null}},"initial.group.marimekkoStackgroup":function(){return{"text.appearing":n,"*":null}}};t["default"]=o},579:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t._checkInvalidSpecificData=t["default"]=void 0;var n=i(a(198)),o=i(a(508)),r=i(a(481)),l=i(a(575)),s=i(a(580)),c=function(){var e,t=this.getFromEnv("dataSource"),a=t.dataset,i=t.categories;if(!a||!i)return!0;if(e=a.length)for(;e--;)if(!a[e].dataset)return!0};t._checkInvalidSpecificData=c;var h=function(e){function t(){var t;return(t=e.call(this)||this).registerFactory("dataset",s["default"],["vCanvas"]),t}(0,n["default"])(t,e),t.getName=function(){return"MSStackedColumn2D"};var a=t.prototype;return a._checkInvalidSpecificData=function(){return c.call(this)},a.getName=function(){return"MSStackedColumn2D"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;t.friendlyName="Multi-series Stacked Column Chart",t.defaultDatasetType="column",t.isstacked=!0,t.enablemousetracking=!0},a.getDSdef=function(){return r["default"]},a.getDSGroupdef=function(){return l["default"]},t}(o["default"]);t["default"]=h},580:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=function(e){var t,a,i,r,l,s,c=e.getFromEnv("dataSource").dataset,h=c&&c.length,u=0,d=e.getChildren("canvas")[0].getChildren("vCanvas")[0],g=[];if(!c)return void e.setChartMessage();for((0,n.componentFactory)(d,o["default"],"multiSeriesGroup_column"),s=d.getChildren("multiSeriesGroup_column")[0],t=0;t<h;t++)g.push(c[t].dataset);for((0,n.componentFactory)(s,e.getDSGroupdef(),"stackedGroup_column",h,g),l=s.getChildren("stackedGroup_column"),t=0;t<l.length;t++)if(!0!==l[t].getState("removed")){if(!(i=c[t].dataset))return void e.setChartMessage();a=i&&i.length,r=Array(a).fill(u).map((function(e,t){return e+t})),(0,n.datasetFactory)(l[t],e.getDSdef(),"dataset_column",a,i,r),u+=a}e.config._lastDatasetIndex=r[r.length-1]};var n=a(184),o=i(a(566))},583:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=a(184),r=i(a(545)),l=a(579),s=i(a(498)),c=i(a(481)),h=i(a(575)),u=i(a(584)),d=o.preDefStr.SEVENTYSTRING,g=function(e){function t(){var t;return(t=e.call(this)||this).stack100percent=0,t.hasLineSet=!0,t.lineset=!0,t.registerFactory("dataset",u["default"],["vCanvas"]),t}(0,n["default"])(t,e),t.getName=function(){return"MSStackedColumn2DLineDy"};var a=t.prototype;return a.getName=function(){return"MSStackedColumn2DLineDy"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;t.sDefaultDatasetType="line",t.friendlyName="Multi-series Dual Y-Axis Stacked Column and Line Chart",t.defaultDatasetType="column",t.isdual=!0,t.haslineset=!0,t.isstacked=!0,t.enablemousetracking=!0,t.anchorborderthickness=1,t.anchorimageurl=void 0,t.anchorimagepadding=1,t.anchorsides=1,t.anchoralpha=void 0,t.anchorbgalpha=o.HUNDREDSTRING,t.anchorimagealpha=o.HUNDREDSTRING,t.anchorimagescale=100,t.anchorstartangle=90,t.anchorshadow=0,t.anchorbgcolor=void 0,t.anchorbordercolor=void 0,t.anchorradius=3,t.showvalues=1,t.plotfillalpha=d,t.linedashlen=5,t.linedashgap=4,t.linedashed=void 0,t.linealpha=o.HUNDREDSTRING,t.linethickness=2,t.drawfullareaborder=1,t.connectnulldata=0},a._checkInvalidSpecificData=function(){return l._checkInvalidSpecificData.call(this)},a.getDSdef=function(e){return"line"===e?s["default"]:c["default"]},a.getDSGroupdef=function(){return h["default"]},t}(r["default"]);t["default"]=g},584:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=function(e){var t,a,i=e.getFromEnv("dataSource"),l=i.dataset,s=i.lineset,c=e.getChildren("canvas")[0].getChildren("vCanvas")[1];if(!l&&0===s.length)return void e.setChartMessage();(0,n["default"])(e),t=e.config._lastDatasetIndex+1,s&&s.length?(a=Array(s.length).fill(t).map((function(e,t){return e+t})),(0,o.datasetFactory)(c,e.getDSdef("line"),"dataset_line",s.length,s,a)):r(c)};var n=i(a(580)),o=a(184),r=function(e){var t,a=e.getChildren("dataset_line");for(t=a&&a.length-1;t>-1;t--)a[t].remove()}},596:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(572)),r=i(a(597)),l=i(a(599)),s=i(a(511)),c=a(184),h=function(e,t,a){var i,n,o,r,l,s,c,h,u,d,g=a&&a.length,p=e,f=t;if(g)for(i=g-1;i>=0;i--)if(c=(o=a[i]).x1,h=o.y1,u=o.x2,d=o.y2,o.isTrendZone){if(p>=c&&p<=u&&f>=h&&f<=d)return o}else if(h!==d&&c!==u?(r=n=(h-d)/(c-u),-1,l=h-n*c,s=Math.abs(r*p+-1*f+l)/Math.sqrt(Math.pow(r,2)+Math.pow(-1,2))):c===u?s=Math.abs(c-p):h===d&&(s=Math.abs(h-f)),s<=o.tolerance)return o},u=function(e){function t(){var t;return(t=e.call(this)||this).registerFactory("axis",l["default"],["canvas"]),t.registerFactory("legend",s["default"]),t.registerFactory("quadrant",(function(e){var t,a=e.getChildren("canvas")[0],i=e.getChildren(),n=function(){return t.asyncDraw()};(0,c.componentFactory)(a,r["default"],"quadrant"),(t=a.getChildren("quadrant")[0]).addExtEventListener("visiblerangeset",n,i.xAxis[0]),t.addExtEventListener("visiblerangeset",n,i.yAxis[0]),t.configure()}),["dataset"]),t}(0,n["default"])(t,e),t.getName=function(){return"ScatterBase"};var a=t.prototype;return a.mouseoutHandler=function(e,t,a){var i=this.config.datasetOrder||this.getDatasets(),n=this.getChildren("mouseTracker")[0];i[t]&&i[t].components.data[a]?i[t]._firePlotEvent("fc-mouseout",a,e):this.getFromEnv("toolTipController").hideAll(),delete n._lastDatasetIndex,delete n._lastPointIndex},a.parseChartAttr=function(t){e.prototype.parseChartAttr.call(this,t),this.config.drawTrendRegion=0},a.__setDefaultConfig=function(){var t=this.config;e.prototype.__setDefaultConfig&&e.prototype.__setDefaultConfig.call(this),t.valuefontbold=0,t.stickytracking=1,t.usemessagelog=0,t.animationeffect="linear",t.showshadow=1,t.showhovereffect=void 0,t.plothovereffect=void 0,t.anchorhovereffect=void 0,t.plotborderdashed=void 0,t.stack100percent=void 0,t.showpercentvalues=void 0,t.showpercentintooltip=void 0,t.plotbordercolor=void 0,t.showtooltip=1,t.seriesnameintooltip=1,t.rotatevalues=0,t.minimizetendency=0,t.plotfillangle=270,t.valuepadding=2,t.useplotgradientcolor=1,t.plotborderthickness=1,t.plotfillalpha="70",t.showvalues=1,t.valueposition="auto",t.tooltipsepchar=", ",t.usedataplotcolorforlabels=0,t.placevaluesinside=0,t.showplotborder=1,t.use3dlighting=1,t.useroundedges=0,t.plotspacepercent=20,t.plotpaddingpercent=void 0,t.plotfillratio=void 0,t.maxcolwidth=50,t.plotborderdashlen=5,t.plotborderdashgap=4,t.useScaleRecursively=!0,t.zeroplanethickness=1,t.zeroplanealpha=40,t.showzeroplaneontop=0,t.setadaptivexmin=1},a._drawTrendTooltip=function(e,t){var a=this.getFromEnv("toolTipController"),i=this.config.currentTrendToolTip,n=e.tooltext,o=t.originalEvent;i?a.draw(o,n,i):i=this.config.currentTrendToolTip=a.draw(o,n)},a._mouseEvtHandler=function(e,t){var a,i,n,o,r,l,s,u,d,g,p=this,f=t.mouseTracker,m=p.getChildren("canvas")[0],v=p.getFromEnv("toolTipController"),b=e.originalEvent,x=p.config,y=x.canvasBaseDepth||0,C=x.canvasLeft-(x.toleranceLeft||0),k=x.canvasRight+(x.toleranceRight||0),S=x.canvasBottom+(x.toleranceBottom||0),w=x.canvasTop-(x.toleranceTop||0),L=x.datasetOrder||p.getDatasets(),A=!1,N=L.length,F=f._lastDatasetIndex,E=f._lastPointIndex;if(o=(n=(0,c.getMouseCoordinate)(p.getFromEnv("chart-container"),b,p)).chartX,r=n.chartY,o>C-y&&o<k&&r>w&&r<S+y){for(;N--&&!A;)(l=L[N])&&l.getState("visible")&&((s=l._getHoveredPlot&&l._getHoveredPlot(o,r))&&s.hovered||a)&&(A=!0,s.datasetIndex=N,g=f.getMouseEvents(e,s.datasetIndex,s.pointIndex));a=h(o,r,m.config.vtrendlines),i=h(o,r,m.config.trendlines)}if((!A||g&&g.fireOut)&&void 0!==F&&L[F]&&L[F]._firePlotEvent&&(g&&!g.events.length?f.mouseoutTimer=setTimeout((function(){p.mouseoutHandler(e,F,E)}),20):(p.mouseoutHandler(e,F,E),clearTimeout(f.mouseoutTimer))),A)for(p.config.currentTrendToolTip&&v.hide(p.config.currentTrendToolTip),(d=g.events&&g.events.length)&&(f._lastDatasetIndex=s.datasetIndex,E=f._lastPointIndex=s.pointIndex),u=0;u<d;u+=1)l&&l._firePlotEvent&&l._firePlotEvent(g.events[u],E,e,s.datasetIndex);else a&&a.tooltext?p._drawTrendTooltip(a,e):i&&i.tooltext?p._drawTrendTooltip(i,e):p.config.currentTrendToolTip&&v.hide(p.config.currentTrendToolTip)},a._setCategories=function(){var e=this.getFromEnv("dataSource"),t=this.getChildren("xAxis"),a=String((0,c.pluck)(e.chart.xaxislabelmode,"categories")).toLowerCase(),i=e.categories,n=i&&i[0]&&i[0].category;t[0].setAxisConfig({xAxisLabelMode:"categories"}),"auto"!==a&&"mixed"!==a&&n&&n.length>0?t[0].setTickValues(n):"auto"!==a?(t[0].setTickValues(n),t[0].setAxisConfig({xAxisLabelMode:"mixed"})):(t[0].setTickValues(n),t[0].setAxisConfig({xAxisLabelMode:"auto"}))},a._allocateSpace=function(e){var t=this.getChildren("canvas"),a=t&&t[0].config,i=this.config,n=i.canvasHeight,o=i.canvasWidth,r=i.availableHeight,l=i.availableWidth;i.canvasLeft+=e.left||0,i.canvasTop+=e.top||0,o=i.canvasWidth=Math.max(o-((e.left||0)+(e.right||0)),0),n=i.canvasHeight=Math.max(n-((e.top||0)+(e.bottom||0)),0),i.availableHeight=Math.max(r-((e.top||0)+(e.bottom||0)),0),i.availableWidth=Math.max(l-((e.left||0)+(e.right||0)),0),i.canvasRight=i.canvasLeft+o,i.canvasBottom=i.canvasTop+n,a&&(a.canvasPaddingLeft=Math.max(a.canvasPaddingLeft,e.paddingLeft||0),a.canvasPaddingRight=Math.max(a.canvasPaddingRight,e.paddingRight||0),a.canvasPaddingTop=Math.max(a.canvasPaddingTop,e.paddingTop||0),a.canvasPaddingBottom=Math.max(a.canvasPaddingBottom,e.paddingBottom||0)),t[0].setDimension({top:i.canvasTop,left:i.canvasLeft,width:i.canvasWidth,height:i.canvasHeight})},a._postSpaceManagement=function(){var e,t=this.config,a=this.getChildren(),i=a.xAxis&&a.xAxis[0],n=a.legend&&a.legend[0],o=t.xDepth,r=this.getChildren("canvas");for(this.setAxisDimention(),i&&this._allocateXAxisLabelSpace(i),i&&i.shiftLabels(-o,0),n&&n.postSpaceManager(),e=0;e<(r&&r.length);e++)r[e].setCanvasPadding();this.setAxisDimention(),this.allocateDimensionOfChartMenuBar()},a._checkInvalidSpecificData=function(){if(!this.getFromEnv("dataSource").dataset)return!0},t}(o["default"]);t["default"]=u},597:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(201)),o=i(a(198)),r=a(199),l=a(184),s=a(192),c=i(a(598)),h=l.preDefStr.POSITION_START,u=l.preDefStr.POSITION_TOP,d=l.preDefStr.POSITION_BOTTOM,g=l.preDefStr.POSITION_END;(0,s.addDep)({name:"quadrantAnimation",type:"animationRule",extension:c["default"]});var p=function(e){function t(){var t;t=e.call(this)||this;var a=(0,n["default"])(t);return a.pIndex=1,a.components={},a.conf={},a.graphics={},t}(0,o["default"])(t,e);var a=t.prototype;return a.getType=function(){return"canvas"},a.getName=function(){return"quadrant"},a.configure=function(){var e,t,a,i,n,o,r,s,c,h,u,d,g,p,f,m,v,b,x,y,C,k,S,w,L=this.conf,A=this.getFromEnv("chart"),N=A.config,F=A.getFromEnv("dataSource").chart,E=A.getChildren("canvas")[0].config,_=N.dataLabelStyle,T=A.getFromEnv("smartLabel");(L.enabled=(0,l.pluckNumber)(F.drawquadrant,0))&&(v=(0,l.pluckNumber)(F.quadrantxval),b=(0,l.pluckNumber)(F.quadrantyval),x=(0,l.convertColor)((0,l.pluck)(F.quadrantlinecolor,E.canvasBorderColor),(0,l.pluck)(F.quadrantlinealpha,F.quadrantlinealpha,l.HUNDREDSTRING)),y=(0,l.pluckNumber)(F.quadrantlinethickness,E.canvasBorderThickness),k=(0,l.pluckNumber)(F.quadrantlinedashed,F.quadrantlineisdashed,0),C=(0,l.pluckNumber)(F.quadrantlinedashlen,4),S=(0,l.pluckNumber)(F.quadrantlinedashgap,2),w=k?(0,l.getDashStyle)(C,S):"none",L.xVal=v,L.yVal=b,L.quadrantLineColor=x,L.quadrantLineThickness=y,L.dashStyle=w,g=(0,l.getValidValue)(F.quadrantlabeltl,""),p=(0,l.getValidValue)(F.quadrantlabeltr,""),f=(0,l.getValidValue)(F.quadrantlabelbl,""),m=(0,l.getValidValue)(F.quadrantlabelbr,""),L.quadrantLabelPadding=(0,l.pluckNumber)(F.quadrantlabelpadding,3),T.useEllipsesOnOverflow(N.useEllipsesWhenOverflow),T.setStyle(_),""!==g?(o=(0,l.getFirstValue)(F.quadrantlabeltlbordercolor,F.quadrantlabelbordercolor,""),r=(0,l.pluck)(F.quadrantlabeltlbgcolor,F.quadrantlabelbgcolor),s=(0,l.pluckNumber)(F.quadrantlabeltlborderthickness,F.quadrantlabelborderthickness,1),o=o?(0,l.convertColor)(o,(0,l.pluckNumber)(F.quadrantlabeltlborderalpha,F.quadrantlabelborderalpha,F.quadrantlabeltlalpha,F.quadrantlabelalpha,100)):"",(c=L.tlConfig)||(c=L.tlConfig={enabled:!0,styleObj:{}}),c.label=g,c.styleObj.fontSize=(0,l.pluck)((0,l.pluckNumber)(F.quadrantlabeltlfontsize,F.quadrantlabelfontsize),parseInt(_.fontSize,10))+"px",c.styleObj.lineHeight=_.lineHeight,c.styleObj.fontFamily=(0,l.pluck)(F.quadrantlabeltlfont,F.quadrantlabelfont,_.fontFamily),c.styleObj.color=(0,l.convertColor)((0,l.pluck)(F.quadrantlabeltlfontcolor,F.quadrantlabelfontcolor,_.color),(0,l.pluckNumber)(F.quadrantlabeltlfontalpha,F.quadrantlabelfontalpha,100)),c.styleObj.fontWeight=(0,l.pluckNumber)(F.quadrantlabeltlfontbold,F.quadrantlabelfontbold)?"bold":"normal",c.styleObj.fontStyle=(0,l.pluckNumber)(F.quadrantlabeltlfontitalic,F.quadrantlabelfontitalic)?"italic":"normal",(0,l.setLineHeight)(c.styleObj),e=o,t=(0,l.pluckNumber)(F.quadrantlabeltlborderpadding,F.quadrantlabelborderpadding,2),a=(0,l.pluckNumber)(F.quadrantlabeltlborderradius,F.quadrantlabelborderradius,0),i=r?(0,l.convertColor)(r,(0,l.pluckNumber)(F.quadrantlabeltlbgalpha,F.quadrantlabelbgalpha,F.quadrantlabeltlalpha,F.quadrantlabelalpha,100)):"",n=(0,l.pluckNumber)(F.quadrantlabeltlborderdashed,F.quadrantlabelborderdashed,0)?(0,l.getDashStyle)((0,l.pluckNumber)(F.quadrantlabeltlborderdashlen,F.quadrantlabelborderdashlen,4),(0,l.pluckNumber)(F.quadrantlabeltlborderdashgap,F.quadrantlabelborderdashgap,2)):"none",c["text-bound"]=[i,e,s,t,a,n]):L.tlConfig&&(L.tlConfig.label=g),""!==p?(o=(0,l.getFirstValue)(F.quadrantlabeltrbordercolor,F.quadrantlabelbordercolor,""),r=(0,l.pluck)(F.quadrantlabeltrbgcolor,F.quadrantlabelbgcolor),s=(0,l.pluckNumber)(F.quadrantlabeltrborderthickness,F.quadrantlabelborderthickness,1),o=o?(0,l.convertColor)(o,(0,l.pluckNumber)(F.quadrantlabeltrborderalpha,F.quadrantlabelborderalpha,F.quadrantlabeltralpha,F.quadrantlabelalpha,100)):"",(h=L.trConfig)||(h=L.trConfig={enabled:!0,styleObj:{}}),h.label=(0,l.getValidValue)(F.quadrantlabeltr,""),h.styleObj.fontSize=(0,l.pluck)((0,l.pluckNumber)(F.quadrantlabeltrfontsize,F.quadrantlabelfontsize),parseInt(_.fontSize,10))+"px",h.styleObj.lineHeight=_.lineHeight,h.styleObj.fontFamily=(0,l.pluck)(F.quadrantlabeltrfont,F.quadrantlabelfont,_.fontFamily),h.styleObj.color=(0,l.convertColor)((0,l.pluck)(F.quadrantlabeltrfontcolor,F.quadrantlabelfontcolor,_.color),(0,l.pluckNumber)(F.quadrantlabeltrfontalpha,F.quadrantrabelfontalpha,100)),h.styleObj.fontWeight=(0,l.pluckNumber)(F.quadrantlabeltrfontbold,F.quadrantlabelfontbold)?"bold":"normal",h.styleObj.fontStyle=(0,l.pluckNumber)(F.quadrantlabeltrfontitalic,F.quadrantlabelfontitalic)?"italic":"normal",(0,l.setLineHeight)(h.styleObj),e=o,t=(0,l.pluckNumber)(F.quadrantlabeltrborderpadding,F.quadrantlabelborderpadding,2),a=(0,l.pluckNumber)(F.quadrantlabeltrborderradius,F.quadrantlabelborderradius,0),i=r?(0,l.convertColor)(r,(0,l.pluckNumber)(F.quadrantlabeltrbgalpha,F.quadrantlabelbgalpha,F.quadrantlabeltralpha,F.quadrantlabelalpha,100)):"",n=(0,l.pluckNumber)(F.quadrantlabeltrborderdashed,F.quadrantlabelborderdashed,0)?(0,l.getDashStyle)((0,l.pluckNumber)(F.quadrantlabeltrborderdashlen,F.quadrantlabelborderdashlen,4),(0,l.pluckNumber)(F.quadrantlabeltrborderdashgap,F.quadrantlabelborderdashgap,2)):"none",h["text-bound"]=[i,e,s,t,a,n]):L.trConfig&&(L.trConfig.label=p),""!==f?(o=(0,l.getFirstValue)(F.quadrantlabelblbordercolor,F.quadrantlabelbordercolor,""),r=(0,l.pluck)(F.quadrantlabelblbgcolor,F.quadrantlabelbgcolor),s=(0,l.pluckNumber)(F.quadrantlabelblborderthickness,F.quadrantlabelborderthickness,1),o=o?(0,l.convertColor)(o,(0,l.pluckNumber)(F.quadrantlabelblborderalpha,F.quadrantlabelborderalpha,F.quadrantlabelblalpha,F.quadrantlabelalpha,100)):"",(u=L.blConfig)||(u=L.blConfig={enabled:!0,styleObj:{}}),u.label=f,u.styleObj.fontSize=(0,l.pluck)((0,l.pluckNumber)(F.quadrantlabelblfontsize,F.quadrantlabelfontsize),parseInt(_.fontSize,10))+"px",u.styleObj.lineHeight=_.lineHeight,u.styleObj.fontFamily=(0,l.pluck)(F.quadrantlabelblfont,F.quadrantlabelfont,_.fontFamily),u.styleObj.color=(0,l.convertColor)((0,l.pluck)(F.quadrantlabelblfontcolor,F.quadrantlabelfontcolor,_.color),(0,l.pluckNumber)(F.quadrantlabelblfontalpha,F.quadrantlabelfontalpha,100)),u.styleObj.fontWeight=(0,l.pluckNumber)(F.quadrantlabelblfontbold,F.quadrantlabelfontbold)?"bold":"normal",u.styleObj.fontStyle=(0,l.pluckNumber)(F.quadrantlabelblfontitalic,F.quadrantlabelfontitalic)?"italic":"normal",(0,l.setLineHeight)(u.styleObj),e=o,t=(0,l.pluckNumber)(F.quadrantlabelblborderpadding,F.quadrantlabelborderpadding,2),a=(0,l.pluckNumber)(F.quadrantlabelblborderradius,F.quadrantlabelborderradius,0),i=r?(0,l.convertColor)(r,(0,l.pluckNumber)(F.quadrantlabelblbgalpha,F.quadrantlabelbgalpha,F.quadrantlabelblalpha,F.quadrantlabelalpha,100)):"",n=(0,l.pluckNumber)(F.quadrantlabelblborderdashed,F.quadrantlabelborderdashed,0)?(0,l.getDashStyle)((0,l.pluckNumber)(F.quadrantlabelblborderdashlen,F.quadrantlabelborderdashlen,4),(0,l.pluckNumber)(F.quadrantlabelblborderdashgap,F.quadrantlabelborderdashgap,2)):"none",u["text-bound"]=[i,e,s,t,a,n]):L.blConfig&&(L.blConfig.label=f),""!==m?(o=(0,l.getFirstValue)(F.quadrantlabelbrbordercolor,F.quadrantlabelbordercolor,""),r=(0,l.pluck)(F.quadrantlabelbrbgcolor,F.quadrantlabelbgcolor),s=(0,l.pluckNumber)(F.quadrantlabelbrborderthickness,F.quadrantlabelborderthickness,1),o=o?(0,l.convertColor)(o,(0,l.pluckNumber)(F.quadrantlabelbrborderalpha,F.quadrantlabelborderalpha,F.quadrantlabelbralpha,F.quadrantlabelalpha,100)):"",(d=L.brConfig)||(d=L.brConfig={enabled:!0,styleObj:{}}),d.label=(0,l.getValidValue)(F.quadrantlabelbr,""),d.styleObj.fontSize=(0,l.pluck)((0,l.pluckNumber)(F.quadrantlabelbrfontsize,F.quadrantlabelfontsize),parseInt(_.fontSize,10))+"px",d.styleObj.lineHeight=_.lineHeight,d.styleObj.fontFamily=(0,l.pluck)(F.quadrantlabelbrfont,F.quadrantlabelfont,_.fontFamily),d.styleObj.color=(0,l.convertColor)((0,l.pluck)(F.quadrantlabelbrfontcolor,F.quadrantlabelfontcolor,_.color),(0,l.pluckNumber)(F.quadrantlabelbrfontalpha,F.quadrantrabelfontalpha,100)),d.styleObj.fontWeight=(0,l.pluckNumber)(F.quadrantlabelbrfontbold,F.quadrantlabelfontbold)?"bold":"normal",d.styleObj.fontStyle=(0,l.pluckNumber)(F.quadrantlabelbrfontitalic,F.quadrantlabelfontitalic)?"italic":"normal",(0,l.setLineHeight)(d.styleObj),i=r?(0,l.convertColor)(r,(0,l.pluckNumber)(F.quadrantlabelbrbgalpha,F.quadrantlabelbgalpha,F.quadrantlabelbralpha,F.quadrantlabelalpha,100)):"",e=o,t=(0,l.pluckNumber)(F.quadrantlabelbrborderpadding,F.quadrantlabelborderpadding,2),a=(0,l.pluckNumber)(F.quadrantlabelbrborderradius,F.quadrantlabelborderradius,0),n=(0,l.pluckNumber)(F.quadrantlabelbrborderdashed,F.quadrantlabelborderdashed,0)?(0,l.getDashStyle)((0,l.pluckNumber)(F.quadrantlabelbrborderdashlen,F.quadrantlabelborderdashlen,4),(0,l.pluckNumber)(F.quadrantlabelbrborderdashgap,F.quadrantlabelborderdashgap,2)):"none",d["text-bound"]=[i,e,s,t,a,n]):L.brConfig&&(L.brConfig.label=m))},a._preDraw=function(){var e,t,a,i,n,o,r=this.conf,l=this.getFromEnv("chart"),s=l.getChildren("xAxis")[0],c=l.getChildren("yAxis")[0],h=s.getLimit(),u=c.getLimit(),d=h.max,g=u.max,p=h.min,f=u.min,m=l.config,v=m.canvasWidth,b=m.canvasHeight,x=r.quadrantLabelPadding,y=r.tlConfig,C=r.trConfig,k=r.blConfig,S=r.brConfig;return e=r.xVal||(r.xVal=(p+d)/2),(t=r.yVal||(r.yVal=(f+g)/2))>=f&&t<=g&&e>=p&&e<=d?(i=v-(a=v/(d-p)*(e-p)),n=b-(o=b/(g-f)*(t-f)),a-=x,i-=x,o-=x,((n-=x)<0||a<0)&&(y.enabled=!1),(n<0||i<0)&&(C.enabled=!1),(o<0||a<0)&&(k.enabled=!1),(o<0||a<0)&&(S.enabled=!1)):r.enabled=!1,this},a._createGroups=function(){var e,t=this.getFromEnv("chart"),a=t.getFromEnv("animationManager"),i=t.getChildren("canvas")[0].getChildContainer("quadrantGroup"),n=this.getContainer("quadrantChildContainer"),o=this.getContainer("quadrantLineGroup"),r=this.getContainer("quadrantTLGroup"),l=this.getContainer("quadrantTRGroup"),s=this.getContainer("quadrantBLGroup"),c=this.getContainer("quadrantBRGroup");e=a.setAnimation({el:n||"group",attr:{name:"quadrant-child-container"},container:i,component:this,label:"group"}),n||this.addContainer("quadrantChildContainer",e),this.addContainer("quadrantLineGroup",a.setAnimation({el:o||"group",attr:{name:"quadrantLineGroup"},container:e,component:this,label:"group"})),this.addContainer("quadrantTLGroup",a.setAnimation({el:r||"group",attr:{name:"quadrantTLGroup"},container:e,component:this,label:"group"})),this.addContainer("quadrantTRGroup",a.setAnimation({el:l||"group",attr:{name:"quadrantTRGroup"},container:e,component:this,label:"group"})),this.addContainer("quadrantBLGroup",a.setAnimation({el:s||"group",attr:{name:"quadrantBLGroup"},container:e,component:this,label:"group"})),this.addContainer("quadrantBRGroup",a.setAnimation({el:c||"group",attr:{name:"quadrantBRGroup"},container:e,component:this,label:"group"}))},a.draw=function(){var e,t,a,i,n,o,r,l=this._preDraw(),s=l.conf,c=l.getFromEnv("chart"),p=c.config,f=p.reverseXAxis,m={wrtVisible:!0},v=l.getFromEnv("smartLabel"),b=l.getFromEnv("animationManager"),x=l.graphics,y=x.tlLabel,C=x.trLabel,k=x.blLabel,S=x.brLabel,w=p.textDirection,L=c.getChildren("xAxis")[0],A=c.getChildren("yAxis")[0],N=s.tlConfig||{},F=s.trConfig||{},E=s.blConfig||{},_=s.brConfig||{},T=N.enabled&&N.label,P=F.enabled&&F.label,D=E.enabled&&E.label,I=_.enabled&&_.label,M=p.canvasLeft,O=p.canvasTop,R=s.quadrantLabelPadding,V=L.getLimit(),B=A.getLimit(),G=f?V.min:V.max,H=f?V.max:V.min,z=B.max,W=B.min,j=L.getPixel(H,m)+R,U=L.getPixel(G,m)-R,q=A.getPixel(W,m)-R,Y=A.getPixel(z,m)+R,X=L.getPixel(s.xVal,m),K=A.getPixel(s.yVal,m),Z=X-j,J=U-X,$=K-Y,Q=q-K,ee=x.horizontalQuadLine,te=x.verticalQuadLine,ae=function(){this.hide()};l._createGroups(),t=l.getContainer("quadrantChildContainer"),a=l.getContainer("quadrantLineGroup"),i=l.getContainer("quadrantTLGroup"),n=l.getContainer("quadrantTRGroup"),o=l.getContainer("quadrantBLGroup"),r=l.getContainer("quadrantBRGroup"),s.enabled?(t.show(),x.horizontalQuadLine=b.setAnimation({el:ee||"path",container:a,attr:{path:"M"+M+" "+K+"h"+p.canvasWidth,stroke:s.quadrantLineColor,"stroke-dasharray":s.dashStyle,"stroke-width":s.quadrantLineThickness,"stroke-linecap":"butt"},component:l,label:"path"}),x.verticalQuadLine=b.setAnimation({el:te||"path",container:a,attr:{path:"M"+X+" "+O+"v"+p.canvasHeight,stroke:s.quadrantLineColor,"stroke-width":s.quadrantLineThickness,"stroke-dasharray":s.dashStyle,"stroke-linecap":"butt"},component:l,label:"path"}),T?(v.useEllipsesOnOverflow(p.useEllipsesWhenOverflow),v.setStyle(s.tlConfig.styleObj),e=v.getSmartText(T,Z,$),(y=x.tlLabel=b.setAnimation({el:y||"text",attr:{"text-anchor":h,"vertical-align":u,x:j,y:Y,text:e.text,direction:w,"text-bound":s.tlConfig["text-bound"]},container:i,component:l,label:"text"})).css(s.tlConfig.styleObj)):y&&b.setAnimation({el:y,callback:ae,component:this,label:"text"}),P?(v.setStyle(s.trConfig.styleObj),e=v.getSmartText(P,J,$),(C=x.trLabel=b.setAnimation({el:C||"text",attr:{"text-anchor":g,"vertical-align":u,direction:w,x:U,y:Y,text:e.text,"text-bound":s.trConfig["text-bound"]},container:n,component:l,label:"text"})).css(s.trConfig.styleObj)):C&&b.setAnimation({el:C,callback:ae,component:this,label:"text"}),D?(v.setStyle(s.blConfig.styleObj),e=v.getSmartText(D,Z,Q),(k=x.blLabel=b.setAnimation({el:k||"text",attr:{"text-anchor":h,"vertical-align":d,direction:w,x:j,y:q,text:e.text,"text-bound":s.blConfig["text-bound"]},container:o,component:l,label:"text"})).css(s.blConfig.styleObj)):k&&b.setAnimation({el:k,callback:ae,component:this,label:"text"}),I?(v.setStyle(s.brConfig.styleObj),e=v.getSmartText(I,J,Q),(S=x.brLabel=b.setAnimation({el:S||"text",attr:{"text-anchor":g,"vertical-align":d,direction:w,x:U,y:q,text:e.text,"text-bound":s.brConfig["text-bound"]},container:r,component:l,label:"text"})).css(s.brConfig.styleObj)):S&&b.setAnimation({el:S,callback:ae,component:this,label:"text"})):t&&b.setAnimation({el:t,component:l,doNotRemove:!0,callback:function(){this.hide()},label:"group"})},t}(r.ComponentInterface);t["default"]=p},598:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]={"initial.canvas.quadrant":function(){return{"path.appearing":function(){return[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"axis"}]},"text.appearing":function(){return[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"plot"}]}}}}},599:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=function(e){var t,a,i=e.getChildren("canvas")[0],r=i.getChildren("axisRefVisualCartesian")[0],l={zoomable:!0,pannable:!0},s=e._feedAxesRawData(),c=function(e){var t=e.sender;r.addexplicitDrawItems(t.getId(),t),r.asyncDraw()};(0,n.componentFactory)(e,o["default"],"yAxis",1,s.yAxisConf),(0,n.componentFactory)(e,o["default"],"xAxis",1,s.xAxisConf),t=e.getChildren("yAxis")[0],a=e.getChildren("xAxis")[0],t.setLinkedItem("canvas",i),a.setLinkedItem("canvas",i),r.setLinkedItem(t.getId(),t),r.setLinkedItem(a.getId(),a),r.addExtEventListener("visiblerangeset",c,a),r.addExtEventListener("visiblerangeset",c,t),i.attachAxis(a,!1,e.zoomX?l:{}),i.attachAxis(t,!0,e.zoomY?l:{}),e._setCategories()};var n=a(184),o=i(a(422))},600:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(498)),r=a(184),l=a(192),s=i(a(601)),c=i(a(602)),h=Math,u=h.max,d=h.min,g=h.round;(0,l.addDep)({name:"scatterAnimation",type:"animationRule",extension:c["default"]});var p=function(e){function t(){return e.apply(this,arguments)||this}(0,n["default"])(t,e);var a=t.prototype;return a.getType=function(){return"dataset"},a.setupHoverTracker=function(){var e,t,a,i,n,o,r,l=this.config.searchDataArr=[],c=this.components.data,h={},u=this.getSkippingInfo&&this.getSkippingInfo(),d=u&&u.draw||[],g=d.length,p=u&&u.skippingApplied;for(a=c.length,p&&(a=g),t=0;t<a;t++)(o=c[e=d[t]||[t]])&&(i=(r=o.config)._Px,n=r._Py,h=r.anchorProps,l.push({x:i,y:n,index:e,data:o,r:h.radius||0}));this.config.dataTree=(new s["default"]).buildKdTree(l)},a.getName=function(){return"scatter"},a.addDatasetSpecificEvtArgs=function(e){var t=e.config,a=t.anchorProps,i=t.eventArgs;Object.assign(i,{showValue:t.showValue,hoverColor:!0===t.hoverEffects.enabled?t.hoverEffects.hoverColor||a.bgColor:void 0,hoverAlpha:!0===t.hoverEffects.enabled?t.hoverEffects.hoverAlpha||"100":void 0,anchorBgColor:a.bgColor,anchorBgAlpha:a.anchorBgAlpha,anchorAlpha:a.anchorAlpha,anchorBorderColor:a.borderColor,anchorBorderThickness:a.borderThickness,anchorRadius:a.radius,anchorSides:a.sides,anchorStartAngle:a.startAngle,anchorHoverSides:t.hoverEffects.anchorSides})},a.configureAttributes=function(e){if(!e)return!1;this.trimData(e),this.config.JSONData=e;var t,a,i,n,o,l=this.getFromEnv("chart"),s=this.config,c=s.JSONData,h=l.areaAlpha,u=l.getFromEnv("dataSource").chart,d=this.getFromEnv("color-manager"),g=(0,r.pluckNumber)(c.showplotborder,u.showplotborder||1),p=d.getPlotColor(this.index),f=s.lineDashed=(0,r.pluckNumber)(c.linedashed,c.dashed,u.linedashed,0),m=this.isLineSet;s.plotColor=p,n=(0,r.pluckNumber)(l.defaultPlotShadow,d.getColor("showShadow")),s.toolTipSepChar=(0,r.pluck)(u.tooltipsepchar,", "),s.defaultValuePadding={left:0,right:0},s.parentYAxis=a=m?1:"s"===(0,r.pluck)(c.parentyaxis&&c.parentyaxis.toLowerCase(),"p")?1:0,this.config.yAxis=this.getFromEnv("yAxis")[a],s.connectNullData=(0,r.pluckNumber)(u.connectnulldata,0),s.seriesname=(0,r.parseUnsafeString)(c.seriesname),s.includeinlegend=(0,r.pluckNumber)(c.includeinlegend,s.seriesname?1:0),s.showTextOutline=(0,r.pluckNumber)(u.textoutline,0),s.enableAnimation=i=(0,r.pluckNumber)(u.animation,u.defaultanimation,1),s.animation=!!i&&{duration:1e3*(0,r.pluckNumber)(u.animationduration,1)},s.transposeanimation=(0,r.pluckNumber)(u.transposeanimation,i),s.transposeanimduration=1e3*(0,r.pluckNumber)(u.transposeanimduration,.2),s.showvalues=(0,r.pluckNumber)(c.showvalues,u.showvalues),s.valuePadding=(0,r.pluckNumber)(u.valuepadding,2),s.valuePosition=(0,r.pluck)(c.valueposition,u.valueposition,"auto"),s.showTooltip=(0,r.pluckNumber)(u.showtooltip,1),s.seriesNameInTooltip=(0,r.pluckNumber)(u.seriesnameintooltip,1),s.plotFillColor=s.plotfillcolor=(0,r.pluck)(c.color,u.plotfillcolor,p),s.plotFillAngle=s.plotFillAngle=(0,r.pluck)(u.plotfillangle,270),s.plotFillAlpha=s.plotfillalpha=(0,r.pluck)(c.alpha,u.plotfillalpha,h,"70"),o=(0,r.pluckNumber)(u.useplotgradientcolor,1),s.plotGradientColor=s.plotgradientcolor=0!==o?(0,r.getDefinedColor)(u.plotgradientcolor,d.getColor("plotGradientColor")):"",s.fillColor=s.fillcolor={color:s.plotfillcolor+(s.plotgradientcolor?","+s.plotgradientcolor:r.BLANKSTRING),alpha:s.plotfillalpha,angle:s.plotFillAngle},s.plotBorderAlpha=s.plotborderalpha=g?(0,r.pluck)(c.plotborderalpha,u.plotborderalpha,c.alpha,"95"):0,s.plotBorderColor=s.plotbordercolor=(0,r.pluck)(c.plotbordercolor,u.plotbordercolor,u.areabordercolor,"666666"),s.dashed=t=(0,r.pluckNumber)(c.dashed,u.plotborderdashed),s.plotBorderDashLen=s.plotborderdashlen=(0,r.pluck)(c.plotborderdashlen,u.plotborderdashlen,5),s.plotBorderDashGap=s.plotborderdashgap=(0,r.pluck)(c.plotborderdashgap,u.plotborderdashgap,4),s.plotBorderThickness=s.plotborderthickness=(0,r.pluckNumber)(c.plotborderthickness,u.plotborderthickness,1),s.plotBorderDashStyle=s.plotborderdashstyle=t?(0,r.getDashStyle)(s.plotborderdashlen,s.plotborderdashgap):"none",s.showHoverEffect=s.showhovereffect=(0,r.pluckNumber)(u.plothovereffect,u.anchorhovereffect,u.showhovereffect,void 0),s.rotateValues=(0,r.pluckNumber)(u.rotatevalues)?270:0,s.drawLine=(0,r.pluckNumber)(c.drawline,u.drawlines,0),s.lineThickness=s.linethickness=(0,r.pluckNumber)(c.linethickness,u.linethickness,2),s.lineDashLen=s.linedashlen=(0,r.pluckNumber)(c.linedashlen,u.linedashlen,5),s.lineDashGap=s.linedashgap=(0,r.pluckNumber)(c.linedashgap,u.linedashgap,4),s.lineAlpha=s.linealpha=(0,r.pluckNumber)(c.linealpha,u.linealpha,c.alpha,r.HUNDREDSTRING),s.lineColor=s.linecolor=(0,r.pluck)(c.linecolor,u.linecolor,c.color,s.plotColor),s.lineDashStyle=s.linedashstyle=(0,r.getDashStyle)(s.linedashlen,s.linedashgap),s.lineDashStyle=s.linedashstyle=f?s.linedashstyle:"none",s.shadow={opacity:(0,r.pluckNumber)(u.showshadow,n)?s.linealpha/100:0},s.drawanchors=(0,r.pluckNumber)(c.drawanchors,c.showanchors,u.drawanchors,u.showanchors),s.anchorbgcolor=(0,r.getFirstColor)((0,r.pluck)(c.anchorbgcolor,u.anchorbgcolor,d.getColor("anchorBgColor"))),s.anchorbordercolor=(0,r.getFirstColor)((0,r.pluck)(c.anchorbordercolor,c.color,u.anchorbordercolor,s.linecolor)),s.anchorradius=(0,r.pluckNumber)(c.anchorradius,u.anchorradius,3),s.anchoralpha=(0,r.pluck)(c.anchoralpha,c.alpha,u.anchoralpha,r.HUNDREDSTRING),s.anchorbgalpha=(0,r.pluck)(c.anchorbgalpha,c.alpha,u.anchorbgalpha,r.HUNDREDSTRING),s.anchorborderthickness=(0,r.pluck)(c.anchorborderthickness,u.anchorborderthickness,1),s.anchorsides=(0,r.pluckNumber)(c.anchorsides,u.anchorsides,s.index+3),s.anchorimageurl=(0,r.pluck)(c.anchorimageurl,u.anchorimageurl),s.anchorimagealpha=(0,r.pluckNumber)(c.anchorimagealpha,u.anchorimagealpha,100),s.anchorimagescale=(0,r.pluckNumber)(c.anchorimagescale,u.anchorimagescale,100),s.anchorimagepadding=(0,r.pluckNumber)(c.anchorimagepadding,u.anchorimagepadding,1),s.anchorstartangle=(0,r.pluckNumber)(c.anchorstartangle,u.anchorstartangle,90),s.anchorshadow=(0,r.pluckNumber)(c.anchorshadow,u.anchorshadow,0),s.plotToolText=(0,r.getValidValue)((0,r.parseUnsafeString)((0,r.pluck)(c.plottooltext,u.plottooltext))),this.setState("visible",1===(0,r.pluckNumber)(c.visible,!Number(c.initiallyhidden),1)),this._setConfigure(),!1!==l.config.hasLegend&&l.config.showLegend&&this._addLegend(),this.setState("dirty",!0)},a.calculateScrollRange=function(){var e=this.config,t=this.getFromEnv("chart"),a=this.getFromEnv("xAxis"),i=t.hasScroll,n=this.components.data.length;e.scrollMinVal=i?u(g(a.getVisibleConfig().minValue)-1,0):0,e.scrollMaxVal=i?d(g(a.getVisibleConfig().maxValue)+2,n):n,e.scrollMinValForLabel=e.scrollMinVal,e.scrollMaxValForLabel=e.scrollMaxVal},a._setConfigure=function(){var e,t,a,i,n,o,l,s,c,h,u,d,g=-Infinity,p=+Infinity,f=g,m=p,v=p,b=g,x=this.components.data||(this.components.data=[]),y=this.getFromEnv("chart"),C=this.config,k=C.JSONData,S=y.getFromEnv("dataSource").chart,w=k.data||[],L=w.length,A=this.getFromEnv("number-formatter"),N=(0,r.parseUnsafeString)(S.yaxisname),F=(0,r.parseUnsafeString)(S.xaxisname),E=C.lineDashed,_=C.linedashstyle,T=C.parentYAxis,P=C.toolTipSepChar,D=C.seriesname;for(C.imageCount=0,e=0;e<L;e+=1)i=w[e],(t=(a=x[e]||(x[e]={})).config||(a.config={})).setValue=n={x:A.getCleanValue(i.x),y:A.getCleanValue(i.y)},null!==n.x&&null!==n.y&&(n.x>b&&(b=n.x,C.rightMostData=a),n.x<v&&(v=n.x,C.leftMostData=a),n.y>f&&(f=n.y,C.topMostData=a),n.y<m&&(m=n.y,C.bottomMostData=a)),t._x=n.x,t._y=n.y,t.dataLabelStyle=this._configureDataLabelStyle(i),t.setLink=(0,r.pluck)(i.link),t.anchorProps=this._parseAnchorProperties(e),t.showValue=(0,r.pluckNumber)(i.showvalue,C.showvalues),t.dashed=(0,r.pluckNumber)(i.dashed,E),t.color=(0,r.pluck)(i.color,C.linecolor),t.alpha=(0,r.pluck)(i.alpha,C.linealpha),t.dashStyle=t.dashed?_:"none",t.toolTipValue=l=A.dataLabels(n.y,T),t.setDisplayValue=d=(0,r.parseUnsafeString)(i.displayvalue),h=t.formatedVal=(0,r.pluck)(i.toolTipValue,A.dataLabels(n.y,T)),u=A.xAxis(n.x),t.displayValue=(0,r.pluck)(d,l),t.setTooltext=(0,r.getValidValue)((0,r.parseUnsafeString)((0,r.pluck)(i.tooltext,C.plotToolText))),C.showTooltip?void 0!==t.setTooltext?(s=[4,5,6,7,8,9,10,11],c={yaxisName:N,xaxisName:F,yDataValue:h,xDataValue:u},o=(0,r.parseTooltext)(t.setTooltext,s,c,i,S,k)):null===h?o=!1:(o=D?D+P:r.BLANKSTRING,o+=n.x?u+P:r.BLANKSTRING,o+=l):o=!1,t.toolText=o,a?a.graphics||(x[e].graphics={}):a=x[e]={graphics:{}},t.hoverEffects=this._parseHoverEffectOptions(a,i),t.anchorProps.isAnchorHoverRadius=t.hoverEffects.anchorRadius;C.xMax=b,C.xMin=v,C.yMin=m,C.yMax=f,this.ErrorValueConfigure&&this.ErrorValueConfigure()},a._getHoveredPlot=function(e,t){var a=this.config.dataTree.getNeighbour({x:e,y:t},!0);if(a)return{pointIndex:a.index||a.i,hovered:!0,pointObj:a.data}},a.drawPlots=function(){e.prototype.drawPlots.call(this),this.setupHoverTracker()},a.getRegressionPoints=function(){var e,t,a,i,n,o,r,l,s=this.getChildren("regression"),c=-Infinity,h=Infinity,u=-Infinity,d=Infinity;if(s&&s.length&&!s[0].getState("removed")){for(r=(e=s[0]._config.regressionPoints||[]).length,t=0;t<r;t++)for(n=e[t],a=0;a<n.length;a++)for(l=(o=n[a]||[]).length,i=0;i<l;i++)c=Math.max(c,o[i].x),h=Math.min(h,o[i].x),u=Math.max(u,o[i].y),d=Math.min(d,o[i].y);return{max:u,min:d,xMax:c,xMin:h}}},a.getDataLimits=function(){var e=this.config,t=this.getFromEnv("chart").config,a=e.yMax,i=e.yMin,n=e.xMax,o=e.xMin,r=-Infinity,l=+Infinity,s=t.transposeAxis,c=this.getRegressionPoints();return!1===this.getState("visible")&&s&&(a=r,i=l,n=r,o=l),c&&(a=Math.max(a,c.max),i=Math.min(i,c.min),n=Math.max(n,c.xMax),o=Math.min(o,c.xMin)),{max:a,min:i,xMax:n,xMin:o}},a.getAxisValuePadding=function(){return this.config.defaultValuePadding},a.getCanvasPadding=function(){var e,t,a,i,n,o,l,s,c,h,g,p,f,m,v,b,x,y=this.config||(this.config={}),C=this.components||{},k=this.getFromEnv("chartConfig"),S=k.rotatevalues,w=this.getFromEnv("xAxis"),L=this.getFromEnv("yAxis"),A=w.config.isReverse,N=this.getFromEnv("dataLabelStyle"),F=C.data||[],E=F.length,_=y.leftMostData||F[0],T=y.rightMostData||F[F.length-1],P=y.topMostData,D=y.bottomMostData,I=d(k.canvasHeight,k.canvasWidth)/8,M=w.getValue(0),O=1,R=1,V=k.zMax,B=y.bubbleScale,G={},H={},z=0,W=0,j=w.config.axisRange,U=j.min,q=j.max,Y=L.config.axisRange,X=Y.min,K=Y.max,Z=w.getPixel(U),J=w.getPixel(q),$=this.getFromEnv("smartLabel"),Q={paddingLeft:0,paddingRight:0},ee=0;for(e=I/Math.sqrt(V),c=0;c<E;c++)t=F[c].config,a=_.config,i=T.config,l=Math.sqrt(t.z),m=Math.round(l*e)*B||0,v=w.getValue(m)-M,h=t.x-v/2,1===O&&(l=Math.sqrt(a.z),m=Math.round(l*e)*B||0,v=w.getValue(m)-M,g=a.x-v/2),1===R&&(l=Math.sqrt(i.z),m=Math.round(l*e)*B||0,v=w.getValue(m)-M,p=i.x-v/2),O=0,R=0,g>h&&(_=F[c],O=1),p<h&&(T=F[c],R=1);return _&&(o=(n=_.config).anchorProps.radius,(b=n.showValue)&&(f=n.displayValue,$.useEllipsesOnOverflow(k.useEllipsesWhenOverflow),$.setStyle(N),H=$.getOriSize(f),ee=S?H.height:H.width),null!==n.setValue&&(h=w.getPixel(n.setValue.x),W=A?J-(s=h-.5*ee):Z-(s=h-.5*ee),z=!A&&h-o<=Z||A&&h-o<=J?A?J-(h-o):Z-(h-o):0),Q.paddingLeft=u(W,z)),T&&(b=(n=T.config).showValue,o=n.anchorProps.radius,b&&(f=n.displayValue,$.setStyle(N),G=$.getOriSize(f),ee=S?G.height:G.width),null!==n.setValue&&(W=(s=(h=w.getPixel(n.setValue.x))-Z+.5*ee)-J+Z,A&&(W=s),z=!A&&h+o>=J||A&&h+o>=Z?A?h+o-Z:h+o-J:0),Q.paddingRight=u(W,z)),P&&(o=(n=P.config).anchorProps.radius||0,K=L.getPixel(K),null!==n.setValue&&(x=L.getPixel(n.setValue.y),z=(0,r.pluckNumber)(o,0)+(0,r.pluckNumber)(n.anchorProps.borderThickness,0)/2),Q.paddingTop=K-(x-z)>0?K-(x-z):0),D&&(o=(n=D.config).anchorProps.radius||0,X=L.getPixel(X),null!==n.setValue&&(x=L.getPixel(n.setValue.y),z=(0,r.pluckNumber)(o,0)+(0,r.pluckNumber)(n.anchorProps.borderThickness,0)/2),Q.paddingBottom=x+z-X>0?x+z-X:0),Q},a._addLegend=function(){var e,t,a,i,n,o,l,s,c,h=this.getFromEnv("chart"),u=this.config,d=h.getChildren("legend")[0],g=(0,r.pluckNumber)(u.drawanchors,1),p={fillColor:(o=u.anchorbgcolor,l=r.HUNDREDSTRING,s=o,c=l,s=(0,r.getFirstColor)(s),c=(0,r.getFirstAlpha)(c),{FCcolor:{gradientUnits:"objectBoundingBox",cx:.4,cy:.4,r:"100%",color:(0,r.getLightColor)(s,70)+","+(0,r.getDarkColor)(s,50),alpha:c+","+c,ratio:r.BGRATIOSTRING,radialGradient:!0}}),lineColor:{FCcolor:{color:u.anchorbordercolor,alpha:u.anchoralpha}},lineWidth:u.anchorborderthickness};d.config.symbol3DLighting?p.fillcolor&&p.fillcolor.FCcolor?(e=(0,r.extend2)({},p.fillcolor)).FCcolor.alpha=r.HUNDREDSTRING:e=(0,r.pluck)(p.fillColor):e={FCcolor:{color:(0,r.pluck)((t=p.fillColor)&&(t.FCcolor&&t.FCcolor.color.split(",")[0]||t)),angle:0,ratio:"0",alpha:"100"}},i={enabled:u.includeInLegend,type:this.type,drawLine:(0,r.pluck)(u.drawLine,!0),anchorSide:g?u.anchorsides:0,label:(0,r.getFirstValue)(this.config.JSONData.seriesname)},u.includeinlegend?((n=d.getItem(this.config.legendItemId))?n.configure({style:d.config.itemStyle,hiddenStyle:d.config.itemHiddenStyle,datasetVisible:d.config.datasetVisible,hoverStyle:d.config.itemHoverStyle}):(this.config.legendItemId=d.createItem(this),n=d.getItem(this.config.legendItemId),this.addExtEventListener("fc-click",(function(){n.itemClickFn()}),n)),n.configure(i),n.setStateCosmetics("default",{symbol:{fill:(0,r.toRaphaelColor)(e),rawFillColor:u.anchorbgcolor,rawStrokeColor:u.lineColor,stroke:(0,r.toRaphaelColor)((0,r.pluck)((a=p.lineColor)&&(a.FCcolor&&a.FCcolor.color.split(",")[0]||a))),"stroke-width":u.anchorborderthickness}}),this.getState("visible")?n.removeLegendState("hidden"):n.setLegendState("hidden")):this.config.legendItemId&&d.disposeItem(this.config.legendItemId)},a.getDSGroupdef=function(){},a.trimData=function(e){if(this.config.JSONData){var t,a,i=this.config,n=i&&i.context,o=n&&n.prevCatlen,r=this.getFromEnv("xAxis").getTicksLen(),l=o-r,s=i.JSONData,c=s.data&&s.data.length,h=e.data&&e.data.length||0,u=c-h;l>u?(t=l,a=r):(t=u,a=h),t>0&&this.removeData(a,t,!1)}},t}(o["default"]);t["default"]=p},601:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(e,t,a,i,n){return Math.pow(a-e,2)+Math.pow(i-t,2)<=Math.pow(n,2)},n=Math.PI,o=Math.cos,r=Math.sin,l=Math.max,s=Math.min,c=n/180,h=function(e,t,a,i,n,o){var r,l,s;return r=(i-t)*(n-a),l=(a-e)*(o-i),isNaN(r)&&(r=0),isNaN(l)&&(l=0),0===(s=r-l)?0:s>0?1:2},u=function(e,t,a,i,n,o){return a<=l(e,n)&&a>=s(e,n)&&i<=l(t,o)&&i>=s(t,o)},d=function(e,t,a,i,n,o,r,l){var s=h(e,t,a,i,n,o),c=h(e,t,a,i,r,l),d=h(n,o,r,l,e,t),g=h(n,o,r,l,a,i);return s!==c&&d!==g||(!(0!==s||!u(e,t,n,o,a,i))||(!(0!==c||!u(e,t,r,l,a,i))||(!(0!==d||!u(n,o,e,t,r,l))||!(0!==g||!u(n,o,a,i,r,l)))))},g=function(e,t,a,l,s,g,p){var f,m,v,b,x,y,C,k=Infinity,S=0,w=!1;if(i(e,t,a,l,s)&&g>=3){for(m=void 0===p?.5*n:p%360*c,C=2*n/g,v=a+s*o(-m),y=l+s*r(-m),f=0;f<g;f++){if(b=a+s*o(-(m+=C)),x=l+s*r(-m),d(v,y,b,x,e,t,k,t)){if(0===h(v,y,e,t,b,x))return u(v,y,e,t,b,x);S++}v=b,y=x}w=S%2!=0}return w},p=function(e,t){return!e||e&&t&&t.i>e.i?t:e};var f=function(){function e(e){this.configure(e)}var t=e.prototype;return t.configure=function(e){this.validatorFn=e?this.shapeValidator():this.defaultValidator()},t.defaultValidator=function(){var e=this;return function(t){var a=e.mousePoint;return!!(t&&Math.pow((t.x-a.x)/e.xLimit,2)+Math.pow((t.y-a.y)/e.yLimit,2)<=1)}},t.shapeValidator=function(){var e=this;return function(t){var a,n,o,r,l,s,c,h,u=e.mousePoint,d=t&&t.shapeInfo,p=!1,f=u.x,m=u.y;switch(d&&d.type){case"circle":n=d.radius,p=i(f,m,t.x,t.y,n);break;case"arc":a=d.innerradius,n=d.radius,p=!i(f,m,t.x,t.y,a)&&i(f,m,t.x,t.y,n);break;case"polygon":n=d.radius,r=d.startAngle,o=d.sides,p=g(f,m,t.x,t.y,n,o,r);break;case"rect":case"rectangle":l=t.x,c=t.y,s=l+(d.width||0),h=c+(d.height||0),p=f>=l&&f<=s&&m>=c&&m<=h;break;case"default":p=!1}return p}},t.buildKdTree=function(e){return this.kdTree=function(e){var t,a,i,n=e,o=n&&n[0]&&n[0].r||5,r=Math.max,l=Math.floor,s=Math.sqrt,c=Math.min,h=Math.log,u=Math.exp,d=Math.pow;function g(e,t,a){var i=e[t];e[t]=e[a],e[a]=i}for(a=function(e,t,i,n){for(var o,d,p,f,m,v,b,x,y,C,k=i,S=n;S>k;){for(S-k>600&&(d=t-k+1,p=h(o=S-k+1),f=.5*u(2*p/3),m=.5*s(p*f*(o-f)/o)*(d-o/2<0?-1:1),v=r(k,l(t-d*f/o+m)),b=c(S,l(t+(o-d)*f/o+m)),a(e,t,v,b)),x=e[t],y=k,C=S,g(e,k,t),e[S].x>x.x&&g(e,k,S);y<C;){for(g(e,y,C),y++,C--;e[y].x<x.x;)y++;for(;e[C].x>x.x;)C--}e[k].x===x.x?g(e,k,C):g(e,++C,S),C<=t&&(k=C+1),t<=C&&(S=C-1)}},i=function(e,t,a,n){for(var o,d,p,f,m,v,b,x,y,C,k=a,S=n,w=e;S>k;){for(S-k>600&&(d=t-k+1,p=h(o=S-k+1),f=.5*u(2*p/3),m=.5*s(p*f*(o-f)/o)*(d-o/2<0?-1:1),v=r(k,l(t-d*f/o+m)),b=c(S,l(t+(o-d)*f/o+m)),i(w,t,v,b)),x=w[t],y=k,C=S,g(w,k,t),w[S].y>x.y&&g(w,k,S);y<C;){for(g(w,y,C),y++,C--;w[y].y<x.y;)y++;for(;w[C].y>x.y;)C--}w[k].y===x.y?g(w,k,C):g(w,++C,S),C<=t&&(k=C+1),t<=C&&(S=C-1)}},t=(n=n||[]).length;t--;)n[t].r>o&&(o=n[t].r),n[t].i=t,n[t].x=+n[t].x,n[t].y=+n[t].y;return{tree:0===n.length?{}:function p(e,t,n,o){var r,l={},s=o?"y":"x";return t===n?(l.point=e[t],l):n-t==1?(e[t][s]>e[n][s]?(l.point=e[t],l.left={point:e[n]}):(l.point=e[n],l.left={point:e[t]}),l):(r=t+n>>1,o?i(e,r,t,n):a(e,r,t,n),l.point=e[r],l.left=p(e,t,r-1,!o),l.right=p(e,r+1,n,!o),l)}(n,0,n.length-1,!1),search:function(e,t,a,i){var n,r,l,c=this.tree,h=i,u=e-o,g=e+o,p=t-o,f=t+o,m=!1,v=0;function b(e,t,a,i){return s(d(e-a,2)+d(t-i,2))}function x(i,n){return"circle"===a?b(i,n,e,t)<=u:i>=u&&i<=g&&n>=p&&n<=f}function y(e,t,a){return e>=t&&e<=a}function C(a){var i=y(e,a.x1,a.x2)&&y(t,a.y1,a.y2),o=b(e,t,a.point.x,a.point.y);if(!n)return n=a,m=i,void(v=o);i?m?a.point.i>n.point.i&&(n=a,m=i,v=o):(n=a,m=i,v=o):m||o<v&&(n=a,m=i,v=o)}function k(i,n){"circle"===a?u=i:(u=e-i||0,g=e+i||0,p=t-n||0,f=t+n||0)}return h=h||{},l=function(e){e&&e.point&&(k(h.rx||e.point.r,h.ry||e.point.r),x(e.point.x,e.point.y)&&C(e),p<=e.point.y&&r(e.left),f>=e.point.y&&r(e.right))},(r=function(e){e&&e.point&&(k(h.rx||e.point.r,h.ry||e.point.r),x(e.point.x,e.point.y)&&C(e),u<=e.point.x&&l(e.left),g>=e.point.x&&l(e.right))})(c),n&&n.point||n}}}(e),this.tree=this.kdTree.tree,this},t.getNeighbour=function(e,t,a){var i=this.tree,n={x1:e.x-this.xLimit,x2:e.x+this.xLimit,y1:e.y-this.yLimit,y2:e.y+this.yLimit},o=this.validatorFn;return this.mousePoint=e,t?this.kdTree&&this.kdTree.search(e.x,e.y,a,e.options):i?this._searchBtwnLimit(n,i,!0,o):void 0},t._searchBtwnLimit=function(e,t,a,i){var n,o,r=a?"x":"y",l=a?e.x1:e.y1,s=a?e.x2:e.y2;if(void 0!==(n=t&&t.point&&t.point[r]))return i(t.point)&&(o=t.point),n>=l&&t.left&&(o=p(o,this._searchBtwnLimit(e,t.left,!a,i))),n<=s&&t.right&&(o=p(o,this._searchBtwnLimit(e,t.right,!a,i))),o},t._setSearchLimit=function(e,t){this.xLimit=e,this.yLimit=t},e}();f.prototype.constructor=f;var m=f;t["default"]=m},602:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n={"*.dataset.scatter":i(a(501))["default"]["*.dataset.line"]};t["default"]=n},610:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(499)),r=i(a(611)),l=function(e){function t(){var t;return(t=e.call(this)||this).defaultPlotShadow=0,t}(0,n["default"])(t,e),t.getName=function(){return"MSArea"};var a=t.prototype;return a.getName=function(){return"MSArea"},a.getDSdef=function(){return o["default"]},a.getDSGroupdef=function(){},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;t.friendlyName="Multi-series Area Chart",t.defaultDatasetType="area",t.defaultcrosslinethickness=1},t}(r["default"]);t["default"]=l},611:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t._setDefaultConfig=t["default"]=void 0;var n=i(a(198)),o=i(a(572)),r=a(184),l=r.preDefStr.SEVENTYSTRING,s=function(){var e=this.config;e.anchorborderthickness=1,e.anchorimageurl=void 0,e.anchorimagepadding=1,e.anchorsides=1,e.anchoralpha=void 0,e.anchorbgalpha=r.HUNDREDSTRING,e.anchorimagealpha=r.HUNDREDSTRING,e.anchorimagescale=100,e.anchorstartangle=90,e.anchorshadow=0,e.anchorbgcolor=void 0,e.anchorbordercolor=void 0,e.anchorradius=3,e.showvalues=1,e.plotfillalpha=l,e.linedashlen=5,e.linedashgap=4,e.linedashed=void 0,e.linealpha=r.HUNDREDSTRING,e.linethickness=2,e.drawfullareaborder=1,e.connectnulldata=0};t._setDefaultConfig=s;var c=function(e){function t(){return e.apply(this,arguments)||this}return(0,n["default"])(t,e),t.getName=function(){return"AreaBase"},t.prototype.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this),s.call(this)},t}(o["default"]);t["default"]=c},655:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(611)),r=i(a(498)),l=function(e){function t(){var t;return(t=e.call(this)||this).defaultPlotShadow=1,t.axisPaddingLeft=0,t.axisPaddingRight=0,t}(0,n["default"])(t,e),t.getName=function(){return"MSLine"};var a=t.prototype;return a.getName=function(){return"MSLine"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;t.friendlyName="Multi-series Line Chart",t.defaultDatasetType="line",t.zeroplanethickness=1,t.zeroplanealpha=40,t.showzeroplaneontop=0,t.enablemousetracking=!0,t.defaultcrosslinethickness=1},a.getDSdef=function(){return r["default"]},a.getDSGroupdef=function(){},t}(o["default"]);t["default"]=l},658:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(659))["default"];t["default"]=n},659:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(660))["default"];t["default"]=n},660:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=a(611),r=i(a(564)),l=i(a(404)),s=function(e){function t(){var t;return(t=e.call(this)||this).defaultPlotShadow=1,t}(0,n["default"])(t,e),t.getName=function(){return"Spline"};var a=t.prototype;return a.getName=function(){return"Spline"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;t.friendlyName="Spline Chart",t.singleseries=!0,t.defaultDatasetType="msspline",t.minimizetendency=0,t.zeroplanethickness=1,t.zeroplanealpha=40,t.showzeroplaneontop=0,t.enablemousetracking=!0,t.defaultcrosslinethickness=1,o._setDefaultConfig.call(this)},a.getDSdef=function(){return r["default"]},t}(l["default"]);t["default"]=s},661:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(662))["default"];t["default"]=n},662:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(660)),r=a(611),l=i(a(560)),s=function(e){function t(){var t;return(t=e.call(this)||this).defaultPlotShadow=0,t}(0,n["default"])(t,e),t.getName=function(){return"SplineArea"};var a=t.prototype;return a.getName=function(){return"SplineArea"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;r._setDefaultConfig.call(this),t.friendlyName="Spline Area Chart",t.singleseries=!0,t.hasLegend=!1,t.defaultDatasetType="mssplinearea",t.anchoralpha="100",t.minimizetendency=0,t.enablemousetracking=!0,t.defaultcrosslinethickness=1,t.showzeroplaneontop=1,t.inheritplotbordercolor=0},a.getDSdef=function(){return l["default"]},a.getDSGroupdef=function(){},t}(o["default"]);t["default"]=s},663:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(664))["default"];t["default"]=n},664:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(665))["default"];t["default"]=n},665:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=a(611),r=i(a(564)),l=i(a(508)),s=function(e){function t(){var t;return(t=e.call(this)||this).defaultPlotShadow=1,t}(0,n["default"])(t,e),t.getName=function(){return"MSSpline"};var a=t.prototype;return a.getName=function(){return"MSSpline"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;t.friendlyName="Multi-series Spline Chart",t.defaultDatasetType="msspline",t.minimizetendency=0,t.zeroplanethickness=1,t.zeroplanealpha=40,t.showzeroplaneontop=0,t.enablemousetracking=!0,t.defaultcrosslinethickness=1,o._setDefaultConfig.call(this)},a.getDSdef=function(){return r["default"]},a.getDSGroupdef=function(){},t}(l["default"]);t["default"]=s},666:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(667))["default"];t["default"]=n},667:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=a(611),r=i(a(545)),l=i(a(564)),s=function(e){function t(){var t;return(t=e.call(this)||this).isDual=!0,t}(0,n["default"])(t,e),t.getName=function(){return"MSSplineDy"};var a=t.prototype;return a.getName=function(){return"MSSplineDy"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;t.friendlyName="Multi-series Dual Y-Axis Spline Chart",t.defaultDatasetType="msspline",t.minimizetendency=0,t.zeroplanethickness=1,t.zeroplanealpha=40,t.showzeroplaneontop=0,t.enablemousetracking=!0,t.defaultcrosslinethickness=1,t.isdual=!0,o._setDefaultConfig.call(this)},a.getDSdef=function(){return l["default"]},a.getDSGroupdef=function(){},a.getDSType=function(){return"spline"},t}(r["default"]);t["default"]=s},668:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(669))["default"];t["default"]=n},669:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=i(a(665)),r=a(611),l=i(a(560)),s="Multi-series Spline Area Chart",c=function(e){function t(){var t;return(t=e.call(this)||this).friendlyName=s,t.defaultPlotShadow=0,t}(0,n["default"])(t,e),t.getName=function(){return"MSSplineArea"};var a=t.prototype;return a.getName=function(){return"MSSplineArea"},a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this);var t=this.config;r._setDefaultConfig.call(this),t.defaultDatasetType="mssplinearea",t.minimizetendency=0,t.zeroplanethickness=2,t.zeroplanealpha=80,t.showzeroplaneontop=1,t.enablemousetracking=!0,t.defaultcrosslinethickness=1},a.getDSdef=function(){return l["default"]},a.getDSGroupdef=function(){},t}(o["default"]);t["default"]=c},678:function(e,t,a){"use strict";a.r(t);var i=a(679),n=a(682),o=a(685),r=a(688),l=a(696),s=Object(i["default"])(Object(n["default"])(["fantasy-land/chain","chain"],r["default"],(function(e,t){return"function"==typeof t?function(a){return e(t(a))(a)}:Object(o["default"])(!1)(Object(l["default"])(e,t))})));t["default"]=s},679:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return o}));var i=a(680),n=a(681);function o(e){return function t(a,o){switch(arguments.length){case 0:return t;case 1:return Object(n["default"])(a)?t:Object(i["default"])((function(t){return e(a,t)}));default:return Object(n["default"])(a)&&Object(n["default"])(o)?t:Object(n["default"])(a)?Object(i["default"])((function(t){return e(t,o)})):Object(n["default"])(o)?Object(i["default"])((function(t){return e(a,t)})):e(a,o)}}}},680:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return n}));var i=a(681);function n(e){return function t(a){return 0===arguments.length||Object(i["default"])(a)?t:e.apply(this,arguments)}}},681:function(e,t,a){"use strict";function i(e){return null!=e&&"object"==typeof e&&!0===e["@@functional/placeholder"]}a.r(t),a.d(t,"default",(function(){return i}))},682:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return o}));var i=a(683),n=a(684);function o(e,t,a){return function(){if(0===arguments.length)return a();var o=Array.prototype.slice.call(arguments,0),r=o.pop();if(!Object(i["default"])(r)){for(var l=0;l<e.length;){if("function"==typeof r[e[l]])return r[e[l]].apply(r,o);l+=1}if(Object(n["default"])(r)){var s=t.apply(null,o);return s(r)}}return a.apply(this,arguments)}}},683:function(e,t,a){"use strict";a.r(t),t["default"]=Array.isArray||function(e){return null!=e&&e.length>=0&&"[object Array]"===Object.prototype.toString.call(e)}},684:function(e,t,a){"use strict";function i(e){return"function"==typeof e["@@transducer/step"]}a.r(t),a.d(t,"default",(function(){return i}))},685:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return n}));var i=a(686);function n(e){return function t(a){for(var n,o,r,l=[],s=0,c=a.length;s<c;){if(Object(i["default"])(a[s]))for(r=0,o=(n=e?t(a[s]):a[s]).length;r<o;)l[l.length]=n[r],r+=1;else l[l.length]=a[s];s+=1}return l}}},686:function(e,t,a){"use strict";a.r(t);var i=a(680),n=a(683),o=a(687),r=Object(i["default"])((function(e){return!!Object(n["default"])(e)||!!e&&("object"==typeof e&&(!Object(o["default"])(e)&&(1===e.nodeType?!!e.length:0===e.length||e.length>0&&(e.hasOwnProperty(0)&&e.hasOwnProperty(e.length-1)))))}));t["default"]=r},687:function(e,t,a){"use strict";function i(e){return"[object String]"===Object.prototype.toString.call(e)}a.r(t),a.d(t,"default",(function(){return i}))},688:function(e,t,a){"use strict";a.r(t);var i=a(679),n=a(689),o=a(696),r=Object(i["default"])((function(e,t){return Object(o["default"])(e,Object(n["default"])(t))}));t["default"]=r},689:function(e,t,a){"use strict";a.r(t);var i=a(690),n=a(686),o=a(691),r=a(695);t["default"]=function(e){var t=function(e){return{"@@transducer/init":r["default"].init,"@@transducer/result":function(t){return e["@@transducer/result"](t)},"@@transducer/step":function(t,a){var n=e["@@transducer/step"](t,a);return n["@@transducer/reduced"]?Object(i["default"])(n):n}}}(e);return{"@@transducer/init":r["default"].init,"@@transducer/result":function(e){return t["@@transducer/result"](e)},"@@transducer/step":function(e,a){return Object(n["default"])(a)?Object(o["default"])(t,e,a):Object(o["default"])(t,e,[a])}}}},690:function(e,t,a){"use strict";function i(e){return{"@@transducer/value":e,"@@transducer/reduced":!0}}a.r(t),a.d(t,"default",(function(){return i}))},691:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return c}));var i=a(686),n=a(692),o=a(693);function r(e,t,a){for(var i=a.next();!i.done;){if((t=e["@@transducer/step"](t,i.value))&&t["@@transducer/reduced"]){t=t["@@transducer/value"];break}i=a.next()}return e["@@transducer/result"](t)}function l(e,t,a,i){return e["@@transducer/result"](a[i](Object(o["default"])(e["@@transducer/step"],e),t))}var s="undefined"!=typeof Symbol?Symbol.iterator:"@@iterator";function c(e,t,a){if("function"==typeof e&&(e=Object(n["default"])(e)),Object(i["default"])(a))return function(e,t,a){for(var i=0,n=a.length;i<n;){if((t=e["@@transducer/step"](t,a[i]))&&t["@@transducer/reduced"]){t=t["@@transducer/value"];break}i+=1}return e["@@transducer/result"](t)}(e,t,a);if("function"==typeof a["fantasy-land/reduce"])return l(e,t,a,"fantasy-land/reduce");if(null!=a[s])return r(e,t,a[s]());if("function"==typeof a.next)return r(e,t,a);if("function"==typeof a.reduce)return l(e,t,a,"reduce");throw new TypeError("reduce: list must be array or iterable")}},692:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return n}));var i=function(){function e(e){this.f=e}return e.prototype["@@transducer/init"]=function(){throw new Error("init not implemented on XWrap")},e.prototype["@@transducer/result"]=function(e){return e},e.prototype["@@transducer/step"]=function(e,t){return this.f(e,t)},e}();function n(e){return new i(e)}},693:function(e,t,a){"use strict";a.r(t);var i=a(694),n=a(679),o=Object(n["default"])((function(e,t){return Object(i["default"])(e.length,(function(){return e.apply(t,arguments)}))}));t["default"]=o},694:function(e,t,a){"use strict";function i(e,t){switch(e){case 0:return function(){return t.apply(this,arguments)};case 1:return function(e){return t.apply(this,arguments)};case 2:return function(e,a){return t.apply(this,arguments)};case 3:return function(e,a,i){return t.apply(this,arguments)};case 4:return function(e,a,i,n){return t.apply(this,arguments)};case 5:return function(e,a,i,n,o){return t.apply(this,arguments)};case 6:return function(e,a,i,n,o,r){return t.apply(this,arguments)};case 7:return function(e,a,i,n,o,r,l){return t.apply(this,arguments)};case 8:return function(e,a,i,n,o,r,l,s){return t.apply(this,arguments)};case 9:return function(e,a,i,n,o,r,l,s,c){return t.apply(this,arguments)};case 10:return function(e,a,i,n,o,r,l,s,c,h){return t.apply(this,arguments)};default:throw new Error("First argument to _arity must be a non-negative integer no greater than ten")}}a.r(t),a.d(t,"default",(function(){return i}))},695:function(e,t,a){"use strict";a.r(t),t["default"]={init:function(){return this.xf["@@transducer/init"]()},result:function(e){return this.xf["@@transducer/result"](e)}}},696:function(e,t,a){"use strict";a.r(t);var i=a(679),n=a(682),o=a(697),r=a(691),l=a(698),s=a(699),c=a(701),h=Object(i["default"])(Object(n["default"])(["fantasy-land/map","map"],l["default"],(function(e,t){switch(Object.prototype.toString.call(t)){case"[object Function]":return Object(s["default"])(t.length,(function(){return e.call(this,t.apply(this,arguments))}));case"[object Object]":return Object(r["default"])((function(a,i){return a[i]=e(t[i]),a}),{},Object(c["default"])(t));default:return Object(o["default"])(e,t)}})));t["default"]=h},697:function(e,t,a){"use strict";function i(e,t){for(var a=0,i=t.length,n=Array(i);a<i;)n[a]=e(t[a]),a+=1;return n}a.r(t),a.d(t,"default",(function(){return i}))},698:function(e,t,a){"use strict";a.r(t);var i=a(679),n=a(695),o=function(){function e(e,t){this.xf=t,this.f=e}return e.prototype["@@transducer/init"]=n["default"].init,e.prototype["@@transducer/result"]=n["default"].result,e.prototype["@@transducer/step"]=function(e,t){return this.xf["@@transducer/step"](e,this.f(t))},e}(),r=Object(i["default"])((function(e,t){return new o(e,t)}));t["default"]=r},699:function(e,t,a){"use strict";a.r(t);var i=a(694),n=a(680),o=a(679),r=a(700),l=Object(o["default"])((function(e,t){return 1===e?Object(n["default"])(t):Object(i["default"])(e,Object(r["default"])(e,[],t))}));t["default"]=l},700:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return o}));var i=a(694),n=a(681);function o(e,t,a){return function(){for(var r=[],l=0,s=e,c=0;c<t.length||l<arguments.length;){var h;c<t.length&&(!Object(n["default"])(t[c])||l>=arguments.length)?h=t[c]:(h=arguments[l],l+=1),r[c]=h,Object(n["default"])(h)||(s-=1),c+=1}return s<=0?a.apply(this,r):Object(i["default"])(s,o(e,r,a))}}},701:function(e,t,a){"use strict";a.r(t);var i=a(680),n=a(702),o=a(703),r=!{toString:null}.propertyIsEnumerable("toString"),l=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],s=function(){return arguments.propertyIsEnumerable("length")}(),c=function(e,t){for(var a=0;a<e.length;){if(e[a]===t)return!0;a+=1}return!1},h="function"!=typeof Object.keys||s?function(e){if(Object(e)!==e)return[];var t,a,i=[],h=s&&Object(o["default"])(e);for(t in e)!Object(n["default"])(t,e)||h&&"length"===t||(i[i.length]=t);if(r)for(a=l.length-1;a>=0;)t=l[a],Object(n["default"])(t,e)&&!c(i,t)&&(i[i.length]=t),a-=1;return i}:function(e){return Object(e)!==e?[]:Object.keys(e)},u=Object(i["default"])(h);t["default"]=u},702:function(e,t,a){"use strict";function i(e,t){return Object.prototype.hasOwnProperty.call(t,e)}a.r(t),a.d(t,"default",(function(){return i}))},703:function(e,t,a){"use strict";a.r(t);var i=a(702),n=Object.prototype.toString;t["default"]=function(){return"[object Arguments]"===n.call(arguments)?function(e){return"[object Arguments]"===n.call(e)}:function(e){return Object(i["default"])("callee",e)}}},704:function(e,t,a){"use strict";a.r(t);var i=a(705),n=a(680),o=Object(n["default"])((function(e){return null!=e&&"function"==typeof e.clone?e.clone():Object(i["default"])(e,[],[],!0)}));t["default"]=o},705:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return o}));var i=a(706),n=a(707);function o(e,t,a,r){var l=function(i){for(var n=t.length,l=0;l<n;){if(e===t[l])return a[l];l+=1}for(var s in t[l+1]=e,a[l+1]=i,e)i[s]=r?o(e[s],t,a,!0):e[s];return i};switch(Object(n["default"])(e)){case"Object":return l({});case"Array":return l([]);case"Date":return new Date(e.valueOf());case"RegExp":return Object(i["default"])(e);default:return e}}},706:function(e,t,a){"use strict";function i(e){return new RegExp(e.source,(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.sticky?"y":"")+(e.unicode?"u":""))}a.r(t),a.d(t,"default",(function(){return i}))},707:function(e,t,a){"use strict";a.r(t);var i=a(680),n=Object(i["default"])((function(e){return null===e?"Null":e===undefined?"Undefined":Object.prototype.toString.call(e).slice(8,-1)}));t["default"]=n},708:function(e,t,a){"use strict";a.r(t);var i=a(709),n=a(711),o=Object(n["default"])(i["default"]);t["default"]=o},709:function(e,t,a){"use strict";a.r(t);var i=a(680),n=a(710),o=Object(i["default"])(n["default"]);t["default"]=o},710:function(e,t,a){"use strict";function i(e){return e}a.r(t),a.d(t,"default",(function(){return i}))},711:function(e,t,a){"use strict";a.r(t);var i=a(712),n=a(679),o=Object(n["default"])((function(e,t){for(var a,n,o=new i["default"],r=[],l=0;l<t.length;)a=e(n=t[l]),o.add(a)&&r.push(n),l+=1;return r}));t["default"]=o},712:function(e,t,a){"use strict";a.r(t);var i=a(713),n=function(){function e(){this._nativeSet="function"==typeof Set?new Set:null,this._items={}}return e.prototype.add=function(e){return!o(e,!0,this)},e.prototype.has=function(e){return o(e,!1,this)},e}();function o(e,t,a){var n,o=typeof e;switch(o){case"string":case"number":return 0===e&&1/e==-Infinity?!!a._items["-0"]||(t&&(a._items["-0"]=!0),!1):null!==a._nativeSet?t?(n=a._nativeSet.size,a._nativeSet.add(e),a._nativeSet.size===n):a._nativeSet.has(e):o in a._items?e in a._items[o]||(t&&(a._items[o][e]=!0),!1):(t&&(a._items[o]={},a._items[o][e]=!0),!1);case"boolean":if(o in a._items){var r=e?1:0;return!!a._items[o][r]||(t&&(a._items[o][r]=!0),!1)}return t&&(a._items[o]=e?[!1,!0]:[!0,!1]),!1;case"function":return null!==a._nativeSet?t?(n=a._nativeSet.size,a._nativeSet.add(e),a._nativeSet.size===n):a._nativeSet.has(e):o in a._items?!!Object(i["default"])(e,a._items[o])||(t&&a._items[o].push(e),!1):(t&&(a._items[o]=[e]),!1);case"undefined":return!!a._items[o]||(t&&(a._items[o]=!0),!1);case"object":if(null===e)return!!a._items["null"]||(t&&(a._items["null"]=!0),!1);default:return(o=Object.prototype.toString.call(e))in a._items?!!Object(i["default"])(e,a._items[o])||(t&&a._items[o].push(e),!1):(t&&(a._items[o]=[e]),!1)}}t["default"]=n},713:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return n}));var i=a(714);function n(e,t){return Object(i["default"])(t,e,0)>=0}},714:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return n}));var i=a(715);function n(e,t,a){var n,o;if("function"==typeof e.indexOf)switch(typeof t){case"number":if(0===t){for(n=1/t;a<e.length;){if(0===(o=e[a])&&1/o===n)return a;a+=1}return-1}if(t!=t){for(;a<e.length;){if("number"==typeof(o=e[a])&&o!=o)return a;a+=1}return-1}return e.indexOf(t,a);case"string":case"boolean":case"function":case"undefined":return e.indexOf(t,a);case"object":if(null===t)return e.indexOf(t,a)}for(;a<e.length;){if(Object(i["default"])(e[a],t))return a;a+=1}return-1}},715:function(e,t,a){"use strict";a.r(t);var i=a(679),n=a(716),o=Object(i["default"])((function(e,t){return Object(n["default"])(e,t,[],[])}));t["default"]=o},716:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return u}));var i=a(717),n=a(718),o=a(719),r=a(702),l=a(720),s=a(701),c=a(707);function h(e,t,a,o){var r=Object(i["default"])(e),l=Object(i["default"])(t);function s(e,t){return u(e,t,a.slice(),o.slice())}return!Object(n["default"])((function(e,t){return!Object(n["default"])(s,t,e)}),l,r)}function u(e,t,a,i){if(Object(l["default"])(e,t))return!0;var n=Object(c["default"])(e);if(n!==Object(c["default"])(t))return!1;if(null==e||null==t)return!1;if("function"==typeof e["fantasy-land/equals"]||"function"==typeof t["fantasy-land/equals"])return"function"==typeof e["fantasy-land/equals"]&&e["fantasy-land/equals"](t)&&"function"==typeof t["fantasy-land/equals"]&&t["fantasy-land/equals"](e);if("function"==typeof e.equals||"function"==typeof t.equals)return"function"==typeof e.equals&&e.equals(t)&&"function"==typeof t.equals&&t.equals(e);switch(n){case"Arguments":case"Array":case"Object":if("function"==typeof e.constructor&&"Promise"===Object(o["default"])(e.constructor))return e===t;break;case"Boolean":case"Number":case"String":if(typeof e!=typeof t||!Object(l["default"])(e.valueOf(),t.valueOf()))return!1;break;case"Date":if(!Object(l["default"])(e.valueOf(),t.valueOf()))return!1;break;case"Error":return e.name===t.name&&e.message===t.message;case"RegExp":if(e.source!==t.source||e.global!==t.global||e.ignoreCase!==t.ignoreCase||e.multiline!==t.multiline||e.sticky!==t.sticky||e.unicode!==t.unicode)return!1}for(var d=a.length-1;d>=0;){if(a[d]===e)return i[d]===t;d-=1}switch(n){case"Map":return e.size===t.size&&h(e.entries(),t.entries(),a.concat([e]),i.concat([t]));case"Set":return e.size===t.size&&h(e.values(),t.values(),a.concat([e]),i.concat([t]));case"Arguments":case"Array":case"Object":case"Boolean":case"Number":case"String":case"Date":case"Error":case"RegExp":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"ArrayBuffer":break;default:return!1}var g=Object(s["default"])(e);if(g.length!==Object(s["default"])(t).length)return!1;var p=a.concat([e]),f=i.concat([t]);for(d=g.length-1;d>=0;){var m=g[d];if(!Object(r["default"])(m,t)||!u(t[m],e[m],p,f))return!1;d-=1}return!0}},717:function(e,t,a){"use strict";function i(e){for(var t,a=[];!(t=e.next()).done;)a.push(t.value);return a}a.r(t),a.d(t,"default",(function(){return i}))},718:function(e,t,a){"use strict";function i(e,t,a){for(var i=0,n=a.length;i<n;){if(e(t,a[i]))return!0;i+=1}return!1}a.r(t),a.d(t,"default",(function(){return i}))},719:function(e,t,a){"use strict";function i(e){var t=String(e).match(/^function (\w*)/);return null==t?"":t[1]}a.r(t),a.d(t,"default",(function(){return i}))},720:function(e,t,a){"use strict";a.r(t);var i=a(679),n=Object(i["default"])((function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}));t["default"]=n},721:function(e,t,a){"use strict";a.r(t);var i=a(679),n=Object(i["default"])((function(e,t){for(var a,i=0,n=e.length,o=t.length,r=[];i<n;){for(a=0;a<o;)r[r.length]=[e[i],t[a]],a+=1;i+=1}return r}));t["default"]=n},722:function(e,t,a){"use strict";a.r(t);var i=a(723),n=a(680),o=a(699),r=Object(n["default"])((function(e){return Object(o["default"])(e.length,(function(){var t=0,a=arguments[0],n=arguments[arguments.length-1],o=Array.prototype.slice.call(arguments,0);return o[0]=function(){var e=a.apply(this,Object(i["default"])(arguments,[t,n]));return t+=1,e},e.apply(this,o)}))}));t["default"]=r},723:function(e,t,a){"use strict";function i(e,t){var a;t=t||[];var i=(e=e||[]).length,n=t.length,o=[];for(a=0;a<i;)o[o.length]=e[a],a+=1;for(a=0;a<n;)o[o.length]=t[a],a+=1;return o}a.r(t),a.d(t,"default",(function(){return i}))},724:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;t["default"]=function(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}},734:function(e,t,a){"use strict";var i=a(182),n=a(178);t.__esModule=!0,t["default"]=void 0;var o=n(a(198)),r=n(a(430)),l=i(a(427)),s=n(a(735)),c=n(a(190)),h=function(e,t){var a=t,i=e;return(a=Math.log(a/i))?function(e){return Math.log(e/i)/a}:(0,r["default"])(a)},u=function(e,t){return e<0?function(a){return-Math.pow(-t,a)*Math.pow(-e,1-a)}:function(a){return Math.pow(t,a)*Math.pow(e,1-a)}},d=function(e){return isFinite(e)?+("1e"+e):e<0?0:e},g=function(e){return 10===e?d:e===Math.E?Math.exp:function(t){return Math.pow(e,t)}},p=function(e){return e===Math.E?Math.log:10===e?Math.log10:2===e?Math.log2:function(t){return Math.log(t)/Math.log(e)}},f=function(e){return function(t){return-e(-t)}},m=function(e){function t(){var t;return(t=e.call(this,h,u)||this).setDomain([1,10]),t.base=10,t.logs=p(t.base),t.pows=g(t.base),t}(0,o["default"])(t,e);var a=t.prototype;return a._rescaleLog=function(){return this.logs=p(this.base),this.pows=g(this.base),this.getDomain()[0]<0&&(this.logs=f(this.logs),this.pows=f(this.pows)),this},a.setBase=function(e){return void 0===e&&(e=10),this.base=Number(e),this._rescaleLog()},a.getBase=function(){return this.base},a.setDomain=function(t){return void 0===t&&(t=[1,10]),e.prototype.setDomain.call(this,t),this._rescaleLog()},a.nice=function(){var e,t,a=this.getDomain(),i=a[0],n=a[1],o=this.base;return i===n&&(i-=i/100),e=Math.log(i)/Math.log(o),t=Math.log(n)/Math.log(o),(e%1||t%1)&&(i<=n?(i=this.pows(Math.floor(e)),n=this.pows(Math.ceil(t))):(i=this.pows(Math.ceil(e)),n=this.pows(Math.floor(t))),this.setDomain([i,n])),this},a.tickFormat=function(e,t){var a=this.base,i=t,n=e;return null==i&&(i=10===a?".0e":","),"function"!=typeof i&&(i=this._localeConverter.formatter(i)),null==n&&(n=10),function(e){return i.format(e)}},a.ticks=function(){var e,t,a,i,n,o,r=this.getDomain(),l=r[0],s=r[1],c=1,h=0,u=[],d=this.base;if(l<=0||s<=0)return u;if(l>s){var g=this.getDomain();s=g[0],l=g[1],c=0}for(d>1?(t=e=Math.ceil(Math.log(s)/Math.log(d)),a=Math.floor(Math.log(l)/Math.log(d))):d>0&&d<1&&(e=Math.floor(Math.log(s)/Math.log(d)),t=Math.ceil(Math.log(l)/Math.log(d)),a=e),n=e,o=t;o>=a;--o)l<=(i=this.pows(n))&&s>=i&&(u[h++]=i),d>1?n--:n++;return this.majorTicks=c?u.reverse():u},a.copy=function(){return(0,l.copyScale)(this,(new t).setBase(this.base))},a.minorTicks=function(e,t){void 0===t&&(t=this.majorTicks||this.ticks());var a,i,n,o,r,l=this.base,h=(0,s["default"])(t),u=[],d=Math.log(l)/Math.log(10),g=l>1?-1:1,p=e;return p=(0,c["default"])(Number(p),d%1?4:8),h.forEach((function(e){var t=e[0],s=e[1];for(l>1?i=Math.ceil(Math.log(s)/Math.log(l)):l>0&&l<1&&(i=Math.floor(Math.log(s)/Math.log(l))),o=Math.pow(l,i)-Math.pow(l,i+g),n=o/(p+1),a=1;a<=p;++a)t<=(r=Math.pow(l,i+g)+n*a)&&s>=r&&u.push(r)})),u},a.contextTicks=function(){return this.contextTicksArr||[]},a.getType=function(){return"log"},t}(l["default"]);t["default"]=m},735:function(e,t,a){"use strict";function i(e,t){return[e,t]}t.__esModule=!0,t["default"]=void 0;var n=function(e,t){var a=t,n=0,o=e.length-1,r=e[0],l=new Array(o<0?0:o);for(null==a&&(a=i);n<o;)l[n]=a(r,r=e[++n]);return l};t["default"]=n},750:function(e,t,a){"use strict";a.r(t);var i=a(751),n=a(679),o=Object(n["default"])((function(e,t){return Object(i["default"])({},e,t)}));t["default"]=o},751:function(e,t,a){"use strict";a.r(t);var i=a(752);t["default"]="function"==typeof Object.assign?Object.assign:i["default"]},752:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return n}));var i=a(702);function n(e){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),a=1,n=arguments.length;a<n;){var o=arguments[a];if(null!=o)for(var r in o)Object(i["default"])(r,o)&&(t[r]=o[r]);a+=1}return t}},774:function(e,t,a){"use strict";a.r(t);var i=a(680),n=Object(i["default"])((function(e){for(var t=0,a=[];t<e.length;){for(var i=e[t],n=0;n<i.length;)"undefined"==typeof a[n]&&(a[n]=[]),a[n].push(i[n]),n+=1;t+=1}return a}));t["default"]=n},777:function(e,t,a){"use strict";a.r(t);var i=a(679),n=a(778),o=Object(i["default"])((function(e,t){return Object(n["default"])((function(e,t,a){return a}),e,t)}));t["default"]=o},778:function(e,t,a){"use strict";a.r(t);var i=a(779),n=a(780),o=a(781),r=Object(i["default"])((function l(e,t,a){return Object(o["default"])((function(t,a,i){return Object(n["default"])(a)&&Object(n["default"])(i)?l(e,a,i):e(t,a,i)}),t,a)}));t["default"]=r},779:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return r}));var i=a(680),n=a(679),o=a(681);function r(e){return function t(a,r,l){switch(arguments.length){case 0:return t;case 1:return Object(o["default"])(a)?t:Object(n["default"])((function(t,i){return e(a,t,i)}));case 2:return Object(o["default"])(a)&&Object(o["default"])(r)?t:Object(o["default"])(a)?Object(n["default"])((function(t,a){return e(t,r,a)})):Object(o["default"])(r)?Object(n["default"])((function(t,i){return e(a,t,i)})):Object(i["default"])((function(t){return e(a,r,t)}));default:return Object(o["default"])(a)&&Object(o["default"])(r)&&Object(o["default"])(l)?t:Object(o["default"])(a)&&Object(o["default"])(r)?Object(n["default"])((function(t,a){return e(t,a,l)})):Object(o["default"])(a)&&Object(o["default"])(l)?Object(n["default"])((function(t,a){return e(t,r,a)})):Object(o["default"])(r)&&Object(o["default"])(l)?Object(n["default"])((function(t,i){return e(a,t,i)})):Object(o["default"])(a)?Object(i["default"])((function(t){return e(t,r,l)})):Object(o["default"])(r)?Object(i["default"])((function(t){return e(a,t,l)})):Object(o["default"])(l)?Object(i["default"])((function(t){return e(a,r,t)})):e(a,r,l)}}}},780:function(e,t,a){"use strict";function i(e){return"[object Object]"===Object.prototype.toString.call(e)}a.r(t),a.d(t,"default",(function(){return i}))},781:function(e,t,a){"use strict";a.r(t);var i=a(779),n=a(702),o=Object(i["default"])((function(e,t,a){var i,o={};for(i in t)Object(n["default"])(i,t)&&(o[i]=Object(n["default"])(i,a)?e(i,t[i],a[i]):t[i]);for(i in a)Object(n["default"])(i,a)&&!Object(n["default"])(i,o)&&(o[i]=a[i]);return o}));t["default"]=o},818:function(e,t,a){"use strict";a.r(t);var i=a(679),n=a(682),o=a(819),r=Object(i["default"])(Object(n["default"])(["all"],o["default"],(function(e,t){for(var a=0;a<t.length;){if(!e(t[a]))return!1;a+=1}return!0})));t["default"]=r},819:function(e,t,a){"use strict";a.r(t);var i=a(679),n=a(820),o=a(695),r=function(){function e(e,t){this.xf=t,this.f=e,this.all=!0}return e.prototype["@@transducer/init"]=o["default"].init,e.prototype["@@transducer/result"]=function(e){return this.all&&(e=this.xf["@@transducer/step"](e,!0)),this.xf["@@transducer/result"](e)},e.prototype["@@transducer/step"]=function(e,t){return this.f(t)||(this.all=!1,e=Object(n["default"])(this.xf["@@transducer/step"](e,!1))),e},e}(),l=Object(i["default"])((function(e,t){return new r(e,t)}));t["default"]=l},820:function(e,t,a){"use strict";function i(e){return e&&e["@@transducer/reduced"]?e:{"@@transducer/value":e,"@@transducer/reduced":!0}}a.r(t),a.d(t,"default",(function(){return i}))},885:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=function(){var e,t,a,i,n,o=this.getChildren(),r=this.getDatasets(),l=o.xAxis&&o.xAxis[0]||o.scale,s=[],c=0;if(r){for(e=r.length,t=0;t<e;t++)c=Math.max(c,r[t].components.data.length);for(t=0;t<c;t++)for((n=s[t]=[])[0]=l.getLabel(t).label,a=1;a<=e;a++)i=r[a-1].components.data[t],n[a]=i&&i.config.setValue;return s}};t["default"]=i},985:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=function(e){!function(e){var t=e.getChildren("colorManager");if(!e.getFromEnv("dataSource").colorrange)return t&&(t[0].config.legendItemIds=[]),void e.deleteFromEnv("colorManager");if(t)return e.addToEnv("colorManager",t[0]),void t[0].configure();t=new n["default"],e.attachChild(t,"colorManager"),e.addToEnv("colorManager",t),t.configure()}(e)};var n=i(a(986))},986:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=a(199),r=i(a(987)),l=i(a(988)),s=a(184);function c(e){var t=e||g;return(0,s.getValidColor)(t)||g}var h,u,d="rgba(192,192,192,"+(s.isIE?.002:1e-6)+")",g="#000000",p=((u={}).legendCarpetConf={spreadFactor:.85,allowDrag:!1,captionAlignment:"center",padding:{v:3,h:3},style:{fill:"#e4d9c1",stroke:"#c4b89d"}},u.legendCaptionConf={spreadFactor:.2,padding:{v:2,h:2},style:{fill:"#786B50",fontFamily:"sans-serif",fontSize:"12px",fontWeight:"bold",fontStyle:"normal"},bound:{style:{stroke:"none"}}},u.legendBodyConf={spreadFactor:.8,padding:{v:2,h:2},bound:{style:{stroke:"none"}}},u.legendAxisConf={legendAxisHeight:11,spreadFactor:.4,padding:{v:1,h:1},style:{stroke:"none","stroke-opacity":0,"stroke-width":1},line:{grooveLength:3,offset:8,style:{stroke:"rgba(255, 255, 255, 0.65)","stroke-width":1.5}},shadow:{style:{stroke:"none",fill:(0,s.toRaphaelColor)({FCcolor:{alpha:"25,0,0",angle:360,color:"000000,FFFFFF,FFFFFF",ratio:"0,30,40"}})}},bound:{style:{stroke:"none"}}},u.sliderGroupConf={showTooltip:1,outerCircle:{rFactor:1.4,style:{fill:d,stroke:"#757575","stroke-width":3}},innerCircle:{rFactor:.65,style:{fill:d,stroke:"#FFFFFF"}}},u.axisTextItemConf={spreadFactor:.3,padding:{v:1,h:1},style:{fill:"#786B50",fontFamily:"sans-serif",fontSize:"12px",fontWeight:"normal",fontStyle:"normal"}},{init:function(e){h=e.chart},legacyDataParser:function(e,t){var a,i,n,o,r,l,u,d,g,p,f,m,v,b={},x=h.getFromEnv("number-formatter"),y=h.getFromEnv("dataSource"),C=y.data,k=t||{};if(!e)return!1;for("maps"!==h.defaultDatasetType||void 0!==k.min&&void 0!==k.max?"HeatMap"!==h.getName()||void 0!==k.min&&void 0!==k.max||(k={min:Infinity,max:-Infinity},y.dataset.forEach((function(e){e.data&&e.data.forEach((function(e){k.min=Math.min(k.min,(0,s.pluckNumber)(e.value,k.min)),k.max=Math.max(k.max,(0,s.pluckNumber)(e.value,k.max))}))}))):(k={min:Infinity,max:-Infinity},C&&C.forEach((function(e){k.min=Math.min(k.min,(0,s.pluckNumber)(e.value,k.min)),k.max=Math.max(k.max,(0,s.pluckNumber)(e.value,k.min))}))),b.mapByPercent=f=!!(0,s.pluckNumber)(e.mapbypercent,0),a=e.color||[],void 0===e.minvalue&&(e.minvalue=void 0!==k.min?f?0:k.min:0),void 0===e.maxvalue&&(e.maxvalue=void 0!==k.max?f?100:k.max:100),e.maxvalue!==e.minvalue&&k.min!==Infinity&&k.max!==-Infinity||(e.minvalue=0,e.maxvalue=100),m=!1,r=0,u=a.length;r<u;r++)if(a[r].maxvalue){m=!0;break}for(m||(a=[]),n=e.code,d=b.colorRange=[],b.gradient=!!(0,s.pluckNumber)(e.gradient,1),a.length?n=c(n):(n?(o=c(n),n=c()):(n=c(),v=n,o=(0,s.getLightColor)(v,1)),a.push({code:o,maxvalue:e.maxvalue,label:void 0})),function(e){var t,a,i,n=h.getFromEnv("number-formatter");for(t=0,a=e.length;t<a;t++)(i=e[t].maxvalue)&&(e[t].maxvalue=n.getCleanValue(i))}(a),a=a.sort((function(e,t){return e.maxvalue-t.maxvalue})),g=p=e.minvalue&&x.getCleanValue(e.minvalue),p=(void 0!==g||null!==g)&&(f?g+"%":x.legendValue(g)),d.push({code:(0,s.dehashify)(n),value:g,displayValue:p,label:e.startlabel}),r=0,u=a.length;r<u;r++)l=c((i=a[r]).code||i.color),g=p=i.maxvalue,isNaN(parseInt(g,10))||(p=(void 0!==g||null!==g)&&(f?g+"%":x.legendValue(g)),d.push({code:(0,s.dehashify)(l),value:g,displayValue:p,label:i.label||i.displayvalue}));return d[d.length-1].label=e.endlabel||i.label,b},getDefaultConf:function(e){return u[e]}}),f=function(e){function t(){var t;return(t=e.call(this)||this).datasource={},t.config.legendItemIds=[],t}(0,n["default"])(t,e);var a=t.prototype;return a.configure=function(){var e,t,a=this.getFromEnv("chart"),i=this.getFromEnv("dataSource").chart.mapbycategory,n=a.config.showLegend,o=a.getChildren("colorRange")&&a.getChildren("colorRange")[0];switch(a.addToEnv("colorManager",this),this.datasource=a.getFromEnv("dataSource"),e=this.datasource.colorrange,o&&o.remove({instant:!0}),n||(this.config.legendItemIds=[]),"maps"===a.defaultDatasetType?e.gradient&&Number(e.gradient)?"gradient":e.color?"icon":"none":"TreeMap"===a.getName()?"gradient":e.gradient&&"0"!==e.gradient&&!Number(i)?"gradient":"icon"){case"gradient":p.init({chart:a}),t=p.legacyDataParser(e),(0,s.componentFactory)(a,l["default"],"colorRange",1,[t]),o=a.getChildren("colorRange")[0],a.addToEnv("colorRange",o),t||(o._dontPlot=!0),this.config.legendItemIds=[],this._configureGradientLegend(o);break;case"icon":(0,s.componentFactory)(a,r["default"],"colorRange",1,[{colorRange:e,sortLegend:0,mapByCategory:(0,s.pluckNumber)(i,0),defaultColor:"cccccc",numberFormatter:a.getFromEnv("number-formatter")}]),a.addToEnv("colorRange",a.getChildren("colorRange")[0]),n&&this._addLegendItems();break;case"none":a.deleteFromEnv("colorManager"),this.config.legendItemIds=[]}},a._configureGradientLegend=function(e){var t=this,a=t.getFromEnv("chart").getFromEnv("gLegend");a&&(a.setColorRange(e),t.addExtEventListener("rangeUpdated",(function(e,a){t.fireEvent("legendUpdate",{"original-event":e,maxMinArray:a,component:"gradientlegend"})}),a))},a._addLegendItems=function(){var e,t,a,i,n,o=this.config,r=this.getFromEnv("chart"),l=r.getChildren("legend")[0],c=r.getFromEnv("colorRange").colorArr,h=c.length;for(i=0;i<h;i++)n={label:(0,s.pluck)(c[i].label,c[i].displayvalue),datasetObj:c[i],index:i},t=(0,s.getLightColor)(c[i].code,40),e={FCcolor:{color:c[i].code+","+c[i].code+","+t,ratio:"0,70,30",angle:270,alpha:"100,100,100"}},(a=l.getItem(o.legendItemIds[i]))||(o.legendItemIds.push(l.createItem(this)),(a=l.getItem(o.legendItemIds[i])).addEventListener("fc-click",a.itemClickFn)),a.removeLegendState("hidden"),c[i].legendItemId=a&&a.getId(),a.configure(n),a.setStateCosmetics("default",{symbol:{fill:(0,s.toRaphaelColor)(e),rawFillColor:c[i].code}});for(i=h;i<o.legendItemIds.length;i++)l.disposeItem(o.legendItemIds[i]);o.legendItemIds.splice(h)},a.legendInteractivity=function(e){var t=this.getFromEnv("colorRange").colorArr[e.config.index];this.fireEvent("legendUpdate",{legendItem:e,colorObj:t,component:"legend"})},a.getColor=function(e){return!Number(this.datasource.chart.mapbycategory)&&Number(this.datasource.colorrange.gradient)?{code:this.getColorByValue(e),label:this.getLabelByValue(e)}:this.getColorObj(e)},a.getValueRatio=function(){return this.getFromEnv("colorRange").getValueRatio()},a.getCumulativeValueRatio=function(){return this.getFromEnv("colorRange").getCumulativeValueRatio()},a.getBoxFill=function(e){return this.getFromEnv("colorRange").getBoxFill(e)},a.getColorByValue=function(e){return this.getFromEnv("colorRange").getColorByValue(e)},a.getColorObj=function(e){return this.getFromEnv("colorRange").getColorObj(e)},a.getLabelByValue=function(e){return this.getFromEnv("colorRange").getLabelByValue(e)},t}(o.ComponentInterface);t["default"]=f},987:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(201)),o=i(a(198)),r=a(184),l=a(199),s=function(e,t){return+e.minvalue==+t.minvalue?e.maxvalue-t.maxvalue:e.minvalue-t.minvalue},c=function(e,t,a){var i=e[0],n=e[1],o=e[2],l=i+(t[0]-i)*a,s=n+(t[1]-n)*a,c=o+(t[2]-o)*a;return{hex:(r.COLOR_BLACK+(l<<16|s<<8|c).toString(16)).slice(-6),rgb:[l,s,c]}},h=function(e){function t(){var t;t=e.call(this)||this;var a=(0,n["default"])(t);return a.mapByCategory=!1,a.colorArr=[],a.noValidRange=!0,a.sortLegend=!1,t}(0,o["default"])(t,e);var a=t.prototype;return a.__setDefaultConfig=function(){e.prototype.__setDefaultConfig.call(this),this.config.defaultObj={code:"CCCCCC",alpha:"100"}},a.getType=function(){return"colorComponent"},a.getName=function(){return"colorBucket"},a.configure=function(e){if(e){var t,a,i,n,o,l,c,h,u,d,g,p=this.mapByCategory,f=e.numberFormatter,m=e.colorRange||{},v=(0,r.extend2)([],m.color),b=this.getLinkedParent(),x=Math.min(Math.max((0,r.pluckNumber)(this.getFromEnv("dataSource").chart.palette,0)-1,0),4),y=b.defaultPaletteOptions&&b.defaultPaletteOptions.paletteColors[x],C=(0,r.pluckNumber)(f.getCleanValue(m.maxvalue),Infinity),k=(0,r.pluckNumber)(f.getCleanValue(m.minvalue),-Infinity),S=this.colorArr;if(void 0!==e.mapByCategory&&(p=this.mapByCategory=!!Number(e.mapByCategory)),(v=p?v.filter((function(e){return e.code||e.color})):v.filter((function(e){return e.minvalue||e.maxvalue}))).forEach((function(e){e.minvalue&&e.maxvalue&&+e.maxvalue<+e.minvalue&&(h=e.maxvalue,e.maxvalue=e.minvalue,e.minvalue=h),e.minvalue?e.maxvalue?(d=f.getCleanValue(e.minvalue),u=f.getCleanValue(e.maxvalue),e.rangeLabel=f.dataLabels(d)+"-"+f.dataLabels(u)):(d=f.getCleanValue(e.minvalue),e.maxvalue=u=C,e.rangeLabel=u===Infinity?">"+f.dataLabels(d):f.dataLabels(d)+"-"+f.dataLabels(u)):(e.minvalue=d=k,u=f.getCleanValue(e.maxvalue),e.rangeLabel=d===-Infinity?"<"+f.dataLabels(u):f.dataLabels(d)+"-"+f.dataLabels(u))})),v.sort(s),v&&(t=v.length)){for(S.length=0,a=0;a<t;a+=1)c=v[a],i=(0,r.pluck)(c.color,c.code,y&&y[a]),n=(0,r.pluck)(c.alpha),l=(0,r.pluck)(c.bordercolor),o=(0,r.pluck)(c.borderalpha,100),u=(0,r.pluckNumber)(c.maxvalue),d=(0,r.pluckNumber)(c.minvalue),g=(0,r.pluck)(c.label,c.displayvalue,c.rangeLabel),(i&&u>=d||p&&g)&&S.push({code:i,alpha:n||"100",oriAlpha:n,maxvalue:u,minvalue:d,label:(0,r.parseUnsafeString)(g),labelId:g.toLowerCase(),bordercolor:l,borderAlpha:o,name:c.name});this.sortedColorArr=this.colorArr.slice(0)}else this.noValidRange=!0,this.colorArr=[],this.sortedColorArr=[]}},a.getColorObj=function(e){if(void 0===e)return{outOfRange:!0};var t,a,i=this.sortedColorArr,n=this.gradient?1:0,o=i[n],l=e;if(this.mapByCategory){for(l=(0,r.parseUnsafeString)(l).toLowerCase()||l.toString().toLowerCase();o;){if(o.labelId===l||o.maxvalue>=l&&o.minvalue<=l)return{code:o.code,alpha:o.alpha||"100",oriAlpha:o.oriAlpha,seriesIndex:n,legendItemId:o.legendItemId};o=i[n+=1]}return{outOfRange:!0}}if(this.gradient){if(this.scaleMin<=l&&this.scaleMax>=l){for(;o&&o.maxvalue<l;)o=i[n+=1];return a=(l-o.minvalue)/o.range,{code:c(i[n-1].codeRGB,o.codeRGB,a).hex}}return{outOfRange:!0}}for(;o;){if(l<o.minvalue&&!t)return 0===n?{code:o.code,alpha:o.alpha||"100",oriAlpha:o.oriAlpha,seriesIndex:n,name:o.name,label:o.label,outOfRange:!0,bordercolor:o.bordercolor,borderalpha:o.borderAlpha}:{code:i[n-1].code,alpha:i[n-1].alpha||"100",oriAlpha:i[n-1].oriAlpha,seriesIndex:n,name:i[n-1].name,label:i[n-1].label,outOfRange:!0,bordercolor:i[n-1].bordercolor,borderalpha:i[n-1].borderAlpha};if(l>o.maxvalue&&n===i.length-1)return{code:o.code,alpha:o.alpha||"100",oriAlpha:o.oriAlpha,seriesIndex:n,name:o.name,label:o.label,outOfRange:!0,bordercolor:o.bordercolor,borderalpha:o.borderAlpha};if(o.maxvalue>l&&o.minvalue<=l)return{code:o.code,alpha:o.alpha||"100",oriAlpha:o.oriAlpha,seriesIndex:n,name:o.name,label:o.label,bordercolor:o.bordercolor,borderalpha:o.borderAlpha};if(l===o.maxvalue&&(t={code:o.code,alpha:o.alpha||"100",oriAlpha:o.oriAlpha,seriesIndex:n,name:o.name,label:o.label,bordercolor:o.bordercolor,borderalpha:o.borderAlpha}),n===i.length-1&&t)return t;o=i[n+=1]}return i.length?void 0:{outOfRange:!0}},a.getColorRangeArr=function(e,t){var a,i,n,o,l,s,c,h,u=[],d=e,g=t;if(!this.defaultAsigned&&(d>g&&(a=d,d=g,g=a),d<g&&(o=this.getColorObj(d),s=this.getColorObj(g),o&&s))){for(l=d,i=o.seriesIndex,n=s.seriesIndex;i<=n;i+=1)(c=(0,r.extend2)({},this.colorArr[i])).minvalue!==l&&(c.minvalue=l),u.push(c),h=c,l=c.maxvalue;h&&(h.maxvalue=g)}return u},t}(l.ComponentInterface);t["default"]=h},988:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n=i(a(198)),o=a(199),r=a(184),l=function(e){function t(){var t;return(t=e.call(this)||this).colorRange={},t.valueRatio={},t.data={},t.mapByPercent=r.UNDEF,t}(0,n["default"])(t,e);var a=t.prototype;return a.getType=function(){return"colorComponent"},a.getName=function(){return"gradientColorRange"},a.configure=function(e){if(e){var t,a,i;for(this.data=e,this.appender=r.BLANKSTRING,i=this.colorRange=e.colorRange.sort((function(e,t){return e.value-t.value})),this.valueRatio=r.UNDEF,this.values=[],t=0,a=i.length;t<a;t++)this.values.push(i[t].value)}},a.getValueRatio=function(){var e,t,a=this.colorRange,i=a.length,n=this.valueRatio,o=a[i-1].value,r=a[0].value,l=o-r,s=0;if(n)return n;for(n=this.valueRatio=[],e=0;e<i;e++)t=(a[e].value-r)/l,n.push(100*(t-s)),s=t;return n},a.getCumulativeValueRatio=function(){var e,t,a=this.colorRange,i=a.length,n=a[0].value,o=a[i-1].value,r=[];for(t=0;t<i;t++)e=a[t],r.push((e.value-n)/(o-n)*100);return r},a.getBoxFill=function(e){var t,a,i,n=this.colorRange,o=n.length,l=[];for(i=e?90:0,a=0;a<o;a++)t=n[a],l.push(t.code);return(0,r.toRaphaelColor)({FCcolor:{alpha:"100,100,100",angle:i,color:l.join(","),ratio:this.getValueRatio().join(",")}})},a.getColorByValue=function(e){var t,a,i,n,o=this.values,l=this.colorRange;if(e!==r.UNDEF&&null!==e){for(a=0,t=o.length;a<t;a++){if(e===o[a]){n=l[a].code;break}if(!a&&e<o[a]){i=!0;break}if(a===t-1&&e>o[a]){i=!0;break}if(e>o[a]&&e<o[a+1]){s=l[a],c=l[a+1],h=e,u=void 0,d=void 0,g=void 0,p=void 0,d=s.value,g=(0,r.HEXtoRGB)(s.code),p=(0,r.HEXtoRGB)(c.code),u=c.value-d,n=(0,r.RGBtoHex)([Math.round(g[0]+(p[0]-g[0])/u*(h-d)),Math.round(g[1]+(p[1]-g[1])/u*(h-d)),Math.round(g[2]+(p[2]-g[2])/u*(h-d))]);break}}var s,c,h,u,d,g,p;if(!i)return n}},a.getLabelByValue=function(e){var t,a,i,n,o=this.values,l=this.colorRange;if(e!==r.UNDEF&&null!==e){for(a=0,t=o.length;a<t;a++){if(e===o[a]){n=l[a].label;break}if(!a&&e<o[a]){i=!0;break}if(a===t-1&&e>o[a]){i=!0;break}if(e>o[a]&&e<o[a+1]){n=l[a].label;break}}if(!i)return n}},t}(o.ComponentInterface);t["default"]=l},989:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=function(e){!function(e){var t,a=e.getFromEnv("dataSource").colorrange,i=e.getFromEnv("dataSource").chart.mapbycategory,h="maps"===e.defaultDatasetType,u="TreeMap"===e.getName(),d=e.getFromEnv("legend"),g=e.getFromEnv("gLegend");t=a&&e.config.showLegend?h?a.gradient&&Number(a.gradient)?s:a.color?c:l:u?a.gradient&&"0"!==a.gradient?s:l:a.gradient&&"0"!==a.gradient&&!Number(i)?s:c:l;switch(t){case"gradient":e.deleteFromEnv("legend"),d&&d.remove(),(0,n.componentFactory)(e,o["default"],"gLegend",1),(g=e.getChildren("gLegend")[0]).configure(),e.addToEnv("gLegend",g);break;case"icon":e.deleteFromEnv("gLegend"),g&&g.remove(),(0,n.componentFactory)(e,r["default"],"legend",1,{showLegend:!0}),(d=e.getChildren("legend")[0]).configure(),e.addToEnv("legend",d);break;case"none":e.deleteFromEnv("gLegend"),e.deleteFromEnv("legend"),g&&g.remove(),d&&d.remove()}}(e)};var n=a(184),o=i(a(990)),r=i(a(512)),l="none",s="gradient",c="icon"},990:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t["default"]=void 0;var n,o,r,l,s,c=i(a(201)),h=i(a(198)),u=a(184),d=a(199),g={},p="rgba(192,192,192,"+(u.isIE?.002:1e-6)+")",f=!1,m=!0,v="#000000",b="GL_CARPET",x="GL_CAPTION",y="GL_BODY",C="GL_LABELS",k="FL_AXIS",S="GL_SG1",w="GL_VALUES",L="fc-gradient-legend",A={}.hasOwnProperty,N="M",F="L";function E(e,t){return function a(e,t){var i,o;for(o in e)A.call(e,o)&&(i=e[o],t[o]===n?t[o]=i:"object"==typeof i&&null!==i&&a(i,t[o]))}(e,t),t}function _(e){var t=e||v;return(0,u.getValidColor)(t)||v}function T(e){var t,a=e.fontSize+"";return a?(t=a.replace(/(\d+)(px)*/,"$1px"),e.fontSize=t,e):e}function P(e){return!(e!==n&&null!=e&&!isNaN(e))}g.CAPTION="CAPTION",g.LEGEND_BODY="LEGEND_BODY",g.AXIS_LABEL="LEGEND_LABEL",g.LEGEND_AXIS="LEGEND_AXIS",g.RANGE="RANGE",g.AXIS_VALUE="AXIS_VALUE",(s={}).legendCarpetConf={spreadFactor:.85,allowDrag:!1,captionAlignment:"center",padding:{v:3,h:3},style:{fill:"#e4d9c1",stroke:"#c4b89d"}},s.legendCaptionConf={spreadFactor:.2,padding:{v:2,h:2},style:{fill:"#786B50",fontFamily:"sans-serif",fontSize:"12px",fontWeight:"bold",fontStyle:"normal"},bound:{style:{stroke:"none"}}},s.legendBodyConf={spreadFactor:.8,padding:{v:2,h:2},bound:{style:{stroke:"none"}}},s.legendAxisConf={legendAxisHeight:11,spreadFactor:.4,padding:{v:1,h:1},style:{stroke:"none","stroke-opacity":0,"stroke-width":1},line:{grooveLength:3,offset:8,style:{stroke:"rgba(255, 255, 255, 0.65)","stroke-width":1.5}},shadow:{style:{stroke:"none",fill:(0,u.toRaphaelColor)({FCcolor:{alpha:"25,0,0",angle:360,color:"000000,FFFFFF,FFFFFF",ratio:"0,30,40"}})}},bound:{style:{stroke:"none"}}},s.sliderGroupConf={showTooltip:1,outerCircle:{rFactor:1.4,style:{fill:p,stroke:"#757575","stroke-width":3}},innerCircle:{rFactor:.65,style:{fill:p,stroke:"#FFFFFF"}}},s.axisTextItemConf={spreadFactor:.3,padding:{v:1,h:1},style:{fill:"#786B50",fontFamily:"sans-serif",fontSize:"12px",fontWeight:"normal",fontStyle:"normal"}},o={init:function(e){l=e.chart},legacyDataParser:function(e,t){var a,i,o,r,s,c,h,d,g,p,f,m,v,b={},x=l.getFromEnv("number-formatter");if(!e)return!1;for(b.mapByPercent=f=!!(0,u.pluckNumber)(e.mapbypercent,0),a=e.color||[],e.minvalue===n&&(e.minvalue=t.min!==n?f?0:t.min:0),e.maxvalue===n&&(e.maxvalue=t.max!==n?f?100:t.max:100),m=!1,s=0,h=a.length;s<h;s++)if(a[s].maxvalue){m=!0;break}for(m||(a=[]),o=e.code,d=b.colorRange=[],b.gradient=!!(0,u.pluckNumber)(e.gradient,1),a.length?o=_(o):(o?(r=_(o),o=_()):(o=_(),v=o,r=(0,u.getLightColor)(v,1)),a.push({code:r,maxvalue:e.maxvalue,label:n})),function(e){var t,a,i,n=l.getFromEnv("number-formatter");for(t=0,a=e.length;t<a;t++)(i=e[t].maxvalue)&&(e[t].maxvalue=n.getCleanValue(i))}(a),a=a.sort((function(e,t){return e.maxvalue-t.maxvalue})),g=p=e.minvalue&&x.getCleanValue(e.minvalue),p=(g!==n||null!==g)&&(f?g+"%":x.legendValue(g)),d.push({code:(0,u.dehashify)(o),value:g,displayValue:p,label:e.startlabel}),s=0,h=a.length;s<h;s++)c=_((i=a[s]).code||i.color),g=p=i.maxvalue,isNaN(parseInt(g,10))||(p=(g!==n||null!==g)&&(f?g+"%":x.legendValue(g)),d.push({code:(0,u.dehashify)(c),value:g,displayValue:p,label:i.label||i.displayvalue}));return d[d.length-1].label=e.endlabel||i.label,b},getDefaultConf:function(e){return s[e]}};var D=function(e){(0,h["default"])(a,e);var t=a.prototype;function a(){var t;return t=e.call(this)||this,r=(0,c["default"])(t),t.enabled=!1,t.drawOptions={},t.components={},t}return t.getType=function(){return"gradientLegend"},t.getName=function(){return"gLegend"},t.setColorRange=function(e){var t=this.drawOptions.colorRange=e;t&&t._preparationGoneWrong&&(this._dontPlot=!0)},t.configureAttributes=function(){var e,t,a,i,r,l,s,c,h,d,g=this.getFromEnv("chart"),p=this.getFromEnv("dataSource").chart,f=this.conf={},m=p.outcnvbasefont,v=p.outcnvbasefontsize,b=p.outcnvbasefontcolor,x=g.config.dataLabelStyle;o.init({chart:g}),this.data=this.getFromEnv("dataSource").colorrange,this._dontPlot||(this.drawOptions={smartLabel:this.getFromEnv("smartLabel"),gLegend:this},this._dontPlot=!1,this._recalculateLogicalSpace=!0,f.caption=(0,u.pluck)(p.legendcaption),f.legendPosition=(0,u.pluck)(p.legendposition,"bottom").toLowerCase(),f.showLegend=(0,u.pluckNumber)(p.showlegend,1),f.interactiveLegend=(0,u.pluckNumber)(p.interactivelegend,1),f.showLegendLabels=(0,u.pluckNumber)(p.showlegendlabels,1),e=p.legenditemfontcolor||b,t=p.legenditemfont||m,a=p.legenditemfontsize||v,i=(0,u.pluckNumber)(p.legenditemfontbold,0),r=p.legendcaptionfontcolor||b,l=p.legendcaptionfont||m,s=p.legendcaptionfontsize||v,c=(0,u.pluckNumber)(p.legendcaptionfontbold,1),d=(h=p.legendaxisbordercolor?(0,u.hashify)((0,u.dehashify)(p.legendaxisbordercolor)):n)?(0,u.pluckNumber)(p.legendaxisborderalpha,100)/100:n,f.axisTextItemConf={style:{fill:e?(0,u.convertColor)((0,u.pluck)(e)):x.color,fontFamily:t?(0,u.pluck)(t):x.fontFamily,fontSize:a?(0,u.pluckNumber)(a):x.fontSize.match(/\d+/)[0],fontWeight:i?"bold":x.fontWeight}},f.legendCaptionConf={style:{fill:r?(0,u.convertColor)((0,u.pluck)(r)):x.color,fontFamily:l?(0,u.pluck)(l):x.fontFamily,fontSize:s?(0,u.pluckNumber)(s):x.fontSize.match(/\d+/)[0],fontWeight:c?"bold":x.fontWeight,fontStyle:"normal"}},f.legendAxisConf={legendAxisHeight:11,style:{stroke:h,"stroke-opacity":d},line:{style:{stroke:(0,u.convertColor)((0,u.pluck)(p.legendscalelinecolor,"FFF8E9"),(0,u.pluckNumber)(p.legendscalelinealpha,100)),"stroke-width":(0,u.pluckNumber)(p.legendscalelinethickness)}}},f.sliderGroupConf={showTooltip:(0,u.pluckNumber)(p.showtooltip,1),outerCircle:{rFactor:(0,u.pluckNumber)(p.sliderdiameterfactor),style:{stroke:(0,u.convertColor)((0,u.pluck)(p.legendpointerbordercolor,"757575"),(0,u.pluckNumber)(p.legendpointerborderalpha,100))}},innerCircle:{rFactor:(0,u.pluckNumber)(p.sliderholediameterfactor),style:{stroke:(0,u.convertColor)((0,u.pluck)(p.legendpointercolor,"FFFFFF"),(0,u.pluckNumber)(p.legendpointeralpha,100))}}},f.legendCarpetConf={spreadFactor:(0,u.pluckNumber)(p.legendspreadfactor),allowDrag:!!(0,u.pluckNumber)(p.legendallowdrag,0),captionAlignment:(0,u.pluck)(p.legendcaptionalignment,"center"),style:{fill:(0,u.convertColor)((0,u.pluck)(p.legendbgcolor,"e4d9c1"),(0,u.pluckNumber)(p.legendbgalpha,100)),stroke:(0,u.convertColor)((0,u.pluck)(p.legendbordercolor,"c4b89d"),(0,u.pluckNumber)(p.legendborderalpha,100)),"stroke-width":(0,u.pluckNumber)(p.legendborderthickness,1)}})},t.postConfigureInit=function(){var e,t,a,i,n,r,l,s,c,h,u,d=this.conf;this.elem={},d.interactiveLegend?(i=E(o.getDefaultConf("sliderGroupConf"),d.sliderGroupConf),this.sGroup?((a=this.elem.sGroup=this.sGroup).configure(i),this.elem.sGroup.gLegend=this):(this.sGroup=this.elem.sGroup=a=new H(i),a.configure(i),this.elem.sGroup.gLegend=this)):(this.sGroup&&this.sGroup.dispose(),this.sGroup&&delete this.sGroup),(i=E(o.getDefaultConf("legendCarpetConf"),d.legendCarpetConf)).legendPosition=d.legendPosition,u=o.getDefaultConf("legendBodyConf"),"bottom"===d.legendPosition?(this.drawOptions.refSideKey="canvasWidth",this.drawOptions.refOffsetKey="canvasLeft",n=E(o.getDefaultConf("axisTextItemConf"),d.axisTextItemConf),u.legendPosition="bottom",(h=E(o.getDefaultConf("legendAxisConf"),d.legendAxisConf)).legendPosition="bottom",n.legendPosition="bottom"):(this.drawOptions.refSideKey="canvasHeight",this.drawOptions.refOffsetKey="canvasTop",n=E(o.getDefaultConf("axisTextItemConf"),d.axisTextItemConf),u.legendPosition="right",(h=E(o.getDefaultConf("legendAxisConf"),d.legendAxisConf)).legendPosition="right",n.legendPosition="right"),Object.keys(this.components).length||(this.components.LegendCarpet=new M,this.components.LegendBody=new R,this.components.LegendAxis=new B,this.components.LegendValues=new z,d.showLegendLabels&&(this.components.LegendLabels=new V)),t=this.components.LegendAxis,s=this.components.LegendValues,e=this.components.LegendCarpet,r=this.components.LegendBody,d.showLegendLabels&&(l=this.components.LegendLabels),this.components.LegendCarpet.configure(i),this.components.LegendValues.configure(n),this.components.LegendAxis.configure(h),this.components.LegendBody.configure(this.drawOptions.colorRange,u,n),d.showLegendLabels&&l.configure(n),d.caption?(c=E(o.getDefaultConf("legendCaptionConf"),d.legendCaptionConf),this.componentCaption&&Object.keys(this.componentCaption).length?this.componentCaption.configure(d.caption,c):(this.componentCaption=new O).configure(d.caption,c),e.addCompositions(this.componentCaption,g.CAPTION)):(e.removeCompositions(g.CAPTION),this.componentCaption&&this.componentCaption.dispose(),delete this.componentCaption),a&&t.addCompositions(a,g.RANGE),l&&r.addCompositions(l,g.AXIS_LABEL),r.addCompositions(t,g.LEGEND_AXIS),r.addCompositions(s,g.AXIS_VALUE),e.addCompositions(r,g.LEGEND_BODY),this.elem.gl=new I(e)},t.getValueRange=function(){var e,t,a=this.elem&&this.elem.sGroup,i=a.sliders,n=a.extremes;return e=i["false"].currPos,t=n[1]-n[0]+i["true"].currPos,[{min:a.getValueFormPixel(e),max:a.getValueFormPixel(t)}]},t._dispose=function(){this.elem&&this.elem.gl&&this.elem.gl.dispose(),this.elem={},e.prototype._dispose.call(this)},t.getCalculatedLogicalSpace=function(){return this._logicalArea},t.setCalculatedLogicalSpace=function(e){this._logicalArea=e},t.getLogicalSpace=function(e){var t,a,i,n=this.conf,o={height:0,width:0},r=this.drawOptions,l=this.getFromEnv("chartConfig");return this._recalculateLogicalSpace?this._dontPlot?o:(this._recalculateLogicalSpace=!1,this.postConfigureInit(),n.showLegend?(a=r.refSideKey,i=r.refOffsetKey,this.drawOptions.refSide=l[a],this.drawOptions.refOffset=l[i],this.drawOptions.maxOtherSide=e||this.drawOptions.maxOtherSide,this.elem.gl&&(t=this.elem.gl.getLogicalSpace(this.drawOptions,!0),this.elem.gl&&this.setCalculatedLogicalSpace(t)),this.getCalculatedLogicalSpace()):o):(a=r.refSideKey,i=r.refOffsetKey,this.drawOptions.refSide=l[a],this.drawOptions.refOffset=l[i],this.drawOptions.maxOtherSide=e||this.drawOptions.maxOtherSide,t=this.elem.gl.getLogicalSpace(this.drawOptions,!0),this.setCalculatedLogicalSpace(t),this.getCalculatedLogicalSpace()||o)},t.resetLegend=function(){var e;(e=this.elem&&this.elem.sGroup)&&e.reset()},t.allocatePosition=function(){var e,t,a,i,n,o,r=this.getFromEnv("chart"),l=r.config,s=this.conf||{},c=s.legendPosition,h=l.canvasLeft,u=l.canvasTop,d=l.canvasWidth,g=l.canvasHeight,p=l.marginBottom,f=l.marginRight;r.config.gLegendEnabled&&(e=this.getCalculatedLogicalSpace(),a=s.width=e.width,i=s.height=e.height,"bottom"===c?(n=h+((t=d-a)<0?0:t/2),o=l.height-e.height-p-(l.actionBarHeight||0)):(o=u+((t=g-i)<0?0:t/2),n=l.width-e.width-f),s.xPos=n,s.yPos=o)},t.draw=function(){var e=this.getFromEnv("chart"),t=e.getFromEnv("dataSource").colorrange,a=this.conf||{},i=e.hasGradientLegend;e.config.gLegendEnabled&&t&&i&&this.drawLegendComponent(a.xPos,a.yPos,{parentGroup:e.getContainer("parentgroup"),animationManager:e.getFromEnv("animationManager")})},t.drawLegendComponent=function(e,t,a){var i,n=this.conf;this._dontPlot||(n.showLegend?(this.drawOptions.animationManager=a.animationManager,this.drawOptions.parentGroup=a.parentGroup,this.drawOptions.x=e,this.drawOptions.y=t,this.drawOptions.maxOtherSide=this.drawOptions.maxOtherSide||a.maxOtherSide,i=this.elem.gl.draw(this.drawOptions).getBBox(),n.xPos=i.x,n.yPos=i.y,n.height=i.height,n.width=i.width,this.enabled=!0):this.enabled=!1)},a}(d.ComponentInterface),I=function(){function e(e){this.carpet=e}var t=e.prototype;return t.draw=function(e){return this.carpet.draw(e)},t.getLogicalSpace=function(e,t){return this.carpet.getLogicalSpace(e,t)},t.dispose=function(){this.carpet&&this.carpet.group&&this.carpet.group.remove()},e}(),M=function(){function e(e){this.conf=e,this._id=b,this.compositionsByCategory={},this.node=n,this.group=n,this._lSpace=n,this.autoRecalculate=!1,this.groupName=L,this.moveInstructions={}}var t=e.prototype;return t.configure=function(e){this.conf=e},t.getName=function(){return"LegendCarpet"},t.getType=function(){return"legend"},t.addCompositions=function(e,t){this.compositionsByCategory[t]=e},t.removeCompositions=function(e){delete this.compositionsByCategory[e]},t.getBoundingBox=function(e){var t,a,i=this.conf,o=i.spreadFactor,r=e.refSide,l=e.alignment,s=e.refOffset,c=e.x,h=e.y;return"bottom"===this.conf.legendPosition?(t=i.width=r*o,a=e.maxOtherSide,!l||c!==n&&null!==c||(c=(s+r)/2-t/2)):(a=i.height=r*o,t=e.maxOtherSide,!l||h!==n&&null!==h||(h=(s+r)/2-a/2)),{width:t,height:a,x:c,y:h}},t.getPostCalcDecisionsH=function(e,t){var a,i=this.conf.padding,n=0;for(a in this.moveInstructions={},t)n+=t[a].height||0;e.height=n+2*i.v},t.getLogicalSpace=function(e,t){var a,i,n,o,r,l=this._lSpace,s=["CAPTION","LEGEND_BODY"],c=this.conf.padding,h=this.compositionsByCategory,u=0,d={},g=0;if(l&&!t)return l.isImpure=!0,l;(P((l=this._lSpace=i=this.getBoundingBox(e)).x)||P(l.y)||P(l.height)||P(l.width))&&(this.autoRecalculate=!0),(n=E(i,{})).height-=2*c.v,n.width-=2*c.h,n.x+=c.h,n.y+=c.v;for(var p=0;p<s.length;p++)(a=h[s[p]])&&((r=E(n,{})).y+=u,u=n.height*a.conf.spreadFactor,r.height=u+g,o=a.getLogicalSpace(E(r,{}),e,t),g=r.height-o.height,d[s[p]]=o,u=o.height);return this.getPostCalcDecisions(i,d),this._lSpace=i,i},t.setupDragging=function(){var e=this.group,t=0,a=0,i=0,n=0;e.css({cursor:"move"}),e.drag((function(o,r){t=o,a=r,e.attr({transform:"t"+(i+t)+","+(n+a)})}),(function(){i+=t,n+=a}),u.stubFN)},t.draw=function(e){var t,a,i,n=this.conf,o=["CAPTION","LEGEND_BODY"],l=this.compositionsByCategory,s=e.animationManager,c=e.parentGroup;this.getLogicalSpace(e,this.autoRecalculate),i=this._lSpace,this.group=t=s.setAnimation({el:this.group||"group",attr:{name:this.groupName},component:r,container:c,label:"carpetGroup"}),this.node=s.setAnimation({el:this.node||"rect",attr:i,css:n.style,component:r,container:t,label:"rect"});for(var h=0;h<o.length;h++)(a=l[o[h]])&&a.draw(n.captionAlignment,i,{animationManager:s,colorRange:e.colorRange,numberFormatter:e.numberFormatter,parentLayer:t,smartLabel:e.smartLabel,moveInstructions:this.moveInstructions[void 0],gLegend:e.gLegend});return n.allowDrag&&this.setupDragging(),this.node},t.getPostCalcDecisions=function(e,t){return"bottom"===this.conf.legendPosition?this.getPostCalcDecisionsH(e,t):this.getPostCalcDecisionsV(e,t)},t.getPostCalcDecisionsV=function(e,t){var a,i,n,o=this.conf.padding,r=Number.NEGATIVE_INFINITY,l=this.moveInstructions;for(i in this.getPostCalcDecisionsH(e,t),t)r=r<(a=t[i].width)?a:r;for(i in e.width=r+2*o.h,t)(n=r-(a=t[i].width))&&(l[i]="t"+n/2+",0")},e}(),O=function(){function e(e,t){this.rawText=e,this.conf=t,this._id=x,this.node=n,this.bound=n,this._lSpace=n,this.LegendCaption={},this.LegendCaption.LEFT={x:function(e,t){return t.x+e.width/2+2}},this.LegendCaption.RIGHT={x:function(e,t){return t.x+t.width-e.width/2-2}},this.LegendCaption.CENTER={x:function(){var e=arguments[1];return e.x+e.width/2}}}var t=e.prototype;return t.configure=function(e,t){this.rawText=e,this.conf=t},t.getName=function(){return"LegendCaption"},t.getType=function(){return"caption"},t.getLogicalSpace=function(e,t,a){var i,o,r,l,s=this.conf.padding,c=this._lSpace,h=this.rawText,u=t.gLegend.getFromEnv("chartConfig");return c&&!a?(c.isImpure=!0,c):(c=this._lSpace={bound:{height:0,width:0},node:{logicArea:n,smartText:n}},i=t.smartLabel,h?((o=E(e,{})).height-=2*s.v,o.width-=2*s.h,o.x+=s.h,o.y+=s.v,i.useEllipsesOnOverflow(u.useEllipsesWhenOverflow),T(l=E(this.conf.style,{})),i.setStyle(this._metaStyle=l),r=i.getSmartText(h,o.width,o.height),o.height=r.height,o.width=r.width,e.height=r.height+2*s.v,e.width=r.width+2*s.h,c.node.smartText=r,c.node.logicArea=o,c.bound=e,e):c.bound)},t.draw=function(){var e,t,a,i,n,o,l,s,c,h,u,d=this.conf,g=d.bound||{};return arguments.length>=3?(l=arguments[0],s=arguments[1],c=arguments[2]):arguments.length>=2&&(l=arguments[0],c=arguments[1]),e=c.parentLayer,u=c.animationManager,this.group=t=u.setAnimation({el:this.group||"group",attr:{name:"legend-caption"},css:d.style,component:r,container:e}),this.getLogicalSpace(s,c),h=(n=this._lSpace).node,i=n.bound,this.bound=a=u.setAnimation({el:this.bound||"rect",attr:i,css:g.style,container:t,component:r}),o="string"==typeof l?this.LegendCaption[l.toUpperCase()].x(h.smartText,s||h.logicArea):l,this.node=u.setAnimation({el:this.node||"text",attr:{text:h.smartText.text,x:o,y:h.logicArea.y+h.smartText.height/2,lineHeight:this._metaStyle.lineHeight,fill:d.style.fill},container:t,component:r}),{group:t,bound:a,node:this.node}},t.dispose=function(){this.group.remove(),this.bound.remove(),this.node.remove()},e}(),R=function(){function e(e,t,a){this.colorRange=e,this.conf=t,this.childTextConf=a,this._id=y,this.bound=n,this.group=n,this.compositionsByCategory={},this._lSpace=n,this.SC_STACK=[g.AXIS_LABEL,g.LEGEND_AXIS,g.AXIS_VALUE],this.DARW_STACK=[g.AXIS_VALUE,g.LEGEND_AXIS,g.AXIS_LABEL]}var t=e.prototype;return t.configure=function(e,t,a){this.colorRange=e,this.conf=t,this.childTextConf=a,this.compositionsByCategory={}},t.getName=function(){return"LegendBody"},t.getType=function(){return"legend"},t.addCompositions=function(e,t){this.compositionsByCategory[t]=e},t.getSpaceTaken=function(e){return"bottom"===this.conf.legendPosition?e.height:e.width},t.getLogicalSpace=function(e,t,a){var i,o,r,l,s,c,h,u=this._lSpace,d=this.conf.padding,g=this.compositionsByCategory,p=0;if(u&&!a)return u.isImpure=!0,u;for(u=this._lSpace={bound:{height:0,width:0},node:{logicArea:n}},(l=E(e,{})).height-=2*d.v,l.width-=2*d.h,l.x+=d.h,l.y+=d.v,s=this.getCompositionPlotAreaFor(l),t.colorRange=this.colorRange,c=0,h=this.SC_STACK.length;c<h;c++)(i=g[this.SC_STACK[c]])&&(o=s(r,i.conf.spreadFactor),r=i.getLogicalSpace(E(o,{}),t,a),p+=this.getSpaceTaken(r));return this.updateEffectivePlotArea(e,l,p),u.node.logicArea=l,u.bound=e,e},t.draw=function(){var e,t,a,i,n,o,l,s,c,h,u=this.childTextConf,d=this.conf,g=d.bound.style||{},p=this.compositionsByCategory;for(arguments.length>=3?(o=arguments[1],s=arguments[2]):arguments.length>=2&&(s=arguments[1]),t=s.parentLayer,e=s.animationManager,this.getLogicalSpace(o,s),l=this._lSpace,this.group=n=e.setAnimation({el:this.group||"group",attr:{name:"legend-body",transform:"t0,0"},css:u.style,container:t,component:r}),this.bound=a=e.setAnimation({el:this.bound||"rect",attr:l.bound,css:g,container:n,component:r}),s.colorRange=this.colorRange,s.parentLayer=n,c=0,h=this.DARW_STACK.length;c<h;c++)(i=p[this.DARW_STACK[c]])&&i.draw(s);return s.moveInstructions&&n.attr({transform:s.moveInstructions}),{bound:a,group:n}},t.getCompositionPlotAreaFor=function(e){var t,a="bottom"===this.conf.legendPosition;return t=E(e,{}),function(i,n){var o=i;return o=o||{},a?(t.y+=o.height||0,t.height=e.height*n):(t.x+=o.width||0,t.width=e.width*n),t}},t.updateEffectivePlotArea=function(e,t,a){var i=this.conf.padding;"bottom"===this.conf.legendPosition?(t.height=a,e.height=a+2*i.v):(t.width=a,e.width=a+2*i.h)},e}(),V=function(){function e(e){this.conf=e,this.node=[],this._id=C}var t=e.prototype;return t.configure=function(e){this.conf=e},t.getType=function(){return"label"},t.getName=function(){return"LegendLabel"},t.getEffectivePlotArea=function(e){var t=this.conf.padding;return e.height-=2*t.v,e.width-=2*t.h,e.x+=t.h,e.y+=t.v,e},t.getLogicalSpace=function(e,t,a){var i,o,r,l,s,c,h,u,d,g,p,f,m,v,b,x,y,C,k,S,w,L,A,N="bottom"===this.conf.legendPosition,F=this._lSpace,_=this.conf,P=_.padding,D=[],I=t.gLegend.getFromEnv("chartConfig"),M=[];if(F&&!a)return F.isImpure=!0,F;for(i=t.colorRange,o=t.smartLabel,g=i.getCumulativeValueRatio(),r=i.colorRange,m=(F=this._lSpace={bound:{height:0,width:0},node:{logicArea:n,smartTexts:[]}}).node.smartTexts,u=E(e,{}),b=this.getEffectivePlotArea(u),A=N?b.width:b.height,o.useEllipsesOnOverflow(I.useEllipsesWhenOverflow),L=E(_.style,{}),T(this._metaStyle=L),o.setStyle(L),x=o.getSmartText("W"),l=0,s=r.length;l<s;l++)(d=r[l].label)?M.push({oriIndex:l,label:d}):m[l]=n;if(0===(s=M.length))return{height:0,width:0};for(f=p=s>1?(g[M[s-1].oriIndex]-g[M[0].oriIndex])/2*A/100:Math.max(g[M[0].oriIndex],100-g[M[0].oriIndex])/2*A/100,N?((S=o.getSmartText(M[0].label,f,b.height)).x=g[M[0].oriIndex]*b.width/100,c=S.x+S.width):((S=o.getSmartText(M[0].label,f,b.width)).y=g[M[0].oriIndex]*b.height/100,c=S.y+S.width),D.push(S.height),m[M[0].oriIndex]=S,N?((S=o.getSmartText(M[s-1].label,f,b.height)).x=g[M[s-1].oriIndex]*b.width/100,h=S.x-S.width):((S=o.getSmartText(M[s-1].label,f,b.width)).y=g[M[s-1].oriIndex]*b.height/100,h=S.y-S.width),D.push(S.height),m[M[s-1].oriIndex]=S,k=c,l=1;l<s-1;l++)d=M[l].label,w=M[l].oriIndex,S=n,y=l+1===s-1?h:g[M[l+1].oriIndex]*A/100,C=g[M[l].oriIndex]*A/100,(p=Math.min(C-k,y-C))>2*x.width&&(N?(S=o.getSmartText(d,p,b.height)).x=g[w]*b.width/100:(S=o.getSmartText(d,p,b.width)).y=g[w]*b.height/100,k=p,D.push(S.height)),m[M[l].oriIndex]=S;return v=Math.max.apply(Math,D),N?(b.height=v,e.height=v+2*P.v):(b.width=v,e.width=v+2*P.v),F.node.logicArea=b,F.bound=e,e},t.draw=function(){var e,t,a,i,n,o,l,s,c,h,u,d,g="bottom"===this.conf.legendPosition,p=this.conf,f=p.bound&&p.bound.style||{stroke:"none"},m={};arguments.length>=2&&arguments[1]?(i=arguments[0],l=arguments[1]):arguments.length>=1&&(l=arguments[0]),d=l.animationManager,e=l.parentLayer,this.getLogicalSpace(i,l),c=(o=this._lSpace).node.logicArea,h=o.node.smartTexts,this.group=a=d.setAnimation({el:this.group||"group",attr:{name:"legend-labels"},container:e,component:r}),this.bound=t=d.setAnimation({el:this.bound||"rect",attr:o.bound,css:f,container:a,component:r});for(var v=0;v<this.node.length;v++)this.node[v].remove();for(this.node=[],s=0,u=h.length;s<u;s++)(n=h[s])&&(g?(m.y=c.y+n.height/2,m.x=s===u-1?c.x+n.x-n.width/2:s?c.x+n.x:c.x+n.x+n.width/2):(m.x=c.x+n.height/2,m.y=s===u-1?c.y+n.y-n.width/2:s?c.y+n.y:c.y+n.y+n.width/2),this.node.push(d.setAnimation({el:"text",attr:{text:n.text,x:m.x,y:m.y,lineHeight:this._metaStyle.lineHeight,fill:p.style.fill,transform:g?"R0":"R270,"+m.x+","+m.y},container:a,component:r})));return{group:a,bound:t,node:this.node}},e}(),B=function(){function e(e){this.conf=e,this._id=k,this.node=n,this.group=n,this.shadow=n,this.markerLine=n,this.compositionsByCategory={}}var t=e.prototype;return t.configure=function(e){this.conf=e},t.getName=function(){return"LegendAxis"},t.getType=function(){return"axis"},t.addCompositions=function(e,t){this.compositionsByCategory[t]=e},t.getLogicalSpace=function(){var e,t,a,i,o,r,l="bottom"===this.conf.legendPosition,s=arguments[0],c=arguments[2],h=this._lSpace,u=this.conf,d=u.padding,p=u.legendAxisHeight,f=this.compositionsByCategory,m=0;return h&&!c?(h.isImpure=!0,h):(h=this._lSpace={bound:{height:0,width:0},node:{logicArea:n}},(o=E(s,{})).height-=2*d.v,o.width-=2*d.h,o.x+=d.h,o.y+=d.v,e=p/2+u.line.offset,t=p/2,(i=f[g.RANGE])&&(r=i.sliders["false"].conf.outerCircle.rFactor*p,t+=m=Math.max(r/2-p/2,0)),l?(o.y+=m,o.height=a=t+e+m,s.height=a+2*d.v):(o.x+=m,o.width=a=t+e+m,s.width=a+2*d.v),h.node.logicArea=o,h.bound=s,s)},t.getDrawableAxisArea=function(e){var t=this.conf,a="bottom"===this.conf.legendPosition;return{x:e.x,y:e.y,width:a?e.width:t.legendAxisHeight,height:a?t.legendAxisHeight:e.height,r:t.legendAxisHeight/2}},t.preDrawingRangeParamV=function(e){return{x:e.x+e.width/2,calculationBase:e.width,rangeStart:e.y,rangeEnd:e.y+e.height,prop:"x"}},t.preDrawingRangeParamH=function(e){return{y:e.y+e.height/2,calculationBase:e.height,rangeStart:e.x,rangeEnd:e.x+e.width,prop:"y"}},t.preDrawingRangeParam=function(e){return"bottom"===this.conf.legendPosition?this.preDrawingRangeParamH(e):this.preDrawingRangeParamV(e)},t.getScaleMarkerPathStrH=function(e,t){var a,i,n,o,r,l=E(e,{}),s=this.conf.line,c=u.BLANKSTRING,h=u.BLANKSTRING;for(l.x+=l.r,l.width-=2*l.r,r=l.y+l.height,a=0,i=t.length;a<i;a++)n=t[a],o=l.x+n*l.width/100,c+=N+o+","+(r-s.grooveLength)+F+o+","+(r+s.offset);return c+(h+=N+l.x+","+(r+s.offset)+F+(l.x+l.width)+","+(r+s.offset))},t.getColorGradientH=function(e){return{axis:e.getBoxFill(),shadow:(0,u.toRaphaelColor)({FCcolor:{alpha:"25,0,0",angle:90,color:"000000,FFFFFF,FFFFFF",ratio:"0,30,40"}})}},t.draw=function(){var e,t,a,i,n,o,l,s,c,h,u,d,p,f,m=this.conf,v=m.bound||{},b=m.line,x=v.style||{},y=this.compositionsByCategory;for(a in arguments.length>=2?(t=arguments[0],d=arguments[1]):arguments.length>=1&&(d=arguments[0]),p=d.animationManager,e=d.parentLayer,n=(i=d.colorRange).getCumulativeValueRatio(),this.getLogicalSpace(t,d),u=this._lSpace,this.group=l=p.setAnimation({el:this.group||"group",attr:{name:"legend-axis"},container:e,component:r}),this.bound=p.setAnimation({el:this.bound||"rect",attr:u.bound,css:x,component:r,container:l}),h=this.getDrawableAxisArea(u.node.logicArea),c=this.getColorGradient(i),m.style.fill=c.axis,m.shadow.style.fill=c.shadow,this.node=p.setAnimation({el:this.node||"rect",attr:h,css:m.style,container:l,component:r}),this.shadow=p.setAnimation({el:this.shadow||"rect",attr:h,css:m.shadow.style,container:l,component:r}),f=this.getScaleMarkerPathStr(h,n),this.path=p.setAnimation({el:this.path||"path",attr:{path:f},css:b.style,container:l,component:r}),y)switch(o=y[a],a){case g.RANGE:d[(s=this.preDrawingRangeParam(h)).prop]=s[s.prop],d.key=s.prop,d.rCalcBase=s.calculationBase,d.parentLayer=l,o.draw(s.rangeStart,s.rangeEnd,d)}},t.getScaleMarkerPathStr=function(e,t){return"bottom"===this.conf.legendPosition?this.getScaleMarkerPathStrH(e,t):this.getScaleMarkerPathStrV(e,t)},t.getColorGradient=function(e){return"bottom"===this.conf.legendPosition?this.getColorGradientH(e):this.getColorGradientV(e)},t.getScaleMarkerPathStrV=function(e,t){var a,i,n,o,r,l=E(e,{}),s=this.conf.line,c=u.BLANKSTRING,h=u.BLANKSTRING;for(l.y+=l.r,l.height-=2*l.r,o=l.x+l.width,a=0,n=t.length;a<n;a++)i=t[a],r=l.y+i*l.height/100,c+=N+(o-s.grooveLength)+","+r+F+(o+s.offset)+","+r;return c+(h+=N+(o+s.offset)+","+l.y+F+(o+s.offset)+","+(l.y+l.height))},t.getColorGradientV=function(e){return{axis:e.getBoxFill(!0),shadow:(0,u.toRaphaelColor)({FCcolor:{alpha:"25,0,0",angle:360,color:"000000,FFFFFF,FFFFFF",ratio:"0,30,40"}})}},e}(),G=function(){function e(e,t,a){this.conf=t.conf,this.sliderIndex=e,this.rangeGroup=t.sliderGroup,this._id=a,this.node=n,this.tracker=n,this.currPos=0,this.swing=[]}var t=e.prototype;return t.configure=function(e,t,a){this.conf=t.conf,this.sliderIndex=e,this.rangeGroup=t.sliderGroup,this._id=a,this.currPos=0,this.swing=[]},t.getType=function(){return"slider"},t.getName=function(){return"Slider"},t.updateSwingRange=function(e,t){this.swing[+e]=t},t.draw=function(e,t,a,i){var n,o,l,s,c,h,u,d=i.parentLayer,g=i.animationManager,f=this.conf,m=f.outerCircle,v=f.innerCircle,b=g.getFromEnv("chart").config,x=Math.ceil(m.rFactor*i.rCalcBase/2),y=Math.ceil(v.rFactor*i.rCalcBase/2),C=x-y,k=i.gLegend.getFromEnv("toolTipController"),S=this.sliderIndex;return f.outerRadius=x,f.innerRadius=y,this._scaleVal=t,v.style["stroke-width"]=C,y+=s=Math.ceil(m.style["stroke-width"]/2),o=this.node=g.setAnimation({el:this.node||"group",attr:{name:"fc-gl-slider",cursor:"pointer",transform:"t0,0"},container:d,component:r}),"x"===i.key?(c=a,h=e,h+=S?-y:+y):(c=e,h=a,c+=S?-y:+y),this.oCircle=g.setAnimation({el:this.oCircle||"circle",attr:{cx:c,cy:h,r:x},css:m.style,container:o,component:r}),this.iCircle=g.setAnimation({el:this.iCircle||"circle",attr:{cx:c,cy:h,r:y},css:v.style,container:o,component:r}),u=this.tracker=g.setAnimation({el:this.tracker||"circle",attr:{cx:c,cy:h,r:x+5,fill:p,stroke:p,cursor:"pointer"},container:o,component:r}),o.attr({transform:"x"===i.key?"t0,"+this.currPos:"t"+this.currPos+",0"}),n=b.showToolTip?t:"",k.enableToolTip(u,n),this._dragAPI=l=this.getDragAPI("x"===i.key),u.undrag(),u.drag(l.dragging,l.dragStart,l.dragEnd),{translateAscending:x+s}},t.getDragAPI=function(e){var t,a,i,n,o=this,r=o.node,l=o.sliderIndex,s=o.rangeGroup,c=o.conf.innerRadius;return{dragging:function(h){var u,d,g,p,f;return h.stopPropagation(),g=e?h.data[1]:h.data[0],l?(u=t[0]-t[1]+c,d=0):(u=0,d=t[1]-t[0]-c),(f=o.currPos+g)<u?g+=u-f:f>d&&(g-=f-d),r.attr({transform:e?"t0,"+(o.currPos+g):"t"+(o.currPos+g)+",0"}),a=g,i&&clearTimeout(i),i=setTimeout((function(){s.updateWhenInRest(o,o.currPos+g)}),100),p=s.updateWhenInMove(o,o.currPos+g),o.conf.showTooltip&&o.tracker.data("__FC_tooltipText",p),n=!0,!0},dragStart:function(e){e.stopPropagation(),t=o.swing,n=!1,s.dragStarted(o)},dragEnd:function(){var e;s.dragCompleted(o,n,o.currPos+a),n&&(i&&clearTimeout(i),i=setTimeout((function(){s.updateWhenInRest(o,o.currPos)}),100),o.currPos+=a,e=t[+l]+o.currPos,s.updateRange(o,e))}}},t.dispose=function(){this.node.remove(),this.oCircle.remove(),this.iCircle.remove(),this.tracker.remove()},e}(),H=function(){function e(e){var t=e,a={};this._id=S,this.conf=e,a.conf=t,this.extremes=[],this.sliders={},this.min=n,this.max=n,a.sliderGroup=this,this.valueRange=[],this.callbacks=[],this.sliders[f]=new G(f,a,this._id+"_"+ +f),this.sliders[m]=new G(m,a,this._id+"_"+ +m)}var t=e.prototype;return t.configure=function(e){var t=e,a={};this.min=n,this.max=n,this.conf=e,a.conf=t,a.sliderGroup=this,this.sliders[f].configure(f,a,this._id+"_"+ +f),this.sliders[m].configure(m,a,this._id+"_"+ +m)},t.getType=function(){return"slider"},t.getName=function(){return"SliderGroup"},t.initRange=function(e,t){var a=e.sliderIndex;this.extremes[+a]=t},t.updateRange=function(e,t){var a=e.sliderIndex;this.sliders[!a].updateSwingRange(a,t)},t.reset=function(){var e={};e.conf=this.conf,e.sliderGroup=this,this.min=n,this.max=n,this.sliders[f].configure(f,e,this._id+"_"+ +f),this.sliders[m].configure(m,e,this._id+"_"+ +m),this.draw.apply(this,this._drawParams)},t.draw=function(e,t,a){var i,n,o,r,l,s,c=this.sliders,h=c[f],u=c[m],d=a.colorRange,g=d.colorRange,p=d.data.mapByPercent,v=a.gLegend.getFromEnv("number-formatter");return this._fcChart=a.gLegend.getFromEnv("chart"),this.getValueFormPixel=function(e,t,a,i){var n=(t-e)/(i-a);this.getValueFormPixel=function(t){return e+n*t}},this.updateWhenInMove=function(e,t){this.updateWhenInMove=function(a,i){var n,o,r=this.extremes;return n=a.sliderIndex?r[1]-r[0]+i:i,o=this.getValueFormPixel(n),o=t?parseFloat(o).toFixed(2)+"%":e.legendValue(o)}},this._drawParams=[e,t,a],this.updateWhenInMove(v,p),o=h.conf.outerCircle,n=h.conf.innerCircle,r=Math.ceil(n.rFactor*a.rCalcBase/2),r+=Math.ceil(o.style["stroke-width"]/2),this.extremes[0]=e+r,this.extremes[1]=t-r,l=this.extremes[1]-this.extremes[0],this.min=this.min?this.min:g[0].value,this.max=this.max?this.max:g[g.length-1].value,s=g[g.length-1].value-g[0].value,h.currPos=l*(this.min-g[0].value)/s,u.currPos=l*(this.max-g[0].value)/s-l,h.draw(e,p?v.legendPercentValue(this.min):v.legendValue(this.min),a[a.key],a),i=u.draw(t,p?v.legendPercentValue(this.max):v.legendValue(this.max),a[a.key],a),h.swing=this.extremes.slice(0),u.swing=this.extremes.slice(0),h.swing[1]+=u.currPos,u.swing[0]+=h.currPos,this.getValueFormPixel(g[0].value,g[g.length-1].value,this.extremes[0],this.extremes[1]),i},t.updateWhenInRest=function(e,t){var a,i,n=this.sliders,o=this.extremes,r=e.sliderIndex;r?(a=n[!r].currPos,i=o[1]-o[0]+t):(a=t,i=o[1]-o[0]+n[!r].currPos),this.min=Number(this.getValueFormPixel(a).toFixed(2)),this.max=Number(this.getValueFormPixel(i).toFixed(2)),this.gLegend.fireEvent("rangeUpdated",[{min:this.min,max:this.max}])},t.dragStarted=function(e){var t=this.sliders,a=this.extremes,i=e.conf,n=this._fcChart;n.fireChartInstanceEvent("legendpointerdragstart",{pointerIndex:+e.sliderIndex,pointers:[{value:this.getValueFormPixel(t["false"].currPos)},{value:this.getValueFormPixel(a[1]-a[0]+t["true"].currPos)}],legendPointerHeight:i.outerRadius,legendPointerWidth:i.innerRadius,outerRadius:i.outerRadius,innerRadius:i.innerRadius},[n.id])},t.dragCompleted=function(e,t,a){var i,n,o=this.sliders,r=this.extremes,l=e.conf,s=this.getValueFormPixel(o["false"].currPos),c=this.getValueFormPixel(r[1]-r[0]+o["true"].currPos),h=this._fcChart;e.sliderIndex?(i=s,n=this.getValueFormPixel(r[1]-r[0]+a)):(i=this.getValueFormPixel(a),n=c),t&&h.fireChartInstanceEvent("legendrangeupdated",{previousMinValue:s,previousMaxValue:c,minValue:i,maxValue:n},[h.id]),h.fireChartInstanceEvent("legendpointerdragstop",{pointerIndex:+e.sliderIndex,pointers:[{value:i},{value:n}],legendPointerHeight:l.outerRadius,legendPointerWidth:l.innerRadius,outerRadius:l.outerRadius,innerRadius:l.innerRadius},[h.id])},t.dispose=function(){this.sliders[f].dispose(),this.sliders[m].dispose()},e}(),z=function(e){function t(){var t;return(t=e.call(this,arguments[0])||this)._id=w,t.node=[],t}(0,h["default"])(t,e);var a=t.prototype;return a.configure=function(e){this.conf=e},a.getName=function(){return"LegendValues"},a.getType=function(){return"legend"},a.getLogicalSpace=function(e,t,a){var i,o,r,l,s,c,h,u,d,g,p,f,m,v,b,x,y,C,k,S,w,L,A,N,F,_="bottom"===this.conf.legendPosition,P=this._lSpace,D=this.conf,I=D.padding,M=t.gLegend.getFromEnv("chartConfig"),O=[],R=[];if(P&&!a)return P.isImpure=!0,P;for(i=t.colorRange,o=t.smartLabel,r=i.colorRange,h=i.getCumulativeValueRatio(),F=(P=this._lSpace={bound:{height:0,width:0},node:{logicArea:n,smartTexts:[]}}).node.smartTexts,(S=E(e,{})).height-=2*I.v,S.width-=2*I.h,S.x+=I.h,S.y+=I.v,o.useEllipsesOnOverflow(M.useEllipsesWhenOverflow),N=E(D.style,{}),T(this._metaStyle=N),o.setStyle(N),A=o.getSmartText("W"),c=r.length,_?(p=u=(h[c-1]-h[0])/2*S.width/100,L=r[0].displayValue,(l=o.getSmartText("string"!=typeof L&&L!==n&&L.toString()||L,p,S.height)).x=h[0]*S.width/100,f=l.x+l.width,O.push(l.height)):(p=u=(h[c-1]-h[0])/2*S.height/100,(l=o.getSmartText(r[0].displayValue,S.width,p)).y=h[0]*S.height/100,b=l.y+l.width,R.push(l.width)),F[0]=l,_?((l=o.getSmartText(r[c-1].displayValue,p,S.height)).x=h[c-1]*S.width/100,v=l.x-l.width,O.push(l.height),m=f):((l=o.getSmartText(r[c-1].displayValue,S.width,p)).y=h[c-1]*S.height/100,y=l.y-l.height,R.push(l.width),x=b),F[c-1]=l,s=1;s<c-1;s++)l=n,w=r[s].displayValue,_?(d=s+1===c-1?v:h[s+1]*S.width/100,g=h[s]*S.width/100,(u=Math.min(g-m,d-g))>1.5*A.width&&((l=o.getSmartText(w,2*u,S.height)).x=h[s]*S.width/100,m=u,O.push(l.height))):(d=s+1===c-1?y:h[s+1]*S.height/100,g=h[s]*S.height/100,(u=Math.min(g-x,d-g))>2*A.height&&((l=o.getSmartText(w,S.width,2*u)).y=h[s]*S.height/100,x=u,R.push(l.width))),F[s]=l;return _?(C=Math.max.apply(Math,O),S.height=C,e.height=C+2*I.v):(k=Math.max.apply(Math,R),S.width=k,e.width=k+2*I.h),P.node.logicArea=S,P.bound=e,e},a.draw=function(){var e,t,a,i,n,o,l,s,c,h,u,d,g,p=this.conf,f="bottom"===p.legendPosition,m=p.bound&&p.bound.style||{stroke:"none"},v={};arguments.length>=2&&arguments[1]?(i=arguments[0],l=arguments[1]):arguments.length>=1&&(l=arguments[0]),g=l.animationManager,e=l.parentLayer,s=l.colorRange.getCumulativeValueRatio(),this.getLogicalSpace(i,l),o=(n=this._lSpace).node.logicArea,u=n.node.smartTexts,this.group=a=g.setAnimation({el:this.group||"group",attr:{name:"legend-values"},container:e,component:r}),this.bound=t=g.setAnimation({el:this.bound||"rect",attr:n.bound,css:m,container:a,component:r});for(var b=0;b<this.node.length;b++)this.node[b].remove();for(this.node=[],c=0,h=s.length;c<h;c++)(d=u[c])&&(f?(v.y=o.y+d.height/2,v.x=c===h-1?o.x+d.x-d.width/2:c?o.x+d.x:o.x+d.x+d.width/2):(v.x=o.x+d.width/2,v.y=c===h-1?o.y+d.y-d.height/2:c?o.y+d.y:o.y+d.y+d.height/2),this.node.push(g.setAnimation({el:"text",attr:{text:d.text,x:v.x,y:v.y,lineHeight:this._metaStyle.lineHeight,fill:p.style.fill},container:a,component:r})));return{group:a,bound:t}},t}(V),W=D;t["default"]=W},995:function(e,t,a){"use strict";var i=a(178);t.__esModule=!0,t.getCoordinates=t.getPlotFromPixel=t.polarToCartesian=t.cartesianToPolar=t.rad2Deg=t.deg2Rad=void 0;var n=i(a(190)),o=function(e){return e*(Math.PI/180)},r=function(e){return e*(180/Math.PI)},l=function(e,t){var a,i;return a=Math.sqrt(e*e+t*t),i=r(Math.atan(t/e)),e<0&&t>=0?i+=180:e<0&&t<0?i+=180:e>0&&t<0&&(i+=360),{radius:a,theta:o(i)}},s=function(e,t,a){void 0===a&&(a=!0);var i=t;return a||(i=o(i)),{x:e*Math.cos(i),y:e*Math.sin(i)}};t.getPlotFromPixel=function(e,t){var a,i,n=e.x,o=e.y,s=t.getScale();return i=l(n,o),a=s.getDomainValue(i.theta),r(a)},t.getCoordinates=function(e,t){var a,i,o=t.getScale(),r=e.radius,l=t.config,c=l.axisDimention.centerX,h=l.axisDimention.centerY;return r=(0,n["default"])(r,l.radius,0),a=o.getRangeValue(e.theta),(i=s(r,a)).x+=c,i.y+=h,i},t.polarToCartesian=s,t.cartesianToPolar=l,t.rad2Deg=r,t.deg2Rad=o},999:function(e,t,a){"use strict";t.__esModule=!0,t["default"]=void 0;var i=[{initialAttr:{opacity:0},finalAttr:{opacity:1},slot:"axis"}];t["default"]=i}}]); diff --git a/base_accounting_kit/static/lib/fusioncharts.theme.fusion.js b/base_accounting_kit/static/lib/fusioncharts.theme.fusion.js new file mode 100644 index 0000000..1e11c13 --- /dev/null +++ b/base_accounting_kit/static/lib/fusioncharts.theme.fusion.js @@ -0,0 +1 @@ +(function(factory){if(typeof module==="object"&&typeof module.exports!=="undefined"){module.exports=factory}else{factory(FusionCharts)}})(function(FusionCharts){(function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId]){return installedModules[moduleId].exports}var module=installedModules[moduleId]={i:moduleId,l:false,exports:{}};modules[moduleId].call(module.exports,module,module.exports,__webpack_require__);module.l=true;return module.exports}__webpack_require__.m=modules;__webpack_require__.c=installedModules;__webpack_require__.d=function(exports,name,getter){if(!__webpack_require__.o(exports,name)){Object.defineProperty(exports,name,{configurable:false,enumerable:true,get:getter})}};__webpack_require__.n=function(module){var getter=module&&module.__esModule?function getDefault(){return module["default"]}:function getModuleExports(){return module};__webpack_require__.d(getter,"a",getter);return getter};__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)};__webpack_require__.p="";return __webpack_require__(__webpack_require__.s=13)})([function(module,exports){module.exports=function(useSourceMap){var list=[];list.toString=function toString(){return this.map(function(item){var content=cssWithMappingToString(item,useSourceMap);if(item[2]){return"@media "+item[2]+"{"+content+"}"}else{return content}}).join("")};list.i=function(modules,mediaQuery){if(typeof modules==="string")modules=[[null,modules,""]];var alreadyImportedModules={};for(var i=0;i<this.length;i++){var id=this[i][0];if(typeof id==="number")alreadyImportedModules[id]=true}for(i=0;i<modules.length;i++){var item=modules[i];if(typeof item[0]!=="number"||!alreadyImportedModules[item[0]]){if(mediaQuery&&!item[2]){item[2]=mediaQuery}else if(mediaQuery){item[2]="("+item[2]+") and ("+mediaQuery+")"}list.push(item)}}};return list};function cssWithMappingToString(item,useSourceMap){var content=item[1]||"";var cssMapping=item[3];if(!cssMapping){return content}if(useSourceMap&&typeof btoa==="function"){var sourceMapping=toComment(cssMapping);var sourceURLs=cssMapping.sources.map(function(source){return"/*# sourceURL="+cssMapping.sourceRoot+source+" */"});return[content].concat(sourceURLs).concat([sourceMapping]).join("\n")}return[content].join("\n")}function toComment(sourceMap){var base64=btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));var data="sourceMappingURL=data:application/json;charset=utf-8;base64,"+base64;return"/*# "+data+" */"}},function(module,exports,__webpack_require__){var stylesInDom={};var memoize=function(fn){var memo;return function(){if(typeof memo==="undefined")memo=fn.apply(this,arguments);return memo}};var isOldIE=memoize(function(){return window&&document&&document.all&&!window.atob});var getTarget=function(target){return document.querySelector(target)};var getElement=function(fn){var memo={};return function(target){if(typeof target==="function"){return target()}if(typeof memo[target]==="undefined"){var styleTarget=getTarget.call(this,target);if(window.HTMLIFrameElement&&styleTarget instanceof window.HTMLIFrameElement){try{styleTarget=styleTarget.contentDocument.head}catch(e){styleTarget=null}}memo[target]=styleTarget}return memo[target]}}();var singleton=null;var singletonCounter=0;var stylesInsertedAtTop=[];var fixUrls=__webpack_require__(2);module.exports=function(list,options){if(typeof DEBUG!=="undefined"&&DEBUG){if(typeof document!=="object")throw new Error("The style-loader cannot be used in a non-browser environment")}options=options||{};options.attrs=typeof options.attrs==="object"?options.attrs:{};if(!options.singleton&&typeof options.singleton!=="boolean")options.singleton=isOldIE();if(!options.insertInto)options.insertInto="head";if(!options.insertAt)options.insertAt="bottom";var styles=listToStyles(list,options);addStylesToDom(styles,options);return function update(newList){var mayRemove=[];for(var i=0;i<styles.length;i++){var item=styles[i];var domStyle=stylesInDom[item.id];domStyle.refs--;mayRemove.push(domStyle)}if(newList){var newStyles=listToStyles(newList,options);addStylesToDom(newStyles,options)}for(var i=0;i<mayRemove.length;i++){var domStyle=mayRemove[i];if(domStyle.refs===0){for(var j=0;j<domStyle.parts.length;j++)domStyle.parts[j]();delete stylesInDom[domStyle.id]}}}};function addStylesToDom(styles,options){for(var i=0;i<styles.length;i++){var item=styles[i];var domStyle=stylesInDom[item.id];if(domStyle){domStyle.refs++;for(var j=0;j<domStyle.parts.length;j++){domStyle.parts[j](item.parts[j])}for(;j<item.parts.length;j++){domStyle.parts.push(addStyle(item.parts[j],options))}}else{var parts=[];for(var j=0;j<item.parts.length;j++){parts.push(addStyle(item.parts[j],options))}stylesInDom[item.id]={id:item.id,refs:1,parts:parts}}}}function listToStyles(list,options){var styles=[];var newStyles={};for(var i=0;i<list.length;i++){var item=list[i];var id=options.base?item[0]+options.base:item[0];var css=item[1];var media=item[2];var sourceMap=item[3];var part={css:css,media:media,sourceMap:sourceMap};if(!newStyles[id])styles.push(newStyles[id]={id:id,parts:[part]});else newStyles[id].parts.push(part)}return styles}function insertStyleElement(options,style){var target=getElement(options.insertInto);if(!target){throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.")}var lastStyleElementInsertedAtTop=stylesInsertedAtTop[stylesInsertedAtTop.length-1];if(options.insertAt==="top"){if(!lastStyleElementInsertedAtTop){target.insertBefore(style,target.firstChild)}else if(lastStyleElementInsertedAtTop.nextSibling){target.insertBefore(style,lastStyleElementInsertedAtTop.nextSibling)}else{target.appendChild(style)}stylesInsertedAtTop.push(style)}else if(options.insertAt==="bottom"){target.appendChild(style)}else if(typeof options.insertAt==="object"&&options.insertAt.before){var nextSibling=getElement(options.insertInto+" "+options.insertAt.before);target.insertBefore(style,nextSibling)}else{throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n")}}function removeStyleElement(style){if(style.parentNode===null)return false;style.parentNode.removeChild(style);var idx=stylesInsertedAtTop.indexOf(style);if(idx>=0){stylesInsertedAtTop.splice(idx,1)}}function createStyleElement(options){var style=document.createElement("style");if(options.attrs.type===undefined){options.attrs.type="text/css"}addAttrs(style,options.attrs);insertStyleElement(options,style);return style}function createLinkElement(options){var link=document.createElement("link");if(options.attrs.type===undefined){options.attrs.type="text/css"}options.attrs.rel="stylesheet";addAttrs(link,options.attrs);insertStyleElement(options,link);return link}function addAttrs(el,attrs){Object.keys(attrs).forEach(function(key){el.setAttribute(key,attrs[key])})}function addStyle(obj,options){var style,update,remove,result;if(options.transform&&obj.css){result=options.transform(obj.css);if(result){obj.css=result}else{return function(){}}}if(options.singleton){var styleIndex=singletonCounter++;style=singleton||(singleton=createStyleElement(options));update=applyToSingletonTag.bind(null,style,styleIndex,false);remove=applyToSingletonTag.bind(null,style,styleIndex,true)}else if(obj.sourceMap&&typeof URL==="function"&&typeof URL.createObjectURL==="function"&&typeof URL.revokeObjectURL==="function"&&typeof Blob==="function"&&typeof btoa==="function"){style=createLinkElement(options);update=updateLink.bind(null,style,options);remove=function(){removeStyleElement(style);if(style.href)URL.revokeObjectURL(style.href)}}else{style=createStyleElement(options);update=applyToTag.bind(null,style);remove=function(){removeStyleElement(style)}}update(obj);return function updateStyle(newObj){if(newObj){if(newObj.css===obj.css&&newObj.media===obj.media&&newObj.sourceMap===obj.sourceMap){return}update(obj=newObj)}else{remove()}}}var replaceText=function(){var textStore=[];return function(index,replacement){textStore[index]=replacement;return textStore.filter(Boolean).join("\n")}}();function applyToSingletonTag(style,index,remove,obj){var css=remove?"":obj.css;if(style.styleSheet){style.styleSheet.cssText=replaceText(index,css)}else{var cssNode=document.createTextNode(css);var childNodes=style.childNodes;if(childNodes[index])style.removeChild(childNodes[index]);if(childNodes.length){style.insertBefore(cssNode,childNodes[index])}else{style.appendChild(cssNode)}}}function applyToTag(style,obj){var css=obj.css;var media=obj.media;if(media){style.setAttribute("media",media)}if(style.styleSheet){style.styleSheet.cssText=css}else{while(style.firstChild){style.removeChild(style.firstChild)}style.appendChild(document.createTextNode(css))}}function updateLink(link,options,obj){var css=obj.css;var sourceMap=obj.sourceMap;var autoFixUrls=options.convertToAbsoluteUrls===undefined&&sourceMap;if(options.convertToAbsoluteUrls||autoFixUrls){css=fixUrls(css)}if(sourceMap){css+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))))+" */"}var blob=new Blob([css],{type:"text/css"});var oldSrc=link.href;link.href=URL.createObjectURL(blob);if(oldSrc)URL.revokeObjectURL(oldSrc)}},function(module,exports){module.exports=function(css){var location=typeof window!=="undefined"&&window.location;if(!location){throw new Error("fixUrls requires window.location")}if(!css||typeof css!=="string"){return css}var baseUrl=location.protocol+"//"+location.host;var currentDir=baseUrl+location.pathname.replace(/\/[^\/]*$/,"/");var fixedCss=css.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(fullMatch,origUrl){var unquotedOrigUrl=origUrl.trim().replace(/^"(.*)"$/,function(o,$1){return $1}).replace(/^'(.*)'$/,function(o,$1){return $1});if(/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(unquotedOrigUrl)){return fullMatch}var newUrl;if(unquotedOrigUrl.indexOf("//")===0){newUrl=unquotedOrigUrl}else if(unquotedOrigUrl.indexOf("/")===0){newUrl=baseUrl+unquotedOrigUrl}else{newUrl=currentDir+unquotedOrigUrl.replace(/^\.\//,"")}return"url("+JSON.stringify(newUrl)+")"});return fixedCss}},,,,,,,,,,,function(module,__webpack_exports__,__webpack_require__){"use strict";Object.defineProperty(__webpack_exports__,"__esModule",{value:true});var __WEBPACK_IMPORTED_MODULE_0__src_fusion___=__webpack_require__(14);FusionCharts.addDep(__WEBPACK_IMPORTED_MODULE_0__src_fusion___["a"])},function(module,__webpack_exports__,__webpack_require__){"use strict";var __WEBPACK_IMPORTED_MODULE_0__fusioncharts_theme_fusion_css__=__webpack_require__(15);var __WEBPACK_IMPORTED_MODULE_0__fusioncharts_theme_fusion_css___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__fusioncharts_theme_fusion_css__);var themeObject={name:"fusion",theme:{base:{chart:{paletteColors:"#5D62B5, #29C3BE, #F2726F, #FFC533, #62B58F, #BC95DF, #67CDF2",showShadow:"0",showPlotBorder:"0",usePlotGradientColor:"0",showValues:"0",bgColor:"#FFFFFF",canvasBgAlpha:"0",bgAlpha:"100",showBorder:"0",showCanvasBorder:"0",showAlternateHGridColor:"0",divLineColor:"#DFDFDF",showXAxisLine:"0",yAxisNamePadding:"15",sYAxisNamePadding:"15",xAxisNamePadding:"15",captionPadding:"15",xAxisNameFontColor:"#999",yAxisNameFontColor:"#999",sYAxisNameFontColor:"#999",yAxisValuesPadding:"15",labelPadding:"10",transposeAxis:"1",toolTipBgColor:"#FFFFFF",toolTipPadding:"6",toolTipBorderColor:"#E1E1E1",toolTipBorderThickness:"1",toolTipBorderAlpha:"100",toolTipBorderRadius:"2",baseFont:"Source Sans Pro",baseFontColor:"#5A5A5A",baseFontSize:"14",xAxisNameFontBold:"0",yAxisNameFontBold:"0",sYAxisNameFontBold:"0",xAxisNameFontSize:"15",yAxisNameFontSize:"15",sYAxisNameFontSize:"15",captionFontSize:"18",captionFontFamily:"Source Sans Pro SemiBold",subCaptionFontSize:"13",captionFontBold:"1",subCaptionFontBold:"0",subCaptionFontColor:"#999",valueFontColor:"#000000",valueFont:"Source Sans Pro",drawCustomLegendIcon:"1",legendShadow:"0",legendBorderAlpha:"0",legendBorderThickness:"0",legendItemFont:"Source Sans Pro",legendItemFontColor:"#7C7C7C",legendIconBorderThickness:"0",legendBgAlpha:"0",legendItemFontSize:"15",legendCaptionFontColor:"#999",legendCaptionFontSize:"13",legendCaptionFontBold:"0",legendScrollBgColor:"#FFF",crossLineAnimation:"1",crossLineAlpha:"100",crossLineColor:"#DFDFDF",showHoverEffect:"1",plotHoverEffect:"1",plotFillHoverAlpha:"90",barHoverAlpha:"90"}},column2d:{chart:{paletteColors:"#5D62B5",placeValuesInside:"0"}},column3d:{chart:{showCanvasBase:"0",canvasBaseDepth:"0",showShadow:"0",chartTopMargin:"35",paletteColors:"#5D62B5"}},line:{chart:{lineThickness:"2",paletteColors:"#5D62B5",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",drawCrossLine:"1"}},area2d:{chart:{paletteColors:"#5D62B5",drawCrossLine:"1"}},bar2d:{chart:{placeValuesInside:"0",showAlternateVGridColor:"0",yAxisValuesPadding:"10",paletteColors:"#5D62B5"}},bar3d:{chart:{showCanvasBase:"0",canvasBaseDepth:"0",placeValuesInside:"0",showShadow:"0",chartTopMargin:"35",adjustDiv:"1",showAlternateVGridColor:"0",yAxisValuesPadding:"10",paletteColors:"#5D62B5"}},pie2d:{chart:{use3DLighting:"0",showPercentValues:"1",showValues:"1",showPercentInTooltip:"0",showLegend:"1",legendIconSides:"2",useDataPlotColorForLabels:0}},pie3d:{chart:{use3DLighting:"0",showPercentValues:"1",showValues:"1",useDataPlotColorForLabels:"0",showLegend:"1",legendIconSides:"2",pieSliceDepth:"15",pieYScale:"60",labelDistance:"20",showPercentInTooltip:"0"}},doughnut2d:{chart:{use3DLighting:"0",showPercentValues:"1",showValues:"1",useDataPlotColorForLabels:"0",showLegend:"1",legendIconSides:"2",showPlotBorder:"0",centerLabelColor:"#666",centerLabelFontSize:"14",showPercentInTooltip:"0"}},doughnut3d:{chart:{use3DLighting:"0",showPercentValues:"1",showValues:"1",useDataPlotColorForLabels:"0",showLegend:"1",legendIconSides:"2",pieSliceDepth:"15",pieYScale:"60",centerLabelColor:"#666",centerLabelFontSize:"14",showPercentInTooltip:"0"}},pareto2d:{chart:{paletteColors:"#5D62B5",lineThickness:"2",anchorRadius:"4",lineColor:"#5D5D5D",anchorBgColor:"#5D5D5D",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1"}},pareto3d:{chart:{paletteColors:"#5D62B5",lineThickness:"2",anchorRadius:"4",lineColor:"#5D5D5D",anchorBgColor:"#5D5D5D",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1",showCanvasBase:"0",canvasBaseDepth:"0",placeValuesInside:"0",showShadow:"0",chartTopMargin:"35",adjustDiv:"1",showAlternateVGridColor:"0"}},mscolumn2d:{chart:{showLegend:"1",legendIconSides:"4"}},mscolumn3d:{chart:{showLegend:"1",legendIconSides:"4",showCanvasBase:"0",canvasBaseDepth:"0",placeValuesInside:"0",showShadow:"0",chartTopMargin:"35",adjustDiv:"1",showAlternateVGridColor:"0"}},msline:{chart:{lineThickness:"2",anchorRadius:"4",drawCrossLine:"1",showLegend:"1",legendIconSides:"2",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1"}},msbar2d:{chart:{placeValuesInside:"0",showAlternateVGridColor:"0",showLegend:"1",legendIconSides:"4",yAxisValuesPadding:"10"}},msbar3d:{chart:{showCanvasBase:"0",canvasBaseDepth:"0",placeValuesInside:"0",showShadow:"0",chartTopMargin:"35",adjustDiv:"1",showAlternateVGridColor:"0",showLegend:"1",legendIconSides:"4",yAxisValuesPadding:"10"}},msarea:{chart:{drawCrossLine:"1",showLegend:"1",legendIconSides:"4"}},marimekko:{chart:{legendIconSides:"4",valueBgColor:"#FFFFFF",valueBgAlpha:"65"}},zoomline:{chart:{lineThickness:"2",flatScrollBars:"1",scrollShowButtons:"0",scrollColor:"#FFF",scrollheight:"10",crossLineThickness:"1",crossLineColor:"#DFDFDF",showLegend:"1",legendIconSides:"2",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1"}},zoomlinedy:{chart:{lineThickness:"2",flatScrollBars:"1",scrollShowButtons:"0",scrollColor:"#FFF",scrollHeight:"10",crossLineThickness:"1",crossLineColor:"#DFDFDF",showLegend:"1",legendIconSides:"2",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1"}},stackedcolumn2d:{chart:{showLegend:"1",legendIconSides:"4"}},stackedcolumn3d:{chart:{showLegend:"1",legendIconSides:"4",showCanvasBase:"0",canvasBaseDepth:"0",placeValuesInside:"0",showShadow:"0",chartTopMargin:"35",adjustDiv:"1"}},stackedbar2d:{chart:{placeValuesInside:"0",showAlternateVGridColor:"0",legendIconSides:"4",yAxisValuesPadding:"10"}},stackedbar3d:{chart:{showCanvasBase:"0",canvasBaseDepth:"0",placeValuesInside:"0",showShadow:"0",chartTopMargin:"35",adjustDiv:"1",showAlternateVGridColor:"0",showLegend:"1",legendIconSides:"4",yAxisValuesPadding:"10"}},stackedarea2d:{chart:{drawCrossLine:"1",showLegend:"1",legendIconSides:"4"}},msstackedcolumn2d:{chart:{showLegend:"1",legendIconSides:"4"}},mscombi2d:{chart:{lineThickness:"2",anchorRadius:"4",drawCrossLine:"1",showLegend:"1",drawCustomLegendIcon:"0",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1"}},mscombi3d:{chart:{showCanvasBase:"0",canvasBaseDepth:"0",placeValuesInside:"0",showShadow:"0",chartTopMargin:"35",adjustDiv:"1",lineThickness:"2",anchorRadius:"4",showLegend:"1",drawCustomLegendIcon:"0",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1"}},mscolumnline3d:{chart:{showCanvasBase:"0",canvasBaseDepth:"0",placeValuesInside:"0",showShadow:"0",chartTopMargin:"35",adjustDiv:"1",lineThickness:"2",anchorRadius:"4",showLegend:"1",drawCustomLegendIcon:"0",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1"}},stackedcolumn2dline:{chart:{showLegend:"1",drawCustomLegendIcon:"0",lineThickness:"2",anchorRadius:"4",drawCrossLine:"1",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1"}},stackedcolumn3dline:{chart:{showCanvasBase:"0",canvasBaseDepth:"0",placeValuesInside:"0",showShadow:"0",chartTopMargin:"35",adjustDiv:"1",lineThickness:"2",anchorRadius:"4",showLegend:"1",drawCustomLegendIcon:"0",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1"}},mscombidy2d:{chart:{lineThickness:"2",anchorRadius:"4",drawCrossLine:"1",showLegend:"1",drawCustomLegendIcon:"0",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1"}},mscolumn3dlinedy:{chart:{showCanvasBase:"0",canvasBaseDepth:"0",placeValuesInside:"0",showShadow:"0",adjustDiv:"1",lineThickness:"2",anchorRadius:"4",showLegend:"1",drawCustomLegendIcon:"0",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1"}},stackedcolumn3dlinedy:{chart:{showCanvasBase:"0",canvasBaseDepth:"0",showShadow:"0",adjustDiv:"1",lineThickness:"2",anchorRadius:"4",showLegend:"1",drawCustomLegendIcon:"0",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1"}},msstackedcolumn2dlinedy:{chart:{placeValuesInside:"0",showShadow:"0",adjustDiv:"1",lineThickness:"2",anchorRadius:"4",showLegend:"1",drawCustomLegendIcon:"0",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1"},lineset:[{color:"#5D5D5D",anchorBgColor:"#5D5D5D"}]},scatter:{chart:{showCanvasBase:"0",canvasBaseDepth:"0",showShadow:"0",adjustDiv:"1",lineThickness:"2",anchorRadius:"4",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverColor:"#AFAFAF",anchorBorderHoverThickness:"1.5",showLegend:"1",drawCustomLegendIcon:"0"}},zoomscatter:{chart:{showShadow:"0",adjustDiv:"1",lineThickness:"2",anchorRadius:"4",anchorBorderHoverColor:"#AFAFAF",showLegend:"1",drawCustomLegendIcon:"0"}},bubble:{chart:{use3DLighting:"0",showLegend:"1",legendIconSides:"2",plotFillAlpha:"80"}},scrollcolumn2d:{chart:{showLegend:"1",legendIconSides:"4",showCanvasBase:"0",canvasBaseDepth:"0",showShadow:"0",adjustDiv:"1",flatScrollBars:"1",scrollShowButtons:"0",scrollheight:"10",scrollColor:"#EBEBEB"}},scrollline2d:{chart:{showShadow:"0",adjustDiv:"1",lineThickness:"2",anchorRadius:"4",showLegend:"1",legendIconSides:"2",flatScrollBars:"1",scrollShowButtons:"0",scrollheight:"10",scrollColor:"#EBEBEB",drawCrossLine:"1",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1"}},scrollarea2d:{chart:{showShadow:"0",adjustDiv:"1",lineThickness:"2",drawAnchors:"0",showLegend:"1",legendIconSides:"2",flatScrollBars:"1",scrollShowButtons:"0",scrollheight:"10",scrollColor:"#EBEBEB"}},scrollstackedcolumn2d:{chart:{showLegend:"1",legendIconSides:"4",flatScrollBars:"1",scrollShowButtons:"0",scrollheight:"10",scrollColor:"#EBEBEB"}},scrollcombi2d:{chart:{lineThickness:"2",anchorRadius:"4",showLegend:"1",flatScrollBars:"1",scrollShowButtons:"0",scrollheight:"10",scrollColor:"#EBEBEB",drawCustomLegendIcon:"0",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1"}},scrollcombidy2d:{chart:{lineThickness:"2",anchorRadius:"4",showLegend:"1",flatScrollBars:"1",scrollShowButtons:"0",scrollheight:"10",scrollColor:"#EBEBEB",drawCustomLegendIcon:"0",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1"}},angulargauge:{chart:{setAdaptiveMin:"1",adjustTM:"1",tickvaluedistance:"10",placeTicksInside:"0",autoAlignTickValues:"1",showGaugeBorder:"0",minortmnumber:"0",majorTMHeight:"8",gaugeFillMix:"{light-0}",pivotbgcolor:"#000000",pivotfillmix:"0",showpivotborder:"1",pivotBorderColor:"#FFFFFF",showValue:"0",valueBelowPivot:"1"},dials:{dial:[{bgColor:"#000000",borderThickness:"0"}]}},bulb:{chart:{is3D:"0",placeValuesInside:"1",valueFont:"Source Sans Pro"}},cylinder:{chart:{cylRadius:"50",cylYScale:"13"}},hled:{chart:{ledGap:"0",showGaugeBorder:"0",setAdaptiveMin:"1",adjustTM:"1",placeTicksInside:"0",autoAlignTickValues:"1",minortmnumber:"0",majorTMHeight:"8",majorTMAlpha:"50"}},hlineargauge:{chart:{showGaugeBorder:"0",setAdaptiveMin:"1",adjustTM:"1",placeTicksInside:"0",autoAlignTickValues:"1",minorTMnumber:"0",majorTMHeight:"8",majorTMAlpha:"50",gaugeFillMix:"{light-0}",valueAbovePointer:"1"}},thermometer:{chart:{use3DLighting:"0",manageResize:"1",autoScale:"1",showGaugeBorder:"1",gaugeBorderAlpha:"40",placeTicksInside:"0",autoAlignTickValues:"1",minortmnumber:"0",majorTMHeight:"8",majorTMAlpha:"50"}},vled:{chart:{ledGap:"0",showGaugeBorder:"0",setAdaptiveMin:"1",adjustTM:"1",placeTicksInside:"0",autoAlignTickValues:"1",minortmnumber:"0",majorTMHeight:"8",majorTMAlpha:"50"}},realtimearea:{chart:{showLegend:"1",legendIconSides:"2"}},realtimecolumn:{chart:{showLegend:"1",legendIconSides:"2"}},realtimeline:{chart:{lineThickness:"2",anchorRadius:"4",showLegend:"1",legendIconSides:"2",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1"}},realtimestackedarea:{chart:{showLegend:"1",legendIconSides:"2"}},realtimestackedcolumn:{chart:{showLegend:"1",legendIconSides:"4"}},realtimelinedy:{chart:{lineThickness:"2",anchorRadius:"4",showLegend:"1",legendIconSides:"2",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1"}},sparkline:{chart:{plotFillColor:"#5D62B5",anchorRadius:"4",highColor:"#29C3BE",lowColor:"#F2726F",captionPosition:"top",showOpenAnchor:"0",showCloseAnchor:"0",showOpenValue:"0",showCloseValue:"0",showHighLowValue:"0",periodColor:"#F3F3F3"}},sparkcolumn:{chart:{plotFillColor:"5D62B5",highColor:"#29C3BE",lowColor:"#F2726F",captionPosition:"middle",periodColor:"#F3F3F3"}},sparkwinloss:{chart:{winColor:"#29C3BE",lossColor:"#F2726F",captionPosition:"middle",drawColor:"#FFC533",scoreLessColor:"#5D62B5",periodColor:"#F3F3F3"}},hbullet:{chart:{plotFillColor:"#5D5D5D",colorRangeFillMix:"{light+0}",tickValueDistance:"3",tickMarkDistance:"3"}},vbullet:{chart:{plotFillColor:"#5D5D5D",colorRangeFillMix:"{light+0}",tickValueDistance:"3",tickMarkDistance:"3"}},funnel:{chart:{is2D:"1",smartLineThickness:"1",smartLineColor:"#B1AFAF",smartLineAlpha:"70",streamlinedData:"1",useSameSlantAngle:"1",alignCaptionWithCanvas:"1"}},pyramid:{chart:{is2D:"1",smartLineThickness:"1",smartLineColor:"#B1AFAF",smartLineAlpha:"70",streamlinedData:"1",useSameSlantAngle:"1",alignCaptionWithCanvas:"1",use3dlighting:"0"}},gantt:{chart:{taskBarFillMix:"{light+0}",flatScrollBars:"1",gridBorderAlpha:"100",gridBorderColor:"#EAEAEA",ganttLineColor:"#EAEAEA",ganttLineAlpha:"100",taskBarRoundRadius:"2",showHoverEffect:"1",plotHoverEffect:"1",plotFillHoverAlpha:"50",showCategoryHoverBand:"1",categoryHoverBandAlpha:"50",showGanttPaneVerticalHoverBand:"1",showProcessHoverBand:"1",processHoverBandAlpha:"50",showGanttPaneHorizontalHoverBand:"1",showConnectorHoverEffect:"1",connectorHoverAlpha:"50",showTaskHoverEffect:"1",taskHoverFillAlpha:"50",slackHoverFillAlpha:"50",scrollShowButtons:"0",drawCustomLegendIcon:"0",legendShadow:"0",legendBorderAlpha:"0",legendBorderThickness:"0",legendIconBorderThickness:"0",legendBgAlpha:"0"},categories:[{fontcolor:"#5D5D5D",fontsize:"14",bgcolor:"#F3F3F3",hoverBandAlpha:"50",showGanttPaneHoverBand:"1",showHoverBand:"1",category:[{fontcolor:"#5D5D5D",fontsize:"14",bgcolor:"#F3F3F3"}]}],tasks:{showBorder:"0",showHoverEffect:"0"},processes:{fontcolor:"#5D5D5D",isanimated:"0",bgcolor:"#FFFFFF",bgAlpha:"100",headerbgcolor:"#F3F3F3",headerfontcolor:"#5D5D5D",showGanttPaneHoverBand:"1",showHoverBand:"1"},text:{fontcolor:"#5D5D5D",bgcolor:"#FFFFFF"},datatable:{fontcolor:"#5D5D5D",bgcolor:"#FFFFFF",bgAlpha:"100",datacolumn:[{bgcolor:"#FFFFFF"}]},connectors:[{hoverThickness:"1.5"}],milestones:{milestone:[{color:"#FFC533"}]}},logmscolumn2d:{chart:{showLegend:"1",legendIconSides:"4"}},logmsline:{chart:{lineThickness:"2",anchorRadius:"4",drawCrossLine:"1",showLegend:"1",legendIconSides:"2",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1"}},spline:{chart:{lineThickness:"2",paletteColors:"#5D62B5",anchorBgColor:"#5D62B5",anchorRadius:"4",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1"}},splinearea:{chart:{paletteColors:"#5D62B5",drawAnchors:"0"}},msspline:{chart:{lineThickness:"2",anchorRadius:"4",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1",showLegend:"1",legendIconSides:"2"}},mssplinearea:{chart:{showLegend:"1",legendIconSides:"2",drawAnchors:"0"}},errorbar2d:{chart:{legendIconSides:"4",errorBarColor:"#5D5D5D",errorBarThickness:"0.7",errorBarAlpha:"80"}},errorline:{chart:{lineThickness:"2",anchorRadius:"4",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1",showLegend:"1",legendIconSides:"2",errorBarColor:"#5D5D5D",errorBarThickness:"0.7",errorBarAlpha:"80"}},errorscatter:{chart:{showShadow:"0",adjustDiv:"1",lineThickness:"2",anchorRadius:"4",showLegend:"1",legendIconSides:"2",errorBarColor:"#5D5D5D",errorBarThickness:"0.7",errorBarAlpha:"80",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1"}},inversemsarea:{chart:{drawCrossLine:"1",showLegend:"1",legendIconSides:"2"}},inversemscolumn2d:{chart:{showLegend:"1",legendIconSides:"4"}},inversemsline:{chart:{lineThickness:"2",anchorRadius:"4",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1",drawCrossLine:"1",showLegend:"1",legendIconSides:"2"}},dragcolumn2d:{chart:{showLegend:"1",legendIconSides:"4"},categories:[{category:[{fontItalic:"1"}]}],dataset:[{data:[{allowDrag:"1",alpha:"80"}]}]},dragline:{chart:{lineThickness:"2",anchorRadius:"4",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1",showLegend:"1",legendIconSides:"2"},categories:[{category:[{fontItalic:"1"}]}],dataset:[{data:[{allowDrag:"1",alpha:"80",dashed:"1"}]}]},dragarea:{chart:{showLegend:"1",legendIconSides:"2",drawAnchors:"0"},categories:[{category:[{fontItalic:"1"}]}],dataset:[{data:[{allowDrag:"1",alpha:"80",dashed:"1"}]}]},treemap:{chart:{parentLabelLineHeight:"16",baseFontSize:"14",labelFontSize:"14",showParent:"1",showNavigationBar:"0",plotBorderThickness:"0.5",plotBorderColor:"#EAEAEA",labelGlow:"1",labelGlowIntensity:"100",btnBackChartTooltext:"Back",btnResetChartTooltext:"Home",legendScaleLineThickness:"0",legendaxisborderalpha:"0",legendShadow:"0",toolbarButtonScale:"1.55",plotToolText:"$label, $dataValue, $sValue"},data:[{fillColor:"#FAFAFA",data:[{fillColor:"#FAFAFA"}]}]},radar:{chart:{showLegend:"1",legendIconSides:"2",plotFillAlpha:"20",drawAnchors:"0"}},heatmap:{chart:{baseFontSize:"14",labelFontSize:"14",showPlotBorder:"1",plotBorderAlpha:"100",plotBorderThickness:"0.5",plotBorderColor:"#EAEAEA",tlFontColor:"#FDFDFD",tlFont:"Source Sans Pro Light",tlFontSize:"13",trFontColor:"#FDFDFD",trFont:"Source Sans Pro Light",trFontSize:"13",blFontColor:"#FDFDFD",blFont:"Source Sans Pro Light",blFontSize:"13",brFontColor:"#FDFDFD",brFont:"Source Sans Pro Light",brFontSize:"13",captionPadding:"20",legendScaleLineThickness:"0",legendaxisborderalpha:"0",legendShadow:"0"},colorrange:{gradient:"1",code:"#FFC533"}},boxandwhisker2d:{chart:{drawCustomLegendIcon:"0",showLegend:"1",showDetailedLegend:"1",legendIconSides:"2",showPlotBorder:"0",upperBoxBorderAlpha:"0",lowerBoxBorderAlpha:"0",lowerQuartileAlpha:"0",upperQuartileAlpha:"0",upperWhiskerColor:"#5D5D5D",upperWhiskerThickness:"0.7",upperWhiskerAlpha:"80",lowerWhiskerColor:"#5D5D5D",lowerWhiskerThickness:"0.7",lowerWhiskerAlpha:"80",medianColor:"#5D5D5",medianThickness:"0.7",medianAlpha:"100",outliericonshape:"spoke",outliericonsides:"9",meaniconcolor:"#5D5D5D",meanIconShape:"spoke",meaniconsides:"9",meaniconradius:"5"}},candlestick:{chart:{showShadow:"0",showVPlotBorder:"0",bearFillColor:"#F2726F",bullFillColor:"#62B58F",plotLineThickness:"0.3",plotLineAlpha:"100",divLineDashed:"0",showDetailedLegend:"1",legendIconSides:"2",showHoverEffect:"1",plotHoverEffect:"1",showVolumeChart:"0",trendLineColor:"#5D5D5D",trendLineThickness:"1",trendValueAlpha:"100",rollOverBandAlpha:"100",rollOverBandColor:"#F2F2F2"},categories:[{verticalLineColor:"#5D5D5D",verticalLineThickness:"1",verticalLineAlpha:"35"}]},dragnode:{chart:{use3DLighting:"0",plotBorderThickness:"0",plotBorderAlpha:"0",showDetailedLegend:"1",legendIconSides:"2"},dataset:[{color:"#5D62B5"}],connectors:[{connector:[{color:"#29C3BE"}]}]},msstepline:{chart:{drawAnchors:"0",lineThickness:"2",drawCustomLegendIcon:"0"}},multiaxisline:{chart:{showLegend:"1",lineThickness:"2",allowSelection:"0",connectNullData:"1",drawAnchors:"0",divLineDashed:"0",divLineColor:"#DFDFDF",vDivLineColor:"#DFDFDF",vDivLineDashed:"0",yAxisNameFontSize:"13",drawCustomLegendIcon:"0"},axis:[{divLineColor:"#DFDFDF",setAdaptiveYMin:"1",divLineDashed:"0"}]},multilevelpie:{chart:{useHoverColor:"1",hoverFillColor:"#EDEDED",showHoverEffect:"1",plotHoverEffect:"1"},category:[{color:"#EDEDED",category:[{color:"#5D62B5",category:[{color:"#5D62B5"}]}]}]},selectscatter:{chart:{showShadow:"0",adjustDiv:"1",lineThickness:"2",anchorRadius:"4",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverColor:"#FFFFFF",anchorBorderHoverThickness:"1.5",showLegend:"1",legendIconSides:"2"}},waterfall2d:{chart:{paletteColors:"#5D62B5, #29C3BE, #F2726F, #FFC533, #62B58F, #BC95DF, #67CDF2",positiveColor:"62B58F",negativeColor:"#F2726F",showConnectors:"1",connectorDashed:"1",connectorThickness:"0.7",connectorColor:"#5D5D5D"}},kagi:{chart:{rallyThickness:"2",declineThickness:"2",legendIconSides:"2",drawAnchors:"0",rallyColor:"#62B58F",declineColor:"#F2726F"}},geo:{chart:{showLabels:"0",legendScaleLineThickness:"0",legendaxisborderalpha:"0",legendShadow:"0",fillColor:"#FDFDFD",showEntityHoverEffect:"1",entityFillHoverAlpha:"90",connectorHoverAlpha:"90",markerBorderHoverAlpha:"90",showBorder:"1",borderColor:"#5D5D5D",borderThickness:"0.1",nullEntityColor:"5D5D5D",nullEntityAlpha:"50",entityFillHoverColor:"#5D5D5D"},colorrange:{gradient:"1",code:"#FFC533"}},overlappedbar2d:{chart:{placeValuesInside:"0",showAlternateVGridColor:"0",showLegend:"1",legendIconSides:"4",yAxisValuesPadding:"10"}},overlappedcolumn2d:{chart:{showLegend:"1",legendIconSides:"4"}},scrollbar2d:{chart:{showLegend:"1",legendIconSides:"4",showCanvasBase:"0",canvasBaseDepth:"0",showShadow:"0",adjustDiv:"1",flatScrollBars:"1",scrollShowButtons:"0",scrollWidth:"10",scrollColor:"#EBEBEB",showAlternateVGridColor:0}},scrollstackedbar2d:{chart:{showLegend:"1",legendIconSides:"4",flatScrollBars:"1",scrollShowButtons:"0",scrollWidth:"10",scrollColor:"#EBEBEB",showAlternateVGridColor:0}},scrollmsstackedcolumn2d:{chart:{showLegend:"1",legendIconSides:"4",showShadow:"0",adjustDiv:"1",flatScrollBars:"1",scrollShowButtons:"0",scrollheight:"10",scrollColor:"#EBEBEB"}},scrollmsstackedcolumn2dlinedy:{chart:{placeValuesInside:"0",lineThickness:"2",anchorRadius:"4",showLegend:"1",drawCustomLegendIcon:"0",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1",showShadow:"0",adjustDiv:"1",flatScrollBars:"1",scrollShowButtons:"0",scrollheight:"10",scrollColor:"#EBEBEB"},lineset:[{color:"#5D5D5D",anchorBgColor:"#5D5D5D"}]},stackedcolumn2dlinedy:{chart:{lineThickness:"2",anchorRadius:"4",drawCrossLine:"1",showLegend:"1",drawCustomLegendIcon:"0",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1"}},stackedarea2dlinedy:{chart:{lineThickness:"2",anchorRadius:"4",drawCrossLine:"1",drawCustomLegendIcon:"0",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1"}},mscombidy3d:{chart:{showCanvasBase:"0",canvasBaseDepth:"0",placeValuesInside:"0",showShadow:"0",chartTopMargin:"35",adjustDiv:"1",lineThickness:"2",anchorRadius:"4",showLegend:"1",drawCustomLegendIcon:"0",anchorHoverEffect:"1",anchorHoverRadius:"4",anchorBorderHoverThickness:"1.5",anchorBgHoverColor:"#FFFFFF",legendIconBorderThickness:"1"}},sankey:{chart:{nodeLabelFontColor:"#666",nodeLabelFontSize:14,nodeLabelPosition:"inside",nodeHoverAlpha:75,legendPosition:"bottom",plothighlighteffect:"fadeout",linkColor:"source",textOutline:1,linkHoverAlpha:75,linkAlpha:30,enableDrag:0}},sunburst:{chart:{useHoverColor:"0"}},chord:{chart:{drawCustomLegendIcon:0,legendPosition:"right",nodeThickness:8,nodeLabelColor:"#666",nodeLabelFontSize:14,nodeLabelPosition:"outside",nodeHoverAlpha:100,nodeLinkPadding:5,nodeBorderThickness:.5,nodeAlpha:100,linkAlpha:40,linkBorderAlpha:40,linkHoverAlpha:75}},timeseries:{caption:{style:{text:{"font-size":18,"font-family":"Source Sans Pro SemiBold",fill:"#5A5A5A"}}},subcaption:{style:{text:{"font-family":"Source Sans Pro","font-size":13,fill:"#999999"}}},crossline:{style:{line:{stroke:"#DFDFDF","stroke-width":1}}},chart:{paletteColors:"#5D62B5, #29C3BE, #F2726F, #FFC533, #62B58F, #BC95DF, #67CDF2",baseFont:"Source Sans Pro",multiCanvasTooltip:1,style:{text:{"font-family":"Source Sans Pro"},canvas:{stroke:"#DFDFDF","stroke-width":1}}},tooltip:{style:{container:{"background-color":"#FFFFFF",opacity:.9,border:"1px solid #E1E1E1","border-radius":"2px",padding:"6px"},text:{"font-size":"13px",color:"#5A5A5A"},header:{color:"#5A5A5A","font-family":"Source Sans Pro SemiBold",padding:"0px"},body:{padding:"0px"}}},navigator:{scrollbar:{style:{button:{fill:"#EBEBEB"},track:{fill:"#FFFFFF",stroke:"#DFDFDF","stroke-width":1},scroller:{fill:"#EBEBEB"}}},window:{style:{handle:{fill:"#EBEBEB"}}}},extensions:{customRangeSelector:{style:{"title-text":{"font-family":"Source Sans Pro SemiBold"},"title-icon":{"font-family":"Source Sans Pro SemiBold"},label:{color:"#999999","font-family":"Source Sans Pro SemiBold"},"button-apply":{color:"#FFFFFF","background-color":"#5648D4",border:"none"},"button-apply:hover":{"font-family":"Source Sans Pro SemiBold"},"button-cancel":{color:"#999999","background-color":"#FFFFFF",border:"none"},"button-cancel:hover":{color:"#5648D4","font-family":"Source Sans Pro SemiBold"},"cal-selecteddate":{color:"#FEFEFE","font-family":"Source Sans Pro SemiBold","font-size":"11px"},"cal-date":{color:"#5F5F5F","font-family":"Source Sans Pro","font-size":"11px"},"cal-disableddate":{color:"#CACACA","font-family":"Source Sans Pro","font-size":"11px"}}},standardRangeSelector:{style:{"button-text":{fill:"#999999"},"button-text:hover":{fill:"#5648D4","font-family":"Source Sans Pro SemiBold"},"button-text:active":{fill:"#5648D4","font-family":"Source Sans Pro SemiBold"},separator:{stroke:"#DFDFDF"}}}},legend:{style:{text:{fill:"#7C7C7C","font-size":15,"font-family":"Source Sans Pro"}}},xaxis:{timemarker:[{style:{marker:{fill:"#62b58f",stroke:"#62b58f"},"marker:hover":{fill:"#3e8464",stroke:"#3e8464","stroke-width":1},"marker-box":{fill:"#F8B8B7",stroke:"#F8B8B7","stroke-width":1},"marker-box:hover":{fill:"#F2726F",stroke:"#F2726F","stroke-width":1},"marker-notch":{fill:"#F8B8B7",stroke:"#F8B8B7"},"marker-notch:hover":{fill:"#F2726F",stroke:"#F2726F"},"marker-line":{stroke:"#F8B8B7"},"marker-line:hover":{stroke:"#F2726F"},text:{fill:"#5F5F5F"},"text:hover":{fill:"#5F5F5F"}}}],style:{title:{"font-size":15,"font-family":"Source Sans Pro",fill:"#999999"},"grid-line":{stroke:"#DFDFDF","stroke-width":1},"tick-mark-major":{stroke:"#DFDFDF","stroke-width":1},"tick-mark-minor":{stroke:"#DFDFDF","stroke-width":.75},"label-major":{color:"#5A5A5A"},"label-minor":{color:"#8D8D8D"},"label-context":{color:"#5A5A5A"}}},plotconfig:{column:{style:{"plot:hover":{opacity:.75},"plot:highlight":{opacity:.75}}},line:{style:{plot:{"stroke-width":1.5},anchor:{"stroke-width":0}}},area:{style:{anchor:{"stroke-width":0}}},candlestick:{style:{bear:{stroke:"#F2726F",fill:"#F2726F"},"bear:hover":{opacity:.75},"bear:highlight":{opacity:.75},bull:{stroke:"#62B58F",fill:"#62B58F"},"bull:hover":{opacity:.75},"bull:highlight":{opacity:.75}}},ohlc:{style:{bear:{stroke:"#F2726F",fill:"#F2726F"},"bear:hover":{opacity:.75},"bear:highlight":{opacity:.75},bull:{stroke:"#62B58F",fill:"#62B58F"},"bull:hover":{opacity:.75},"bull:highlight":{opacity:.75}}}},yaxis:[{style:{title:{"font-size":"15","font-family":"Source Sans Pro",fill:"#999999"},"tick-mark":{stroke:"#DFDFDF","stroke-width":1},"grid-line":{stroke:"#DFDFDF","stroke-width":1},label:{color:"#5A5A5A"}}}]}}};__webpack_exports__["a"]={extension:themeObject,name:"fusionTheme",type:"theme"}},function(module,exports,__webpack_require__){var content=__webpack_require__(16);if(typeof content==="string")content=[[module.i,content,""]];var transform;var insertInto;var options={hmr:true};options.transform=transform;options.insertInto=undefined;var update=__webpack_require__(1)(content,options);if(content.locals)module.exports=content.locals;if(false){module.hot.accept("!!../../../node_modules/css-loader/index.js!./fusioncharts.theme.fusion.css",function(){var newContent=require("!!../../../node_modules/css-loader/index.js!./fusioncharts.theme.fusion.css");if(typeof newContent==="string")newContent=[[module.id,newContent,""]];var locals=function(a,b){var key,idx=0;for(key in a){if(!b||a[key]!==b[key])return false;idx++}for(key in b)idx--;return idx===0}(content.locals,newContent.locals);if(!locals)throw new Error("Aborting CSS HMR due to changed css-modules locals.");update(newContent)});module.hot.dispose(function(){update()})}},function(module,exports,__webpack_require__){exports=module.exports=__webpack_require__(0)(false);exports.push([module.i,"@font-face {\n font-family: 'Source Sans Pro';\n font-style: normal;\n font-weight: 400;\n src: local('Source Sans Pro Regular'), local('SourceSansPro-Regular'), url(https://fonts.gstatic.com/s/sourcesanspro/v11/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7lujVj9w.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n\n@font-face {\n font-family: 'Source Sans Pro Light';\n font-style: normal;\n font-weight: 300;\n src: local('Source Sans Pro Light'), local('SourceSansPro-Light'), url(https://fonts.gstatic.com/s/sourcesanspro/v11/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu3cOWxw.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n\n@font-face {\n font-family: 'Source Sans Pro SemiBold';\n font-style: normal;\n font-weight: 600;\n src: local('Source Sans Pro SemiBold'), local('SourceSansPro-SemiBold'), url(https://fonts.gstatic.com/s/sourcesanspro/v11/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu3cOWxw.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n\n/* ft calendar customization */\n.fc-cal-date-normal-fusion {\n color: #5F5F5F;\n font-family: 'Source Sans Pro';\n font-size: 11px;\n}\n\n.fc-cal-date-selected-fusion {\n color: #FEFEFE;\n font-family: 'Source Sans Pro SemiBold';\n font-size: 11px;\n}",""])}])}); diff --git a/base_accounting_kit/static/lib/jquery-3.3.1.min.js b/base_accounting_kit/static/lib/jquery-3.3.1.min.js new file mode 100644 index 0000000..4d9b3a2 --- /dev/null +++ b/base_accounting_kit/static/lib/jquery-3.3.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.1",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.1",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:n.sort,splice:n.splice},w.extend=w.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||g(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)n=a[t],a!==(r=e[t])&&(l&&r&&(w.isPlainObject(r)||(i=Array.isArray(r)))?(i?(i=!1,o=n&&Array.isArray(n)?n:[]):o=n&&w.isPlainObject(n)?n:{},a[t]=w.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},w.extend({expando:"jQuery"+("3.3.1"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==c.call(e))&&(!(t=i(e))||"function"==typeof(n=f.call(t,"constructor")&&t.constructor)&&p.call(n)===d)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e){m(e)},each:function(e,t){var n,r=0;if(C(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(C(Object(e))?w.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:u.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,s=!n;o<a;o++)(r=!t(e[o],o))!==s&&i.push(e[o]);return i},map:function(e,t,n){var r,i,o=0,s=[];if(C(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&s.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&s.push(i);return a.apply([],s)},guid:1,support:h}),"function"==typeof Symbol&&(w.fn[Symbol.iterator]=n[Symbol.iterator]),w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function C(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!g(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},P="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",I="\\["+M+"*("+R+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+R+"))|)"+M+"*\\]",W=":("+R+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+I+")*)|.*)\\)|)",$=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),F=new RegExp("^"+M+"*,"+M+"*"),_=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="<a id='"+b+"'></a><select id='"+b+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:he(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:he(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=r.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=fe(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=pe(t);function ye(){}ye.prototype=r.filters=r.pseudos,r.setFilters=new ye,a=oe.tokenize=function(e,t){var n,i,o,a,s,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=r.preFilter;while(s){n&&!(i=F.exec(s))||(i&&(s=s.slice(i[0].length)||s),u.push(o=[])),n=!1,(i=_.exec(s))&&(n=i.shift(),o.push({value:n,type:i[0].replace(B," ")}),s=s.slice(n.length));for(a in r.filter)!(i=V[a].exec(s))||l[a]&&!(i=l[a](i))||(n=i.shift(),o.push({value:n,type:a,matches:i}),s=s.slice(n.length));if(!n)break}return t?s.length:s?oe.error(e):k(e,u).slice(0)};function ve(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function me(e,t,n){var r=t.dir,i=t.next,o=i||r,a=n&&"parentNode"===o,s=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||a)return e(t,n,i);return!1}:function(t,n,u){var l,c,f,p=[T,s];if(u){while(t=t[r])if((1===t.nodeType||a)&&e(t,n,u))return!0}else while(t=t[r])if(1===t.nodeType||a)if(f=t[b]||(t[b]={}),c=f[t.uniqueID]||(f[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t;else{if((l=c[o])&&l[0]===T&&l[1]===s)return p[2]=l[2];if(c[o]=p,p[2]=e(t,n,u))return!0}return!1}}function xe(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r<i;r++)oe(e,t[r],n);return n}function we(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Te(e,t,n,r,i,o){return r&&!r[b]&&(r=Te(r)),i&&!i[b]&&(i=Te(i,o)),se(function(o,a,s,u){var l,c,f,p=[],d=[],h=a.length,g=o||be(t||"*",s.nodeType?[s]:s,[]),y=!e||!o&&t?g:we(g,p,e,s,u),v=n?i||(o?e:h||r)?[]:a:y;if(n&&n(y,v,s,u),r){l=we(v,d),r(l,[],s,u),c=l.length;while(c--)(f=l[c])&&(v[d[c]]=!(y[d[c]]=f))}if(o){if(i||e){if(i){l=[],c=v.length;while(c--)(f=v[c])&&l.push(y[c]=f);i(null,v=[],l,u)}c=v.length;while(c--)(f=v[c])&&(l=i?O(o,f):p[c])>-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u<o;u++)if(n=r.relative[e[u].type])p=[me(xe(p),n)];else{if((n=r.filter[e[u].type].apply(null,e[u].matches))[b]){for(i=++u;i<o;i++)if(r.relative[e[i].type])break;return Te(u>1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u<i&&Ce(e.slice(u,i)),i<o&&Ce(e=e.slice(i)),i<o&&ve(e))}p.push(n)}return xe(p)}function Ee(e,t){var n=t.length>0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t<r;t++)if(w.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)w.find(e,i[t],n);return r>1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(w.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&w(e);if(!D.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s<o.length)!1===o[s].apply(n[0],n[1])&&e.stopOnFalse&&(s=o.length,n=!1)}e.memory||(n=!1),t=!1,i&&(o=n?[]:"")},l={add:function(){return o&&(n&&!t&&(s=o.length-1,a.push(n)),function t(n){w.each(n,function(n,r){g(r)?e.unique&&l.has(r)||o.push(r):r&&r.length&&"string"!==x(r)&&t(r)})}(arguments),n&&!t&&u()),this},remove:function(){return w.each(arguments,function(e,t){var n;while((n=w.inArray(t,o,n))>-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t<o)){if((e=r.apply(s,u))===n.promise())throw new TypeError("Thenable self-resolution");l=e&&("object"==typeof e||"function"==typeof e)&&e.then,g(l)?i?l.call(e,a(o,n,I,i),a(o,n,W,i)):(o++,l.call(e,a(o,n,I,i),a(o,n,W,i),a(o,n,I,n.notifyWith))):(r!==I&&(s=void 0,u=[e]),(i||n.resolveWith)(s,u))}},c=i?l:function(){try{l()}catch(e){w.Deferred.exceptionHook&&w.Deferred.exceptionHook(e,c.stackTrace),t+1>=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},X=/^-ms-/,U=/-([a-z])/g;function V(e,t){return t.toUpperCase()}function G(e){return e.replace(X,"ms-").replace(U,V)}var Y=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Q(){this.expando=w.expando+Q.uid++}Q.uid=1,Q.prototype={cache:function(e){var t=e[this.expando];return t||(t={},Y(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[G(t)]=n;else for(r in t)i[G(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][G(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(G):(t=G(t))in r?[t]:t.match(M)||[]).length;while(n--)delete r[t[n]]}(void 0===t||w.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!w.isEmptyObject(t)}};var J=new Q,K=new Q,Z=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,ee=/[A-Z]/g;function te(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:Z.test(e)?JSON.parse(e):e)}function ne(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(ee,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n=te(n)}catch(e){}K.set(e,t,n)}else n=void 0;return n}w.extend({hasData:function(e){return K.hasData(e)||J.hasData(e)},data:function(e,t,n){return K.access(e,t,n)},removeData:function(e,t){K.remove(e,t)},_data:function(e,t,n){return J.access(e,t,n)},_removeData:function(e,t){J.remove(e,t)}}),w.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=K.get(o),1===o.nodeType&&!J.get(o,"hasDataAttrs"))){n=a.length;while(n--)a[n]&&0===(r=a[n].name).indexOf("data-")&&(r=G(r.slice(5)),ne(o,r,i[r]));J.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof e?this.each(function(){K.set(this,e)}):z(this,function(t){var n;if(o&&void 0===t){if(void 0!==(n=K.get(o,e)))return n;if(void 0!==(n=ne(o,e)))return n}else this.each(function(){K.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?w.queue(this[0],e):void 0===t?this:this.each(function(){var n=w.queue(this,e,t);w._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&w.dequeue(this,e)})},dequeue:function(e){return this.each(function(){w.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=w.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=J.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var re=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ie=new RegExp("^(?:([+-])=|)("+re+")([a-z%]*)$","i"),oe=["Top","Right","Bottom","Left"],ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&w.contains(e.ownerDocument,e)&&"none"===w.css(e,"display")},se=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i};function ue(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return w.css(e,t,"")},u=s(),l=n&&n[3]||(w.cssNumber[t]?"":"px"),c=(w.cssNumber[t]||"px"!==l&&+u)&&ie.exec(w.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)w.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,w.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var le={};function ce(e){var t,n=e.ownerDocument,r=e.nodeName,i=le[r];return i||(t=n.body.appendChild(n.createElement(r)),i=w.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),le[r]=i,i)}function fe(e,t){for(var n,r,i=[],o=0,a=e.length;o<a;o++)(r=e[o]).style&&(n=r.style.display,t?("none"===n&&(i[o]=J.get(r,"display")||null,i[o]||(r.style.display="")),""===r.style.display&&ae(r)&&(i[o]=ce(r))):"none"!==n&&(i[o]="none",J.set(r,"display",n)));for(o=0;o<a;o++)null!=i[o]&&(e[o].style.display=i[o]);return e}w.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?w(this).show():w(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n<r;n++)J.set(e[n],"globalEval",!t||J.get(t[n],"globalEval"))}var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===x(o))w.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+w.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;w.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&w.inArray(o,r)>-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="<textarea>x</textarea>",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n<arguments.length;n++)u[n]=arguments[n];if(t.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,t)){s=w.event.handlers.call(this,t,l),n=0;while((o=s[n++])&&!t.isPropagationStopped()){t.currentTarget=o.elem,r=0;while((a=o.handlers[r++])&&!t.isImmediatePropagationStopped())t.rnamespace&&!t.rnamespace.test(a.namespace)||(t.handleObj=a,t.data=a.data,void 0!==(i=((w.event.special[a.origType]||{}).handle||a.handler).apply(o.elem,u))&&!1===(t.result=i)&&(t.preventDefault(),t.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,t),t.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&e.button>=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?w(i,this).index(l)>-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(e,t){Object.defineProperty(w.Event.prototype,e,{enumerable:!0,configurable:!0,get:g(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(e){return e[w.expando]?e:new w.Event(e)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==Se()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===Se()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&N(this,"input"))return this.click(),!1},_default:function(e){return N(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},w.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},w.Event=function(e,t){if(!(this instanceof w.Event))return new w.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ee:ke,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&w.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[w.expando]=!0},w.Event.prototype={constructor:w.Event,isDefaultPrevented:ke,isPropagationStopped:ke,isImmediatePropagationStopped:ke,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ee,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ee,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ee,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},w.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&we.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Te.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},w.event.addProp),w.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){w.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return i&&(i===r||w.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),w.fn.extend({on:function(e,t,n,r){return De(this,e,t,n,r)},one:function(e,t,n,r){return De(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,w(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=ke),this.each(function(){w.event.remove(this,e,n,t)})}});var Ne=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/<script|<style|<link/i,je=/checked\s*(?:[^=]|=\s*.checked.)/i,qe=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n<r;n++)w.event.add(t,i,l[i][n])}K.hasData(e)&&(s=K.access(e),u=w.extend({},s),K.set(t,u))}}function Me(e,t){var n=t.nodeName.toLowerCase();"input"===n&&pe.test(e.type)?t.checked=e.checked:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}function Re(e,t,n,r){t=a.apply([],t);var i,o,s,u,l,c,f=0,p=e.length,d=p-1,y=t[0],v=g(y);if(v||p>1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f<p;f++)l=i,f!==d&&(l=w.clone(l,!0,!0),u&&w.merge(s,ye(l,"script"))),n.call(e[f],l,f);if(u)for(c=s[s.length-1].ownerDocument,w.map(s,Oe),f=0;f<u;f++)l=s[f],he.test(l.type||"")&&!J.access(l,"globalEval")&&w.contains(c,l)&&(l.src&&"module"!==(l.type||"").toLowerCase()?w._evalUrl&&w._evalUrl(l.src):m(l.textContent.replace(qe,""),c,l))}return e}function Ie(e,t,n){for(var r,i=t?w.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||w.cleanData(ye(r)),r.parentNode&&(n&&w.contains(r.ownerDocument,r)&&ve(ye(r,"script")),r.parentNode.removeChild(r));return e}w.extend({htmlPrefilter:function(e){return e.replace(Ne,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r<i;r++)Me(o[r],a[r]);if(t)if(n)for(o=o||ye(e),a=a||ye(s),r=0,i=o.length;r<i;r++)Pe(o[r],a[r]);else Pe(e,s);return(a=ye(s,"script")).length>0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(w.cleanData(ye(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[];return Re(this,arguments,function(t){var n=this.parentNode;w.inArray(this,e)<0&&(w.cleanData(ye(this)),n&&n.replaceChild(t,this))},e)}}),w.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){w.fn[e]=function(e){for(var n,r=[],i=w(e),o=i.length-1,a=0;a<=o;a++)n=a===o?this:this.clone(!0),w(i[a])[t](n),s.apply(r,n.get());return this.pushStack(r)}});var We=new RegExp("^("+re+")(?!px)[a-z%]+$","i"),$e=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},Be=new RegExp(oe.join("|"),"i");!function(){function t(){if(c){l.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",c.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",be.appendChild(l).appendChild(c);var t=e.getComputedStyle(c);i="1%"!==t.top,u=12===n(t.marginLeft),c.style.right="60%",s=36===n(t.right),o=36===n(t.width),c.style.position="absolute",a=36===c.offsetWidth||"absolute",be.removeChild(l),c=null}}function n(e){return Math.round(parseFloat(e))}var i,o,a,s,u,l=r.createElement("div"),c=r.createElement("div");c.style&&(c.style.backgroundClip="content-box",c.cloneNode(!0).style.backgroundClip="",h.clearCloneStyle="content-box"===c.style.backgroundClip,w.extend(h,{boxSizingReliable:function(){return t(),o},pixelBoxStyles:function(){return t(),s},pixelPosition:function(){return t(),i},reliableMarginLeft:function(){return t(),u},scrollboxSize:function(){return t(),a}}))}();function Fe(e,t,n){var r,i,o,a,s=e.style;return(n=n||$e(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||w.contains(e.ownerDocument,e)||(a=w.style(e,t)),!h.pixelBoxStyles()&&We.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function _e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}var ze=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ue={position:"absolute",visibility:"hidden",display:"block"},Ve={letterSpacing:"0",fontWeight:"400"},Ge=["Webkit","Moz","ms"],Ye=r.createElement("div").style;function Qe(e){if(e in Ye)return e;var t=e[0].toUpperCase()+e.slice(1),n=Ge.length;while(n--)if((e=Ge[n]+t)in Ye)return e}function Je(e){var t=w.cssProps[e];return t||(t=w.cssProps[e]=Qe(e)||e),t}function Ke(e,t,n){var r=ie.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ze(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=w.css(e,n+oe[a],!0,i)),r?("content"===n&&(u-=w.css(e,"padding"+oe[a],!0,i)),"margin"!==n&&(u-=w.css(e,"border"+oe[a]+"Width",!0,i))):(u+=w.css(e,"padding"+oe[a],!0,i),"padding"!==n?u+=w.css(e,"border"+oe[a]+"Width",!0,i):s+=w.css(e,"border"+oe[a]+"Width",!0,i));return!r&&o>=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a<i;a++)o[t[a]]=w.css(e,t[a],!1,r);return o}return void 0!==n?w.style(e,t,n):w.css(e,t)},e,t,arguments.length>1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ct(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),y=J.get(e,"fxshow");n.queue||(null==(a=w._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,w.queue(e,"fx").length||a.empty.fire()})}));for(r in t)if(i=t[r],it.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!y||void 0===y[r])continue;g=!0}d[r]=y&&y[r]||w.style(e,r)}if((u=!w.isEmptyObject(t))||!w.isEmptyObject(d)){f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=y&&y.display)&&(l=J.get(e,"display")),"none"===(c=w.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=w.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===w.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1;for(r in d)u||(y?"hidden"in y&&(g=y.hidden):y=J.access(e,"fxshow",{display:l}),o&&(y.hidden=!g),g&&fe([e],!0),p.done(function(){g||fe([e]),J.remove(e,"fxshow");for(r in d)w.style(e,r,d[r])})),u=lt(g?y[r]:0,r,p),r in y||(y[r]=u.start,g&&(u.end=u.start,u.start=0))}}function ft(e,t){var n,r,i,o,a;for(n in e)if(r=G(n),i=t[r],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=w.cssHooks[r])&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function pt(e,t,n){var r,i,o=0,a=pt.prefilters.length,s=w.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=nt||st(),n=Math.max(0,l.startTime+l.duration-t),r=1-(n/l.duration||0),o=0,a=l.tweens.length;o<a;o++)l.tweens[o].run(r);return s.notifyWith(e,[l,r,n]),r<1&&a?n:(a||s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:w.extend({},t),opts:w.extend(!0,{specialEasing:{},easing:w.easing._default},n),originalProperties:t,originalOptions:n,startTime:nt||st(),duration:n.duration,tweens:[],createTween:function(t,n){var r=w.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;n<r;n++)l.tweens[n].run(1);return t?(s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l,t])):s.rejectWith(e,[l,t]),this}}),c=l.props;for(ft(c,l.opts.specialEasing);o<a;o++)if(r=pt.prefilters[o].call(l,e,c,l.opts))return g(r.stop)&&(w._queueHooks(l.elem,l.opts.queue).stop=r.stop.bind(r)),r;return w.map(c,lt,l),g(l.opts.start)&&l.opts.start.call(e,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),w.fx.timer(w.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l}w.Animation=w.extend(pt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return ue(n.elem,e,ie.exec(t),n),n}]},tweener:function(e,t){g(e)?(t=e,e=["*"]):e=e.match(M);for(var n,r=0,i=e.length;r<i;r++)n=e[r],pt.tweeners[n]=pt.tweeners[n]||[],pt.tweeners[n].unshift(t)},prefilters:[ct],prefilter:function(e,t){t?pt.prefilters.unshift(e):pt.prefilters.push(e)}}),w.speed=function(e,t,n){var r=e&&"object"==typeof e?w.extend({},e):{complete:n||!n&&t||g(e)&&e,duration:e,easing:n&&t||t&&!g(t)&&t};return w.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in w.fx.speeds?r.duration=w.fx.speeds[r.duration]:r.duration=w.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){g(r.old)&&r.old.call(this),r.queue&&w.dequeue(this,r.queue)},r},w.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=w.isEmptyObject(e),o=w.speed(t,n,r),a=function(){var t=pt(this,w.extend({},e),o);(i||J.get(this,"finish"))&&t.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&!1!==e&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=w.timers,a=J.get(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&ot.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));!t&&n||w.dequeue(this,e)})},finish:function(e){return!1!==e&&(e=e||"fx"),this.each(function(){var t,n=J.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=w.timers,a=r?r.length:0;for(n.finish=!0,w.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;t<a;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),w.each(["toggle","show","hide"],function(e,t){var n=w.fn[t];w.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ut(t,!0),e,r,i)}}),w.each({slideDown:ut("show"),slideUp:ut("hide"),slideToggle:ut("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){w.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),w.timers=[],w.fx.tick=function(){var e,t=0,n=w.timers;for(nt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||w.fx.stop(),nt=void 0},w.fx.timer=function(e){w.timers.push(e),w.fx.start()},w.fx.interval=13,w.fx.start=function(){rt||(rt=!0,at())},w.fx.stop=function(){rt=null},w.fx.speeds={slow:600,fast:200,_default:400},w.fn.delay=function(t,n){return t=w.fx?w.fx.speeds[t]||t:t,n=n||"fx",this.queue(n,function(n,r){var i=e.setTimeout(n,t);r.stop=function(){e.clearTimeout(i)}})},function(){var e=r.createElement("input"),t=r.createElement("select").appendChild(r.createElement("option"));e.type="checkbox",h.checkOn=""!==e.value,h.optSelected=t.selected,(e=r.createElement("input")).value="t",e.type="radio",h.radioValue="t"===e.value}();var dt,ht=w.expr.attrHandle;w.fn.extend({attr:function(e,t){return z(this,w.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!N(n.parentNode,"optgroup"))){if(t=w(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=w.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=w.inArray(w.valHooks.option.get(r),o)>-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w("<script>").prop({charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&o("error"===e.type?404:200,e.type)}),r.head.appendChild(t[0])},abort:function(){n&&n()}}}});var Yt=[],Qt=/(=)\?(?=&|$)|\?\?/;w.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Yt.pop()||w.expando+"_"+Et++;return this[e]=!0,e}}),w.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=!1!==t.jsonp&&(Qt.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&Qt.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=g(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(Qt,"$1"+i):!1!==t.jsonp&&(t.url+=(kt.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||w.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?w(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,Yt.push(i)),a&&g(o)&&o(a[0]),a=o=void 0}),"script"}),h.createHTMLDocument=function(){var e=r.implementation.createHTMLDocument("").body;return e.innerHTML="<form></form><form></form>",2===e.childNodes.length}(),w.parseHTML=function(e,t,n){if("string"!=typeof e)return[];"boolean"==typeof t&&(n=t,t=!1);var i,o,a;return t||(h.createHTMLDocument?((i=(t=r.implementation.createHTMLDocument("")).createElement("base")).href=r.location.href,t.head.appendChild(i)):t=r),o=A.exec(e),a=!n&&[],o?[t.createElement(o[1])]:(o=xe([e],t,a),a&&a.length&&w(a).remove(),w.merge([],o.childNodes))},w.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=vt(e.slice(s)),e=e.slice(0,s)),g(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&w.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?w("<div>").append(w.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},w.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){w.fn[t]=function(e){return this.on(t,e)}}),w.expr.pseudos.animated=function(e){return w.grep(w.timers,function(t){return e===t.elem}).length},w.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=w.css(e,"position"),f=w(e),p={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=w.css(e,"top"),u=w.css(e,"left"),(l=("absolute"===c||"fixed"===c)&&(o+u).indexOf("auto")>-1)?(a=(r=f.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),g(t)&&(t=t.call(e,n,w.extend({},s))),null!=t.top&&(p.top=t.top-s.top+a),null!=t.left&&(p.left=t.left-s.left+i),"using"in t?t.using.call(e,p):f.css(p)}},w.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){w.offset.setOffset(this,e,t)});var t,n,r=this[0];if(r)return r.getClientRects().length?(t=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===w.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===w.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=w(e).offset()).top+=w.css(e,"borderTopWidth",!0),i.left+=w.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-w.css(r,"marginTop",!0),left:t.left-i.left-w.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===w.css(e,"position"))e=e.offsetParent;return e||be})}}),w.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n="pageYOffset"===t;w.fn[e]=function(r){return z(this,function(e,r,i){var o;if(y(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r];o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i},e,r,arguments.length)}}),w.each(["top","left"],function(e,t){w.cssHooks[t]=_e(h.pixelPosition,function(e,n){if(n)return n=Fe(e,t),We.test(n)?w(e).position()[t]+"px":n})}),w.each({Height:"height",Width:"width"},function(e,t){w.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){w.fn[r]=function(i,o){var a=arguments.length&&(n||"boolean"!=typeof i),s=n||(!0===i||!0===o?"margin":"border");return z(this,function(t,n,i){var o;return y(t)?0===r.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body["scroll"+e],o["scroll"+e],t.body["offset"+e],o["offset"+e],o["client"+e])):void 0===i?w.css(t,n,s):w.style(t,n,i,s)},t,a?i:void 0,a)}})}),w.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){w.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),w.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),w.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),w.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),g(e))return r=o.call(arguments,2),i=function(){return e.apply(t||this,r.concat(o.call(arguments)))},i.guid=e.guid=e.guid||w.guid++,i},w.holdReady=function(e){e?w.readyWait++:w.ready(!0)},w.isArray=Array.isArray,w.parseJSON=JSON.parse,w.nodeName=N,w.isFunction=g,w.isWindow=y,w.camelCase=G,w.type=x,w.now=Date.now,w.isNumeric=function(e){var t=w.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return w});var Jt=e.jQuery,Kt=e.$;return w.noConflict=function(t){return e.$===w&&(e.$=Kt),t&&e.jQuery===w&&(e.jQuery=Jt),w},t||(e.jQuery=e.$=w),w}); diff --git a/base_accounting_kit/static/src/js/account_asset.js b/base_accounting_kit/static/src/js/account_asset.js new file mode 100644 index 0000000..a60c8b6 --- /dev/null +++ b/base_accounting_kit/static/src/js/account_asset.js @@ -0,0 +1,87 @@ +odoo.define('base_accounting_kit.account_asset', function(require) { +"use strict"; + +/** + * The purpose of this widget is to shows a toggle button on depreciation and + * installment lines for posted/unposted line. When clicked, it calls the method + * create_move on the object account.asset.depreciation.line. + * Note that this widget can only work on the account.asset.depreciation.line + * model as some of its fields are harcoded. + */ + +var AbstractField = require('web.AbstractField'); +var core = require('web.core'); +var registry = require('web.field_registry'); + +var _t = core._t; + +var AccountAssetWidget = AbstractField.extend({ + events: _.extend({}, AbstractField.prototype.events, { + 'click': '_onClick', + }), + description: "", + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + /** + * @override + */ + isSet: function () { + return true; // it should always be displayed, whatever its value + }, + + //-------------------------------------------------------------------------- + // Private + //-------------------------------------------------------------------------- + + /** + * @override + * @private + */ + _render: function () { + var className = ''; + var disabled = true; + var title; + if (this.recordData.move_posted_check) { + className = 'o_is_posted'; + title = _t('Posted'); + } else if (this.recordData.move_check) { + className = 'o_unposted'; + title = _t('Accounting entries waiting for manual verification'); + } else { + disabled = false; + title = _t('Unposted'); + } + var $button = $('<button/>', { + type: 'button', + title: title, + disabled: disabled, + }).addClass('btn btn-sm btn-link fa fa-circle o_deprec_lines_toggler ' + className); + this.$el.html($button); + }, + + //-------------------------------------------------------------------------- + // Handlers + //-------------------------------------------------------------------------- + + /** + * @private + * @param {MouseEvent} event + */ + _onClick: function (event) { + event.stopPropagation(); + this.trigger_up('button_clicked', { + attrs: { + name: 'create_move', + type: 'object', + }, + record: this.record, + }); + }, +}); + +registry.add("deprec_lines_toggler", AccountAssetWidget); + +}); diff --git a/base_accounting_kit/static/src/js/account_dashboard.js b/base_accounting_kit/static/src/js/account_dashboard.js new file mode 100644 index 0000000..79f7b1a --- /dev/null +++ b/base_accounting_kit/static/src/js/account_dashboard.js @@ -0,0 +1,1844 @@ +odoo.define('AccountingDashboard.AccountingDashboard', function(require) { + 'use strict'; + var AbstractAction = require('web.AbstractAction'); + var ajax = require('web.ajax'); + var core = require('web.core'); + var rpc = require('web.rpc'); + var web_client = require('web.web_client'); + var _t = core._t; + var QWeb = core.qweb; + var self = this; + var currency; + var ActionMenu = AbstractAction.extend({ + + contentTemplate: 'Invoicedashboard', + + events: { + 'click .invoice_dashboard': 'onclick_dashboard', + 'click #prog_bar': 'onclick_prog_bar', + 'click #invoice_this_month': 'onclick_invoice_this_month', + 'click #invoice_this_year': 'onclick_invoice_this_year', + 'click #invoice_last_month': 'onclick_invoice_last_month', + 'click #invoice_last_year': 'onclick_invoice_last_year', + 'click #onclick_banks_balance': 'onclick_bank_balance', + 'click #income_this_month': 'onclick_income_this_month', + 'click #income_this_year': 'onclick_income_this_year', + 'click #income_last_month': 'onclick_income_last_month', + 'click #income_last_year': 'onclick_income_last_year', + 'click #total_aged_payable': 'onclick_total_aged_payable', + 'click #in_ex_bar_chart': 'onclick_in_ex_bar_chart', + 'click #aged_recevable_pie_chart': 'onclick_aged_recevable_pie_chart', + 'click #invoice_bar_chart': 'onclick_invoice_bar_chart', + 'click .overdue_line_cust': 'onclick_overdue_line_cust', + 'click .top_customers': 'onclick_top_customers', + 'click .top_customers_amount': 'onclick_top_customers_amount', + 'click #bank_balance_hide': 'onclick_bank_balance_hide', + 'click #cash_balance_hide': 'onclick_cash_balance_hide', + 'click #in_ex_hide': 'onclick_in_ex_hide', + 'click #aged_payable_hide': 'onclick_aged_payable_hide', + 'change #aged_receivable_values': function(e) { + e.stopPropagation(); + var $target = $(e.target); + var value = $target.val(); + // this.$('.aged_receivable_this_month').empty(); + this.onclick_aged_payable(this.$('#aged_receivable_values').val()); + }, + 'change #aged_payable_value': function(e) { + e.stopPropagation(); + var $target = $(e.target); + var value = $target.val(); + this.$('.aged_receivable_this_month').empty(); + this.onclick_aged_receivable(this.$('#aged_payable_value').val()); + }, + 'change #top_10_customer_value': function(e) { + e.stopPropagation(); + var $target = $(e.target); + var value = $target.val(); + this.$('.top_10_customers_this_month').empty(); + this.onclick_top_10_month(this.$('#top_10_customer_value').val()); + }, + 'change #toggle-two': 'onclick_toggle_two', + 'click #unreconciled_counts_this_year': 'unreconciled_year', + 'click #unreconciled_items_': 'unreconciled_month', + 'click #total_customer_invoice_paid_current_month': 'invoice_month_paid', + 'click #total_customer_invoice_current_month': 'invoice_month', + 'click #total_supplier_invoice_paid_current_month': 'bill_month_paid', + 'click #total_supplier_invoice_current_month': 'bill_month', + 'click #total_customer_invoice_paid_current_year': 'invoice_year_paid', + 'click #total_customer_invoice_current_year': 'invoice_year', + 'click #total_supplier_invoice_paid_current_year': 'bill_year_paid', + 'click #total_supplier_invoice_current_year': 'bill_year', + 'click #net_profit_current_year': 'profit_income_year', + 'click #net_profit_current_months': 'profit_income_month', + 'click #total_incomes_this_year': 'total_income_year', + 'click #total_incomes_': 'total_income_month', + 'click #total_expense_this_year': 'expense_year', + 'click #total_expenses_': 'expense_month', + }, + profit_income_year: function(ev) { + var posted = false; + var self = this; + rpc.query({ + model: "account.move", + method: "click_profit_income_year", + args: [posted], + }).then(function(result) { + self.do_action({ + res_model: 'account.move.line', + name: _t('Net Profit or Loss'), + views: [ + [false, 'list'], + [false, 'form'] + ], + type: 'ir.actions.act_window', + domain: [ + ['id', 'in', result] + ], + }); + }) + }, + profit_income_month: function(ev) { + var posted = false; + var self = this; + rpc.query({ + model: "account.move", + method: "click_profit_income_month", + args: [posted], + }).then(function(result) { + self.do_action({ + res_model: 'account.move.line', + name: _t('Net Profit or Loss'), + views: [ + [false, 'list'], + [false, 'form'] + ], + type: 'ir.actions.act_window', + domain: [ + ['id', 'in', result] + ], + }); + }) + }, + total_income_year: function(ev) { + var posted = false; + var self = this; + rpc.query({ + model: "account.move", + method: "click_total_income_year", + args: [posted], + }).then(function(result) { + self.do_action({ + res_model: 'account.move.line', + name: _t('Total Income'), + views: [ + [false, 'list'], + [false, 'form'] + ], + type: 'ir.actions.act_window', + domain: [ + ['id', 'in', result] + ], + }); + }) + }, + total_income_month: function(ev) { + var posted = false; + var self = this; + rpc.query({ + model: "account.move", + method: "click_total_income_month", + args: [posted], + }).then(function(result) { + self.do_action({ + res_model: 'account.move.line', + name: _t('Total Income'), + views: [ + [false, 'list'], + [false, 'form'] + ], + type: 'ir.actions.act_window', + domain: [ + ['id', 'in', result] + ], + }); + }) + }, + expense_year: function(ev) { + var posted = false; + var self = this; + rpc.query({ + model: "account.move", + method: "click_expense_year", + args: [posted], + }).then(function(result) { + self.do_action({ + res_model: 'account.move.line', + name: _t('Total Expenses'), + views: [ + [false, 'list'], + [false, 'form'] + ], + type: 'ir.actions.act_window', + domain: [ + ['id', 'in', result] + ], + }); + }) + }, + expense_month: function(ev) { + var posted = false; + var self = this; + rpc.query({ + model: "account.move", + method: "click_expense_month", + args: [posted], + }).then(function(result) { + self.do_action({ + res_model: 'account.move.line', + name: _t('Total Expenses'), + views: [ + [false, 'list'], + [false, 'form'] + ], + type: 'ir.actions.act_window', + domain: [ + ['id', 'in', result] + ], + }); + }) + }, + unreconciled_year: function(ev) { + var posted = false; + var self = this; + rpc.query({ + model: "account.move", + method: "click_unreconcile_year", + args: [posted], + }).then(function(result) { + self.do_action({ + res_model: 'account.move.line', + name: _t('Unreconciled'), + views: [ + [false, 'list'], + [false, 'form'] + ], + type: 'ir.actions.act_window', + domain: [ + ['id', 'in', result] + ], + }); + }) + }, + unreconciled_month: function(ev) { + var posted = false; + var self = this; + rpc.query({ + model: "account.move", + method: "click_unreconcile_month", + args: [posted], + }).then(function(result) { + self.do_action({ + res_model: 'account.move.line', + name: _t('Unreconciled'), + views: [ + [false, 'list'], + [false, 'form'] + ], + type: 'ir.actions.act_window', + domain: [ + ['id', 'in', result] + ], + }); + }) + }, + invoice_month_paid: function(ev) { + var posted = false; + if ($('#toggle-two')[0].checked == true) { + posted = "posted" + } + var self = this; + rpc.query({ + model: "account.move", + method: "click_invoice_month_paid", + args: [posted], + }).then(function(result) { + self.do_action({ + res_model: 'account.move', + name: _t('Paid'), + views: [ + [false, 'list'], + [false, 'form'] + ], + type: 'ir.actions.act_window', + domain: [ + ['id', 'in', result] + ], + }); + }) + }, + invoice_month: function(ev) { + var posted = false; + if ($('#toggle-two')[0].checked == true) { + posted = "posted" + } + var self = this; + rpc.query({ + model: "account.move", + method: "click_invoice_month", + args: [posted], + }).then(function(result) { + self.do_action({ + res_model: 'account.move', + name: _t('Invoice'), + views: [ + [false, 'list'], + [false, 'form'] + ], + type: 'ir.actions.act_window', + domain: [ + ['id', 'in', result] + ], + }); + }) + }, + bill_month_paid: function(ev) { + var posted = false; + if ($('#toggle-two')[0].checked == true) { + posted = "posted" + } + var self = this; + rpc.query({ + model: "account.move", + method: "click_bill_month_paid", + args: [posted], + }).then(function(result) { + self.do_action({ + res_model: 'account.move', + name: _t('Paid'), + views: [ + [false, 'list'], + [false, 'form'] + ], + type: 'ir.actions.act_window', + domain: [ + ['id', 'in', result] + ], + }); + }) + }, + bill_month: function(ev) { + var posted = false; + if ($('#toggle-two')[0].checked == true) { + posted = "posted" + } + var self = this; + rpc.query({ + model: "account.move", + method: "click_bill_month", + args: [posted], + }).then(function(result) { + self.do_action({ + res_model: 'account.move', + name: _t('Invoice'), + views: [ + [false, 'list'], + [false, 'form'] + ], + type: 'ir.actions.act_window', + domain: [ + ['id', 'in', result] + ], + }); + }) + }, + bill_year: function(ev) { + var posted = false; + if ($('#toggle-two')[0].checked == true) { + posted = "posted" + } + var self = this; + rpc.query({ + model: "account.move", + method: "click_bill_year", + args: [posted], + }).then(function(result) { + self.do_action({ + res_model: 'account.move', + name: _t('Invoice'), + views: [ + [false, 'list'], + [false, 'form'] + ], + type: 'ir.actions.act_window', + domain: [ + ['id', 'in', result] + ], + }); + }) + }, + bill_year_paid: function(ev) { + var posted = false; + if ($('#toggle-two')[0].checked == true) { + posted = "posted" + } + var self = this; + rpc.query({ + model: "account.move", + method: "click_bill_year_paid", + args: [posted], + }).then(function(result) { + self.do_action({ + res_model: 'account.move', + name: _t('Paid'), + views: [ + [false, 'list'], + [false, 'form'] + ], + type: 'ir.actions.act_window', + domain: [ + ['id', 'in', result] + ], + }); + }) + }, + invoice_year: function(ev) { + var posted = false; + if ($('#toggle-two')[0].checked == true) { + posted = "posted" + } + var self = this; + rpc.query({ + model: "account.move", + method: "click_invoice_year", + args: [posted], + }).then(function(result) { + self.do_action({ + res_model: 'account.move', + name: _t('Invoice'), + views: [ + [false, 'list'], + [false, 'form'] + ], + type: 'ir.actions.act_window', + domain: [ + ['id', 'in', result] + ], + }); + }) + }, + invoice_year_paid: function(ev) { + var posted = false; + if ($('#toggle-two')[0].checked == true) { + posted = "posted" + } + var self = this; + rpc.query({ + model: "account.move", + method: "click_invoice_year_paid", + args: [posted], + }).then(function(result) { + self.do_action({ + res_model: 'account.move', + name: _t('Paid'), + views: [ + [false, 'list'], + [false, 'form'] + ], + type: 'ir.actions.act_window', + domain: [ + ['id', 'in', result] + ], + }); + }) + }, + + onclick_toggle_two: function(ev) { + + this.onclick_aged_payable(this.$('#aged_receivable_values').val()); + + this.onclick_aged_receivable(this.$('#aged_payable_value').val()); + this.onclick_invoice_this_year(ev); + this.onclick_invoice_this_month(ev); + + this.onclick_income_this_month(ev); + this.onclick_income_last_month(ev); + this.onclick_income_last_year(ev); + this.onclick_income_this_year(ev); + }, + + onclick_top_10_month: function(f) { + var selected = $('.btn.btn-tool.income'); + var data = $(selected[0]).data(); + var posted = false; + var self = this; + var f = f; + if ($('#toggle-two')[0].checked == true) { + posted = "posted" + } + rpc.query({ + model: "account.move", + method: "get_currency", + }).then(function(result) { + currency = result; + }) + rpc.query({ + model: "account.move", + method: "get_top_10_customers_month", + args: [posted, f] + }) + .then(function(result) { + $('#top_10_customers').hide(); + $('#top_10_customers_last_month').hide(); + $('#top_10_customers_this_month').show(); + $('#top_10_customers_this_month').empty(); + + var due_count = 0; + _.forEach(result, function(x) { + due_count++; + var amount = self.format_currency(currency, x.amount); + $('#top_10_customers_this_month').append('<li><div id="line_' + x.parent + '" data-user-id="' + x.parent + '">' + x.customers + '</div>' + '<div id="line_' + x.parent + '" data-user-id="' + x.parent + '">' + amount + '</div>' + '</li>'); + $('#line_' + x.parent).on("click", function() { + self.do_action({ + res_model: 'res.partner', + name: _t('Partner'), + views: [ + [false, 'form'] + ], + type: 'ir.actions.act_window', + res_id: x.parent, + }); + }); + }); + + + }) + }, + + onclick_income_last_year: function(ev) { + ev.preventDefault(); + var selected = $('.btn.btn-tool.income'); + var data = $(selected[0]).data(); + var posted = false; + if ($('#toggle-two')[0].checked == true) { + posted = "posted" + } + rpc.query({ + model: 'account.move', + method: 'get_income_last_year', + args: [posted], + }) + .then(function(result) { + + $('#net_profit_current_months').hide(); + $('#net_profit_last_month').hide(); + $('#net_profit_last_year').show(); + $('#net_profit_this_year').hide(); + + var ctx = document.getElementById("canvas").getContext('2d'); + + // Define the data + var income = result.income; // Add data values to array + var expense = result.expense; + var profit = result.profit; + + var labels = result.month; // Add labels to array + // End Defining data + + // End Defining data + if (window.myCharts != undefined) + window.myCharts.destroy(); + window.myCharts = new Chart(ctx, { + //var myChart = new Chart(ctx, { + type: 'bar', + data: { + labels: labels, + datasets: [{ + label: 'Income', // Name the series + data: income, // Specify the data values array + backgroundColor: '#66aecf', + borderColor: '#66aecf', + + borderWidth: 1, // Specify bar border width + type: 'bar', // Set this data to a line chart + fill: false + }, + { + label: 'Expense', // Name the series + data: expense, // Specify the data values array + backgroundColor: '#6993d6', + borderColor: '#6993d6', + + borderWidth: 1, // Specify bar border width + type: 'bar', // Set this data to a line chart + fill: false + }, + { + label: 'Profit/Loss', // Name the series + data: profit, // Specify the data values array + backgroundColor: '#0bd465', + borderColor: '#0bd465', + + borderWidth: 1, // Specify bar border width + type: 'line', // Set this data to a line chart + fill: false + } + ] + }, + options: { + responsive: true, // Instruct chart js to respond nicely. + maintainAspectRatio: false, // Add to prevent default behaviour of full-width/height + } + }); + + }) + }, + + onclick_income_last_month: function(ev) { + ev.preventDefault(); + var selected = $('.btn.btn-tool.income'); + var data = $(selected[0]).data(); + var posted = false; + if ($('#toggle-two')[0].checked == true) { + posted = "posted" + } + rpc.query({ + model: 'account.move', + method: 'get_income_last_month', + args: [posted], + }) + .then(function(result) { + $('#net_profit_current_months').hide(); + $('#net_profit_last_month').show(); + $('#net_profit_this_year').hide(); + $('#net_profit_last_year').hide(); + + var ctx = document.getElementById("canvas").getContext('2d'); + + // Define the data + var income = result.income; // Add data values to array + var expense = result.expense; + var profit = result.profit; + + var labels = result.date; // Add labels to array + // End Defining data + + // End Defining data + if (window.myCharts != undefined) + window.myCharts.destroy(); + window.myCharts = new Chart(ctx, { + //var myChart = new Chart(ctx, { + type: 'bar', + data: { + labels: labels, + datasets: [{ + label: 'Income', // Name the series + data: income, // Specify the data values array + backgroundColor: '#66aecf', + borderColor: '#66aecf', + + borderWidth: 1, // Specify bar border width + type: 'bar', // Set this data to a line chart + fill: false + }, + { + label: 'Expense', // Name the series + data: expense, // Specify the data values array + backgroundColor: '#6993d6', + borderColor: '#6993d6', + + borderWidth: 1, // Specify bar border width + type: 'bar', // Set this data to a line chart + fill: false + }, + { + label: 'Profit/Loss', // Name the series + data: profit, // Specify the data values array + backgroundColor: '#0bd465', + borderColor: '#0bd465', + + borderWidth: 1, // Specify bar border width + type: 'line', // Set this data to a line chart + fill: false + } + ] + }, + options: { + responsive: true, // Instruct chart js to respond nicely. + maintainAspectRatio: false, // Add to prevent default behaviour of full-width/height + } + }); + + }) + }, + onclick_income_this_year: function(ev) { + ev.preventDefault(); + var selected = $('.btn.btn-tool.income'); + var data = $(selected[0]).data(); + var posted = false; + if ($('#toggle-two')[0].checked == true) { + posted = "posted" + } + + + rpc.query({ + model: 'account.move', + method: 'get_income_this_year', + args: [posted], + + }) + .then(function(result) { + + + $('#net_profit_current_months').hide(); + $('#net_profit_last_month').hide(); + $('#net_profit_last_year').hide(); + $('#net_profit_this_year').show(); + + var ctx = document.getElementById("canvas").getContext('2d'); + + // Define the data + var income = result.income; // Add data values to array + var expense = result.expense; + var profit = result.profit; + + var labels = result.month; // Add labels to array + + + if (window.myCharts != undefined) + window.myCharts.destroy(); + window.myCharts = new Chart(ctx, { + //var myChart = new Chart(ctx, { + type: 'bar', + data: { + labels: labels, + datasets: [{ + label: 'Income', // Name the series + data: income, // Specify the data values array + backgroundColor: '#66aecf', + borderColor: '#66aecf', + + borderWidth: 1, // Specify bar border width + type: 'bar', // Set this data to a line chart + fill: false + }, + { + label: 'Expense', // Name the series + data: expense, // Specify the data values array + backgroundColor: '#6993d6', + borderColor: '#6993d6', + + borderWidth: 1, // Specify bar border width + type: 'bar', // Set this data to a line chart + fill: false + }, + { + label: 'Profit/Loss', // Name the series + data: profit, // Specify the data values array + backgroundColor: '#0bd465', + borderColor: '#0bd465', + + borderWidth: 1, // Specify bar border width + type: 'line', // Set this data to a line chart + fill: false + } + ] + }, + options: { + responsive: true, // Instruct chart js to respond nicely. + maintainAspectRatio: false, // Add to prevent default behaviour of full-width/height + } + }); + + }) + }, + + + onclick_invoice_this_year: function(ev) { + ev.preventDefault(); + var selected = $('.btn.btn-tool.selected'); + var data = $(selected[0]).data(); + var posted = false; + var self = this; + if ($('#toggle-two')[0].checked == true) { + posted = "posted" + } + + rpc.query({ + model: "account.move", + method: "get_currency", + }).then(function(result) { + currency = result; + }) + + rpc.query({ + model: "account.move", + method: "get_total_invoice_current_year", + args: [posted], + }) + .then(function(result) { + + $('#total_supplier_invoice_paid').hide(); + $('#total_supplier_invoice').hide(); + $('#total_customer_invoice_paid').hide(); + $('#total_customer_invoice').hide(); + $('#tot_invoice').hide(); + $('#tot_supplier_inv').hide(); + + $('#total_supplier_invoice_paid_current_month').hide(); + $('#total_supplier_invoice_current_month').hide(); + $('#total_customer_invoice_paid_current_month').hide(); + $('#total_customer_invoice_current_month').hide(); + $('#tot_invoice_current_month').hide(); + $('#tot_supplier_inv_current_month').hide(); + + + $('#total_supplier_invoice_paid_current_year').empty(); + $('#total_supplier_invoice_current_year').empty(); + $('#total_customer_invoice_paid_current_year').empty(); + $('#total_customer_invoice_current_year').empty(); + $('#tot_invoice_current_year').empty(); + $('#tot_supplier_inv_current_year').empty(); + + $('#total_supplier_invoice_paid_current_year').show(); + $('#total_supplier_invoice_current_year').show(); + $('#total_customer_invoice_paid_current_year').show(); + $('#total_customer_invoice_current_year').show(); + $('#tot_invoice_current_year').show(); + $('#tot_supplier_inv_current_year').show(); + var tot_invoice_current_year = result[0][0] + var tot_credit_current_year = result[1][0] + var tot_supplier_inv_current_year = result[2][0] + var tot_supplier_refund_current_year = result[3][0] + var tot_customer_invoice_paid_current_year = result[4][0] + var tot_supplier_invoice_paid_current_year = result[5][0] + var tot_customer_credit_paid_current_year = result[6][0] + var tot_supplier_refund_paid_current_year = result[7][0] + var customer_invoice_total_current_year = (tot_invoice_current_year - tot_credit_current_year).toFixed(2) + var customer_invoice_paid_current_year = (tot_customer_invoice_paid_current_year - tot_customer_credit_paid_current_year).toFixed(2) + var invoice_percentage_current_year = ((customer_invoice_total_current_year / customer_invoice_paid_current_year) * 100).toFixed(2) + var supplier_invoice_total_current_year = (tot_supplier_inv_current_year - tot_supplier_refund_current_year).toFixed(2) + var supplier_invoice_paid_current_year = (tot_supplier_invoice_paid_current_year - tot_supplier_refund_paid_current_year).toFixed(2) + var supplier_percentage_current_year = ((supplier_invoice_total_current_year / supplier_invoice_paid_current_year) * 100).toFixed(2) + + $('#tot_supplier_inv_current_year').attr("value", supplier_invoice_paid_current_year); + $('#tot_supplier_inv_current_year').attr("max", supplier_invoice_total_current_year); + + $('#tot_invoice_current_year').attr("value", customer_invoice_paid_current_year); + $('#tot_invoice_current_year').attr("max", customer_invoice_total_current_year); + + customer_invoice_paid_current_year = self.format_currency(currency, customer_invoice_paid_current_year); + customer_invoice_total_current_year = self.format_currency(currency, customer_invoice_total_current_year); + supplier_invoice_paid_current_year = self.format_currency(currency, supplier_invoice_paid_current_year); + supplier_invoice_total_current_year = self.format_currency(currency, supplier_invoice_total_current_year); + + $('#total_customer_invoice_paid_current_year').append('<div class="logo">' + '<span>' + customer_invoice_paid_current_year + '</span><span>Total Paid<span></div>'); + $('#total_customer_invoice_current_year').append('<div" class="logo">' + '<span>' + customer_invoice_total_current_year + '</span><span>Total Invoice <span></div>'); + + $('#total_supplier_invoice_paid_current_year').append('<div" class="logo">' + '<span>' + supplier_invoice_paid_current_year + '</span><span>Total Paid<span></div>'); + $('#total_supplier_invoice_current_year').append('<div" class="logo">' + '<span>' + supplier_invoice_total_current_year + '</span><span>Total Invoice<span></div>'); + + }) + }, + onclick_invoice_this_month: function(ev) { + ev.preventDefault(); + var selected = $('.btn.btn-tool.selected'); + var data = $(selected[0]).data(); + var posted = false; + var self = this; + if ($('#toggle-two')[0].checked == true) { + posted = "posted" + } + rpc.query({ + model: "account.move", + method: "get_currency", + }).then(function(result) { + currency = result; + }) + rpc.query({ + model: "account.move", + method: "get_total_invoice_current_month", + args: [posted], + }) + .then(function(result) { + $('#total_supplier_invoice_paid').hide(); + $('#total_supplier_invoice').hide(); + $('#total_customer_invoice_paid').hide(); + $('#total_customer_invoice').hide(); + $('#tot_invoice').hide(); + $('#tot_supplier_inv').hide(); + $('#total_supplier_invoice_paid_current_month').empty(); + $('#total_supplier_invoice_current_month').empty(); + $('#total_customer_invoice_paid_current_month').empty(); + $('#total_customer_invoice_current_month').empty(); + $('#tot_invoice_current_month').empty(); + $('#tot_supplier_inv_current_month').empty(); + $('#total_supplier_invoice_paid_current_year').hide(); + $('#total_supplier_invoice_current_year').hide(); + $('#total_customer_invoice_paid_current_year').hide(); + $('#total_customer_invoice_current_year').hide(); + $('#tot_invoice_current_year').hide(); + $('#tot_supplier_inv_current_year').hide(); + $('#total_supplier_invoice_paid_current_month').show(); + $('#total_supplier_invoice_current_month').show(); + $('#total_customer_invoice_paid_current_month').show(); + $('#total_customer_invoice_current_month').show(); + $('#tot_invoice_current_month').show(); + $('#tot_supplier_inv_current_month').show(); + var tot_invoice_current_month = result[0][0] + var tot_credit_current_month = result[1][0] + var tot_supplier_inv_current_month = result[2][0] + var tot_supplier_refund_current_month = result[3][0] + var tot_customer_invoice_paid_current_month = result[4][0] + var tot_supplier_invoice_paid_current_month = result[5][0] + var tot_customer_credit_paid_current_month = result[6][0] + var tot_supplier_refund_paid_current_month = result[7][0] + var customer_invoice_total_current_month = (tot_invoice_current_month - tot_credit_current_month).toFixed(2) + var customer_invoice_paid_current_month = (tot_customer_invoice_paid_current_month - tot_customer_credit_paid_current_month).toFixed(2) + var invoice_percentage_current_month = ((customer_invoice_total_current_month / customer_invoice_paid_current_month) * 100).toFixed(2) + var supplier_invoice_total_current_month = (tot_supplier_inv_current_month - tot_supplier_refund_current_month).toFixed(2) + var supplier_invoice_paid_current_month = (tot_supplier_invoice_paid_current_month - tot_supplier_refund_paid_current_month).toFixed(2) + var supplier_percentage_current_month = ((supplier_invoice_total_current_month / supplier_invoice_paid_current_month) * 100).toFixed(2) + + $('#tot_supplier_inv_current_month').attr("value", supplier_invoice_paid_current_month); + $('#tot_supplier_inv_current_month').attr("max", supplier_invoice_total_current_month); + + $('#tot_invoice_current_month').attr("value", customer_invoice_paid_current_month); + $('#tot_invoice_current_month').attr("max", customer_invoice_total_current_month); + + customer_invoice_paid_current_month = self.format_currency(currency, customer_invoice_paid_current_month); + customer_invoice_total_current_month = self.format_currency(currency, customer_invoice_total_current_month); + supplier_invoice_paid_current_month = self.format_currency(currency, supplier_invoice_paid_current_month); + supplier_invoice_total_current_month = self.format_currency(currency, supplier_invoice_total_current_month); + + + $('#total_customer_invoice_paid_current_month').append('<div class="logo">' + '<span>' + customer_invoice_paid_current_month + '</span><span>Total Paid<span></div>'); + $('#total_customer_invoice_current_month').append('<div" class="logo">' + '<span>' + customer_invoice_total_current_month + '</span><span>Total Invoice<span></div>'); + + $('#total_supplier_invoice_paid_current_month').append('<div" class="logo">' + '<span>' + supplier_invoice_paid_current_month + '</span><span>Total Paid<span></div>'); + $('#total_supplier_invoice_current_month').append('<div" class="logo">' + '<span>' + supplier_invoice_total_current_month + '</span><span>Total Invoice<span></div>'); + + }) + }, + + onclick_income_this_month: function(ev) { + ev.preventDefault(); + var selected = $('.btn.btn-tool.income'); + var data = $(selected[0]).data(); + var posted = false; + if ($('#toggle-two')[0].checked == true) { + posted = "posted" + } + rpc.query({ + model: 'account.move', + method: 'get_income_this_month', + args: [posted], + + }) + .then(function(result) { + + + var ctx = document.getElementById("canvas").getContext('2d'); + + // Define the data + var income = result.income; // Add data values to array + var expense = result.expense; + var profit = result.profit; + + var labels = result.date; // Add labels to array + // End Defining data + + // End Defining data + if (window.myCharts != undefined) + window.myCharts.destroy(); + window.myCharts = new Chart(ctx, { + //var myChart = new Chart(ctx, { + type: 'bar', + data: { + labels: labels, + datasets: [{ + label: 'Income', // Name the series + data: income, // Specify the data values array + backgroundColor: '#66aecf', + borderColor: '#66aecf', + + borderWidth: 1, // Specify bar border width + type: 'bar', // Set this data to a line chart + fill: false + }, + { + label: 'Expense', // Name the series + data: expense, // Specify the data values array + backgroundColor: '#6993d6', + borderColor: '#6993d6', + + borderWidth: 1, // Specify bar border width + type: 'bar', // Set this data to a line chart + fill: false + }, + { + label: 'Profit/Loss', // Name the series + data: profit, // Specify the data values array + backgroundColor: '#0bd465', + borderColor: '#0bd465', + + borderWidth: 1, // Specify bar border width + type: 'line', // Set this data to a line chart + fill: false + } + ] + }, + options: { + responsive: true, // Instruct chart js to respond nicely. + maintainAspectRatio: false, // Add to prevent default behaviour of full-width/height + } + }); + + }) + }, + + onclick_aged_payable: function(f) { + + // ev.preventDefault(); + var arg = f; + var selected = $('.btn.btn-tool.expense'); + var data = $(selected[0]).data(); + var posted = false; + if ($('#toggle-two')[0].checked == true) { + posted = "posted" + } + rpc.query({ + model: 'account.move', + method: 'get_overdues_this_month_and_year', + args: [posted, f], + }) + .then(function(result) { + // Doughnut Chart + $(document).ready(function() { + var options = { + // legend: false, + responsive: false + }; + if (window.donut != undefined) + window.donut.destroy(); + + + window.donut = new Chart($("#canvas1"), { + type: 'doughnut', + tooltipFillColor: "rgba(51, 51, 51, 0.55)", + data: { + labels: result.due_partner, + datasets: [{ + data: result.due_amount, + backgroundColor: [ + '#66aecf ', '#6993d6 ', '#666fcf', '#7c66cf', '#9c66cf', + '#bc66cf ', '#b75fcc', ' #cb5fbf ', ' #cc5f7f ', ' #cc6260', + '#cc815f', '#cca15f ', '#ccc25f', '#b9cf66', '#99cf66', + ' #75cb5f ', '#60cc6c', '#804D8000', '#80B33300', '#80CC80CC', '#f2552c', '#00cccc', + '#1f2e2e', '#993333', '#00cca3', '#1a1a00', '#3399ff', + '#8066664D', '#80991AFF', '#808E666FF', '#804DB3FF', '#801AB399', + '#80E666B3', '#8033991A', '#80CC9999', '#80B3B31A', '#8000E680', + '#804D8066', '#80809980', '#80E6FF80', '#801AFF33', '#80999933', + '#80FF3380', '#80CCCC00', '#8066E64D', '#804D80CC', '#809900B3', + '#80E64D66', '#804DB380', '#80FF4D4D', '#8099E6E6', '#806666FF' + ], + hoverBackgroundColor: [ + '#66aecf ', '#6993d6 ', '#666fcf', '#7c66cf', '#9c66cf', + '#bc66cf ', '#b75fcc', ' #cb5fbf ', ' #cc5f7f ', ' #cc6260', + '#cc815f', '#cca15f ', '#ccc25f', '#b9cf66', '#99cf66', + ' #75cb5f ', '#60cc6c', '#804D8000', '#80B33300', '#80CC80CC', '#f2552c', '#00cccc', + '#1f2e2e', '#993333', '#00cca3', '#1a1a00', '#3399ff', + '#8066664D', '#80991AFF', '#808E666FF', '#804DB3FF', '#801AB399', + '#80E666B3', '#8033991A', '#80CC9999', '#80B3B31A', '#8000E680', + '#804D8066', '#80809980', '#80E6FF80', '#801AFF33', '#80999933', + '#80FF3380', '#80CCCC00', '#8066E64D', '#804D80CC', '#809900B3', + '#80E64D66', '#804DB380', '#80FF4D4D', '#8099E6E6', '#806666FF' + ] + }] + }, + options: { + responsive: false + } + }); + }); + // Doughnut Chart + + }) + }, + + + onclick_aged_receivable: function(f) { + var selected = $('.btn.btn-tool.expense'); + var data = $(selected[0]).data(); + var posted = false; + var f = f + if ($('#toggle-two')[0].checked == true) { + posted = "posted" + } + rpc.query({ + model: 'account.move', + method: 'get_latebillss', + args: [posted, f], + + }) + .then(function(result) { + function myFunction() { + document.getElementByClass("btn btn-tool dropdown-toggle").text + document.getElementById("aged_receivable_this_month").text + } + + $(document).ready(function() { + var options = { + // legend: false, + responsive: true, + legend: { + position: 'bottom' + } + }; + + + if (window.donuts != undefined) + window.donuts.destroy(); + + + window.donuts = new Chart($("#horizontalbarChart"), { + type: 'doughnut', + tooltipFillColor: "rgba(51, 51, 51, 0.55)", + data: { + labels: result.bill_partner, + datasets: [{ + data: result.bill_amount, + backgroundColor: [ + '#66aecf ', '#6993d6 ', '#666fcf', '#7c66cf', '#9c66cf', + '#bc66cf ', '#b75fcc', ' #cb5fbf ', ' #cc5f7f ', ' #cc6260', + '#cc815f', '#cca15f ', '#ccc25f', '#b9cf66', '#99cf66', + ' #75cb5f ', '#60cc6c', '#804D8000', '#80B33300', '#80CC80CC', '#f2552c', '#00cccc', + '#1f2e2e', '#993333', '#00cca3', '#1a1a00', '#3399ff', + '#8066664D', '#80991AFF', '#808E666FF', '#804DB3FF', '#801AB399', + '#80E666B3', '#8033991A', '#80CC9999', '#80B3B31A', '#8000E680', + '#804D8066', '#80809980', '#80E6FF80', '#801AFF33', '#80999933', + '#80FF3380', '#80CCCC00', '#8066E64D', '#804D80CC', '#809900B3', + '#80E64D66', '#804DB380', '#80FF4D4D', '#8099E6E6', '#806666FF' + ], + hoverBackgroundColor: [ + '#66aecf ', '#6993d6 ', '#666fcf', '#7c66cf', '#9c66cf', + '#bc66cf ', '#b75fcc', ' #cb5fbf ', ' #cc5f7f ', ' #cc6260', + '#cc815f', '#cca15f ', '#ccc25f', '#b9cf66', '#99cf66', + ' #75cb5f ', '#60cc6c', '#804D8000', '#80B33300', '#80CC80CC', '#f2552c', '#00cccc', + '#1f2e2e', '#993333', '#00cca3', '#1a1a00', '#3399ff', + '#8066664D', '#80991AFF', '#808E666FF', '#804DB3FF', '#801AB399', + '#80E666B3', '#8033991A', '#80CC9999', '#80B3B31A', '#8000E680', + '#804D8066', '#80809980', '#80E6FF80', '#801AFF33', '#80999933', + '#80FF3380', '#80CCCC00', '#8066E64D', '#804D80CC', '#809900B3', + '#80E64D66', '#804DB380', '#80FF4D4D', '#8099E6E6', '#806666FF' + ] + }] + }, + options: { + responsive: false + } + }); + }); + + + }) + }, + + renderElement: function(ev) { + var self = this; + $.when(this._super()) + .then(function(ev) { + + + $('#toggle-two').bootstrapToggle({ + on: 'View All Entries', + off: 'View Posted Entries' + }); + + + var posted = false; + if ($('#toggle-two')[0].checked == true) { + posted = "posted" + } + + + rpc.query({ + model: "account.move", + method: "get_currency", + }) + .then(function(result) { + currency = result; + + }) + + + rpc.query({ + model: "account.move", + method: "get_income_this_month", + args: [posted], + }) + .then(function(result) { + + + var ctx = document.getElementById("canvas").getContext('2d'); + + // Define the data + var income = result.income; // Add data values to array + var expense = result.expense; + var profit = result.profit; + + var labels = result.date; // Add labels to array + // End Defining data + + // End Defining data + if (window.myCharts != undefined) + window.myCharts.destroy(); + window.myCharts = new Chart(ctx, { + //var myChart = new Chart(ctx, { + type: 'bar', + data: { + labels: labels, + datasets: [{ + label: 'Income', // Name the series + data: income, // Specify the data values array + backgroundColor: '#66aecf', + borderColor: '#66aecf', + + borderWidth: 1, // Specify bar border width + type: 'bar', // Set this data to a line chart + fill: false + }, + { + label: 'Expense', // Name the series + data: expense, // Specify the data values array + backgroundColor: '#6993d6', + borderColor: '#6993d6', + + borderWidth: 1, // Specify bar border width + type: 'bar', // Set this data to a line chart + fill: false + }, + { + label: 'Profit/Loss', // Name the series + data: profit, // Specify the data values array + backgroundColor: '#0bd465', + borderColor: '#0bd465', + + borderWidth: 1, // Specify bar border width + type: 'line', // Set this data to a line chart + fill: false + } + ] + }, + options: { + responsive: true, // Instruct chart js to respond nicely. + maintainAspectRatio: false, // Add to prevent default behaviour of full-width/height + } + }); + + }) + var arg = 'this_month'; + rpc.query({ + model: 'account.move', + method: 'get_overdues_this_month_and_year', + args: [posted, arg], + }).then(function(result) { + + // + }) + var arg = 'this_month'; + rpc.query({ + model: 'account.move', + method: 'get_overdues_this_month_and_year', + args: [posted, arg], + }) + .then(function(result) { + // Doughnut Chart + $(document).ready(function() { + var options = { + // legend: false, + responsive: true, + legend: { + position: 'bottom' + } + }; + if (window.donut != undefined) + window.donut.destroy(); + window.donut = new Chart($("#canvas1"), { + type: 'doughnut', + tooltipFillColor: "rgba(51, 51, 51, 0.55)", + data: { + labels: result.due_partner, + datasets: [{ + data: result.due_amount, + backgroundColor: [ + '#66aecf ', '#6993d6 ', '#666fcf', '#7c66cf', '#9c66cf', + '#bc66cf ', '#b75fcc', ' #cb5fbf ', ' #cc5f7f ', ' #cc6260', + '#cc815f', '#cca15f ', '#ccc25f', '#b9cf66', '#99cf66', + ' #75cb5f ', '#60cc6c', '#804D8000', '#80B33300', '#80CC80CC', '#f2552c', '#00cccc', + '#1f2e2e', '#993333', '#00cca3', '#1a1a00', '#3399ff', + '#8066664D', '#80991AFF', '#808E666FF', '#804DB3FF', '#801AB399', + '#80E666B3', '#8033991A', '#80CC9999', '#80B3B31A', '#8000E680', + '#804D8066', '#80809980', '#80E6FF80', '#801AFF33', '#80999933', + '#80FF3380', '#80CCCC00', '#8066E64D', '#804D80CC', '#809900B3', + '#80E64D66', '#804DB380', '#80FF4D4D', '#8099E6E6', '#806666FF' + ], + hoverBackgroundColor: [ + '#66aecf ', '#6993d6 ', '#666fcf', '#7c66cf', '#9c66cf', + '#bc66cf ', '#b75fcc', ' #cb5fbf ', ' #cc5f7f ', ' #cc6260', + '#cc815f', '#cca15f ', '#ccc25f', '#b9cf66', '#99cf66', + ' #75cb5f ', '#60cc6c', '#804D8000', '#80B33300', '#80CC80CC', '#f2552c', '#00cccc', + '#1f2e2e', '#993333', '#00cca3', '#1a1a00', '#3399ff', + '#8066664D', '#80991AFF', '#808E666FF', '#804DB3FF', '#801AB399', + '#80E666B3', '#8033991A', '#80CC9999', '#80B3B31A', '#8000E680', + '#804D8066', '#80809980', '#80E6FF80', '#801AFF33', '#80999933', + '#80FF3380', '#80CCCC00', '#8066E64D', '#804D80CC', '#809900B3', + '#80E64D66', '#804DB380', '#80FF4D4D', '#8099E6E6', '#806666FF' + ] + }] + }, + options: { + responsive: false + } + }); + }); + }) + rpc.query({ + model: "account.move", + method: "get_total_invoice_current_month", + args: [posted], + }).then(function(result) { + + $('#total_supplier_invoice_paid').hide(); + $('#total_supplier_invoice').hide(); + $('#total_customer_invoice_paid').hide(); + $('#total_customer_invoice').hide(); + $('#tot_invoice').hide(); + $('#tot_supplier_inv').hide(); + + $('#total_supplier_invoice_paid_current_month').empty(); + $('#total_supplier_invoice_current_month').empty(); + $('#total_customer_invoice_paid_current_month').empty(); + $('#total_customer_invoice_current_month').empty(); + $('#tot_invoice_current_month').empty(); + $('#tot_supplier_inv_current_month').empty(); + + $('#total_supplier_invoice_paid_current_year').hide(); + $('#total_supplier_invoice_current_year').hide(); + $('#total_customer_invoice_paid_current_year').hide(); + $('#total_customer_invoice_current_year').hide(); + $('#tot_invoice_current_year').hide(); + $('#tot_supplier_inv_current_year').hide(); + + + $('#total_supplier_invoice_paid_current_month').show(); + $('#total_supplier_invoice_current_month').show(); + $('#total_customer_invoice_paid_current_month').show(); + $('#total_customer_invoice_current_month').show(); + $('#tot_invoice_current_month').show(); + $('#tot_supplier_inv_current_month').show(); + + + var tot_invoice_current_month = result[0][0] + var tot_credit_current_month = result[1][0] + var tot_supplier_inv_current_month = result[2][0] + var tot_supplier_refund_current_month = result[3][0] + var tot_customer_invoice_paid_current_month = result[4][0] + var tot_supplier_invoice_paid_current_month = result[5][0] + var tot_customer_credit_paid_current_month = result[6][0] + var tot_supplier_refund_paid_current_month = result[7][0] + var customer_invoice_total_current_month = (tot_invoice_current_month - tot_credit_current_month).toFixed(2) + var customer_invoice_paid_current_month = (tot_customer_invoice_paid_current_month - tot_customer_credit_paid_current_month).toFixed(2) + var invoice_percentage_current_month = ((customer_invoice_total_current_month / customer_invoice_paid_current_month) * 100).toFixed(2) + var supplier_invoice_total_current_month = (tot_supplier_inv_current_month - tot_supplier_refund_current_month).toFixed(2) + var supplier_invoice_paid_current_month = (tot_supplier_invoice_paid_current_month - tot_supplier_refund_paid_current_month).toFixed(2) + var supplier_percentage_current_month = ((supplier_invoice_total_current_month / supplier_invoice_paid_current_month) * 100).toFixed(2) + + $('#tot_supplier_inv_current_month').attr("value", supplier_invoice_paid_current_month); + $('#tot_supplier_inv_current_month').attr("max", supplier_invoice_total_current_month); + + $('#tot_invoice_current_month').attr("value", customer_invoice_paid_current_month); + $('#tot_invoice_current_month').attr("max", customer_invoice_total_current_month); + currency = result[8] + customer_invoice_paid_current_month = self.format_currency(currency, customer_invoice_paid_current_month); + customer_invoice_total_current_month = self.format_currency(currency, customer_invoice_total_current_month); + supplier_invoice_paid_current_month = self.format_currency(currency, supplier_invoice_paid_current_month); + supplier_invoice_total_current_month = self.format_currency(currency, supplier_invoice_total_current_month); + + $('#total_customer_invoice_paid_current_month').append('<div class="logo">' + '<span>' + customer_invoice_paid_current_month + '</span><span>Total Paid<span></div>'); + $('#total_customer_invoice_current_month').append('<div" class="logo">' + '<span>' + customer_invoice_total_current_month + '</span><span>Total Invoice<span></div>'); + + $('#total_supplier_invoice_paid_current_month').append('<div" class="logo">' + '<span>' + supplier_invoice_paid_current_month + '</span><span>Total Paid<span></div>'); + $('#total_supplier_invoice_current_month').append('<div" class="logo">' + '<span>' + supplier_invoice_total_current_month + '</span><span>Total Invoice<span></div>'); + + }) + var arg = 'last_month' + rpc.query({ + model: 'account.move', + method: 'get_latebillss', + args: [posted, arg], + }) + .then(function(result) { + + $(document).ready(function() { + var options = { + // legend: false, + responsive: true, + legend: { + position: 'bottom' + } + }; + if (window.donuts != undefined) + window.donuts.destroy(); + window.donuts = new Chart($("#horizontalbarChart"), { + type: 'doughnut', + tooltipFillColor: "rgba(51, 51, 51, 0.55)", + data: { + labels: result.bill_partner, + datasets: [{ + data: result.bill_amount, + backgroundColor: [ + '#66aecf ', '#6993d6 ', '#666fcf', '#7c66cf', '#9c66cf', + '#bc66cf ', '#b75fcc', ' #cb5fbf ', ' #cc5f7f ', ' #cc6260', + '#cc815f', '#cca15f ', '#ccc25f', '#b9cf66', '#99cf66', + ' #75cb5f ', '#60cc6c', '#804D8000', '#80B33300', '#80CC80CC', '#f2552c', '#00cccc', + '#1f2e2e', '#993333', '#00cca3', '#1a1a00', '#3399ff', + '#8066664D', '#80991AFF', '#808E666FF', '#804DB3FF', '#801AB399', + '#80E666B3', '#8033991A', '#80CC9999', '#80B3B31A', '#8000E680', + '#804D8066', '#80809980', '#80E6FF80', '#801AFF33', '#80999933', + '#80FF3380', '#80CCCC00', '#8066E64D', '#804D80CC', '#809900B3', + '#80E64D66', '#804DB380', '#80FF4D4D', '#8099E6E6', '#806666FF' + ], + hoverBackgroundColor: [ + '#66aecf ', '#6993d6 ', '#666fcf', '#7c66cf', '#9c66cf', + '#bc66cf ', '#b75fcc', ' #cb5fbf ', ' #cc5f7f ', ' #cc6260', + '#cc815f', '#cca15f ', '#ccc25f', '#b9cf66', '#99cf66', + ' #75cb5f ', '#60cc6c', '#804D8000', '#80B33300', '#80CC80CC', '#f2552c', '#00cccc', + '#1f2e2e', '#993333', '#00cca3', '#1a1a00', '#3399ff', + '#8066664D', '#80991AFF', '#808E666FF', '#804DB3FF', '#801AB399', + '#80E666B3', '#8033991A', '#80CC9999', '#80B3B31A', '#8000E680', + '#804D8066', '#80809980', '#80E6FF80', '#801AFF33', '#80999933', + '#80FF3380', '#80CCCC00', '#8066E64D', '#804D80CC', '#809900B3', + '#80E64D66', '#804DB380', '#80FF4D4D', '#8099E6E6', '#806666FF' + ] + }] + }, + options: { + responsive: false + } + }); + }); + }) + rpc.query({ + model: "account.move", + method: "get_overdues", + + }).then(function(result) { + var due_count = 0; + _.forEach(result, function(x) { + due_count++; + $('#overdues').append('<li><a class="overdue_line_cust" href="#" id="line_' + x.parent + '" data-user-id="' + x.parent + '">' + x.due_partner + '</a>' + ' ' + '<span>' + x.due_amount + ' ' + currency + '</span>' + '</li>'); + + // $('#overdues_amounts').append('<li><a class="overdue_line_cust" href="#" id="line_' + x.parent + '" data-user-id="' + x.parent + '">' + x.amount + '</a>' + '<span>'+' '+currency+ '</span>' + '</li>' ); + + }); + + $('#due_count').append('<span class="badge badge-danger">' + due_count + ' Due(s)</span>'); + }) + var f = 'this_month' + rpc.query({ + model: "account.move", + method: "get_top_10_customers_month", + args: [posted, f] + }).then(function(result) { + var due_count = 0; + var amount; + $('#top_10_customers_this_month').empty(); + + _.forEach(result, function(x) { + $('#top_10_customers_this_month').show(); + due_count++; + amount = self.format_currency(currency, x.amount); + $('#top_10_customers_this_month').append('<li><div id="line_' + x.parent + '" data-user-id="' + x.parent + '">' + x.customers + '</div>' + '<div id="line_' + x.parent + '" data-user-id="' + x.parent + '">' + amount + '</div>' + '</li>'); + $('#line_' + x.parent).on("click", function() { + self.do_action({ + res_model: 'res.partner', + name: _t('Partner'), + views: [ + [false, 'form'] + ], + type: 'ir.actions.act_window', + res_id: x.parent, + }); + }); + + }); + }) + rpc.query({ + model: "account.move", + method: "bank_balance", + args: [posted] + }) + .then(function(result) { + var banks = result['banks']; + var amount; + var balance = result['banking']; + var bnk_ids = result['bank_ids']; + for (var k = 0; k < banks.length; k++) { + amount = self.format_currency(currency, balance[k]); + // $('#charts').append('<li><a ' + banks[k] + '" data-user-id="' + banks[k] + '">' + banks[k] + '</a>'+ ' ' + '<span>'+ balance[k] +'</span>' + '</li>' ); + $('#current_bank_balance').empty() + + $('#current_bank_balance').append('<li><div val="' + bnk_ids[k] + '"id="b_' + bnk_ids[k] + '">' + banks[k] + '</div><div>' + amount + '</div></li>'); + // $('#current_bank_balance').append('<li>' + banks[k] +' '+ balance[k] + '</li>' ); + $('#drop_charts_balance').append('<li>' + balance[k].toFixed(2) + '</li>'); + $('#b_' + bnk_ids[k]).on("click", function(ev) { + self.do_action({ + res_model: 'account.account', + name: _t('Account'), + views: [ + [false, 'form'] + ], + type: 'ir.actions.act_window', + res_id: parseInt(this.id.replace('b_', '')), + }); + }); + } + }) + + rpc.query({ + model: "account.move", + method: "get_latebills", + + }).then(function(result) { + var late_count = 0; + + _.forEach(result, function(x) { + late_count++; + $('#latebills').append('<li><a class="overdue_line_cust" href="#" id="line_' + x.parent + '" data-user-id="' + x.parent + '">' + x.partner + '<span>' + x.amount + ' ' + currency + '</span>' + '</a>' + '</li>'); + }); + $('#late_count').append('<span class="badge badge-danger">' + late_count + ' Late(s)</span>'); + }) + rpc.query({ + model: "account.move", + method: "get_total_invoice", + }) + .then(function(result) { + var total_invoice = result[0].sum; + total_invoice = total_invoice + $('#total_invoice').append('<span>' + total_invoice + ' ' + currency + '</span> ') + }) + rpc.query({ + model: "account.move", + method: "get_total_invoice_this_month", + args: [posted], + }) + .then(function(result) { + var invoice_this_month = result[0].sum; + if (invoice_this_month) { + var total_invoices_this_month = invoice_this_month.toFixed(2) + $('#total_invoices_').append('<span>' + total_invoices_this_month + ' ' + currency + '</span> <div class="title">This month</div>') + } + }) + + rpc.query({ + model: "account.move", + method: "get_total_invoice_last_month", + }) + .then(function(result) { + var invoice_last_month = result[0].sum; + var total_invoices_last_month = invoice_last_month + $('#total_invoices_last').append('<span>' + total_invoices_last_month + ' ' + currency + '</span><div class="title">Last month</div>') + }) + + rpc.query({ + model: "account.move", + method: "unreconcile_items" + }) + .then(function(result) { + + var unreconciled_count = result[0].count; + $('#unreconciled_items').append('<span>' + unreconciled_count + ' Item(s)</a></span> ') + }) + rpc.query({ + model: "account.move", + method: "unreconcile_items_this_month", + args: [posted], + }) + .then(function(result) { + var unreconciled_counts_ = result[0].count; + $('#unreconciled_items_').empty() + + $('#unreconciled_items_').append('<span>' + unreconciled_counts_ + ' Item(s)</span><div class="title">This month</div>') + }) + rpc.query({ + model: "account.move", + method: "unreconcile_items_this_year", + args: [posted], + }) + .then(function(result) { + + var unreconciled_counts_this_year = result[0].count; + $('#unreconciled_counts_this_year').empty() + + $('#unreconciled_counts_this_year').append('<span>' + unreconciled_counts_this_year + ' Item(s)</span><div class="title">This Year</div>') + // $('#unreconciled_counts_this_year').append('<span style= "color:#455e7b;">' + unreconciled_counts_this_year + ' Item(s)</span><div class="title">This Year</div>') + }) + + rpc.query({ + model: "account.move", + method: "unreconcile_items_last_year" + }) + .then(function(result) { + var unreconciled_counts_last_year = result[0].count; + $('#unreconciled_counts_last_year').empty() + + $('#unreconciled_counts_last_year').append('<span>' + unreconciled_counts_last_year + ' Item(s)</span><div class="title">Last Year</div>') + + }) + rpc.query({ + model: "account.move", + method: "month_income" + }) + .then(function(result) { + var income = result[0].debit - result[0].credit; + income = -income; + income = self.format_currency(currency, income); + $('#total_income').append('<span>' + income + '</span>') + }) + rpc.query({ + model: "account.move", + method: "month_income_this_month", + args: [posted], + }) + .then(function(result) { + var incomes_ = result[0].debit - result[0].credit; + if (incomes_) { + incomes_ = -incomes_; + incomes_ = self.format_currency(currency, incomes_); + $('#total_incomes_').empty() + + $('#total_incomes_').append('<span>' + incomes_ + '</span><div class="title">This month</div>') + + } else { + incomes_ = -incomes_; + incomes_ = self.format_currency(currency, incomes_); + $('#total_incomes_').empty() + + $('#total_incomes_').append('<span>' + incomes_ + '</span><div class="title">This month</div>') + } + }) + + rpc.query({ + model: "account.move", + method: "month_income_last_month" + }) + .then(function(result) { + var incomes_last = result[0].debit - result[0].credit; + incomes_last = -incomes_last; + incomes_last = self.format_currency(currency, incomes_last); + $('#total_incomes_last').append('<span>' + incomes_last + '</span><div class="title">Last month</div>') + }) + + rpc.query({ + model: "account.move", + method: "month_expense" + }) + .then(function(result) { + var expense = result[0].debit - result[0].credit; + var expenses = expense; + expenses = self.format_currency(currency, expenses); + + $('#total_expense').append('<span>' + expenses + '</span>') + }) + rpc.query({ + model: "account.move", + method: "month_expense_this_month", + args: [posted], + }).then(function(result) { + var expense_this_month = result[0].debit - result[0].credit; + if (expense_this_month) { + + var expenses_this_month_ = expense_this_month; + expenses_this_month_ = self.format_currency(currency, expenses_this_month_); + $('#total_expenses_').empty() + + $('#total_expenses_').append('<span>' + expenses_this_month_ + '</span><div class="title">This month</div>') + } else { + var expenses_this_month_ = expense_this_month; + expenses_this_month_ = self.format_currency(currency, expenses_this_month_); + $('#total_expenses_').empty() + + $('#total_expenses_').append('<span>' + expenses_this_month_ + '</span><div class="title">This month</div>') + + } + }) + rpc.query({ + model: "account.move", + method: "month_expense_this_year", + args: [posted], + }).then(function(result) { + var expense_this_year = result[0].debit - result[0].credit; + if (expense_this_year) { + + var expenses_this_year_ = expense_this_year; + expenses_this_year_ = self.format_currency(currency, expenses_this_year_); + $('#total_expense_this_year').empty(); + + $('#total_expense_this_year').append('<span >' + expenses_this_year_ + '</span><div class="title">This Year</div>') + } else { + var expenses_this_year_ = expense_this_year; + expenses_this_year_ = self.format_currency(currency, expenses_this_year_); + $('#total_expense_this_year').empty(); + + $('#total_expense_this_year').append('<span >' + expenses_this_year_ + '</span><div class="title">This Year</div>') + } + }) + rpc.query({ + model: "account.move", + method: "month_income_last_year" + }) + .then(function(result) { + var incomes_last_year = result[0].debit - result[0].credit; + incomes_last_year = -incomes_last_year + incomes_last_year = self.format_currency(currency, incomes_last_year); + $('#total_incomes_last_year').empty(); + + $('#total_incomes_last_year').append('<span>' + incomes_last_year + '</span><div class="title">Last Year</div>') + }) + rpc.query({ + model: "account.move", + method: "month_income_this_year", + args: [posted], + }) + .then(function(result) { + var incomes_this_year = result[0].debit - result[0].credit; + if (incomes_this_year) { + incomes_this_year = -incomes_this_year; + incomes_this_year = self.format_currency(currency, incomes_this_year); + $('#total_incomes_this_year').empty(); + + $('#total_incomes_this_year').append('<span>' + incomes_this_year + '</span><div class="title">This Year</div>') + } else { + incomes_this_year = -incomes_this_year; + incomes_this_year = self.format_currency(currency, incomes_this_year); + $('#total_incomes_this_year').empty(); + + $('#total_incomes_this_year').append('<span>' + incomes_this_year + '</span><div class="title">This Year</div>') + } + + }) + + rpc.query({ + model: "account.move", + method: "profit_income_this_month", + args: [posted], + }).then(function(result) { + var net_profit = true + if (result[1] == undefined) { + result[1] = 0; + if ((result[0]) > (result[1])) { + net_profit = result[1] - result[0] + } + + } + + if (result[0] == undefined) { + + result[0] = 0; + } + + if ((-result[1]) > (result[0])) { + net_profit = -result[1] - result[0] + } else if ((result[1]) > (result[0])) { + net_profit = -result[1] - result[0] + } else { + net_profit = -result[1] - result[0] + } + var profit_this_months = net_profit; + if (profit_this_months) { + var net_profit_this_months = profit_this_months; + net_profit_this_months = self.format_currency(currency, net_profit_this_months); + $('#net_profit_current_months').empty(); + // $('#net_profit_current_months').append('<div class="title">Net Profit/Loss </div><span>' + net_profit_this_months + '</span>') + $('#net_profit_current_months').append('<span>' + net_profit_this_months + '</span> <div class="title">This Month</div>') + + } else { + var net_profit_this_months = profit_this_months; + net_profit_this_months = self.format_currency(currency, net_profit_this_months); + $('#net_profit_current_months').empty(); + // $('#net_profit_current_months').append('<div class="title">Net Profit/Loss </div><span>' + net_profit_this_months + '</span>') + $('#net_profit_current_months').append('<span>' + net_profit_this_months + '</span> <div class="title">This Month</div>') + } + }) + + rpc.query({ + model: "account.move", + method: "profit_income_this_year", + args: [posted], + }) + .then(function(result) { + var net_profit = true + + + if (result[1] == undefined) { + result[1] = 0; + if ((result[0]) > (result[1])) { + net_profit = result[1] - result[0] + } + + } + + if (result[0] == undefined) { + + result[0] = 0; + } + + if ((-result[1]) > (result[0])) { + net_profit = -result[1] - result[0] + } else if ((result[1]) > (result[0])) { + net_profit = -result[1] - result[0] + } else { + net_profit = -result[1] - result[0] + } + var profit_this_year = net_profit; + if (profit_this_year) { + var net_profit_this_year = profit_this_year; + net_profit_this_year = self.format_currency(currency, net_profit_this_year); + $('#net_profit_current_year').empty(); + // $('#net_profit_this_year').append('<div class="title">Net Profit/Loss </div><span>' + net_profit_this_year + '</span>') + $('#net_profit_current_year').append('<span>' + net_profit_this_year + '</span> <div class="title">This Year</div>') + } else { + var net_profit_this_year = profit_this_year; + net_profit_this_year = self.format_currency(currency, net_profit_this_year); + $('#net_profit_current_year').empty(); + // $('#net_profit_this_year').append('<div class="title">Net Profit/Loss </div><span>' + net_profit_this_year + '</span>') + $('#net_profit_current_year').append('<span>' + net_profit_this_year + '</span> <div class="title">This Year</div>') + + } + }) + }); + }, + + format_currency: function(currency, amount) { + if (typeof(amount) != 'number') { + amount = parseFloat(amount); + } + var formatted_value = (parseInt(amount)).toLocaleString(currency.language, { + minimumFractionDigits: 2 + }) + if (currency.position === "after") { + return formatted_value += ' ' + currency.symbol; + } else { + return currency.symbol + ' ' + formatted_value; + } + }, + + willStart: function() { + var self = this; + self.drpdn_show = false; + return Promise.all([ajax.loadLibs(this), this._super()]); + }, + }); + core.action_registry.add('invoice_dashboard', ActionMenu); + +});
\ No newline at end of file diff --git a/base_accounting_kit/static/src/js/payment_matching.js b/base_accounting_kit/static/src/js/payment_matching.js new file mode 100644 index 0000000..80a1732 --- /dev/null +++ b/base_accounting_kit/static/src/js/payment_matching.js @@ -0,0 +1,505 @@ +odoo.define('base_accounting_kit.ReconciliationClientAction', function (require) { +"use strict"; + +var AbstractAction = require('web.AbstractAction'); +var ReconciliationModel = require('base_accounting_kit.ReconciliationModel'); +var ReconciliationRenderer = require('base_accounting_kit.ReconciliationRenderer'); +var core = require('web.core'); +var QWeb = core.qweb; + + +/** + * Widget used as action for 'account.bank.statement' reconciliation + */ +var StatementAction = AbstractAction.extend({ + hasControlPanel: true, + withSearchBar: true, + loadControlPanel: true, + title: core._t('Bank Reconciliation'), + contentTemplate: 'reconciliation', + custom_events: { + change_mode: '_onAction', + change_filter: '_onAction', + change_offset: '_onAction', + change_partner: '_onAction', + add_proposition: '_onAction', + remove_proposition: '_onAction', + update_proposition: '_onAction', + create_proposition: '_onAction', + getPartialAmount: '_onActionPartialAmount', + quick_create_proposition: '_onAction', + partial_reconcile: '_onAction', + validate: '_onValidate', + close_statement: '_onCloseStatement', + load_more: '_onLoadMore', + reload: 'reload', + search: '_onSearch', + navigation_move:'_onNavigationMove', + }, + config: _.extend({}, AbstractAction.prototype.config, { + // used to instantiate the model + Model: ReconciliationModel.StatementModel, + // used to instantiate the action interface + ActionRenderer: ReconciliationRenderer.StatementRenderer, + // used to instantiate each widget line + LineRenderer: ReconciliationRenderer.LineRenderer, + // used context params + params: ['statement_line_ids'], + // number of statements/partners/accounts to display + defaultDisplayQty: 10, + // number of moves lines displayed in 'match' mode + limitMoveLines: 15, + }), + + _onNavigationMove: function (ev) { + var non_reconciled_keys = _.keys(_.pick(this.model.lines, function(value, key, object) {return !value.reconciled})); + var currentIndex = _.indexOf(non_reconciled_keys, ev.data.handle); + var widget = false; + switch (ev.data.direction) { + case 'up': + ev.stopPropagation(); + widget = this._getWidget(non_reconciled_keys[currentIndex-1]); + break; + case 'down': + ev.stopPropagation(); + widget = this._getWidget(non_reconciled_keys[currentIndex+1]); + break; + case 'validate': + ev.stopPropagation(); + widget = this._getWidget(non_reconciled_keys[currentIndex]); + widget.$('caption .o_buttons button:visible').click(); + break; + } + if (widget) widget.$el.focus(); + }, + + /** + * @override + * @param {Object} params + * @param {Object} params.context + * + */ + init: function (parent, params) { + this._super.apply(this, arguments); + this.action_manager = parent; + this.params = params; + this.searchModelConfig.modelName = 'account.bank.statement.line'; + this.controlPanelProps.cp_content = {}; +// this.controlPanelParams.modelName = 'account.bank.statement.line'; + this.model = new this.config.Model(this, { + modelName: "account.reconciliation.widget", + defaultDisplayQty: params.params && params.params.defaultDisplayQty || this.config.defaultDisplayQty, + limitMoveLines: params.params && params.params.limitMoveLines || this.config.limitMoveLines, + }); + this.widgets = []; + // Adding values from the context is necessary to put this information in the url via the action manager so that + // you can retrieve it if the person shares his url or presses f5 + _.each(params.params, function (value, name) { + params.context[name] = name.indexOf('_ids') !== -1 ? _.map((value+'').split(','), parseFloat) : value; + }); + params.params = {}; + _.each(this.config.params, function (name) { + if (params.context[name]) { + params.params[name] = params.context[name]; + } + }); + }, + + /** + * instantiate the action renderer + * + * @override + */ + willStart: function () { + var self = this; + var def = this.model.load(this.params.context).then(this._super.bind(this)); + return def.then(function () { + if (!self.model.context || !self.model.context.active_id) { + self.model.context = {'active_id': self.params.context.active_id, + 'active_model': self.params.context.active_model}; + } + var journal_id = self.params.context.journal_id; + if (self.model.context.active_id && self.model.context.active_model === 'account.journal') { + journal_id = journal_id || self.model.context.active_id; + } + if (journal_id) { + var promise = self._rpc({ + model: 'account.journal', + method: 'read', + args: [journal_id, ['display_name']], + }); + } else { + var promise = Promise.resolve(); + } + return promise.then(function (result) { + var title = result && result[0] ? result[0]['display_name'] : self.params.display_name || '' + self._setTitle(title); + self.renderer = new self.config.ActionRenderer(self, self.model, { + 'bank_statement_line_id': self.model.bank_statement_line_id, + 'valuenow': self.model.valuenow, + 'valuemax': self.model.valuemax, + 'defaultDisplayQty': self.model.defaultDisplayQty, + 'title': title, + }); + }); + }); + }, + + reload: function() { + // On reload destroy all rendered line widget, reload data and then rerender widget + var self = this; + + self.$('.o_reconciliation_lines').addClass('d-none'); // prevent the browser from recomputing css after each destroy for HUGE perf improvement on a lot of lines + _.each(this.widgets, function(widget) { + widget.destroy(); + }); + this.widgets = []; + self.$('.o_reconciliation_lines').removeClass('d-none'); + return this.model.reload().then(function() { + return self._renderLinesOrRainbow(); + }); + }, + + _renderLinesOrRainbow: function() { + var self = this; + return self._renderLines().then(function() { + var initialState = self.renderer._initialState; + var valuenow = self.model.statement ? self.model.statement.value_min : initialState.valuenow; + var valuemax = self.model.statement ? self.model.statement.value_max : initialState.valuemax; + // No more lines to reconcile, trigger the rainbowman. + if(valuenow === valuemax){ + initialState.valuenow = valuenow; + initialState.context = self.model.getContext(); + self.renderer.showRainbowMan(initialState); + self.remove_cp(); + }else{ + // Create a notification if some lines have been reconciled automatically. + if(initialState.valuenow > 0) + self.renderer._renderNotifications(self.model.statement.notifications); + self._openFirstLine(); + self.renderer.$('[data-toggle="tooltip"]').tooltip(); + self.do_show(); + } + }); + }, + + /** + * append the renderer and instantiate the line renderers + * + * @override + */ + start: function () { + var self = this; + var args = arguments; + var sup = this._super; + + return this.renderer.prependTo(self.$('.o_form_sheet')).then(function() { + return self._renderLinesOrRainbow().then(function() { + self.do_show(); + return sup.apply(self, args); + }); + }); + }, + + /** + * update the control panel and breadcrumbs + * + * @override + */ + do_show: function () { + this._super.apply(this, arguments); + if (this.action_manager) { + this.$pager = $(QWeb.render('reconciliation.control.pager', {widget: this.renderer})); + this.controlPanelProps.cp_content = {$pager: this.$pager}; +// this.updateControlPanel({ +// clear: true, +// cp_content: { +// $pager: this.$pager, +// }, +// }); + this.renderer.$progress = this.$pager; + $(this.renderer.$progress).parent().css('width', '100%').css('padding-left', '0'); + } + }, + + remove_cp: function() { + this.controlPanelProps.cp_content = {}; +// this.updateControlPanel({ +// clear: true, +// }); + }, + + //-------------------------------------------------------------------------- + // Private + //-------------------------------------------------------------------------- + + /** + * @private + * @param {string} handle + * @returns {Widget} widget line + */ + _getWidget: function (handle) { + return _.find(this.widgets, function (widget) {return widget.handle===handle;}); + }, + + /** + * + */ + _loadMore: function(qty) { + var self = this; + return this.model.loadMore(qty).then(function () { + return self._renderLines(); + }); + }, + /** + * sitch to 'match' the first available line + * + * @private + */ + _openFirstLine: function (previous_handle) { + var self = this; + previous_handle = previous_handle || 'rline0'; + var handle = _.compact(_.map(this.model.lines, function (line, handle) { + return (line.reconciled || (parseInt(handle.substr(5)) < parseInt(previous_handle.substr(5)))) ? null : handle; + }))[0]; + if (handle) { + var line = this.model.getLine(handle); + this.model.changeMode(handle, 'default').then(function () { + self._getWidget(handle).update(line); + }).guardedCatch(function(){ + self._getWidget(handle).update(line); + }).then(function() { + self._getWidget(handle).$el.focus(); + } + ); + } + return handle; + }, + + _forceUpdate: function() { + var self = this; + _.each(this.model.lines, function(handle) { + var widget = self._getWidget(handle['handle']); + if (widget && handle.need_update) { + widget.update(handle); + widget.need_update = false; + } + }) + }, + /** + * render line widget and append to view + * + * @private + */ + _renderLines: function () { + var self = this; + var linesToDisplay = this.model.getStatementLines(); + var linePromises = []; + _.each(linesToDisplay, function (line, handle) { + var widget = new self.config.LineRenderer(self, self.model, line); + widget.handle = handle; + self.widgets.push(widget); + linePromises.push(widget.appendTo(self.$('.o_reconciliation_lines'))); + }); + if (this.model.hasMoreLines() === false) { + this.renderer.hideLoadMoreButton(true); + } + else { + this.renderer.hideLoadMoreButton(false); + } + return Promise.all(linePromises); + }, + + //-------------------------------------------------------------------------- + // Handlers + //-------------------------------------------------------------------------- + + /** + * dispatch on the camelcased event name to model method then update the + * line renderer with the new state. If the mode was switched from 'inactive' + * to 'create' or 'match_rp' or 'match_other', the other lines switch to + * 'inactive' mode + * + * @private + * @param {OdooEvent} event + */ + _onAction: function (event) { + var self = this; + var handle = event.target.handle; + var current_line = this.model.getLine(handle); + this.model[_.str.camelize(event.name)](handle, event.data.data).then(function () { + var widget = self._getWidget(handle); + if (widget) { + widget.update(current_line); + } + if (current_line.mode !== 'inactive') { + _.each(self.model.lines, function (line, _handle) { + if (line.mode !== 'inactive' && _handle !== handle) { + self.model.changeMode(_handle, 'inactive'); + var widget = self._getWidget(_handle); + if (widget) { + widget.update(line); + } + } + }); + } + }); + }, + + /** + * @private + * @param {OdooEvent} ev + */ + _onSearch: function (ev) { + var self = this; + ev.stopPropagation(); + this.model.domain = ev.data.domain; + this.model.display_context = 'search'; + self.reload().then(function() { + self.renderer._updateProgressBar({ + 'valuenow': self.model.valuenow, + 'valuemax': self.model.valuemax, + }); + }); + }, + + _onActionPartialAmount: function(event) { + var self = this; + var handle = event.target.handle; + var line = this.model.getLine(handle); + var amount = this.model.getPartialReconcileAmount(handle, event.data); + self._getWidget(handle).updatePartialAmount(event.data.data, amount); + }, + + /** + * call 'closeStatement' model method + * + * @private + * @param {OdooEvent} event + */ + _onCloseStatement: function (event) { + var self = this; + return this.model.closeStatement().then(function (result) { + self.do_action({ + name: 'Bank Statements', + res_model: 'account.bank.statement.line', + res_id: result, + views: [[false, 'form']], + type: 'ir.actions.act_window', + view_mode: 'form', + }); + $('.o_reward').remove(); + }); + }, + /** + * Load more statement and render them + * + * @param {OdooEvent} event + */ + _onLoadMore: function (event) { + return this._loadMore(this.model.defaultDisplayQty); + }, + /** + * call 'validate' model method then destroy the + * validated lines and update the action renderer with the new status bar + * values and notifications then open the first available line + * + * @private + * @param {OdooEvent} event + */ + _onValidate: function (event) { + var self = this; + var handle = event.target.handle; + this.model.validate(handle).then(function (result) { + self.renderer.update({ + 'valuenow': self.model.valuenow, + 'valuemax': self.model.valuemax, + 'title': self.title, + 'time': Date.now()-self.time, + 'notifications': result.notifications, + 'context': self.model.getContext(), + }); + self._forceUpdate(); + _.each(result.handles, function (handle) { + var widget = self._getWidget(handle); + if (widget) { + widget.destroy(); + var index = _.findIndex(self.widgets, function (widget) {return widget.handle===handle;}); + self.widgets.splice(index, 1); + } + }); + // Get number of widget and if less than constant and if there are more to laod, load until constant + if (self.widgets.length < self.model.defaultDisplayQty + && self.model.valuemax - self.model.valuenow >= self.model.defaultDisplayQty) { + var toLoad = self.model.defaultDisplayQty - self.widgets.length; + self._loadMore(toLoad); + } + self._openFirstLine(handle); + }); + }, +}); + + +/** + * Widget used as action for 'account.move.line' and 'res.partner' for the + * manual reconciliation and mark data as reconciliate + */ +var ManualAction = StatementAction.extend({ + title: core._t('Journal Items to Reconcile'), + withSearchBar: false, + config: _.extend({}, StatementAction.prototype.config, { + Model: ReconciliationModel.ManualModel, + ActionRenderer: ReconciliationRenderer.ManualRenderer, + LineRenderer: ReconciliationRenderer.ManualLineRenderer, + params: ['company_ids', 'mode', 'partner_ids', 'account_ids'], + defaultDisplayQty: 30, + limitMoveLines: 15, + }), + + //-------------------------------------------------------------------------- + // Handlers + //-------------------------------------------------------------------------- + + /** + * call 'validate' model method then destroy the + * reconcilied lines, update the not reconcilied and update the action + * renderer with the new status bar values and notifications then open the + * first available line + * + * @private + * @param {OdooEvent} event + */ + _onValidate: function (event) { + var self = this; + var handle = event.target.handle; + var method = 'validate'; + this.model[method](handle).then(function (result) { + _.each(result.reconciled, function (handle) { + self._getWidget(handle).destroy(); + }); + _.each(result.updated, function (handle) { + self._getWidget(handle).update(self.model.getLine(handle)); + }); + self.renderer.update({ + valuenow: _.compact(_.invoke(self.widgets, 'isDestroyed')).length, + valuemax: self.widgets.length, + title: self.title, + time: Date.now()-self.time, + }); + if(!_.any(result.updated, function (handle) { + return self.model.getLine(handle).mode !== 'inactive'; + })) { + self._openFirstLine(handle); + } + }); + }, +}); + +core.action_registry.add('bank_statement_reconciliation_view', StatementAction); +core.action_registry.add('manual_reconciliation_view', ManualAction); + +return { + StatementAction: StatementAction, + ManualAction: ManualAction, +}; +}); diff --git a/base_accounting_kit/static/src/js/payment_model.js b/base_accounting_kit/static/src/js/payment_model.js new file mode 100644 index 0000000..07785c4 --- /dev/null +++ b/base_accounting_kit/static/src/js/payment_model.js @@ -0,0 +1,1881 @@ +odoo.define('base_accounting_kit.ReconciliationModel', function (require) { +"use strict"; + +var BasicModel = require('web.BasicModel'); +var field_utils = require('web.field_utils'); +var utils = require('web.utils'); +var session = require('web.session'); +var WarningDialog = require('web.CrashManager').WarningDialog; +var core = require('web.core'); +var _t = core._t; + + +/** + * Model use to fetch, format and update 'account.reconciliation.widget', + * datas allowing reconciliation + * + * The statement internal structure:: + * + * { + * valuenow: integer + * valuenow: valuemax + * [bank_statement_line_id]: { + * id: integer + * display_name: string + * } + * reconcileModels: [object] + * accounts: {id: code} + * } + * + * The internal structure of each line is:: + * + * { + * balance: { + * type: number - show/hide action button + * amount: number - real amount + * amount_str: string - formated amount + * account_code: string + * }, + * st_line: { + * partner_id: integer + * partner_name: string + * } + * mode: string ('inactive', 'match_rp', 'match_other', 'create') + * reconciliation_proposition: { + * id: number|string + * partial_amount: number + * invalid: boolean - through the invalid line (without account, label...) + * account_code: string + * date: string + * date_maturity: string + * label: string + * amount: number - real amount + * amount_str: string - formated amount + * [already_paid]: boolean + * [partner_id]: integer + * [partner_name]: string + * [account_code]: string + * [journal_id]: { + * id: integer + * display_name: string + * } + * [ref]: string + * [is_partially_reconciled]: boolean + * [to_check]: boolean + * [amount_currency_str]: string|false (amount in record currency) + * } + * mv_lines_match_rp: object - idem than reconciliation_proposition + * mv_lines_match_other: object - idem than reconciliation_proposition + * limitMoveLines: integer + * filter: string + * [createForm]: { + * account_id: { + * id: integer + * display_name: string + * } + * tax_ids: { + * id: integer + * display_name: string + * } + * analytic_account_id: { + * id: integer + * display_name: string + * } + * analytic_tag_ids: { + * } + * label: string + * amount: number, + * [journal_id]: { + * id: integer + * display_name: string + * } + * } + * } + */ +var StatementModel = BasicModel.extend({ + avoidCreate: false, + quickCreateFields: ['account_id', 'amount', 'analytic_account_id', 'label', 'tax_ids', 'force_tax_included', 'analytic_tag_ids', 'to_check'], + + // overridden in ManualModel + modes: ['create', 'match_rp', 'match_other'], + + /** + * @override + * + * @param {Widget} parent + * @param {object} options + */ + init: function (parent, options) { + this._super.apply(this, arguments); + this.reconcileModels = []; + this.lines = {}; + this.valuenow = 0; + this.valuemax = 0; + this.alreadyDisplayed = []; + this.domain = []; + this.defaultDisplayQty = options && options.defaultDisplayQty || 10; + this.limitMoveLines = options && options.limitMoveLines || 15; + this.display_context = 'init'; + }, + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + /** + * add a reconciliation proposition from the matched lines + * We also display a warning if the user tries to add 2 line with different + * account type + * + * @param {string} handle + * @param {number} mv_line_id + * @returns {Promise} + */ + addProposition: function (handle, mv_line_id) { + var self = this; + var line = this.getLine(handle); + var prop = _.clone(_.find(line['mv_lines_'+line.mode], {'id': mv_line_id})); + this._addProposition(line, prop); + line['mv_lines_'+line.mode] = _.filter(line['mv_lines_'+line.mode], l => l['id'] != mv_line_id); + + // remove all non valid lines + line.reconciliation_proposition = _.filter(line.reconciliation_proposition, function (prop) {return prop && !prop.invalid;}); + + // Onchange the partner if not already set on the statement line. + if(!line.st_line.partner_id && line.reconciliation_proposition + && line.reconciliation_proposition.length == 1 && prop.partner_id && line.type === undefined){ + return this.changePartner(handle, {'id': prop.partner_id, 'display_name': prop.partner_name}, true); + } + + return Promise.all([ + this._computeLine(line), + this._performMoveLine(handle, 'match_rp', line.mode == 'match_rp'? 1 : 0), + this._performMoveLine(handle, 'match_other', line.mode == 'match_other'? 1 : 0) + ]); + }, + /** + * change the filter for the target line and fetch the new matched lines + * + * @param {string} handle + * @param {string} filter + * @returns {Promise} + */ + changeFilter: function (handle, filter) { + var line = this.getLine(handle); + line['filter_'+line.mode] = filter; + line['mv_lines_'+line.mode] = []; + return this._performMoveLine(handle, line.mode); + }, + /** + * change the mode line ('inactive', 'match_rp', 'match_other', 'create'), + * and fetch the new matched lines or prepare to create a new line + * + * ``match_rp`` + * display the matched lines from receivable/payable accounts, the user + * can select the lines to apply there as proposition + * ``match_other`` + * display the other matched lines, the user can select the lines to apply + * there as proposition + * ``create`` + * display fields and quick create button to create a new proposition + * for the reconciliation + * + * @param {string} handle + * @param {'inactive' | 'match_rp' | 'create'} mode + * @returns {Promise} + */ + changeMode: function (handle, mode) { + var self = this; + var line = this.getLine(handle); + if (mode === 'default') { + var match_requests = self.modes.filter(x => x.startsWith('match')).map(x => this._performMoveLine(handle, x)) + return Promise.all(match_requests).then(function() { + return self.changeMode(handle, self._getDefaultMode(handle)); + }); + } + if (mode === 'next') { + var available_modes = self._getAvailableModes(handle) + mode = available_modes[(available_modes.indexOf(line.mode) + 1) % available_modes.length]; + } + line.mode = mode; + if (['match_rp', 'match_other'].includes(line.mode)) { + if (!(line['mv_lines_' + line.mode] && line['mv_lines_' + line.mode].length)) { + return this._performMoveLine(handle, line.mode); + } else { + return this._formatMoveLine(handle, line.mode, []); + } + } + if (line.mode === 'create') { + return this.createProposition(handle); + } + return Promise.resolve(); + }, + /** + * fetch the more matched lines + * + * @param {string} handle + * @returns {Promise} + */ + changeOffset: function (handle) { + var line = this.getLine(handle); + return this._performMoveLine(handle, line.mode); + }, + /** + * change the partner on the line and fetch the new matched lines + * + * @param {string} handle + * @param {bool} preserveMode + * @param {Object} partner + * @param {string} partner.display_name + * @param {number} partner.id + * @returns {Promise} + */ + changePartner: function (handle, partner, preserveMode) { + var self = this; + var line = this.getLine(handle); + line.st_line.partner_id = partner && partner.id; + line.st_line.partner_name = partner && partner.display_name || ''; + line.mv_lines_match_rp = []; + line.mv_lines_match_other = []; + return Promise.resolve(partner && this._changePartner(handle, partner.id)) + .then(function() { + if(line.st_line.partner_id){ + _.each(line.reconciliation_proposition, function(prop){ + if(prop.partner_id != line.st_line.partner_id){ + line.reconciliation_proposition = []; + return false; + } + }); + } + return self._computeLine(line); + }) + .then(function () { + return self.changeMode(handle, preserveMode ? line.mode : 'default', true); + }) + + }, + /** + * close the statement + * @returns {Promise<number>} resolves to the res_id of the closed statements + */ + closeStatement: function () { + var self = this; + return this._rpc({ + model: 'account.bank.statement.line', + method: 'button_confirm_bank', + args: [self.bank_statement_line_id.id], + }) + .then(function () { + return self.bank_statement_line_id.id; + }); + }, + /** + * + * then open the first available line + * + * @param {string} handle + * @returns {Promise} + */ + createProposition: function (handle) { + var line = this.getLine(handle); + var prop = _.filter(line.reconciliation_proposition, '__focus'); + prop = this._formatQuickCreate(line); + line.reconciliation_proposition.push(prop); + line.createForm = _.pick(prop, this.quickCreateFields); + return this._computeLine(line); + }, + /** + * Return context information and journal_id + * @returns {Object} context + */ + getContext: function () { + return this.context; + }, + /** + * Return the lines that needs to be displayed by the widget + * + * @returns {Object} lines that are loaded and not yet displayed + */ + getStatementLines: function () { + var self = this; + var linesToDisplay = _.pick(this.lines, function(value, key, object) { + if (value.visible === true && self.alreadyDisplayed.indexOf(key) === -1) { + self.alreadyDisplayed.push(key); + return object; + } + }); + return linesToDisplay; + }, + /** + * Return a boolean telling if load button needs to be displayed or not + * overridden in ManualModel + * + * @returns {boolean} true if load more button needs to be displayed + */ + hasMoreLines: function () { + var notDisplayed = _.filter(this.lines, function(line) { return !line.visible; }); + if (notDisplayed.length > 0) { + return true; + } + return false; + }, + /** + * get the line data for this handle + * + * @param {Object} handle + * @returns {Object} + */ + getLine: function (handle) { + return this.lines[handle]; + }, + /** + * load data from + * + * - 'account.bank.statement' fetch the line id and bank_statement_id info + * - 'account.reconcile.model' fetch all reconcile model (for quick add) + * - 'account.account' fetch all account code + * - 'account.reconciliation.widget' fetch each line data + * + * overridden in ManualModel + * @param {Object} context + * @param {number[]} context.statement_line_ids + * @returns {Promise} + */ + load: function (context) { + var self = this; + this.context = context; + this.statement_line_ids = context.statement_line_ids; + if (this.statement_line_ids === undefined) { + // This could be undefined if the user pressed F5, take everything as fallback instead of rainbowman + return self._rpc({ + model: 'account.bank.statement.line', + method: 'search_read', + fields: ['id'], + domain: [['journal_id', '=?', context.active_id]], + }).then(function (result) { + self.statement_line_ids = result.map(r => r.id); + return self.reload() + }) + } else { + return self.reload(); + } + + }, + /** + * Load more bank statement line + * + * @param {integer} qty quantity to load + * @returns {Promise} + */ + loadMore: function(qty) { + if (qty === undefined) { + qty = this.defaultDisplayQty; + } + var ids = _.pluck(this.lines, 'id'); + ids = ids.splice(this.pagerIndex, qty); + this.pagerIndex += qty; + return this.loadData(ids, this._getExcludedIds()); + }, + /** + * RPC method to load informations on lines + * overridden in ManualModel + * + * @param {Array} ids ids of bank statement line passed to rpc call + * @param {Array} excluded_ids list of move_line ids that needs to be excluded from search + * @returns {Promise} + */ + loadData: function(ids) { + var self = this; + var excluded_ids = this._getExcludedIds(); + return self._rpc({ + model: 'account.reconciliation.widget', + method: 'get_bank_statement_line_data', + args: [ids, excluded_ids], + context: self.context, + }) + .then(function(res){ + return self._formatLine(res['lines']); + }) + }, + /** + * Reload all data + */ + reload: function() { + var self = this; + self.alreadyDisplayed = []; + self.lines = {}; + self.pagerIndex = 0; + var def_statement = this._rpc({ + model: 'account.reconciliation.widget', + method: 'get_bank_statement_data', + kwargs: {"bank_statement_line_ids":self.statement_line_ids, "srch_domain":self.domain}, + context: self.context, + }) + .then(function (statement) { + self.statement = statement; + self.bank_statement_line_id = self.statement_line_ids.length === 1 ? {id: self.statement_line_ids[0], display_name: statement.statement_name} : false; + self.valuenow = self.valuenow || statement.value_min; + self.valuemax = self.valuemax || statement.value_max; + self.context.journal_id = statement.journal_id; + _.each(statement.lines, function (res) { + var handle = _.uniqueId('rline'); + self.lines[handle] = { + id: res.st_line.id, + partner_id: res.st_line.partner_id, + handle: handle, + reconciled: false, + mode: 'inactive', + mv_lines_match_rp: [], + mv_lines_match_other: [], + filter_match_rp: "", + filter_match_other: "", + reconciliation_proposition: [], + reconcileModels: [], + }; + }); + }); + var domainReconcile = []; + if (self.context && self.context.company_ids) { + domainReconcile.push(['company_id', 'in', self.context.company_ids]); + } + if (self.context && self.context.active_model === 'account.journal' && self.context.active_ids) { + domainReconcile.push('|'); + domainReconcile.push(['match_journal_ids', '=', false]); + domainReconcile.push(['match_journal_ids', 'in', self.context.active_ids]); + } + var def_reconcileModel = this._loadReconciliationModel({domainReconcile: domainReconcile}); + var def_account = this._rpc({ + model: 'account.account', + method: 'search_read', + fields: ['code'], + }) + .then(function (accounts) { + self.accounts = _.object(_.pluck(accounts, 'id'), _.pluck(accounts, 'code')); + }); + var def_taxes = self._loadTaxes(); + return Promise.all([def_statement, def_reconcileModel, def_account, def_taxes]).then(function () { + _.each(self.lines, function (line) { + line.reconcileModels = self.reconcileModels; + }); + var ids = _.pluck(self.lines, 'id'); + ids = ids.splice(0, self.defaultDisplayQty); + self.pagerIndex = ids.length; + return self._formatLine(self.statement.lines); + }); + }, + _readAnalyticTags: function (params) { + var self = this; + this.analyticTags = {}; + if (!params || !params.res_ids || !params.res_ids.length) { + return $.when(); + } + var fields = (params && params.fields || []).concat(['id', 'display_name']); + return this._rpc({ + model: 'account.analytic.tag', + method: 'read', + args: [ + params.res_ids, + fields, + ], + }).then(function (tags) { + for (var i=0; i<tags.length; i++) { + var tag = tags[i]; + self.analyticTags[tag.id] = tag; + } + }); + }, + _loadReconciliationModel: function (params) { + var self = this; + return this._rpc({ + model: 'account.reconcile.model', + method: 'search_read', + domain: params.domainReconcile || [], + }) + .then(function (reconcileModels) { + var analyticTagIds = []; + for (var i=0; i<reconcileModels.length; i++) { + var modelTags = reconcileModels[i].analytic_tag_ids || []; + for (var j=0; j<modelTags.length; j++) { + if (analyticTagIds.indexOf(modelTags[j]) === -1) { + analyticTagIds.push(modelTags[j]); + } + } + } + return self._readAnalyticTags({res_ids: analyticTagIds}).then(function () { + for (var i=0; i<reconcileModels.length; i++) { + var recModel = reconcileModels[i]; + var analyticTagData = []; + var modelTags = reconcileModels[i].analytic_tag_ids || []; + for (var j=0; j<modelTags.length; j++) { + var tagId = modelTags[j]; + analyticTagData.push([tagId, self.analyticTags[tagId].display_name]) + } + recModel.analytic_tag_ids = analyticTagData; + } + self.reconcileModels = reconcileModels; + }); + }); + }, + _loadTaxes: function(){ + var self = this; + self.taxes = {}; + return this._rpc({ + model: 'account.tax', + method: 'search_read', + fields: ['price_include', 'name'], + }).then(function (taxes) { + _.each(taxes, function(tax){ + self.taxes[tax.id] = { + price_include: tax.price_include, + display_name: tax.name, + }; + }); + return taxes; + }); + }, + /** + * Add lines into the propositions from the reconcile model + * Can add 2 lines, and each with its taxes. The second line become editable + * in the create mode. + * + * @see 'updateProposition' method for more informations about the + * 'amount_type' + * + * @param {string} handle + * @param {integer} reconcileModelId + * @returns {Promise} + */ + quickCreateProposition: function (handle, reconcileModelId) { + var self = this; + var line = this.getLine(handle); + var reconcileModel = _.find(this.reconcileModels, function (r) {return r.id === reconcileModelId;}); + var fields = ['account_id', 'amount', 'amount_type', 'analytic_account_id', 'journal_id', 'label', 'force_tax_included', 'tax_ids', 'analytic_tag_ids', 'to_check', 'amount_from_label_regex', 'decimal_separator']; + this._blurProposition(handle); + var focus = this._formatQuickCreate(line, _.pick(reconcileModel, fields)); + focus.reconcileModelId = reconcileModelId; + line.reconciliation_proposition.push(focus); + var defs = []; + if (reconcileModel.has_second_line) { + defs.push(self._computeLine(line).then(function() { + var second = {}; + _.each(fields, function (key) { + second[key] = ("second_"+key) in reconcileModel ? reconcileModel["second_"+key] : reconcileModel[key]; + }); + var second_focus = self._formatQuickCreate(line, second); + second_focus.reconcileModelId = reconcileModelId; + line.reconciliation_proposition.push(second_focus); + self._computeReconcileModels(handle, reconcileModelId); + })) + } + return Promise.all(defs).then(function() { + line.createForm = _.pick(focus, self.quickCreateFields); + return self._computeLine(line); + }) + }, + /** + * Remove a proposition and switch to an active mode ('create' or 'match_rp' or 'match_other') + * overridden in ManualModel + * + * @param {string} handle + * @param {number} id (move line id) + * @returns {Promise} + */ + removeProposition: function (handle, id) { + var self = this; + var line = this.getLine(handle); + var defs = []; + var prop = _.find(line.reconciliation_proposition, {'id' : id}); + if (prop) { + line.reconciliation_proposition = _.filter(line.reconciliation_proposition, function (p) { + return p.id !== prop.id && p.id !== prop.link && p.link !== prop.id && (!p.link || p.link !== prop.link); + }); + if (prop['reconcileModelId'] === undefined) { + if (['receivable', 'payable', 'liquidity'].includes(prop.account_type)) { + line.mv_lines_match_rp.unshift(prop); + } else { + line.mv_lines_match_other.unshift(prop); + } + } + + // No proposition left and then, reset the st_line partner. + if(line.reconciliation_proposition.length == 0 && line.st_line.has_no_partner) + defs.push(self.changePartner(line.handle)); + } + line.mode = (id || line.mode !== "create") && isNaN(id) ? 'create' : 'match_rp'; + defs.push(this._computeLine(line)); + return Promise.all(defs).then(function() { + return self.changeMode(handle, line.mode, true); + }) + }, + getPartialReconcileAmount: function(handle, data) { + var line = this.getLine(handle); + var formatOptions = { + currency_id: line.st_line.currency_id, + noSymbol: true, + }; + var prop = _.find(line.reconciliation_proposition, {'id': data.data}); + if (prop) { + var amount = prop.partial_amount || prop.amount; + // Check if we can get a partial amount that would directly set balance to zero + var partial = Math.abs(line.balance.amount + amount); + if (Math.abs(line.balance.amount) >= Math.abs(amount)) { + amount = Math.abs(amount); + } else if (partial <= Math.abs(prop.amount) && partial >= 0) { + amount = partial; + } else { + amount = Math.abs(amount); + } + return field_utils.format.monetary(amount, {}, formatOptions); + } + }, + /** + * Force the partial reconciliation to display the reconciliate button. + * + * @param {string} handle + * @returns {Promise} + */ + partialReconcile: function(handle, data) { + var line = this.getLine(handle); + var prop = _.find(line.reconciliation_proposition, {'id' : data.mvLineId}); + if (prop) { + var amount = data.amount; + try { + amount = field_utils.parse.float(data.amount); + } + catch (err) { + amount = NaN; + } + // Amount can't be greater than line.amount and can not be negative and must be a number + // the amount we receive will be a string, so take sign of previous line amount in consideration in order to put + // the amount in the correct left or right column + if (amount >= Math.abs(prop.amount) || amount <= 0 || isNaN(amount)) { + delete prop.partial_amount_str; + delete prop.partial_amount; + if (isNaN(amount) || amount < 0) { + this.do_warn(_.str.sprintf(_t('The amount %s is not a valid partial amount'), data.amount)); + } + return this._computeLine(line); + } + else { + var format_options = { currency_id: line.st_line.currency_id }; + prop.partial_amount = (prop.amount > 0 ? 1 : -1)*amount; + prop.partial_amount_str = field_utils.format.monetary(Math.abs(prop.partial_amount), {}, format_options); + } + } + return this._computeLine(line); + }, + /** + * Change the value of the editable proposition line or create a new one. + * + * If the editable line comes from a reconcile model with 2 lines + * and their 'amount_type' is "percent" + * and their total equals 100% (this doesn't take into account the taxes + * who can be included or not) + * Then the total is recomputed to have 100%. + * + * @param {string} handle + * @param {*} values + * @returns {Promise} + */ + updateProposition: function (handle, values) { + var self = this; + var line = this.getLine(handle); + var prop = _.last(_.filter(line.reconciliation_proposition, '__focus')); + if ('to_check' in values && values.to_check === false) { + // check if we have another line with to_check and if yes don't change value of this proposition + prop.to_check = line.reconciliation_proposition.some(function(rec_prop, index) { + return rec_prop.id !== prop.id && rec_prop.to_check; + }); + } + if (!prop) { + prop = this._formatQuickCreate(line); + line.reconciliation_proposition.push(prop); + } + _.each(values, function (value, fieldName) { + if (fieldName === 'analytic_tag_ids') { + switch (value.operation) { + case "ADD_M2M": + // handle analytic_tag selection via drop down (single dict) and + // full widget (array of dict) + var vids = _.isArray(value.ids) ? value.ids : [value.ids]; + _.each(vids, function (val) { + if (!_.findWhere(prop.analytic_tag_ids, {id: val.id})) { + prop.analytic_tag_ids.push(val); + } + }); + break; + case "FORGET": + var id = self.localData[value.ids[0]].ref; + prop.analytic_tag_ids = _.filter(prop.analytic_tag_ids, function (val) { + return val.id !== id; + }); + break; + } + } + else if (fieldName === 'tax_ids') { + switch(value.operation) { + case "ADD_M2M": + prop.__tax_to_recompute = true; + var vids = _.isArray(value.ids) ? value.ids : [value.ids]; + _.each(vids, function(val){ + if (!_.findWhere(prop.tax_ids, {id: val.id})) { + value.ids.price_include = self.taxes[val.id] ? self.taxes[val.id].price_include : false; + prop.tax_ids.push(val); + } + }); + break; + case "FORGET": + prop.__tax_to_recompute = true; + var id = self.localData[value.ids[0]].ref; + prop.tax_ids = _.filter(prop.tax_ids, function (val) { + return val.id !== id; + }); + break; + } + } + else { + prop[fieldName] = values[fieldName]; + } + }); + if ('account_id' in values) { + prop.account_code = prop.account_id ? this.accounts[prop.account_id.id] : ''; + } + if ('amount' in values) { + prop.base_amount = values.amount; + if (prop.reconcileModelId) { + this._computeReconcileModels(handle, prop.reconcileModelId); + } + } + if ('force_tax_included' in values || 'amount' in values || 'account_id' in values) { + prop.__tax_to_recompute = true; + } + line.createForm = _.pick(prop, this.quickCreateFields); + // If you check/uncheck the force_tax_included box, reset the createForm amount. + if(prop.base_amount) + line.createForm.amount = prop.base_amount; + if (prop.tax_ids.length !== 1 ) { + // When we have 0 or more than 1 taxes, reset the base_amount and force_tax_included, otherwise weird behavior can happen + prop.amount = prop.base_amount; + line.createForm.force_tax_included = false; + } + return this._computeLine(line); + }, + /** + * Format the value and send it to 'account.reconciliation.widget' model + * Update the number of validated lines + * overridden in ManualModel + * + * @param {(string|string[])} handle + * @returns {Promise<Object>} resolved with an object who contains + * 'handles' key + */ + validate: function (handle) { + var self = this; + this.display_context = 'validate'; + var handles = []; + if (handle) { + handles = [handle]; + } else { + _.each(this.lines, function (line, handle) { + if (!line.reconciled && line.balance && !line.balance.amount && line.reconciliation_proposition.length) { + handles.push(handle); + } + }); + } + var ids = []; + var values = []; + var handlesPromises = []; + _.each(handles, function (handle) { + var line = self.getLine(handle); + var props = _.filter(line.reconciliation_proposition, function (prop) {return !prop.invalid;}); + var computeLinePromise; + if (props.length === 0) { + // Usability: if user has not chosen any lines and click validate, it has the same behavior + // as creating a write-off of the same amount. + props.push(self._formatQuickCreate(line, { + account_id: [line.st_line.open_balance_account_id, self.accounts[line.st_line.open_balance_account_id]], + })); + // update balance of line otherwise it won't be to zero and another line will be added + line.reconciliation_proposition.push(props[0]); + computeLinePromise = self._computeLine(line); + } + ids.push(line.id); + handlesPromises.push(Promise.resolve(computeLinePromise).then(function() { + var values_dict = { + "partner_id": line.st_line.partner_id, + "counterpart_aml_dicts": _.map(_.filter(props, function (prop) { + return !isNaN(prop.id) && !prop.already_paid; + }), self._formatToProcessReconciliation.bind(self, line)), + "payment_aml_ids": _.pluck(_.filter(props, function (prop) { + return !isNaN(prop.id) && prop.already_paid; + }), 'id'), + "new_aml_dicts": _.map(_.filter(props, function (prop) { + return isNaN(prop.id) && prop.display; + }), self._formatToProcessReconciliation.bind(self, line)), + "to_check": line.to_check, + }; + + // If the lines are not fully balanced, create an unreconciled amount. + // line.st_line.currency_id is never false here because its equivalent to + // statement_line.currency_id or statement_line.journal_id.currency_id or statement_line.journal_id.company_id.currency_id (Python-side). + // see: get_statement_line_for_reconciliation_widget method in account/models/account_bank_statement.py for more details + var currency = session.get_currency(line.st_line.currency_id); + var balance = line.balance.amount; + if (!utils.float_is_zero(balance, currency.digits[1])) { + var unreconciled_amount_dict = { + 'account_id': line.st_line.open_balance_account_id, + 'credit': balance > 0 ? balance : 0, + 'debit': balance < 0 ? -balance : 0, + 'name': line.st_line.name + ' : ' + _t("Open balance"), + }; + values_dict['new_aml_dicts'].push(unreconciled_amount_dict); + } + values.push(values_dict); + line.reconciled = true; + })); + + _.each(self.lines, function(other_line) { + if (other_line != line) { + var filtered_prop = other_line.reconciliation_proposition.filter(p => !line.reconciliation_proposition.map(l => l.id).includes(p.id)); + if (filtered_prop.length != other_line.reconciliation_proposition.length) { + other_line.need_update = true; + other_line.reconciliation_proposition = filtered_prop; + } + self._computeLine(line); + } + }) + }); + + return Promise.all(handlesPromises).then(function() { + return self._rpc({ + model: 'account.reconciliation.widget', + method: 'process_bank_statement_line', + args: [ids, values], + context: self.context, + }) + .then(self._validatePostProcess.bind(self)) + .then(function () { + self.valuenow += handles.length; + return {handles: handles}; + }); + }); + }, + + //-------------------------------------------------------------------------- + // Private + //-------------------------------------------------------------------------- + + /** + * add a line proposition after checking receivable and payable accounts constraint + * + * @private + * @param {Object} line + * @param {Object} prop + */ + _addProposition: function (line, prop) { + line.reconciliation_proposition.push(prop); + }, + /** + * stop the editable proposition line and remove it if it's invalid then + * compute the line + * + * See :func:`_computeLine` + * + * @private + * @param {string} handle + * @returns {Promise} + */ + _blurProposition: function (handle) { + var line = this.getLine(handle); + line.reconciliation_proposition = _.filter(line.reconciliation_proposition, function (l) { + l.__focus = false; + return !l.invalid; + }); + }, + /** + * When changing partner, read property_account_receivable and payable + * of that partner because the counterpart account might cahnge depending + * on the partner + * + * @private + * @param {string} handle + * @param {integer} partner_id + * @returns {Promise} + */ + _changePartner: function (handle, partner_id) { + var self = this; + return this._rpc({ + model: 'res.partner', + method: 'read', + args: [partner_id, ["property_account_receivable_id", "property_account_payable_id"]], + }).then(function (result) { + if (result.length > 0) { + var line = self.getLine(handle); + self.lines[handle].st_line.open_balance_account_id = line.balance.amount < 0 ? result[0]['property_account_payable_id'][0] : result[0]['property_account_receivable_id'][0]; + } + }); + }, + /** + * Calculates the balance; format each proposition amount_str and mark as + * invalid the line with empty account_id, amount or label + * Check the taxes server side for each updated propositions with tax_ids + * extended by ManualModel + * + * @private + * @param {Object} line + * @returns {Promise} + */ + _computeLine: function (line) { + //balance_type + var self = this; + + // compute taxes + var tax_defs = []; + var reconciliation_proposition = []; + var formatOptions = { + currency_id: line.st_line.currency_id, + }; + line.to_check = false; + _.each(line.reconciliation_proposition, function (prop) { + if (prop.to_check) { + // If one of the proposition is to_check, set the global to_check flag to true + line.to_check = true; + } + if (prop.tax_repartition_line_id) { + if (!_.find(line.reconciliation_proposition, {'id': prop.link}).__tax_to_recompute) { + reconciliation_proposition.push(prop); + } + return; + } + if (!prop.already_paid && parseInt(prop.id)) { + prop.is_move_line = true; + } + reconciliation_proposition.push(prop); + + if (prop.tax_ids && prop.tax_ids.length && prop.__tax_to_recompute && prop.base_amount) { + reconciliation_proposition = _.filter(reconciliation_proposition, function (p) { + return !p.tax_repartition_line_id || p.link !== prop.id; + }); + var args = [prop.tax_ids.map(function(el){return el.id;}), prop.base_amount, formatOptions.currency_id]; + var add_context = {'round': true}; + if(prop.tax_ids.length === 1 && line.createForm && line.createForm.force_tax_included) + add_context.force_price_include = true; + tax_defs.push(self._rpc({ + model: 'account.tax', + method: 'json_friendly_compute_all', + args: args, + context: $.extend({}, self.context || {}, add_context), + }) + .then(function (result) { + _.each(result.taxes, function(tax){ + var tax_prop = self._formatQuickCreate(line, { + 'link': prop.id, + 'tax_ids': tax.tax_ids, + 'tax_repartition_line_id': tax.tax_repartition_line_id, + 'tag_ids': tax.tag_ids, + 'amount': tax.amount, + 'label': prop.label ? prop.label + " " + tax.name : tax.name, + 'date': prop.date, + 'account_id': tax.account_id ? [tax.account_id, null] : prop.account_id, + 'analytic': tax.analytic, + '__focus': false + }); + + prop.tax_exigible = tax.tax_exigibility === 'on_payment' ? true : undefined; + prop.amount = tax.base; + prop.amount_str = field_utils.format.monetary(Math.abs(prop.amount), {}, formatOptions); + prop.invalid = !self._isValid(prop); + + tax_prop.amount_str = field_utils.format.monetary(Math.abs(tax_prop.amount), {}, formatOptions); + tax_prop.invalid = prop.invalid; + + reconciliation_proposition.push(tax_prop); + }); + + prop.tag_ids = result.base_tags; + })); + } else { + prop.amount_str = field_utils.format.monetary(Math.abs(prop.amount), {}, formatOptions); + prop.display = self._isDisplayedProposition(prop); + prop.invalid = !self._isValid(prop); + } + }); + + return Promise.all(tax_defs).then(function () { + _.each(reconciliation_proposition, function (prop) { + prop.__tax_to_recompute = false; + }); + line.reconciliation_proposition = reconciliation_proposition; + + var amount_currency = 0; + var total = line.st_line.amount || 0; + var isOtherCurrencyId = _.uniq(_.pluck(_.reject(reconciliation_proposition, 'invalid'), 'currency_id')); + isOtherCurrencyId = isOtherCurrencyId.length === 1 && !total && isOtherCurrencyId[0] !== formatOptions.currency_id ? isOtherCurrencyId[0] : false; + + _.each(reconciliation_proposition, function (prop) { + if (!prop.invalid) { + total -= prop.partial_amount || prop.amount; + if (isOtherCurrencyId) { + amount_currency -= (prop.amount < 0 ? -1 : 1) * Math.abs(prop.amount_currency); + } + } + }); + var company_currency = session.get_currency(line.st_line.currency_id); + var company_precision = company_currency && company_currency.digits[1] || 2; + total = utils.round_decimals(total, company_precision) || 0; + if(isOtherCurrencyId){ + var other_currency = session.get_currency(isOtherCurrencyId); + var other_precision = other_currency && other_currency.digits[1] || 2; + amount_currency = utils.round_decimals(amount_currency, other_precision); + } + line.balance = { + amount: total, + amount_str: field_utils.format.monetary(Math.abs(total), {}, formatOptions), + currency_id: isOtherCurrencyId, + amount_currency: isOtherCurrencyId ? amount_currency : total, + amount_currency_str: isOtherCurrencyId ? field_utils.format.monetary(Math.abs(amount_currency), {}, { + currency_id: isOtherCurrencyId + }) : false, + account_code: self.accounts[line.st_line.open_balance_account_id], + }; + line.balance.show_balance = line.balance.amount_currency != 0; + line.balance.type = line.balance.amount_currency ? (line.st_line.partner_id ? 0 : -1) : 1; + }); + }, + /** + * + * + * @private + * @param {string} handle + * @param {integer} reconcileModelId + */ + _computeReconcileModels: function (handle, reconcileModelId) { + var line = this.getLine(handle); + // if quick create with 2 lines who use 100%, change the both values in same time + var props = _.filter(line.reconciliation_proposition, {'reconcileModelId': reconcileModelId, '__focus': true}); + if (props.length === 2 && props[0].percent && props[1].percent) { + if (props[0].percent + props[1].percent === 100) { + props[0].base_amount = props[0].amount = line.st_line.amount - props[1].base_amount; + props[0].__tax_to_recompute = true; + } + } + }, + /** + * format a name_get into an object {id, display_name}, idempotent + * + * @private + * @param {Object|Array} [value] data or name_get + */ + _formatNameGet: function (value) { + return value ? (value.id ? value : {'id': value[0], 'display_name': value[1]}) : false; + }, + _formatMany2ManyTags: function (value) { + var res = []; + for (var i=0, len=value.length; i<len; i++) { + res[i] = {'id': value[i][0], 'display_name': value[i][1]}; + } + return res; + }, + _formatMany2ManyTagsTax: function(value) { + var res = []; + for (var i=0; i<value.length; i++) { + res.push({id: value[i], display_name: this.taxes[value[i]] ? this.taxes[value[i]].display_name : ''}); + } + return res; + }, + /** + * Format each propositions (amount, label, account_id) + * extended in ManualModel + * + * @private + * @param {Object} line + * @param {Object[]} props + */ + _formatLineProposition: function (line, props) { + var self = this; + if (props.length) { + _.each(props, function (prop) { + prop.amount = prop.debit || -prop.credit; + prop.label = prop.name; + prop.account_id = self._formatNameGet(prop.account_id || line.account_id); + prop.is_partially_reconciled = prop.amount_str !== prop.total_amount_str; + prop.to_check = !!prop.to_check; + }); + } + }, + /** + * Format each server lines and propositions and compute all lines + * overridden in ManualModel + * + * @see '_computeLine' + * + * @private + * @param {Object[]} lines + * @returns {Promise} + */ + _formatLine: function (lines) { + var self = this; + var defs = []; + _.each(lines, function (data) { + var line = _.find(self.lines, function (l) { + return l.id === data.st_line.id; + }); + line.visible = true; + line.limitMoveLines = self.limitMoveLines; + _.extend(line, data); + self._formatLineProposition(line, line.reconciliation_proposition); + if (!line.reconciliation_proposition.length) { + delete line.reconciliation_proposition; + } + + // No partner set on st_line and all matching amls have the same one: set it on the st_line. + defs.push( + self._computeLine(line) + .then(function(){ + if(!line.st_line.partner_id && line.reconciliation_proposition.length > 0){ + var hasDifferentPartners = function(prop){ + return !prop.partner_id || prop.partner_id != line.reconciliation_proposition[0].partner_id; + }; + + if(!_.any(line.reconciliation_proposition, hasDifferentPartners)){ + return self.changePartner(line.handle, { + 'id': line.reconciliation_proposition[0].partner_id, + 'display_name': line.reconciliation_proposition[0].partner_name, + }, true); + } + }else if(!line.st_line.partner_id && line.partner_id && line.partner_name){ + return self.changePartner(line.handle, { + 'id': line.partner_id, + 'display_name': line.partner_name, + }, true); + } + return true; + }) + .then(function(){ + return data.write_off ? self.quickCreateProposition(line.handle, data.model_id) : true; + }) + .then(function() { + // If still no partner set, take the one from context, if it exists + if (!line.st_line.partner_id && self.context.partner_id && self.context.partner_name) { + return self.changePartner(line.handle, { + 'id': self.context.partner_id, + 'display_name': self.context.partner_name, + }, true); + } + return true; + }) + ); + }); + return Promise.all(defs); + }, + /** + * Format the server value then compute the line + * overridden in ManualModel + * + * @see '_computeLine' + * + * @private + * @param {string} handle + * @param {Object[]} mv_lines + * @returns {Promise} + */ + _formatMoveLine: function (handle, mode, mv_lines) { + var self = this; + var line = this.getLine(handle); + line['mv_lines_'+mode] = _.uniq(line['mv_lines_'+mode].concat(mv_lines), l => l.id); + if (mv_lines[0]){ + line['remaining_'+mode] = mv_lines[0].recs_count - mv_lines.length; + } else if (line['mv_lines_'+mode].lenght == 0) { + line['remaining_'+mode] = 0; + } + this._formatLineProposition(line, mv_lines); + + if ((line.mode == 'match_other' || line.mode == "match_rp") && !line['mv_lines_'+mode].length && !line['filter_'+mode].length) { + line.mode = self._getDefaultMode(handle); + if (line.mode !== 'match_rp' && line.mode !== 'match_other' && line.mode !== 'inactive') { + return this._computeLine(line).then(function () { + return self.createProposition(handle); + }); + } + } else { + return this._computeLine(line); + } + }, + /** + * overridden in ManualModel + */ + _getDefaultMode: function(handle) { + var line = this.getLine(handle); + if (line.balance.amount === 0 + && (!line.st_line.mv_lines_match_rp || line.st_line.mv_lines_match_rp.length === 0) + && (!line.st_line.mv_lines_match_other || line.st_line.mv_lines_match_other.length === 0)) { + return 'inactive'; + } + if (line.mv_lines_match_rp && line.mv_lines_match_rp.length) { + return 'match_rp'; + } + if (line.mv_lines_match_other && line.mv_lines_match_other.length) { + return 'match_other'; + } + return 'create'; + }, + _getAvailableModes: function(handle) { + var line = this.getLine(handle); + var modes = [] + if (line.mv_lines_match_rp && line.mv_lines_match_rp.length) { + modes.push('match_rp') + } + if (line.mv_lines_match_other && line.mv_lines_match_other.length) { + modes.push('match_other') + } + modes.push('create') + return modes + }, + /** + * Apply default values for the proposition, format datas and format the + * base_amount with the decimal number from the currency + * extended in ManualModel + * + * @private + * @param {Object} line + * @param {Object} values + * @returns {Object} + */ + _formatQuickCreate: function (line, values) { + values = values || {}; + var today = new moment().utc().format(); + var account = this._formatNameGet(values.account_id); + var formatOptions = { + currency_id: line.st_line.currency_id, + }; + var amount; + switch(values.amount_type) { + case 'percentage': + amount = line.balance.amount * values.amount / 100; + break; + case 'regex': + var matching = line.st_line.name.match(new RegExp(values.amount_from_label_regex)) + amount = 0; + if (matching && matching.length == 2) { + matching = matching[1].replace(new RegExp('\\D' + values.decimal_separator, 'g'), ''); + matching = matching.replace(values.decimal_separator, '.'); + amount = parseFloat(matching) || 0; + amount = line.balance.amount > 0 ? amount : -amount; + } + break; + case 'fixed': + amount = values.amount; + break; + default: + amount = values.amount !== undefined ? values.amount : line.balance.amount; + } + + + var prop = { + 'id': _.uniqueId('createLine'), + 'label': values.label || line.st_line.name, + 'account_id': account, + 'account_code': account ? this.accounts[account.id] : '', + 'analytic_account_id': this._formatNameGet(values.analytic_account_id), + 'analytic_tag_ids': this._formatMany2ManyTags(values.analytic_tag_ids || []), + 'journal_id': this._formatNameGet(values.journal_id), + 'tax_ids': this._formatMany2ManyTagsTax(values.tax_ids || []), + 'tag_ids': values.tag_ids, + 'tax_repartition_line_id': values.tax_repartition_line_id, + 'debit': 0, + 'credit': 0, + 'date': values.date ? values.date : field_utils.parse.date(today, {}, {isUTC: true}), + 'force_tax_included': values.force_tax_included || false, + 'base_amount': amount, + 'percent': values.amount_type === "percentage" ? values.amount : null, + 'link': values.link, + 'display': true, + 'invalid': true, + 'to_check': !!values.to_check, + '__tax_to_recompute': true, + '__focus': '__focus' in values ? values.__focus : true, + }; + if (prop.base_amount) { + // Call to format and parse needed to round the value to the currency precision + var sign = prop.base_amount < 0 ? -1 : 1; + var amount = field_utils.format.monetary(Math.abs(prop.base_amount), {}, formatOptions); + prop.base_amount = sign * field_utils.parse.monetary(amount, {}, formatOptions); + } + + prop.amount = prop.base_amount; + return prop; + }, + /** + * Return list of account_move_line that has been selected and needs to be removed + * from other calls. + * + * @private + * @returns {Array} list of excluded ids + */ + _getExcludedIds: function () { + var excludedIds = []; + _.each(this.lines, function(line) { + if (line.reconciliation_proposition) { + _.each(line.reconciliation_proposition, function(prop) { + if (parseInt(prop['id'])) { + excludedIds.push(prop['id']); + } + }); + } + }); + return excludedIds; + }, + /** + * Defined whether the line is to be displayed or not. Here, we only display + * the line if it comes from the server or if an account is defined when it + * is created + * extended in ManualModel + * + * @private + * @param {object} prop + * @returns {Boolean} + */ + _isDisplayedProposition: function (prop) { + return !isNaN(prop.id) || !!prop.account_id; + }, + /** + * extended in ManualModel + * @private + * @param {object} prop + * @returns {Boolean} + */ + _isValid: function (prop) { + return !isNaN(prop.id) || prop.account_id && prop.amount && prop.label && !!prop.label.length; + }, + /** + * Fetch 'account.reconciliation.widget' propositions. + * overridden in ManualModel + * + * @see '_formatMoveLine' + * + * @private + * @param {string} handle + * @returns {Promise} + */ + _performMoveLine: function (handle, mode, limit) { + limit = limit || this.limitMoveLines; + var line = this.getLine(handle); + var excluded_ids = _.map(_.union(line.reconciliation_proposition, line.mv_lines_match_rp, line.mv_lines_match_other), function (prop) { + return _.isNumber(prop.id) ? prop.id : null; + }).filter(id => id != null); + var filter = line['filter_'+mode] || ""; + return this._rpc({ + model: 'account.reconciliation.widget', + method: 'get_move_lines_for_bank_statement_line', + args: [line.id, line.st_line.partner_id, excluded_ids, filter, 0, limit, mode === 'match_rp' ? 'rp' : 'other'], + context: this.context, + }) + .then(this._formatMoveLine.bind(this, handle, mode)); + }, + /** + * format the proposition to send information server side + * extended in ManualModel + * + * @private + * @param {object} line + * @param {object} prop + * @returns {object} + */ + _formatToProcessReconciliation: function (line, prop) { + var amount = -prop.amount; + if (prop.partial_amount) { + amount = -prop.partial_amount; + } + + var result = { + name : prop.label, + debit : amount > 0 ? amount : 0, + credit : amount < 0 ? -amount : 0, + tax_exigible: prop.tax_exigible, + analytic_tag_ids: [[6, null, _.pluck(prop.analytic_tag_ids, 'id')]] + }; + if (!isNaN(prop.id)) { + result.counterpart_aml_id = prop.id; + } else { + result.account_id = prop.account_id.id; + if (prop.journal_id) { + result.journal_id = prop.journal_id.id; + } + } + if (!isNaN(prop.id)) result.counterpart_aml_id = prop.id; + if (prop.analytic_account_id) result.analytic_account_id = prop.analytic_account_id.id; + if (prop.tax_ids && prop.tax_ids.length) result.tax_ids = [[6, null, _.pluck(prop.tax_ids, 'id')]]; + + if (prop.tag_ids && prop.tag_ids.length) result.tag_ids = [[6, null, prop.tag_ids]]; + if (prop.tax_repartition_line_id) result.tax_repartition_line_id = prop.tax_repartition_line_id; + if (prop.reconcileModelId) result.reconcile_model_id = prop.reconcileModelId + return result; + }, + /** + * Hook to handle return values of the validate's line process. + * + * @private + * @param {Object} data + * @param {Object[]} data.moves list of processed account.move + * @returns {Deferred} + */ + _validatePostProcess: function (data) { + var self = this; + return Promise.resolve(); + }, +}); + + +/** + * Model use to fetch, format and update 'account.move.line' and 'res.partner' + * datas allowing manual reconciliation + */ +var ManualModel = StatementModel.extend({ + quickCreateFields: ['account_id', 'journal_id', 'amount', 'analytic_account_id', 'label', 'tax_ids', 'force_tax_included', 'analytic_tag_ids', 'date', 'to_check'], + + modes: ['create', 'match'], + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + /** + * Return a boolean telling if load button needs to be displayed or not + * + * @returns {boolean} true if load more button needs to be displayed + */ + hasMoreLines: function () { + if (this.manualLines.length > this.pagerIndex) { + return true; + } + return false; + }, + /** + * load data from + * - 'account.reconciliation.widget' fetch the lines to reconciliate + * - 'account.account' fetch all account code + * + * @param {Object} context + * @param {string} [context.mode] 'customers', 'suppliers' or 'accounts' + * @param {integer[]} [context.company_ids] + * @param {integer[]} [context.partner_ids] used for 'customers' and + * 'suppliers' mode + * @returns {Promise} + */ + load: function (context) { + var self = this; + this.context = context; + + var domain_account_id = []; + if (context && context.company_ids) { + domain_account_id.push(['company_id', 'in', context.company_ids]); + } + + var def_account = this._rpc({ + model: 'account.account', + method: 'search_read', + domain: domain_account_id, + fields: ['code'], + }) + .then(function (accounts) { + self.account_ids = _.pluck(accounts, 'id'); + self.accounts = _.object(self.account_ids, _.pluck(accounts, 'code')); + }); + + var domainReconcile = []; + var session_allowed_company_ids = session.user_context.allowed_company_ids || [] + var company_ids = context && context.company_ids || session_allowed_company_ids.slice(0, 1); + + if (company_ids) { + domainReconcile.push(['company_id', 'in', company_ids]); + } + var def_reconcileModel = this._loadReconciliationModel({domainReconcile: domainReconcile}); + var def_taxes = this._loadTaxes(); + + return Promise.all([def_reconcileModel, def_account, def_taxes]).then(function () { + switch(context.mode) { + case 'customers': + case 'suppliers': + var mode = context.mode === 'customers' ? 'receivable' : 'payable'; + var args = ['partner', context.partner_ids || null, mode]; + return self._rpc({ + model: 'account.reconciliation.widget', + method: 'get_data_for_manual_reconciliation', + args: args, + context: context, + }) + .then(function (result) { + self.manualLines = result; + self.valuenow = 0; + self.valuemax = Object.keys(self.manualLines).length; + var lines = self.manualLines.slice(0, self.defaultDisplayQty); + self.pagerIndex = lines.length; + return self.loadData(lines); + }); + case 'accounts': + return self._rpc({ + model: 'account.reconciliation.widget', + method: 'get_data_for_manual_reconciliation', + args: ['account', context.account_ids || self.account_ids], + context: context, + }) + .then(function (result) { + self.manualLines = result; + self.valuenow = 0; + self.valuemax = Object.keys(self.manualLines).length; + var lines = self.manualLines.slice(0, self.defaultDisplayQty); + self.pagerIndex = lines.length; + return self.loadData(lines); + }); + default: + var partner_ids = context.partner_ids || null; + var account_ids = context.account_ids || self.account_ids || null; + return self._rpc({ + model: 'account.reconciliation.widget', + method: 'get_all_data_for_manual_reconciliation', + args: [partner_ids, account_ids], + context: context, + }) + .then(function (result) { + // Flatten the result + self.manualLines = [].concat(result.accounts, result.customers, result.suppliers); + self.valuenow = 0; + self.valuemax = Object.keys(self.manualLines).length; + var lines = self.manualLines.slice(0, self.defaultDisplayQty); + self.pagerIndex = lines.length; + return self.loadData(lines); + }); + } + }); + }, + + /** + * Reload data by calling load + * It overrides super.reload() because + * it is not adapted for this model. + * + * Use case: coming back to manual reconcilation + * in breadcrumb + */ + reload: function () { + this.lines = {}; + return this.load(this.context); + }, + + /** + * Load more partners/accounts + * overridden in ManualModel + * + * @param {integer} qty quantity to load + * @returns {Promise} + */ + loadMore: function(qty) { + if (qty === undefined) { + qty = this.defaultDisplayQty; + } + var lines = this.manualLines.slice(this.pagerIndex, this.pagerIndex + qty); + this.pagerIndex += qty; + return this.loadData(lines); + }, + /** + * Method to load informations on lines + * + * @param {Array} lines manualLines to load + * @returns {Promise} + */ + loadData: function(lines) { + var self = this; + var defs = []; + _.each(lines, function (l) { + defs.push(self._formatLine(l.mode, l)); + }); + return Promise.all(defs); + + }, + /** + * Mark the account or the partner as reconciled + * + * @param {(string|string[])} handle + * @returns {Promise<Array>} resolved with the handle array + */ + validate: function (handle) { + var self = this; + var handles = []; + if (handle) { + handles = [handle]; + } else { + _.each(this.lines, function (line, handle) { + if (!line.reconciled && !line.balance.amount && line.reconciliation_proposition.length) { + handles.push(handle); + } + }); + } + + var def = Promise.resolve(); + var process_reconciliations = []; + var reconciled = []; + _.each(handles, function (handle) { + var line = self.getLine(handle); + if(line.reconciled) { + return; + } + var props = line.reconciliation_proposition; + if (!props.length) { + self.valuenow++; + reconciled.push(handle); + line.reconciled = true; + process_reconciliations.push({ + id: line.type === 'accounts' ? line.account_id : line.partner_id, + type: line.type, + mv_line_ids: [], + new_mv_line_dicts: [], + }); + } else { + var mv_line_ids = _.pluck(_.filter(props, function (prop) {return !isNaN(prop.id);}), 'id'); + var new_mv_line_dicts = _.map(_.filter(props, function (prop) {return isNaN(prop.id) && prop.display;}), self._formatToProcessReconciliation.bind(self, line)); + process_reconciliations.push({ + id: null, + type: null, + mv_line_ids: mv_line_ids, + new_mv_line_dicts: new_mv_line_dicts + }); + } + line.reconciliation_proposition = []; + }); + if (process_reconciliations.length) { + def = self._rpc({ + model: 'account.reconciliation.widget', + method: 'process_move_lines', + args: [process_reconciliations], + }); + } + + return def.then(function() { + var defs = []; + var account_ids = []; + var partner_ids = []; + _.each(handles, function (handle) { + var line = self.getLine(handle); + if (line.reconciled) { + return; + } + line.filter_match = ""; + defs.push(self._performMoveLine(handle, 'match').then(function () { + if(!line.mv_lines_match.length) { + self.valuenow++; + reconciled.push(handle); + line.reconciled = true; + if (line.type === 'accounts') { + account_ids.push(line.account_id.id); + } else { + partner_ids.push(line.partner_id); + } + } + })); + }); + return Promise.all(defs).then(function () { + if (partner_ids.length) { + self._rpc({ + model: 'res.partner', + method: 'mark_as_reconciled', + args: [partner_ids], + }); + } + return {reconciled: reconciled, updated: _.difference(handles, reconciled)}; + }); + }); + }, + removeProposition: function (handle, id) { + var self = this; + var line = this.getLine(handle); + var defs = []; + var prop = _.find(line.reconciliation_proposition, {'id' : id}); + if (prop) { + line.reconciliation_proposition = _.filter(line.reconciliation_proposition, function (p) { + return p.id !== prop.id && p.id !== prop.link && p.link !== prop.id && (!p.link || p.link !== prop.link); + }); + line.mv_lines_match = line.mv_lines_match || []; + line.mv_lines_match.unshift(prop); + + // No proposition left and then, reset the st_line partner. + if(line.reconciliation_proposition.length == 0 && line.st_line.has_no_partner) + defs.push(self.changePartner(line.handle)); + } + line.mode = (id || line.mode !== "create") && isNaN(id) ? 'create' : 'match'; + defs.push(this._computeLine(line)); + return Promise.all(defs).then(function() { + return self.changeMode(handle, line.mode, true); + }) + }, + + //-------------------------------------------------------------------------- + // Private + //-------------------------------------------------------------------------- + + /** + * override change the balance type to display or not the reconcile button + * + * @override + * @private + * @param {Object} line + * @returns {Promise} + */ + _computeLine: function (line) { + return this._super(line).then(function () { + var props = _.reject(line.reconciliation_proposition, 'invalid'); + _.each(line.reconciliation_proposition, function(p) { + delete p.is_move_line; + }); + line.balance.type = -1; + if (!line.balance.amount_currency && props.length) { + line.balance.type = 1; + } else if(_.any(props, function (prop) {return prop.amount > 0;}) && + _.any(props, function (prop) {return prop.amount < 0;})) { + line.balance.type = 0; + } + }); + }, + /** + * Format each server lines and propositions and compute all lines + * + * @see '_computeLine' + * + * @private + * @param {'customers' | 'suppliers' | 'accounts'} type + * @param {Object} data + * @returns {Promise} + */ + _formatLine: function (type, data) { + var line = this.lines[_.uniqueId('rline')] = _.extend(data, { + type: type, + reconciled: false, + mode: 'inactive', + limitMoveLines: this.limitMoveLines, + filter_match: "", + reconcileModels: this.reconcileModels, + account_id: this._formatNameGet([data.account_id, data.account_name]), + st_line: data, + visible: true + }); + this._formatLineProposition(line, line.reconciliation_proposition); + if (!line.reconciliation_proposition.length) { + delete line.reconciliation_proposition; + } + return this._computeLine(line); + }, + /** + * override to add journal_id + * + * @override + * @private + * @param {Object} line + * @param {Object} props + */ + _formatLineProposition: function (line, props) { + var self = this; + this._super(line, props); + if (props.length) { + _.each(props, function (prop) { + var tmp_value = prop.debit || prop.credit; + prop.credit = prop.credit !== 0 ? 0 : tmp_value; + prop.debit = prop.debit !== 0 ? 0 : tmp_value; + prop.amount = -prop.amount; + prop.journal_id = self._formatNameGet(prop.journal_id || line.journal_id); + prop.to_check = !!prop.to_check; + }); + } + }, + /** + * override to add journal_id on tax_created_line + * + * @private + * @param {Object} line + * @param {Object} values + * @returns {Object} + */ + _formatQuickCreate: function (line, values) { + // Add journal to created line + if (values && values.journal_id === undefined && line && line.createForm && line.createForm.journal_id) { + values.journal_id = line.createForm.journal_id; + } + return this._super(line, values); + }, + /** + * @override + * @param {object} prop + * @returns {Boolean} + */ + _isDisplayedProposition: function (prop) { + return !!prop.journal_id && this._super(prop); + }, + /** + * @override + * @param {object} prop + * @returns {Boolean} + */ + _isValid: function (prop) { + return prop.journal_id && this._super(prop); + }, + /** + * Fetch 'account.move.line' propositions. + * + * @see '_formatMoveLine' + * + * @override + * @private + * @param {string} handle + * @returns {Promise} + */ + _performMoveLine: function (handle, mode, limit) { + limit = limit || this.limitMoveLines; + var line = this.getLine(handle); + var excluded_ids = _.map(_.union(line.reconciliation_proposition, line.mv_lines_match), function (prop) { + return _.isNumber(prop.id) ? prop.id : null; + }).filter(id => id != null); + var filter = line.filter_match || ""; + var args = [line.account_id.id, line.partner_id, excluded_ids, filter, 0, limit]; + return this._rpc({ + model: 'account.reconciliation.widget', + method: 'get_move_lines_for_manual_reconciliation', + args: args, + context: this.context, + }) + .then(this._formatMoveLine.bind(this, handle, '')); + }, + + _formatToProcessReconciliation: function (line, prop) { + var result = this._super(line, prop); + result['date'] = prop.date; + return result; + }, + _getDefaultMode: function(handle) { + var line = this.getLine(handle); + if (line.balance.amount === 0 && (!line.st_line.mv_lines_match || line.st_line.mv_lines_match.length === 0)) { + return 'inactive'; + } + return line.mv_lines_match.length > 0 ? 'match' : 'create'; + }, + _formatMoveLine: function (handle, mode, mv_lines) { + var self = this; + var line = this.getLine(handle); + line.mv_lines_match = _.uniq((line.mv_lines_match || []).concat(mv_lines), l => l.id); + this._formatLineProposition(line, mv_lines); + + if (line.mode !== 'create' && !line.mv_lines_match.length && !line.filter_match.length) { + line.mode = this.avoidCreate || !line.balance.amount ? 'inactive' : 'create'; + if (line.mode === 'create') { + return this._computeLine(line).then(function () { + return self.createProposition(handle); + }); + } + } else { + return this._computeLine(line); + } + }, +}); + +return { + StatementModel: StatementModel, + ManualModel: ManualModel, +}; +}); diff --git a/base_accounting_kit/static/src/js/payment_render.js b/base_accounting_kit/static/src/js/payment_render.js new file mode 100644 index 0000000..96266ce --- /dev/null +++ b/base_accounting_kit/static/src/js/payment_render.js @@ -0,0 +1,929 @@ +odoo.define('base_accounting_kit.ReconciliationRenderer', function (require) { +"use strict"; + +var Widget = require('web.Widget'); +var FieldManagerMixin = require('web.FieldManagerMixin'); +var relational_fields = require('web.relational_fields'); +var basic_fields = require('web.basic_fields'); +var core = require('web.core'); +var time = require('web.time'); +var session = require('web.session'); +var qweb = core.qweb; +var _t = core._t; + + +/** + * rendering of the bank statement action contains progress bar, title and + * auto reconciliation button + */ +var StatementRenderer = Widget.extend(FieldManagerMixin, { + template: 'reconciliation.statement', + events: { + 'click *[rel="do_action"]': '_onDoAction', + 'click button.js_load_more': '_onLoadMore', + }, + /** + * @override + */ + init: function (parent, model, state) { + this._super(parent); + this.model = model; + this._initialState = state; + }, + /** + * display iniial state and create the name statement field + * + * @override + */ + start: function () { + var self = this; + var defs = [this._super.apply(this, arguments)]; + this.time = Date.now(); + this.$progress = $(''); + + return Promise.all(defs); + }, + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + /* + * hide the button to load more statement line + */ + hideLoadMoreButton: function (show) { + if (!show) { + this.$('.js_load_more').show(); + } + else { + this.$('.js_load_more').hide(); + } + }, + showRainbowMan: function (state) { + if (this.model.display_context !== 'validate') { + return + } + var dt = Date.now()-this.time; + var $done = $(qweb.render("reconciliation.done", { + 'duration': moment(dt).utc().format(time.getLangTimeFormat()), + 'number': state.valuenow, + 'timePerTransaction': Math.round(dt/1000/state.valuemax), + 'context': state.context, + })); + $done.find('*').addClass('o_reward_subcontent'); + $done.find('.button_close_statement').click(this._onCloseBankStatement.bind(this)); + $done.find('.button_back_to_statement').click(this._onGoToBankStatement.bind(this)); + // display rainbowman after full reconciliation + if (session.show_effect) { + this.trigger_up('show_effect', { + type: 'rainbow_man', + fadeout: 'no', + message: $done, + }); + this.$el.css('min-height', '450px'); + } else { + $done.appendTo(this.$el); + } + }, + /** + * update the statement rendering + * + * @param {object} state - statement data + * @param {integer} state.valuenow - for the progress bar + * @param {integer} state.valuemax - for the progress bar + * @param {string} state.title - for the progress bar + * @param {[object]} [state.notifications] + */ + update: function (state) { + var self = this; + this._updateProgressBar(state); + + if (state.valuenow === state.valuemax && !this.$('.done_message').length) { + this.showRainbowMan(state); + } + + if (state.notifications) { + this._renderNotifications(state.notifications); + } + }, + _updateProgressBar: function(state) { + this.$progress.find('.valuenow').text(state.valuenow); + this.$progress.find('.valuemax').text(state.valuemax); + this.$progress.find('.progress-bar') + .attr('aria-valuenow', state.valuenow) + .attr('aria-valuemax', state.valuemax) + .css('width', (state.valuenow/state.valuemax*100) + '%'); + }, + + //-------------------------------------------------------------------------- + // Private + //-------------------------------------------------------------------------- + /** + * render the notifications + * + * @param {[object]} notifications + */ + _renderNotifications: function(notifications) { + this.$(".notification_area").empty(); + for (var i=0; i<notifications.length; i++) { + var $notification = $(qweb.render("reconciliation.notification", notifications[i])).hide(); + $notification.appendTo(this.$(".notification_area")).slideDown(300); + } + }, + + //-------------------------------------------------------------------------- + // Handlers + //-------------------------------------------------------------------------- + + /** + * @private + * Click on close bank statement button, this will + * close and then open form view of bank statement + * @param {MouseEvent} event + */ + _onCloseBankStatement: function (e) { + this.trigger_up('close_statement'); + }, + /** + * @private + * @param {MouseEvent} event + */ + _onDoAction: function(e) { + e.preventDefault(); + var name = e.currentTarget.dataset.action_name; + var model = e.currentTarget.dataset.model; + if (e.currentTarget.dataset.ids) { + var ids = e.currentTarget.dataset.ids.split(",").map(Number); + var domain = [['id', 'in', ids]]; + } else { + var domain = e.currentTarget.dataset.domain; + } + var context = e.currentTarget.dataset.context; + var tag = e.currentTarget.dataset.tag; + if (tag) { + this.do_action({ + type: 'ir.actions.client', + tag: tag, + context: context, + }) + } else { + this.do_action({ + name: name, + res_model: model, + domain: domain, + context: context, + views: [[false, 'list'], [false, 'form']], + type: 'ir.actions.act_window', + view_mode: "list" + }); + } + }, + /** + * Open the list view for account.bank.statement model + * @private + * @param {MouseEvent} event + */ + _onGoToBankStatement: function (e) { + var journalId = $(e.target).attr('data_journal_id'); + if (journalId) { + journalId = parseInt(journalId); + } + $('.o_reward').remove(); + this.do_action({ + name: 'Bank Statements', + res_model: 'account.bank.statement', + views: [[false, 'list'], [false, 'form']], + type: 'ir.actions.act_window', + context: {search_default_journal_id: journalId, 'journal_type':'bank'}, + view_mode: 'form', + }); + }, + /** + * Load more statement lines for reconciliation + * @private + * @param {MouseEvent} event + */ + _onLoadMore: function (e) { + this.trigger_up('load_more'); + }, +}); + + +/** + * rendering of the bank statement line, contains line data, proposition and + * view for 'match' and 'create' mode + */ +var LineRenderer = Widget.extend(FieldManagerMixin, { + template: "reconciliation.line", + events: { + 'click .accounting_view caption .o_buttons button': '_onValidate', + 'click .accounting_view tfoot': '_onChangeTab', + 'click': '_onTogglePanel', + 'click .o_field_widget': '_onStopPropagation', + 'keydown .o_input, .edit_amount_input': '_onStopPropagation', + 'click .o_notebook li a': '_onChangeTab', + 'click .cell': '_onEditAmount', + 'change input.filter': '_onFilterChange', + 'click .match .load-more a': '_onLoadMore', + 'click .match .mv_line td': '_onSelectMoveLine', + 'click .accounting_view tbody .mv_line td': '_onSelectProposition', + 'click .o_reconcile_models button': '_onQuickCreateProposition', + 'click .create .add_line': '_onCreateProposition', + 'click .reconcile_model_create': '_onCreateReconcileModel', + 'click .reconcile_model_edit': '_onEditReconcileModel', + 'keyup input': '_onInputKeyup', + 'blur input': '_onInputKeyup', + 'keydown': '_onKeydown', + }, + custom_events: _.extend({}, FieldManagerMixin.custom_events, { + 'field_changed': '_onFieldChanged', + }), + _avoidFieldUpdate: {}, + MV_LINE_DEBOUNCE: 200, + + _onKeydown: function (ev) { + switch (ev.which) { + case $.ui.keyCode.ENTER: + this.trigger_up('navigation_move', {direction: 'validate', handle: this.handle}); + break; + case $.ui.keyCode.UP: + ev.stopPropagation(); + ev.preventDefault(); + this.trigger_up('navigation_move', {direction: 'up', handle: this.handle}); + break; + case $.ui.keyCode.DOWN: + ev.stopPropagation(); + ev.preventDefault(); + this.trigger_up('navigation_move', {direction: 'down', handle: this.handle}); + break; + } + }, + + /** + * create partner_id field in editable mode + * + * @override + */ + init: function (parent, model, state) { + this._super(parent); + FieldManagerMixin.init.call(this); + + this.model = model; + this._initialState = state; + if (this.MV_LINE_DEBOUNCE) { + this._onSelectMoveLine = _.debounce(this._onSelectMoveLine, this.MV_LINE_DEBOUNCE, true); + } else { + this._onSelectMoveLine = this._onSelectMoveLine; + } + }, + /** + * @override + */ + start: function () { + var self = this; + var def1 = this._makePartnerRecord(this._initialState.st_line.partner_id, this._initialState.st_line.partner_name).then(function (recordID) { + self.fields = { + partner_id : new relational_fields.FieldMany2One(self, + 'partner_id', + self.model.get(recordID), { + mode: 'edit', + attrs: { + placeholder: self._initialState.st_line.communication_partner_name || _t('Select Partner'), + } + } + ) + }; + self.fields.partner_id.insertAfter(self.$('.accounting_view caption .o_buttons')); + }); + var def3 = session.user_has_group('analytic.group_analytic_tags').then(function(has_group) { + self.group_tags = has_group; + }); + var def4 = session.user_has_group('analytic.group_analytic_accounting').then(function(has_group) { + self.group_acc = has_group; + }); + $('<span class="line_info_button fa fa-info-circle"/>') + .appendTo(this.$('thead .cell_info_popover')) + .attr("data-content", qweb.render('reconciliation.line.statement_line.details', {'state': this._initialState})); + this.$el.popover({ + 'selector': '.line_info_button', + 'placement': 'left', + 'container': this.$el, + 'html': true, + // disable bootstrap sanitizer because we use a table that has been + // rendered using qweb.render so it is safe and also because sanitizer escape table by default. + 'sanitize': false, + 'trigger': 'hover', + 'animation': false, + 'toggle': 'popover' + }); + var def2 = this._super.apply(this, arguments); + return Promise.all([def1, def2, def3, def4]); + }, + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + /** + * update the statement line rendering + * + * @param {object} state - statement line + */ + update: function (state) { + var self = this; + // isValid + var to_check_checked = !!(state.to_check); + this.$('caption .o_buttons button.o_validate').toggleClass('d-none', !!state.balance.type && !to_check_checked); + this.$('caption .o_buttons button.o_reconcile').toggleClass('d-none', state.balance.type <= 0 || to_check_checked); + this.$('caption .o_buttons .o_no_valid').toggleClass('d-none', state.balance.type >= 0 || to_check_checked); + self.$('caption .o_buttons button.o_validate').toggleClass('text-warning', to_check_checked); + + // partner_id + this._makePartnerRecord(state.st_line.partner_id, state.st_line.partner_name).then(function (recordID) { + self.fields.partner_id.reset(self.model.get(recordID)); + self.$el.attr('data-partner', state.st_line.partner_id); + }); + + // mode + this.$el.data('mode', state.mode).attr('data-mode', state.mode); + this.$('.o_notebook li a').attr('aria-selected', false); + this.$('.o_notebook li a').removeClass('active'); + this.$('.o_notebook .tab-content .tab-pane').removeClass('active'); + this.$('.o_notebook li a[href*="notebook_page_' + state.mode + '"]').attr('aria-selected', true); + this.$('.o_notebook li a[href*="notebook_page_' + state.mode + '"]').addClass('active'); + this.$('.o_notebook .tab-content .tab-pane[id*="notebook_page_' + state.mode + '"]').addClass('active'); + this.$('.create, .match').each(function () { + $(this).removeAttr('style'); + }); + + // reconciliation_proposition + var $props = this.$('.accounting_view tbody').empty(); + + // Search propositions that could be a partial credit/debit. + var props = []; + var balance = state.balance.amount_currency; + _.each(state.reconciliation_proposition, function (prop) { + if (prop.display) { + props.push(prop); + } + }); + + _.each(props, function (line) { + var $line = $(qweb.render("reconciliation.line.mv_line", {'line': line, 'state': state, 'proposition': true})); + if (!isNaN(line.id)) { + $('<span class="line_info_button fa fa-info-circle"/>') + .appendTo($line.find('.cell_info_popover')) + .attr("data-content", qweb.render('reconciliation.line.mv_line.details', {'line': line})); + } + $props.append($line); + }); + + // mv_lines + var matching_modes = self.model.modes.filter(x => x.startsWith('match')); + for (let i = 0; i < matching_modes.length; i++) { + var stateMvLines = state['mv_lines_'+matching_modes[i]] || []; + var recs_count = stateMvLines.length > 0 ? stateMvLines[0].recs_count : 0; + var remaining = state['remaining_' + matching_modes[i]]; + var $mv_lines = this.$('div[id*="notebook_page_' + matching_modes[i] + '"] .match table tbody').empty(); + this.$('.o_notebook li a[href*="notebook_page_' + matching_modes[i] + '"]').parent().toggleClass('d-none', stateMvLines.length === 0 && !state['filter_'+matching_modes[i]]); + + _.each(stateMvLines, function (line) { + var $line = $(qweb.render("reconciliation.line.mv_line", {'line': line, 'state': state})); + if (!isNaN(line.id)) { + $('<span class="line_info_button fa fa-info-circle"/>') + .appendTo($line.find('.cell_info_popover')) + .attr("data-content", qweb.render('reconciliation.line.mv_line.details', {'line': line})); + } + $mv_lines.append($line); + }); + this.$('div[id*="notebook_page_' + matching_modes[i] + '"] .match div.load-more').toggle(remaining > 0); + this.$('div[id*="notebook_page_' + matching_modes[i] + '"] .match div.load-more span').text(remaining); + } + + // balance + this.$('.popover').remove(); + this.$('table tfoot').html(qweb.render("reconciliation.line.balance", {'state': state})); + + // create form + if (state.createForm) { + var createPromise; + if (!this.fields.account_id) { + createPromise = this._renderCreate(state); + } + Promise.resolve(createPromise).then(function(){ + var data = self.model.get(self.handleCreateRecord).data; + return self.model.notifyChanges(self.handleCreateRecord, state.createForm) + .then(function () { + // FIXME can't it directly written REPLACE_WITH ids=state.createForm.analytic_tag_ids + return self.model.notifyChanges(self.handleCreateRecord, {analytic_tag_ids: {operation: 'REPLACE_WITH', ids: []}}) + }) + .then(function (){ + var defs = []; + _.each(state.createForm.analytic_tag_ids, function (tag) { + defs.push(self.model.notifyChanges(self.handleCreateRecord, {analytic_tag_ids: {operation: 'ADD_M2M', ids: tag}})); + }); + return Promise.all(defs); + }) + .then(function () { + return self.model.notifyChanges(self.handleCreateRecord, {tax_ids: {operation: 'REPLACE_WITH', ids: []}}) + }) + .then(function (){ + var defs = []; + _.each(state.createForm.tax_ids, function (tag) { + defs.push(self.model.notifyChanges(self.handleCreateRecord, {tax_ids: {operation: 'ADD_M2M', ids: tag}})); + }); + return Promise.all(defs); + }) + .then(function () { + var record = self.model.get(self.handleCreateRecord); + _.each(self.fields, function (field, fieldName) { + if (self._avoidFieldUpdate[fieldName]) return; + if (fieldName === "partner_id") return; + if ((data[fieldName] || state.createForm[fieldName]) && !_.isEqual(state.createForm[fieldName], data[fieldName])) { + field.reset(record); + } + if (fieldName === 'tax_ids') { + if (!state.createForm[fieldName].length || state.createForm[fieldName].length > 1) { + $('.create_force_tax_included').addClass('d-none'); + } + else { + $('.create_force_tax_included').removeClass('d-none'); + var price_include = state.createForm[fieldName][0].price_include; + var force_tax_included = state.createForm[fieldName][0].force_tax_included; + self.$('.create_force_tax_included input').prop('checked', force_tax_included); + self.$('.create_force_tax_included input').prop('disabled', price_include); + } + } + }); + if (state.to_check) { + // Set the to_check field to true if global to_check is set + self.$('.create_to_check input').prop('checked', state.to_check).change(); + } + return true; + }); + }); + } + this.$('.create .add_line').toggle(!!state.balance.amount_currency); + }, + + updatePartialAmount: function(line_id, amount) { + var $line = this.$('.mv_line[data-line-id='+line_id+']'); + $line.find('.edit_amount').addClass('d-none'); + $line.find('.edit_amount_input').removeClass('d-none'); + $line.find('.edit_amount_input').focus(); + $line.find('.edit_amount_input').val(amount); + $line.find('.line_amount').addClass('d-none'); + }, + + //-------------------------------------------------------------------------- + // Private + //-------------------------------------------------------------------------- + + /** + * @private + * @param {jQueryElement} $el + */ + _destroyPopover: function ($el) { + var popover = $el.data('bs.popover'); + if (popover) { + popover.dispose(); + } + }, + /** + * @private + * @param {integer} partnerID + * @param {string} partnerName + * @returns {string} local id of the dataPoint + */ + _makePartnerRecord: function (partnerID, partnerName) { + var field = { + relation: 'res.partner', + type: 'many2one', + name: 'partner_id', + }; + if (partnerID) { + field.value = [partnerID, partnerName]; + } + return this.model.makeRecord('account.bank.statement.line', [field], { + partner_id: { + domain: ["|", ["is_company", "=", true], ["parent_id", "=", false]], + options: { + no_open: true + } + } + }); + }, + + /** + * create account_id, tax_ids, analytic_account_id, analytic_tag_ids, label and amount fields + * + * @private + * @param {object} state - statement line + * @returns {Promise} + */ + _renderCreate: function (state) { + var self = this; + return this.model.makeRecord('account.bank.statement.line', [{ + relation: 'account.account', + type: 'many2one', + name: 'account_id', + domain: [['company_id', '=', state.st_line.company_id], ['deprecated', '=', false]], + }, { + relation: 'account.journal', + type: 'many2one', + name: 'journal_id', + domain: [['company_id', '=', state.st_line.company_id]], + }, { + relation: 'account.tax', + type: 'many2many', + name: 'tax_ids', + domain: [['company_id', '=', state.st_line.company_id]], + }, { + relation: 'account.analytic.account', + type: 'many2one', + name: 'analytic_account_id', + }, { + relation: 'account.analytic.tag', + type: 'many2many', + name: 'analytic_tag_ids', + }, { + type: 'boolean', + name: 'force_tax_included', + }, { + type: 'char', + name: 'label', + }, { + type: 'float', + name: 'amount', + }, { + type: 'char', //TODO is it a bug or a feature when type date exists ? + name: 'date', + }, { + type: 'boolean', + name: 'to_check', + }], { + account_id: { + string: _t("Account"), + }, + label: {string: _t("Label")}, + amount: {string: _t("Account")}, + }).then(function (recordID) { + self.handleCreateRecord = recordID; + var record = self.model.get(self.handleCreateRecord); + + self.fields.account_id = new relational_fields.FieldMany2One(self, + 'account_id', record, {mode: 'edit', attrs: {can_create:false}}); + + self.fields.journal_id = new relational_fields.FieldMany2One(self, + 'journal_id', record, {mode: 'edit'}); + + self.fields.tax_ids = new relational_fields.FieldMany2ManyTags(self, + 'tax_ids', record, {mode: 'edit', additionalContext: {append_type_to_tax_name: true}}); + + self.fields.analytic_account_id = new relational_fields.FieldMany2One(self, + 'analytic_account_id', record, {mode: 'edit'}); + + self.fields.analytic_tag_ids = new relational_fields.FieldMany2ManyTags(self, + 'analytic_tag_ids', record, {mode: 'edit'}); + + self.fields.force_tax_included = new basic_fields.FieldBoolean(self, + 'force_tax_included', record, {mode: 'edit'}); + + self.fields.label = new basic_fields.FieldChar(self, + 'label', record, {mode: 'edit'}); + + self.fields.amount = new basic_fields.FieldFloat(self, + 'amount', record, {mode: 'edit'}); + + self.fields.date = new basic_fields.FieldDate(self, + 'date', record, {mode: 'edit'}); + + self.fields.to_check = new basic_fields.FieldBoolean(self, + 'to_check', record, {mode: 'edit'}); + + var $create = $(qweb.render("reconciliation.line.create", {'state': state, 'group_tags': self.group_tags, 'group_acc': self.group_acc})); + self.fields.account_id.appendTo($create.find('.create_account_id .o_td_field')) + .then(addRequiredStyle.bind(self, self.fields.account_id)); + self.fields.journal_id.appendTo($create.find('.create_journal_id .o_td_field')); + self.fields.tax_ids.appendTo($create.find('.create_tax_id .o_td_field')); + self.fields.analytic_account_id.appendTo($create.find('.create_analytic_account_id .o_td_field')); + self.fields.analytic_tag_ids.appendTo($create.find('.create_analytic_tag_ids .o_td_field')); + self.fields.force_tax_included.appendTo($create.find('.create_force_tax_included .o_td_field')); + self.fields.label.appendTo($create.find('.create_label .o_td_field')) + .then(addRequiredStyle.bind(self, self.fields.label)); + self.fields.amount.appendTo($create.find('.create_amount .o_td_field')) + .then(addRequiredStyle.bind(self, self.fields.amount)); + self.fields.date.appendTo($create.find('.create_date .o_td_field')); + self.fields.to_check.appendTo($create.find('.create_to_check .o_td_field')); + self.$('.create').append($create); + + function addRequiredStyle(widget) { + widget.$el.addClass('o_required_modifier'); + } + }); + }, + + //-------------------------------------------------------------------------- + // Handlers + //-------------------------------------------------------------------------- + /** + * The event on the partner m2o widget was propagated to the bank statement + * line widget, causing it to expand and the others to collapse. This caused + * the dropdown to be poorly placed and an unwanted update of this widget. + * + * @private + */ + _onStopPropagation: function(ev) { + ev.stopPropagation(); + }, + + /** + * @private + * @param {MouseEvent} event + */ + _onCreateReconcileModel: function (event) { + event.preventDefault(); + var self = this; + this.do_action({ + type: 'ir.actions.act_window', + res_model: 'account.reconcile.model', + views: [[false, 'form']], + target: 'current' + }, + { + on_reverse_breadcrumb: function() {self.trigger_up('reload');}, + }); + }, + _editAmount: function (event) { + event.stopPropagation(); + var $line = $(event.target); + var moveLineId = $line.closest('.mv_line').data('line-id'); + this.trigger_up('partial_reconcile', {'data': {mvLineId: moveLineId, 'amount': $line.val()}}); + }, + _onEditAmount: function (event) { + event.preventDefault(); + event.stopPropagation(); + // Don't call when clicking inside the input field + if (! $(event.target).hasClass('edit_amount_input')){ + var $line = $(event.target); + this.trigger_up('getPartialAmount', {'data': $line.closest('.mv_line').data('line-id')}); + } + }, + /** + * @private + * @param {MouseEvent} event + */ + _onEditReconcileModel: function (event) { + event.preventDefault(); + var self = this; + this.do_action({ + type: 'ir.actions.act_window', + res_model: 'account.reconcile.model', + views: [[false, 'list'], [false, 'form']], + view_mode: "list", + target: 'current' + }, + { + on_reverse_breadcrumb: function() {self.trigger_up('reload');}, + }); + }, + /** + * @private + * @param {OdooEvent} event + */ + _onFieldChanged: function (event) { + event.stopPropagation(); + var fieldName = event.target.name; + if (fieldName === 'partner_id') { + var partner_id = event.data.changes.partner_id; + this.trigger_up('change_partner', {'data': partner_id}); + } else { + if (event.data.changes.amount && isNaN(event.data.changes.amount)) { + return; + } + this.trigger_up('update_proposition', {'data': event.data.changes}); + } + }, + /** + * @private + */ + _onTogglePanel: function () { + if (this.$el[0].getAttribute('data-mode') == 'inactive') + this.trigger_up('change_mode', {'data': 'default'}); + }, + /** + * @private + */ + _onChangeTab: function(event) { + if (event.currentTarget.nodeName === 'TFOOT') { + this.trigger_up('change_mode', {'data': 'next'}); + } else { + var modes = this.model.modes; + var selected_mode = modes.find(function(e) {return event.target.getAttribute('href').includes(e)}); + if (selected_mode) { + this.trigger_up('change_mode', {'data': selected_mode}); + } + } + }, + /** + * @private + * @param {input event} event + */ + _onFilterChange: function (event) { + this.trigger_up('change_filter', {'data': _.str.strip($(event.target).val())}); + }, + /** + * @private + * @param {keyup event} event + */ + _onInputKeyup: function (event) { + var target_partner_id = $(event.target).parents('[name="partner_id"]'); + if (target_partner_id.length === 1) { + return; + } + if(event.keyCode === 13) { + if ($(event.target).hasClass('edit_amount_input')) { + $(event.target).blur(); + return; + } + var created_lines = _.findWhere(this.model.lines, {mode: 'create'}); + if (created_lines && created_lines.balance.amount) { + this._onCreateProposition(); + } + return; + } + if ($(event.target).hasClass('edit_amount_input')) { + if (event.type === 'keyup') { + return; + } + else { + return this._editAmount(event); + } + } + + var self = this; + for (var fieldName in this.fields) { + var field = this.fields[fieldName]; + if (!field.$el.is(event.target)) { + continue; + } + this._avoidFieldUpdate[field.name] = event.type !== 'focusout'; + field.value = false; + field._setValue($(event.target).val()).then(function () { + self._avoidFieldUpdate[field.name] = false; + }); + break; + } + }, + /** + * @private + */ + _onLoadMore: function (ev) { + ev.preventDefault(); + this.trigger_up('change_offset'); + }, + /** + * @private + * @param {MouseEvent} event + */ + _onSelectMoveLine: function (event) { + var $el = $(event.target); + $el.prop('disabled', true); + this._destroyPopover($el); + var moveLineId = $el.closest('.mv_line').data('line-id'); + this.trigger_up('add_proposition', {'data': moveLineId}); + }, + /** + * @private + * @param {MouseEvent} event + */ + _onSelectProposition: function (event) { + var $el = $(event.target); + this._destroyPopover($el); + var moveLineId = $el.closest('.mv_line').data('line-id'); + this.trigger_up('remove_proposition', {'data': moveLineId}); + }, + /** + * @private + * @param {MouseEvent} event + */ + _onQuickCreateProposition: function (event) { + document.activeElement && document.activeElement.blur(); + this.trigger_up('quick_create_proposition', {'data': $(event.target).data('reconcile-model-id')}); + }, + /** + * @private + */ + _onCreateProposition: function () { + document.activeElement && document.activeElement.blur(); + var invalid = []; + _.each(this.fields, function (field) { + if (!field.isValid()) { + invalid.push(field.string); + } + }); + if (invalid.length) { + this.do_warn(_t("Some fields are undefined"), invalid.join(', ')); + return; + } + this.trigger_up('create_proposition'); + }, + /** + * @private + */ + _onValidate: function () { + this.trigger_up('validate'); + } +}); + + +/** + * rendering of the manual reconciliation action contains progress bar, title + * and auto reconciliation button + */ +var ManualRenderer = StatementRenderer.extend({ + template: "reconciliation.manual.statement", + +}); + + +/** + * rendering of the manual reconciliation, contains line data, proposition and + * view for 'match' mode + */ +var ManualLineRenderer = LineRenderer.extend({ + template: "reconciliation.manual.line", + /** + * @override + * @param {string} handle + * @param {number} proposition id (move line id) + * @returns {Promise} + */ + removeProposition: function (handle, id) { + if (!id) { + return Promise.resolve(); + } + return this._super(handle, id); + }, + /** + * move the partner field + * + * @override + */ + start: function () { + var self = this; + return this._super.apply(this, arguments).then(function () { + return self.model.makeRecord('account.move.line', [{ + relation: 'account.account', + type: 'many2one', + name: 'account_id', + value: [self._initialState.account_id.id, self._initialState.account_id.display_name], + }]).then(function (recordID) { + self.fields.title_account_id = new relational_fields.FieldMany2One(self, + 'account_id', + self.model.get(recordID), + {mode: 'readonly'} + ); + }).then(function () { + return self.fields.title_account_id.appendTo(self.$('.accounting_view thead td:eq(0) span:first')); + }); + }); + }, + /** + * @override + */ + update: function (state) { + this._super(state); + var props = _.filter(state.reconciliation_proposition, {'display': true}); + if (!props.length) { + var $line = $(qweb.render("reconciliation.line.mv_line", {'line': {}, 'state': state})); + this.$('.accounting_view tbody').append($line); + } + }, + //-------------------------------------------------------------------------- + // Handlers + //-------------------------------------------------------------------------- + /** + * display journal_id field + * + * @override + */ + _renderCreate: function (state) { + var self = this; + var parentPromise = this._super(state).then(function() { + self.$('.create .create_journal_id').show(); + self.$('.create .create_date').removeClass('d-none'); + self.$('.create .create_journal_id .o_input').addClass('o_required_modifier'); + }); + return parentPromise; + }, + +}); + + +return { + StatementRenderer: StatementRenderer, + ManualRenderer: ManualRenderer, + LineRenderer: LineRenderer, + ManualLineRenderer: ManualLineRenderer, +}; +}); diff --git a/base_accounting_kit/static/src/scss/account_asset.scss b/base_accounting_kit/static/src/scss/account_asset.scss new file mode 100644 index 0000000..672317f --- /dev/null +++ b/base_accounting_kit/static/src/scss/account_asset.scss @@ -0,0 +1,9 @@ +.o_web_client .o_deprec_lines_toggler { + color: #b52121; + &.o_is_posted { + color: #6f7370; + } + &.o_unposted { + color: #178230; + } +} diff --git a/base_accounting_kit/static/src/scss/style.scss b/base_accounting_kit/static/src/scss/style.scss new file mode 100644 index 0000000..db807ed --- /dev/null +++ b/base_accounting_kit/static/src/scss/style.scss @@ -0,0 +1,1164 @@ +.accounts-dashboard-wrap svg.ct-chart-bar, +.accounts-dashboard-wrap svg.ct-chart-line { + overflow: visible; +} + +.accounts-dashboard-wrap .ct-label.ct-vertical.ct-start { + color: black !important; +} + +.accounts-dashboard-wrap .ct-label.ct-label.ct-horizontal.ct-end { + position: relative; + justify-content: flex-end; + text-align: right; + transform-origin: 100%; + color: black; + transform: translate(-100%) rotate(-45deg); + white-space: nowrap; +} + + + + +.accounts-dashboard-wrap .ct-series-e .ct-slice-pie { + fill: #7b2138 !important; +} + +.accounts-dashboard-wrap .ct-series-a .ct-bar, +.accounts-dashboard-wrap .ct-series-a .ct-line, +.accounts-dashboard-wrap .ct-series-a .ct-point, +.accounts-dashboard-wrap .ct-series-a .ct-slice-donut, +.accounts-dashboard-wrap .ct-series-a .ct-slice-pie { + stroke: #009f9d !important; +} + + +.accounts-dashboard-wrap h4 { + padding-left: 20px !important; + padding-top: 10px !important; +} + + + + +.accounts-dashboard-wrap .users-list>li img { + border-radius: 50%; + height: auto; + max-width: 100%; +} + +.accounts-dashboard-wrap .badge-danger { + width: 50px; + height: 20px; + color: #fff; + background-color: #dc3545; +} + +.accounts-dashboard-wrap .card-header>.card-tools { + float: right; + margin-right: -.625rem; +} + + +.accounts-dashboard-wrap .card { + box-shadow: 0 0 1px rgba(0, 0, 0, .125), 0 1px 3px rgba(0, 0, 0, .2); + margin-bottom: 1rem; +} + +.accounts-dashboard-wrap .card-title { + float: left; + font-size: 1.1rem; + font-weight: 400; + margin: 0; + text-transform: uppercase; +} + +.accounts-dashboard-wrap .col, +.accounts-dashboard-wrap .col-1, +.accounts-dashboard-wrap .col-10, +.accounts-dashboard-wrap .col-11, +.accounts-dashboard-wrap .col-12, +.accounts-dashboard-wrap .col-2, +.accounts-dashboard-wrap .col-3, +.accounts-dashboard-wrap .col-4, +.accounts-dashboard-wrap .col-5, +.accounts-dashboard-wrap .col-6, +.accounts-dashboard-wrap .col-7, +.accounts-dashboard-wrap .col-8, +.accounts-dashboard-wrap .col-9, +.accounts-dashboard-wrap .col-auto, +.accounts-dashboard-wrap .col-lg, +.accounts-dashboard-wrap .col-lg-1, +.accounts-dashboard-wrap .col-lg-10, +.accounts-dashboard-wrap .col-lg-11, +.accounts-dashboard-wrap .col-lg-12, +.accounts-dashboard-wrap .col-lg-2, +.accounts-dashboard-wrap .col-lg-3, +.accounts-dashboard-wrap .col-lg-4, +.accounts-dashboard-wrap .col-lg-5, +.accounts-dashboard-wrap .col-lg-6, +.col-lg-7, +.col-lg-8, +.col-lg-9, +.col-lg-auto, +.col-md, +.col-md-1, +.col-md-10, +.col-md-11, +.col-md-2, +.col-md-3, +.col-md-4, +.col-md-5, +.col-md-6, +.col-md-7, +.col-md-8, +.col-md-9, +.col-md-auto, +.col-sm, +.col-sm-1, +.col-sm-10, +.col-sm-11, +.col-sm-12, +.col-sm-2, +.col-sm-3, +.col-sm-4, +.col-sm-5, +.col-sm-6, +.col-sm-7, +.col-sm-8, +.col-sm-9, +.col-sm-auto, +.col-xl, +.col-xl-1, +.col-xl-10, +.col-xl-11, +.col-xl-12, +.col-xl-2, +.col-xl-3, +.col-xl-4, +.col-xl-5, +.col-xl-6, +.col-xl-7, +.col-xl-8, +.col-xl-9, +.col-xl-auto { + position: relative; + width: 100%; + padding-right: 7.5px; + padding-left: 7.5px; +} + + +.accounts-dashboard-wrap .card-header { + background-color: + transparent; + border-bottom: 1px solid rgba(0, 0, 0, .125); + padding: .75rem 1.25rem; + position: relative; + border-top-left-radius: .25rem; + border-top-right-radius: .25rem; +} + + +.accounts-dashboard-wrap .fa:hover { + -ms-transform: scale(1.5); + /* IE 9 */ + -webkit-transform: scale(1.5); + /* Safari 3-8 */ + transform: scale(1.5); +} + +.accounts-dashboard-wrap .card-header>.card-tools { + float: right; + margin-right: -.625rem; +} + +.accounts-dashboard-wrap .right { + float: left; +} + +.accounts-dashboard-wrap .tooltip:hover .tooltiptext { + visibility: visible; +} + + +.accounts-dashboard-wrap .col-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; +} + +.accounts-dashboard-wrap .fa-cog { + content: "\f013" +} + +.accounts-dashboard-wrap .fa, +.fas { + font-weight: 900; +} + +.accounts-dashboard-wrap .fa, +.accounts-dashboard-wrap .fab, +.accounts-dashboard-wrap .fad, +.accounts-dashboard-wrap .fal, +.accounts-dashboard-wrap .far, +.accounts-dashboard-wrap .fas { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; +} + +.accounts-dashboard-wrap .info-box .info-box-icon { + + border-radius: .25rem; + -ms-flex-align: center; + align-items: center; + display: -ms-flexbox; + display: flex; + font-size: 1.875rem; + -ms-flex-pack: center; + justify-content: center; + text-align: center; + width: 70px; +} + +.accounts-dashboard-wrap .info-box { + + + box-shadow: 0 0 1px rgba(0, 0, 0, .125), 0 1px 3px rgba(0, 0, 0, .2); + border-radius: .25rem; + background: #fff; + display: -ms-flexbox; + display: flex; + margin-bottom: 1rem; + min-height: 80px; + padding: .5rem; + position: relative; +} + +.accounts-dashboard-wrap .o_datepicker .o_datepicker_input { + width: 100%; + cursor: pointer; +} + +.accounts-dashboard-wrap #overdue { + width: 100%; + cursor: pointer; +} + +.accounts-dashboard-wrap .o_input { + border: 1px solid #cfcfcf; + border-top-style: none; + border-right-style: none; + border-left-style: none; +} + + +.accounts-dashboard-wrap .in_graph { + padding-left: 90px; + height: auto; + padding-bottom: 65px; + text-align: center !important; +} + + +.accounts-dashboard-wrap .oh_dashboards { + padding-top: 15px; + background-color: #f8faff !important; +} + +.accounts-dashboard-wrap .container-fluid.o_in_dashboard { + padding: 0px !important; +} + +.accounts-dashboard-wrap .o_action_manager { + overflow-y: scroll !important; + max-width: 100%; +} + +// new tile + +body { + background-color: #ececec; +} + +.accounts-dashboard-wrap .container { + margin: 50px 0 0 100px; +} + +.accounts-dashboard-wrap .o_dashboards { + color: #2a2a2a; + background-color: #f2f2f2 !important; +} + +.accounts-dashboard-wrap .dash-header { + + margin: 15px 0px 12px 0 !important; + display: block; + padding: 7px 25px 7px 0; + color: #0e1319; + font-size: 2rem; + font-weight: 400; + background-color: + rgba(255, 255, 255, 0.9) !important; + color: #212529; + padding: 1.5rem; + border-radius: 3px; + box-shadow: 0 0px 10px 0px rgba(0, 0, 0, 0.05) !important; + display: flex; + justify-content: space-between; + align-items: center; + +} + +.accounts-dashboard-wrap .dashboard-h1 { + + display: block; + padding: 7px 25px 7px 0; + color: #0e1319; + font-size: 2rem; + font-weight: 400; + color: + + #212529; + float: left; + margin-bottom: 0; + +} + +.accounts-dashboard-wrap .card { + position: relative !important; + border-top: 0 !important; + margin-bottom: 30px !important; + width: 100% !important; + background-color: #ffffff !important; + border-radius: 0.25rem !important; + padding: 0px !important; + -webkit-transition: .5s !important; + transition: .5s !important; + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-direction: column !important; + flex-direction: column !important; + box-shadow: 0 0px 10px 0px rgba(0, 0, 0, 0.05) !important; + border-radius: 0.25rem; +} + +.accounts-dashboard-wrap .card-header { + border: 0; + padding: 0; +} + +.accounts-dashboard-wrap .card-header>.card-tools { + float: right; + margin-right: 0.375rem; + margin-top: 5px; + margin-bottom: 10px; +} + +.accounts-dashboard-wrap .card-header i.fa { + font-size: 1.3rem; + display: inline-block; + padding: 0 0px; + margin: 0 0px; + color: #57769c; + opacity: .8; + -webkit-transition: 0.3s linear; + transition: 0.3s linear; +} + +.accounts-dashboard-wrap .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; + color: #7891af; +} + +.accounts-dashboard-wrap .account-details { + display: flex; + justify-content: space-evenly; +} + +.main-title { + color: #a3a3a3; + display: block; + margin-bottom: 5px; + font-size: 20px; + font-weight: 400; +} + +.accounts-dashboard-wrap .main-title { + display: block; + margin-bottom: 5px; + font-size: 13px; + font-weight: 600; + color: #fff !important; + text-transform: uppercase; + padding: 1rem; + border-radius: 5px; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + +.accounts-dashboard-wrap .card-body { + background-color: rgba(255, 255, 255, 0.9) !important; + color: #212529; + padding-top: 0; +} + +.accounts-dashboard-wrap .tile.wide.invoice { + margin-bottom: 27px; + -webkit-box-shadow: 1px 5px 24px 0 rgba(68, 102, 242, 0.05); + box-shadow: 1px 5px 24px 0 rgba(68, 102, 242, 0); + background-color: #ffffff; + border-radius: 5px; + position: relative; + width: 100%; + padding: 0rem 0rem; + border: 1px solid rgba(0, 0, 0, 0.07); +} + +.accounts-dashboard-wrap .box-1 .main-title { + background: #67b7dc; + color: #fff; +} + +.accounts-dashboard-wrap .box-2 .main-title { + background: #6794dc !important; + color: #fff; +} + +.accounts-dashboard-wrap .box-3 .main-title { + background: #8067dc; + color: #fff; +} + +.accounts-dashboard-wrap .box-4 .main-title { + background: #c767dc; + color: #fff; +} + +.accounts-dashboard-wrap .count { + margin-bottom: 1rem; +} + +.accounts-dashboard-wrap span#total_invoices_ span, +.accounts-dashboard-wrap span#total_invoices_last span, +.accounts-dashboard-wrap span#total_incomes_ span, +.accounts-dashboard-wrap span#total_incomes_last span, +.accounts-dashboard-wrap span#total_expenses_ span, +.accounts-dashboard-wrap span#total_expense_last span, +.accounts-dashboard-wrap span#unreconciled_items_ span, +.accounts-dashboard-wrap span#unreconciled_items_last span, +.accounts-dashboard-wrap span#unreconciled_counts_last_year span, +.accounts-dashboard-wrap span#unreconciled_counts_this_year span, +.accounts-dashboard-wrap span#total_expense_last_year span, +.accounts-dashboard-wrap span#total_expense_this_year span, +.accounts-dashboard-wrap span#total_incomes_last_year span, +.accounts-dashboard-wrap span#total_incomes_this_year span, +.accounts-dashboard-wrap span#total_invoices_last_year span, +.accounts-dashboard-wrap span#total_invoices_this_year span, +.accounts-dashboard-wrap span#net_profit_current_months span, +.accounts-dashboard-wrap span#net_profit_current_year span { + padding-right: 8px; + font-size: 16px; + font-weight: 600; +} + +.accounts-dashboard-wrap span#total_invoices_, +.accounts-dashboard-wrap span#total_invoices_last, +.accounts-dashboard-wrap span#total_incomes_, +.accounts-dashboard-wrap span#total_incomes_last, +.accounts-dashboard-wrap span#total_expenses_, +.accounts-dashboard-wrap span#total_expense_last, +.accounts-dashboard-wrap span#unreconciled_items_, +.accounts-dashboard-wrap span#unreconciled_items_last, +.accounts-dashboard-wrap span#unreconciled_counts_last_year, +.accounts-dashboard-wrap span#unreconciled_counts_this_year, +.accounts-dashboard-wrap span#total_expense_last_year, +.accounts-dashboard-wrap span#total_expense_this_year, +.accounts-dashboard-wrap span#total_incomes_last_year, +.accounts-dashboard-wrap span#total_incomes_this_year, +.accounts-dashboard-wrap span#total_invoices_last_year, +.accounts-dashboard-wrap span#total_invoices_this_year, +.accounts-dashboard-wrap span#net_profit_current_months, +.accounts-dashboard-wrap span#net_profit_current_year { + display: -webkit-box; + display: -webkit-flex; + display: flex; + flex-direction: column; + color: #455e7b !important; +} + +.accounts-dashboard-wrap .main-title~div { + display: flex; + justify-content: space-between; + margin-top: 1rem; + padding: 1rem; + background: #fff; +} + +.accounts-dashboard-wrap .card-header { + color: #0e1319 !important; + display: block !important; + padding: 1.5rem 1.5rem !important; + position: relative !important; + border-bottom: 1px solid rgba(0, 0, 0, 0.07) !important; + border-top-left-radius: 0.25rem !important; + border-top-right-radius: 0.25rem !important; +} + +.accounts-dashboard-wrap .card-header i.fa { + font-size: 1rem; + display: inline-block; + padding: 0 0px; + margin: 0 0px; + color: #57769c; + opacity: .8; + -webkit-transition: 0.3s linear; + transition: 0.3s linear; +} + +.accounts-dashboard-wrap .card-header>.card-tools { + float: right; + margin-right: 0; + margin-top: 0px !important; + margin-bottom: 0; +} + +.accounts-dashboard-wrap .card-tools .btn { + padding: 0 10px; + margin: 0; + line-height: normal !important; +} + +.accounts-dashboard-wrap .ct-series-a .ct-bar, +.accounts-dashboard-wrap .ct-series-a .ct-line, +.accounts-dashboard-wrap .ct-series-a .ct-point, +.accounts-dashboard-wrap .ct-series-a .ct-slice-donut, +.accounts-dashboard-wrap .ct-series-a .ct-slice-pie { + stroke: rgb(132, 60, 247) !important; +} + +.accounts-dashboard-wrap canvas#salesChart, +.accounts-dashboard-wrap canvas#exChart { + display: none; +} + +.accounts-dashboard-wrap ul#overdues li, +.accounts-dashboard-wrap ul#latebills li { + list-style: none; + padding-top: 6px; + padding-bottom: 6px; + font-size: 13px; + color: #455e7b !important; + border-bottom: 1px solid rgba(0, 0, 0, 0.07) !important; +} + +.accounts-dashboard-wrap ul#overdues, +.accounts-dashboard-wrap ul#latebills { + padding: 0; + padding-left: 1.5rem; + padding-right: 1.5rem; +} + +.accounts-dashboard-wrap ul#overdues li a, +.accounts-dashboard-wrap ul#latebills li a { + color: #455e7b !important; +} + +.accounts-dashboard-wrap .badge-danger { + width: auto; + height: 20px; + color: #fff; + background-color: #843cf7 !important; + display: flex; + justify-content: center; + align-items: center; +} + +.accounts-dashboard-wrap .ct-label { + fill: rgba(0, 0, 0, .4); + color: rgba(0, 0, 0, .4); + font-size: 1.1rem !important; + line-height: 1; + font-weight: 600; +} + +.accounts-dashboard-wrap .ct-label { + fill: rgb(255, 255, 255) !important; + color: rgb(255, 255, 255) !important; +} + +.accounts-dashboard-wrap .chart { + .ct-legend { + position: relative; + z-index: 10; + + li { + position: relative; + padding-left: 23px; + margin-bottom: 3px; + } + + li:before { + width: 12px; + height: 12px; + position: absolute; + left: 0; + content: ''; + border: 3px solid transparent; + border-radius: 2px; + } + + li.inactive:before { + background: transparent; + } + + &.ct-legend-inside { + position: absolute; + top: 0; + right: 0; + } + + // @for $i from 0 to length($ct-series) { + // .ct-series-#{$i}:before { + // background-color: nth($ct-series, $i + 1); + // border-color: nth($ct-series, $i + 1); + // } + // } + } +} + +.accounts-dashboard-wrap #chartdiv { + width: 100%; + height: 400px; +} + +.accounts-dashboard-wrap #chartdiv_ex { + width: 100%; + height: 500px; +} + +.accounts-dashboard-wrap #barChart { + display: block; + width: 595px; + height: 396px; + // pointer-events: none; + +} + +.accounts-dashboard-wrap .canvas-con { + display: flex; + align-items: center; + justify-content: center; + min-height: 365px; + position: relative; +} + +/*p { + position: relative; + left: 194px; + margin-top: 64px; +}*/ + +.accounts-dashboard-wrap .canvas-con-inner { + height: 100%; +} + +.accounts-dashboard-wrap .canvas-con-inner, +.legend-con { + display: inline-block; +} + +.accounts-dashboard-wrap .legend-con { + font-family: Roboto; + display: inline-block; + + ul { + list-style: none; + } + + li { + display: flex; + align-items: center; + margin-bottom: 4px; + + span { + display: inline-block; + } + + span.chart-legend { + width: 25px; + height: 25px; + margin-right: 10px; + } + } +} + +html, +body { + margin: 0; +} + +.accounts-dashboard-wrap #canvas { + height: 277px !important; + width: 100% !important; +} + +.accounts-dashboard-wrap #net_profit_this_year .title { + float: left; +} + +.accounts-dashboard-wrap #net_profit_this_year { + display: flex; + justify-content: center; + align-content: center; + padding: .3rem; + background: #843cf7; + color: #fff; + border-radius: 10px; + width: auto !important; + font-weight: 600; + margin-bottom: 2rem; + margin-top: 1rem; + display: none !important; +} + +.accounts-dashboard-wrap #net_profit_last_year .title { + float: left; +} + +.accounts-dashboard-wrap #net_profit_last_year { + display: flex; + justify-content: center; + align-content: center; + padding: .3rem; + background: + #843cf7; + color: + #fff; + border-radius: 10px; + width: auto !important; + font-weight: 600; + margin-bottom: 2rem; + margin-top: 1rem; +} + +.accounts-dashboard-wrap #net_profit_last_month .title { + float: left; +} + +.accounts-dashboard-wrap #net_profit_last_month { + display: flex; + justify-content: center; + align-content: center; + padding: .3rem; + background: + #843cf7; + color: + #fff; + border-radius: 10px; + width: auto !important; + font-weight: 600; + margin-bottom: 2rem; + margin-top: 1rem; +} + + +.accounts-dashboard-wrap #net_profit_this_months .title { + float: left; +} + +.accounts-dashboard-wrap #net_profit_this_months { + display: flex; + justify-content: center; + align-content: center; + padding: .3rem; + background: + #843cf7; + color: + #fff; + border-radius: 10px; + width: auto !important; + font-weight: 600; + margin-bottom: 2rem; + margin-top: 1rem; +} + + + +.accounts-dashboard-wrap #col-graph .card { + height: 366px; +} + +.accounts-dashboard-wrap #top_10_customers { + padding: 0; +} + +.accounts-dashboard-wrap #top_10_customers li { + list-style: none; + padding-top: 6px; + padding-bottom: 6px; + font-size: 13px; + color: #455e7b !important; + border-bottom: 1px solid rgba(0, 0, 0, 0.07) !important; + padding-left: 2rem; + display: flex; + justify-content: space-between; + padding-right: 2rem; +} + +.accounts-dashboard-wrap #top_10_customers li a { + color: + #455e7b !important; +} + +.accounts-dashboard-wrap #top_10_customers_this_month { + padding: 0; +} + +.accounts-dashboard-wrap #top_10_customers_this_month li { + list-style: none; + padding-top: 6px; + padding-bottom: 6px; + font-size: 13px; + color: #455e7b !important; + border-bottom: 1px solid rgba(0, 0, 0, 0.07) !important; + padding-left: 2rem; + display: flex; + justify-content: space-between; + padding-right: 2rem; +} + +.accounts-dashboard-wrap #top_10_customers_this_month li a { + color: + #455e7b !important; +} + +.accounts-dashboard-wrap #top_10_customers_last_month { + padding: 0; +} + +.accounts-dashboard-wrap #top_10_customers_last_month li { + list-style: none; + padding-top: 6px; + padding-bottom: 6px; + font-size: 13px; + color: #455e7b !important; + border-bottom: 1px solid rgba(0, 0, 0, 0.07) !important; + padding-left: 2rem; + display: flex; + justify-content: space-between; + padding-right: 2rem; +} + +.accounts-dashboard-wrap #top_10_customers_last_month li a { + color: + #455e7b !important; +} + +.accounts-dashboard-wrap #current_bank_balance { + padding: 0; +} + +.accounts-dashboard-wrap #current_bank_balance li { + + list-style: none; + padding-top: 6px; + padding-bottom: 6px; + font-size: 13px; + color: #455e7b !important; + border-bottom: 1px solid rgba(0, 0, 0, 0.07) !important; + padding-left: 2rem; + display: flex; + justify-content: space-between; + padding-right: 2rem; + +} + +.accounts-dashboard-wrap #current_bank_balance li a { + color: + #455e7b !important; +} + +.accounts-dashboard-wrap #current_cash_balance { + padding: 0; +} + +.accounts-dashboard-wrap #current_cash_balance li { + list-style: none; + padding-top: 6px; + padding-bottom: 6px; + font-size: 13px; + color: #455e7b !important; + border-bottom: 1px solid rgba(0, 0, 0, 0.07) !important; + padding-left: 2rem; + display: flex; + justify-content: space-between; + padding-right: 2rem; +} + +.accounts-dashboard-wrap #current_cash_balance li a { + color: #455e7b !important; + +} + + +.accounts-dashboard-wrap .custom-h1 { + font-size: 1em; + margin-bottom: 0rem; +} + +.accounts-dashboard-wrap .custom-h3 { + font-size: 1em; + margin: 0; +} + +// Progress Bars +.accounts-dashboard-wrap progress, +.accounts-dashboard-wrap progress[role] { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: none; + background-size: auto; + height: 20px; + width: 100%; + background-color: #8067dc; +} + +// The unordered list +.accounts-dashboard-wrap .skill-list { + list-style: none; + margin: 0; + padding: 1em; +} + +// The list item +.accounts-dashboard-wrap .skill { + margin-bottom: 1em; + position: relative; + + h3 { + color: #000; + left: 1em; + line-height: 1; + position: absolute; + top: 1em; + } + + ::-webkit-progress-value { + -webkit-animation: bar-fill 2s; + width: 0px; + } +} + +// Style the bar colors +.accounts-dashboard-wrap .skill-1::-webkit-progress-value { + background: #c767dc; +} + +.accounts-dashboard-wrap .skill-1::-moz-progress-bar { + background: #c767dc; +} + +// Animation Keyframes +@-webkit-keyframes bar-fill { + 0% { + width: 0; + } +} + +@keyframes bar-fill { + 0% { + width: 0; + } +} + +.accounts-dashboard-wrap #total_supplier_invoice { + color: #696969; +} + +.accounts-dashboard-wrap #total_customer_invoice_names { + color: #696969; +} + +.accounts-dashboard-wrap #total_customer_invoice { + color: #696969; +} + +.accounts-dashboard-wrap #total_invoice_difference, +.accounts-dashboard-wrap #total_supplier_difference { + color: #4ecdc4; +} + +progress { + border: 0; + border-radius: 20px; +} + +progress::-webkit-progress-bar { + border: 0; + border-radius: 20px; +} + +progress::-webkit-progress-value { + border: 0; + border-radius: 20px; +} + +progress::-moz-progress-bar { + border: 0; + border-radius: 20px; +} + +.accounts-dashboard-wrap #total_customer_invoice_paid .logo, +.accounts-dashboard-wrap #total_customer_invoice .logo, +.accounts-dashboard-wrap #total_supplier_invoice_paid .logo, +.accounts-dashboard-wrap #total_supplier_invoice .logo, +.accounts-dashboard-wrap #total_customer_invoice_paid_current_year .logo, +.accounts-dashboard-wrap #total_customer_invoice_current_year .logo, +.accounts-dashboard-wrap #total_supplier_invoice_paid_current_year .logo, +.accounts-dashboard-wrap #total_supplier_invoice_current_year .logo, +.accounts-dashboard-wrap #total_customer_invoice_paid_current_month .logo, +.accounts-dashboard-wrap #total_customer_invoice_current_month .logo, +.accounts-dashboard-wrap #total_supplier_invoice_paid_current_month .logo, +.accounts-dashboard-wrap #total_supplier_invoice_current_month .logo { + + display: -webkit-box; + display: -webkit-flex; + display: flex; + justify-content: left; + flex-direction: column-reverse; + color: #455e7b !important; + +} + +.accounts-dashboard-wrap #total_customer_invoice_paid .logo span:nth-child(2), +.accounts-dashboard-wrap #total_customer_invoice .logo span:nth-child(2), +.accounts-dashboard-wrap #total_supplier_invoice_paid .logo span:nth-child(2), +.accounts-dashboard-wrap #total_supplier_invoice .logo span:nth-child(2), +.accounts-dashboard-wrap #total_customer_invoice_paid_current_year .logo span:nth-child(2), +.accounts-dashboard-wrap #total_customer_invoice_current_year .logo span:nth-child(2), +.accounts-dashboard-wrap #total_supplier_invoice_paid_current_year .logo span:nth-child(2), +.accounts-dashboard-wrap #total_supplier_invoice_current_year .logo span:nth-child(2), +.accounts-dashboard-wrap #total_customer_invoice_paid_current_month .logo span:nth-child(2), +.accounts-dashboard-wrap #total_customer_invoice_current_month .logo span:nth-child(2), +.accounts-dashboard-wrap #total_supplier_invoice_paid_current_month .logo span:nth-child(2), +.accounts-dashboard-wrap #total_supplier_invoice_current_month .logo span:nth-child(2) { + + font-weight: 600; + +} + +.accounts-dashboard-wrap .switch { + position: relative; + display: inline-block; + width: 60px; + height: 34px; +} + +.accounts-dashboard-wrap .switch input { + opacity: 0; + width: 0; + height: 0; +} + +.accounts-dashboard-wrap .slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #ccc; + -webkit-transition: .4s; + transition: .4s; +} + +.accounts-dashboard-wrap .slider:before { + position: absolute; + content: ""; + height: 26px; + width: 26px; + left: 4px; + bottom: 4px; + background-color: white; + -webkit-transition: .4s; + transition: .4s; +} + +.accounts-dashboard-wrap input:checked+.slider { + background-color: #2196F3; +} + +.accounts-dashboard-wrap input:focus+.slider { + box-shadow: 0 0 1px #2196F3; +} + +.accounts-dashboard-wrap input:checked+.slider:before { + -webkit-transform: translateX(26px); + -ms-transform: translateX(26px); + transform: translateX(26px); +} + +/* Rounded sliders */ +.accounts-dashboard-wrap .slider.round { + border-radius: 34px; +} + +.accounts-dashboard-wrap .slider.round:before { + border-radius: 50%; +} + +.accounts-dashboard-wrap .btn-primary { + + color: #FFFFFF; + background-color: #7C7BAD; + border-color: #7C7BAD; + +} + +.accounts-dashboard-wrap .toggle-on.btn { + + padding-right: 18px !important; + right: 50%; + + +} + +.accounts-dashboard-wrap .toggle.btn.btn-default.off { + + border: 1px solid #aaa; + + background: #fff; + font-weight: 600 !important; + +} + +.accounts-dashboard-wrap .toggle-off.btn { + + padding-left: 9px !important; + +} + +.accounts-dashboard-wrap .toggle { + + width: 160px !important; + height: auto !important; + +} + +html .o_web_client>.o_action_manager { + overflow: auto !important; +}
\ No newline at end of file diff --git a/base_accounting_kit/static/src/xml/payment_matching.xml b/base_accounting_kit/static/src/xml/payment_matching.xml new file mode 100644 index 0000000..e96b3b9 --- /dev/null +++ b/base_accounting_kit/static/src/xml/payment_matching.xml @@ -0,0 +1,402 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<templates xml:space="preserve"> + +<div t-name="reconciliation" class="o_reconciliation"> + <div class="o_form_view"> + <div class="o_form_sheet_bg"> + <div class="o_form_sheet"/> + </div> + </div> +</div> + +<t t-name="reconciliation.control.pager"> + <div class="progress progress-reconciliation"> + <div aria-valuemin="0" t-att-aria-valuenow="widget._initialState.valuenow" t-att-aria-valuemax="widget._initialState.valuemax" class="progress-bar" role="progressbar" style="width: 0%;"><span class="valuenow"><t t-esc="widget._initialState.valuenow"/></span> / <span class="valuemax"><t t-esc="widget._initialState.valuemax"/></span></div> + </div> +</t> + +<t t-name="reconciliation.statement"> + <div t-if="widget._initialState.valuemax"> + <div class="notification_area"/> + <div class="o_reconciliation_lines"/> + <div t-if="widget._initialState.valuemax > widget._initialState.defaultDisplayQty"> + <button class="btn btn-secondary js_load_more">Load more</button> + </div> + </div> + <div t-else="" class="o_view_noreconciliation"> + <p>Nothing to do!</p> + <p>This page displays all the bank transactions that are to be reconciled and provides with a neat interface to do so.</p> + </div> +</t> + +<t t-name="reconciliation.manual.statement" t-extend="reconciliation.statement"> + <t t-jquery="div:first" t-operation="attributes"> + <attribute name="class" value="o_manual_statement" /> + </t> + <t t-jquery=".o_view_noreconciliation p" t-operation="replace"></t> +<!-- <t t-jquery=".o_filter_input_wrapper" t-operation="replace"></t>--> + <t t-jquery=".o_view_noreconciliation" t-operation="append"> + <p><b>Good Job!</b> There is nothing to reconcile.</p> + <p>All invoices and payments have been matched, your accounts' balances are clean.</p> + <p> + From now on, you may want to: + <ul> + <li>Check that you have no bank statement lines to <a href="#" + rel="do_action" + data-tag="bank_statement_reconciliation_view">reconcile</a></li> + <li>Verify <a href="#" + rel="do_action" + data-action_name="Unpaid Customer Invoices" + data-model="account.move" + data-domain="[('move_type', 'in', ('out_invoice', 'out_refund'))]" + data-context="{'search_default_unpaid': 1}">unpaid invoices</a> and follow-up customers</li> + <li>Pay your <a href="#" + rel="do_action" + data-action_name="Unpaid Vendor Bills" + data-model="account.move" + data-domain="[('move_type', 'in', ('in_invoice', 'in_refund'))]" + data-context="{'search_default_unpaid': 1}">vendor bills</a></li> + <li>Check all <a href="#" + rel="do_action" + data-action_name="Unreconciled Entries" + data-model="account.move.line" + data-context="{'search_default_unreconciled': 1}">unreconciled entries</a></li> + </ul> + </p> + </t> +</t> + +<div t-name="reconciliation.done" class="done_message"> + <h2>Congrats, you're all done!</h2> + <p>You reconciled <strong><t t-esc="number"/></strong> transactions in <strong><t t-esc="duration"/></strong>. + <t t-if="number > 1"> + <br/>That's on average <t t-esc="timePerTransaction"/> seconds per transaction. + </t> + </p> + <t t-if="context && context.active_model"> + <p t-if="context['active_model'] === 'account.journal' || context['active_model'] === 'account.bank.statement' || context['active_model'] === 'account.bank.statement.import'" class="actions_buttons"> + <t t-if="context.journal_id"> + <button class="button_back_to_statement btn btn-secondary" t-att-data_journal_id='context.journal_id'>Go to bank statement(s)</button> + </t> + <t t-if="context['active_model'] === 'account.bank.statement'"> + <button class="button_close_statement btn btn-primary" style="display: inline-block;">Close statement</button> + </t> + </p> + </t> +</div> + +<t t-name="reconciliation.line"> + <t t-set="state" t-value="widget._initialState"/> + <div class="o_reconciliation_line" t-att-data-mode="state.mode" tabindex="0"> + <table class="accounting_view"> + <caption style="caption-side: top;"> + <div class="float-right o_buttons"> + <button t-attf-class="o_no_valid btn btn-secondary #{state.balance.type < 0 ? '' : 'd-none'}" disabled="disabled" data-toggle="tooltip" title="Select a partner or choose a counterpart" accesskey="">Validate</button> + <button t-attf-class="o_validate btn btn-secondary #{!state.balance.type ? '' : 'd-none'}">Validate</button> + <button t-attf-class="o_reconcile btn btn-primary #{state.balance.type > 0 ? '' : 'd-none'}">Validate</button> + </div> + </caption> + <thead> + <tr> + <td class="cell_account_code"><t t-esc="state.st_line.account_code"/></td> + <td class="cell_due_date"><t t-esc="state.st_line.date"/></td> + <td class="cell_label"><t t-if="state.st_line.name" t-esc="state.st_line.name"/> <t t-if="state.st_line.amount_currency_str"> (<t t-esc="state.st_line.amount_currency_str"/>)</t></td> + <td class="cell_left"><t t-if="state.st_line.amount > 0"><t t-raw="state.st_line.amount_str"/></t></td> + <td class="cell_right"><t t-if="state.st_line.amount < 0"><t t-raw="state.st_line.amount_str"/></t></td> + <td class="cell_info_popover"></td> + </tr> + </thead> + <tbody> + <t t-foreach="state.reconciliation_proposition" t-as="line"><t t-call="reconciliation.line.mv_line"/></t> + </tbody> + <tfoot> + <t t-call="reconciliation.line.balance"/> + </tfoot> + </table> + <div class="o_notebook"> + <div class="o_notebook_headers"> + <ul class="nav nav-tabs ml-0 mr-0"> + <li class="nav-item" t-attf-title="{{'Match statement with existing lines on receivable/payable accounts<br>* Black line: existing journal entry that should be matched<br>* Blue lines: existing payment that should be matched'}}" data-toggle="tooltip"><a data-toggle="tab" disable_anchor="true" t-attf-href="#notebook_page_match_rp_#{state.st_line.id}" class="nav-link active nav-match_rp" role="tab" aria-selected="true">Customer/Vendor Matching</a></li> + <li class="nav-item" title="Match with entries that are not from receivable/payable accounts" data-toggle="tooltip"><a data-toggle="tab" disable_anchor="true" t-attf-href="#notebook_page_match_other_#{state.st_line.id}" class="nav-link nav-match_other" role="tab" aria-selected="false">Miscellaneous Matching</a></li> + <li class="nav-item" title="Create a counterpart" data-toggle="tooltip"><a data-toggle="tab" disable_anchor="true" t-attf-href="#notebook_page_create_#{state.st_line.id}" class="nav-link nav-create" role="tab" aria-selected="false">Manual Operations</a></li> + </ul> + </div> + <div class="tab-content"> + <div class="tab-pane active" t-attf-id="notebook_page_match_rp_#{state.st_line.id}"> + <div class="match"> + <t t-call="reconciliation.line.match"/> + </div> + </div> + <div class="tab-pane" t-attf-id="notebook_page_match_other_#{state.st_line.id}"> + <div class="match"> + <t t-call="reconciliation.line.match"/> + </div> + </div> + <div class="tab-pane" t-attf-id="notebook_page_create_#{state.st_line.id}"> + <div class="create"></div> + </div> + </div> + </div> + </div> +</t> + +<t t-name="reconciliation.manual.line" t-extend="reconciliation.line"> + <t t-jquery=".o_buttons" t-operation="replace"> + <div class="float-right o_buttons"> + <button t-attf-class="o_validate btn btn-secondary #{!state.balance.type ? '' : 'd-none'}">Reconcile</button> + <button t-attf-class="o_reconcile btn btn-primary #{state.balance.type > 0 ? '' : 'd-none'}">Reconcile</button> + <button t-attf-class="o_no_valid btn btn-secondary #{state.balance.type < 0 ? '' : 'd-none'}">Skip</button> + </div> + </t> + <t t-jquery=".accounting_view tbody" t-operation="append"> + <t t-if='!_.filter(state.reconciliation_proposition, {"display": true}).length'> + <t t-set="line" t-value='{}'/> + <t t-call="reconciliation.line.mv_line"/> + </t> + </t> + <t t-jquery=".accounting_view thead tr" t-operation="replace"> + <tr> + <td colspan="3"><span/><span t-if="state.last_time_entries_checked">Last Reconciliation: <t t-esc="state.last_time_entries_checked"/></span></td> + <td colspan="2"><t t-esc="state.st_line.account_code"/></td> + <td class="cell_info_popover"></td> + </tr> + </t> + <t t-jquery='div[t-attf-id*="notebook_page_match_rp"]' t-operation="replace"/> + <t t-jquery='a[t-attf-href*="notebook_page_match_rp"]' t-operation="replace"/> +</t> + +<t t-name="reconciliation.line.balance"> + <tr t-if="state.balance.show_balance"> + <td class="cell_account_code"><t t-esc="state.balance.account_code"/></td> + <td class="cell_due_date"></td> + <td class="cell_label"><t t-if="state.st_line.partner_id">Open balance</t><t t-else="">Choose counterpart or Create Write-off</t></td> + <td class="cell_left"><t t-if="state.balance.amount_currency < 0"><span role="img" t-if="state.balance.amount_currency_str" t-attf-class="o_multi_currency o_multi_currency_color_#{state.balance.currency_id%8} line_info_button fa fa-money" t-att-data-content="state.balance.amount_currency_str" t-att-aria-label="state.balance.amount_currency_str" t-att-title="state.balance.amount_currency_str"/><t t-raw="state.balance.amount_str"/></t></td> + <td class="cell_right"><t t-if="state.balance.amount_currency > 0"><span role="img" t-if="state.balance.amount_currency_str" t-attf-class="o_multi_currency o_multi_currency_color_#{state.balance.currency_id%8} line_info_button fa fa-money" t-att-data-content="state.balance.amount_currency_str" t-att-aria-label="state.balance.amount_currency_str" t-att-title="state.balance.amount_currency_str"/><t t-raw="state.balance.amount_str"/></t></td> + <td class="cell_info_popover"></td> + </tr> +</t> + + +<div t-name="reconciliation.line.match"> + <div class="match_controls"> + <span><input class="filter o_input" placeholder="Filter on account, label, partner, amount,..." type="text" t-att-value="state['filter_{{state.mode}}']"/></span> + <button class="btn btn-secondary btn-sm fa fa-search" type="button"></button> + </div> + <table> + <tbody> + </tbody> + </table> + <div class="load-more text-center"> + <a href="#">Load more... (<span></span> remaining)</a> + </div> +</div> + + +<div t-name="reconciliation.line.create"> + <div class="quick_add"> + <div class="btn-group o_reconcile_models" t-if="state.reconcileModels"> + <t t-foreach="state.reconcileModels" t-as="reconcileModel"> + <button class="btn btn-primary" + t-if="reconcileModel.rule_type === 'writeoff_button' && (reconcileModel.match_journal_ids.length == 0 || reconcileModel.match_journal_ids.includes(state.st_line.journal_id) || state.st_line.journal_id === undefined)" + t-att-data-reconcile-model-id="reconcileModel.id"> + <t t-esc="reconcileModel.name"/> + </button> + </t> + <p t-if="!state.reconcileModels.length" style="color: #bbb;">To speed up reconciliation, define <a style="cursor: pointer;" class="reconcile_model_create">reconciliation models</a>.</p> + </div> + <div class="dropdown float-right"> + <a data-toggle="dropdown" href="#"><span class="fa fa-cog" role="img" aria-label="Settings"/></a> + <div class="dropdown-menu dropdown-menu-right" role="menu" aria-label="Presets config"> + <a role="menuitem" class="dropdown-item reconcile_model_create" href="#">Create model</a> + <a role="menuitem" class="dropdown-item reconcile_model_edit" href="#">Modify models</a> + </div> + </div> + </div> + <div class="clearfix o_form_sheet"> + <div class="o_group"> + <table class="o_group o_inner_group o_group_col_6"> + <tbody> + <tr class="create_account_id"> + <td class="o_td_label"><label class="o_form_label">Account</label></td> + <td class="o_td_field"></td> + </tr> + <tr class="create_tax_id"> + <td class="o_td_label"><label class="o_form_label">Taxes</label></td> + <td class="o_td_field"></td> + </tr> + <tr class="create_analytic_account_id" t-if="group_acc"> + <td class="o_td_label"><label class="o_form_label">Analytic Acc.</label></td> + <td class="o_td_field"></td> + </tr> + <tr class="create_analytic_tag_ids" t-if="group_tags"> + <td class="o_td_label"><label class="o_form_label">Analytic Tags.</label></td> + <td class="o_td_field"></td> + </tr> + </tbody> + </table> + <table class="o_group o_inner_group o_group_col_6"> + <tbody> + <tr class="create_journal_id" style="display: none;"> + <td class="o_td_label"><label class="o_form_label">Journal</label></td> + <td class="o_td_field"></td> + </tr> + <tr class="create_label"> + <td class="o_td_label"><label class="o_form_label">Label</label></td> + <td class="o_td_field"></td> + </tr> + <tr class="create_amount"> + <td class="o_td_label"><label class="o_form_label">Amount</label></td> + <td class="o_td_field"></td> + </tr> + <tr class="create_force_tax_included d-none"> + <td class="o_td_label"><label class="o_form_label">Tax Included in Price</label></td> + <td class="o_td_field"></td> + </tr> + <tr class="create_date d-none"> + <td class="o_td_label"><label class="o_form_label">Writeoff Date</label></td> + <td class="o_td_field"></td> + </tr> + <tr class="create_to_check"> + <td class="o_td_label"><label class="o_form_label">To Check</label></td> + <td class="o_td_field"></td> + </tr> + </tbody> + </table> + </div> +</div> + <div class="add_line_container"> + <a class="add_line" t-att-style="!state.balance.amout ? 'display: none;' : null"><i class="fa fa-plus-circle"/> Save and New</a> + </div> +</div> + + +<t t-name="reconciliation.line.mv_line.amount"> + <span t-att-class="(line.is_move_line && proposition == true) ? 'cell' : ''"> + <span class="line_amount"> + <span t-if="line.amount_currency_str" + t-attf-class="o_multi_currency o_multi_currency_color_#{line.currency_id%8} line_info_button fa fa-money" + t-att-data-content="line.amount_currency_str"/> + <span t-if="line.partial_amount && line.partial_amount != line.amount" class="strike_amount text-muted"> + <t t-raw="line.amount_str"/> + <br/> + </span> + </span> + <t t-if="line.is_move_line && proposition == true"> + <i class="fa fa-pencil edit_amount"></i> + <input class="edit_amount_input text-right d-none"/> + </t> + <span class="line_amount"> + <t t-if="!line.partial_amount_str" t-raw="line.amount_str"/> + <t t-if="line.partial_amount_str && line.partial_amount != line.amount" t-raw="line.partial_amount_str"/> + </span> + </span> +</t> + + +<t t-name="reconciliation.line.mv_line"> + <tr t-if="line.display !== false" t-attf-class="mv_line #{line.already_paid ? ' already_reconciled' : ''} #{line.__invalid ? 'invalid' : ''} #{line.is_tax ? 'is_tax' : ''}" t-att-data-line-id="line.id" t-att-data-selected="selected"> + <td class="cell_account_code"><t t-esc="line.account_code"/>​</td> <!-- zero width space to make empty lines the height of the text --> + <td class="cell_due_date"> + <t t-if="typeof(line.id) != 'number' && line.id"> + <span class="badge badge-secondary">New</span> + </t> + <t t-else="" t-esc="line.date_maturity || line.date"/> + </td> + <td class="cell_label"> + <t t-if="line.partner_id && line.partner_id !== state.st_line.partner_id"> + <t t-if="line.partner_name.length"> + <span class="font-weight-bold" t-esc="line.partner_name"/>: + </t> + </t> + <t t-esc="line.label || line.name"/> + <t t-if="line.ref && line.ref.length"> : </t> + <t t-esc="line.ref"/> + </td> + <td class="cell_left"> + <t t-if="line.amount < 0"> + <t t-call="reconciliation.line.mv_line.amount"/> + </t> + </td> + <td class="cell_right"> + <t t-if="line.amount > 0"> + <t t-call="reconciliation.line.mv_line.amount"/> + </t> + </td> + <td class="cell_info_popover"></td> + </tr> +</t> + + +<t t-name="reconciliation.line.mv_line.details"> + <table class='details'> + <tr t-if="line.account_code"><td>Account</td><td><t t-esc="line.account_code"/> <t t-esc="line.account_name"/></td></tr> + <tr><td>Date</td><td><t t-esc="line.date"/></td></tr> + <tr><td>Due Date</td><td><t t-esc="line.date_maturity || line.date"/></td></tr> + <tr><td>Journal</td><td><t t-esc="line.journal_id.display_name"/></td></tr> + <tr t-if="line.partner_id"><td>Partner</td><td><t t-esc="line.partner_name"/></td></tr> + <tr><td>Label</td><td><t t-esc="line.label"/></td></tr> + <tr t-if="line.ref"><td>Ref</td><td><t t-esc="line.ref"/></td></tr> + <tr><td>Amount</td><td><t t-raw="line.total_amount_str"/><t t-if="line.total_amount_currency_str"> (<t t-esc="line.total_amount_currency_str"/>)</t></td></tr> + <tr t-if="line.is_partially_reconciled"><td>Residual</td><td> + <t t-raw="line.amount_str"/><t t-if="line.amount_currency_str"> (<t t-esc="line.amount_currency_str"/>)</t> + </td></tr> + <tr class="one_line_info" t-if='line.already_paid'> + <td colspan="2">This payment is registered but not reconciled.</td> + </tr> + </table> +</t> + + +<t t-name="reconciliation.line.statement_line.details"> + <table class='details'> + <tr><td>Date</td><td><t t-esc="state.st_line.date"/></td></tr> + <tr t-if="state.st_line.partner_name"><td>Partner</td><td><t t-esc="state.st_line.partner_name"/></td></tr> + <tr t-if="state.st_line.ref"><td>Transaction</td><td><t t-esc="state.st_line.ref"/></td></tr> + <tr><td>Description</td><td><t t-esc="state.st_line.name"/></td></tr> + <tr><td>Amount</td><td><t t-raw="state.st_line.amount_str"/><t t-if="state.st_line.amount_currency_str"> (<t t-esc="state.st_line.amount_currency_str"/>)</t></td></tr> + <tr><td>Account</td><td><t t-esc="state.st_line.account_code"/> <t t-esc="state.st_line.account_name"/></td></tr> + <tr t-if="state.st_line.note"><td>Note</td><td style="white-space: pre;"><t t-esc="state.st_line.note"/></td></tr> + </table> +</t> + + +<t t-name="reconciliation.notification.reconciled"> + <t t-if="details !== undefined"> + <a rel="do_action" href="#" aria-label="External link" title="External link" + t-att-data-action_name="details.name" + t-att-data-model="details.model" + t-att-data-ids="details.ids"> + <t t-esc="nb_reconciled_lines"/> + statement lines + </a> + have been reconciled automatically. + </t> +</t> + + +<t t-name="reconciliation.notification.default"> + <t t-esc="message"/> + <t t-if="details !== undefined"> + <a class="fa fa-external-link" rel="do_action" href="#" aria-label="External link" title="External link" + t-att-data-action_name="details.name" + t-att-data-model="details.model" + t-att-data-ids="details.ids"> + </a> + </t> +</t> + + +<t t-name="reconciliation.notification"> + <div t-att-class="'notification alert-dismissible alert alert-' + type" role="alert"> + <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span title="Close" class="fa fa-times"></span></button> + <t t-if="template"> + <t t-call="{{template}}"/> + </t> + <t t-else=""> + <t t-call="reconciliation.notification.default"/> + </t> + </div> +</t> + +</templates> diff --git a/base_accounting_kit/static/src/xml/template.xml b/base_accounting_kit/static/src/xml/template.xml new file mode 100644 index 0000000..d468f00 --- /dev/null +++ b/base_accounting_kit/static/src/xml/template.xml @@ -0,0 +1,324 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<templates id="template" xml:space="preserve"> + <t t-name="Invoicedashboard"> + <div class="accounts-dashboard-wrap"> + <div class="o_dashboards col-xs-12 col-sm-12 col-lg-12 col-md-12" style="background-color: #e1e1e1;overflow: scroll; !important; "> + <div class="content-header"> + <div class="container-fluid"> + <div class="row mb-2"> + <div class="col-sm-12"> + <div class="dash-header"> + <h1 class="custom-h1 dashboard-h1">Dashboard </h1> + <input type="checkbox" style="display:none" data-toggle="toggle" data-on="" data-off=""> + <input type="checkbox" id="toggle-two"></input> + </input> + </div> + </div> + </div> + </div> + </div> + </div> + <div class="row" style="margin:0px"> + <div class="col-xs-12 col-sm-12 col-lg-12 col-md-12"> + <div class=""> + <div class="row account-details" style="margin:0px"> + <div class="col-md-3"> + <!-- Net Profit or Loss --> + <div class="tile wide invoice box-1"> + <div class="headers"> + <div class="main-title">Net Profit or Loss</div> + <div id="monthly_invoice"> + <div class="left"> + <div class="count"> + <span id="net_profit_current_year" /> + </div> + </div> + <div class="right"> + <div class="count"> + <span id="net_profit_current_months" /> + </div> + </div> + </div> + </div> + </div> + </div> + <!-- Total Income --> + <div class="col-md-3"> + <div class="tile wide invoice box-2"> + <div class="header"> + <div class="main-title">Total Income</div> + <div id="monthly_income"> + <div class="left"> + <div class="count"> + <span id="total_incomes_this_year" /> + </div> + </div> + <div class="right"> + <div class="count"> + <span id="total_incomes_" /> + </div> + </div> + </div> + </div> + </div> + </div> + <!-- Total Expense --> + <div class="col-md-3"> + <div class="tile wide invoice box-3"> + <div class="header"> + <div class="main-title">Total Expenses</div> + <div id="monthly_expense"> + <div class="left"> + <div class="count"> + <span id="total_expense_this_year" /> + </div> + </div> + <div class="right"> + <div class="count"> + <span id="total_expenses_" /> + </div> + </div> + </div> + </div> + </div> + </div> + <!-- Unreconciled items --> + <div class="col-md-3"> + <div class="tile wide invoice box-4"> + <div class="header"> + <div class="main-title">Unreconciled items</div> + <div id="monthly_unreconciled"> + <div class="left"> + <div class="count"> + <span id="unreconciled_counts_this_year" /> + </div> + </div> + <div class="right"> + <div class="count"> + <span id="unreconciled_items_" /> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + <!-- <div class="row" style="margin:0px">--> + <div class="col-xs-12 col-sm-12 col-lg-12 col-md-12"> + <div class="row" style="margin:0px"> + <div class="col-md-4" id="col-graph"> + <div class="card"> + <div class="card-header"> + <div class="card-title"> + <b> + <h3 class="custom-h3">Income/Expense</h3> + </b> + </div> + <div class="card-tools"> + <select id="income_expense_values"> + <option id="income_this_year" value="income_this_year">This Year</option> + <option id="income_this_month" value="income_this_month">This Month</option> + <div role="separator" class="dropdown-divider" /> + <option id="income_last_month" value="income_last_month">Last Month</option> + <option id="income_last_year" value="income_this_year">Last Year</option> + </select> + </div> + </div> + <div class="card-body mt-3" id="in_ex_body_hide"> + <div class="row"> + <div class="col-md-12"> + <p id="myelement1"> </p> + <div class="chart"> + <canvas id="canvas" width="300" height="200"> </canvas> + </div> + </div> + </div> + </div> + </div> + </div> + <div class="col-md-4" id="col-graph"> + <div class="card"> + <div class="card-header"> + <div class="card-title"> + <b> + <h3 class="custom-h3">INVOICES</h3> + </b> + </div> + <div class="card-tools"> + <select id="invoice_values"> + <option id="invoice_this_month" value="this_month">This Month</option> + <option id="invoice_this_year" value="this_year">This Year</option> + </select> + </div> + </div> + <!-- /.card-header --> + <div class="card-body" id=""> + <div class="row"> + <div class="col-md-12 mt-3"> + <h1 class="custom-h1" style="margin-bottom: 0;">Customer Invoice</h1> + <ul class="skill-list"> + <li class="skill" style="display: flex;justify-content: space-between;color: #000;"> + <p id="total_customer_invoice_paid" /> + <p id="total_customer_invoice" /> + <p id="total_customer_invoice_paid_current_year" /> + <p id="total_customer_invoice_current_year" /> + <p id="total_customer_invoice_paid_current_month" /> + <p id="total_customer_invoice_current_month" /> + </li> + <li> + <progress id="tot_invoice" class="skill-1" max="" value=""> + <strong>Skill Level: 50%</strong> + </progress> + </li> + <li> + <progress id="tot_invoice_current_year" class="skill-1" max="" value=""> + <strong>Skill Level: 50%</strong> + </progress> + </li> + <li> + <progress id="tot_invoice_current_month" class="skill-1" max="" value=""> + <strong>Skill Level: 50%</strong> + </progress> + </li> + </ul> + <div role="separator" class="dropdown-divider" /> + <h1 class="custom-h1" style="margin-bottom: 0;">Supplier Invoice</h1> + <ul class="skill-list"> + <li class="skill" style="display: flex;justify-content: space-between;color: #000;"> + <p id="total_supplier_invoice_paid"/> + <p id="total_supplier_invoice" /> + <p id="total_supplier_invoice_paid_current_year"/> + <p id="total_supplier_invoice_current_year" /> + <p id="total_supplier_invoice_paid_current_month"/> + <p id="total_supplier_invoice_current_month" /> + </li> + <li> + <progress id="tot_supplier_inv" class="skill-1" max="" value=""> + <strong>Skill Level: 50%</strong> + </progress> + </li> + <li> + <progress id="tot_supplier_inv_current_year" class="skill-1" max="" value=""> + <strong>Skill Level: 50%</strong> + </progress> + </li> + <li> + <progress id="tot_supplier_inv_current_month" class="skill-1" max="" value=""> + <strong>Skill Level: 50%</strong> + </progress> + </li> + </ul> + </div> + </div> + </div> + </div> + </div> + <div class="col-md-4" id="col-graph"> + <div class="card"> + <div class="card-body p-0" style=" height: 287px; overflow-y: auto; "> + <div class="card-header" style=" padding: 17px 1.5rem !important; display: flex !IMPORTANT; justify-content: space-between; align-items: center; "> + <h3 class="custom-h3 card-title"> + <b>BANK AND CASH BALANCE</b> + </h3> + </div> + <div class="card-body p-0" style=" height: 100px; " id="bank_balance_body_hide"> + <ul id="current_bank_balance"></ul> + </div> + </div> + </div> + </div> + <div class="col-md-4" id="col-graph"> + <div class="card"> + <div class="card-header"> + <div class="card-title"> + <b> + <h3 class="custom-h3">Aged Receivable</h3> + </b> + </div> + <div class="card-tools"> + <select id="aged_receivable_values"> + <option id="aged_payable_this_month" value="this_month">This Month</option> + <option id="aged_payable_this_year" value="this_year">This Year</option> + </select> + </div> + </div> + <!-- /.card-header --> + <div class="card-body" id="ex_body"> + <div class="row"> + <div class="col-md-12"> + <div> + <canvas id="canvas1" height="250px" width="400px"></canvas> + </div> + </div> + </div> + </div> + </div> + </div> + <div class="col-md-4" id="col-graph"> + <div class="card"> + <div class="card-header"> + <div class="card-title"> + <b> + <h3 class="custom-h3">Aged Payable</h3> + </b> + </div> + <div class="card-tools"> + <select id="aged_payable_value"> + <option id="aged_receivable_this_month" value="this_month">This Month</option> + <option id="aged_receivable_this_year" value="this_year">This Year</option> + </select> + </div> + </div> + <!-- /.card-header --> + <div class="card-body" id="aged_payable_body_hide"> + <div class="row"> + <div class="col-md-12"> + <div id="chart"> + <canvas id="horizontalbarChart" width="400" height="250"></canvas> + </div> + </div> + </div> + </div> + </div> + </div> + <div class="col-md-4"> + <div class="card" style="height:366px;"> + <div class="card-header" style=" padding: 17px 1.5rem !important; display: flex !IMPORTANT; justify-content: space-between; align-items: center; "> + <h3 class="custom-h3 card-title"> + <b>TOP 10 CUSTOMERS</b> + </h3> + + <div class="card-tools"> + <select id="top_10_customer_value"> +<!-- <option id="null" value="null"></option>--> + <option id="top_10_customer_this_month" value="this_month">This Month</option> + <div role="separator" class="dropdown-divider" /> + <option id="top_10_customer_last_month" value="last_month">Last Month</option> + + </select> + </div> + </div> + + <div class="card-body p-0" style=" height: 287px; overflow-y: auto; " id="top_10_body"> +<!-- <ul class="users-list clearfix" id="top_10_customers"></ul>--> + <ul class="users-list clearfix" id="top_10_customers_this_month"></ul> +<!-- <ul class="users-list clearfix" id="top_10_customers_last_month"></ul>--> + </div> + </div> + </div> + </div> + </div> + <!-- </div>--> + <div class="container-fluid o_hr_dashboard"> + <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3" id="invoice_grapg" /> + <div class="dashboard-header-filter"> + <div class="manager_filter_class" /> + </div> + </div> + <div id="chart-container"></div> + </div> + </t> +</templates>
\ No newline at end of file |
