Slimstat Analytics - Version 4.8

Version Description

  • [Note] Now that we have a cleaner foundation to build on, it's time to start introducing new reports and new ways to segment your audience and the traffic they generate. While our users test the latest changes and updates (to confirm that the foundation is indeed solid and bug-free), we are hard at work implementing the first batch of new reports. Some of them will be made available in the free version, while others will be added to our premium add-on, User Overview. And we need your help! If you think that a specific report should be added to Slimstat, please do not hesitate to let us know!
  • [Note] Worried about the recent news regarding jQuery vulnerabilities? Slimstat doesn't use jQuery as a dependency, so you can sleep tight knowing that your website will not be affected.
  • [Update] AmCharts, the library used to render all of our charts, has been updated to version 4. This new release is not backward compatible, so the code to integrate it with Slimstat had to be completely rewritten. Please let us know if you notice any issues.
  • [Update] Plugin Update Checker, the library we use to check if a new version of our premium add-ons is available for download, has been update to version 4.6.
  • [Update] If you're using our partner's CDN functionality (JsDelivr) to load the tracker, their link is now always loaded over HTTPS for added security.
  • [Update] Switched the Add-on Update checker URL to HTTPS, for added security (thank you, Peter).
  • [Update] Changed the protocol of all the URLs used within Slimstat, including references to our documentation, to HTTPS.
  • [Update] Added icon to geolocate Originating IP addresses, when detected.
  • [Fix] The optout cookie path was not being set correctly (thank you, ralfkerkhoff).
  • [Fix] Google seems to be using a new User Agent string for its "mobile" crawler, which was causing Slimstat from incorrectly identifying visits as coming from mobile devices, instead of bots (thank you, Ron).
  • [Fix] An error was being returned if SVG elements were using the A tag on a page (thank you, snaphappyme).
  • [Fix] A bug was causing Slimstat to incorrectly geolocate visits to websites behind a Cloudflare load balancer. Please update the IP Address Fix add-on as well.
  • [Fix] Tweaked the formula to determine your website bounce rate, and updated the associated description to better reflect the underlying calculations.
Download this release

Release Info

Developer coolmann
Plugin Icon 128x128 Slimstat Analytics
Version 4.8
Comparing to
See all releases

Code changes from version 4.7.9.1 to 4.8

README.md CHANGED
@@ -6,19 +6,13 @@ Text Domain: wp-slimstat
6
  **Requires at least:** 3.8
7
  Requires PHP: 5.2
8
  **Tested up to:** 5.1
9
- **Stable tag:** 4.7.9
10
 
11
 
12
  ## Description
13
  The leading web analytics plugin for WordPress. Track returning customers and registered users, monitor Javascript events, detect intrusions, analyze email campaigns. Thousands of WordPress sites are already using it.
14
 
15
 
16
- ### Feature Spotlight
17
- Click on the preview here below to watch an introductory video to our plugin.
18
-
19
- [![Introduction to Slimstat Analytics](https://img.youtube.com/vi/zEKP9yC8x6g/maxresdefault.jpg)](https://youtu.be/zEKP9yC8x6g)
20
-
21
-
22
  ### Main features
23
  * Get access to real-time access log, measure server latency, track page events, keep an eye on your bounce rate and much more.
24
  * Add shortcodes to your website to display reports in widgets or directly in posts and pages.
@@ -55,7 +49,7 @@ Slimstat is available in multiple languages: English, Belarusian (UStarCash), Ch
55
 
56
  ### Requirements
57
  * WordPress 3.8+
58
- * PHP 5.2+ (or 5.5+ if you use the Browscap data file)
59
  * MySQL 5.0.3+
60
  * At least 40 MB of free web space
61
  * At least 5 MB of free DB space
@@ -78,13 +72,34 @@ Slimstat is available in multiple languages: English, Belarusian (UStarCash), Ch
78
 
79
 
80
  ## Frequently Asked Questions
81
- Our knowledge base is available on our [support center](http://docs.wp-slimstat.com/) website.
82
 
83
 
84
  ## Changelog
85
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
86
  ### 4.7.9
87
  * [Note] Jason is back! Apologies for the radio silence in the last few months, due to personal reasons. Please know that this plugin is still very much alive and kicking. I'm working on cleaning up my development environment, updating the Git repository and streamlining coding workflows. I'm catching up on past and new feature requests and pending bugfixes. As always, thank you for your continued support.
 
88
  * [Update] Our optimized fork of the Browscap Library is now available as a public Github repository. Slimstat will now check for updates on Github directly, which streamlines our deployment workflow. Feel free to contact us if you experience any issues with the new data file.
89
 
90
 
6
  **Requires at least:** 3.8
7
  Requires PHP: 5.2
8
  **Tested up to:** 5.1
9
+ **Stable tag:** 4.8
10
 
11
 
12
  ## Description
13
  The leading web analytics plugin for WordPress. Track returning customers and registered users, monitor Javascript events, detect intrusions, analyze email campaigns. Thousands of WordPress sites are already using it.
14
 
15
 
 
 
 
 
 
 
16
  ### Main features
17
  * Get access to real-time access log, measure server latency, track page events, keep an eye on your bounce rate and much more.
18
  * Add shortcodes to your website to display reports in widgets or directly in posts and pages.
49
 
50
  ### Requirements
51
  * WordPress 3.8+
52
+ * PHP 5.2+ (or 7.1+ if you use the Browscap data file)
53
  * MySQL 5.0.3+
54
  * At least 40 MB of free web space
55
  * At least 5 MB of free DB space
72
 
73
 
74
  ## Frequently Asked Questions
75
+ Our knowledge base is available on our [support center](https://docs.wp-slimstat.com/) website.
76
 
77
 
78
  ## Changelog
79
 
80
+ ### 4.8
81
+ * [Note] Now that we have a cleaner foundation to build on, it's time to start introducing new reports and new ways to segment your audience and the traffic they generate. While our users test the latest changes and updates (to confirm that the foundation is indeed solid and bug-free), we are hard at work implementing the first batch of new reports. Some of them will be made available in the free version, while others will be added to our premium add-on, [User Overview](http://www.wp-slimstat.com/downloads/user-overview/). And we need your help! If you think that a specific report should be added to Slimstat, please do not hesitate to let us know!
82
+ * [Note] Worried about the recent [news regarding jQuery vulnerabilities](https://www.zdnet.com/article/popular-jquery-javascript-library-impacted-by-prototype-pollution-flaw/)? Slimstat doesn't use jQuery as a dependency, so you can sleep tight knowing that your website will not be affected.
83
+ * [Update] [AmCharts](https://www.amcharts.com/javascript-charts/), the library used to render all of our charts, has been updated to version 4. This new release is not backward compatible, so the code to integrate it with Slimstat had to be completely rewritten. Please let us know if you notice any issues.
84
+ * [Update] [Plugin Update Checker](https://github.com/YahnisElsts/plugin-update-checker), the library we use to check if a new version of our premium add-ons is available for download, has been update to version 4.6.
85
+ * [Update] If you're using our partner's CDN functionality (JsDelivr) to load the tracker, their link is now always loaded over HTTPS for added security.
86
+ * [Update] Switched the Add-on Update checker URL to HTTPS, for added security (thank you, Peter).
87
+ * [Update] Changed the protocol of all the URLs used within Slimstat, including references to our documentation, to HTTPS.
88
+ * [Update] Added icon to geolocate Originating IP addresses, when detected.
89
+ * [Fix] The optout cookie path was not being set correctly (thank you, [ralfkerkhoff](https://wordpress.org/support/topic/opt-out-cookie-per-page/)).
90
+ * [Fix] Google seems to be using a new User Agent string for its "mobile" crawler, which was causing Slimstat from incorrectly identifying visits as coming from mobile devices, instead of bots (thank you, Ron).
91
+ * [Fix] An error was being returned if SVG elements were using the A tag on a page (thank you, [snaphappyme](https://wordpress.org/support/topic/uncaught-typeerror-all_linksn-href-indexof/)).
92
+ * [Fix] A bug was causing Slimstat to incorrectly geolocate visits to websites behind a Cloudflare load balancer. Please update the IP Address Fix add-on as well.
93
+ * [Fix] Tweaked the formula to determine your website bounce rate, and updated the associated description to better reflect the underlying calculations.
94
+
95
+
96
+ ### 4.7.9.1
97
+ * [Fix] It turns out the new [Browscap Library](https://github.com/slimstat/browscap-db) we introduced requires PHP 7.x, not 5.6 as stated in their documentation. Added some code to prevent fatal errors for those still using an older version of PHP.
98
+
99
+
100
  ### 4.7.9
101
  * [Note] Jason is back! Apologies for the radio silence in the last few months, due to personal reasons. Please know that this plugin is still very much alive and kicking. I'm working on cleaning up my development environment, updating the Git repository and streamlining coding workflows. I'm catching up on past and new feature requests and pending bugfixes. As always, thank you for your continued support.
102
+ * [Note] Happy birthday, Slimstat: April 2019 marks your 9th year in the [WordPress repository](https://plugins.trac.wordpress.org/changeset/227217) and your 13th year overall. Not many plugins out there can brag about that!
103
  * [Update] Our optimized fork of the Browscap Library is now available as a public Github repository. Slimstat will now check for updates on Github directly, which streamlines our deployment workflow. Feel free to contact us if you experience any issues with the new data file.
104
 
105
 
admin/config/index.php CHANGED
@@ -19,7 +19,7 @@ if ( isset( $_POST[ 'options' ][ 'ignore_capabilities' ] ) ) {
19
  wp_slimstat::$settings[ 'ignore_capabilities' ] = $_POST[ 'options' ][ 'ignore_capabilities' ];
20
  }
21
  else{
22
- wp_slimstat_admin::$faulty_fields[] = __( 'Invalid capability. Please check <a href="http://codex.wordpress.org/Roles_and_Capabilities" target="_new">this page</a> for more information', 'wp-slimstat' );
23
  }
24
  }
25
 
@@ -47,7 +47,7 @@ if ( isset( $_POST[ 'options' ][ 'capability_can_view' ] ) ) {
47
  wp_slimstat::$settings[ 'capability_can_view' ] = $_POST[ 'options' ][ 'capability_can_view' ];
48
  }
49
  else{
50
- wp_slimstat_admin::$faulty_fields[] = __( 'Invalid capability. Please check <a href="http://codex.wordpress.org/Roles_and_Capabilities" target="_new">this page</a> for more information', 'wp-slimstat' );
51
  }
52
  }
53
 
@@ -72,7 +72,7 @@ if ( isset( $_POST[ 'options' ][ 'capability_can_admin' ] ) ) {
72
  wp_slimstat::$settings[ 'capability_can_admin' ] = $_POST[ 'options' ][ 'capability_can_admin' ];
73
  }
74
  else{
75
- wp_slimstat_admin::$faulty_fields[] = __( 'Invalid capability. Please check <a href="http://codex.wordpress.org/Roles_and_Capabilities" target="_new">this page</a> for more information', 'wp-slimstat' );
76
  }
77
  }
78
 
@@ -115,7 +115,6 @@ $settings = array(
115
  'opt_out_message' => array( 'description' => __( 'Opt-out Message', 'wp-slimstat' ), 'type' => 'textarea', 'rows' => 4, 'long_description' => __( "In order to provide maximum flexibility to all site owners, we decided to give you full control over the message and its layout, by allowing you to specify the exact HTML markup that should be displayed on your website. Feel free to customize this code to match your website styles and layout. Use the two placeholders <code>{{accept_url}}</code> and <code>{{deny_url}}</code> for the corresponding links, with the following meaning: Accept = allow tracking, Deny = do not allow tracking.", 'wp-slimstat' ), 'use_tag_list' => false ),
116
  'opt_out_cookie_names' => array( 'description' => __( 'Opt-out Cookies', 'wp-slimstat' ), 'type' => 'textarea', 'long_description' => __( "If you're already using another solution to record and track opt-out choices made by your users, and it sets its own cookie to remember their selection, you can enter the cookie names and values in this field to let Slimstat leverage that information as well. Please use the following format: <code>cookie_name=value</code>, where 'value' is what is used to remember that the user has chosen to <strong>not</strong> be tracked.", 'wp-slimstat' ) ),
117
  'opt_in_cookie_names' => array( 'description' => __( 'Opt-in Cookies', 'wp-slimstat' ), 'type' => 'textarea', 'long_description' => __( "Similarly to the option here above, you can instruct Slimstat to only track visitors that have provided their consent (opted-in). Please use the following format: <code>cookie_name=value</code>, where 'value' is what is used to remember that the user has chosen <strong>to be</strong> tracked.", 'wp-slimstat' ) ),
118
-
119
 
120
  'filters_outbound_header' => array( 'description' => __( 'Link Tracking', 'wp-slimstat' ), 'type' => 'section_header' ),
121
  'do_not_track_outbound_classes_rel_href' => array( 'description' => __( 'Do Not Track', 'wp-slimstat' ), 'type' => 'textarea', 'long_description' => __( "Slimstat will ignore links marked with one of these class names, <em>rel</em> attributes or whose <em>href</em> attribute contains one of these strings. Please keep in mind that the class <code>noslimstat</code> is also used to avoid tracking interactive links throughout the reports. If you remove it from this list, some features might not work as expected.", 'wp-slimstat' ) ),
@@ -126,7 +125,7 @@ $settings = array(
126
  'geolocation_country' => array( 'description' => __( 'Geolocation Precision', 'wp-slimstat' ), 'type' => 'toggle', 'long_description' => __( "When Slimstat determines your visitors' Country of origin, it uses a third-party data file <a href='https://dev.maxmind.com/geoip/geoip2/geolite2/' target='_blank'>provided by MaxMind</a>. They offer two precision levels: country and city. By default, Slimstat will install the smaller one (country), and you can decide to use the other one, if you don't mind its 60 Mb average size. After you change this option, please <strong>go to the Maintenance tab</strong> and reload (uninstall/install) the MaxMind GeoLite DB by clicking on the corresponding button.", 'wp-slimstat' ), 'custom_label_on' => __( 'Country', 'wp-slimstat' ), 'custom_label_off' => __( 'City', 'wp-slimstat' ) ),
127
  'session_duration' => array('description' => __( 'Session Duration', 'wp-slimstat' ), 'type' => 'integer', 'long_description' => __( 'How many seconds should a human session last? Google Analytics sets it to 1800 seconds.', 'wp-slimstat' ), 'after_input_field' => __( 'seconds', 'wp-slimstat' ) ),
128
  'extend_session' => array( 'description' => __( 'Extend Session', 'wp-slimstat' ), 'type' => 'toggle', 'long_description' => __( 'Extend the duration of a session each time the user visits a new page.', 'wp-slimstat' ) ),
129
- 'enable_cdn' => array( 'description' => __( 'Enable CDN', 'wp-slimstat' ), 'type' => 'toggle', 'long_description' => __( "Use <a href='http://www.jsdelivr.com/' target='_blank'>JSDelivr</a>'s CDN, by serving our tracking code from their fast and reliable network (free service).", 'wp-slimstat' ) ),
130
  'ajax_relative_path' => array( 'description' => __( 'Relative Ajax', 'wp-slimstat' ), 'type' => 'toggle', 'long_description' => __( 'If you are experiencing issues related to the header field X-Requested-With not being allowed by Access-Control-Allow-Headers in preflight response (or similar), try enabling this option to make that <code>admin-ajax.php</code> URL relative.', 'wp-slimstat' ) ),
131
 
132
  'advanced_external_pages_header' => array('description' => __('External Pages','wp-slimstat'), 'type' => 'section_header'),
@@ -139,8 +138,8 @@ $settings = array(
139
  };
140
  /* ]]&gt; */
141
  &lt;/script&gt;
142
- &lt;script type="text/javascript" src="http://cdn.jsdelivr.net/wp/wp-slimstat/trunk/wp-slimstat.min.js"&gt;&lt;/script&gt;', 'use_tag_list' => false ),
143
- 'external_domains' => array('description' => __('Allow Domains','wp-slimstat'), 'type' => 'textarea', 'long_description' => __("If you are getting an error saying that no 'Access-Control-Allow-Origin' header is present on the requested resource, when using the external tracking code here above, list the domains (complete with scheme) you would like to allow. For example: <code>http://my.domain.ext</code> (no trailing slash). Please see <a href='http://www.w3.org/TR/cors/#security' target='_blank'>this W3 resource</a> for more information on the security implications of allowing CORS requests.",'wp-slimstat'))
144
  )
145
  ),
146
 
@@ -158,11 +157,11 @@ $settings = array(
158
  'ignore_countries' => array( 'description' => __( 'Countries', 'wp-slimstat' ), 'type' => 'textarea', 'long_description' => __( "Country codes (i.e.: <code>en-us, it, es</code>) that you don't want to track.", 'wp-slimstat' ) ),
159
  'ignore_browsers' => array('description' => __( 'User Agents', 'wp-slimstat' ), 'type' => 'textarea', 'long_description' => __( "Browsers (user agents) you don't want to track. You can specify the browser's version adding a slash after the name (i.e. <em>Firefox/3.6</em>). Wildcards: <code>*</code> matches 'any string, including the empty string', <code>!</code> matches 'any character'. For example, <code>Chr*</code> will match Chrome and Chromium, <code>IE/!.0</code> will match IE/7.0 and IE/8.0. Strings are case-insensitive.", 'wp-slimstat' ) ),
160
  'ignore_platforms' => array( 'description' => __( 'Operating Systems', 'wp-slimstat' ), 'type' => 'textarea', 'long_description' => __( "Operating system codes you don't want to track. Please refer to <a href='https://slimstat.freshdesk.com/solution/articles/12000031504-what-are-the-operating-system-codes-used-by-slimstat-' target='_blank'>this page</a> in our knowledge base to learn more about what codes you can use. Usual rules for using wildcards apply (see fields here above).", 'wp-slimstat' ) ),
161
- 'ignore_capabilities' => array( 'description' => __( 'Capabilities', 'wp-slimstat' ), 'type' => 'textarea', 'long_description' => __( "Users having at least one of the <a href='http://codex.wordpress.org/Roles_and_Capabilities' target='_new'>capabilities</a> listed here below will not be tracked. Capabilities are case-insensitive.", 'wp-slimstat' ), 'skip_update' => true ),
162
 
163
  'filters_pageview_header' => array( 'description' => __( 'Page Properties', 'wp-slimstat' ), 'type' => 'section_header' ),
164
  'ignore_resources' => array( 'description' => __( 'Permalinks', 'wp-slimstat' ), 'type' => 'textarea', 'long_description' => __( "List all the URLs on your website that you don't want to track. Don't include the domain name: <em>/about, ?p=1</em>, etc. Wildcards: <code>*</code> matches 'any string, including the empty string', <code>!</code> matches 'any character'. For example, <code>/abou*</code> will match /about and /abound, <code>/abo*t</code> will match /aboundant and /about, <code>/abo!t</code> will match /about and /abort. Strings are case-insensitive.", 'wp-slimstat' ) ),
165
- 'ignore_referers' => array( 'description' => __( 'Referring Sites', 'wp-slimstat' ), 'type' => 'textarea', 'long_description' => __( "Referring URLs that you don't want to track: <code>http://mysite.com*</code>, <code>*/ignore-me-please</code>, etc. Wildcards: <code>*</code> matches 'any string, including the empty string', <code>!</code> matches 'any character'. Strings are case-insensitive. Please include either a wildcard or the protocol you want to filter (http://, https://).", 'wp-slimstat' ) ),
166
  'ignore_content_types' => array( 'description' => __( 'Content Types', 'wp-slimstat' ), 'type' => 'textarea', 'long_description' => __( "Slimstat categorizes pageviews by the associated WordPress content type: post, page, attachment, tag, 404, taxonomy, author, archive, search, feed, login and others. You can use this field to avoid tracking pages whose content type matches the ones you set here below.", 'wp-slimstat' ) )
167
  )
168
  ),
@@ -172,22 +171,21 @@ $settings = array(
172
  'rows' => array(
173
  'reports_basic_header' => array( 'description' => __( 'Data Formats and Conversion', 'wp-slimstat' ), 'type' => 'section_header' ),
174
  'use_european_separators' => array( 'description' => __( 'Number Format', 'wp-slimstat' ), 'type' => 'toggle', 'long_description' => __( 'Choose the number format you want to use for your reports.','wp-slimstat' ), 'custom_label_on' => '1.234,5', 'custom_label_off' => '1,234.5' ),
175
- 'date_format' => array('description' => __('Date Format','wp-slimstat'), 'type' => 'text', 'long_description' => __("<a href='http://php.net/manual/en/function.date.php' target='_blank'>PHP Format</a> to use when displaying a pageview's date.", 'wp-slimstat')),
176
- 'time_format' => array('description' => __('Time Format','wp-slimstat'), 'type' => 'text', 'long_description' => __("<a href='http://php.net/manual/en/function.date.php' target='_blank'>PHP Format</a> to use when displaying a pageview's time.", 'wp-slimstat')),
177
  'show_display_name' => array('description' => __('Use Display Name','wp-slimstat'), 'type' => 'toggle', 'long_description' => __('By default, users are listed by their usernames. Use this option to visualize their display names instead.','wp-slimstat')),
178
  'convert_resource_urls_to_titles' => array('description' => __('Use Titles','wp-slimstat'), 'type' => 'toggle', 'long_description' => __('Slimstat converts your permalinks into post, page and category titles. Disable this feature if you need to see the URL in your reports.', 'wp-slimstat')),
179
  'convert_ip_addresses' => array('description' => __('Convert IP Addresses','wp-slimstat'), 'type' => 'toggle', 'long_description' => __('Display provider names instead of IP addresses.','wp-slimstat')),
180
 
181
  'reports_functionality_header' => array( 'description' => __( 'Functionality', 'wp-slimstat' ), 'type' => 'section_header' ),
182
- 'async_load' => array( 'description' => __( 'Async Mode', 'wp-slimstat' ), 'type' => 'toggle', 'long_description' => __( 'Activate this feature if your reports take a while to load. It breaks down the load on your server into multiple requests, thus avoiding memory issues and performance problems.', 'wp-slimstat' ) ),
183
  'use_current_month_timespan' => array( 'description' => __( 'Default Time Span', 'wp-slimstat' ), 'type' => 'toggle', 'long_description' => __( 'Determine what is the default time period for calculating all the data in each report: current month or past given number of days. The number of days is defined under Basic > Report Interval. You can always use the time filter dropdown to customize this value even further.', 'wp-slimstat' ), 'custom_label_on' => 'Month', 'custom_label_off' => 'Days' ),
 
184
  'expand_details' => array('description' => __('Expand Details','wp-slimstat'), 'type' => 'toggle', 'long_description' => __("Expand each row's details by default, insted of on mousehover.",'wp-slimstat')),
185
  'rows_to_show' => array('description' => __('Rows to Display','wp-slimstat'), 'type' => 'integer', 'long_description' => __('Specify the number of items in each report.','wp-slimstat')),
186
  'limit_results' => array( 'description' => __( 'Max Results','wp-slimstat' ), 'type' => 'integer', 'long_description' => __( 'Decide how many records should be retrieved from the database in total. Depending on your server configuration, you may want to fine tune this value to avoid exceeding your PHP memory limit.', 'wp-slimstat' ) ),
187
- 'ip_lookup_service' => array('description' => __( 'IP Lookup', 'wp-slimstat' ), 'type' => 'text', 'long_description' => __( 'Customize the Geolocation service to be used in the reports. Default: <code>http://www.infosniper.net/?ip_address=</code>', 'wp-slimstat' ) ),
188
- 'mozcom_access_id' => array('description' => __( 'Mozscape Access ID', 'wp-slimstat' ), 'type' => 'text', 'long_description' => __( 'Get accurate rankings for your website through the free <a href="https://moz.com/community/join?redirect=/products/api/keys" target="_blank">Mozscape API</a> service. Sign up for a free community account to get started. Then enter your personal identification code here.', 'wp-slimstat' ) ),
189
- 'mozcom_secret_key' => array('description' => __( 'Mozscape Secret Key', 'wp-slimstat' ), 'type' => 'text', 'long_description' => __( 'Do not share your secret key with anyone or they will be able to make API requests on your account!', 'wp-slimstat' ) ),
190
-
191
  'reports_right_now_header' => array( 'description' => __( 'Access Log and World Map', 'wp-slimstat' ), 'type' => 'section_header' ),
192
  'refresh_interval' => array( 'description' => __( 'Auto Refresh', 'wp-slimstat' ), 'type' => 'integer', 'long_description' => __( 'Enable the Live View, which refreshes the Access Log every X seconds. Enter <strong>0</strong> (number zero) to deactivate this feature.', 'wp-slimstat' ), 'after_input_field' => __( 'seconds', 'wp-slimstat' ) ),
193
  'number_results_raw_data' => array('description' => __( 'Rows to Display', 'wp-slimstat'), 'type' => 'integer', 'long_description' => __( 'Specify the number of items in the Access Log.', 'wp-slimstat' ) ),
@@ -196,7 +194,8 @@ $settings = array(
196
  'reports_miscellaneous_header' => array('description' => __('Miscellaneous','wp-slimstat'), 'type' => 'section_header'),
197
  'custom_css' => array( 'description' => __( 'Custom CSS', 'wp-slimstat' ), 'type' => 'textarea', 'rows' => 8, 'long_description' => __( "Paste here your custom stylesheet to personalize the way your reports look. <a href='https://slimstat.freshdesk.com/support/solutions/articles/5000528528-how-can-i-change-the-colors-associated-to-color-coded-pageviews-known-user-known-visitors-search-e' target='_blank'>Check the FAQ</a> for more information on how to use this setting.", 'wp-slimstat' ), 'use_tag_list' => false ),
198
  'chart_colors' => array( 'description' => __( 'Chart Colors', 'wp-slimstat' ), 'type' => 'textarea', 'long_description' => __( "Customize the look and feel of your charts by assigning personalized colors to each metric. List 4 hex colors, strictly in the following order: metric 1 previous, metric 2 previous, metric 1 current, metric 2 current. For example: <code>#ccc, #999, #bbcc44, #21759b</code>.", 'wp-slimstat' ) ),
199
- 'comparison_chart' => array( 'description' => __( 'Comparison Chart', 'wp-slimstat'), 'type' => 'toggle', 'long_description' => __( "Disable this option if you find the four line charts confusing, and prefer seeing only the selected time range.", 'wp-slimstat' ) ),
 
200
  'show_complete_user_agent_tooltip' => array('description' => __('Show User Agent','wp-slimstat'), 'type' => 'toggle', 'long_description' => __('Choose if you want to see the browser name or a complete user agent string when hovering over each browser icon.','wp-slimstat')),
201
  'enable_sov' => array('description' => __('Enable SOV','wp-slimstat'), 'type' => 'toggle', 'long_description' => __('In linguistic typology, a subject-object-verb (SOV) language is one in which the subject, object, and verb of a sentence appear in that order, like in Japanese.','wp-slimstat'))
202
  )
@@ -207,15 +206,15 @@ $settings = array(
207
  'rows' => array(
208
  'permissions_reports_header' => array( 'description' => __( 'Reports', 'wp-slimstat' ), 'type' => 'section_header' ),
209
  'restrict_authors_view' => array( 'description' => __( 'Restrict Authors', 'wp-slimstat' ), 'type' => 'toggle', 'long_description' => __( 'Enable this option if you want your authors to only see stats related to their own content.', 'wp-slimstat' ) ),
210
- 'capability_can_view' => array( 'description' => __( 'Capability', 'wp-slimstat' ), 'type' => 'text', 'long_description' => __( "Specify the minimum <a href='http://codex.wordpress.org/Roles_and_Capabilities' target='_new'>capability</a> needed to access the reports (default: <code>activate_plugins</code>). If this field is empty, <strong>all your users</strong> (including subscribers) will have access to the reports, unless a 'Read access' whitelist has been specified here below. In this case, the list has precedence over the capability.", 'wp-slimstat' ) ),
211
  'can_view' => array( 'description' => __( 'Whitelist', 'wp-slimstat' ), 'type' => 'textarea', 'long_description' => __( "List all the users who should have access to the reports. Administrators are implicitly allowed, so you don't need to list them in here. Usernames are case sensitive.", 'wp-slimstat' ), 'skip_update' => true ),
212
 
213
  'permissions_customize_header' => array( 'description' => __( 'Customizer', 'wp-slimstat' ), 'type' => 'section_header' ),
214
- 'capability_can_customize' => array( 'description' => __( 'Capability', 'wp-slimstat' ), 'type' => 'text', 'long_description' => __( "Specify the minimum <a href='http://codex.wordpress.org/Roles_and_Capabilities' target='_new'>capability</a> needed to be able to customize the reports layout (default: <code>activate_plugins</code>). If this field is empty, your users will be permitted to use this features.", 'wp-slimstat' ) ),
215
  'can_customize' => array( 'description' => __( 'Whitelist', 'wp-slimstat' ), 'type' => 'textarea', 'long_description' => __( "List all the users who should be allowed to customize their report layout. Administrators are implicitly allowed, so you don't need to list them in here. Usernames are case sensitive.", 'wp-slimstat' ), 'skip_update' => true ),
216
 
217
  'permissions_config_header' => array( 'description' => __( 'Settings', 'wp-slimstat' ), 'type' => 'section_header' ),
218
- 'capability_can_admin' => array( 'description' => __( 'Capability', 'wp-slimstat' ), 'type' => 'text', 'long_description' => __( "Specify the minimum <a href='http://codex.wordpress.org/Roles_and_Capabilities' target='_new'>capability</a> required to configure Slimstat (default: <code>activate_plugins</code>). The whitelist here below can be used to override this option for specific users.", 'wp-slimstat' ) ),
219
  'can_admin' => array( 'description' => __( 'Whitelist', 'wp-slimstat' ), 'type' => 'textarea', 'long_description' => __( "List all the users who can edit these options. Please be advised that admins <strong>are not</strong> implicitly allowed, so do not forget to include yourself! Usernames are case sensitive.", 'wp-slimstat' ), 'skip_update' => true ),
220
 
221
  'rest_api_header' => array( 'description' => __( 'Rest API', 'wp-slimstat' ), 'type' => 'section_header' ),
19
  wp_slimstat::$settings[ 'ignore_capabilities' ] = $_POST[ 'options' ][ 'ignore_capabilities' ];
20
  }
21
  else{
22
+ wp_slimstat_admin::$faulty_fields[] = __( 'Invalid capability. Please check <a href="https://codex.wordpress.org/Roles_and_Capabilities" target="_new">this page</a> for more information', 'wp-slimstat' );
23
  }
24
  }
25
 
47
  wp_slimstat::$settings[ 'capability_can_view' ] = $_POST[ 'options' ][ 'capability_can_view' ];
48
  }
49
  else{
50
+ wp_slimstat_admin::$faulty_fields[] = __( 'Invalid capability. Please check <a href="https://codex.wordpress.org/Roles_and_Capabilities" target="_new">this page</a> for more information', 'wp-slimstat' );
51
  }
52
  }
53
 
72
  wp_slimstat::$settings[ 'capability_can_admin' ] = $_POST[ 'options' ][ 'capability_can_admin' ];
73
  }
74
  else{
75
+ wp_slimstat_admin::$faulty_fields[] = __( 'Invalid capability. Please check <a href="https://codex.wordpress.org/Roles_and_Capabilities" target="_new">this page</a> for more information', 'wp-slimstat' );
76
  }
77
  }
78
 
115
  'opt_out_message' => array( 'description' => __( 'Opt-out Message', 'wp-slimstat' ), 'type' => 'textarea', 'rows' => 4, 'long_description' => __( "In order to provide maximum flexibility to all site owners, we decided to give you full control over the message and its layout, by allowing you to specify the exact HTML markup that should be displayed on your website. Feel free to customize this code to match your website styles and layout. Use the two placeholders <code>{{accept_url}}</code> and <code>{{deny_url}}</code> for the corresponding links, with the following meaning: Accept = allow tracking, Deny = do not allow tracking.", 'wp-slimstat' ), 'use_tag_list' => false ),
116
  'opt_out_cookie_names' => array( 'description' => __( 'Opt-out Cookies', 'wp-slimstat' ), 'type' => 'textarea', 'long_description' => __( "If you're already using another solution to record and track opt-out choices made by your users, and it sets its own cookie to remember their selection, you can enter the cookie names and values in this field to let Slimstat leverage that information as well. Please use the following format: <code>cookie_name=value</code>, where 'value' is what is used to remember that the user has chosen to <strong>not</strong> be tracked.", 'wp-slimstat' ) ),
117
  'opt_in_cookie_names' => array( 'description' => __( 'Opt-in Cookies', 'wp-slimstat' ), 'type' => 'textarea', 'long_description' => __( "Similarly to the option here above, you can instruct Slimstat to only track visitors that have provided their consent (opted-in). Please use the following format: <code>cookie_name=value</code>, where 'value' is what is used to remember that the user has chosen <strong>to be</strong> tracked.", 'wp-slimstat' ) ),
 
118
 
119
  'filters_outbound_header' => array( 'description' => __( 'Link Tracking', 'wp-slimstat' ), 'type' => 'section_header' ),
120
  'do_not_track_outbound_classes_rel_href' => array( 'description' => __( 'Do Not Track', 'wp-slimstat' ), 'type' => 'textarea', 'long_description' => __( "Slimstat will ignore links marked with one of these class names, <em>rel</em> attributes or whose <em>href</em> attribute contains one of these strings. Please keep in mind that the class <code>noslimstat</code> is also used to avoid tracking interactive links throughout the reports. If you remove it from this list, some features might not work as expected.", 'wp-slimstat' ) ),
125
  'geolocation_country' => array( 'description' => __( 'Geolocation Precision', 'wp-slimstat' ), 'type' => 'toggle', 'long_description' => __( "When Slimstat determines your visitors' Country of origin, it uses a third-party data file <a href='https://dev.maxmind.com/geoip/geoip2/geolite2/' target='_blank'>provided by MaxMind</a>. They offer two precision levels: country and city. By default, Slimstat will install the smaller one (country), and you can decide to use the other one, if you don't mind its 60 Mb average size. After you change this option, please <strong>go to the Maintenance tab</strong> and reload (uninstall/install) the MaxMind GeoLite DB by clicking on the corresponding button.", 'wp-slimstat' ), 'custom_label_on' => __( 'Country', 'wp-slimstat' ), 'custom_label_off' => __( 'City', 'wp-slimstat' ) ),
126
  'session_duration' => array('description' => __( 'Session Duration', 'wp-slimstat' ), 'type' => 'integer', 'long_description' => __( 'How many seconds should a human session last? Google Analytics sets it to 1800 seconds.', 'wp-slimstat' ), 'after_input_field' => __( 'seconds', 'wp-slimstat' ) ),
127
  'extend_session' => array( 'description' => __( 'Extend Session', 'wp-slimstat' ), 'type' => 'toggle', 'long_description' => __( 'Extend the duration of a session each time the user visits a new page.', 'wp-slimstat' ) ),
128
+ 'enable_cdn' => array( 'description' => __( 'Enable CDN', 'wp-slimstat' ), 'type' => 'toggle', 'long_description' => __( "Use <a href='https://www.jsdelivr.com/' target='_blank'>JSDelivr</a>'s CDN, by serving our tracking code from their fast and reliable network (free service).", 'wp-slimstat' ) ),
129
  'ajax_relative_path' => array( 'description' => __( 'Relative Ajax', 'wp-slimstat' ), 'type' => 'toggle', 'long_description' => __( 'If you are experiencing issues related to the header field X-Requested-With not being allowed by Access-Control-Allow-Headers in preflight response (or similar), try enabling this option to make that <code>admin-ajax.php</code> URL relative.', 'wp-slimstat' ) ),
130
 
131
  'advanced_external_pages_header' => array('description' => __('External Pages','wp-slimstat'), 'type' => 'section_header'),
138
  };
139
  /* ]]&gt; */
140
  &lt;/script&gt;
141
+ &lt;script type="text/javascript" src="https://cdn.jsdelivr.net/wp/wp-slimstat/trunk/wp-slimstat.min.js"&gt;&lt;/script&gt;', 'use_tag_list' => false ),
142
+ 'external_domains' => array('description' => __('Allow Domains','wp-slimstat'), 'type' => 'textarea', 'long_description' => __("If you are getting an error saying that no 'Access-Control-Allow-Origin' header is present on the requested resource, when using the external tracking code here above, list the domains (complete with scheme) you would like to allow. For example: <code>https://my.domain.ext</code> (no trailing slash). Please see <a href='https://www.w3.org/TR/cors/#security' target='_blank'>this W3 resource</a> for more information on the security implications of allowing CORS requests.",'wp-slimstat'))
143
  )
144
  ),
145
 
157
  'ignore_countries' => array( 'description' => __( 'Countries', 'wp-slimstat' ), 'type' => 'textarea', 'long_description' => __( "Country codes (i.e.: <code>en-us, it, es</code>) that you don't want to track.", 'wp-slimstat' ) ),
158
  'ignore_browsers' => array('description' => __( 'User Agents', 'wp-slimstat' ), 'type' => 'textarea', 'long_description' => __( "Browsers (user agents) you don't want to track. You can specify the browser's version adding a slash after the name (i.e. <em>Firefox/3.6</em>). Wildcards: <code>*</code> matches 'any string, including the empty string', <code>!</code> matches 'any character'. For example, <code>Chr*</code> will match Chrome and Chromium, <code>IE/!.0</code> will match IE/7.0 and IE/8.0. Strings are case-insensitive.", 'wp-slimstat' ) ),
159
  'ignore_platforms' => array( 'description' => __( 'Operating Systems', 'wp-slimstat' ), 'type' => 'textarea', 'long_description' => __( "Operating system codes you don't want to track. Please refer to <a href='https://slimstat.freshdesk.com/solution/articles/12000031504-what-are-the-operating-system-codes-used-by-slimstat-' target='_blank'>this page</a> in our knowledge base to learn more about what codes you can use. Usual rules for using wildcards apply (see fields here above).", 'wp-slimstat' ) ),
160
+ 'ignore_capabilities' => array( 'description' => __( 'Capabilities', 'wp-slimstat' ), 'type' => 'textarea', 'long_description' => __( "Users having at least one of the <a href='https://codex.wordpress.org/Roles_and_Capabilities' target='_new'>capabilities</a> listed here below will not be tracked. Capabilities are case-insensitive.", 'wp-slimstat' ), 'skip_update' => true ),
161
 
162
  'filters_pageview_header' => array( 'description' => __( 'Page Properties', 'wp-slimstat' ), 'type' => 'section_header' ),
163
  'ignore_resources' => array( 'description' => __( 'Permalinks', 'wp-slimstat' ), 'type' => 'textarea', 'long_description' => __( "List all the URLs on your website that you don't want to track. Don't include the domain name: <em>/about, ?p=1</em>, etc. Wildcards: <code>*</code> matches 'any string, including the empty string', <code>!</code> matches 'any character'. For example, <code>/abou*</code> will match /about and /abound, <code>/abo*t</code> will match /aboundant and /about, <code>/abo!t</code> will match /about and /abort. Strings are case-insensitive.", 'wp-slimstat' ) ),
164
+ 'ignore_referers' => array( 'description' => __( 'Referring Sites', 'wp-slimstat' ), 'type' => 'textarea', 'long_description' => __( "Referring URLs that you don't want to track: <code>https://mysite.com*</code>, <code>*/ignore-me-please</code>, etc. Wildcards: <code>*</code> matches 'any string, including the empty string', <code>!</code> matches 'any character'. Strings are case-insensitive. Please include either a wildcard or the protocol you want to filter (https://, https://).", 'wp-slimstat' ) ),
165
  'ignore_content_types' => array( 'description' => __( 'Content Types', 'wp-slimstat' ), 'type' => 'textarea', 'long_description' => __( "Slimstat categorizes pageviews by the associated WordPress content type: post, page, attachment, tag, 404, taxonomy, author, archive, search, feed, login and others. You can use this field to avoid tracking pages whose content type matches the ones you set here below.", 'wp-slimstat' ) )
166
  )
167
  ),
171
  'rows' => array(
172
  'reports_basic_header' => array( 'description' => __( 'Data Formats and Conversion', 'wp-slimstat' ), 'type' => 'section_header' ),
173
  'use_european_separators' => array( 'description' => __( 'Number Format', 'wp-slimstat' ), 'type' => 'toggle', 'long_description' => __( 'Choose the number format you want to use for your reports.','wp-slimstat' ), 'custom_label_on' => '1.234,5', 'custom_label_off' => '1,234.5' ),
174
+ 'date_format' => array('description' => __('Date Format','wp-slimstat'), 'type' => 'text', 'long_description' => __("<a href='https://php.net/manual/en/function.date.php' target='_blank'>PHP Format</a> to use when displaying a pageview's date.", 'wp-slimstat')),
175
+ 'time_format' => array('description' => __('Time Format','wp-slimstat'), 'type' => 'text', 'long_description' => __("<a href='https://php.net/manual/en/function.date.php' target='_blank'>PHP Format</a> to use when displaying a pageview's time.", 'wp-slimstat')),
176
  'show_display_name' => array('description' => __('Use Display Name','wp-slimstat'), 'type' => 'toggle', 'long_description' => __('By default, users are listed by their usernames. Use this option to visualize their display names instead.','wp-slimstat')),
177
  'convert_resource_urls_to_titles' => array('description' => __('Use Titles','wp-slimstat'), 'type' => 'toggle', 'long_description' => __('Slimstat converts your permalinks into post, page and category titles. Disable this feature if you need to see the URL in your reports.', 'wp-slimstat')),
178
  'convert_ip_addresses' => array('description' => __('Convert IP Addresses','wp-slimstat'), 'type' => 'toggle', 'long_description' => __('Display provider names instead of IP addresses.','wp-slimstat')),
179
 
180
  'reports_functionality_header' => array( 'description' => __( 'Functionality', 'wp-slimstat' ), 'type' => 'section_header' ),
 
181
  'use_current_month_timespan' => array( 'description' => __( 'Default Time Span', 'wp-slimstat' ), 'type' => 'toggle', 'long_description' => __( 'Determine what is the default time period for calculating all the data in each report: current month or past given number of days. The number of days is defined under Basic > Report Interval. You can always use the time filter dropdown to customize this value even further.', 'wp-slimstat' ), 'custom_label_on' => 'Month', 'custom_label_off' => 'Days' ),
182
+ 'async_load' => array( 'description' => __( 'Async Mode', 'wp-slimstat' ), 'type' => 'toggle', 'long_description' => __( 'Activate this feature if your reports take a while to load. It breaks down the load on your server into multiple requests, thus avoiding memory issues and performance problems.', 'wp-slimstat' ) ),
183
  'expand_details' => array('description' => __('Expand Details','wp-slimstat'), 'type' => 'toggle', 'long_description' => __("Expand each row's details by default, insted of on mousehover.",'wp-slimstat')),
184
  'rows_to_show' => array('description' => __('Rows to Display','wp-slimstat'), 'type' => 'integer', 'long_description' => __('Specify the number of items in each report.','wp-slimstat')),
185
  'limit_results' => array( 'description' => __( 'Max Results','wp-slimstat' ), 'type' => 'integer', 'long_description' => __( 'Decide how many records should be retrieved from the database in total. Depending on your server configuration, you may want to fine tune this value to avoid exceeding your PHP memory limit.', 'wp-slimstat' ) ),
186
+ 'ip_lookup_service' => array('description' => __( 'IP Lookup', 'wp-slimstat' ), 'type' => 'text', 'long_description' => __( 'Customize the Geolocation service to be used in the reports. Default: <code>https://www.infosniper.net/?ip_address=</code>', 'wp-slimstat' ) ),
187
+ 'comparison_chart' => array( 'description' => __( 'Comparison Chart', 'wp-slimstat'), 'type' => 'toggle', 'long_description' => __( "Disable this option if you find the four line charts confusing, and prefer seeing only the selected time range.", 'wp-slimstat' ) ),
188
+
 
189
  'reports_right_now_header' => array( 'description' => __( 'Access Log and World Map', 'wp-slimstat' ), 'type' => 'section_header' ),
190
  'refresh_interval' => array( 'description' => __( 'Auto Refresh', 'wp-slimstat' ), 'type' => 'integer', 'long_description' => __( 'Enable the Live View, which refreshes the Access Log every X seconds. Enter <strong>0</strong> (number zero) to deactivate this feature.', 'wp-slimstat' ), 'after_input_field' => __( 'seconds', 'wp-slimstat' ) ),
191
  'number_results_raw_data' => array('description' => __( 'Rows to Display', 'wp-slimstat'), 'type' => 'integer', 'long_description' => __( 'Specify the number of items in the Access Log.', 'wp-slimstat' ) ),
194
  'reports_miscellaneous_header' => array('description' => __('Miscellaneous','wp-slimstat'), 'type' => 'section_header'),
195
  'custom_css' => array( 'description' => __( 'Custom CSS', 'wp-slimstat' ), 'type' => 'textarea', 'rows' => 8, 'long_description' => __( "Paste here your custom stylesheet to personalize the way your reports look. <a href='https://slimstat.freshdesk.com/support/solutions/articles/5000528528-how-can-i-change-the-colors-associated-to-color-coded-pageviews-known-user-known-visitors-search-e' target='_blank'>Check the FAQ</a> for more information on how to use this setting.", 'wp-slimstat' ), 'use_tag_list' => false ),
196
  'chart_colors' => array( 'description' => __( 'Chart Colors', 'wp-slimstat' ), 'type' => 'textarea', 'long_description' => __( "Customize the look and feel of your charts by assigning personalized colors to each metric. List 4 hex colors, strictly in the following order: metric 1 previous, metric 2 previous, metric 1 current, metric 2 current. For example: <code>#ccc, #999, #bbcc44, #21759b</code>.", 'wp-slimstat' ) ),
197
+ 'mozcom_access_id' => array('description' => __( 'Mozscape Access ID', 'wp-slimstat' ), 'type' => 'text', 'long_description' => __( 'Get accurate rankings for your website through the free <a href="https://moz.com/community/join?redirect=/products/api/keys" target="_blank">Mozscape API</a> service. Sign up for a free community account to get started. Then enter your personal identification code here.', 'wp-slimstat' ) ),
198
+ 'mozcom_secret_key' => array('description' => __( 'Mozscape Secret Key', 'wp-slimstat' ), 'type' => 'text', 'long_description' => __( 'Do not share your secret key with anyone or they will be able to make API requests on your account!', 'wp-slimstat' ) ),
199
  'show_complete_user_agent_tooltip' => array('description' => __('Show User Agent','wp-slimstat'), 'type' => 'toggle', 'long_description' => __('Choose if you want to see the browser name or a complete user agent string when hovering over each browser icon.','wp-slimstat')),
200
  'enable_sov' => array('description' => __('Enable SOV','wp-slimstat'), 'type' => 'toggle', 'long_description' => __('In linguistic typology, a subject-object-verb (SOV) language is one in which the subject, object, and verb of a sentence appear in that order, like in Japanese.','wp-slimstat'))
201
  )
206
  'rows' => array(
207
  'permissions_reports_header' => array( 'description' => __( 'Reports', 'wp-slimstat' ), 'type' => 'section_header' ),
208
  'restrict_authors_view' => array( 'description' => __( 'Restrict Authors', 'wp-slimstat' ), 'type' => 'toggle', 'long_description' => __( 'Enable this option if you want your authors to only see stats related to their own content.', 'wp-slimstat' ) ),
209
+ 'capability_can_view' => array( 'description' => __( 'Capability', 'wp-slimstat' ), 'type' => 'text', 'long_description' => __( "Specify the minimum <a href='https://codex.wordpress.org/Roles_and_Capabilities' target='_new'>capability</a> needed to access the reports (default: <code>activate_plugins</code>). If this field is empty, <strong>all your users</strong> (including subscribers) will have access to the reports, unless a 'Read access' whitelist has been specified here below. In this case, the list has precedence over the capability.", 'wp-slimstat' ) ),
210
  'can_view' => array( 'description' => __( 'Whitelist', 'wp-slimstat' ), 'type' => 'textarea', 'long_description' => __( "List all the users who should have access to the reports. Administrators are implicitly allowed, so you don't need to list them in here. Usernames are case sensitive.", 'wp-slimstat' ), 'skip_update' => true ),
211
 
212
  'permissions_customize_header' => array( 'description' => __( 'Customizer', 'wp-slimstat' ), 'type' => 'section_header' ),
213
+ 'capability_can_customize' => array( 'description' => __( 'Capability', 'wp-slimstat' ), 'type' => 'text', 'long_description' => __( "Specify the minimum <a href='https://codex.wordpress.org/Roles_and_Capabilities' target='_new'>capability</a> needed to be able to customize the reports layout (default: <code>activate_plugins</code>). If this field is empty, your users will be permitted to use this features.", 'wp-slimstat' ) ),
214
  'can_customize' => array( 'description' => __( 'Whitelist', 'wp-slimstat' ), 'type' => 'textarea', 'long_description' => __( "List all the users who should be allowed to customize their report layout. Administrators are implicitly allowed, so you don't need to list them in here. Usernames are case sensitive.", 'wp-slimstat' ), 'skip_update' => true ),
215
 
216
  'permissions_config_header' => array( 'description' => __( 'Settings', 'wp-slimstat' ), 'type' => 'section_header' ),
217
+ 'capability_can_admin' => array( 'description' => __( 'Capability', 'wp-slimstat' ), 'type' => 'text', 'long_description' => __( "Specify the minimum <a href='https://codex.wordpress.org/Roles_and_Capabilities' target='_new'>capability</a> required to configure Slimstat (default: <code>activate_plugins</code>). The whitelist here below can be used to override this option for specific users.", 'wp-slimstat' ) ),
218
  'can_admin' => array( 'description' => __( 'Whitelist', 'wp-slimstat' ), 'type' => 'textarea', 'long_description' => __( "List all the users who can edit these options. Please be advised that admins <strong>are not</strong> implicitly allowed, so do not forget to include yourself! Usernames are case sensitive.", 'wp-slimstat' ), 'skip_update' => true ),
219
 
220
  'rest_api_header' => array( 'description' => __( 'Rest API', 'wp-slimstat' ), 'type' => 'section_header' ),
admin/config/maintenance.php CHANGED
@@ -13,7 +13,7 @@ if ( !empty( $_REQUEST[ 'action' ] ) ) {
13
  wp_slimstat::$wpdb->query( "ALTER TABLE {$GLOBALS[ 'wpdb' ]->prefix}slim_stats ADD INDEX {$GLOBALS[ 'wpdb' ]->prefix}stats_resource_idx( resource( 20 ) )" );
14
  wp_slimstat::$wpdb->query( "ALTER TABLE {$GLOBALS[ 'wpdb' ]->prefix}slim_stats ADD INDEX {$GLOBALS[ 'wpdb' ]->prefix}stats_browser_idx( browser( 10 ) )" );
15
  wp_slimstat::$wpdb->query( "ALTER TABLE {$GLOBALS[ 'wpdb' ]->prefix}slim_stats ADD INDEX {$GLOBALS[ 'wpdb' ]->prefix}stats_searchterms_idx( searchterms( 15 ) )" );
16
- wp_slimstat_admin::show_alert_message( __( 'Congratulations! Slimstat Analytics is now optimized for <a href="http://www.youtube.com/watch?v=ygE01sOhzz0" target="_blank">ludicrous speed</a>.', 'wp-slimstat' ) );
17
  break;
18
 
19
  case 'activate-sql-debug-mode':
@@ -169,7 +169,7 @@ $slim_browsers_exists =wp_slimstat::$wpdb->get_col( "SHOW TABLES LIKE '{$GLOBALS
169
  <th scope="row"><?php _e( 'Tracker Error', 'wp-slimstat' ) ?></th>
170
  <td>
171
  <?php echo ( !empty( wp_slimstat::$settings[ 'last_tracker_error' ][ 1 ] ) && !empty( wp_slimstat::$settings[ 'last_tracker_error' ][ 2 ] ) ) ? '<strong>[' . date_i18n( wp_slimstat::$settings[ 'date_format' ], wp_slimstat::$settings[ 'last_tracker_error' ][ 2 ], true ) . ' ' . date_i18n( wp_slimstat::$settings[ 'time_format' ], wp_slimstat::$settings[ 'last_tracker_error' ][ 2 ], true ) . '] ' . wp_slimstat::$settings[ 'last_tracker_error' ][ 0 ] . ' ' . wp_slimstat::$settings[ 'last_tracker_error' ][ 1 ] . '</strong><a class="slimstat-font-cancel" title="' . htmlentities( __( 'Reset this error', 'wp-slimstat' ), ENT_QUOTES, 'UTF-8' ) . '" href="' . wp_slimstat_admin::$config_url.$current_tab . '&amp;action=reset-tracker-error-status"></a>' : __( 'So far so good.', 'wp-slimstat' ); ?>
172
- <span class="description"><?php _e( 'The information here above is useful to troubleshoot issues with the tracker. <strong>Errors</strong> are returned when the tracker could not record a page view for some reason, and are indicative of some kind of malfunction. Please include the message here above when sending a <a href="http://support.wp-slimstat.com" target="_blank">support request</a>.', 'wp-slimstat' ) ?></span>
173
  </td>
174
  </tr>
175
  <tr>
@@ -276,38 +276,41 @@ $slim_browsers_exists =wp_slimstat::$wpdb->get_col( "SHOW TABLES LIKE '{$GLOBALS
276
  </tr>
277
  <tr>
278
  <th scope="row">
279
- <?php if (!file_exists(wp_slimstat::$maxmind_path)): ?>
280
- <a class="button-secondary" href="<?php echo wp_slimstat_admin::$config_url.$current_tab ?>&amp;action=download-maxmind"
281
- onclick="return(confirm('<?php _e('Do you want to download and install the geolocation database from MaxMind\'s server?','wp-slimstat'); ?>'))"><?php _e("Install GeoLite DB",'wp-slimstat'); ?></a>
282
- <?php else: ?>
283
- <a class="button-secondary" href="<?php echo wp_slimstat_admin::$config_url.$current_tab ?>&amp;action=delete-maxmind"
284
- onclick="return(confirm('<?php _e('Do you want to uninstall the geolocation database?','wp-slimstat'); ?>'))"><?php _e("Uninstall GeoLite DB",'wp-slimstat'); ?></a>
285
- <?php endif; ?>
286
  </th>
287
- <td>
288
- <span class="description"><?php _e("The <a href='https://dev.maxmind.com/geoip/geoip2/geolite2/' target='_blank'>MaxMind GeoLite2 library</a>, which Slimstat uses to geolocate visitors, is released under the Creative Commons BY-SA 3.0 license, and cannot be directly bundled with the plugin because of license incompatibility issues. We are mandated to have the user take an affirmative action in order to enable this functionality. If you're experiencing issues, please <a href='https://slimstat.freshdesk.com/solution/articles/12000039798-how-to-manually-install-the-maxmind-geolocation-data-file-' target='_blank'>take a look at our knowledge base</a> to learn how to install this file manually.", 'wp-slimstat' ) ?></span>
289
- </td>
290
- </tr>
291
- <tr class="alternate">
292
- <th scope="row">
293
- <?php if ( !file_exists( slim_browser::$browscap_autoload_path ) ) : ?>
294
- <a class="button-secondary" href="<?php echo wp_slimstat_admin::$config_url.$current_tab ?>&amp;action=download-browscap"
295
- onclick="return( confirm( '<?php _e( 'Do you want to download and install the Browscap data file from our server?', 'wp-slimstat' ); ?>' ) )"><?php _e( 'Install Browscap', 'wp-slimstat' ); ?></a>
296
- <?php else: ?>
297
- <a class="button-secondary" href="<?php echo wp_slimstat_admin::$config_url.$current_tab ?>&amp;action=delete-browscap"
298
- onclick="return( confirm( '<?php _e( 'Do you want to uninstall the Browscap data file?', 'wp-slimstat' ); ?>' ) )"><?php _e( 'Uninstall Browscap', 'wp-slimstat' ); ?></a>
299
- <?php endif; ?>
300
- </th>
301
- <td>
302
- <span class="description"><?php _e( "We are contributing to the <a href='http://browscap.org/' target='_blank'>Browscap Capabilities Project</a>, which we use to decode your visitors' user agent string into browser name and operating system. We use an optimized version of their data structure, for improved performance. After you enable this feature, Slimstat will use this data file instead of the built-in heuristic function, to accurately determine your visitors' browser information. It will also automatically check for updates and download the latest version for you. Please feel free to <a href='http://s3.amazonaws.com/browscap/terms-conditions.html' target='_blank'>review our terms and conditions</a>, and do not hesitate to <a href='http://support.wp-slimstat.com' target='_blank'>contact our support team</a> if you have any questions.", 'wp-slimstat' ) ?></span>
303
  </td>
304
  </tr>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
305
  <tr>
306
  <td colspan="2" class="slimstat-options-section-header" id="wp-slimstat-configuration-string"><?php _e('Configuration String','wp-slimstat') ?></td>
307
  </tr>
308
  <tr>
309
  <td colspan="2">
310
- <strong><?php _e("Here below you can find the current configuration string for Slimstat. You can update your settings by pasting a new string inside the text area and clicking the Import button.",'wp-slimstat') ?></strong>
311
  <form action="<?php echo wp_slimstat_admin::$config_url.$current_tab ?>" method="post">
312
  <?php wp_nonce_field( 'maintenance_wp_slimstat', 'maintenance_wp_slimstat_nonce', true, true ) ?>
313
  <input type="hidden" name="action" value="import-settings" />
13
  wp_slimstat::$wpdb->query( "ALTER TABLE {$GLOBALS[ 'wpdb' ]->prefix}slim_stats ADD INDEX {$GLOBALS[ 'wpdb' ]->prefix}stats_resource_idx( resource( 20 ) )" );
14
  wp_slimstat::$wpdb->query( "ALTER TABLE {$GLOBALS[ 'wpdb' ]->prefix}slim_stats ADD INDEX {$GLOBALS[ 'wpdb' ]->prefix}stats_browser_idx( browser( 10 ) )" );
15
  wp_slimstat::$wpdb->query( "ALTER TABLE {$GLOBALS[ 'wpdb' ]->prefix}slim_stats ADD INDEX {$GLOBALS[ 'wpdb' ]->prefix}stats_searchterms_idx( searchterms( 15 ) )" );
16
+ wp_slimstat_admin::show_alert_message( __( 'Congratulations! Slimstat Analytics is now optimized for <a href="https://www.youtube.com/watch?v=ygE01sOhzz0" target="_blank">ludicrous speed</a>.', 'wp-slimstat' ) );
17
  break;
18
 
19
  case 'activate-sql-debug-mode':
169
  <th scope="row"><?php _e( 'Tracker Error', 'wp-slimstat' ) ?></th>
170
  <td>
171
  <?php echo ( !empty( wp_slimstat::$settings[ 'last_tracker_error' ][ 1 ] ) && !empty( wp_slimstat::$settings[ 'last_tracker_error' ][ 2 ] ) ) ? '<strong>[' . date_i18n( wp_slimstat::$settings[ 'date_format' ], wp_slimstat::$settings[ 'last_tracker_error' ][ 2 ], true ) . ' ' . date_i18n( wp_slimstat::$settings[ 'time_format' ], wp_slimstat::$settings[ 'last_tracker_error' ][ 2 ], true ) . '] ' . wp_slimstat::$settings[ 'last_tracker_error' ][ 0 ] . ' ' . wp_slimstat::$settings[ 'last_tracker_error' ][ 1 ] . '</strong><a class="slimstat-font-cancel" title="' . htmlentities( __( 'Reset this error', 'wp-slimstat' ), ENT_QUOTES, 'UTF-8' ) . '" href="' . wp_slimstat_admin::$config_url.$current_tab . '&amp;action=reset-tracker-error-status"></a>' : __( 'So far so good.', 'wp-slimstat' ); ?>
172
+ <span class="description"><?php _e( 'The information here above is useful to troubleshoot issues with the tracker. <strong>Errors</strong> are returned when the tracker could not record a page view for some reason, and are indicative of some kind of malfunction. Please include the message here above when sending a <a href="https://support.wp-slimstat.com" target="_blank">support request</a>.', 'wp-slimstat' ) ?></span>
173
  </td>
174
  </tr>
175
  <tr>
276
  </tr>
277
  <tr>
278
  <th scope="row">
279
+ <?php if ( !file_exists( wp_slimstat::$maxmind_path ) ): ?>
280
+ <a class="button-secondary" href="<?php echo wp_slimstat_admin::$config_url.$current_tab ?>&amp;action=download-maxmind" onclick="return( confirm( '<?php _e( 'Do you want to download and install the geolocation database from MaxMind\'s server?', 'wp-slimstat' ); ?>' ) )"><?php _e( 'Install GeoLite DB', 'wp-slimstat' ); ?></a>
281
+ <?php else: ?>
282
+ <a class="button-secondary" href="<?php echo wp_slimstat_admin::$config_url.$current_tab ?>&amp;action=delete-maxmind" onclick="return( confirm( '<?php _e( 'Do you want to uninstall the geolocation database?', 'wp-slimstat' ); ?>' ) )"><?php _e( 'Uninstall GeoLite DB', 'wp-slimstat' ); ?></a>
283
+ <?php endif; ?>
 
 
284
  </th>
285
+ <td><?php
286
+ $maxmind_last_modified = '';
287
+ if ( file_exists( wp_slimstat::$maxmind_path ) && false !== ( $file_stat = @stat( wp_slimstat::$maxmind_path ) ) ) {
288
+ $maxmind_last_modified = date_i18n( wp_slimstat::$settings[ 'date_format' ], $file_stat[ 'mtime' ] );
289
+ }
290
+ ?>
291
+ <span class="description"><?php _e("The <a href='https://dev.maxmind.com/geoip/geoip2/geolite2/' target='_blank'>MaxMind GeoLite2 library</a>, which Slimstat uses to geolocate visitors, is released under the Creative Commons BY-SA 4.0 license, and cannot be directly bundled with the plugin because of license incompatibility issues. We are mandated to have the user take an affirmative action in order to enable this functionality. If you're experiencing issues, please <a href='https://slimstat.freshdesk.com/solution/articles/12000039798-how-to-manually-install-the-maxmind-geolocation-data-file-' target='_blank'>take a look at our knowledge base</a> to learn how to install this file manually.", 'wp-slimstat' ); if ( !empty( $maxmind_last_modified ) ) { echo ' ' . __( 'Your data file was last downloaded on', 'wp-slimstat' ) . ' <strong>' . $maxmind_last_modified . '</strong>.'; } ?></span>
 
 
 
 
 
 
 
 
 
292
  </td>
293
  </tr>
294
+ <?php
295
+ if ( version_compare( PHP_VERSION, '7.1', '>=' ) ) {
296
+ echo '<tr class="alternate"><th scope="row">';
297
+ $browscap_version = '';
298
+ if ( !file_exists( slim_browser::$browscap_autoload_path ) ) {
299
+ echo '<a class="button-secondary" href="' . wp_slimstat_admin::$config_url.$current_tab . '&amp;action=download-browscap">' . __( 'Install Browscap', 'wp-slimstat' ) . '</a>';
300
+ }
301
+ else {
302
+ echo '<a class="button-secondary" href="' . wp_slimstat_admin::$config_url.$current_tab . '&amp;action=delete-browscap">' . __( 'Uninstall Browscap', 'wp-slimstat' ) . '</a>';
303
+ $browscap_version = ' ' . sprintf( __( 'You are currently using version %s.' ), '<strong>' . slim_browser::$browscap_local_version . '</strong>');
304
+ }
305
+ echo '</th><td><span class="description">' . __( "We are contributing to the <a href='https://browscap.org/' target='_blank'>Browscap Capabilities Project</a>, which we use to decode your visitors' user agent string into browser name and operating system. We use an <a href='https://github.com/slimstat/browscap-db' target='_blank'>optimized version of their data structure</a>, for improved performance. Slimstat can use this data file instead of the built-in heuristic function, to accurately determine your visitors' browser information. It also checks for updates and downloads the latest version for you. Do not hesitate to <a href='https://support.wp-slimstat.com' target='_blank'>contact our support team</a> if you have any questions.", 'wp-slimstat' ) . $browscap_version . '</td></tr>';
306
+ }
307
+ ?>
308
  <tr>
309
  <td colspan="2" class="slimstat-options-section-header" id="wp-slimstat-configuration-string"><?php _e('Configuration String','wp-slimstat') ?></td>
310
  </tr>
311
  <tr>
312
  <td colspan="2">
313
+ <strong><?php _e( 'You can update your settings by importing a new configuration string inside the text area here below.', 'wp-slimstat' ) ?></strong><br>
314
  <form action="<?php echo wp_slimstat_admin::$config_url.$current_tab ?>" method="post">
315
  <?php wp_nonce_field( 'maintenance_wp_slimstat', 'maintenance_wp_slimstat_nonce', true, true ) ?>
316
  <input type="hidden" name="action" value="import-settings" />
admin/css/slimstat.css CHANGED
@@ -342,6 +342,7 @@
342
  /* Single Report: Chart */
343
  .chart-placeholder{
344
  height: 280px;
 
345
  }
346
 
347
  /* Single Report: Modal Window */
@@ -687,7 +688,7 @@
687
  }
688
  }
689
 
690
- /* Fontello - Custom Icon Fonts for SlimStat | Uses Fontelico (C) 2012 by Fontello project, Elusive (C) 2013 by Aristeides Stathopoulos, Font Awesome (C) 2012 by Dave Gandy | http://www.fontello.com */
691
  @font-face {
692
  font-family: 'slimstat';
693
  src: url('slimstat.eot?58272494');
@@ -749,14 +750,14 @@
749
 
750
  .animate-spin{-moz-animation:spin 3s infinite linear;-o-animation:spin 3s infinite linear;-webkit-animation:spin 3s infinite linear;animation:spin 3s infinite linear;display:inline-block;line-height:1em;}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-o-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-ms-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}
751
 
752
- /* qTip2 v3.0.3 basic | http://qtip2.com */
753
  .qtip{position:absolute;left:-28000px;top:-28000px;display:none;max-width:280px;min-width:50px;font-size:1em;line-height:1.5em;direction:ltr;box-shadow:none;border-radius:5px;padding:0}.qtip-content,.qtip-titlebar{position:relative;overflow:hidden}.qtip-content{padding:5px 9px;text-align:left;word-wrap:break-word}.qtip-titlebar{padding:5px 35px 5px 10px;border-width:0 0 1px;font-weight:700}.qtip-titlebar+.qtip-content{border-top-width:0!important}.qtip-close{position:absolute;right:-9px;top:-9px;z-index:11;cursor:pointer;outline:0;border:1px solid transparent}.qtip-titlebar .qtip-close{right:4px;top:50%;margin-top:-9px}* html .qtip-titlebar .qtip-close{top:16px}.qtip-icon .ui-icon,.qtip-titlebar .ui-icon{display:block;text-indent:-1000em;direction:ltr}.qtip-icon,.qtip-icon .ui-icon{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;text-decoration:none}.qtip-icon .ui-icon{width:18px;height:14px;line-height:1.5em;text-align:center;text-indent:0;font:normal 700 1em Tahoma,sans-serif;color:inherit;background:-100em -100em no-repeat}.qtip-default{border:1px solid #555;background-color:rgba(0,0,0,.9);color:#ddd}.qtip-default .qtip-titlebar{background-color:#FFEF93}.qtip-default .qtip-icon{border-color:#CCC;background:#F1F1F1;color:#777}.qtip-default .qtip-titlebar .qtip-close{border-color:#AAA;color:#111}.qtip .qtip-tip{margin:0 auto;overflow:hidden;z-index:10}.qtip .qtip-tip,x:-o-prefocus{visibility:hidden}.qtip .qtip-tip,.qtip .qtip-tip .qtip-vml,.qtip .qtip-tip canvas{position:absolute;color:#123456;background:0 0;border:0 dashed transparent}.qtip .qtip-tip canvas{top:0;left:0}.qtip .qtip-tip .qtip-vml{behavior:url(#default#VML);display:inline-block;visibility:visible}
754
 
755
- /*! jQuery UI - v1.10.3 | http://jqueryui.com */
756
  #ui-datepicker-div{display:none;}.ui-datepicker{background-color:#fff;border:1px solid #ccc;width:17em;padding:.2em .2em 0;display:none;}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month-year{width:100%}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:700;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}
757
 
758
- /*! bootstrap-switch - v3.3.2 | http://www.bootstrap-switch.org */
759
  .bootstrap-switch{display:inline-block;direction:ltr;cursor:pointer;border-radius:4px;border:1px solid #ccc;position:relative;text-align:left;overflow:hidden;line-height:8px;z-index:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.bootstrap-switch .bootstrap-switch-container{display:inline-block;top:0;border-radius:4px;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.bootstrap-switch .bootstrap-switch-handle-off,.bootstrap-switch .bootstrap-switch-handle-on,.bootstrap-switch .bootstrap-switch-label{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:inline-block!important;height:100%;padding:6px 12px;font-size:14px;line-height:20px}.bootstrap-switch .bootstrap-switch-handle-off,.bootstrap-switch .bootstrap-switch-handle-on{text-align:center;z-index:1}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary{color:#fff;background:#337ab7}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info{color:#fff;background:#5bc0de}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success{color:#fff;background:#5cb85c}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning{background:#f0ad4e;color:#fff}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger{color:#fff;background:#d9534f}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default{color:#000;background:#eee}.bootstrap-switch .bootstrap-switch-label{text-align:center;margin-top:-1px;margin-bottom:-1px;z-index:100;color:#333;background:#fff}.bootstrap-switch .bootstrap-switch-handle-on{border-bottom-left-radius:3px;border-top-left-radius:3px}.bootstrap-switch .bootstrap-switch-handle-off{border-bottom-right-radius:3px;border-top-right-radius:3px}.bootstrap-switch input[type=radio],.bootstrap-switch input[type=checkbox]{position:absolute!important;top:0;left:0;margin:0;z-index:-1;opacity:0 !important;filter:alpha(opacity=0)}.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label{padding:1px 5px;font-size:12px;line-height:1.5}.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label{padding:5px 10px;font-size:12px;line-height:1.5}.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label{padding:6px 16px;font-size:18px;line-height:1.3333333}.bootstrap-switch.bootstrap-switch-disabled,.bootstrap-switch.bootstrap-switch-indeterminate,.bootstrap-switch.bootstrap-switch-readonly{cursor:default!important}.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label{opacity:.5;filter:alpha(opacity=50);cursor:default!important}.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container{-webkit-transition:margin-left .5s;-o-transition:margin-left .5s;transition:margin-left .5s}.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on{border-radius:0 3px 3px 0}.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off{border-radius:3px 0 0 3px}.bootstrap-switch.bootstrap-switch-focused{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label{border-bottom-right-radius:3px;border-top-right-radius:3px}.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label{border-bottom-left-radius:3px;border-top-left-radius:3px}
760
 
761
- /* jQuery tagEditor v1.0.20 | https://github.com/Pixabay/jQuery-tagEditor */
762
  .tag-editor{list-style-type:none;padding:0 5px 0 0;margin:0;overflow:hidden;border:1px solid #eee;cursor:text;font:normal 14px sans-serif;color:#555;background:#fff;line-height:20px}.tag-editor li{display:block;float:left;overflow:hidden;margin:3px 0}.tag-editor div{float:left;padding:0 4px}.tag-editor .placeholder{padding:0 8px;color:#bbb}.tag-editor .tag-editor-spacer{padding:0;width:8px;overflow:hidden;color:transparent;background:none}.tag-editor input{vertical-align:inherit;border:0;outline:none;padding:0;margin:0;cursor:text;font-family:inherit;font-weight:inherit;font-size:inherit;font-style:inherit;box-shadow:none;background:none;color:#444}.tag-editor-hidden-src{position:absolute!important;left:-99999px}.tag-editor ::-ms-clear{display:none}.tag-editor .tag-editor-tag{padding-left:5px;color:#46799b;background:#e0eaf1;white-space:nowrap;overflow:hidden;cursor:pointer;border-radius:2px 0 0 2px}.tag-editor .tag-editor-delete{background:#e0eaf1;cursor:pointer;border-radius:0 2px 2px 0;padding-left:3px;padding-right:4px}.tag-editor .tag-editor-delete i{line-height:18px;display:inline-block}.tag-editor .tag-editor-delete i:before{font-size:16px;color:#8ba7ba;content:"×";font-style:normal}.tag-editor .tag-editor-delete:hover i:before{color:#d65454}.tag-editor .tag-editor-tag.active+.tag-editor-delete,.tag-editor .tag-editor-tag.active+.tag-editor-delete i{visibility:hidden;cursor:text}.tag-editor .tag-editor-tag.active{background:none!important}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default;font-size:14px}.ui-front{z-index:9999}.ui-menu{list-style:none;padding:1px;margin:0;display:block;outline:none}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.4;min-height:0}.ui-widget-content{border:1px solid #bbb;background:#fff;color:#555}.ui-widget-content a{color:#46799b}.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{background:#e0eaf1}.ui-helper-hidden-accessible{display:none}
342
  /* Single Report: Chart */
343
  .chart-placeholder{
344
  height: 280px;
345
+ overflow: hidden;
346
  }
347
 
348
  /* Single Report: Modal Window */
688
  }
689
  }
690
 
691
+ /* Fontello - Custom Icon Fonts for SlimStat | Uses Fontelico (C) 2012 by Fontello project, Elusive (C) 2013 by Aristeides Stathopoulos, Font Awesome (C) 2012 by Dave Gandy | https://www.fontello.com */
692
  @font-face {
693
  font-family: 'slimstat';
694
  src: url('slimstat.eot?58272494');
750
 
751
  .animate-spin{-moz-animation:spin 3s infinite linear;-o-animation:spin 3s infinite linear;-webkit-animation:spin 3s infinite linear;animation:spin 3s infinite linear;display:inline-block;line-height:1em;}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-o-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-ms-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}
752
 
753
+ /* qTip2 v3.0.3 basic | https://qtip2.com */
754
  .qtip{position:absolute;left:-28000px;top:-28000px;display:none;max-width:280px;min-width:50px;font-size:1em;line-height:1.5em;direction:ltr;box-shadow:none;border-radius:5px;padding:0}.qtip-content,.qtip-titlebar{position:relative;overflow:hidden}.qtip-content{padding:5px 9px;text-align:left;word-wrap:break-word}.qtip-titlebar{padding:5px 35px 5px 10px;border-width:0 0 1px;font-weight:700}.qtip-titlebar+.qtip-content{border-top-width:0!important}.qtip-close{position:absolute;right:-9px;top:-9px;z-index:11;cursor:pointer;outline:0;border:1px solid transparent}.qtip-titlebar .qtip-close{right:4px;top:50%;margin-top:-9px}* html .qtip-titlebar .qtip-close{top:16px}.qtip-icon .ui-icon,.qtip-titlebar .ui-icon{display:block;text-indent:-1000em;direction:ltr}.qtip-icon,.qtip-icon .ui-icon{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;text-decoration:none}.qtip-icon .ui-icon{width:18px;height:14px;line-height:1.5em;text-align:center;text-indent:0;font:normal 700 1em Tahoma,sans-serif;color:inherit;background:-100em -100em no-repeat}.qtip-default{border:1px solid #555;background-color:rgba(0,0,0,.9);color:#ddd}.qtip-default .qtip-titlebar{background-color:#FFEF93}.qtip-default .qtip-icon{border-color:#CCC;background:#F1F1F1;color:#777}.qtip-default .qtip-titlebar .qtip-close{border-color:#AAA;color:#111}.qtip .qtip-tip{margin:0 auto;overflow:hidden;z-index:10}.qtip .qtip-tip,x:-o-prefocus{visibility:hidden}.qtip .qtip-tip,.qtip .qtip-tip .qtip-vml,.qtip .qtip-tip canvas{position:absolute;color:#123456;background:0 0;border:0 dashed transparent}.qtip .qtip-tip canvas{top:0;left:0}.qtip .qtip-tip .qtip-vml{behavior:url(#default#VML);display:inline-block;visibility:visible}
755
 
756
+ /*! jQuery UI - v1.10.3 | https://jqueryui.com */
757
  #ui-datepicker-div{display:none;}.ui-datepicker{background-color:#fff;border:1px solid #ccc;width:17em;padding:.2em .2em 0;display:none;}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month-year{width:100%}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:700;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}
758
 
759
+ /*! bootstrap-switch - v3.3.4 | https://www.bootstrap-switch.org */
760
  .bootstrap-switch{display:inline-block;direction:ltr;cursor:pointer;border-radius:4px;border:1px solid #ccc;position:relative;text-align:left;overflow:hidden;line-height:8px;z-index:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.bootstrap-switch .bootstrap-switch-container{display:inline-block;top:0;border-radius:4px;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.bootstrap-switch .bootstrap-switch-handle-off,.bootstrap-switch .bootstrap-switch-handle-on,.bootstrap-switch .bootstrap-switch-label{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:inline-block!important;height:100%;padding:6px 12px;font-size:14px;line-height:20px}.bootstrap-switch .bootstrap-switch-handle-off,.bootstrap-switch .bootstrap-switch-handle-on{text-align:center;z-index:1}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary{color:#fff;background:#337ab7}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info{color:#fff;background:#5bc0de}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success{color:#fff;background:#5cb85c}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning{background:#f0ad4e;color:#fff}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger{color:#fff;background:#d9534f}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default{color:#000;background:#eee}.bootstrap-switch .bootstrap-switch-label{text-align:center;margin-top:-1px;margin-bottom:-1px;z-index:100;color:#333;background:#fff}.bootstrap-switch .bootstrap-switch-handle-on{border-bottom-left-radius:3px;border-top-left-radius:3px}.bootstrap-switch .bootstrap-switch-handle-off{border-bottom-right-radius:3px;border-top-right-radius:3px}.bootstrap-switch input[type=radio],.bootstrap-switch input[type=checkbox]{position:absolute!important;top:0;left:0;margin:0;z-index:-1;opacity:0 !important;filter:alpha(opacity=0)}.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label{padding:1px 5px;font-size:12px;line-height:1.5}.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label{padding:5px 10px;font-size:12px;line-height:1.5}.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label{padding:6px 16px;font-size:18px;line-height:1.3333333}.bootstrap-switch.bootstrap-switch-disabled,.bootstrap-switch.bootstrap-switch-indeterminate,.bootstrap-switch.bootstrap-switch-readonly{cursor:default!important}.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label{opacity:.5;filter:alpha(opacity=50);cursor:default!important}.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container{-webkit-transition:margin-left .5s;-o-transition:margin-left .5s;transition:margin-left .5s}.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on{border-radius:0 3px 3px 0}.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off{border-radius:3px 0 0 3px}.bootstrap-switch.bootstrap-switch-focused{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label{border-bottom-right-radius:3px;border-top-right-radius:3px}.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label{border-bottom-left-radius:3px;border-top-left-radius:3px}
761
 
762
+ /* jQuery tagEditor v1.0.21 | https://github.com/Pixabay/jQuery-tagEditor */
763
  .tag-editor{list-style-type:none;padding:0 5px 0 0;margin:0;overflow:hidden;border:1px solid #eee;cursor:text;font:normal 14px sans-serif;color:#555;background:#fff;line-height:20px}.tag-editor li{display:block;float:left;overflow:hidden;margin:3px 0}.tag-editor div{float:left;padding:0 4px}.tag-editor .placeholder{padding:0 8px;color:#bbb}.tag-editor .tag-editor-spacer{padding:0;width:8px;overflow:hidden;color:transparent;background:none}.tag-editor input{vertical-align:inherit;border:0;outline:none;padding:0;margin:0;cursor:text;font-family:inherit;font-weight:inherit;font-size:inherit;font-style:inherit;box-shadow:none;background:none;color:#444}.tag-editor-hidden-src{position:absolute!important;left:-99999px}.tag-editor ::-ms-clear{display:none}.tag-editor .tag-editor-tag{padding-left:5px;color:#46799b;background:#e0eaf1;white-space:nowrap;overflow:hidden;cursor:pointer;border-radius:2px 0 0 2px}.tag-editor .tag-editor-delete{background:#e0eaf1;cursor:pointer;border-radius:0 2px 2px 0;padding-left:3px;padding-right:4px}.tag-editor .tag-editor-delete i{line-height:18px;display:inline-block}.tag-editor .tag-editor-delete i:before{font-size:16px;color:#8ba7ba;content:"×";font-style:normal}.tag-editor .tag-editor-delete:hover i:before{color:#d65454}.tag-editor .tag-editor-tag.active+.tag-editor-delete,.tag-editor .tag-editor-tag.active+.tag-editor-delete i{visibility:hidden;cursor:text}.tag-editor .tag-editor-tag.active{background:none!important}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default;font-size:14px}.ui-front{z-index:9999}.ui-menu{list-style:none;padding:1px;margin:0;display:block;outline:none}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.4;min-height:0}.ui-widget-content{border:1px solid #bbb;background:#fff;color:#555}.ui-widget-content a{color:#46799b}.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{background:#e0eaf1}.ui-helper-hidden-accessible{display:none}
admin/js/.DS_Store ADDED
Binary file
admin/js/amcharts/LICENSE ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ## Free amCharts license
2
+
3
+ This amCharts software is copyrighted by Antanas Marcelionis.
4
+
5
+ This amCharts software is provided under linkware license, conditions of which are outlined below.
6
+
7
+ ### You can
8
+
9
+ * Use amCharts software in any of your projects, including commercial.
10
+ * Modify amCharts software to suit your needs (source code is available at [here](https://github.com/amcharts/amcharts4)).
11
+ * Bundle amCharts software with your own projects (free, open source, or commercial).
12
+
13
+ ### If the following conditions are met
14
+
15
+ * You do not disable, hide or alter the branding link which is displayed on all the content generated by amCharts software unless you provide some other adequately prominent attribution to amCharts.
16
+ * You include this original LICENSE file together with original (or modified) files from amCharts software.
17
+ * Your own personal license does not supersede or in any way negate the effect of this LICENSE, or make the impression of doing so.
18
+
19
+ ### You can't
20
+
21
+ * Remove or alter this LICENSE file.
22
+ * Remove any of the amCharts copyright notices from any of the files of amCharts software.
23
+ * Use amCharts software without any kind of prominent attribution (bundled or custom). Please see note about commercial amCharts licenses below.
24
+ * Sell or receive any consideration for amCharts software.
25
+ * Distribute amCharts software on its own, not as part of other application.
26
+
27
+ ### The above does not suit you?
28
+
29
+ amCharts provides commercial licenses for purchase for various usage scenarios that are not covered by the above conditions.
30
+
31
+ Please refer to [this web page](https://www.amcharts.com/online-store/) or [contact amCharts support](mailto:contact@amcharts.com) for further information.
32
+
33
+ ### In doubt?
34
+
35
+ [Contact amCharts](mailto:contact@amcharts.com). We'll be happy to sort you out.
admin/js/amcharts/amcharts.js DELETED
@@ -1,403 +0,0 @@
1
- (function(){var d;window.AmCharts?d=window.AmCharts:(d={},window.AmCharts=d,d.themes={},d.maps={},d.inheriting={},d.charts=[],d.onReadyArray=[],d.useUTC=!1,d.updateRate=60,d.uid=0,d.lang={},d.translations={},d.mapTranslations={},d.windows={},d.initHandlers=[],d.amString="am",d.pmString="pm");d.Class=function(a){var b=function(){arguments[0]!==d.inheriting&&(this.events={},this.construct.apply(this,arguments))};a.inherits?(b.prototype=new a.inherits(d.inheriting),b.base=a.inherits.prototype,delete a.inherits):
2
- (b.prototype.createEvents=function(){for(var a=0;a<arguments.length;a++)this.events[arguments[a]]=[]},b.prototype.listenTo=function(a,b,c){this.removeListener(a,b,c);a.events[b].push({handler:c,scope:this})},b.prototype.addListener=function(a,b,c){this.removeListener(this,a,b);a&&this.events[a]&&this.events[a].push({handler:b,scope:c})},b.prototype.removeListener=function(a,b,c){if(a&&a.events&&(a=a.events[b]))for(b=a.length-1;0<=b;b--)a[b].handler===c&&a.splice(b,1)},b.prototype.fire=function(a){for(var b=
3
- this.events[a.type],c=0;c<b.length;c++){var d=b[c];d.handler.call(d.scope,a)}});for(var c in a)b.prototype[c]=a[c];return b};d.addChart=function(a){window.requestAnimationFrame?d.animationRequested||(d.animationRequested=!0,window.requestAnimationFrame(d.update)):d.updateInt||(d.updateInt=setInterval(function(){d.update()},Math.round(1E3/d.updateRate)));d.charts.push(a)};d.removeChart=function(a){for(var b=d.charts,c=b.length-1;0<=c;c--)b[c]==a&&b.splice(c,1);0===b.length&&(d.requestAnimation&&(window.cancelAnimationFrame(d.requestAnimation),
4
- d.animationRequested=!1),d.updateInt&&(clearInterval(d.updateInt),d.updateInt=NaN))};d.isModern=!0;d.getIEVersion=function(){var a=0,b,c;"Microsoft Internet Explorer"==navigator.appName&&(b=navigator.userAgent,c=/MSIE ([0-9]{1,}[.0-9]{0,})/,null!==c.exec(b)&&(a=parseFloat(RegExp.$1)));return a};d.applyLang=function(a,b){var c=d.translations;b.dayNames=d.extend({},d.dayNames);b.shortDayNames=d.extend({},d.shortDayNames);b.monthNames=d.extend({},d.monthNames);b.shortMonthNames=d.extend({},d.shortMonthNames);
5
- b.amString="am";b.pmString="pm";c&&(c=c[a])&&(d.lang=c,b.langObj=c,c.monthNames&&(b.dayNames=d.extend({},c.dayNames),b.shortDayNames=d.extend({},c.shortDayNames),b.monthNames=d.extend({},c.monthNames),b.shortMonthNames=d.extend({},c.shortMonthNames)),c.am&&(b.amString=c.am),c.pm&&(b.pmString=c.pm));d.amString=b.amString;d.pmString=b.pmString};d.IEversion=d.getIEVersion();9>d.IEversion&&0<d.IEversion&&(d.isModern=!1,d.isIE=!0);d.dx=0;d.dy=0;if(document.addEventListener||window.opera)d.isNN=!0,d.isIE=
6
- !1,d.dx=.5,d.dy=.5;document.attachEvent&&(d.isNN=!1,d.isIE=!0,d.isModern||(d.dx=0,d.dy=0));window.chrome&&(d.chrome=!0);d.handleMouseUp=function(a){for(var b=d.charts,c=0;c<b.length;c++){var e=b[c];e&&e.handleReleaseOutside&&e.handleReleaseOutside(a)}};d.handleMouseMove=function(a){for(var b=d.charts,c=0;c<b.length;c++){var e=b[c];e&&e.handleMouseMove&&e.handleMouseMove(a)}};d.handleWheel=function(a){for(var b=d.charts,c=0;c<b.length;c++){var e=b[c];if(e&&e.mouseIsOver){(e.mouseWheelScrollEnabled||
7
- e.mouseWheelZoomEnabled)&&e.handleWheel&&e.handleWheel(a);break}}};d.resetMouseOver=function(){for(var a=d.charts,b=0;b<a.length;b++){var c=a[b];c&&(c.mouseIsOver=!1)}};d.ready=function(a){d.onReadyArray.push(a)};d.handleLoad=function(){d.isReady=!0;for(var a=d.onReadyArray,b=0;b<a.length;b++){var c=a[b];isNaN(d.processDelay)?c():setTimeout(c,d.processDelay*b)}d.onReadyArray=[]};d.addInitHandler=function(a,b){d.initHandlers.push({method:a,types:b})};d.callInitHandler=function(a){var b=d.initHandlers;
8
- if(d.initHandlers)for(var c=0;c<b.length;c++){var e=b[c];e.types?d.isInArray(e.types,a.type)&&e.method(a):e.method(a)}};d.getUniqueId=function(){d.uid++;return"AmChartsEl-"+d.uid};d.isNN&&(document.addEventListener("mousemove",d.handleMouseMove),document.addEventListener("mouseup",d.handleMouseUp,!0),window.addEventListener("load",d.handleLoad,!0));d.isIE&&(document.attachEvent("onmousemove",d.handleMouseMove),document.attachEvent("onmouseup",d.handleMouseUp),window.attachEvent("onload",d.handleLoad));
9
- d.addWheelListeners=function(){d.wheelIsListened||(d.isNN&&(window.addEventListener("DOMMouseScroll",d.handleWheel,!0),document.addEventListener("mousewheel",d.handleWheel,!0)),d.isIE&&document.attachEvent("onmousewheel",d.handleWheel));d.wheelIsListened=!0};d.clear=function(){var a=d.charts;if(a)for(var b=a.length-1;0<=b;b--)a[b].clear();d.updateInt&&clearInterval(d.updateInt);d.requestAnimation&&window.cancelAnimationFrame(d.requestAnimation);d.charts=[];d.isNN&&(document.removeEventListener("mousemove",
10
- d.handleMouseMove,!0),document.removeEventListener("mouseup",d.handleMouseUp,!0),window.removeEventListener("load",d.handleLoad,!0),window.removeEventListener("DOMMouseScroll",d.handleWheel,!0),document.removeEventListener("mousewheel",d.handleWheel,!0));d.isIE&&(document.detachEvent("onmousemove",d.handleMouseMove),document.detachEvent("onmouseup",d.handleMouseUp),window.detachEvent("onload",d.handleLoad))};d.makeChart=function(a,b,c){var e=b.type,g=b.theme;d.isString(g)&&(g=d.themes[g],b.theme=
11
- g);var f;switch(e){case "serial":f=new d.AmSerialChart(g);break;case "xy":f=new d.AmXYChart(g);break;case "pie":f=new d.AmPieChart(g);break;case "radar":f=new d.AmRadarChart(g);break;case "gauge":f=new d.AmAngularGauge(g);break;case "funnel":f=new d.AmFunnelChart(g);break;case "map":f=new d.AmMap(g);break;case "stock":f=new d.AmStockChart(g);break;case "gantt":f=new d.AmGanttChart(g)}d.extend(f,b);d.isReady?isNaN(c)?f.write(a):setTimeout(function(){d.realWrite(f,a)},c):d.ready(function(){isNaN(c)?
12
- f.write(a):setTimeout(function(){d.realWrite(f,a)},c)});return f};d.realWrite=function(a,b){a.write(b)};d.updateCount=0;d.validateAt=Math.round(d.updateRate/10);d.update=function(){var a=d.charts;d.updateCount++;var b=!1;d.updateCount==d.validateAt&&(b=!0,d.updateCount=0);if(a)for(var c=a.length-1;0<=c;c--)a[c].update&&a[c].update(),b&&(a[c].autoResize?a[c].validateSize&&a[c].validateSize():a[c].premeasure&&a[c].premeasure());window.requestAnimationFrame&&(d.requestAnimation=window.requestAnimationFrame(d.update))};
13
- "complete"==document.readyState&&d.handleLoad()})();(function(){var d=window.AmCharts;d.toBoolean=function(a,b){if(void 0===a)return b;switch(String(a).toLowerCase()){case "true":case "yes":case "1":return!0;case "false":case "no":case "0":case null:return!1;default:return!!a}};d.removeFromArray=function(a,b){var c;if(void 0!==b&&void 0!==a)for(c=a.length-1;0<=c;c--)a[c]==b&&a.splice(c,1)};d.getPath=function(){var a=document.getElementsByTagName("script");if(a)for(var b=0;b<a.length;b++){var c=a[b].src;if(-1!==c.search(/\/(amcharts|ammap)\.js/))return c.replace(/\/(amcharts|ammap)\.js.*/,
14
- "/")}};d.normalizeUrl=function(a){return""!==a&&-1===a.search(/\/$/)?a+"/":a};d.isAbsolute=function(a){return 0===a.search(/^http[s]?:|^\//)};d.isInArray=function(a,b){for(var c=0;c<a.length;c++)if(a[c]==b)return!0;return!1};d.getDecimals=function(a){var b=0;isNaN(a)||(a=String(a),-1!=a.indexOf("e-")?b=Number(a.split("-")[1]):-1!=a.indexOf(".")&&(b=a.split(".")[1].length));return b};d.wordwrap=function(a,b,c,e){var g,f,h,k;a+="";if(1>b)return a;g=-1;for(a=(k=a.split(/\r\n|\n|\r/)).length;++g<a;k[g]+=
15
- h){h=k[g];for(k[g]="";h.length>b;k[g]+=d.trim(h.slice(0,f))+((h=h.slice(f)).length?c:""))f=2==e||(f=h.slice(0,b+1).match(/\S*(\s)?$/))[1]?b:f.input.length-f[0].length||1==e&&b||f.input.length+(f=h.slice(b).match(/^\S*/))[0].length;h=d.trim(h)}return k.join(c)};d.trim=function(a){return a.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")};d.wrappedText=function(a,b,c,e,g,f,h,k){var l=d.text(a,b,c,e,g,f,h);if(l){var m=l.getBBox();if(m.width>k){var n="\n";d.isModern||(n="<br>");k=Math.floor(k/(m.width/
16
- b.length));2<k&&(k-=2);b=d.wordwrap(b,k,n,!0);l.remove();l=d.text(a,b,c,e,g,f,h)}}return l};d.getStyle=function(a,b){var c="";if(document.defaultView&&document.defaultView.getComputedStyle)try{c=document.defaultView.getComputedStyle(a,"").getPropertyValue(b)}catch(e){}else a.currentStyle&&(b=b.replace(/\-(\w)/g,function(a,b){return b.toUpperCase()}),c=a.currentStyle[b]);return c};d.removePx=function(a){if(void 0!==a)return Number(a.substring(0,a.length-2))};d.getURL=function(a,b){if(a)if("_self"!=
17
- b&&b)if("_top"==b&&window.top)window.top.location.href=a;else if("_parent"==b&&window.parent)window.parent.location.href=a;else if("_blank"==b)window.open(a);else{var c=document.getElementsByName(b)[0];c?c.src=a:(c=d.windows[b])?c.opener&&!c.opener.closed?c.location.href=a:d.windows[b]=window.open(a):d.windows[b]=window.open(a)}else window.location.href=a};d.ifArray=function(a){return a&&"object"==typeof a&&0<a.length?!0:!1};d.callMethod=function(a,b){var c;for(c=0;c<b.length;c++){var e=b[c];if(e){if(e[a])e[a]();
18
- var d=e.length;if(0<d){var f;for(f=0;f<d;f++){var h=e[f];if(h&&h[a])h[a]()}}}}};d.toNumber=function(a){return"number"==typeof a?a:Number(String(a).replace(/[^0-9\-.]+/g,""))};d.toColor=function(a){if(""!==a&&void 0!==a)if(-1!=a.indexOf(",")){a=a.split(",");var b;for(b=0;b<a.length;b++){var c=a[b].substring(a[b].length-6,a[b].length);a[b]="#"+c}}else a=a.substring(a.length-6,a.length),a="#"+a;return a};d.toCoordinate=function(a,b,c){var e;void 0!==a&&(a=String(a),c&&c<b&&(b=c),e=Number(a),-1!=a.indexOf("!")&&
19
- (e=b-Number(a.substr(1))),-1!=a.indexOf("%")&&(e=b*Number(a.substr(0,a.length-1))/100));return e};d.fitToBounds=function(a,b,c){a<b&&(a=b);a>c&&(a=c);return a};d.isDefined=function(a){return void 0===a?!1:!0};d.stripNumbers=function(a){return a.replace(/[0-9]+/g,"")};d.roundTo=function(a,b){if(0>b)return a;var c=Math.pow(10,b);return Math.round(a*c)/c};d.toFixed=function(a,b){var c=!1;0>a&&(c=!0,a=Math.abs(a));var e=String(Math.round(a*Math.pow(10,b)));if(0<b){var d=e.length;if(d<b){var f;for(f=0;f<
20
- b-d;f++)e="0"+e}d=e.substring(0,e.length-b);""===d&&(d=0);e=d+"."+e.substring(e.length-b,e.length);return c?"-"+e:e}return String(e)};d.formatDuration=function(a,b,c,e,g,f){var h=d.intervals,k=f.decimalSeparator;if(a>=h[b].contains){var l=a-Math.floor(a/h[b].contains)*h[b].contains;"ss"==b?(l=d.formatNumber(l,f),1==l.split(k)[0].length&&(l="0"+l)):l=d.roundTo(l,f.precision);("mm"==b||"hh"==b)&&10>l&&(l="0"+l);c=l+""+e[b]+""+c;a=Math.floor(a/h[b].contains);b=h[b].nextInterval;return d.formatDuration(a,
21
- b,c,e,g,f)}"ss"==b&&(a=d.formatNumber(a,f),1==a.split(k)[0].length&&(a="0"+a));"mm"==b&&(a=d.roundTo(a,f.precision));("mm"==b||"hh"==b)&&10>a&&(a="0"+a);c=a+""+e[b]+""+c;if(h[g].count>h[b].count)for(a=h[b].count;a<h[g].count;a++)b=h[b].nextInterval,"ss"==b||"mm"==b||"hh"==b?c="00"+e[b]+""+c:"DD"==b&&(c="0"+e[b]+""+c);":"==c.charAt(c.length-1)&&(c=c.substring(0,c.length-1));return c};d.formatNumber=function(a,b,c,e,g){a=d.roundTo(a,b.precision);isNaN(c)&&(c=b.precision);var f=b.decimalSeparator;b=
22
- b.thousandsSeparator;var h;h=0>a?"-":"";a=Math.abs(a);var k=String(a),l=!1;-1!=k.indexOf("e")&&(l=!0);0<=c&&!l&&(k=d.toFixed(a,c));var m="";if(l)m=k;else{var k=k.split("."),l=String(k[0]),n;for(n=l.length;0<=n;n-=3)m=n!=l.length?0!==n?l.substring(n-3,n)+b+m:l.substring(n-3,n)+m:l.substring(n-3,n);void 0!==k[1]&&(m=m+f+k[1]);void 0!==c&&0<c&&"0"!=m&&(m=d.addZeroes(m,f,c))}m=h+m;""===h&&!0===e&&0!==a&&(m="+"+m);!0===g&&(m+="%");return m};d.addZeroes=function(a,b,c){a=a.split(b);void 0===a[1]&&0<c&&
23
- (a[1]="0");return a[1].length<c?(a[1]+="0",d.addZeroes(a[0]+b+a[1],b,c)):void 0!==a[1]?a[0]+b+a[1]:a[0]};d.scientificToNormal=function(a){var b;a=String(a).split("e");var c;if("-"==a[1].substr(0,1)){b="0.";for(c=0;c<Math.abs(Number(a[1]))-1;c++)b+="0";b+=a[0].split(".").join("")}else{var e=0;b=a[0].split(".");b[1]&&(e=b[1].length);b=a[0].split(".").join("");for(c=0;c<Math.abs(Number(a[1]))-e;c++)b+="0"}return b};d.toScientific=function(a,b){if(0===a)return"0";var c=Math.floor(Math.log(Math.abs(a))*
24
- Math.LOG10E),e=String(e).split(".").join(b);return String(e)+"e"+c};d.randomColor=function(){return"#"+("00000"+(16777216*Math.random()<<0).toString(16)).substr(-6)};d.hitTest=function(a,b,c){var e=!1,g=a.x,f=a.x+a.width,h=a.y,k=a.y+a.height,l=d.isInRectangle;e||(e=l(g,h,b));e||(e=l(g,k,b));e||(e=l(f,h,b));e||(e=l(f,k,b));e||!0===c||(e=d.hitTest(b,a,!0));return e};d.isInRectangle=function(a,b,c){return a>=c.x-5&&a<=c.x+c.width+5&&b>=c.y-5&&b<=c.y+c.height+5?!0:!1};d.isPercents=function(a){if(-1!=
25
- String(a).indexOf("%"))return!0};d.formatValue=function(a,b,c,e,g,f,h,k){if(b){void 0===g&&(g="");var l;for(l=0;l<c.length;l++){var m=c[l],n=b[m];void 0!==n&&(n=f?d.addPrefix(n,k,h,e):d.formatNumber(n,e),a=a.replace(new RegExp("\\[\\["+g+""+m+"\\]\\]","g"),n))}}return a};d.formatDataContextValue=function(a,b){if(a){var c=a.match(/\[\[.*?\]\]/g),e;for(e=0;e<c.length;e++){var d=c[e],d=d.substr(2,d.length-4);void 0!==b[d]&&(a=a.replace(new RegExp("\\[\\["+d+"\\]\\]","g"),b[d]))}}return a};d.massReplace=
26
- function(a,b){for(var c in b)if(b.hasOwnProperty(c)){var e=b[c];void 0===e&&(e="");a=a.replace(c,e)}return a};d.cleanFromEmpty=function(a){return a.replace(/\[\[[^\]]*\]\]/g,"")};d.addPrefix=function(a,b,c,e,g){var f=d.formatNumber(a,e),h="",k,l,m;if(0===a)return"0";0>a&&(h="-");a=Math.abs(a);if(1<a)for(k=b.length-1;-1<k;k--){if(a>=b[k].number&&(l=a/b[k].number,m=Number(e.precision),1>m&&(m=1),c=d.roundTo(l,m),m=d.formatNumber(c,{precision:-1,decimalSeparator:e.decimalSeparator,thousandsSeparator:e.thousandsSeparator}),
27
- !g||l==c)){f=h+""+m+""+b[k].prefix;break}}else for(k=0;k<c.length;k++)if(a<=c[k].number){l=a/c[k].number;m=Math.abs(Math.floor(Math.log(l)*Math.LOG10E));l=d.roundTo(l,m);f=h+""+l+""+c[k].prefix;break}return f};d.remove=function(a){a&&a.remove()};d.getEffect=function(a){">"==a&&(a="easeOutSine");"<"==a&&(a="easeInSine");"elastic"==a&&(a="easeOutElastic");return a};d.getObjById=function(a,b){var c,e;for(e=0;e<a.length;e++){var d=a[e];if(d.id==b){c=d;break}}return c};d.applyTheme=function(a,b,c){b||
28
- (b=d.theme);try{b=JSON.parse(JSON.stringify(b))}catch(e){}b&&b[c]&&d.extend(a,b[c])};d.isString=function(a){return"string"==typeof a?!0:!1};d.extend=function(a,b,c){var e;a||(a={});for(e in b)c?a.hasOwnProperty(e)||(a[e]=b[e]):a[e]=b[e];return a};d.copyProperties=function(a,b){for(var c in a)a.hasOwnProperty(c)&&"events"!=c&&void 0!==a[c]&&"function"!=typeof a[c]&&"cname"!=c&&(b[c]=a[c])};d.processObject=function(a,b,c,e){if(!1===a instanceof b&&(a=e?d.extend(new b(c),a):d.extend(a,new b(c),!0),a.listeners))for(var g in a.listeners)b=
29
- a.listeners[g],a.addListener(b.event,b.method);return a};d.fixNewLines=function(a){var b=RegExp("\\n","g");a&&(a=a.replace(b,"<br />"));return a};d.fixBrakes=function(a){if(d.isModern){var b=RegExp("<br>","g");a&&(a=a.replace(b,"\n"))}else a=d.fixNewLines(a);return a};d.deleteObject=function(a,b){if(a){if(void 0===b||null===b)b=20;if(0!==b)if("[object Array]"===Object.prototype.toString.call(a))for(var c=0;c<a.length;c++)d.deleteObject(a[c],b-1),a[c]=null;else if(a&&!a.tagName)try{for(c in a.theme=
30
- null,a)a[c]&&("object"==typeof a[c]&&d.deleteObject(a[c],b-1),"function"!=typeof a[c]&&(a[c]=null))}catch(e){}}};d.bounce=function(a,b,c,e,d){return(b/=d)<1/2.75?7.5625*e*b*b+c:b<2/2.75?e*(7.5625*(b-=1.5/2.75)*b+.75)+c:b<2.5/2.75?e*(7.5625*(b-=2.25/2.75)*b+.9375)+c:e*(7.5625*(b-=2.625/2.75)*b+.984375)+c};d.easeInOutQuad=function(a,b,c,e,d){b/=d/2;if(1>b)return e/2*b*b+c;b--;return-e/2*(b*(b-2)-1)+c};d.easeInSine=function(a,b,c,e,d){return-e*Math.cos(b/d*(Math.PI/2))+e+c};d.easeOutSine=function(a,
31
- b,c,e,d){return e*Math.sin(b/d*(Math.PI/2))+c};d.easeOutElastic=function(a,b,c,e,d){a=1.70158;var f=0,h=e;if(0===b)return c;if(1==(b/=d))return c+e;f||(f=.3*d);h<Math.abs(e)?(h=e,a=f/4):a=f/(2*Math.PI)*Math.asin(e/h);return h*Math.pow(2,-10*b)*Math.sin(2*(b*d-a)*Math.PI/f)+e+c};d.fixStepE=function(a){a=a.toExponential(0).split("e");var b=Number(a[1]);9==Number(a[0])&&b++;return d.generateNumber(1,b)};d.generateNumber=function(a,b){var c="",e;e=0>b?Math.abs(b)-1:Math.abs(b);var d;for(d=0;d<e;d++)c+=
32
- "0";return 0>b?Number("0."+c+String(a)):Number(String(a)+c)};d.setCN=function(a,b,c,e){if(a.addClassNames&&b&&(b=b.node)&&c){var d=b.getAttribute("class");a=a.classNamePrefix+"-";e&&(a="");d?b.setAttribute("class",d+" "+a+c):b.setAttribute("class",a+c)}};d.removeCN=function(a,b,c){b&&(b=b.node)&&c&&(b=b.classList)&&b.remove(a.classNamePrefix+"-"+c)};d.parseDefs=function(a,b){for(var c in a){var e=typeof a[c];if(0<a[c].length&&"object"==e)for(var g=0;g<a[c].length;g++)e=document.createElementNS(d.SVG_NS,
33
- c),b.appendChild(e),d.parseDefs(a[c][g],e);else"object"==e?(e=document.createElementNS(d.SVG_NS,c),b.appendChild(e),d.parseDefs(a[c],e)):b.setAttribute(c,a[c])}}})();(function(){var d=window.AmCharts;d.AxisBase=d.Class({construct:function(a){this.createEvents("clickItem","rollOverItem","rollOutItem","rollOverGuide","rollOutGuide","clickGuide");this.titleDY=this.y=this.x=this.dy=this.dx=0;this.axisThickness=1;this.axisColor="#000000";this.axisAlpha=1;this.gridCount=this.tickLength=5;this.gridAlpha=.15;this.gridThickness=1;this.gridColor="#000000";this.dashLength=0;this.labelFrequency=1;this.showLastLabel=this.showFirstLabel=!0;this.fillColor="#FFFFFF";this.fillAlpha=
34
- 0;this.labelsEnabled=!0;this.labelRotation=0;this.autoGridCount=!0;this.offset=0;this.guides=[];this.visible=!0;this.counter=0;this.guides=[];this.ignoreAxisWidth=this.inside=!1;this.minHorizontalGap=75;this.minVerticalGap=35;this.titleBold=!0;this.minorGridEnabled=!1;this.minorGridAlpha=.07;this.autoWrap=!1;this.titleAlign="middle";this.labelOffset=0;this.bcn="axis-";this.centerLabels=!1;this.firstDayOfWeek=1;this.centerLabelOnFullPeriod=this.markPeriodChange=this.boldPeriodBeginning=!0;this.titleWidth=
35
- 0;this.periods=[{period:"fff",count:1},{period:"fff",count:5},{period:"fff",count:10},{period:"fff",count:50},{period:"fff",count:100},{period:"fff",count:500},{period:"ss",count:1},{period:"ss",count:5},{period:"ss",count:10},{period:"ss",count:30},{period:"mm",count:1},{period:"mm",count:5},{period:"mm",count:10},{period:"mm",count:30},{period:"hh",count:1},{period:"hh",count:3},{period:"hh",count:6},{period:"hh",count:12},{period:"DD",count:1},{period:"DD",count:2},{period:"DD",count:3},{period:"DD",
36
- count:4},{period:"DD",count:5},{period:"WW",count:1},{period:"MM",count:1},{period:"MM",count:2},{period:"MM",count:3},{period:"MM",count:6},{period:"YYYY",count:1},{period:"YYYY",count:2},{period:"YYYY",count:5},{period:"YYYY",count:10},{period:"YYYY",count:50},{period:"YYYY",count:100}];this.dateFormats=[{period:"fff",format:"NN:SS.QQQ"},{period:"ss",format:"JJ:NN:SS"},{period:"mm",format:"JJ:NN"},{period:"hh",format:"JJ:NN"},{period:"DD",format:"MMM DD"},{period:"WW",format:"MMM DD"},{period:"MM",
37
- format:"MMM"},{period:"YYYY",format:"YYYY"}];this.nextPeriod={fff:"ss",ss:"mm",mm:"hh",hh:"DD",DD:"MM",MM:"YYYY"};d.applyTheme(this,a,"AxisBase")},zoom:function(a,b){this.start=a;this.end=b;this.dataChanged=!0;this.draw()},fixAxisPosition:function(){var a=this.position;"H"==this.orientation?("left"==a&&(a="bottom"),"right"==a&&(a="top")):("bottom"==a&&(a="left"),"top"==a&&(a="right"));this.position=a},init:function(){this.createBalloon()},draw:function(){var a=this.chart;this.prevBY=this.prevBX=NaN;
38
- this.allLabels=[];this.counter=0;this.destroy();this.fixAxisPosition();this.setBalloonBounds();this.labels=[];var b=a.container,c=b.set();a.gridSet.push(c);this.set=c;b=b.set();a.axesLabelsSet.push(b);this.labelsSet=b;this.axisLine=new this.axisRenderer(this);this.autoGridCount?("V"==this.orientation?(a=this.height/this.minVerticalGap,3>a&&(a=3)):a=this.width/this.minHorizontalGap,this.gridCountR=Math.max(a,1)):this.gridCountR=this.gridCount;this.axisWidth=this.axisLine.axisWidth;this.addTitle()},
39
- setOrientation:function(a){this.orientation=a?"H":"V"},addTitle:function(){var a=this.title;this.titleLabel=null;if(a){var b=this.chart,c=this.titleColor;void 0===c&&(c=b.color);var e=this.titleFontSize;isNaN(e)&&(e=b.fontSize+1);a=d.text(b.container,a,c,b.fontFamily,e,this.titleAlign,this.titleBold);d.setCN(b,a,this.bcn+"title");this.titleLabel=a}},positionTitle:function(){var a=this.titleLabel;if(a){var b,c,e=this.labelsSet,g={};0<e.length()?g=e.getBBox():(g.x=0,g.y=0,g.width=this.width,g.height=
40
- this.height,d.VML&&(g.y+=this.y,g.x+=this.x));e.push(a);var e=g.x,f=g.y;d.VML&&(f-=this.y,e-=this.x);var h=g.width,g=g.height,k=this.width,l=this.height,m=0,n=a.getBBox().height/2,q=this.inside,p=this.titleAlign;switch(this.position){case "top":b="left"==p?-1:"right"==p?k:k/2;c=f-10-n;break;case "bottom":b="left"==p?-1:"right"==p?k:k/2;c=f+g+10+n;break;case "left":b=e-10-n;q&&(b-=5);m=-90;c=("left"==p?l+1:"right"==p?-1:l/2)+this.titleDY;this.titleWidth=n+10;break;case "right":b=e+h+10+n,q&&(b+=7),
41
- c=("left"==p?l+2:"right"==p?-2:l/2)+this.titleDY,this.titleWidth=n+10,m=-90}this.marginsChanged?(a.translate(b,c),this.tx=b,this.ty=c):a.translate(this.tx,this.ty);this.marginsChanged=!1;isNaN(this.titleRotation)||(m=this.titleRotation);0!==m&&a.rotate(m)}},pushAxisItem:function(a,b){var c=this,e=a.graphics();0<e.length()&&(b?c.labelsSet.push(e):c.set.push(e));if(e=a.getLabel())c.labelsSet.push(e),e.click(function(b){c.handleMouse(b,a,"clickItem")}).touchend(function(b){c.handleMouse(b,a,"clickItem")}).mouseover(function(b){c.handleMouse(b,
42
- a,"rollOverItem")}).mouseout(function(b){c.handleMouse(b,a,"rollOutItem")})},handleMouse:function(a,b,c){this.fire({type:c,value:b.value,serialDataItem:b.serialDataItem,axis:this,target:b.label,chart:this.chart,event:a})},addGuide:function(a){for(var b=this.guides,c=!1,e=b.length,g=0;g<b.length;g++)b[g]==a&&(c=!0,e=g);a=d.processObject(a,d.Guide,this.theme);a.id||(a.id="guideAuto"+e+"_"+(new Date).getTime());c||b.push(a)},removeGuide:function(a){var b=this.guides,c;for(c=0;c<b.length;c++)b[c]==a&&
43
- b.splice(c,1)},handleGuideOver:function(a){clearTimeout(this.chart.hoverInt);var b=a.graphics.getBBox(),c=this.x+b.x+b.width/2,b=this.y+b.y+b.height/2,e=a.fillColor;void 0===e&&(e=a.lineColor);this.chart.showBalloon(a.balloonText,e,!0,c,b);this.fire({type:"rollOverGuide",guide:a,chart:this.chart})},handleGuideOut:function(a){this.chart.hideBalloon();this.fire({type:"rollOutGuide",guide:a,chart:this.chart})},handleGuideClick:function(a){this.chart.hideBalloon();this.fire({type:"clickGuide",guide:a,
44
- chart:this.chart})},addEventListeners:function(a,b){var c=this;a.mouseover(function(){c.handleGuideOver(b)});a.mouseup(function(){c.handleGuideClick(b)});a.touchstart(function(){c.handleGuideOver(b)});a.mouseout(function(){c.handleGuideOut(b)})},getBBox:function(){var a;this.labelsSet&&(a=this.labelsSet.getBBox());a?d.VML||(a={x:a.x+this.x,y:a.y+this.y,width:a.width,height:a.height}):a={x:0,y:0,width:0,height:0};return a},destroy:function(){d.remove(this.set);d.remove(this.labelsSet);var a=this.axisLine;
45
- a&&d.remove(a.axisSet);d.remove(this.grid0)},chooseMinorFrequency:function(a){for(var b=10;0<b;b--)if(a/b==Math.round(a/b))return a/b},parseDatesDraw:function(){var a,b=this.chart,c=this.showFirstLabel,e=this.showLastLabel,g,f="",h=d.extractPeriod(this.minPeriod),k=d.getPeriodDuration(h.period,h.count),l,m,n,q,p,t=this.firstDayOfWeek,r=this.boldPeriodBeginning;a=this.minorGridEnabled;var w,z=this.gridAlpha,x,u=this.choosePeriod(0),A=u.period,u=u.count,y=d.getPeriodDuration(A,u);y<k&&(A=h.period,u=
46
- h.count,y=k);h=A;"WW"==h&&(h="DD");this.stepWidth=this.getStepWidth(this.timeDifference);var B=Math.ceil(this.timeDifference/y)+5,D=l=d.resetDateToMin(new Date(this.startTime-y),A,u,t).getTime();if(h==A&&1==u&&this.centerLabelOnFullPeriod||this.autoWrap||this.centerLabels)n=y*this.stepWidth,this.autoWrap&&!this.centerLabels&&(n=-n);this.cellWidth=k*this.stepWidth;q=Math.round(l/y);k=-1;q/2==Math.round(q/2)&&(k=-2,l-=y);q=this.firstTime;var C=0,I=0;a&&1<u&&(w=this.chooseMinorFrequency(u),x=d.getPeriodDuration(A,
47
- w),"DD"==A&&(x+=d.getPeriodDuration("hh")),"fff"==A&&(x=1));if(0<this.gridCountR)for(B-5-k>this.autoRotateCount&&!isNaN(this.autoRotateAngle)&&(this.labelRotationR=this.autoRotateAngle),a=k;a<=B;a++){p=q+y*(a+Math.floor((D-q)/y))-C;"DD"==A&&(p+=36E5);p=d.resetDateToMin(new Date(p),A,u,t).getTime();"MM"==A&&(g=(p-l)/y,1.5<=(p-l)/y&&(p=p-(g-1)*y+d.getPeriodDuration("DD",3),p=d.resetDateToMin(new Date(p),A,1).getTime(),C+=y));g=(p-this.startTime)*this.stepWidth;if("radar"==b.type){if(g=this.axisWidth-
48
- g,0>g||g>this.axisWidth)continue}else this.rotate?"date"==this.type&&"middle"==this.gridPosition&&(I=-y*this.stepWidth/2):"date"==this.type&&(g=this.axisWidth-g);f=!1;this.nextPeriod[h]&&(f=this.checkPeriodChange(this.nextPeriod[h],1,p,l,h));l=!1;f&&this.markPeriodChange?(f=this.dateFormatsObject[this.nextPeriod[h]],this.twoLineMode&&(f=this.dateFormatsObject[h]+"\n"+f,f=d.fixBrakes(f)),l=!0):f=this.dateFormatsObject[h];r||(l=!1);this.currentDateFormat=f;f=d.formatDate(new Date(p),f,b);if(a==k&&!c||
49
- a==B&&!e)f=" ";this.labelFunction&&(f=this.labelFunction(f,new Date(p),this,A,u,m).toString());this.boldLabels&&(l=!0);m=new this.axisItemRenderer(this,g,f,!1,n,I,!1,l);this.pushAxisItem(m);m=l=p;if(!isNaN(w))for(g=1;g<u;g+=w)this.gridAlpha=this.minorGridAlpha,f=p+x*g,f=d.resetDateToMin(new Date(f),A,w,t).getTime(),f=new this.axisItemRenderer(this,(f-this.startTime)*this.stepWidth,void 0,void 0,void 0,void 0,void 0,void 0,void 0,!0),this.pushAxisItem(f);this.gridAlpha=z}},choosePeriod:function(a){var b=
50
- d.getPeriodDuration(this.periods[a].period,this.periods[a].count),c=this.periods;return this.timeDifference<b&&0<a?c[a-1]:Math.ceil(this.timeDifference/b)<=this.gridCountR?c[a]:a+1<c.length?this.choosePeriod(a+1):c[a]},getStepWidth:function(a){var b;this.startOnAxis?(b=this.axisWidth/(a-1),1==a&&(b=this.axisWidth)):b=this.axisWidth/a;return b},timeZoom:function(a,b){this.startTime=a;this.endTime=b},minDuration:function(){var a=d.extractPeriod(this.minPeriod);return d.getPeriodDuration(a.period,a.count)},
51
- checkPeriodChange:function(a,b,c,e,g){c=new Date(c);var f=new Date(e),h=this.firstDayOfWeek;e=b;"DD"==a&&(b=1);c=d.resetDateToMin(c,a,b,h).getTime();b=d.resetDateToMin(f,a,b,h).getTime();return"DD"==a&&"hh"!=g&&c-b<d.getPeriodDuration(a,e)-d.getPeriodDuration("hh",1)?!1:c!=b?!0:!1},generateDFObject:function(){this.dateFormatsObject={};var a;for(a=0;a<this.dateFormats.length;a++){var b=this.dateFormats[a];this.dateFormatsObject[b.period]=b.format}},hideBalloon:function(){this.balloon&&this.balloon.hide&&
52
- this.balloon.hide();this.prevBY=this.prevBX=NaN},formatBalloonText:function(a){return a},showBalloon:function(a,b,c,e){var d=this.offset;switch(this.position){case "bottom":b=this.height+d;break;case "top":b=-d;break;case "left":a=-d;break;case "right":a=this.width+d}c||(c=this.currentDateFormat);if("V"==this.orientation){if(0>b||b>this.height)return;if(isNaN(b)){this.hideBalloon();return}b=this.adjustBalloonCoordinate(b,e);e=this.coordinateToValue(b)}else{if(0>a||a>this.width)return;if(isNaN(a)){this.hideBalloon();
53
- return}a=this.adjustBalloonCoordinate(a,e);e=this.coordinateToValue(a)}var f;if(d=this.chart.chartCursor)f=d.index;if(this.balloon&&void 0!==e&&this.balloon.enabled){if(this.balloonTextFunction){if("date"==this.type||!0===this.parseDates)e=new Date(e);e=this.balloonTextFunction(e)}else this.balloonText?e=this.formatBalloonText(this.balloonText,f,c):isNaN(e)||(e=this.formatValue(e,c));if(a!=this.prevBX||b!=this.prevBY)this.balloon.setPosition(a,b),this.prevBX=a,this.prevBY=b,e&&this.balloon.showBalloon(e)}},
54
- adjustBalloonCoordinate:function(a){return a},createBalloon:function(){var a=this.chart,b=a.chartCursor;b&&(b=b.cursorPosition,"mouse"!=b&&(this.stickBalloonToCategory=!0),"start"==b&&(this.stickBalloonToStart=!0),"ValueAxis"==this.cname&&(this.stickBalloonToCategory=!1));this.balloon&&(this.balloon.destroy&&this.balloon.destroy(),d.extend(this.balloon,a.balloon,!0))},setBalloonBounds:function(){var a=this.balloon;if(a){var b=this.chart;a.cornerRadius=0;a.shadowAlpha=0;a.borderThickness=1;a.borderAlpha=
55
- 1;a.adjustBorderColor=!1;a.showBullet=!1;this.balloon=a;a.chart=b;a.mainSet=b.plotBalloonsSet;a.pointerWidth=this.tickLength;if(this.parseDates||"date"==this.type)a.pointerWidth=0;a.className=this.id;b="V";"V"==this.orientation&&(b="H");this.stickBalloonToCategory||(a.animationDuration=0);var c,e,d,f,h=this.inside,k=this.width,l=this.height;switch(this.position){case "bottom":c=0;e=k;h?(d=0,f=l):(d=l,f=l+1E3);break;case "top":c=0;e=k;h?(d=0,f=l):(d=-1E3,f=0);break;case "left":d=0;f=l;h?(c=0,e=k):
56
- (c=-1E3,e=0);break;case "right":d=0,f=l,h?(c=0,e=k):(c=k,e=k+1E3)}a.drop||(a.pointerOrientation=b);a.setBounds(c,d,e,f)}}})})();(function(){var d=window.AmCharts;d.ValueAxis=d.Class({inherits:d.AxisBase,construct:function(a){this.cname="ValueAxis";this.createEvents("axisChanged","logarithmicAxisFailed","axisZoomed","axisIntZoomed");d.ValueAxis.base.construct.call(this,a);this.dataChanged=!0;this.stackType="none";this.position="left";this.unitPosition="right";this.includeAllValues=this.recalculateToPercents=this.includeHidden=this.includeGuidesInMinMax=this.integersOnly=!1;this.durationUnits={DD:"d. ",hh:":",mm:":",ss:""};
57
- this.scrollbar=!1;this.baseValue=0;this.radarCategoriesEnabled=!0;this.axisFrequency=1;this.gridType="polygons";this.useScientificNotation=!1;this.axisTitleOffset=10;this.pointPosition="axis";this.minMaxMultiplier=1;this.logGridLimit=2;this.totalTextOffset=this.treatZeroAs=0;this.minPeriod="ss";this.relativeStart=0;this.relativeEnd=1;d.applyTheme(this,a,this.cname)},updateData:function(){0>=this.gridCountR&&(this.gridCountR=1);this.totals=[];this.data=this.chart.chartData;var a=this.chart;"xy"!=a.type&&
58
- (this.stackGraphs("smoothedLine"),this.stackGraphs("line"),this.stackGraphs("column"),this.stackGraphs("step"));this.recalculateToPercents&&this.recalculate();if(this.synchronizationMultiplier&&this.synchronizeWith)d.isString(this.synchronizeWith)&&(this.synchronizeWith=a.getValueAxisById(this.synchronizeWith)),this.synchronizeWith&&(this.synchronizeWithAxis(this.synchronizeWith),this.foundGraphs=!0);else if(this.foundGraphs=!1,this.getMinMax(),0===this.start&&this.end==this.data.length-1&&isNaN(this.minZoom)&&
59
- isNaN(this.maxZoom)||isNaN(this.fullMin)&&isNaN(this.fullMax))this.fullMin=this.min,this.fullMax=this.max,"date"!=this.type&&this.strictMinMax&&(isNaN(this.minimum)||(this.fullMin=this.minimum),isNaN(this.maximum)||(this.fullMax=this.maximum)),this.logarithmic&&(this.fullMin=this.logMin,0===this.fullMin&&(this.fullMin=this.treatZeroAs)),"date"==this.type&&(this.minimumDate||(this.fullMin=this.minRR),this.maximumDate||(this.fullMax=this.maxRR),this.strictMinMax&&(this.minimumDate&&(this.fullMin=this.minimumDate.getTime()),
60
- this.maximumDate&&(this.fullMax=this.maximumDate.getTime())))},draw:function(){d.ValueAxis.base.draw.call(this);var a=this.chart,b=this.set;this.labelRotationR=this.labelRotation;d.setCN(a,this.set,"value-axis value-axis-"+this.id);d.setCN(a,this.labelsSet,"value-axis value-axis-"+this.id);d.setCN(a,this.axisLine.axisSet,"value-axis value-axis-"+this.id);var c=this.type;"duration"==c&&(this.duration="ss");!0===this.dataChanged&&(this.updateData(),this.dataChanged=!1);"date"==c&&(this.logarithmic=
61
- !1,this.min=this.minRR,this.max=this.maxRR,this.reversed=!1,this.getDateMinMax());if(this.logarithmic){var e=this.treatZeroAs,g=this.getExtremes(0,this.data.length-1).min;!isNaN(this.minimum)&&this.minimum<g&&(g=this.minimum);this.logMin=g;this.minReal<g&&(this.minReal=g);isNaN(this.minReal)&&(this.minReal=g);0<e&&0===g&&(this.minReal=g=e);if(0>=g||0>=this.minimum){this.fire({type:"logarithmicAxisFailed",chart:a});return}}this.grid0=null;var f,h,k=a.dx,l=a.dy,e=!1,g=this.logarithmic;if(isNaN(this.min)||
62
- isNaN(this.max)||!this.foundGraphs||Infinity==this.min||-Infinity==this.max)e=!0;else{"date"==this.type&&this.min==this.max&&(this.max+=this.minDuration(),this.min-=this.minDuration());var m=this.labelFrequency,n=this.showFirstLabel,q=this.showLastLabel,p=1,t=0;this.minCalc=this.min;this.maxCalc=this.max;if(this.strictMinMax&&(isNaN(this.minimum)||(this.min=this.minimum),isNaN(this.maximum)||(this.max=this.maximum),this.min==this.max))return;isNaN(this.minZoom)||(this.minReal=this.min=this.minZoom);
63
- isNaN(this.maxZoom)||(this.max=this.maxZoom);if(this.logarithmic){h=this.fullMin;var r=this.fullMax;isNaN(this.minimum)||(h=this.minimum);isNaN(this.maximum)||(r=this.maximum);var r=Math.log(r)*Math.LOG10E-Math.log(h)*Math.LOG10E,w=Math.log(this.max)/Math.LN10-Math.log(h)*Math.LOG10E;this.relativeStart=d.roundTo((Math.log(this.minReal)/Math.LN10-Math.log(h)*Math.LOG10E)/r,5);this.relativeEnd=d.roundTo(w/r,5)}else this.relativeStart=d.roundTo(d.fitToBounds((this.min-this.fullMin)/(this.fullMax-this.fullMin),
64
- 0,1),5),this.relativeEnd=d.roundTo(d.fitToBounds((this.max-this.fullMin)/(this.fullMax-this.fullMin),0,1),5);var r=Math.round((this.maxCalc-this.minCalc)/this.step)+1,z;!0===g?(z=Math.log(this.max)*Math.LOG10E-Math.log(this.minReal)*Math.LOG10E,this.stepWidth=this.axisWidth/z,z>this.logGridLimit&&(r=Math.ceil(Math.log(this.max)*Math.LOG10E)+1,t=Math.round(Math.log(this.minReal)*Math.LOG10E),r>this.gridCountR&&(p=Math.ceil(r/this.gridCountR)))):this.stepWidth=this.axisWidth/(this.max-this.min);var x=
65
- 0;1>this.step&&-1<this.step&&(x=d.getDecimals(this.step));this.integersOnly&&(x=0);x>this.maxDecCount&&(x=this.maxDecCount);w=this.precision;isNaN(w)||(x=w);isNaN(this.maxZoom)&&(this.max=d.roundTo(this.max,this.maxDecCount),this.min=d.roundTo(this.min,this.maxDecCount));h={};h.precision=x;h.decimalSeparator=a.nf.decimalSeparator;h.thousandsSeparator=a.nf.thousandsSeparator;this.numberFormatter=h;var u;this.exponential=!1;for(h=t;h<r;h+=p){var A=d.roundTo(this.step*h+this.min,x);-1!=String(A).indexOf("e")&&
66
- (this.exponential=!0)}this.duration&&(this.maxInterval=d.getMaxInterval(this.max,this.duration));var x=this.step,y,A=this.minorGridAlpha;this.minorGridEnabled&&(y=this.getMinorGridStep(x,this.stepWidth*x));if(this.autoGridCount||0!==this.gridCount)if("date"==c)this.generateDFObject(),this.timeDifference=this.max-this.min,this.maxTime=this.lastTime=this.max,this.startTime=this.firstTime=this.min,this.parseDatesDraw();else for(r>=this.autoRotateCount&&!isNaN(this.autoRotateAngle)&&(this.labelRotationR=
67
- this.autoRotateAngle),c=this.minCalc,g&&(r++,c=this.maxCalc-r*x),this.gridCountReal=r,h=this.startCount=t;h<r;h+=p)if(t=x*h+c,t=d.roundTo(t,this.maxDecCount+1),!this.integersOnly||Math.round(t)==t)if(isNaN(w)||Number(d.toFixed(t,w))==t){if(!0===g)if(z>this.logGridLimit){if(t=Math.pow(10,h),t>this.max)continue}else if(0>=t&&(t=c+x*h+x/2,0>=t))continue;u=this.formatValue(t,!1,h);Math.round(h/m)!=h/m&&(u=void 0);if(0===h&&!n||h==r-1&&!q)u=" ";f=this.getCoordinate(t);var B;this.rotate&&this.autoWrap&&
68
- (B=this.stepWidth*x-10);u=new this.axisItemRenderer(this,f,u,void 0,B,void 0,void 0,this.boldLabels);this.pushAxisItem(u);if(t==this.baseValue&&"radar"!=a.type){var D,C,I=this.width,H=this.height;"H"==this.orientation?0<=f&&f<=I+1&&(D=[f,f,f+k],C=[H,0,l]):0<=f&&f<=H+1&&(D=[0,I,I+k],C=[f,f,f+l]);D&&(f=d.fitToBounds(2*this.gridAlpha,0,1),isNaN(this.zeroGridAlpha)||(f=this.zeroGridAlpha),f=d.line(a.container,D,C,this.gridColor,f,1,this.dashLength),f.translate(this.x,this.y),this.grid0=f,a.axesSet.push(f),
69
- f.toBack(),d.setCN(a,f,this.bcn+"zero-grid-"+this.id),d.setCN(a,f,this.bcn+"zero-grid"))}if(!isNaN(y)&&0<A&&h<r-1){f=x/y;g&&(y=x*(h+p)+this.minCalc,y=d.roundTo(y,this.maxDecCount+1),z>this.logGridLimit&&(y=Math.pow(10,h+p)),f=9,y=(y-t)/f);I=this.gridAlpha;this.gridAlpha=this.minorGridAlpha;for(H=1;H<f;H++){var Q=this.getCoordinate(t+y*H),Q=new this.axisItemRenderer(this,Q,"",!1,0,0,!1,!1,0,!0);this.pushAxisItem(Q)}this.gridAlpha=I}}z=this.guides;B=z.length;if(0<B){D=this.fillAlpha;for(h=this.fillAlpha=
70
- 0;h<B;h++)C=z[h],k=NaN,y=C.above,isNaN(C.toValue)||(k=this.getCoordinate(C.toValue),u=new this.axisItemRenderer(this,k,"",!0,NaN,NaN,C),this.pushAxisItem(u,y)),l=NaN,isNaN(C.value)||(l=this.getCoordinate(C.value),u=new this.axisItemRenderer(this,l,C.label,!0,NaN,(k-l)/2,C),this.pushAxisItem(u,y)),isNaN(k)&&(l-=3,k=l+3),u&&(m=u.label)&&this.addEventListeners(m,C),isNaN(k-l)||0>l&&0>k||(k=new this.guideFillRenderer(this,l,k,C),this.pushAxisItem(k,y),y=k.graphics(),C.graphics=y,this.addEventListeners(y,
71
- C));this.fillAlpha=D}u=this.baseValue;this.min>this.baseValue&&this.max>this.baseValue&&(u=this.min);this.min<this.baseValue&&this.max<this.baseValue&&(u=this.max);g&&u<this.minReal&&(u=this.minReal);this.baseCoord=this.getCoordinate(u,!0);u={type:"axisChanged",target:this,chart:a};u.min=g?this.minReal:this.min;u.max=this.max;this.fire(u);this.axisCreated=!0}g=this.axisLine.set;u=this.labelsSet;b.translate(this.x,this.y);u.translate(this.x,this.y);this.positionTitle();"radar"!=a.type&&g.toFront();
72
- !this.visible||e?(b.hide(),g.hide(),u.hide()):(b.show(),g.show(),u.show());this.axisY=this.y;this.axisX=this.x},getDateMinMax:function(){this.minimumDate&&(this.minimumDate instanceof Date||(this.minimumDate=d.getDate(this.minimumDate,this.chart.dataDateFormat,"fff")),this.min=this.minimumDate.getTime());this.maximumDate&&(this.maximumDate instanceof Date||(this.maximumDate=d.getDate(this.maximumDate,this.chart.dataDateFormat,"fff")),this.max=this.maximumDate.getTime())},formatValue:function(a,b,
73
- c){var e=this.exponential,g=this.logarithmic,f=this.numberFormatter,h=this.chart;if(f)return!0===this.logarithmic&&(e=-1!=String(a).indexOf("e")?!0:!1),this.useScientificNotation&&(e=!0),this.usePrefixes&&(e=!1),e?(c=-1==String(a).indexOf("e")?a.toExponential(15):String(a),e=c.split("e"),c=Number(e[0]),e=Number(e[1]),c=d.roundTo(c,14),b||isNaN(this.precision)||(c=d.roundTo(c,this.precision)),10==c&&(c=1,e+=1),c=c+"e"+e,0===a&&(c="0"),1==a&&(c="1")):(g&&(e=String(a).split("."),e[1]?(f.precision=e[1].length,
74
- 0>c&&(f.precision=Math.abs(c)),b&&1<a&&(f.precision=0),b||isNaN(this.precision)||(f.precision=this.precision)):f.precision=-1),c=this.usePrefixes?d.addPrefix(a,h.prefixesOfBigNumbers,h.prefixesOfSmallNumbers,f,!b):d.formatNumber(a,f,f.precision)),this.duration&&(b&&(f.precision=0),c=d.formatDuration(a,this.duration,"",this.durationUnits,this.maxInterval,f)),"date"==this.type&&(c=d.formatDate(new Date(a),this.currentDateFormat,h)),this.recalculateToPercents?c+="%":(b=this.unit)&&(c="left"==this.unitPosition?
75
- b+c:c+b),this.labelFunction&&(c="date"==this.type?this.labelFunction(c,new Date(a),this).toString():this.labelFunction(a,c,this).toString()),c},getMinorGridStep:function(a,b){var c=[5,4,2];60>b&&c.shift();for(var e=Math.floor(Math.log(Math.abs(a))*Math.LOG10E),d=0;d<c.length;d++){var f=a/c[d],h=Math.floor(Math.log(Math.abs(f))*Math.LOG10E);if(!(1<Math.abs(e-h)))if(1>a){if(h=Math.pow(10,-h)*f,h==Math.round(h))return f}else if(f==Math.round(f))return f}},stackGraphs:function(a){var b=this.stackType;
76
- "stacked"==b&&(b="regular");"line"==b&&(b="none");"100% stacked"==b&&(b="100%");this.stackType=b;var c=[],e=[],g=[],f=[],h,k=this.chart.graphs,l,m,n,q,p,t=this.baseValue,r=!1;if("line"==a||"step"==a||"smoothedLine"==a)r=!0;if(r&&("regular"==b||"100%"==b))for(q=0;q<k.length;q++)n=k[q],n.stackGraph=null,n.hidden||(m=n.type,n.chart==this.chart&&n.valueAxis==this&&a==m&&n.stackable&&(l&&(n.stackGraph=l),l=n));n=this.start-10;l=this.end+10;q=this.data.length-1;n=d.fitToBounds(n,0,q);l=d.fitToBounds(l,
77
- 0,q);for(p=n;p<=l;p++){var w=0;for(q=0;q<k.length;q++)if(n=k[q],n.hidden)n.newStack&&(g[p]=NaN,e[p]=NaN);else if(m=n.type,n.chart==this.chart&&n.valueAxis==this&&a==m&&n.stackable)if(m=this.data[p].axes[this.id].graphs[n.id],h=m.values.value,isNaN(h))n.newStack&&(g[p]=NaN,e[p]=NaN);else{var z=d.getDecimals(h);w<z&&(w=z);isNaN(f[p])?f[p]=Math.abs(h):f[p]+=Math.abs(h);f[p]=d.roundTo(f[p],w);z=n.fillToGraph;r&&z&&(z=this.data[p].axes[this.id].graphs[z.id])&&(m.values.open=z.values.value);"regular"==
78
- b&&(r&&(isNaN(c[p])?(c[p]=h,m.values.close=h,m.values.open=this.baseValue):(isNaN(h)?m.values.close=c[p]:m.values.close=h+c[p],m.values.open=c[p],c[p]=m.values.close)),"column"==a&&(n.newStack&&(g[p]=NaN,e[p]=NaN),m.values.close=h,0>h?(m.values.close=h,isNaN(e[p])?m.values.open=t:(m.values.close+=e[p],m.values.open=e[p]),e[p]=m.values.close):(m.values.close=h,isNaN(g[p])?m.values.open=t:(m.values.close+=g[p],m.values.open=g[p]),g[p]=m.values.close)))}}for(p=this.start;p<=this.end;p++)for(q=0;q<k.length;q++)(n=
79
- k[q],n.hidden)?n.newStack&&(g[p]=NaN,e[p]=NaN):(m=n.type,n.chart==this.chart&&n.valueAxis==this&&a==m&&n.stackable&&(m=this.data[p].axes[this.id].graphs[n.id],h=m.values.value,isNaN(h)||(c=h/f[p]*100,m.values.percents=c,m.values.total=f[p],n.newStack&&(g[p]=NaN,e[p]=NaN),"100%"==b&&(isNaN(e[p])&&(e[p]=0),isNaN(g[p])&&(g[p]=0),0>c?(m.values.close=d.fitToBounds(c+e[p],-100,100),m.values.open=e[p],e[p]=m.values.close):(m.values.close=d.fitToBounds(c+g[p],-100,100),m.values.open=g[p],g[p]=m.values.close)))))},
80
- recalculate:function(){var a=this.chart,b=a.graphs,c;for(c=0;c<b.length;c++){var e=b[c];if(e.valueAxis==this){var g="value";if("candlestick"==e.type||"ohlc"==e.type)g="open";var f,h,k=this.end+2,k=d.fitToBounds(this.end+1,0,this.data.length-1),l=this.start;0<l&&l--;var m;h=this.start;e.compareFromStart&&(h=0);if(!isNaN(a.startTime)&&(m=a.categoryAxis)){var n=m.minDuration(),n=new Date(a.startTime+n/2),q=d.resetDateToMin(new Date(a.startTime),m.minPeriod).getTime();d.resetDateToMin(new Date(n),m.minPeriod).getTime()>
81
- q&&h++}if(m=a.recalculateFromDate)m=d.getDate(m,a.dataDateFormat,"fff"),h=a.getClosestIndex(a.chartData,"time",m.getTime(),!0,0,a.chartData.length),k=a.chartData.length-1;for(m=h;m<=k&&(h=this.data[m].axes[this.id].graphs[e.id],f=h.values[g],e.recalculateValue&&(f=h.dataContext[e.valueField+e.recalculateValue]),isNaN(f));m++);this.recBaseValue=f;for(g=l;g<=k;g++){h=this.data[g].axes[this.id].graphs[e.id];h.percents={};var l=h.values,p;for(p in l)h.percents[p]="percents"!=p?l[p]/f*100-100:l[p]}}}},
82
- getMinMax:function(){var a=!1,b=this.chart,c=b.graphs,e;for(e=0;e<c.length;e++){var g=c[e].type;("line"==g||"step"==g||"smoothedLine"==g)&&this.expandMinMax&&(a=!0)}a&&(0<this.start&&this.start--,this.end<this.data.length-1&&this.end++);"serial"==b.type&&(!0!==b.categoryAxis.parseDates||a||this.end<this.data.length-1&&this.end++);this.includeAllValues&&(this.start=0,this.end=this.data.length-1);a=this.minMaxMultiplier;b=this.getExtremes(this.start,this.end);this.min=b.min;this.max=b.max;this.minRR=
83
- this.min;this.maxRR=this.max;a=(this.max-this.min)*(a-1);this.min-=a;this.max+=a;a=this.guides.length;if(this.includeGuidesInMinMax&&0<a)for(b=0;b<a;b++)c=this.guides[b],c.toValue<this.min&&(this.min=c.toValue),c.value<this.min&&(this.min=c.value),c.toValue>this.max&&(this.max=c.toValue),c.value>this.max&&(this.max=c.value);isNaN(this.minimum)||(this.min=this.minimum);isNaN(this.maximum)||(this.max=this.maximum);"date"==this.type&&this.getDateMinMax();this.min>this.max&&(a=this.max,this.max=this.min,
84
- this.min=a);isNaN(this.minZoom)||(this.min=this.minZoom);isNaN(this.maxZoom)||(this.max=this.maxZoom);this.minCalc=this.min;this.maxCalc=this.max;this.minReal=this.min;this.maxReal=this.max;0===this.min&&0===this.max&&(this.max=9);this.min>this.max&&(this.min=this.max-1);a=this.min;b=this.max;c=this.max-this.min;e=0===c?Math.pow(10,Math.floor(Math.log(Math.abs(this.max))*Math.LOG10E))/10:Math.pow(10,Math.floor(Math.log(Math.abs(c))*Math.LOG10E))/10;isNaN(this.maximum)&&(this.max=Math.ceil(this.max/
85
- e)*e+e);isNaN(this.minimum)&&(this.min=Math.floor(this.min/e)*e-e);0>this.min&&0<=a&&(this.min=0);0<this.max&&0>=b&&(this.max=0);"100%"==this.stackType&&(this.min=0>this.min?-100:0,this.max=0>this.max?0:100);c=this.max-this.min;e=Math.pow(10,Math.floor(Math.log(Math.abs(c))*Math.LOG10E))/10;this.step=Math.ceil(c/this.gridCountR/e)*e;c=Math.pow(10,Math.floor(Math.log(Math.abs(this.step))*Math.LOG10E));c=d.fixStepE(c);e=Math.ceil(this.step/c);5<e&&(e=10);5>=e&&2<e&&(e=5);this.step=Math.ceil(this.step/
86
- (c*e))*c*e;isNaN(this.setStep)||(this.step=this.setStep);1>c?(this.maxDecCount=Math.abs(Math.log(Math.abs(c))*Math.LOG10E),this.maxDecCount=Math.round(this.maxDecCount),this.step=d.roundTo(this.step,this.maxDecCount+1)):this.maxDecCount=0;this.min=this.step*Math.floor(this.min/this.step);this.max=this.step*Math.ceil(this.max/this.step);0>this.min&&0<=a&&(this.min=0);0<this.max&&0>=b&&(this.max=0);1<this.minReal&&1<this.max-this.minReal&&(this.minReal=Math.floor(this.minReal));c=Math.pow(10,Math.floor(Math.log(Math.abs(this.minReal))*
87
- Math.LOG10E));0===this.min&&(this.minReal=c);0===this.min&&1<this.minReal&&(this.minReal=1);0<this.min&&0<this.minReal-this.step&&(this.minReal=this.min+this.step<this.minReal?this.min+this.step:this.min);this.logarithmic&&(2<Math.log(b)*Math.LOG10E-Math.log(a)*Math.LOG10E?(this.minReal=this.min=Math.pow(10,Math.floor(Math.log(Math.abs(a))*Math.LOG10E)),this.maxReal=this.max=Math.pow(10,Math.ceil(Math.log(Math.abs(b))*Math.LOG10E))):(a=Math.pow(10,Math.floor(Math.log(Math.abs(a))*Math.LOG10E))/10,
88
- Math.pow(10,Math.floor(Math.log(Math.abs(this.min))*Math.LOG10E))/10<a&&(this.minReal=this.min=10*a)))},getExtremes:function(a,b){var c,e,d;for(d=a;d<=b;d++){var f=this.data[d].axes[this.id].graphs,h;for(h in f)if(f.hasOwnProperty(h)){var k=this.chart.graphsById[h];if(k.includeInMinMax&&(!k.hidden||this.includeHidden)){isNaN(c)&&(c=Infinity);isNaN(e)&&(e=-Infinity);this.foundGraphs=!0;k=f[h].values;this.recalculateToPercents&&(k=f[h].percents);var l;if(this.minMaxField)l=k[this.minMaxField],l<c&&
89
- (c=l),l>e&&(e=l);else for(var m in k)k.hasOwnProperty(m)&&"percents"!=m&&"total"!=m&&"error"!=m&&(l=k[m],l<c&&(c=l),l>e&&(e=l))}}}return{min:c,max:e}},zoomOut:function(a){this.maxZoom=this.minZoom=NaN;this.zoomToRelativeValues(0,1,a)},zoomToRelativeValues:function(a,b,c){if(this.reversed){var e=a;a=1-b;b=1-e}var d=this.fullMax,e=this.fullMin,f=e+(d-e)*a,h=e+(d-e)*b;0<=this.minimum&&0>f&&(f=0);this.logarithmic&&(isNaN(this.minimum)||(e=this.minimum),isNaN(this.maximum)||(d=this.maximum),d=Math.log(d)*
90
- Math.LOG10E-Math.log(e)*Math.LOG10E,f=Math.pow(10,d*a+Math.log(e)*Math.LOG10E),h=Math.pow(10,d*b+Math.log(e)*Math.LOG10E));return this.zoomToValues(f,h,c)},zoomToValues:function(a,b,c){if(b<a){var e=b;b=a;a=e}var g=this.fullMax,e=this.fullMin;this.relativeStart=d.roundTo((a-e)/(g-e),9);this.relativeEnd=d.roundTo((b-e)/(g-e),9);if(this.logarithmic){isNaN(this.minimum)||(e=this.minimum);isNaN(this.maximum)||(g=this.maximum);var g=Math.log(g)*Math.LOG10E-Math.log(e)*Math.LOG10E,f=Math.log(b)/Math.LN10-
91
- Math.log(e)*Math.LOG10E;this.relativeStart=d.roundTo((Math.log(a)/Math.LN10-Math.log(e)*Math.LOG10E)/g,9);this.relativeEnd=d.roundTo(f/g,9)}if(this.minZoom!=a||this.maxZoom!=b)return this.minZoom=a,this.maxZoom=b,e={type:"axisZoomed"},e.chart=this.chart,e.valueAxis=this,e.startValue=a,e.endValue=b,e.relativeStart=this.relativeStart,e.relativeEnd=this.relativeEnd,this.prevStartValue==a&&this.prevEndValue==b||this.fire(e),this.prevStartValue=a,this.prevEndValue=b,c||(a={},d.copyProperties(e,a),a.type=
92
- "axisIntZoomed",this.fire(a)),0===this.relativeStart&&1==this.relativeEnd&&(this.maxZoom=this.minZoom=NaN),!0},coordinateToValue:function(a){if(isNaN(a))return NaN;var b=this.axisWidth,c=this.stepWidth,e=this.reversed,d=this.rotate,f=this.min,h=this.minReal;return!0===this.logarithmic?Math.pow(10,(d?!0===e?(b-a)/c:a/c:!0===e?a/c:(b-a)/c)+Math.log(h)*Math.LOG10E):!0===e?d?f-(a-b)/c:a/c+f:d?a/c+f:f-(a-b)/c},getCoordinate:function(a,b){if(isNaN(a))return NaN;var c=this.rotate,e=this.reversed,d=this.axisWidth,
93
- f=this.stepWidth,h=this.min,k=this.minReal;!0===this.logarithmic?(0===a&&(a=this.treatZeroAs),h=Math.log(a)*Math.LOG10E-Math.log(k)*Math.LOG10E,c=c?!0===e?d-f*h:f*h:!0===e?f*h:d-f*h):c=!0===e?c?d-f*(a-h):f*(a-h):c?f*(a-h):d-f*(a-h);1E7<Math.abs(c)&&(c=c/Math.abs(c)*1E7);b||(c=Math.round(c));return c},synchronizeWithAxis:function(a){this.synchronizeWith=a;this.listenTo(this.synchronizeWith,"axisChanged",this.handleSynchronization)},handleSynchronization:function(){if(this.synchronizeWith){d.isString(this.synchronizeWith)&&
94
- (this.synchronizeWith=this.chart.getValueAxisById(this.synchronizeWith));var a=this.synchronizeWith,b=a.min,c=a.max,a=a.step,e=this.synchronizationMultiplier;e&&(this.min=b*e,this.max=c*e,this.step=a*e,b=Math.abs(Math.log(Math.abs(Math.pow(10,Math.floor(Math.log(Math.abs(this.step))*Math.LOG10E))))*Math.LOG10E),this.maxDecCount=b=Math.round(b),this.draw())}}})})();(function(){var d=window.AmCharts;d.RecAxis=d.Class({construct:function(a){var b=a.chart,c=a.axisThickness,e=a.axisColor,g=a.axisAlpha,f=a.offset,h=a.dx,k=a.dy,l=a.x,m=a.y,n=a.height,q=a.width,p=b.container;"H"==a.orientation?(e=d.line(p,[0,q],[0,0],e,g,c),this.axisWidth=a.width,"bottom"==a.position?(k=c/2+f+n+m-1,c=l):(k=-c/2-f+m+k,c=h+l)):(this.axisWidth=a.height,"right"==a.position?(e=d.line(p,[0,0,-h],[0,n,n-k],e,g,c),k=m+k,c=c/2+f+h+q+l-1):(e=d.line(p,[0,0],[0,n],e,g,c),k=m,c=-c/2-f+l));e.translate(c,
95
- k);c=b.container.set();c.push(e);b.axesSet.push(c);d.setCN(b,e,a.bcn+"line");this.axisSet=c;this.set=e}})})();(function(){var d=window.AmCharts;d.RecItem=d.Class({construct:function(a,b,c,e,g,f,h,k,l,m,n,q){b=Math.round(b);var p=a.chart;this.value=c;void 0==c&&(c="");l||(l=0);void 0==e&&(e=!0);var t=p.fontFamily,r=a.fontSize;void 0==r&&(r=p.fontSize);var w=a.color;void 0==w&&(w=p.color);void 0!==n&&(w=n);var z=a.chart.container,x=z.set();this.set=x;var u=a.axisThickness,A=a.axisColor,y=a.axisAlpha,B=a.tickLength,D=a.gridAlpha,C=a.gridThickness,I=a.gridColor,H=a.dashLength,Q=a.fillColor,M=a.fillAlpha,P=a.labelsEnabled;
96
- n=a.labelRotationR;var ia=a.counter,J=a.inside,aa=a.labelOffset,ma=a.dx,na=a.dy,Pa=a.orientation,Z=a.position,da=a.previousCoord,X=a.height,xa=a.width,ea=a.offset,fa,Ba;h?(void 0!==h.id&&(q=p.classNamePrefix+"-guide-"+h.id),P=!0,isNaN(h.tickLength)||(B=h.tickLength),void 0!=h.lineColor&&(I=h.lineColor),void 0!=h.color&&(w=h.color),isNaN(h.lineAlpha)||(D=h.lineAlpha),isNaN(h.dashLength)||(H=h.dashLength),isNaN(h.lineThickness)||(C=h.lineThickness),!0===h.inside&&(J=!0,0<ea&&(ea=0)),isNaN(h.labelRotation)||
97
- (n=h.labelRotation),isNaN(h.fontSize)||(r=h.fontSize),h.position&&(Z=h.position),void 0!==h.boldLabel&&(k=h.boldLabel),isNaN(h.labelOffset)||(aa=h.labelOffset)):""===c&&(B=0);m&&!isNaN(a.minorTickLength)&&(B=a.minorTickLength);var ga="start";0<g&&(ga="middle");a.centerLabels&&(ga="middle");var V=n*Math.PI/180,Y,Da,G=0,v=0,oa=0,ha=Y=0,Qa=0;"V"==Pa&&(n=0);var ca;P&&""!==c&&(ca=a.autoWrap&&0===n?d.wrappedText(z,c,w,t,r,ga,k,Math.abs(g),0):d.text(z,c,w,t,r,ga,k),ga=ca.getBBox(),ha=ga.width,Qa=ga.height);
98
- if("H"==Pa){if(0<=b&&b<=xa+1&&(0<B&&0<y&&b+l<=xa+1&&(fa=d.line(z,[b+l,b+l],[0,B],A,y,C),x.push(fa)),0<D&&(Ba=d.line(z,[b,b+ma,b+ma],[X,X+na,na],I,D,C,H),x.push(Ba))),v=0,G=b,h&&90==n&&J&&(G-=r),!1===e?(ga="start",v="bottom"==Z?J?v+B:v-B:J?v-B:v+B,G+=3,0<g&&(G+=g/2-3,ga="middle"),0<n&&(ga="middle")):ga="middle",1==ia&&0<M&&!h&&!m&&da<xa&&(e=d.fitToBounds(b,0,xa),da=d.fitToBounds(da,0,xa),Y=e-da,0<Y&&(Da=d.rect(z,Y,a.height,Q,M),Da.translate(e-Y+ma,na),x.push(Da))),"bottom"==Z?(v+=X+r/2+ea,J?(0<n?(v=
99
- X-ha/2*Math.sin(V)-B-3,a.centerRotatedLabels||(G+=ha/2*Math.cos(V)-4+2)):0>n?(v=X+ha*Math.sin(V)-B-3+2,G+=-ha*Math.cos(V)-Qa*Math.sin(V)-4):v-=B+r+3+3,v-=aa):(0<n?(v=X+ha/2*Math.sin(V)+B+3,a.centerRotatedLabels||(G-=ha/2*Math.cos(V))):0>n?(v=X+B+3-ha/2*Math.sin(V)+2,G+=ha/2*Math.cos(V)):v+=B+u+3+3,v+=aa)):(v+=na+r/2-ea,G+=ma,J?(0<n?(v=ha/2*Math.sin(V)+B+3,a.centerRotatedLabels||(G-=ha/2*Math.cos(V))):v+=B+3,v+=aa):(0<n?(v=-(ha/2)*Math.sin(V)-B-6,a.centerRotatedLabels||(G+=ha/2*Math.cos(V))):v-=B+
100
- r+3+u+3,v-=aa)),"bottom"==Z?Y=(J?X-B-1:X+u-1)+ea:(oa=ma,Y=(J?na:na-B-u+1)-ea),f&&(G+=f),r=G,0<n&&(r+=ha/2*Math.cos(V)),ca&&(f=0,J&&(f=ha/2*Math.cos(V)),r+f>xa+2||0>r))ca.remove(),ca=null}else{0<=b&&b<=X+1&&(0<B&&0<y&&b+l<=X+1&&(fa=d.line(z,[0,B+1],[b+l,b+l],A,y,C),x.push(fa)),0<D&&(Ba=d.line(z,[0,ma,xa+ma],[b,b+na,b+na],I,D,C,H),x.push(Ba)));ga="end";if(!0===J&&"left"==Z||!1===J&&"right"==Z)ga="start";v=b-Qa/2+2;1==ia&&0<M&&!h&&!m&&(e=d.fitToBounds(b,0,X),da=d.fitToBounds(da,0,X),V=e-da,Da=d.polygon(z,
101
- [0,a.width,a.width,0],[0,0,V,V],Q,M),Da.translate(ma,e-V+na),x.push(Da));v+=r/2;"right"==Z?(G+=ma+xa+ea,v+=na,J?(f||(v-=r/2+3),G=G-(B+4)-aa):(G+=B+4+u,v-=2,G+=aa)):J?(G+=B+4-ea,f||(v-=r/2+3),h&&(G+=ma,v+=na),G+=aa):(G+=-B-u-4-2-ea,v-=2,G-=aa);fa&&("right"==Z?(oa+=ma+ea+xa-1,Y+=na,oa=J?oa-u:oa+u):(oa-=ea,J||(oa-=B+u)));f&&(v+=f);J=-3;"right"==Z&&(J+=na);ca&&(v>X+1||v<J-r/10)&&(ca.remove(),ca=null)}fa&&(fa.translate(oa,Y),d.setCN(p,fa,a.bcn+"tick"),d.setCN(p,fa,q,!0),h&&d.setCN(p,fa,"guide"));!1===
102
- a.visible&&(fa&&fa.remove(),ca&&(ca.remove(),ca=null));ca&&(ca.attr({"text-anchor":ga}),ca.translate(G,v,NaN,!0),0!==n&&ca.rotate(-n,a.chart.backgroundColor),a.allLabels.push(ca),this.label=ca,d.setCN(p,ca,a.bcn+"label"),d.setCN(p,ca,q,!0),h&&d.setCN(p,ca,"guide"));Ba&&(d.setCN(p,Ba,a.bcn+"grid"),d.setCN(p,Ba,q,!0),h&&d.setCN(p,Ba,"guide"));Da&&(d.setCN(p,Da,a.bcn+"fill"),d.setCN(p,Da,q,!0));m?Ba&&d.setCN(p,Ba,a.bcn+"grid-minor"):(a.counter=0===ia?1:0,a.previousCoord=b);0===this.set.node.childNodes.length&&
103
- this.set.remove()},graphics:function(){return this.set},getLabel:function(){return this.label}})})();(function(){var d=window.AmCharts;d.RecFill=d.Class({construct:function(a,b,c,e){var g=a.dx,f=a.dy,h=a.orientation,k=0;if(c<b){var l=b;b=c;c=l}var m=e.fillAlpha;isNaN(m)&&(m=0);var l=a.chart.container,n=e.fillColor;"V"==h?(b=d.fitToBounds(b,0,a.height),c=d.fitToBounds(c,0,a.height)):(b=d.fitToBounds(b,0,a.width),c=d.fitToBounds(c,0,a.width));c-=b;isNaN(c)&&(c=4,k=2,m=0);0>c&&"object"==typeof n&&(n=n.join(",").split(",").reverse());"V"==h?(h=d.rect(l,a.width,c,n,m),h.translate(g,b-k+f)):(h=d.rect(l,
104
- c,a.height,n,m),h.translate(b-k+g,f));d.setCN(a.chart,h,"guide-fill");e.id&&d.setCN(a.chart,h,"guide-fill-"+e.id);this.set=l.set([h])},graphics:function(){return this.set},getLabel:function(){}})})();(function(){var d=window.AmCharts;d.AmChart=d.Class({construct:function(a){this.svgIcons=this.tapToActivate=!0;this.theme=a;this.classNamePrefix="amcharts";this.addClassNames=!1;this.version="3.21.11";d.addChart(this);this.createEvents("buildStarted","dataUpdated","init","rendered","drawn","failed","resized","animationFinished");this.height=this.width="100%";this.dataChanged=!0;this.chartCreated=!1;this.previousWidth=this.previousHeight=0;this.backgroundColor="#FFFFFF";this.borderAlpha=this.backgroundAlpha=
105
- 0;this.color=this.borderColor="#000000";this.fontFamily="Verdana";this.fontSize=11;this.usePrefixes=!1;this.autoResize=!0;this.autoDisplay=!1;this.addCodeCredits=this.accessible=!0;this.touchStartTime=this.touchClickDuration=0;this.precision=-1;this.percentPrecision=2;this.decimalSeparator=".";this.thousandsSeparator=",";this.labels=[];this.allLabels=[];this.titles=[];this.marginRight=this.marginLeft=this.autoMarginOffset=0;this.timeOuts=[];this.creditsPosition="top-left";var b=document.createElement("div"),
106
- c=b.style;c.overflow="hidden";c.position="relative";c.textAlign="left";this.chartDiv=b;b=document.createElement("div");c=b.style;c.overflow="hidden";c.position="relative";c.textAlign="left";this.legendDiv=b;this.titleHeight=0;this.hideBalloonTime=150;this.handDrawScatter=2;this.cssScale=this.handDrawThickness=1;this.cssAngle=0;this.prefixesOfBigNumbers=[{number:1E3,prefix:"k"},{number:1E6,prefix:"M"},{number:1E9,prefix:"G"},{number:1E12,prefix:"T"},{number:1E15,prefix:"P"},{number:1E18,prefix:"E"},
107
- {number:1E21,prefix:"Z"},{number:1E24,prefix:"Y"}];this.prefixesOfSmallNumbers=[{number:1E-24,prefix:"y"},{number:1E-21,prefix:"z"},{number:1E-18,prefix:"a"},{number:1E-15,prefix:"f"},{number:1E-12,prefix:"p"},{number:1E-9,prefix:"n"},{number:1E-6,prefix:"\u03bc"},{number:.001,prefix:"m"}];this.panEventsEnabled=!0;this.product="amcharts";this.animations=[];this.balloon=new d.AmBalloon(this.theme);this.balloon.chart=this;this.processTimeout=0;this.processCount=1E3;this.animatable=[];this.langObj={};
108
- d.applyTheme(this,a,"AmChart")},drawChart:function(){0<this.realWidth&&0<this.realHeight&&(this.drawBackground(),this.redrawLabels(),this.drawTitles(),this.brr(),this.renderFix(),this.chartDiv&&(this.boundingRect=this.chartDiv.getBoundingClientRect()))},makeAccessible:function(a,b,c){this.accessible&&a&&(c&&a.setAttr("role",c),a.setAttr("aria-label",b))},drawBackground:function(){d.remove(this.background);var a=this.container,b=this.backgroundColor,c=this.backgroundAlpha,e=this.set;d.isModern||0!==
109
- c||(c=.001);var g=this.updateWidth();this.realWidth=g;var f=this.updateHeight();this.realHeight=f;b=d.polygon(a,[0,g-1,g-1,0],[0,0,f-1,f-1],b,c,1,this.borderColor,this.borderAlpha);d.setCN(this,b,"bg");this.background=b;e.push(b);if(b=this.backgroundImage)a=a.image(b,0,0,g,f),d.setCN(this,b,"bg-image"),this.bgImg=a,e.push(a)},drawTitles:function(a){var b=this.titles;this.titleHeight=0;if(d.ifArray(b)){var c=20,e;for(e=0;e<b.length;e++){var g=b[e],g=d.processObject(g,d.Title,this.theme);if(!1!==g.enabled){var f=
110
- g.color;void 0===f&&(f=this.color);var h=g.size;isNaN(h)&&(h=this.fontSize+2);isNaN(g.alpha);var k=this.marginLeft,l=!0;void 0!==g.bold&&(l=g.bold);f=d.wrappedText(this.container,g.text,f,this.fontFamily,h,"middle",l,this.realWidth-35-this.marginRight-k);f.translate(k+(this.realWidth-this.marginRight-k)/2,c);f.node.style.pointerEvents="none";g.sprite=f;void 0!==g.tabIndex&&f.setAttr("tabindex",g.tabIndex);d.setCN(this,f,"title");g.id&&d.setCN(this,f,"title-"+g.id);f.attr({opacity:g.alpha});c+=f.getBBox().height+
111
- 5;a?f.remove():this.freeLabelsSet.push(f)}}this.titleHeight=c-10}},write:function(a){var b=this;if(b.listeners)for(var c=0;c<b.listeners.length;c++){var e=b.listeners[c];b.addListener(e.event,e.method)}b.fire({type:"buildStarted",chart:b});b.afterWriteTO&&clearTimeout(b.afterWriteTO);0<b.processTimeout?b.afterWriteTO=setTimeout(function(){b.afterWrite.call(b,a)},b.processTimeout):b.afterWrite(a)},afterWrite:function(a){var b;if(b="object"!=typeof a?document.getElementById(a):a){for(;b.firstChild;)b.removeChild(b.firstChild);
112
- this.div=b;b.style.overflow="hidden";b.style.textAlign="left";a=this.chartDiv;var c=this.legendDiv,e=this.legend,g=c.style,f=a.style;this.measure();this.previousHeight=this.divRealHeight;this.previousWidth=this.divRealWidth;var h,k=document.createElement("div");h=k.style;h.position="relative";this.containerDiv=k;k.className=this.classNamePrefix+"-main-div";a.className=this.classNamePrefix+"-chart-div";b.appendChild(k);(b=this.exportConfig)&&d.AmExport&&!this.AmExport&&(this.AmExport=new d.AmExport(this,
113
- b));this.amExport&&d.AmExport&&(this.AmExport=d.extend(this.amExport,new d.AmExport(this),!0));this.AmExport&&this.AmExport.init&&this.AmExport.init();if(e){e=this.addLegend(e,e.divId);if(e.enabled)switch(g.left=null,g.top=null,g.right=null,f.left=null,f.right=null,f.top=null,g.position="relative",f.position="relative",h.width="100%",h.height="100%",e.position){case "bottom":k.appendChild(a);k.appendChild(c);break;case "top":k.appendChild(c);k.appendChild(a);break;case "absolute":g.position="absolute";
114
- f.position="absolute";void 0!==e.left&&(g.left=e.left+"px");void 0!==e.right&&(g.right=e.right+"px");void 0!==e.top&&(g.top=e.top+"px");void 0!==e.bottom&&(g.bottom=e.bottom+"px");e.marginLeft=0;e.marginRight=0;k.appendChild(a);k.appendChild(c);break;case "right":g.position="relative";f.position="absolute";k.appendChild(a);k.appendChild(c);break;case "left":g.position="absolute";f.position="relative";k.appendChild(a);k.appendChild(c);break;case "outside":k.appendChild(a)}else k.appendChild(a);this.prevLegendPosition=
115
- e.position}else k.appendChild(a);this.listenersAdded||(this.addListeners(),this.listenersAdded=!0);(this.mouseWheelScrollEnabled||this.mouseWheelZoomEnabled)&&d.addWheelListeners();this.initChart()}},createLabelsSet:function(){d.remove(this.labelsSet);this.labelsSet=this.container.set();this.freeLabelsSet.push(this.labelsSet)},initChart:function(){this.balloon=d.processObject(this.balloon,d.AmBalloon,this.theme);window.AmCharts_path&&(this.path=window.AmCharts_path);void 0===this.path&&(this.path=
116
- d.getPath());void 0===this.path&&(this.path="amcharts/");this.path=d.normalizeUrl(this.path);void 0===this.pathToImages&&(this.pathToImages=this.path+"images/");this.initHC||(d.callInitHandler(this),this.initHC=!0);d.applyLang(this.language,this);var a=this.numberFormatter;a&&(isNaN(a.precision)||(this.precision=a.precision),void 0!==a.thousandsSeparator&&(this.thousandsSeparator=a.thousandsSeparator),void 0!==a.decimalSeparator&&(this.decimalSeparator=a.decimalSeparator));(a=this.percentFormatter)&&
117
- !isNaN(a.precision)&&(this.percentPrecision=a.precision);this.nf={precision:this.precision,thousandsSeparator:this.thousandsSeparator,decimalSeparator:this.decimalSeparator};this.pf={precision:this.percentPrecision,thousandsSeparator:this.thousandsSeparator,decimalSeparator:this.decimalSeparator};this.destroy();(a=this.container)?(a.container.innerHTML="",a.width=this.realWidth,a.height=this.realHeight,a.addDefs(this),this.chartDiv.appendChild(a.container)):a=new d.AmDraw(this.chartDiv,this.realWidth,
118
- this.realHeight,this);this.container=a;this.extension=".png";this.svgIcons&&d.SVG&&(this.extension=".svg");this.checkDisplay();this.checkTransform(this.div);a.chart=this;d.VML||d.SVG?(a.handDrawn=this.handDrawn,a.handDrawScatter=this.handDrawScatter,a.handDrawThickness=this.handDrawThickness,d.remove(this.set),this.set=a.set(),d.remove(this.gridSet),this.gridSet=a.set(),d.remove(this.cursorLineSet),this.cursorLineSet=a.set(),d.remove(this.graphsBehindSet),this.graphsBehindSet=a.set(),d.remove(this.bulletBehindSet),
119
- this.bulletBehindSet=a.set(),d.remove(this.columnSet),this.columnSet=a.set(),d.remove(this.graphsSet),this.graphsSet=a.set(),d.remove(this.trendLinesSet),this.trendLinesSet=a.set(),d.remove(this.axesSet),this.axesSet=a.set(),d.remove(this.cursorSet),this.cursorSet=a.set(),d.remove(this.scrollbarsSet),this.scrollbarsSet=a.set(),d.remove(this.bulletSet),this.bulletSet=a.set(),d.remove(this.freeLabelsSet),this.freeLabelsSet=a.set(),d.remove(this.axesLabelsSet),this.axesLabelsSet=a.set(),d.remove(this.balloonsSet),
120
- this.balloonsSet=a.set(),d.remove(this.plotBalloonsSet),this.plotBalloonsSet=a.set(),d.remove(this.zoomButtonSet),this.zoomButtonSet=a.set(),d.remove(this.zbSet),this.zbSet=null,d.remove(this.linkSet),this.linkSet=a.set()):this.fire({type:"failed",chart:this})},premeasure:function(){var a=this.div;if(a){try{this.boundingRect=this.chartDiv.getBoundingClientRect()}catch(e){}var b=a.offsetWidth,c=a.offsetHeight;a.clientHeight&&(b=a.clientWidth,c=a.clientHeight);if(b!=this.mw||c!=this.mh)this.mw=b,this.mh=
121
- c,this.measure()}},measure:function(){var a=this.div;if(a){var b=this.chartDiv,c=a.offsetWidth,e=a.offsetHeight,g=this.container;a.clientHeight&&(c=a.clientWidth,e=a.clientHeight);var e=Math.round(e),c=Math.round(c),a=Math.round(d.toCoordinate(this.width,c)),f=Math.round(d.toCoordinate(this.height,e));(c!=this.previousWidth||e!=this.previousHeight)&&0<a&&0<f&&(b.style.width=a+"px",b.style.height=f+"px",b.style.padding=0,g&&g.setSize(a,f),this.balloon=d.processObject(this.balloon,d.AmBalloon,this.theme));
122
- this.balloon&&this.balloon.setBounds&&this.balloon.setBounds(2,2,a-2,f);this.updateWidth();this.balloon.chart=this;this.realWidth=a;this.realHeight=f;this.divRealWidth=c;this.divRealHeight=e}},checkDisplay:function(){if(this.autoDisplay&&this.container){var a=d.rect(this.container,10,10),b=a.getBBox();0===b.width&&0===b.height&&(this.divRealHeight=this.divRealWidth=this.realHeight=this.realWidth=0,this.previousWidth=this.previousHeight=NaN);a.remove()}},checkTransform:function(a){if(this.autoTransform&&
123
- window.getComputedStyle&&a){if(a.style){var b=window.getComputedStyle(a,null);if(b&&(b=b.getPropertyValue("-webkit-transform")||b.getPropertyValue("-moz-transform")||b.getPropertyValue("-ms-transform")||b.getPropertyValue("-o-transform")||b.getPropertyValue("transform"))&&"none"!==b){var c=b.split("(")[1].split(")")[0].split(","),b=c[0],c=c[1],b=Math.sqrt(b*b+c*c);isNaN(b)||(this.cssScale*=b)}}a.parentNode&&this.checkTransform(a.parentNode)}},destroy:function(){this.chartDiv.innerHTML="";this.clearTimeOuts();
124
- this.legend&&this.legend.destroy()},clearTimeOuts:function(){var a=this.timeOuts;if(a){var b;for(b=0;b<a.length;b++)clearTimeout(a[b])}this.timeOuts=[]},clear:function(a){try{document.removeEventListener("touchstart",this.docfn1,!0),document.removeEventListener("touchend",this.docfn2,!0)}catch(b){}d.callMethod("clear",[this.chartScrollbar,this.scrollbarV,this.scrollbarH,this.chartCursor]);this.chartCursor=this.scrollbarH=this.scrollbarV=this.chartScrollbar=null;this.clearTimeOuts();this.container&&
125
- (this.container.remove(this.chartDiv),this.container.remove(this.legendDiv));a||d.removeChart(this);if(a=this.div)for(;a.firstChild;)a.removeChild(a.firstChild);this.legend&&this.legend.destroy();this.AmExport&&this.AmExport.clear&&this.AmExport.clear()},setMouseCursor:function(a){"auto"==a&&d.isNN&&(a="default");this.chartDiv.style.cursor=a;this.legendDiv.style.cursor=a},redrawLabels:function(){this.labels=[];var a=this.allLabels;this.createLabelsSet();var b;for(b=0;b<a.length;b++)this.drawLabel(a[b])},
126
- drawLabel:function(a){var b=this;if(b.container&&!1!==a.enabled){a=d.processObject(a,d.Label,b.theme);var c=a.y,e=a.text,g=a.align,f=a.size,h=a.color,k=a.rotation,l=a.alpha,m=a.bold,n=d.toCoordinate(a.x,b.realWidth),c=d.toCoordinate(c,b.realHeight);n||(n=0);c||(c=0);void 0===h&&(h=b.color);isNaN(f)&&(f=b.fontSize);g||(g="start");"left"==g&&(g="start");"right"==g&&(g="end");"center"==g&&(g="middle",k?c=b.realHeight-c+c/2:n=b.realWidth/2-n);void 0===l&&(l=1);void 0===k&&(k=0);c+=f/2;e=d.text(b.container,
127
- e,h,b.fontFamily,f,g,m,l);e.translate(n,c);void 0!==a.tabIndex&&e.setAttr("tabindex",a.tabIndex);d.setCN(b,e,"label");a.id&&d.setCN(b,e,"label-"+a.id);0!==k&&e.rotate(k);a.url?(e.setAttr("cursor","pointer"),e.click(function(){d.getURL(a.url,b.urlTarget)})):e.node.style.pointerEvents="none";b.labelsSet.push(e);b.labels.push(e)}},addLabel:function(a,b,c,e,d,f,h,k,l,m){a={x:a,y:b,text:c,align:e,size:d,color:f,alpha:k,rotation:h,bold:l,url:m,enabled:!0};this.container&&this.drawLabel(a);this.allLabels.push(a)},
128
- clearLabels:function(){var a=this.labels,b;for(b=a.length-1;0<=b;b--)a[b].remove();this.labels=[];this.allLabels=[]},updateHeight:function(){var a=this.divRealHeight,b=this.legend;if(b){var c=this.legendDiv.offsetHeight,b=b.position;if("top"==b||"bottom"==b){a-=c;if(0>a||isNaN(a))a=0;this.chartDiv.style.height=a+"px"}}return a},updateWidth:function(){var a=this.divRealWidth,b=this.divRealHeight,c=this.legend;if(c){var e=this.legendDiv,d=e.offsetWidth;isNaN(c.width)||(d=c.width);c.ieW&&(d=c.ieW);var f=
129
- e.offsetHeight,e=e.style,h=this.chartDiv.style,k=c.position;if(("right"==k||"left"==k)&&void 0===c.divId){a-=d;if(0>a||isNaN(a))a=0;h.width=a+"px";this.balloon&&this.balloon.setBounds&&this.balloon.setBounds(2,2,a-2,this.realHeight);"left"==k?(h.left=d+"px",e.left="0px"):(h.left="0px",e.left=a+"px");b>f&&(e.top=(b-f)/2+"px")}}return a},getTitleHeight:function(){this.drawTitles(!0);return this.titleHeight},addTitle:function(a,b,c,e,d){isNaN(b)&&(b=this.fontSize+2);a={text:a,size:b,color:c,alpha:e,
130
- bold:d,enabled:!0};this.titles.push(a);return a},handleWheel:function(a){var b=0;a||(a=window.event);a.wheelDelta?b=a.wheelDelta/120:a.detail&&(b=-a.detail/3);b&&this.handleWheelReal(b,a.shiftKey);a.preventDefault&&a.preventDefault()},handleWheelReal:function(){},handleDocTouchStart:function(){this.handleMouseMove();this.tmx=this.mouseX;this.tmy=this.mouseY;this.touchStartTime=(new Date).getTime()},handleDocTouchEnd:function(){-.5<this.tmx&&this.tmx<this.divRealWidth+1&&0<this.tmy&&this.tmy<this.divRealHeight?
131
- (this.handleMouseMove(),4>Math.abs(this.mouseX-this.tmx)&&4>Math.abs(this.mouseY-this.tmy)?(this.tapped=!0,this.panRequired&&this.panEventsEnabled&&this.chartDiv&&(this.chartDiv.style.msTouchAction="none",this.chartDiv.style.touchAction="none")):this.mouseIsOver||this.resetTouchStyle()):(this.tapped=!1,this.resetTouchStyle())},resetTouchStyle:function(){this.panEventsEnabled&&this.chartDiv&&(this.chartDiv.style.msTouchAction="auto",this.chartDiv.style.touchAction="auto")},checkTouchDuration:function(a){var b=
132
- this,c=(new Date).getTime();if(a)if(a.touches)b.isTouchEvent=!0;else if(!b.isTouchEvent)return!0;if(c-b.touchStartTime>b.touchClickDuration)return!0;setTimeout(function(){b.resetTouchDuration()},300)},resetTouchDuration:function(){this.isTouchEvent=!1},checkTouchMoved:function(){if(4<Math.abs(this.mouseX-this.tmx)||4<Math.abs(this.mouseY-this.tmy))return!0},addListeners:function(){var a=this,b=a.chartDiv;document.addEventListener?("ontouchstart"in document.documentElement&&(b.addEventListener("touchstart",
133
- function(b){a.handleTouchStart.call(a,b)},!0),b.addEventListener("touchmove",function(b){a.handleMouseMove.call(a,b)},!0),b.addEventListener("touchend",function(b){a.handleTouchEnd.call(a,b)},!0),a.docfn1=function(b){a.handleDocTouchStart.call(a,b)},a.docfn2=function(b){a.handleDocTouchEnd.call(a,b)},document.addEventListener("touchstart",a.docfn1,!0),document.addEventListener("touchend",a.docfn2,!0)),b.addEventListener("mousedown",function(b){a.mouseIsOver=!0;a.handleMouseMove.call(a,b);a.handleMouseDown.call(a,
134
- b);a.handleDocTouchStart.call(a,b)},!0),b.addEventListener("mouseover",function(b){a.handleMouseOver.call(a,b)},!0),b.addEventListener("mouseout",function(b){a.handleMouseOut.call(a,b)},!0),b.addEventListener("mouseup",function(b){a.handleDocTouchEnd.call(a,b)},!0)):(b.attachEvent("onmousedown",function(b){a.handleMouseDown.call(a,b)}),b.attachEvent("onmouseover",function(b){a.handleMouseOver.call(a,b)}),b.attachEvent("onmouseout",function(b){a.handleMouseOut.call(a,b)}))},dispDUpd:function(){this.skipEvents||
135
- (this.dispatchDataUpdated&&(this.dispatchDataUpdated=!1,this.fire({type:"dataUpdated",chart:this})),this.chartCreated||(this.chartCreated=!0,this.fire({type:"init",chart:this})),this.chartRendered||(this.fire({type:"rendered",chart:this}),this.chartRendered=!0),this.fire({type:"drawn",chart:this}));this.skipEvents=!1},validateSize:function(){var a=this;a.premeasure();a.checkDisplay();a.cssScale=1;a.cssAngle=0;a.checkTransform(a.div);if(a.divRealWidth!=a.previousWidth||a.divRealHeight!=a.previousHeight){var b=
136
- a.legend;if(0<a.realWidth&&0<a.realHeight){a.sizeChanged=!0;if(b){a.legendInitTO&&clearTimeout(a.legendInitTO);var c=setTimeout(function(){b.invalidateSize()},10);a.timeOuts.push(c);a.legendInitTO=c}a.marginsUpdated=!1;clearTimeout(a.initTO);c=setTimeout(function(){a.initChart()},10);a.timeOuts.push(c);a.initTO=c}a.renderFix();b&&b.renderFix&&b.renderFix();a.positionCred();clearTimeout(a.resizedTO);a.resizedTO=setTimeout(function(){a.fire({type:"resized",chart:a})},10);a.previousHeight=a.divRealHeight;
137
- a.previousWidth=a.divRealWidth}},invalidateSize:function(){this.previousHeight=this.previousWidth=NaN;this.invalidateSizeReal()},invalidateSizeReal:function(){var a=this;a.marginsUpdated=!1;clearTimeout(a.validateTO);var b=setTimeout(function(){a.validateSize()},5);a.timeOuts.push(b);a.validateTO=b},validateData:function(a){this.chartCreated&&(this.dataChanged=!0,this.marginsUpdated=!1,this.initChart(a))},validateNow:function(a,b){this.initTO&&clearTimeout(this.initTO);a&&(this.dataChanged=!0,this.marginsUpdated=
138
- !1);this.skipEvents=b;this.chartRendered=!1;var c=this.legend;c&&c.position!=this.prevLegendPosition&&(this.previousWidth=this.mw=0,c.invalidateSize&&(c.invalidateSize(),this.validateSize()));this.write(this.div)},showItem:function(a){a.hidden=!1;this.initChart()},hideItem:function(a){a.hidden=!0;this.initChart()},hideBalloon:function(){var a=this;clearTimeout(a.hoverInt);clearTimeout(a.balloonTO);a.hoverInt=setTimeout(function(){a.hideBalloonReal.call(a)},a.hideBalloonTime)},cleanChart:function(){},
139
- hideBalloonReal:function(){var a=this.balloon;a&&a.hide&&a.hide()},showBalloon:function(a,b,c,e,d){var f=this;clearTimeout(f.balloonTO);clearTimeout(f.hoverInt);f.balloonTO=setTimeout(function(){f.showBalloonReal.call(f,a,b,c,e,d)},1)},showBalloonReal:function(a,b,c,e,d){this.handleMouseMove();var f=this.balloon;f.enabled&&(f.followCursor(!1),f.changeColor(b),!c||f.fixedPosition?(f.setPosition(e,d),isNaN(e)||isNaN(d)?f.followCursor(!0):f.followCursor(!1)):f.followCursor(!0),a&&f.showBalloon(a))},
140
- handleMouseOver:function(){this.outTO&&clearTimeout(this.outTO);d.resetMouseOver();this.mouseIsOver=!0},handleMouseOut:function(){var a=this;d.resetMouseOver();a.outTO&&clearTimeout(a.outTO);a.outTO=setTimeout(function(){a.handleMouseOutReal()},10)},handleMouseOutReal:function(){this.mouseIsOver=!1},handleMouseMove:function(a){a||(a=window.event);this.mouse2Y=this.mouse2X=NaN;var b,c,e,d;if(a){if(a.touches){var f=a.touches.item(1);f&&this.panEventsEnabled&&this.boundingRect&&(e=f.clientX-this.boundingRect.left,
141
- d=f.clientY-this.boundingRect.top);a=a.touches.item(0);if(!a)return}else this.wasTouched=!1;this.boundingRect&&a.clientX&&(b=a.clientX-this.boundingRect.left,c=a.clientY-this.boundingRect.top);isNaN(e)?this.mouseX=b:(this.mouseX=Math.min(b,e),this.mouse2X=Math.max(b,e));isNaN(d)?this.mouseY=c:(this.mouseY=Math.min(c,d),this.mouse2Y=Math.max(c,d));this.autoTransform&&(this.mouseX/=this.cssScale,this.mouseY/=this.cssScale)}},handleTouchStart:function(a){this.hideBalloonReal();a&&(a.touches&&this.tapToActivate&&
142
- !this.tapped||!this.panRequired)||(this.handleMouseMove(a),this.handleMouseDown(a))},handleTouchEnd:function(a){this.wasTouched=!0;this.handleMouseMove(a);d.resetMouseOver();this.handleReleaseOutside(a)},handleReleaseOutside:function(){this.handleDocTouchEnd.call(this)},handleMouseDown:function(a){d.resetMouseOver();this.mouseIsOver=!0;a&&a.preventDefault&&(this.panEventsEnabled?a.preventDefault():a.touches||a.preventDefault())},addLegend:function(a,b){a=d.processObject(a,d.AmLegend,this.theme);a.divId=
143
- b;a.ieW=0;var c;c="object"!=typeof b&&b?document.getElementById(b):b;this.legend=a;a.chart=this;c?(a.div=c,a.position="outside",a.autoMargins=!1):a.div=this.legendDiv;return a},removeLegend:function(){this.legend=void 0;this.previousWidth=0;this.legendDiv.innerHTML=""},handleResize:function(){(d.isPercents(this.width)||d.isPercents(this.height))&&this.invalidateSizeReal();this.renderFix()},renderFix:function(){if(!d.VML){var a=this.container;a&&a.renderFix()}},getSVG:function(){if(d.hasSVG)return this.container},
144
- animate:function(a,b,c,e,g,f,h){a["an_"+b]&&d.removeFromArray(this.animations,a["an_"+b]);c={obj:a,frame:0,attribute:b,from:c,to:e,time:g,effect:f,suffix:h};a["an_"+b]=c;this.animations.push(c);return c},setLegendData:function(a){var b=this.legend;b&&b.setData(a)},stopAnim:function(a){d.removeFromArray(this.animations,a)},updateAnimations:function(){var a;this.container&&this.container.update();if(this.animations)for(a=this.animations.length-1;0<=a;a--){var b=this.animations[a],c=d.updateRate*b.time,
145
- e=b.frame+1,g=b.obj,f=b.attribute;if(e<=c){b.frame++;var h=Number(b.from),k=Number(b.to)-h,c=d[b.effect](0,e,h,k,c);0===k?(this.animations.splice(a,1),g.node.style[f]=Number(b.to)+b.suffix):g.node.style[f]=c+b.suffix}else g.node.style[f]=Number(b.to)+b.suffix,g.animationFinished=!0,this.animations.splice(a,1)}},update:function(){this.updateAnimations();var a=this.animatable;if(0<a.length){for(var b=!0,c=a.length-1;0<=c;c--){var e=a[c];e&&(e.animationFinished?a.splice(c,1):b=!1)}b&&(this.fire({type:"animationFinished",
146
- chart:this}),this.animatable=[])}},inIframe:function(){try{return window.self!==window.top}catch(a){return!0}},brr:function(){if(!this.hideCredits){var a="amcharts.com",b=window.location.hostname.split("."),c;2<=b.length&&(c=b[b.length-2]+"."+b[b.length-1]);this.amLink&&(b=this.amLink.parentNode)&&b.removeChild(this.amLink);if(c!=a||!0===this.inIframe()){c=a="http://www."+a;var b="JavaScript charts",e="JS chart by amCharts";"ammap"==this.product&&(c=a+"/javascript-maps/",b="Interactive JavaScript maps",
147
- e="JS map by amCharts");a=document.createElement("a");e=document.createTextNode(e);a.setAttribute("href",c);a.setAttribute("title",b);this.urlTarget&&a.setAttribute("target",this.urlTarget);a.appendChild(e);this.chartDiv.appendChild(a);this.amLink=a;a=a.style;a.position="absolute";a.textDecoration="none";a.color=this.color;a.fontFamily=this.fontFamily;a.fontSize="11px";a.opacity=.7;a.display="block";this.positionCred()}}},positionCred:function(){var a=this.amLink;if(a){var b=this.creditsPosition,
148
- c=a.style,e=a.offsetWidth,a=a.offsetHeight,d=0,f=0,h=this.realWidth,k=this.realHeight,l=this.type;if("serial"==l||"xy"==l||"gantt"==l)d=this.marginLeftReal,f=this.marginTopReal,h=d+this.plotAreaWidth,k=f+this.plotAreaHeight;var l=5+d,m=f+5;"bottom-left"==b&&(l=5+d,m=k-a-3);"bottom-right"==b&&(l=h-e-5,m=k-a-3);"top-right"==b&&(l=h-e-5,m=f+5);c.left=l+"px";c.top=m+"px"}}});d.Slice=d.Class({construct:function(){}});d.SerialDataItem=d.Class({construct:function(){}});d.GraphDataItem=d.Class({construct:function(){}});
149
- d.Guide=d.Class({construct:function(a){this.cname="Guide";d.applyTheme(this,a,this.cname)}});d.Title=d.Class({construct:function(a){this.cname="Title";d.applyTheme(this,a,this.cname)}});d.Label=d.Class({construct:function(a){this.cname="Label";d.applyTheme(this,a,this.cname)}})})();(function(){var d=window.AmCharts;d.AmGraph=d.Class({construct:function(a){this.cname="AmGraph";this.createEvents("rollOverGraphItem","rollOutGraphItem","clickGraphItem","doubleClickGraphItem","rightClickGraphItem","clickGraph","rollOverGraph","rollOutGraph");this.type="line";this.stackable=!0;this.columnCount=1;this.columnIndex=0;this.centerCustomBullets=this.showBalloon=!0;this.maxBulletSize=50;this.minBulletSize=4;this.balloonText="[[value]]";this.hidden=this.scrollbar=this.animationPlayed=!1;
150
- this.pointPosition="middle";this.depthCount=1;this.includeInMinMax=!0;this.negativeBase=0;this.visibleInLegend=!0;this.showAllValueLabels=!1;this.showBulletsAt=this.showBalloonAt="close";this.lineThickness=1;this.dashLength=0;this.connect=!0;this.lineAlpha=1;this.bullet="none";this.bulletBorderThickness=2;this.bulletBorderAlpha=0;this.bulletAlpha=1;this.bulletSize=8;this.cornerRadiusTop=this.hideBulletsCount=this.bulletOffset=0;this.cursorBulletAlpha=1;this.gradientOrientation="vertical";this.dy=
151
- this.dx=0;this.periodValue="";this.clustered=!0;this.periodSpan=1;this.accessibleLabel="[[title]] [[category]] [[value]]";this.accessibleSkipText="Press enter to skip [[title]]";this.y=this.x=0;this.switchable=!0;this.minDistance=.8;this.tcc=1;this.labelRotation=0;this.labelAnchor="auto";this.labelOffset=3;this.bcn="graph-";this.dateFormat="MMM DD, YYYY";this.noRounding=!0;d.applyTheme(this,a,this.cname)},init:function(){this.createBalloon()},draw:function(){var a=this.chart;a.isRolledOverBullet=
152
- !1;var b=a.type;if(a.drawGraphs){isNaN(this.precision)||(this.numberFormatter?this.numberFormatter.precision=this.precision:this.numberFormatter={precision:this.precision,decimalSeparator:a.decimalSeparator,thousandsSeparator:a.thousandsSeparator});var c=a.container;this.container=c;this.destroy();var e=c.set();this.set=e;e.translate(this.x,this.y);var g=c.set();this.bulletSet=g;g.translate(this.x,this.y);this.behindColumns?(a.graphsBehindSet.push(e),a.bulletBehindSet.push(g)):(a.graphsSet.push(e),
153
- a.bulletSet.push(g));var f=this.bulletAxis;d.isString(f)&&(this.bulletAxis=a.getValueAxisById(f));c=c.set();d.remove(this.columnsSet);this.columnsSet=c;d.setCN(a,e,"graph-"+this.type);d.setCN(a,e,"graph-"+this.id);d.setCN(a,g,"graph-"+this.type);d.setCN(a,g,"graph-"+this.id);this.columnsArray=[];this.ownColumns=[];this.allBullets=[];this.animationArray=[];g=this.labelPosition;g||(f=this.valueAxis.stackType,g="top","column"==this.type&&(a.rotate&&(g="right"),"100%"==f||"regular"==f)&&(g="middle"),
154
- this.labelPosition=g);d.ifArray(this.data)&&(a=!1,"xy"==b?this.xAxis.axisCreated&&this.yAxis.axisCreated&&(a=!0):this.valueAxis.axisCreated&&(a=!0),!this.hidden&&a&&this.createGraph());e.push(c)}},createGraph:function(){var a=this,b=a.chart;a.startAlpha=b.startAlpha;a.seqAn=b.sequencedAnimation;a.baseCoord=a.valueAxis.baseCoord;void 0===a.fillAlphas&&(a.fillAlphas=0);a.bulletColorR=a.bulletColor;void 0===a.bulletColorR&&(a.bulletColorR=a.lineColorR,a.bulletColorNegative=a.negativeLineColor);void 0===
155
- a.bulletAlpha&&(a.bulletAlpha=a.lineAlpha);if("step"==c||d.VML)a.noRounding=!1;var c=b.type;"gantt"==c&&(c="serial");clearTimeout(a.playedTO);if(!isNaN(a.valueAxis.min)&&!isNaN(a.valueAxis.max)){switch(c){case "serial":a.categoryAxis&&(a.createSerialGraph(),"candlestick"==a.type&&1>a.valueAxis.minMaxMultiplier&&a.positiveClip(a.set));break;case "radar":a.createRadarGraph();break;case "xy":a.createXYGraph()}a.playedTO=setTimeout(function(){a.setAnimationPlayed.call(a)},500*a.chart.startDuration)}},
156
- setAnimationPlayed:function(){this.animationPlayed=!0},createXYGraph:function(){var a=[],b=[],c=this.xAxis,e=this.yAxis;this.pmh=e.height;this.pmw=c.width;this.pmy=this.pmx=0;var d;for(d=this.start;d<=this.end;d++){var f=this.data[d].axes[c.id].graphs[this.id],h=f.values,k=h.x,l=h.y,h=c.getCoordinate(k,this.noRounding),m=e.getCoordinate(l,this.noRounding);if(!isNaN(k)&&!isNaN(l)&&(a.push(h),b.push(m),f.x=h,f.y=m,k=this.createBullet(f,h,m,d),l=this.labelText)){var l=this.createLabel(f,l),n=0;k&&(n=
157
- k.size);this.positionLabel(f,h,m,l,n)}}this.drawLineGraph(a,b);this.launchAnimation()},createRadarGraph:function(){var a=this.valueAxis.stackType,b=[],c=[],e=[],d=[],f,h,k,l,m;for(m=this.start;m<=this.end;m++){var n=this.data[m].axes[this.valueAxis.id].graphs[this.id],q,p;"none"==a||"3d"==a?q=n.values.value:(q=n.values.close,p=n.values.open);if(isNaN(q))this.connect||(this.drawLineGraph(b,c,e,d),b=[],c=[],e=[],d=[]);else{var t=this.valueAxis.getCoordinate(q,this.noRounding)-this.height,t=t*this.valueAxis.rMultiplier,
158
- r=-360/(this.end-this.start+1)*m;"middle"==this.valueAxis.pointPosition&&(r-=180/(this.end-this.start+1));q=t*Math.sin(r/180*Math.PI);t*=Math.cos(r/180*Math.PI);b.push(q);c.push(t);if(!isNaN(p)){var w=this.valueAxis.getCoordinate(p,this.noRounding)-this.height,w=w*this.valueAxis.rMultiplier,z=w*Math.sin(r/180*Math.PI),r=w*Math.cos(r/180*Math.PI);e.push(z);d.push(r);isNaN(k)&&(k=z);isNaN(l)&&(l=r)}r=this.createBullet(n,q,t,m);n.x=q;n.y=t;if(z=this.labelText)z=this.createLabel(n,z),w=0,r&&(w=r.size),
159
- this.positionLabel(n,q,t,z,w);isNaN(f)&&(f=q);isNaN(h)&&(h=t)}}b.push(f);c.push(h);isNaN(k)||(e.push(k),d.push(l));this.drawLineGraph(b,c,e,d);this.launchAnimation()},positionLabel:function(a,b,c,e,d){if(e){var f=this.chart,h=this.valueAxis,k="middle",l=!1,m=this.labelPosition,n=e.getBBox(),q=this.chart.rotate,p=a.isNegative,t=this.fontSize;void 0===t&&(t=this.chart.fontSize);c-=n.height/2-t/2-1;void 0!==a.labelIsNegative&&(p=a.labelIsNegative);switch(m){case "right":m=q?p?"left":"right":"right";
160
- break;case "top":m=q?"top":p?"bottom":"top";break;case "bottom":m=q?"bottom":p?"top":"bottom";break;case "left":m=q?p?"right":"left":"left"}var t=a.columnGraphics,r=0,w=0;t&&(r=t.x,w=t.y);var z=this.labelOffset;switch(m){case "right":k="start";b+=d/2+z;break;case "top":c=h.reversed?c+(d/2+n.height/2+z):c-(d/2+n.height/2+z);break;case "bottom":c=h.reversed?c-(d/2+n.height/2+z):c+(d/2+n.height/2+z);break;case "left":k="end";b-=d/2+z;break;case "inside":"column"==this.type&&(l=!0,q?p?(k="end",b=r-3-
161
- z):(k="start",b=r+3+z):c=p?w+7+z:w-10-z);break;case "middle":"column"==this.type&&(l=!0,q?b-=(b-r)/2+z-3:c-=(c-w)/2+z-3)}"auto"!=this.labelAnchor&&(k=this.labelAnchor);e.attr({"text-anchor":k});this.labelRotation&&e.rotate(this.labelRotation);e.translate(b,c);!this.showAllValueLabels&&t&&l&&(n=e.getBBox(),n.height>a.columnHeight||n.width>a.columnWidth)&&(e.remove(),e=null);if(e&&"radar"!=f.type)if(q){if(0>c||c>this.height)e.remove(),e=null;!this.showAllValueLabels&&e&&(0>b||b>this.width)&&(e.remove(),
162
- e=null)}else{if(0>b||b>this.width)e.remove(),e=null;!this.showAllValueLabels&&e&&(0>c||c>this.height)&&(e.remove(),e=null)}e&&this.allBullets.push(e);return e}},getGradRotation:function(){var a=270;"horizontal"==this.gradientOrientation&&(a=0);return this.gradientRotation=a},createSerialGraph:function(){this.dashLengthSwitched=this.fillColorsSwitched=this.lineColorSwitched=void 0;var a=this.chart,b=this.id,c=this.index,e=this.data,g=this.chart.container,f=this.valueAxis,h=this.type,k=this.columnWidthReal,
163
- l=this.showBulletsAt;isNaN(this.columnWidth)||(k=this.columnWidth);isNaN(k)&&(k=.8);var m=this.useNegativeColorIfDown,n=this.width,q=this.height,p=this.y,t=this.rotate,r=this.columnCount,w=d.toCoordinate(this.cornerRadiusTop,k/2),z=this.connect,x=[],u=[],A,y,B,D,C=this.chart.graphs.length,I,H=this.dx/this.tcc,Q=this.dy/this.tcc,M=f.stackType,P=this.start,ia=this.end,J=this.scrollbar,aa="graph-column-";J&&(aa="scrollbar-graph-column-");var ma=this.categoryAxis,na=this.baseCoord,Pa=this.negativeBase,
164
- Z=this.columnIndex,da=this.lineThickness,X=this.lineAlpha,xa=this.lineColorR,ea=this.dashLength,fa=this.set,Ba,ga=this.getGradRotation(),V=this.chart.columnSpacing,Y=ma.cellWidth,Da=(Y*k-r)/r;V>Da&&(V=Da);var G,v,oa,ha=q,Qa=n,ca=0,tb=0,ub=0,vb=0,lb=0,mb=0,wb=this.fillColorsR,Ra=this.negativeFillColors,Ja=this.negativeLineColor,bb=this.fillAlphas,cb=this.negativeFillAlphas;"object"==typeof bb&&(bb=bb[0]);"object"==typeof cb&&(cb=cb[0]);var xb=this.noRounding;"step"==h&&(xb=!1);var nb=f.getCoordinate(f.min);
165
- f.logarithmic&&(nb=f.getCoordinate(f.minReal));this.minCoord=nb;this.resetBullet&&(this.bullet="none");if(!(J||"line"!=h&&"smoothedLine"!=h&&"step"!=h||(1==e.length&&"step"!=h&&"none"==this.bullet&&(this.bullet="round",this.resetBullet=!0),!Ra&&void 0==Ja||m))){var Ua=Pa;Ua>f.max&&(Ua=f.max);Ua<f.min&&(Ua=f.min);f.logarithmic&&(Ua=f.minReal);var Ka=f.getCoordinate(Ua)+.5,Mb=f.getCoordinate(f.max);t?(ha=q,Qa=Math.abs(Mb-Ka),ub=q,vb=Math.abs(nb-Ka),mb=tb=0,f.reversed?(ca=0,lb=Ka):(ca=Ka,lb=0)):(Qa=
166
- n,ha=Math.abs(Mb-Ka),vb=n,ub=Math.abs(nb-Ka),lb=ca=0,f.reversed?(mb=p,tb=Ka):mb=Ka)}var La=Math.round;this.pmx=La(ca);this.pmy=La(tb);this.pmh=La(ha);this.pmw=La(Qa);this.nmx=La(lb);this.nmy=La(mb);this.nmh=La(ub);this.nmw=La(vb);d.isModern||(this.nmy=this.nmx=0,this.nmh=this.height);this.clustered||(r=1);k="column"==h?(Y*k-V*(r-1))/r:Y*k;1>k&&(k=1);var Nb=this.fixedColumnWidth;isNaN(Nb)||(k=Nb);var L;if("line"==h||"step"==h||"smoothedLine"==h){if(0<P){for(L=P-1;-1<L;L--)if(G=e[L],v=G.axes[f.id].graphs[b],
167
- oa=v.values.value,!isNaN(oa)){P=L;break}if(this.lineColorField)for(L=P;-1<L;L--)if(G=e[L],v=G.axes[f.id].graphs[b],v.lineColor){this.lineColorSwitched=v.lineColor;void 0===this.bulletColor&&(this.bulletColorSwitched=this.lineColorSwitched);break}if(this.fillColorsField)for(L=P;-1<L;L--)if(G=e[L],v=G.axes[f.id].graphs[b],v.fillColors){this.fillColorsSwitched=v.fillColors;break}if(this.dashLengthField)for(L=P;-1<L;L--)if(G=e[L],v=G.axes[f.id].graphs[b],!isNaN(v.dashLength)){this.dashLengthSwitched=
168
- v.dashLength;break}}if(ia<e.length-1)for(L=ia+1;L<e.length;L++)if(G=e[L],v=G.axes[f.id].graphs[b],oa=v.values.value,!isNaN(oa)){ia=L;break}}ia<e.length-1&&ia++;var T=[],U=[],Ma=!1;if("line"==h||"step"==h||"smoothedLine"==h)if(this.stackable&&"regular"==M||"100%"==M||this.fillToGraph)Ma=!0;var Ob=this.noStepRisers,db=-1E3,eb=-1E3,ob=this.minDistance,Sa=!0,Va=!1;for(L=P;L<=ia;L++){G=e[L];v=G.axes[f.id].graphs[b];v.index=L;var fb,Ta=NaN;if(m&&void 0==this.openField)for(var yb=L+1;yb<e.length&&(!e[yb]||
169
- !(fb=e[L+1].axes[f.id].graphs[b])||!fb.values||(Ta=fb.values.value,isNaN(Ta)));yb++);var S,R,K,ba,ja=NaN,E=NaN,F=NaN,O=NaN,N=NaN,qa=NaN,ra=NaN,sa=NaN,ta=NaN,ya=NaN,Ea=NaN,ka=NaN,la=NaN,W=NaN,zb=NaN,Ab=NaN,ua=NaN,va=void 0,Na=wb,Wa=bb,Ha=xa,Ca,za,Bb=this.proCandlesticks,pb=this.topRadius,Fa=q-1,pa=n-1,gb=this.pattern;void 0!=v.pattern&&(gb=v.pattern);isNaN(v.alpha)||(Wa=v.alpha);isNaN(v.dashLength)||(ea=v.dashLength);var Ia=v.values;f.recalculateToPercents&&(Ia=v.percents);"none"==M&&(Z=isNaN(v.columnIndex)?
170
- this.columnIndex:v.columnIndex);if(Ia){W=this.stackable&&"none"!=M&&"3d"!=M?Ia.close:Ia.value;if("candlestick"==h||"ohlc"==h)W=Ia.close,Ab=Ia.low,ra=f.getCoordinate(Ab),zb=Ia.high,ta=f.getCoordinate(zb);ua=Ia.open;F=f.getCoordinate(W,xb);isNaN(ua)||(N=f.getCoordinate(ua,xb),m&&"regular"!=M&&"100%"!=M&&(Ta=ua,ua=N=NaN));m&&(void 0==this.openField?fb&&(fb.isNegative=Ta<W?!0:!1,isNaN(Ta)&&(v.isNegative=!Sa)):v.isNegative=Ta>W?!0:!1);if(!J)switch(this.showBalloonAt){case "close":v.y=F;break;case "open":v.y=
171
- N;break;case "high":v.y=ta;break;case "low":v.y=ra}var ja=G.x[ma.id],Xa=this.periodSpan-1;"step"!=h||isNaN(G.cellWidth)||(Y=G.cellWidth);var wa=Math.floor(Y/2)+Math.floor(Xa*Y/2),Ga=wa,qb=0;"left"==this.stepDirection&&(qb=(2*Y+Xa*Y)/2,ja-=qb);"center"==this.stepDirection&&(qb=Y/2,ja-=qb);"start"==this.pointPosition&&(ja-=Y/2+Math.floor(Xa*Y/2),wa=0,Ga=Math.floor(Y)+Math.floor(Xa*Y));"end"==this.pointPosition&&(ja+=Y/2+Math.floor(Xa*Y/2),wa=Math.floor(Y)+Math.floor(Xa*Y),Ga=0);if(Ob){var Cb=this.columnWidth;
172
- isNaN(Cb)||(wa*=Cb,Ga*=Cb)}J||(v.x=ja);-1E5>ja&&(ja=-1E5);ja>n+1E5&&(ja=n+1E5);t?(E=F,O=N,N=F=ja,isNaN(ua)&&!this.fillToGraph&&(O=na),qa=ra,sa=ta):(O=E=ja,isNaN(ua)&&!this.fillToGraph&&(N=na));if(!Bb&&W<ua||Bb&&W<Ba)v.isNegative=!0,Ra&&(Na=Ra),cb&&(Wa=cb),void 0!=Ja&&(Ha=Ja);Va=!1;isNaN(W)||(m?W>Ta?(Sa&&(Va=!0),Sa=!1):(Sa||(Va=!0),Sa=!0):v.isNegative=W<Pa?!0:!1,Ba=W);var Pb=!1;J&&a.chartScrollbar.ignoreCustomColors&&(Pb=!0);Pb||(void 0!=v.color&&(Na=v.color),v.fillColors&&(Na=v.fillColors));F=d.fitToBounds(F,
173
- -3E4,3E4);switch(h){case "line":if(isNaN(W))z||(this.drawLineGraph(x,u,T,U),x=[],u=[],T=[],U=[]);else{if(Math.abs(E-db)>=ob||Math.abs(F-eb)>=ob)x.push(E),u.push(F),db=E,eb=F;ya=E;Ea=F;ka=E;la=F;!Ma||isNaN(N)||isNaN(O)||(T.push(O),U.push(N));if(Va||void 0!=v.lineColor&&v.lineColor!=this.lineColorSwitched||void 0!=v.fillColors&&v.fillColors!=this.fillColorsSwitched||!isNaN(v.dashLength))this.drawLineGraph(x,u,T,U),x=[E],u=[F],T=[],U=[],!Ma||isNaN(N)||isNaN(O)||(T.push(O),U.push(N)),m?(Sa?(this.lineColorSwitched=
174
- xa,this.fillColorsSwitched=wb):(this.lineColorSwitched=Ja,this.fillColorsSwitched=Ra),void 0===this.bulletColor&&(this.bulletColorSwitched=xa)):(this.lineColorSwitched=v.lineColor,this.fillColorsSwitched=v.fillColors,void 0===this.bulletColor&&(this.bulletColorSwitched=this.lineColorSwitched)),this.dashLengthSwitched=v.dashLength;v.gap&&(this.drawLineGraph(x,u,T,U),x=[],u=[],T=[],U=[],eb=db=-1E3)}break;case "smoothedLine":if(isNaN(W))z||(this.drawSmoothedGraph(x,u,T,U),x=[],u=[],T=[],U=[]);else{if(Math.abs(E-
175
- db)>=ob||Math.abs(F-eb)>=ob)x.push(E),u.push(F),db=E,eb=F;ya=E;Ea=F;ka=E;la=F;!Ma||isNaN(N)||isNaN(O)||(T.push(O),U.push(N));if(Va||void 0!=v.lineColor&&v.lineColor!=this.lineColorSwitched||void 0!=v.fillColors&&v.fillColors!=this.fillColorsSwitched||!isNaN(v.dashLength))this.drawSmoothedGraph(x,u,T,U),x=[E],u=[F],T=[],U=[],!Ma||isNaN(N)||isNaN(O)||(T.push(O),U.push(N)),this.lineColorSwitched=v.lineColor,this.fillColorsSwitched=v.fillColors,this.dashLengthSwitched=v.dashLength;v.gap&&(this.drawSmoothedGraph(x,
176
- u,T,U),x=[],u=[],T=[],U=[])}break;case "step":if(!isNaN(W)){t?(isNaN(A)||(x.push(A),u.push(F-wa)),u.push(F-wa),x.push(E),u.push(F+Ga),x.push(E),!Ma||isNaN(N)||isNaN(O)||(isNaN(B)||(T.push(B),U.push(N-wa)),T.push(O),U.push(N-wa),T.push(O),U.push(N+Ga))):(isNaN(y)||(u.push(y),x.push(E-wa)),x.push(E-wa),u.push(F),x.push(E+Ga),u.push(F),!Ma||isNaN(N)||isNaN(O)||(isNaN(D)||(T.push(O-wa),U.push(D)),T.push(O-wa),U.push(N),T.push(O+Ga),U.push(N)));A=E;y=F;B=O;D=N;ya=E;Ea=F;ka=E;la=F;if(Va||void 0!=v.lineColor||
177
- void 0!=v.fillColors||!isNaN(v.dashLength)){var Db=x[x.length-2],dc=u[u.length-2];x.pop();u.pop();T.pop();U.pop();this.drawLineGraph(x,u,T,U);x=[Db];u=[dc];T=[];U=[];Ma&&(T=[Db,Db+wa+Ga],U=[D,D]);t?(u.push(F+Ga),x.push(E)):(x.push(E+Ga),u.push(F));this.lineColorSwitched=v.lineColor;this.fillColorsSwitched=v.fillColors;this.dashLengthSwitched=v.dashLength;m&&(Sa?(this.lineColorSwitched=xa,this.fillColorsSwitched=wb):(this.lineColorSwitched=Ja,this.fillColorsSwitched=Ra))}if(Ob||v.gap)A=y=NaN,this.drawLineGraph(x,
178
- u,T,U),x=[],u=[],T=[],U=[]}else if(!z){if(1>=this.periodSpan||1<this.periodSpan&&E-A>wa+Ga)A=y=NaN;this.drawLineGraph(x,u,T,U);x=[];u=[];T=[];U=[]}break;case "column":Ca=Ha;void 0!=v.lineColor&&(Ca=v.lineColor);if(!isNaN(W)){m||(v.isNegative=W<Pa?!0:!1);v.isNegative&&(Ra&&(Na=Ra),void 0!=Ja&&(Ca=Ja));var Qb=f.min,Rb=f.max,rb=ua;isNaN(rb)&&(rb=Pa);if(!(W<Qb&&rb<Qb||W>Rb&&rb>Rb)){var Aa;if(t){"3d"==M?(R=F-(r/2-this.depthCount+1)*(k+V)+V/2+Q*Z,S=O+H*Z,Aa=Z):(R=Math.floor(F-(r/2-Z)*(k+V)+V/2),S=O,Aa=
179
- 0);K=k;ya=E;Ea=R+k/2;ka=E;la=R+k/2;R+K>q+Aa*Q&&(K=q-R+Aa*Q);R<Aa*Q&&(K+=R,R=Aa*Q);ba=E-O;var ec=S;S=d.fitToBounds(S,0,n);ba+=ec-S;ba=d.fitToBounds(ba,-S,n-S+H*Z);v.labelIsNegative=0>ba?!0:!1;0===ba&&1/W===1/-0&&(v.labelIsNegative=!0);isNaN(G.percentWidthValue)||(K=this.height*G.percentWidthValue/100,R=ja-K/2,Ea=R+K/2);K=d.roundTo(K,2);ba=d.roundTo(ba,2);R<q&&0<K&&(va=new d.Cuboid(g,ba,K,H-a.d3x,Q-a.d3y,Na,Wa,da,Ca,X,ga,w,t,ea,gb,pb,aa),v.columnWidth=Math.abs(ba),v.columnHeight=Math.abs(K))}else{"3d"==
180
- M?(S=E-(r/2-this.depthCount+1)*(k+V)+V/2+H*Z,R=N+Q*Z,Aa=Z):(S=E-(r/2-Z)*(k+V)+V/2,R=N,Aa=0);K=k;ya=S+k/2;Ea=F;ka=S+k/2;la=F;S+K>n+Aa*H&&(K=n-S+Aa*H);S<Aa*H&&(K+=S-Aa*H,S=Aa*H);ba=F-N;v.labelIsNegative=0<ba?!0:!1;0===ba&&1/W!==1/Math.abs(W)&&(v.labelIsNegative=!0);var fc=R;R=d.fitToBounds(R,this.dy,q);ba+=fc-R;ba=d.fitToBounds(ba,-R+Q*Aa,q-R);isNaN(G.percentWidthValue)||(K=this.width*G.percentWidthValue/100,S=ja-K/2,ya=S+K/2);K=d.roundTo(K,2);ba=d.roundTo(ba,2);S<n+Z*H&&0<K&&(this.showOnAxis&&(R-=
181
- Q/2),va=new d.Cuboid(g,K,ba,H-a.d3x,Q-a.d3y,Na,Wa,da,Ca,this.lineAlpha,ga,w,t,ea,gb,pb,aa),v.columnHeight=Math.abs(ba),v.columnWidth=Math.abs(K))}}if(va){za=va.set;d.setCN(a,va.set,"graph-"+this.type);d.setCN(a,va.set,"graph-"+this.id);v.className&&d.setCN(a,va.set,v.className,!0);v.columnGraphics=za;S=d.roundTo(S,2);R=d.roundTo(R,2);za.translate(S,R);(v.url||this.showHandOnHover)&&za.setAttr("cursor","pointer");if(!J){"none"==M&&(I=t?(this.end+1-L)*C-c:C*L+c);"3d"==M&&(t?(I=(this.end+1-L)*C-c-1E3*
182
- this.depthCount,ya+=H*Z,ka+=H*Z,v.y+=H*Z):(I=(C-c)*(L+1)+1E3*this.depthCount,Ea+=Q*Z,la+=Q*Z,v.y+=Q*Z));if("regular"==M||"100%"==M)I=t?0<Ia.value?(this.end+1-L)*C+c:(this.end+1-L)*C-c:0<Ia.value?C*L+c:C*L-c;this.columnsArray.push({column:va,depth:I});v.x=t?R+K/2:S+K/2;this.ownColumns.push(va);this.animateColumns(va,L,E,O,F,N);this.addListeners(za,v);void 0!==this.tabIndex&&za.setAttr("tabindex",this.tabIndex)}this.columnsSet.push(za)}}break;case "candlestick":if(!isNaN(ua)&&!isNaN(W)){var Ya,hb;Ca=
183
- Ha;void 0!=v.lineColor&&(Ca=v.lineColor);ya=E;la=Ea=F;ka=E;if(t){"open"==l&&(ka=O);"high"==l&&(ka=sa);"low"==l&&(ka=qa);E=d.fitToBounds(E,0,pa);O=d.fitToBounds(O,0,pa);qa=d.fitToBounds(qa,0,pa);sa=d.fitToBounds(sa,0,pa);if(0===E&&0===O&&0===qa&&0===sa)continue;if(E==pa&&O==pa&&qa==pa&&sa==pa)continue;R=F-k/2;S=O;K=k;R+K>q&&(K=q-R);0>R&&(K+=R,R=0);if(R<q&&0<K){var Eb,Fb;W>ua?(Eb=[E,sa],Fb=[O,qa]):(Eb=[O,sa],Fb=[E,qa]);!isNaN(sa)&&!isNaN(qa)&&F<q&&0<F&&(Ya=d.line(g,Eb,[F,F],Ca,X,da),hb=d.line(g,Fb,
184
- [F,F],Ca,X,da));ba=E-O;va=new d.Cuboid(g,ba,K,H,Q,Na,bb,da,Ca,X,ga,w,t,ea,gb,pb,aa)}}else{"open"==l&&(la=N);"high"==l&&(la=ta);"low"==l&&(la=ra);F=d.fitToBounds(F,0,Fa);N=d.fitToBounds(N,0,Fa);ra=d.fitToBounds(ra,0,Fa);ta=d.fitToBounds(ta,0,Fa);if(0===F&&0===N&&0===ra&&0===ta)continue;if(F==Fa&&N==Fa&&ra==Fa&&ta==Fa)continue;S=E-k/2;R=N+da/2;K=k;S+K>n&&(K=n-S);0>S&&(K+=S,S=0);ba=F-N;if(S<n&&0<K){Bb&&W>=ua&&(Wa=0);var va=new d.Cuboid(g,K,ba,H,Q,Na,Wa,da,Ca,X,ga,w,t,ea,gb,pb,aa),Gb,Hb;W>ua?(Gb=[F,ta],
185
- Hb=[N,ra]):(Gb=[N,ta],Hb=[F,ra]);!isNaN(ta)&&!isNaN(ra)&&E<n&&0<E&&(Ya=d.line(g,[E,E],Gb,Ca,X,da),hb=d.line(g,[E,E],Hb,Ca,X,da),d.setCN(a,Ya,this.bcn+"line-high"),v.className&&d.setCN(a,Ya,v.className,!0),d.setCN(a,hb,this.bcn+"line-low"),v.className&&d.setCN(a,hb,v.className,!0))}}va&&(za=va.set,v.columnGraphics=za,fa.push(za),za.translate(S,R-da/2),(v.url||this.showHandOnHover)&&za.setAttr("cursor","pointer"),Ya&&(fa.push(Ya),fa.push(hb)),J||(v.x=t?R+K/2:S+K/2,this.animateColumns(va,L,E,O,F,N),
186
- this.addListeners(za,v),void 0!==this.tabIndex&&za.setAttr("tabindex",this.tabIndex)))}break;case "ohlc":if(!(isNaN(ua)||isNaN(zb)||isNaN(Ab)||isNaN(W))){var Sb=g.set();fa.push(Sb);W<ua&&(v.isNegative=!0,void 0!=Ja&&(Ha=Ja));void 0!=v.lineColor&&(Ha=v.lineColor);var Za,$a,ab;if(t){la=F;ka=E;"open"==l&&(ka=O);"high"==l&&(ka=sa);"low"==l&&(ka=qa);qa=d.fitToBounds(qa,0,pa);sa=d.fitToBounds(sa,0,pa);if(0===E&&0===O&&0===qa&&0===sa)continue;if(E==pa&&O==pa&&qa==pa&&sa==pa)continue;var Ib=F-k/2,Ib=d.fitToBounds(Ib,
187
- 0,q),Tb=d.fitToBounds(F,0,q),Jb=F+k/2,Jb=d.fitToBounds(Jb,0,q);0<=O&&O<=pa&&($a=d.line(g,[O,O],[Ib,Tb],Ha,X,da,ea));0<F&&F<q&&(Za=d.line(g,[qa,sa],[F,F],Ha,X,da,ea));0<=E&&E<=pa&&(ab=d.line(g,[E,E],[Tb,Jb],Ha,X,da,ea))}else{la=F;"open"==l&&(la=N);"high"==l&&(la=ta);"low"==l&&(la=ra);var ka=E,ra=d.fitToBounds(ra,0,Fa),ta=d.fitToBounds(ta,0,Fa),Kb=E-k/2,Kb=d.fitToBounds(Kb,0,n),Ub=d.fitToBounds(E,0,n),Lb=E+k/2,Lb=d.fitToBounds(Lb,0,n);0<=N&&N<=Fa&&($a=d.line(g,[Kb,Ub],[N,N],Ha,X,da,ea));0<E&&E<n&&(Za=
188
- d.line(g,[E,E],[ra,ta],Ha,X,da,ea));0<=F&&F<=Fa&&(ab=d.line(g,[Ub,Lb],[F,F],Ha,X,da,ea))}fa.push($a);fa.push(Za);fa.push(ab);d.setCN(a,$a,this.bcn+"stroke-open");d.setCN(a,ab,this.bcn+"stroke-close");d.setCN(a,Za,this.bcn+"stroke");v.className&&d.setCN(a,Sb,v.className,!0);Za&&this.addListeners(Za,v);ab&&this.addListeners(ab,v);$a&&this.addListeners($a,v);ya=E;Ea=F}}if(!J&&!isNaN(W)){var Vb=this.hideBulletsCount;if(this.end-this.start<=Vb||0===Vb){var Wb=this.createBullet(v,ka,la,L),Xb=this.labelText;
189
- if(Xb&&!isNaN(ya)&&!isNaN(ya)){var gc=this.createLabel(v,Xb),Yb=0;Wb&&(Yb=Wb.size);this.positionLabel(v,ya,Ea,gc,Yb)}if("regular"==M||"100%"==M){var Zb=f.totalText;if(Zb){var Oa=this.createLabel(v,Zb,f.totalTextColor);d.setCN(a,Oa,this.bcn+"label-total");this.allBullets.push(Oa);if(Oa){var $b=Oa.getBBox(),ac=$b.width,bc=$b.height,ib,jb,sb=f.totalTextOffset,cc=f.totals[L];cc&&cc.remove();var kb=0;"column"!=h&&(kb=this.bulletSize);t?(jb=Ea,ib=0>W?E-ac/2-2-kb-sb:E+ac/2+3+kb+sb):(ib=ya,jb=0>W?F+bc/2+
190
- kb+sb:F-bc/2-3-kb-sb);Oa.translate(ib,jb);f.totals[L]=Oa;t?(0>jb||jb>q)&&Oa.remove():(0>ib||ib>n)&&Oa.remove()}}}}}}}this.lastDataItem=v;if("line"==h||"step"==h||"smoothedLine"==h)"smoothedLine"==h?this.drawSmoothedGraph(x,u,T,U):this.drawLineGraph(x,u,T,U),J||this.launchAnimation();this.bulletsHidden&&this.hideBullets();this.customBulletsHidden&&this.hideCustomBullets()},animateColumns:function(a,b){var c=this,e=c.chart.startDuration;0<e&&!c.animationPlayed&&(c.seqAn?(a.set.hide(),c.animationArray.push(a),
191
- e=setTimeout(function(){c.animate.call(c)},e/(c.end-c.start+1)*(b-c.start)*1E3),c.timeOuts.push(e)):c.animate(a),c.chart.animatable.push(a))},createLabel:function(a,b,c){var e=this.chart,g=a.labelColor;g||(g=this.color);g||(g=e.color);c&&(g=c);c=this.fontSize;void 0===c&&(this.fontSize=c=e.fontSize);var f=this.labelFunction;b=e.formatString(b,a);b=d.cleanFromEmpty(b);f&&(b=f(a,b));if(void 0!==b&&""!==b)return a=d.text(this.container,b,g,e.fontFamily,c),a.node.style.pointerEvents="none",d.setCN(e,
192
- a,this.bcn+"label"),this.bulletSet.push(a),a},positiveClip:function(a){a.clipRect(this.pmx,this.pmy,this.pmw,this.pmh)},negativeClip:function(a){a.clipRect(this.nmx,this.nmy,this.nmw,this.nmh)},drawLineGraph:function(a,b,c,e){var g=this;if(1<a.length){var f=g.noRounding,h=g.set,k=g.chart,l=g.container,m=l.set(),n=l.set();h.push(n);h.push(m);var q=g.lineAlpha,p=g.lineThickness,h=g.fillAlphas,t=g.lineColorR,r=g.negativeLineAlpha;isNaN(r)&&(r=q);var w=g.lineColorSwitched;w&&(t=w);var w=g.fillColorsR,
193
- z=g.fillColorsSwitched;z&&(w=z);var x=g.dashLength;(z=g.dashLengthSwitched)&&(x=z);var z=g.negativeLineColor,u=g.negativeFillColors,A=g.negativeFillAlphas,y=g.baseCoord;0!==g.negativeBase&&(y=g.valueAxis.getCoordinate(g.negativeBase,f),y>g.height&&(y=g.height),0>y&&(y=0));q=d.line(l,a,b,t,q,p,x,!1,!1,f);q.node.setAttribute("stroke-linejoin","round");d.setCN(k,q,g.bcn+"stroke");m.push(q);m.click(function(a){g.handleGraphEvent(a,"clickGraph")}).mouseover(function(a){g.handleGraphEvent(a,"rollOverGraph")}).mouseout(function(a){g.handleGraphEvent(a,
194
- "rollOutGraph")}).touchmove(function(a){g.chart.handleMouseMove(a)}).touchend(function(a){g.chart.handleTouchEnd(a)});void 0===z||g.useNegativeColorIfDown||(p=d.line(l,a,b,z,r,p,x,!1,!1,f),p.node.setAttribute("stroke-linejoin","round"),d.setCN(k,p,g.bcn+"stroke"),d.setCN(k,p,g.bcn+"stroke-negative"),n.push(p));if(0<h||0<A)if(p=a.join(";").split(";"),r=b.join(";").split(";"),q=k.type,"serial"==q||"radar"==q?0<c.length?(c.reverse(),e.reverse(),p=a.concat(c),r=b.concat(e)):"radar"==q?(r.push(0),p.push(0)):
195
- g.rotate?(r.push(r[r.length-1]),p.push(y),r.push(r[0]),p.push(y),r.push(r[0]),p.push(p[0])):(p.push(p[p.length-1]),r.push(y),p.push(p[0]),r.push(y),p.push(a[0]),r.push(r[0])):"xy"==q&&(b=g.fillToAxis)&&(d.isString(b)&&(b=k.getValueAxisById(b)),"H"==b.orientation?(y="top"==b.position?0:b.height,p.push(p[p.length-1]),r.push(y),p.push(p[0]),r.push(y),p.push(a[0]),r.push(r[0])):(y="left"==b.position?0:b.width,r.push(r[r.length-1]),p.push(y),r.push(r[0]),p.push(y),r.push(r[0]),p.push(p[0]))),a=g.gradientRotation,
196
- 0<h&&(b=d.polygon(l,p,r,w,h,1,"#000",0,a,f),b.pattern(g.pattern,NaN,k.path),d.setCN(k,b,g.bcn+"fill"),m.push(b)),u||void 0!==z)isNaN(A)&&(A=h),u||(u=z),f=d.polygon(l,p,r,u,A,1,"#000",0,a,f),d.setCN(k,f,g.bcn+"fill"),d.setCN(k,f,g.bcn+"fill-negative"),f.pattern(g.pattern,NaN,k.path),n.push(f),n.click(function(a){g.handleGraphEvent(a,"clickGraph")}).mouseover(function(a){g.handleGraphEvent(a,"rollOverGraph")}).mouseout(function(a){g.handleGraphEvent(a,"rollOutGraph")}).touchmove(function(a){g.chart.handleMouseMove(a)}).touchend(function(a){g.chart.handleTouchEnd(a)});
197
- g.applyMask(n,m)}},applyMask:function(a,b){var c=a.length();"serial"!=this.chart.type||this.scrollbar||(this.positiveClip(b),0<c&&this.negativeClip(a))},drawSmoothedGraph:function(a,b,c,e){if(1<a.length){var g=this.set,f=this.chart,h=this.container,k=h.set(),l=h.set();g.push(l);g.push(k);var m=this.lineAlpha,n=this.lineThickness,g=this.dashLength,q=this.fillAlphas,p=this.lineColorR,t=this.fillColorsR,r=this.negativeLineColor,w=this.negativeFillColors,z=this.negativeFillAlphas,x=this.baseCoord,u=this.lineColorSwitched;
198
- u&&(p=u);(u=this.fillColorsSwitched)&&(t=u);var A=this.negativeLineAlpha;isNaN(A)&&(A=m);u=this.getGradRotation();m=new d.Bezier(h,a,b,p,m,n,t,0,g,void 0,u);d.setCN(f,m,this.bcn+"stroke");k.push(m.path);void 0!==r&&(n=new d.Bezier(h,a,b,r,A,n,t,0,g,void 0,u),d.setCN(f,n,this.bcn+"stroke"),d.setCN(f,n,this.bcn+"stroke-negative"),l.push(n.path));0<q&&(n=a.join(";").split(";"),m=b.join(";").split(";"),p="",0<c.length?(c.push("M"),e.push("M"),c.reverse(),e.reverse(),n=a.concat(c),m=b.concat(e)):(this.rotate?
199
- (p+=" L"+x+","+b[b.length-1],p+=" L"+x+","+b[0]):(p+=" L"+a[a.length-1]+","+x,p+=" L"+a[0]+","+x),p+=" L"+a[0]+","+b[0]),a=new d.Bezier(h,n,m,NaN,0,0,t,q,g,p,u),d.setCN(f,a,this.bcn+"fill"),a.path.pattern(this.pattern,NaN,f.path),k.push(a.path),w||void 0!==r)&&(z||(z=q),w||(w=r),h=new d.Bezier(h,n,m,NaN,0,0,w,z,g,p,u),h.path.pattern(this.pattern,NaN,f.path),d.setCN(f,h,this.bcn+"fill"),d.setCN(f,h,this.bcn+"fill-negative"),l.push(h.path));this.applyMask(l,k)}},launchAnimation:function(){var a=this,
200
- b=a.chart.startDuration;if(0<b&&!a.animationPlayed){var c=a.set,e=a.bulletSet;d.VML||(c.attr({opacity:a.startAlpha}),e.attr({opacity:a.startAlpha}));c.hide();e.hide();a.seqAn?(b=setTimeout(function(){a.animateGraphs.call(a)},a.index*b*1E3),a.timeOuts.push(b)):a.animateGraphs()}},animateGraphs:function(){var a=this.chart,b=this.set,c=this.bulletSet,e=this.x,d=this.y;b.show();c.show();var f=a.startDuration,h=a.startEffect;b&&(this.rotate?(b.translate(-1E3,d),c.translate(-1E3,d)):(b.translate(e,-1E3),
201
- c.translate(e,-1E3)),b.animate({opacity:1,translate:e+","+d},f,h),c.animate({opacity:1,translate:e+","+d},f,h),a.animatable.push(b))},animate:function(a){var b=this.chart,c=this.animationArray;!a&&0<c.length&&(a=c[0],c.shift());c=d[d.getEffect(b.startEffect)];b=b.startDuration;a&&(this.rotate?a.animateWidth(b,c):a.animateHeight(b,c),a.set.show())},legendKeyColor:function(){var a=this.legendColor,b=this.lineAlpha;void 0===a&&(a=this.lineColorR,0===b&&(b=this.fillColorsR)&&(a="object"==typeof b?b[0]:
202
- b));return a},legendKeyAlpha:function(){var a=this.legendAlpha;void 0===a&&(a=this.lineAlpha,this.fillAlphas>a&&(a=this.fillAlphas),0===a&&(a=this.bulletAlpha),0===a&&(a=1));return a},createBullet:function(a,b,c){if(!isNaN(b)&&!isNaN(c)&&("none"!=this.bullet||this.customBullet||a.bullet||a.customBullet)){var e=this.chart,g=this.container,f=this.bulletOffset,h=this.bulletSize;isNaN(a.bulletSize)||(h=a.bulletSize);var k=a.values.value,l=this.maxValue,m=this.minValue,n=this.maxBulletSize,q=this.minBulletSize;
203
- isNaN(l)||(isNaN(k)||(h=(k-m)/(l-m)*(n-q)+q),m==l&&(h=n));l=h;this.bulletAxis&&(h=a.values.error,isNaN(h)||(k=h),h=this.bulletAxis.stepWidth*k);h<this.minBulletSize&&(h=this.minBulletSize);this.rotate?b=a.isNegative?b-f:b+f:c=a.isNegative?c+f:c-f;q=this.bulletColorR;a.lineColor&&void 0===this.bulletColor&&(this.bulletColorSwitched=a.lineColor);this.bulletColorSwitched&&(q=this.bulletColorSwitched);a.isNegative&&void 0!==this.bulletColorNegative&&(q=this.bulletColorNegative);void 0!==a.color&&(q=a.color);
204
- var p;"xy"==e.type&&this.valueField&&(p=this.pattern,a.pattern&&(p=a.pattern));f=this.bullet;a.bullet&&(f=a.bullet);var k=this.bulletBorderThickness,m=this.bulletBorderColorR,n=this.bulletBorderAlpha,t=this.bulletAlpha;m||(m=q);this.useLineColorForBulletBorder&&(m=this.lineColorR,a.isNegative&&this.negativeLineColor&&(m=this.negativeLineColor),this.lineColorSwitched&&(m=this.lineColorSwitched));var r=a.alpha;isNaN(r)||(t=r);p=d.bullet(g,f,h,q,t,k,m,n,l,0,p,e.path);l=this.customBullet;a.customBullet&&
205
- (l=a.customBullet);l&&(p&&p.remove(),"function"==typeof l?(l=new l,l.chart=e,a.bulletConfig&&(l.availableSpace=c,l.graph=this,l.graphDataItem=a,l.bulletY=c,a.bulletConfig.minCoord=this.minCoord-c,l.bulletConfig=a.bulletConfig),l.write(g),p&&l.showBullet&&l.set.push(p),a.customBulletGraphics=l.cset,p=l.set):(p=g.set(),l=g.image(l,0,0,h,h),p.push(l),this.centerCustomBullets&&l.translate(-h/2,-h/2)));if(p){(a.url||this.showHandOnHover)&&p.setAttr("cursor","pointer");if("serial"==e.type||"gantt"==e.type)if(-.5>
206
- b||b>this.width||c<-h/2||c>this.height)p.remove(),p=null;p&&(this.bulletSet.push(p),p.translate(b,c),this.addListeners(p,a),this.allBullets.push(p));a.bx=b;a.by=c;d.setCN(e,p,this.bcn+"bullet");a.className&&d.setCN(e,p,a.className,!0)}if(p){p.size=h||0;if(e=this.bulletHitAreaSize)g=d.circle(g,e,"#FFFFFF",.001,0),g.translate(b,c),a.hitBullet=g,this.bulletSet.push(g),this.addListeners(g,a);a.bulletGraphics=p;void 0!==this.tabIndex&&p.setAttr("tabindex",this.tabIndex)}else p={size:0};p.graphDataItem=
207
- a;return p}},showBullets:function(){var a=this.allBullets,b;this.bulletsHidden=!1;for(b=0;b<a.length;b++)a[b].show()},hideBullets:function(){var a=this.allBullets,b;this.bulletsHidden=!0;for(b=0;b<a.length;b++)a[b].hide()},showCustomBullets:function(){var a=this.allBullets,b;this.customBulletsHidden=!1;for(b=0;b<a.length;b++){var c=a[b].graphDataItem;c&&c.customBulletGraphics&&c.customBulletGraphics.show()}},hideCustomBullets:function(){var a=this.allBullets,b;this.customBulletsHidden=!0;for(b=0;b<
208
- a.length;b++){var c=a[b].graphDataItem;c&&c.customBulletGraphics&&c.customBulletGraphics.hide()}},addListeners:function(a,b){var c=this;a.mouseover(function(a){c.handleRollOver(b,a)}).mouseout(function(a){c.handleRollOut(b,a)}).touchend(function(a){c.handleRollOver(b,a);c.chart.panEventsEnabled&&c.handleClick(b,a)}).touchstart(function(a){c.handleRollOver(b,a)}).click(function(a){c.handleClick(b,a)}).dblclick(function(a){c.handleDoubleClick(b,a)}).contextmenu(function(a){c.handleRightClick(b,a)});
209
- var e=c.chart;if(e.accessible&&c.accessibleLabel){var d=e.formatString(c.accessibleLabel,b);e.makeAccessible(a,d)}},handleRollOver:function(a,b){this.handleGraphEvent(b,"rollOverGraph");if(a){var c=this.chart;a.bulletConfig&&(c.isRolledOverBullet=!0);var e={type:"rollOverGraphItem",item:a,index:a.index,graph:this,target:this,chart:this.chart,event:b};this.fire(e);c.fire(e);clearTimeout(c.hoverInt);(c=c.chartCursor)&&c.valueBalloonsEnabled||this.showGraphBalloon(a,"V",!0)}},handleRollOut:function(a,
210
- b){var c=this.chart;if(a){var e={type:"rollOutGraphItem",item:a,index:a.index,graph:this,target:this,chart:this.chart,event:b};this.fire(e);c.fire(e);c.isRolledOverBullet=!1}this.handleGraphEvent(b,"rollOutGraph");(c=c.chartCursor)&&c.valueBalloonsEnabled||this.hideBalloon()},handleClick:function(a,b){if(!this.chart.checkTouchMoved()&&this.chart.checkTouchDuration(b)){if(a){var c={type:"clickGraphItem",item:a,index:a.index,graph:this,target:this,chart:this.chart,event:b};this.fire(c);this.chart.fire(c);
211
- d.getURL(a.url,this.urlTarget)}this.handleGraphEvent(b,"clickGraph")}},handleGraphEvent:function(a,b){var c={type:b,graph:this,target:this,chart:this.chart,event:a};this.fire(c);this.chart.fire(c)},handleRightClick:function(a,b){if(a){var c={type:"rightClickGraphItem",item:a,index:a.index,graph:this,target:this,chart:this.chart,event:b};this.fire(c);this.chart.fire(c)}},handleDoubleClick:function(a,b){if(a){var c={type:"doubleClickGraphItem",item:a,index:a.index,graph:this,target:this,chart:this.chart,
212
- event:b};this.fire(c);this.chart.fire(c)}},zoom:function(a,b){this.start=a;this.end=b;this.draw()},changeOpacity:function(a){var b=this.set;b&&b.setAttr("opacity",a);if(b=this.ownColumns){var c;for(c=0;c<b.length;c++){var e=b[c].set;e&&e.setAttr("opacity",a)}}(b=this.bulletSet)&&b.setAttr("opacity",a)},destroy:function(){d.remove(this.set);d.remove(this.bulletSet);var a=this.timeOuts;if(a){var b;for(b=0;b<a.length;b++)clearTimeout(a[b])}this.timeOuts=[]},createBalloon:function(){var a=this.chart;
213
- this.balloon?this.balloon.destroy&&this.balloon.destroy():this.balloon={};var b=this.balloon;d.extend(b,a.balloon,!0);b.chart=a;b.mainSet=a.plotBalloonsSet;b.className=this.id},hideBalloon:function(){var a=this,b=a.chart;b.chartCursor?b.chartCursor.valueBalloonsEnabled||b.hideBalloon():b.hideBalloon();clearTimeout(a.hoverInt);a.hoverInt=setTimeout(function(){a.hideBalloonReal.call(a)},b.hideBalloonTime)},hideBalloonReal:function(){this.balloon&&this.balloon.hide();this.fixBulletSize()},fixBulletSize:function(){if(d.isModern){var a=
214
- this.resizedDItem;if(a){var b=a.bulletGraphics;if(b&&!b.doNotScale){b.translate(a.bx,a.by,1);var c=this.bulletAlpha;isNaN(a.alpha)||(c=a.alpha);b.setAttr("fill-opacity",c);b.setAttr("stroke-opacity",this.bulletBorderAlpha)}}this.resizedDItem=null}},showGraphBalloon:function(a,b,c,e,g){if(a){var f=this.chart,h=this.balloon,k=0,l=0,m=f.chartCursor,n=!0;m?m.valueBalloonsEnabled||(h=f.balloon,k=this.x,l=this.y,n=!1):(h=f.balloon,k=this.x,l=this.y,n=!1);clearTimeout(this.hoverInt);if(f.chartCursor&&(this.currentDataItem=
215
- a,"serial"==f.type&&f.isRolledOverBullet&&f.chartCursor.valueBalloonsEnabled)){this.hideBalloonReal();return}this.resizeBullet(a,e,g);if(h&&h.enabled&&this.showBalloon&&!this.hidden){var m=f.formatString(this.balloonText,a,!0),q=this.balloonFunction;q&&(m=q(a,a.graph));m&&(m=d.cleanFromEmpty(m));m&&""!==m?(e=f.getBalloonColor(this,a),h.drop||(h.pointerOrientation=b),b=a.x,g=a.y,f.rotate&&(b=a.y,g=a.x),b+=k,g+=l,isNaN(b)||isNaN(g)?this.hideBalloonReal():(a=this.width,q=this.height,n&&h.setBounds(k,
216
- l,a+k,q+l),h.changeColor(e),h.setPosition(b,g),h.fixPrevious(),h.fixedPosition&&(c=!1),!c&&"radar"!=f.type&&(b<k-.5||b>a+k||g<l-.5||g>q+l)?(h.showBalloon(m),h.hide(0)):(h.followCursor(c),h.showBalloon(m)))):(this.hideBalloonReal(),h.hide(),this.resizeBullet(a,e,g))}else this.hideBalloonReal()}},resizeBullet:function(a,b,c){this.fixBulletSize();if(a&&d.isModern&&(1!=b||!isNaN(c))){var e=a.bulletGraphics;e&&!e.doNotScale&&(e.translate(a.bx,a.by,b),isNaN(c)||(e.setAttr("fill-opacity",c),e.setAttr("stroke-opacity",
217
- c)),this.resizedDItem=a)}}})})();(function(){var d=window.AmCharts;d.ChartCursor=d.Class({construct:function(a){this.cname="ChartCursor";this.createEvents("changed","zoomed","onHideCursor","onShowCursor","draw","selected","moved","panning","zoomStarted");this.enabled=!0;this.cursorAlpha=1;this.selectionAlpha=.2;this.cursorColor="#CC0000";this.categoryBalloonAlpha=1;this.color="#FFFFFF";this.type="cursor";this.zoomed=!1;this.zoomable=!0;this.pan=!1;this.categoryBalloonDateFormat="MMM DD, YYYY";this.categoryBalloonText="[[category]]";
218
- this.categoryBalloonEnabled=this.valueBalloonsEnabled=!0;this.rolledOver=!1;this.cursorPosition="middle";this.bulletsEnabled=this.skipZoomDispatch=!1;this.bulletSize=8;this.selectWithoutZooming=this.oneBalloonOnly=!1;this.graphBulletSize=1.7;this.animationDuration=.3;this.zooming=!1;this.adjustment=0;this.avoidBalloonOverlapping=!0;this.leaveCursor=!1;this.leaveAfterTouch=!0;this.valueZoomable=!1;this.balloonPointerOrientation="horizontal";this.hLineEnabled=this.vLineEnabled=!0;this.vZoomEnabled=
219
- this.hZoomEnabled=!1;d.applyTheme(this,a,this.cname)},draw:function(){this.destroy();var a=this.chart;a.panRequired=!0;var b=a.container;this.rotate=a.rotate;this.container=b;this.prevLineHeight=this.prevLineWidth=NaN;b=b.set();b.translate(this.x,this.y);this.set=b;a.cursorSet.push(b);this.createElements();d.isString(this.limitToGraph)&&(this.limitToGraph=d.getObjById(a.graphs,this.limitToGraph),this.fullWidth=!1,this.cursorPosition="middle");this.pointer=this.balloonPointerOrientation.substr(0,1).toUpperCase();
220
- this.isHidden=!1;this.hideLines();this.valueLineAxis||(this.valueLineAxis=a.valueAxes[0])},createElements:function(){var a=this,b=a.chart,c=b.dx,e=b.dy,g=a.width,f=a.height,h,k,l=a.cursorAlpha,m=a.valueLineAlpha;a.rotate?(h=m,k=l):(k=m,h=l);"xy"==b.type&&(k=l,void 0!==m&&(k=m),h=l);a.vvLine=d.line(a.container,[c,0,0],[e,0,f],a.cursorColor,h,1);d.setCN(b,a.vvLine,"cursor-line");d.setCN(b,a.vvLine,"cursor-line-vertical");a.hhLine=d.line(a.container,[0,g,g+c],[0,0,e],a.cursorColor,k,1);d.setCN(b,a.hhLine,
221
- "cursor-line");d.setCN(b,a.hhLine,"cursor-line-horizontal");a.vLine=a.rotate?a.vvLine:a.hhLine;a.set.push(a.vvLine);a.set.push(a.hhLine);a.set.node.style.pointerEvents="none";a.fullLines=a.container.set();b=b.cursorLineSet;b.push(a.fullLines);b.translate(a.x,a.y);b.clipRect(-1,-1,g+2,f+2);void 0!==a.tabIndex&&(b.setAttr("tabindex",a.tabIndex),b.keyup(function(b){a.handleKeys(b)}).focus(function(b){a.showCursor()}).blur(function(b){a.hideCursor()}));a.set.clipRect(0,0,g,f)},handleKeys:function(a){var b=
222
- this.prevIndex,c=this.chart;if(c){var e=c.chartData;e&&(isNaN(b)&&(b=e.length-1),37!=a.keyCode&&40!=a.keyCode||b--,39!=a.keyCode&&38!=a.keyCode||b++,b=d.fitToBounds(b,c.startIndex,c.endIndex),(a=this.chart.chartData[b])&&this.setPosition(a.x.categoryAxis),this.prevIndex=b)}},update:function(){var a=this.chart;if(a){var b=a.mouseX-this.x,c=a.mouseY-this.y;this.mouseX=b;this.mouseY=c;this.mouse2X=a.mouse2X-this.x;this.mouse2Y=a.mouse2Y-this.y;var e;if(a.chartData&&0<a.chartData.length){this.mouseIsOver()?
223
- (this.hideGraphBalloons=!1,this.rolledOver=e=!0,this.updateDrawing(),this.vvLine&&isNaN(this.fx)&&(a.rotate||!this.limitToGraph)&&this.vvLine.translate(b,0),!this.hhLine||!isNaN(this.fy)||a.rotate&&this.limitToGraph||this.hhLine.translate(0,c),isNaN(this.mouse2X)?this.dispatchMovedEvent(b,c):e=!1):this.forceShow||this.hideCursor();if(this.zooming){if(!isNaN(this.mouse2X)){isNaN(this.mouse2X0)||this.dispatchPanEvent();return}if(this.pan){this.dispatchPanEvent();return}(this.hZoomEnabled||this.vZoomEnabled)&&
224
- this.zooming&&this.updateSelection()}e&&this.showCursor()}}},updateDrawing:function(){this.drawing&&this.chart.setMouseCursor("crosshair");if(this.drawingNow&&(d.remove(this.drawingLine),1<Math.abs(this.drawStartX-this.mouseX)||1<Math.abs(this.drawStartY-this.mouseY))){var a=this.chart,b=a.marginTop,a=a.marginLeft;this.drawingLine=d.line(this.container,[this.drawStartX+a,this.mouseX+a],[this.drawStartY+b,this.mouseY+b],this.cursorColor,1,1)}},fixWidth:function(a){if(this.fullWidth&&this.prevLineWidth!=
225
- a){var b=this.vvLine,c=0;b&&(b.remove(),c=b.x);b=this.container.set();b.translate(c,0);c=d.rect(this.container,a,this.height,this.cursorColor,this.cursorAlpha,this.cursorAlpha,this.cursorColor);d.setCN(this.chart,c,"cursor-fill");c.translate(-a/2-1,0);b.push(c);this.vvLine=b;this.fullLines.push(b);this.prevLineWidth=a}},fixHeight:function(a){if(this.fullWidth&&this.prevLineHeight!=a){var b=this.hhLine,c=0;b&&(b.remove(),c=b.y);b=this.container.set();b.translate(0,c);c=d.rect(this.container,this.width,
226
- a,this.cursorColor,this.cursorAlpha);c.translate(0,-a/2);b.push(c);this.fullLines.push(b);this.hhLine=b;this.prevLineHeight=a}},fixVLine:function(a,b){if(!isNaN(a)){if(isNaN(this.prevLineX)){var c=0,e=this.mouseX;if(this.limitToGraph){var d=this.chart.categoryAxis;d&&(this.chart.rotate||(c="bottom"==d.position?this.height:-this.height),e=a)}this.vvLine.translate(e,c)}else this.prevLineX!=a&&this.vvLine.translate(this.prevLineX,this.prevLineY);this.fx=a;this.prevLineX!=a&&(c=this.animationDuration,
227
- this.zooming&&(c=0),this.vvLine.stop(),this.vvLine.animate({translate:a+","+b},c,"easeOutSine"),this.prevLineX=a,this.prevLineY=b)}},fixHLine:function(a,b){if(!isNaN(a)){if(isNaN(this.prevLineY)){var c=0,e=this.mouseY;if(this.limitToGraph){var d=this.chart.categoryAxis;d&&(this.chart.rotate&&(c="right"==d.position?this.width:-this.width),e=a)}this.hhLine.translate(c,e)}else this.prevLineY!=a&&this.hhLine.translate(this.prevLineX,this.prevLineY);this.fy=a;this.prevLineY!=a&&(c=this.animationDuration,
228
- this.zooming&&(c=0),this.hhLine.stop(),this.hhLine.animate({translate:b+","+a},c,"easeOutSine"),this.prevLineY=a,this.prevLineX=b)}},hideCursor:function(a){this.forceShow=!1;this.chart.wasTouched&&this.leaveAfterTouch||this.isHidden||this.leaveCursor||(this.hideCursorReal(),a?this.chart.handleCursorHide():this.fire({target:this,chart:this.chart,type:"onHideCursor"}),this.chart.setMouseCursor("auto"))},hideCursorReal:function(){this.hideLines();this.isHidden=!0;this.index=this.prevLineY=this.prevLineX=
229
- this.mouseY0=this.mouseX0=this.fy=this.fx=NaN},hideLines:function(){this.vvLine&&this.vvLine.hide();this.hhLine&&this.hhLine.hide();this.fullLines&&this.fullLines.hide();this.isHidden=!0;this.chart.handleCursorHide()},showCursor:function(a){!this.drawing&&this.enabled&&(this.vLineEnabled&&this.vvLine&&this.vvLine.show(),this.hLineEnabled&&this.hhLine&&this.hhLine.show(),this.isHidden=!1,this.updateFullLine(),a||this.fire({target:this,chart:this.chart,type:"onShowCursor"}),this.pan&&this.chart.setMouseCursor("move"))},
230
- updateFullLine:function(){this.zooming&&this.fullWidth&&this.selection&&(this.rotate?0<this.selection.height&&this.hhLine.hide():0<this.selection.width&&this.vvLine.hide())},updateSelection:function(){if(!this.pan&&this.enabled){var a=this.mouseX,b=this.mouseY;isNaN(this.fx)||(a=this.fx);isNaN(this.fy)||(b=this.fy);this.clearSelection();var c=this.mouseX0,e=this.mouseY0,g=this.width,f=this.height,a=d.fitToBounds(a,0,g),b=d.fitToBounds(b,0,f),h;a<c&&(h=a,a=c,c=h);b<e&&(h=b,b=e,e=h);this.hZoomEnabled?
231
- g=a-c:c=0;this.vZoomEnabled?f=b-e:e=0;isNaN(this.mouse2X)&&0<Math.abs(g)&&0<Math.abs(f)&&(a=this.chart,b=d.rect(this.container,g,f,this.cursorColor,this.selectionAlpha),d.setCN(a,b,"cursor-selection"),b.width=g,b.height=f,b.translate(c,e),this.set.push(b),this.selection=b);this.updateFullLine()}},mouseIsOver:function(){var a=this.mouseX,b=this.mouseY;if(this.justReleased)return this.justReleased=!1,!0;if(this.mouseIsDown)return!0;if(!this.chart.mouseIsOver)return this.handleMouseOut(),!1;if(0<a&&
232
- a<this.width&&0<b&&b<this.height)return!0;this.handleMouseOut()},fixPosition:function(){this.prevY=this.prevX=NaN},handleMouseDown:function(){this.update();if(this.mouseIsOver())if(this.mouseIsDown=!0,this.mouseX0=this.mouseX,this.mouseY0=this.mouseY,this.mouse2X0=this.mouse2X,this.mouse2Y0=this.mouse2Y,this.drawing)this.drawStartY=this.mouseY,this.drawStartX=this.mouseX,this.drawingNow=!0;else if(this.dispatchMovedEvent(this.mouseX,this.mouseY),!this.pan&&isNaN(this.mouse2X0)&&(isNaN(this.fx)||(this.mouseX0=
233
- this.fx),isNaN(this.fy)||(this.mouseY0=this.fy)),this.hZoomEnabled||this.vZoomEnabled){this.zooming=!0;var a={chart:this.chart,target:this,type:"zoomStarted"};a.x=this.mouseX/this.width;a.y=this.mouseY/this.height;this.index0=a.index=this.index;this.timestamp0=this.timestamp;this.fire(a)}},registerInitialMouse:function(){},handleReleaseOutside:function(){this.mouseIsDown=!1;if(this.drawingNow){this.drawingNow=!1;d.remove(this.drawingLine);var a=this.drawStartX,b=this.drawStartY,c=this.mouseX,e=this.mouseY,
234
- g=this.chart;(2<Math.abs(a-c)||2<Math.abs(b-e))&&this.fire({type:"draw",target:this,chart:g,initialX:a,initialY:b,finalX:c,finalY:e})}this.zooming&&(this.zooming=!1,this.selectWithoutZooming?this.dispatchZoomEvent("selected"):(this.hZoomEnabled||this.vZoomEnabled)&&this.dispatchZoomEvent("zoomed"),this.rolledOver&&this.dispatchMovedEvent(this.mouseX,this.mouseY));this.mouse2Y0=this.mouse2X0=this.mouseY0=this.mouseX0=NaN},dispatchZoomEvent:function(a){if(!this.pan){var b=this.selection;if(b&&3<Math.abs(b.width)&&
235
- 3<Math.abs(b.height)){var c=Math.min(this.index,this.index0),e=Math.max(this.index,this.index0),d=c,f=e,h=this.chart,k=h.chartData,l=h.categoryAxis;l&&l.parseDates&&!l.equalSpacing&&(d=k[c]?k[c].time:Math.min(this.timestamp0,this.timestamp),f=k[e]?h.getEndTime(k[e].time):Math.max(this.timestamp0,this.timestamp));var b={type:a,chart:this.chart,target:this,end:f,start:d,startIndex:c,endIndex:e,selectionHeight:b.height,selectionWidth:b.width,selectionY:b.y,selectionX:b.x},m;this.hZoomEnabled&&4<Math.abs(this.mouseX0-
236
- this.mouseX)&&(b.startX=this.mouseX0/this.width,b.endX=this.mouseX/this.width,m=!0);this.vZoomEnabled&&4<Math.abs(this.mouseY0-this.mouseY)&&(b.startY=1-this.mouseY0/this.height,b.endY=1-this.mouseY/this.height,m=!0);m&&(this.prevY=this.prevX=NaN,this.fire(b),"selected"!=a&&this.clearSelection());this.hideCursor()}}},dispatchMovedEvent:function(a,b,c,e){a=Math.round(a);b=Math.round(b);if(!this.isHidden&&(a!=this.prevX||b!=this.prevY||"changed"==c)){c||(c="moved");var d=this.fx,f=this.fy;isNaN(d)&&
237
- (d=a);isNaN(f)&&(f=b);var h=!1;this.zooming&&this.pan&&(h=!0);h={hidden:this.isHidden,type:c,chart:this.chart,target:this,x:a,y:b,finalX:d,finalY:f,zooming:this.zooming,panning:h,mostCloseGraph:this.mostCloseGraph,index:this.index,skip:e,hideBalloons:this.hideGraphBalloons};this.prevIndex=this.index;this.rotate?(h.position=b,h.finalPosition=f):(h.position=a,h.finalPosition=d);this.prevX=a;this.prevY=b;e?this.chart.handleCursorMove(h):(this.fire(h),"changed"==c&&this.chart.fire(h))}},dispatchPanEvent:function(){if(this.mouseIsDown){var a=
238
- d.roundTo((this.mouseX-this.mouseX0)/this.width,3),b=d.roundTo((this.mouseY-this.mouseY0)/this.height,3),c=d.roundTo((this.mouse2X-this.mouse2X0)/this.width,3),e=d.roundTo((this.mouse2Y-this.mouse2Y0)/this.height,2),g=!1;0!==Math.abs(a)&&0!==Math.abs(b)&&(g=!0);if(this.prevDeltaX==a||this.prevDeltaY==b)g=!1;isNaN(c)||isNaN(e)||(0!==Math.abs(c)&&0!==Math.abs(e)&&(g=!0),this.prevDelta2X!=c&&this.prevDelta2Y!=e)||(g=!1);g&&(this.hideLines(),this.fire({type:"panning",chart:this.chart,target:this,deltaX:a,
239
- deltaY:b,delta2X:c,delta2Y:e,index:this.index}),this.prevDeltaX=a,this.prevDeltaY=b,this.prevDelta2X=c,this.prevDelta2Y=e)}},clearSelection:function(){var a=this.selection;a&&(a.width=0,a.height=0,a.remove())},destroy:function(){this.clear();d.remove(this.selection);this.selection=null;clearTimeout(this.syncTO);d.remove(this.set)},clear:function(){},setTimestamp:function(a){this.timestamp=a},setIndex:function(a,b){a!=this.index&&(this.index=a,b||this.isHidden||this.dispatchMovedEvent(this.mouseX,
240
- this.mouseY,"changed"))},handleMouseOut:function(){this.enabled&&this.rolledOver&&(this.leaveCursor||this.setIndex(void 0),this.forceShow=!1,this.hideCursor(),this.rolledOver=!1)},showCursorAt:function(a){var b=this.chart.categoryAxis;b&&this.setPosition(b.categoryToCoordinate(a),a)},setPosition:function(a,b){var c=this.chart,e=c.categoryAxis;if(e){var d,f;void 0===b&&(b=e.coordinateToValue(a));e.showBalloonAt(b,a);this.forceShow=!0;e.stickBalloonToCategory?c.rotate?this.fixHLine(a,0):this.fixVLine(a,
241
- 0):(this.showCursor(),c.rotate?this.hhLine.translate(0,a):this.vvLine.translate(a,0));c.rotate?d=a:f=a;c.rotate?(this.vvLine&&this.vvLine.hide(),this.hhLine&&this.hhLine.show()):(this.hhLine&&this.hhLine.hide(),this.vvLine&&this.vvLine.show());this.updateFullLine();this.isHidden=!1;this.dispatchMovedEvent(f,d,"moved",!0)}},enableDrawing:function(a){this.enabled=!a;this.hideCursor();this.drawing=a},syncWithCursor:function(a,b){clearTimeout(this.syncTO);a&&(a.isHidden?this.hideCursor(!0):this.syncWithCursorReal(a,
242
- b))},isZooming:function(a){this.zooming=a},syncWithCursorReal:function(a,b){var c=a.vvLine,e=a.hhLine;this.index=a.index;this.forceShow=!0;this.zooming&&this.pan||this.showCursor(!0);this.hideGraphBalloons=b;this.justReleased=a.justReleased;this.zooming=a.zooming;this.index0=a.index0;this.mouseX0=a.mouseX0;this.mouseY0=a.mouseY0;this.mouse2X0=a.mouse2X0;this.mouse2Y0=a.mouse2Y0;this.timestamp0=a.timestamp0;this.prevDeltaX=a.prevDeltaX;this.prevDeltaY=a.prevDeltaY;this.prevDelta2X=a.prevDelta2X;this.prevDelta2Y=
243
- a.prevDelta2Y;this.fx=a.fx;this.fy=a.fy;a.zooming&&this.updateSelection();var d=a.mouseX,f=a.mouseY;this.rotate?(d=NaN,this.vvLine&&this.vvLine.hide(),this.hhLine&&e&&(isNaN(a.fy)?this.hhLine.translate(0,a.mouseY):this.fixHLine(a.fy,0))):(f=NaN,this.hhLine&&this.hhLine.hide(),this.vvLine&&c&&(isNaN(a.fx)?this.vvLine.translate(a.mouseX,0):this.fixVLine(a.fx,0)));this.dispatchMovedEvent(d,f,"moved",!0)}})})();(function(){var d=window.AmCharts;d.SimpleChartScrollbar=d.Class({construct:function(a){this.createEvents("zoomed","zoomStarted","zoomEnded");this.backgroundColor="#D4D4D4";this.backgroundAlpha=1;this.selectedBackgroundColor="#EFEFEF";this.scrollDuration=this.selectedBackgroundAlpha=1;this.resizeEnabled=!0;this.hideResizeGrips=!1;this.scrollbarHeight=20;this.updateOnReleaseOnly=!1;9>document.documentMode&&(this.updateOnReleaseOnly=!0);this.dragIconHeight=this.dragIconWidth=35;this.dragIcon="dragIconRoundBig";
244
- this.dragCursorHover="cursor: move; cursor: grab; cursor: -moz-grab; cursor: -webkit-grab;";this.dragCursorDown="cursor: move; cursor: grab; cursor: -moz-grabbing; cursor: -webkit-grabbing;";this.vResizeCursor="ns-resize";this.hResizeCursor="ew-resize";this.enabled=!0;this.percentStart=this.offset=0;this.percentEnd=1;d.applyTheme(this,a,"SimpleChartScrollbar")},getPercents:function(){var a=this.getDBox(),b=a.x,c=a.y,e=a.width,a=a.height;this.rotate?(b=1-c/this.height,c=1-(c+a)/this.height):(c=b/this.width,
245
- b=(b+e)/this.width);this.percentStart=c;this.percentEnd=b},draw:function(){var a=this;a.destroy();if(a.enabled){var b=a.chart.container,c=a.rotate,e=a.chart;e.panRequired=!0;var g=b.set();a.set=g;c?d.setCN(e,g,"scrollbar-vertical"):d.setCN(e,g,"scrollbar-horizontal");e.scrollbarsSet.push(g);var f,h;c?(f=a.scrollbarHeight,h=e.plotAreaHeight):(h=a.scrollbarHeight,f=e.plotAreaWidth);a.width=f;if((a.height=h)&&f){var k=d.rect(b,f,h,a.backgroundColor,a.backgroundAlpha,1,a.backgroundColor,a.backgroundAlpha);
246
- d.setCN(e,k,"scrollbar-bg");a.bg=k;g.push(k);k=d.rect(b,f,h,"#000",.005);g.push(k);a.invisibleBg=k;k.click(function(){a.handleBgClick()}).mouseover(function(){a.handleMouseOver()}).mouseout(function(){a.handleMouseOut()}).touchend(function(){a.handleBgClick()});k=d.rect(b,f,h,a.selectedBackgroundColor,a.selectedBackgroundAlpha);d.setCN(e,k,"scrollbar-bg-selected");a.selectedBG=k;g.push(k);f=d.rect(b,f,h,"#000",.005);a.dragger=f;g.push(f);f.mousedown(function(b){a.handleDragStart(b)}).mouseup(function(){a.handleDragStop()}).mouseover(function(){a.handleDraggerOver()}).mouseout(function(){a.handleMouseOut()}).touchstart(function(b){a.handleDragStart(b)}).touchend(function(){a.handleDragStop()});
247
- h=e.pathToImages;var l,k=a.dragIcon.replace(/\.[a-z]*$/i,"");d.isAbsolute(k)&&(h="");c?(l=h+k+"H"+e.extension,h=a.dragIconWidth,c=a.dragIconHeight):(l=h+k+e.extension,c=a.dragIconWidth,h=a.dragIconHeight);k=b.image(l,0,0,c,h);d.setCN(e,k,"scrollbar-grip-left");l=b.image(l,0,0,c,h);d.setCN(e,l,"scrollbar-grip-right");var m=10,n=20;e.panEventsEnabled&&(m=25,n=a.scrollbarHeight);var q=d.rect(b,m,n,"#000",.005),p=d.rect(b,m,n,"#000",.005);p.translate(-(m-c)/2,-(n-h)/2);q.translate(-(m-c)/2,-(n-h)/2);
248
- c=b.set([k,p]);b=b.set([l,q]);a.iconLeft=c;g.push(a.iconLeft);a.iconRight=b;g.push(b);a.updateGripCursor(!1);e.makeAccessible(c,a.accessibleLabel);e.makeAccessible(b,a.accessibleLabel);e.makeAccessible(f,a.accessibleLabel);c.setAttr("role","menuitem");b.setAttr("role","menuitem");f.setAttr("role","menuitem");void 0!==a.tabIndex&&(c.setAttr("tabindex",a.tabIndex),c.keyup(function(b){a.handleKeys(b,1,0)}));void 0!==a.tabIndex&&(f.setAttr("tabindex",a.tabIndex),f.keyup(function(b){a.handleKeys(b,1,1)}));
249
- void 0!==a.tabIndex&&(b.setAttr("tabindex",a.tabIndex),b.keyup(function(b){a.handleKeys(b,0,1)}));c.mousedown(function(){a.leftDragStart()}).mouseup(function(){a.leftDragStop()}).mouseover(function(){a.iconRollOver()}).mouseout(function(){a.iconRollOut()}).touchstart(function(){a.leftDragStart()}).touchend(function(){a.leftDragStop()});b.mousedown(function(){a.rightDragStart()}).mouseup(function(){a.rightDragStop()}).mouseover(function(){a.iconRollOver()}).mouseout(function(){a.iconRollOut()}).touchstart(function(){a.rightDragStart()}).touchend(function(){a.rightDragStop()});
250
- d.ifArray(e.chartData)?g.show():g.hide();a.hideDragIcons();a.clipDragger(!1)}g.translate(a.x,a.y);g.node.style.msTouchAction="none";g.node.style.touchAction="none"}},handleKeys:function(a,b,c){this.getPercents();var e=this.percentStart,d=this.percentEnd;if(this.rotate)var f=d,d=e,e=f;if(37==a.keyCode||40==a.keyCode)e-=.02*b,d-=.02*c;if(39==a.keyCode||38==a.keyCode)e+=.02*b,d+=.02*c;this.rotate&&(a=d,d=e,e=a);isNaN(d)||isNaN(e)||this.percentZoom(e,d,!0)},updateScrollbarSize:function(a,b){if(!isNaN(a)&&
251
- !isNaN(b)){a=Math.round(a);b=Math.round(b);var c=this.dragger,e,d,f,h,k;this.rotate?(e=0,d=a,f=this.width+1,h=b-a,c.setAttr("height",b-a),c.setAttr("y",d)):(e=a,d=0,f=b-a,h=this.height+1,k=b-a,c.setAttr("x",e),c.setAttr("width",k));this.clipAndUpdate(e,d,f,h)}},update:function(){var a,b=!1,c,e,d=this.x,f=this.y,h=this.dragger,k=this.getDBox();if(k){c=k.x+d;e=k.y+f;var l=k.width,k=k.height,m=this.rotate,n=this.chart,q=this.width,p=this.height,t=n.mouseX,n=n.mouseY;a=this.initialMouse;this.forceClip&&
252
- this.clipDragger(!0);if(this.dragging){var r=this.initialCoord;if(m)a=r+(n-a),0>a&&(a=0),r=p-k,a>r&&(a=r),h.setAttr("y",a);else{a=r+(t-a);0>a&&(a=0);r=q-l;if(a>r||isNaN(a))a=r;h.setAttr("x",a)}this.clipDragger(!0)}if(this.resizingRight){if(m)if(a=n-e,!isNaN(this.maxHeight)&&a>this.maxHeight&&(a=this.maxHeight),a+e>p+f&&(a=p-e+f),0>a)this.resizingRight=!1,b=this.resizingLeft=!0;else{if(0===a||isNaN(a))a=.1;h.setAttr("height",a)}else if(a=t-c,!isNaN(this.maxWidth)&&a>this.maxWidth&&(a=this.maxWidth),
253
- a+c>q+d&&(a=q-c+d),0>a)this.resizingRight=!1,b=this.resizingLeft=!0;else{if(0===a||isNaN(a))a=.1;h.setAttr("width",a)}this.clipDragger(!0)}if(this.resizingLeft){if(m)if(c=e,e=n,e<f&&(e=f),isNaN(e)&&(e=f),e>p+f&&(e=p+f),a=!0===b?c-e:k+c-e,!isNaN(this.maxHeight)&&a>this.maxHeight&&(a=this.maxHeight,e=c),0>a)this.resizingRight=!0,this.resizingLeft=!1,h.setAttr("y",c+k-f);else{if(0===a||isNaN(a))a=.1;h.setAttr("y",e-f);h.setAttr("height",a)}else if(e=t,e<d&&(e=d),isNaN(e)&&(e=d),e>q+d&&(e=q+d),a=!0===
254
- b?c-e:l+c-e,!isNaN(this.maxWidth)&&a>this.maxWidth&&(a=this.maxWidth,e=c),0>a)this.resizingRight=!0,this.resizingLeft=!1,h.setAttr("x",c+l-d);else{if(0===a||isNaN(a))a=.1;h.setAttr("x",e-d);h.setAttr("width",a)}this.clipDragger(!0)}}},stopForceClip:function(){this.animating=this.forceClip=!1},clipDragger:function(a){var b=this.getDBox();if(b){var c=b.x,e=b.y,d=b.width,b=b.height,f=!1;if(this.rotate){if(c=0,d=this.width+1,this.clipY!=e||this.clipH!=b)f=!0}else if(e=0,b=this.height+1,this.clipX!=c||
255
- this.clipW!=d)f=!0;f&&this.clipAndUpdate(c,e,d,b);a&&(this.updateOnReleaseOnly||this.dispatchScrollbarEvent())}},maskGraphs:function(){},clipAndUpdate:function(a,b,c,e){this.clipX=a;this.clipY=b;this.clipW=c;this.clipH=e;this.selectedBG.setAttr("width",c);this.selectedBG.setAttr("height",e);this.selectedBG.translate(a,b);this.updateDragIconPositions();this.maskGraphs(a,b,c,e)},dispatchScrollbarEvent:function(){if(this.skipEvent)this.skipEvent=!1;else{var a=this.chart;a.hideBalloon();var b=this.getDBox(),
256
- c=b.x,e=b.y,d=b.width,b=b.height;this.getPercents();this.rotate?(c=e,d=this.height/b):d=this.width/d;a={type:"zoomed",position:c,chart:a,target:this,multiplier:d,relativeStart:this.percentStart,relativeEnd:this.percentEnd};if(this.percentStart!=this.prevPercentStart||this.percentEnd!=this.prevPercentEnd||this.prevMultiplier!=d)this.fire(a),this.prevPercentStart=this.percentStart,this.prevPercentEnd=this.percentEnd,this.prevMultiplier=d}},updateDragIconPositions:function(){var a=this.getDBox(),b=a.x,
257
- c=a.y,d=this.iconLeft,g=this.iconRight,f,h,k=this.scrollbarHeight;this.rotate?(f=this.dragIconWidth,h=this.dragIconHeight,d.translate((k-h)/2,c-f/2),g.translate((k-h)/2,c+a.height-f/2)):(f=this.dragIconHeight,h=this.dragIconWidth,d.translate(b-h/2,(k-f)/2),g.translate(b-h/2+a.width,(k-f)/2))},showDragIcons:function(){this.resizeEnabled&&(this.iconLeft.show(),this.iconRight.show())},hideDragIcons:function(){if(!this.resizingLeft&&!this.resizingRight&&!this.dragging){if(this.hideResizeGrips||!this.resizeEnabled)this.iconLeft.hide(),
258
- this.iconRight.hide();this.removeCursors()}},removeCursors:function(){this.chart.setMouseCursor("auto")},fireZoomEvent:function(a){this.fire({type:a,chart:this.chart,target:this})},percentZoom:function(a,b,c){a=d.fitToBounds(a,0,b);b=d.fitToBounds(b,a,1);if(this.dragger&&this.enabled){this.dragger.stop();isNaN(a)&&(a=0);isNaN(b)&&(b=1);var e,g;this.rotate?(e=this.height,b=e-e*b,g=e-e*a):(e=this.width,g=e*b,b=e*a);this.updateScrollbarSize(b,g);this.clipDragger(!1);this.getPercents();c&&this.dispatchScrollbarEvent()}},
259
- destroy:function(){this.clear();d.remove(this.set);d.remove(this.iconRight);d.remove(this.iconLeft)},clear:function(){},handleDragStart:function(){if(this.enabled){this.fireZoomEvent("zoomStarted");var a=this.chart;this.dragger.stop();this.removeCursors();d.isModern&&(this.dragger.node.style.cssText=this.dragCursorDown);this.dragging=!0;var b=this.getDBox();this.rotate?(this.initialCoord=b.y,this.initialMouse=a.mouseY):(this.initialCoord=b.x,this.initialMouse=a.mouseX)}},handleDragStop:function(){this.updateOnReleaseOnly&&
260
- (this.update(),this.skipEvent=!1,this.dispatchScrollbarEvent());this.dragging=!1;this.mouseIsOver&&this.removeCursors();d.isModern&&(this.dragger.node.style.cssText=this.dragCursorHover);this.update();this.fireZoomEvent("zoomEnded")},handleDraggerOver:function(){this.handleMouseOver();d.isModern&&(this.dragger.node.style.cssText=this.dragCursorHover)},leftDragStart:function(){this.fireZoomEvent("zoomStarted");this.dragger.stop();this.resizingLeft=!0;this.updateGripCursor(!0)},updateGripCursor:function(a){d.isModern&&
261
- (a=this.rotate?a?this.vResizeCursorDown:this.vResizeCursorHover:a?this.hResizeCursorDown:this.hResizeCursorHover)&&(this.iconRight&&(this.iconRight.node.style.cssText=a),this.iconLeft&&(this.iconLeft.node.style.cssText=a))},leftDragStop:function(){this.resizingLeft&&(this.resizingLeft=!1,this.mouseIsOver||this.removeCursors(),this.updateOnRelease(),this.fireZoomEvent("zoomEnded"));this.updateGripCursor(!1)},rightDragStart:function(){this.fireZoomEvent("zoomStarted");this.dragger.stop();this.resizingRight=
262
- !0;this.updateGripCursor(!0)},rightDragStop:function(){this.resizingRight&&(this.resizingRight=!1,this.mouseIsOver||this.removeCursors(),this.updateOnRelease(),this.fireZoomEvent("zoomEnded"));this.updateGripCursor(!1)},iconRollOut:function(){this.removeCursors()},iconRollOver:function(){this.rotate?this.vResizeCursor&&this.chart.setMouseCursor(this.vResizeCursor):this.hResizeCursor&&this.chart.setMouseCursor(this.hResizeCursor);this.handleMouseOver()},getDBox:function(){if(this.dragger)return this.dragger.getBBox()},
263
- handleBgClick:function(){var a=this;if(!a.resizingRight&&!a.resizingLeft){a.zooming=!0;var b,c,e=a.scrollDuration,g=a.dragger;b=a.getDBox();var f=b.height,h=b.width;c=a.chart;var k=a.y,l=a.x,m=a.rotate;m?(b="y",c=c.mouseY-f/2-k,c=d.fitToBounds(c,0,a.height-f)):(b="x",c=c.mouseX-h/2-l,c=d.fitToBounds(c,0,a.width-h));a.updateOnReleaseOnly?(a.skipEvent=!1,g.setAttr(b,c),a.dispatchScrollbarEvent(),a.clipDragger()):(a.animating=!0,c=Math.round(c),m?g.animate({y:c},e,">"):g.animate({x:c},e,">"),a.forceClip=
264
- !0,clearTimeout(a.forceTO),a.forceTO=setTimeout(function(){a.stopForceClip.call(a)},5E3*e))}},updateOnRelease:function(){this.updateOnReleaseOnly&&(this.update(),this.skipEvent=!1,this.dispatchScrollbarEvent())},handleReleaseOutside:function(){if(this.set){if(this.resizingLeft||this.resizingRight||this.dragging)this.dragging=this.resizingRight=this.resizingLeft=!1,this.updateOnRelease(),this.removeCursors();this.animating=this.mouseIsOver=!1;this.hideDragIcons();this.update()}},handleMouseOver:function(){this.mouseIsOver=
265
- !0;this.showDragIcons()},handleMouseOut:function(){this.mouseIsOver=!1;this.hideDragIcons();this.removeCursors()}})})();(function(){var d=window.AmCharts;d.ChartScrollbar=d.Class({inherits:d.SimpleChartScrollbar,construct:function(a){this.cname="ChartScrollbar";d.ChartScrollbar.base.construct.call(this,a);this.graphLineColor="#BBBBBB";this.graphLineAlpha=0;this.graphFillColor="#BBBBBB";this.graphFillAlpha=1;this.selectedGraphLineColor="#888888";this.selectedGraphLineAlpha=0;this.selectedGraphFillColor="#888888";this.selectedGraphFillAlpha=1;this.gridCount=0;this.gridColor="#FFFFFF";this.gridAlpha=.7;this.skipEvent=
266
- this.autoGridCount=!1;this.color="#FFFFFF";this.scrollbarCreated=!1;this.oppositeAxis=!0;this.accessibleLabel="Zoom chart using cursor arrows";d.applyTheme(this,a,this.cname)},init:function(){var a=this.categoryAxis,b=this.chart,c=this.gridAxis;a||("CategoryAxis"==this.gridAxis.cname?(this.catScrollbar=!0,a=new d.CategoryAxis,a.id="scrollbar"):(a=new d.ValueAxis,a.data=b.chartData,a.id=c.id,a.type=c.type,a.maximumDate=c.maximumDate,a.minimumDate=c.minimumDate,a.minPeriod=c.minPeriod,a.minMaxField=
267
- c.minMaxField),this.categoryAxis=a);a.chart=b;var e=b.categoryAxis;e&&(a.firstDayOfWeek=e.firstDayOfWeek);a.dateFormats=c.dateFormats;a.markPeriodChange=c.markPeriodChange;a.boldPeriodBeginning=c.boldPeriodBeginning;a.labelFunction=c.labelFunction;a.axisItemRenderer=d.RecItem;a.axisRenderer=d.RecAxis;a.guideFillRenderer=d.RecFill;a.inside=!0;a.fontSize=this.fontSize;a.tickLength=0;a.axisAlpha=0;d.isString(this.graph)&&(this.graph=d.getObjById(b.graphs,this.graph));(a=this.graph)&&this.catScrollbar&&
268
- (c=this.valueAxis,c||(this.valueAxis=c=new d.ValueAxis,c.visible=!1,c.scrollbar=!0,c.axisItemRenderer=d.RecItem,c.axisRenderer=d.RecAxis,c.guideFillRenderer=d.RecFill,c.labelsEnabled=!1,c.chart=b),b=this.unselectedGraph,b||(b=new d.AmGraph,b.scrollbar=!0,this.unselectedGraph=b,b.negativeBase=a.negativeBase,b.noStepRisers=a.noStepRisers),b=this.selectedGraph,b||(b=new d.AmGraph,b.scrollbar=!0,this.selectedGraph=b,b.negativeBase=a.negativeBase,b.noStepRisers=a.noStepRisers));this.scrollbarCreated=!0},
269
- draw:function(){var a=this;d.ChartScrollbar.base.draw.call(a);if(a.enabled){a.scrollbarCreated||a.init();var b=a.chart,c=b.chartData,e=a.categoryAxis,g=a.rotate,f=a.x,h=a.y,k=a.width,l=a.height,m=a.gridAxis,n=a.set;e.setOrientation(!g);e.parseDates=m.parseDates;"ValueAxis"==a.categoryAxis.cname&&(e.rotate=!g);e.equalSpacing=m.equalSpacing;e.minPeriod=m.minPeriod;e.startOnAxis=m.startOnAxis;e.width=k-1;e.height=l;e.gridCount=a.gridCount;e.gridColor=a.gridColor;e.gridAlpha=a.gridAlpha;e.color=a.color;
270
- e.tickLength=0;e.axisAlpha=0;e.autoGridCount=a.autoGridCount;e.parseDates&&!e.equalSpacing&&e.timeZoom(b.firstTime,b.lastTime);e.minimum=a.gridAxis.fullMin;e.maximum=a.gridAxis.fullMax;e.strictMinMax=!0;e.zoom(0,c.length-1);if((m=a.graph)&&a.catScrollbar){var q=a.valueAxis,p=m.valueAxis;q.id=p.id;q.rotate=g;q.setOrientation(g);q.width=k;q.height=l;q.dataProvider=c;q.reversed=p.reversed;q.logarithmic=p.logarithmic;q.gridAlpha=0;q.axisAlpha=0;n.push(q.set);g?(q.y=h,q.x=0):(q.x=f,q.y=0);var f=Infinity,
271
- h=-Infinity,t;for(t=0;t<c.length;t++){var r=c[t].axes[p.id].graphs[m.id].values,w;for(w in r)if(r.hasOwnProperty(w)&&"percents"!=w&&"total"!=w){var z=r[w];z<f&&(f=z);z>h&&(h=z)}}Infinity!=f&&(q.minimum=f);-Infinity!=h&&(q.maximum=h+.1*(h-f));f==h&&(--q.minimum,q.maximum+=1);void 0!==a.minimum&&(q.minimum=a.minimum);void 0!==a.maximum&&(q.maximum=a.maximum);q.zoom(0,c.length-1);w=a.unselectedGraph;w.id=m.id;w.bcn="scrollbar-graph-";w.rotate=g;w.chart=b;w.data=c;w.valueAxis=q;w.chart=m.chart;w.categoryAxis=
272
- a.categoryAxis;w.periodSpan=m.periodSpan;w.valueField=m.valueField;w.openField=m.openField;w.closeField=m.closeField;w.highField=m.highField;w.lowField=m.lowField;w.lineAlpha=a.graphLineAlpha;w.lineColorR=a.graphLineColor;w.fillAlphas=a.graphFillAlpha;w.fillColorsR=a.graphFillColor;w.connect=m.connect;w.hidden=m.hidden;w.width=k;w.height=l;w.pointPosition=m.pointPosition;w.stepDirection=m.stepDirection;w.periodSpan=m.periodSpan;p=a.selectedGraph;p.id=m.id;p.bcn=w.bcn+"selected-";p.rotate=g;p.chart=
273
- b;p.data=c;p.valueAxis=q;p.chart=m.chart;p.categoryAxis=e;p.periodSpan=m.periodSpan;p.valueField=m.valueField;p.openField=m.openField;p.closeField=m.closeField;p.highField=m.highField;p.lowField=m.lowField;p.lineAlpha=a.selectedGraphLineAlpha;p.lineColorR=a.selectedGraphLineColor;p.fillAlphas=a.selectedGraphFillAlpha;p.fillColorsR=a.selectedGraphFillColor;p.connect=m.connect;p.hidden=m.hidden;p.width=k;p.height=l;p.pointPosition=m.pointPosition;p.stepDirection=m.stepDirection;p.periodSpan=m.periodSpan;
274
- b=a.graphType;b||(b=m.type);w.type=b;p.type=b;c=c.length-1;w.zoom(0,c);p.zoom(0,c);p.set.click(function(){a.handleBackgroundClick()}).mouseover(function(){a.handleMouseOver()}).mouseout(function(){a.handleMouseOut()});w.set.click(function(){a.handleBackgroundClick()}).mouseover(function(){a.handleMouseOver()}).mouseout(function(){a.handleMouseOut()});n.push(w.set);n.push(p.set)}n.push(e.set);n.push(e.labelsSet);a.bg.toBack();a.invisibleBg.toFront();a.dragger.toFront();a.iconLeft.toFront();a.iconRight.toFront()}},
275
- timeZoom:function(a,b,c){this.startTime=a;this.endTime=b;this.timeDifference=b-a;this.skipEvent=!d.toBoolean(c);this.zoomScrollbar();this.dispatchScrollbarEvent()},zoom:function(a,b){this.start=a;this.end=b;this.skipEvent=!0;this.zoomScrollbar()},dispatchScrollbarEvent:function(){if(this.categoryAxis&&"ValueAxis"==this.categoryAxis.cname)d.ChartScrollbar.base.dispatchScrollbarEvent.call(this);else if(this.skipEvent)this.skipEvent=!1;else{var a=this.chart.chartData,b,c,e=this.dragger.getBBox();b=e.x;
276
- var g=e.y,f=e.width,e=e.height,h=this.chart;this.rotate?(b=g,c=e):c=f;f={type:"zoomed",target:this};f.chart=h;var k=this.categoryAxis,l=this.stepWidth,g=h.minSelectedTime,e=h.maxSelectedTime,m=!1;if(k.parseDates&&!k.equalSpacing){if(a=h.lastTime,h=h.firstTime,k=Math.round(b/l)+h,b=this.dragging?k+this.timeDifference:Math.round((b+c)/l)+h,k>b&&(k=b),0<g&&b-k<g&&(b=Math.round(k+(b-k)/2),m=Math.round(g/2),k=b-m,b+=m,m=!0),0<e&&b-k>e&&(b=Math.round(k+(b-k)/2),m=Math.round(e/2),k=b-m,b+=m,m=!0),b>a&&(b=
277
- a),b-g<k&&(k=b-g),k<h&&(k=h),k+g>b&&(b=k+g),k!=this.startTime||b!=this.endTime)this.startTime=k,this.endTime=b,f.start=k,f.end=b,f.startDate=new Date(k),f.endDate=new Date(b),this.fire(f)}else{k.startOnAxis||(b+=l/2);c-=this.stepWidth/2;g=k.xToIndex(b);b=k.getCoordinate(g)-this.stepWidth/2;b=k.xToIndex(b+c);if(g!=this.start||this.end!=b)k.startOnAxis&&(this.resizingRight&&g==b&&b++,this.resizingLeft&&g==b&&(0<g?g--:b=1)),this.start=g,this.end=this.dragging?this.start+this.difference:b,f.start=this.start,
278
- f.end=this.end,k.parseDates&&(a[this.start]&&(f.startDate=new Date(a[this.start].time)),a[this.end]&&(f.endDate=new Date(a[this.end].time))),this.fire(f);this.percentStart=g;this.percentEnd=b}m&&this.zoomScrollbar(!0)}},zoomScrollbar:function(a){if((!(this.dragging||this.resizingLeft||this.resizingRight||this.animating)||a)&&this.dragger&&this.enabled){var b,c,d=this.chart;a=d.chartData;var g=this.categoryAxis;g.parseDates&&!g.equalSpacing?(a=g.stepWidth,c=d.firstTime,b=a*(this.startTime-c),c=a*(this.endTime-
279
- c)):(a[this.start]&&(b=a[this.start].x[g.id]),a[this.end]&&(c=a[this.end].x[g.id]),a=g.stepWidth,g.startOnAxis||(d=a/2,b-=d,c+=d));this.stepWidth=a;isNaN(b)||isNaN(c)||this.updateScrollbarSize(b,c)}},maskGraphs:function(a,b,c,d){var g=this.selectedGraph;g&&g.set.clipRect(a,b,c,d)},handleDragStart:function(){d.ChartScrollbar.base.handleDragStart.call(this);this.difference=this.end-this.start;this.timeDifference=this.endTime-this.startTime;0>this.timeDifference&&(this.timeDifference=0)},handleBackgroundClick:function(){d.ChartScrollbar.base.handleBackgroundClick.call(this);
280
- this.dragging||(this.difference=this.end-this.start,this.timeDifference=this.endTime-this.startTime,0>this.timeDifference&&(this.timeDifference=0))}})})();(function(){var d=window.AmCharts;d.AmBalloon=d.Class({construct:function(a){this.cname="AmBalloon";this.enabled=!0;this.fillColor="#FFFFFF";this.fillAlpha=.8;this.borderThickness=2;this.borderColor="#FFFFFF";this.borderAlpha=1;this.cornerRadius=0;this.maxWidth=220;this.horizontalPadding=8;this.verticalPadding=4;this.pointerWidth=6;this.pointerOrientation="V";this.color="#000000";this.adjustBorderColor=!0;this.show=this.follow=this.showBullet=!1;this.bulletSize=3;this.shadowAlpha=.4;this.shadowColor=
281
- "#000000";this.fadeOutDuration=this.animationDuration=.3;this.fixedPosition=!0;this.offsetY=6;this.offsetX=1;this.textAlign="center";this.disableMouseEvents=!0;this.deltaSignX=this.deltaSignY=1;d.isModern||(this.offsetY*=1.5);this.sdy=this.sdx=0;d.applyTheme(this,a,this.cname)},draw:function(){var a=this.pointToX,b=this.pointToY;d.isModern||(this.drop=!1);var c=this.chart;d.VML&&(this.fadeOutDuration=0);this.xAnim&&c.stopAnim(this.xAnim);this.yAnim&&c.stopAnim(this.yAnim);this.sdy=this.sdx=0;if(!isNaN(a)){var e=
282
- this.follow,g=c.container,f=this.set;d.remove(f);this.removeDiv();f=g.set();f.node.style.pointerEvents="none";this.set=f;this.mainSet?(this.mainSet.push(this.set),this.sdx=this.mainSet.x,this.sdy=this.mainSet.y):c.balloonsSet.push(f);if(this.show){var h=this.l,k=this.t,l=this.r,m=this.b,n=this.balloonColor,q=this.fillColor,p=this.borderColor,t=q;void 0!=n&&(this.adjustBorderColor?t=p=n:q=n);var r=this.horizontalPadding,w=this.verticalPadding,z=this.pointerWidth,x=this.pointerOrientation,u=this.cornerRadius,
283
- A=c.fontFamily,y=this.fontSize;void 0==y&&(y=c.fontSize);var n=document.createElement("div"),B=c.classNamePrefix;n.className=B+"-balloon-div";this.className&&(n.className=n.className+" "+B+"-balloon-div-"+this.className);B=n.style;this.disableMouseEvents&&(B.pointerEvents="none");B.position="absolute";var D=this.minWidth,C=document.createElement("div");n.appendChild(C);var I=C.style;isNaN(D)||(I.minWidth=D-2*r+"px");I.textAlign=this.textAlign;I.maxWidth=this.maxWidth+"px";I.fontSize=y+"px";I.color=
284
- this.color;I.fontFamily=A;C.innerHTML=this.text;c.chartDiv.appendChild(n);this.textDiv=n;var I=n.offsetWidth,H=n.offsetHeight;n.clientHeight&&(I=n.clientWidth,H=n.clientHeight);A=H+2*w;C=I+2*r;!isNaN(D)&&C<D&&(C=D);window.opera&&(A+=2);var Q=!1,y=this.offsetY;c.handDrawn&&(y+=c.handDrawScatter+2);"H"!=x?(D=a-C/2,b<k+A+10&&"down"!=x?(Q=!0,e&&(b+=y),y=b+z,this.deltaSignY=-1):(e&&(b-=y),y=b-A-z,this.deltaSignY=1)):(2*z>A&&(z=A/2),y=b-A/2,a<h+(l-h)/2?(D=a+z,this.deltaSignX=-1):(D=a-C-z,this.deltaSignX=
285
- 1));y+A>=m&&(y=m-A);y<k&&(y=k);D<h&&(D=h);D+C>l&&(D=l-C);var k=y+w,m=D+r,M=this.shadowAlpha,P=this.shadowColor,r=this.borderThickness,ia=this.bulletSize,J,w=this.fillAlpha,aa=this.borderAlpha;this.showBullet&&(J=d.circle(g,ia,t,w),f.push(J));this.drop?(h=C/1.6,l=0,"V"==x&&(x="down"),"H"==x&&(x="left"),"down"==x&&(D=a+1,y=b-h-h/3),"up"==x&&(l=180,D=a+1,y=b+h+h/3),"left"==x&&(l=270,D=a+h+h/3+2,y=b),"right"==x&&(l=90,D=a-h-h/3+2,y=b),k=y-H/2+1,m=D-I/2-1,q=d.drop(g,h,l,q,w,r,p,aa)):0<u||0===z?(0<M&&(a=
286
- d.rect(g,C,A,q,0,r+1,P,M,u),d.isModern?a.translate(1,1):a.translate(4,4),f.push(a)),q=d.rect(g,C,A,q,w,r,p,aa,u)):(t=[],u=[],"H"!=x?(h=a-D,h>C-z&&(h=C-z),h<z&&(h=z),t=[0,h-z,a-D,h+z,C,C,0,0],u=Q?[0,0,b-y,0,0,A,A,0]:[A,A,b-y,A,A,0,0,A]):(x=b-y,x>A-z&&(x=A-z),x<z&&(x=z),u=[0,x-z,b-y,x+z,A,A,0,0],t=a<h+(l-h)/2?[0,0,D<a?0:a-D,0,0,C,C,0]:[C,C,D+C>a?C:a-D,C,C,0,0,C]),0<M&&(a=d.polygon(g,t,u,q,0,r,P,M),a.translate(1,1),f.push(a)),q=d.polygon(g,t,u,q,w,r,p,aa));this.bg=q;f.push(q);q.toFront();d.setCN(c,q,
287
- "balloon-bg");this.className&&d.setCN(c,q,"balloon-bg-"+this.className);g=1*this.deltaSignX;m+=this.sdx;k+=this.sdy;B.left=m+"px";B.top=k+"px";f.translate(D-g,y,1,!0);q=q.getBBox();this.bottom=y+A+1;this.yPos=q.y+y;J&&J.translate(this.pointToX-D+g,b-y);b=this.animationDuration;0<this.animationDuration&&!e&&!isNaN(this.prevX)&&(f.translate(this.prevX,this.prevY,NaN,!0),f.animate({translate:D-g+","+y},b,"easeOutSine"),n&&(B.left=this.prevTX+"px",B.top=this.prevTY+"px",this.xAnim=c.animate({node:n},
288
- "left",this.prevTX,m,b,"easeOutSine","px"),this.yAnim=c.animate({node:n},"top",this.prevTY,k,b,"easeOutSine","px")));this.prevX=D-g;this.prevY=y;this.prevTX=m;this.prevTY=k}}},fixPrevious:function(){this.rPrevX=this.prevX;this.rPrevY=this.prevY;this.rPrevTX=this.prevTX;this.rPrevTY=this.prevTY},restorePrevious:function(){this.prevX=this.rPrevX;this.prevY=this.rPrevY;this.prevTX=this.rPrevTX;this.prevTY=this.rPrevTY},followMouse:function(){if(this.follow&&this.show){var a=this.chart.mouseX-this.offsetX*
289
- this.deltaSignX-this.sdx,b=this.chart.mouseY-this.sdy;this.pointToX=a;this.pointToY=b;if(a!=this.previousX||b!=this.previousY)if(this.previousX=a,this.previousY=b,0===this.cornerRadius)this.draw();else{var c=this.set;if(c){var d=c.getBBox(),a=a-d.width/2,g=b-d.height-10;a<this.l&&(a=this.l);a>this.r-d.width&&(a=this.r-d.width);g<this.t&&(g=b+10);c.translate(a,g);b=this.textDiv.style;b.left=a+this.horizontalPadding+"px";b.top=g+this.verticalPadding+"px"}}}},changeColor:function(a){this.balloonColor=
290
- a},setBounds:function(a,b,c,d){this.l=a;this.t=b;this.r=c;this.b=d;this.destroyTO&&clearTimeout(this.destroyTO)},showBalloon:function(a){if(this.text!=a||this.positionChanged)this.text=a,this.isHiding=!1,this.show=!0,this.destroyTO&&clearTimeout(this.destroyTO),a=this.chart,this.fadeAnim1&&a.stopAnim(this.fadeAnim1),this.fadeAnim2&&a.stopAnim(this.fadeAnim2),this.draw(),this.positionChanged=!1},hide:function(a){var b=this;b.text=void 0;isNaN(a)&&(a=b.fadeOutDuration);var c=b.chart;if(0<a&&!b.isHiding){b.isHiding=
291
- !0;b.destroyTO&&clearTimeout(b.destroyTO);b.destroyTO=setTimeout(function(){b.destroy.call(b)},1E3*a);b.follow=!1;b.show=!1;var d=b.set;d&&(d.setAttr("opacity",b.fillAlpha),b.fadeAnim1=d.animate({opacity:0},a,"easeInSine"));b.textDiv&&(b.fadeAnim2=c.animate({node:b.textDiv},"opacity",1,0,a,"easeInSine",""))}else b.show=!1,b.follow=!1,b.destroy()},setPosition:function(a,b){if(a!=this.pointToX||b!=this.pointToY)this.previousX=this.pointToX,this.previousY=this.pointToY,this.pointToX=a,this.pointToY=
292
- b,this.positionChanged=!0},followCursor:function(a){var b=this;b.follow=a;clearInterval(b.interval);var c=b.chart.mouseX-b.sdx,d=b.chart.mouseY-b.sdy;!isNaN(c)&&a&&(b.pointToX=c-b.offsetX*b.deltaSignX,b.pointToY=d,b.followMouse(),b.interval=setInterval(function(){b.followMouse.call(b)},40))},removeDiv:function(){if(this.textDiv){var a=this.textDiv.parentNode;a&&a.removeChild(this.textDiv)}},destroy:function(){clearInterval(this.interval);d.remove(this.set);this.removeDiv();this.set=null}})})();(function(){var d=window.AmCharts;d.AmCoordinateChart=d.Class({inherits:d.AmChart,construct:function(a){d.AmCoordinateChart.base.construct.call(this,a);this.theme=a;this.createEvents("rollOverGraphItem","rollOutGraphItem","clickGraphItem","doubleClickGraphItem","rightClickGraphItem","clickGraph","rollOverGraph","rollOutGraph");this.startAlpha=1;this.startDuration=0;this.startEffect="elastic";this.sequencedAnimation=!0;this.colors="#FF6600 #FCD202 #B0DE09 #0D8ECF #2A0CD0 #CD0D74 #CC0000 #00CC00 #0000CC #DDDDDD #999999 #333333 #990000".split(" ");
293
- this.balloonDateFormat="MMM DD, YYYY";this.valueAxes=[];this.graphs=[];this.guides=[];this.gridAboveGraphs=!1;d.applyTheme(this,a,"AmCoordinateChart")},initChart:function(){d.AmCoordinateChart.base.initChart.call(this);this.drawGraphs=!0;var a=this.categoryAxis;a&&(this.categoryAxis=d.processObject(a,d.CategoryAxis,this.theme));this.processValueAxes();this.createValueAxes();this.processGraphs();this.processGuides();d.VML&&(this.startAlpha=1);this.setLegendData(this.graphs);this.gridAboveGraphs&&(this.gridSet.toFront(),
294
- this.bulletSet.toFront(),this.balloonsSet.toFront())},createValueAxes:function(){if(0===this.valueAxes.length){var a=new d.ValueAxis;this.addValueAxis(a)}},parseData:function(){this.processValueAxes();this.processGraphs()},parseSerialData:function(a){this.chartData=[];if(a)if(0<this.processTimeout){1>this.processCount&&(this.processCount=1);var b=a.length/this.processCount;this.parseCount=Math.ceil(b)-1;for(var c=0;c<b;c++)this.delayParseSerialData(a,c)}else this.parseCount=0,this.parsePartSerialData(a,
295
- 0,a.length,0);else this.onDataUpdated()},delayParseSerialData:function(a,b){var c=this,d=c.processCount;setTimeout(function(){c.parsePartSerialData.call(c,a,b*d,(b+1)*d,b)},c.processTimeout)},parsePartSerialData:function(a,b,c,e){c>a.length&&(c=a.length);var g=this.graphs,f={},h=this.seriesIdField;h||(h=this.categoryField);var k=!1,l,m=this.categoryAxis,n,q,p;m&&(k=m.parseDates,n=m.forceShowField,p=m.classNameField,q=m.labelColorField,l=m.categoryFunction);var t,r,w={},z;k&&(t=d.extractPeriod(m.minPeriod),
296
- r=t.period,t=t.count,z=d.getPeriodDuration(r,t));var x={};this.lookupTable=x;var u,A=this.dataDateFormat,y={};for(u=b;u<c;u++){var B={},D=a[u];b=D[this.categoryField];B.dataContext=D;B.category=l?l(b,D,m):String(b);n&&(B.forceShow=D[n]);p&&(B.className=D[p]);q&&(B.labelColor=D[q]);x[D[h]]=B;if(k&&(m.categoryFunction?b=m.categoryFunction(b,D,m):(!A||b instanceof Date||(b=b.toString()+" |"),b=d.getDate(b,A,m.minPeriod)),b=d.resetDateToMin(b,r,t,m.firstDayOfWeek),B.category=b,B.time=b.getTime(),isNaN(B.time)))continue;
297
- var C=this.valueAxes;B.axes={};B.x={};var I;for(I=0;I<C.length;I++){var H=C[I].id;B.axes[H]={};B.axes[H].graphs={};var Q;for(Q=0;Q<g.length;Q++){b=g[Q];var M=b.id,P=1.1;isNaN(b.gapPeriod)||(P=b.gapPeriod);var ia=b.periodValue;if(b.valueAxis.id==H){B.axes[H].graphs[M]={};var J={};J.index=u;var aa=D;b.dataProvider&&(aa=f);J.values=this.processValues(aa,b,ia);if(!b.connect||b.forceGap&&!isNaN(b.gapPeriod))if(y&&y[M]&&0<P&&B.time-w[M]>=z*P&&(y[M].gap=!0),b.forceGap){var P=0,ma;for(ma in J.values)P++;
298
- 0<P&&(w[M]=B.time,y[M]=J)}else w[M]=B.time,y[M]=J;this.processFields(b,J,aa);J.category=B.category;J.serialDataItem=B;J.graph=b;B.axes[H].graphs[M]=J}}}this.chartData[u]=B}if(this.parseCount==e){for(a=0;a<g.length;a++)b=g[a],b.dataProvider&&this.parseGraphData(b);this.dataChanged=!1;this.dispatchDataUpdated=!0;this.onDataUpdated()}},processValues:function(a,b,c){var e={},g,f=!1;"candlestick"!=b.type&&"ohlc"!=b.type||""===c||(f=!0);for(var h="value error open close low high".split(" "),k=0;k<h.length;k++){var l=
299
- h[k];"value"!=l&&"error"!=l&&f&&(c=l.charAt(0).toUpperCase()+l.slice(1));var m=a[b[l+"Field"]+c];null!==m&&(g=Number(m),isNaN(g)||(e[l]=g),"date"==b.valueAxis.type&&void 0!==m&&(g=d.getDate(m,b.chart.dataDateFormat),e[l]=g.getTime()))}return e},parseGraphData:function(a){var b=a.dataProvider,c=a.seriesIdField;c||(c=this.seriesIdField);c||(c=this.categoryField);var d;for(d=0;d<b.length;d++){var g=b[d],f=this.lookupTable[String(g[c])],h=a.valueAxis.id;f&&(h=f.axes[h].graphs[a.id],h.serialDataItem=f,
300
- h.values=this.processValues(g,a,a.periodValue),this.processFields(a,h,g))}},addValueAxis:function(a){a.chart=this;this.valueAxes.push(a);this.validateData()},removeValueAxesAndGraphs:function(){var a=this.valueAxes,b;for(b=a.length-1;-1<b;b--)this.removeValueAxis(a[b])},removeValueAxis:function(a){var b=this.graphs,c;for(c=b.length-1;0<=c;c--){var d=b[c];d&&d.valueAxis==a&&this.removeGraph(d)}b=this.valueAxes;for(c=b.length-1;0<=c;c--)b[c]==a&&b.splice(c,1);this.validateData()},addGraph:function(a){this.graphs.push(a);
301
- this.chooseGraphColor(a,this.graphs.length-1);this.validateData()},removeGraph:function(a){var b=this.graphs,c;for(c=b.length-1;0<=c;c--)b[c]==a&&(b.splice(c,1),a.destroy());this.validateData()},handleValueAxisZoom:function(){},processValueAxes:function(){var a=this.valueAxes,b;for(b=0;b<a.length;b++){var c=a[b],c=d.processObject(c,d.ValueAxis,this.theme);a[b]=c;c.chart=this;c.init();this.listenTo(c,"axisIntZoomed",this.handleValueAxisZoom);c.id||(c.id="valueAxisAuto"+b+"_"+(new Date).getTime());
302
- void 0===c.usePrefixes&&(c.usePrefixes=this.usePrefixes)}},processGuides:function(){var a=this.guides,b=this.categoryAxis;if(a)for(var c=0;c<a.length;c++){var e=a[c];(void 0!==e.category||void 0!==e.date)&&b&&b.addGuide(e);e.id||(e.id="guideAuto"+c+"_"+(new Date).getTime());var g=e.valueAxis;g?(d.isString(g)&&(g=this.getValueAxisById(g)),g?g.addGuide(e):this.valueAxes[0].addGuide(e)):isNaN(e.value)||this.valueAxes[0].addGuide(e)}},processGraphs:function(){var a=this.graphs,b;this.graphsById={};for(b=
303
- 0;b<a.length;b++){var c=a[b],c=d.processObject(c,d.AmGraph,this.theme);a[b]=c;this.chooseGraphColor(c,b);c.chart=this;c.init();d.isString(c.valueAxis)&&(c.valueAxis=this.getValueAxisById(c.valueAxis));c.valueAxis||(c.valueAxis=this.valueAxes[0]);c.id||(c.id="graphAuto"+b+"_"+(new Date).getTime());this.graphsById[c.id]=c}},formatString:function(a,b,c){var e=b.graph,g=e.valueAxis;g.duration&&b.values.value&&(g=d.formatDuration(b.values.value,g.duration,"",g.durationUnits,g.maxInterval,g.numberFormatter),
304
- a=a.split("[[value]]").join(g));a=d.massReplace(a,{"[[title]]":e.title,"[[description]]":b.description});a=c?d.fixNewLines(a):d.fixBrakes(a);return a=d.cleanFromEmpty(a)},getBalloonColor:function(a,b,c){var e=a.lineColor,g=a.balloonColor;c&&(g=e);c=a.fillColorsR;"object"==typeof c?e=c[0]:void 0!==c&&(e=c);b.isNegative&&(c=a.negativeLineColor,a=a.negativeFillColors,"object"==typeof a?c=a[0]:void 0!==a&&(c=a),void 0!==c&&(e=c));void 0!==b.color&&(e=b.color);void 0!==b.lineColor&&(e=b.lineColor);b=b.fillColors;
305
- void 0!==b&&(e=b,d.ifArray(b)&&(e=b[0]));void 0===g&&(g=e);return g},getGraphById:function(a){return d.getObjById(this.graphs,a)},getValueAxisById:function(a){return d.getObjById(this.valueAxes,a)},processFields:function(a,b,c){if(a.itemColors){var e=a.itemColors,g=b.index;b.color=g<e.length?e[g]:d.randomColor()}e="lineColor color alpha fillColors description bullet customBullet bulletSize bulletConfig url labelColor dashLength pattern gap className columnIndex".split(" ");for(g=0;g<e.length;g++){var f=
306
- e[g],h=a[f+"Field"];h&&(h=c[h],d.isDefined(h)&&(b[f]=h))}b.dataContext=c},chooseGraphColor:function(a,b){if(a.lineColor)a.lineColorR=a.lineColor;else{var c;c=this.colors.length>b?this.colors[b]:a.lineColorR?a.lineColorR:d.randomColor();a.lineColorR=c}a.fillColorsR=a.fillColors?a.fillColors:a.lineColorR;a.bulletBorderColorR=a.bulletBorderColor?a.bulletBorderColor:a.useLineColorForBulletBorder?a.lineColorR:a.bulletColor;a.bulletColorR=a.bulletColor?a.bulletColor:a.lineColorR;if(c=this.patterns)a.pattern=
307
- c[b]},handleLegendEvent:function(a){var b=a.type;if(a=a.dataItem){var c=a.hidden,d=a.showBalloon;switch(b){case "clickMarker":this.textClickEnabled&&(d?this.hideGraphsBalloon(a):this.showGraphsBalloon(a));break;case "clickLabel":d?this.hideGraphsBalloon(a):this.showGraphsBalloon(a);break;case "rollOverItem":c||this.highlightGraph(a);break;case "rollOutItem":c||this.unhighlightGraph();break;case "hideItem":this.hideGraph(a);break;case "showItem":this.showGraph(a)}}},highlightGraph:function(a){var b=
308
- this.graphs;if(b){var c,d=.2;this.legend&&(d=this.legend.rollOverGraphAlpha);if(1!=d)for(c=0;c<b.length;c++){var g=b[c];g!=a&&g.changeOpacity(d)}}},unhighlightGraph:function(){var a;this.legend&&(a=this.legend.rollOverGraphAlpha);if(1!=a){a=this.graphs;var b;for(b=0;b<a.length;b++)a[b].changeOpacity(1)}},showGraph:function(a){a.switchable&&(a.hidden=!1,this.dataChanged=!0,"xy"!=this.type&&(this.marginsUpdated=!1),this.chartCreated&&this.initChart())},hideGraph:function(a){a.switchable&&(this.dataChanged=
309
- !0,"xy"!=this.type&&(this.marginsUpdated=!1),a.hidden=!0,this.chartCreated&&this.initChart())},hideGraphsBalloon:function(a){a.showBalloon=!1;this.updateLegend()},showGraphsBalloon:function(a){a.showBalloon=!0;this.updateLegend()},updateLegend:function(){this.legend&&this.legend.invalidateSize()},resetAnimation:function(){var a=this.graphs;if(a){var b;for(b=0;b<a.length;b++)a[b].animationPlayed=!1}},animateAgain:function(){this.resetAnimation();this.validateNow()}})})();(function(){var d=window.AmCharts;d.TrendLine=d.Class({construct:function(a){this.cname="TrendLine";this.createEvents("click","rollOver","rollOut");this.isProtected=!1;this.dashLength=0;this.lineColor="#00CC00";this.lineThickness=this.lineAlpha=1;d.applyTheme(this,a,this.cname)},draw:function(){var a=this;a.destroy();var b=a.chart,c=b.container,e,g,f,h,k=a.categoryAxis,l=a.initialDate,m=a.initialCategory,n=a.finalDate,q=a.finalCategory,p=a.valueAxis,t=a.valueAxisX,r=a.initialXValue,w=a.finalXValue,
310
- z=a.initialValue,x=a.finalValue,u=p.recalculateToPercents,A=b.dataDateFormat;k&&(l&&(l=d.getDate(l,A,"fff"),a.initialDate=l,e=k.dateToCoordinate(l)),m&&(e=k.categoryToCoordinate(m)),n&&(n=d.getDate(n,A,"fff"),a.finalDate=n,g=k.dateToCoordinate(n)),q&&(g=k.categoryToCoordinate(q)));t&&!u&&(isNaN(r)||(e=t.getCoordinate(r)),isNaN(w)||(g=t.getCoordinate(w)));p&&!u&&(isNaN(z)||(f=p.getCoordinate(z)),isNaN(x)||(h=p.getCoordinate(x)));if(!(isNaN(e)||isNaN(g)||isNaN(f)||isNaN(f))){b.rotate?(k=[f,h],h=[e,
311
- g]):(k=[e,g],h=[f,h]);f=d.line(c,k,h,a.lineColor,a.lineAlpha,a.lineThickness,a.dashLength);e=k;g=h;n=k[1]-k[0];q=h[1]-h[0];0===n&&(n=.01);0===q&&(q=.01);l=n/Math.abs(n);m=q/Math.abs(q);q=90*Math.PI/180-Math.asin(n/(n*q/Math.abs(n*q)*Math.sqrt(Math.pow(n,2)+Math.pow(q,2))));n=Math.abs(5*Math.cos(q));q=Math.abs(5*Math.sin(q));e.push(k[1]-l*q,k[0]-l*q);g.push(h[1]+m*n,h[0]+m*n);h=d.polygon(c,e,g,"#ffffff",.005,0);c=c.set([h,f]);c.translate(b.marginLeftReal,b.marginTopReal);b.trendLinesSet.push(c);d.setCN(b,
312
- f,"trend-line");d.setCN(b,f,"trend-line-"+a.id);a.line=f;a.set=c;if(f=a.initialImage)f=d.processObject(f,d.Image,a.theme),f.chart=b,f.draw(),f.translate(e[0]+f.offsetX,g[0]+f.offsetY),c.push(f.set);if(f=a.finalImage)f=d.processObject(f,d.Image,a.theme),f.chart=b,f.draw(),f.translate(e[1]+f.offsetX,g[1]+f.offsetY),c.push(f.set);c.mouseup(function(){a.handleLineClick()}).mouseover(function(){a.handleLineOver()}).mouseout(function(){a.handleLineOut()});c.touchend&&c.touchend(function(){a.handleLineClick()});
313
- c.clipRect(0,0,b.plotAreaWidth,b.plotAreaHeight)}},handleLineClick:function(){this.fire({type:"click",trendLine:this,chart:this.chart})},handleLineOver:function(){var a=this.rollOverColor;void 0!==a&&this.line.attr({stroke:a});this.balloonText&&(clearTimeout(this.chart.hoverInt),a=this.line.getBBox(),this.chart.showBalloon(this.balloonText,this.lineColor,!0,this.x+a.x+a.width/2,this.y+a.y+a.height/2));this.fire({type:"rollOver",trendLine:this,chart:this.chart})},handleLineOut:function(){this.line.attr({stroke:this.lineColor});
314
- this.balloonText&&this.chart.hideBalloon();this.fire({type:"rollOut",trendLine:this,chart:this.chart})},destroy:function(){d.remove(this.set)}})})();(function(){var d=window.AmCharts;d.Image=d.Class({construct:function(a){this.cname="Image";this.height=this.width=20;this.rotation=this.offsetY=this.offsetX=0;this.balloonColor=this.color="#000000";this.opacity=1;d.applyTheme(this,a,this.cname)},draw:function(){var a=this;a.set&&a.set.remove();var b=a.chart.container;a.set=b.set();var c,d;a.url?(c=b.image(a.url,0,0,a.width,a.height),d=1):a.svgPath&&(c=b.path(a.svgPath),c.setAttr("fill",a.color),c.setAttr("stroke",a.outlineColor),b=c.getBBox(),d=
315
- Math.min(a.width/b.width,a.height/b.height));c&&(c.setAttr("opacity",a.opacity),a.set.rotate(a.rotation),c.translate(-a.width/2,-a.height/2,d),a.balloonText&&c.mouseover(function(){a.chart.showBalloon(a.balloonText,a.balloonColor,!0)}).mouseout(function(){a.chart.hideBalloon()}).touchend(function(){a.chart.hideBalloon()}).touchstart(function(){a.chart.showBalloon(a.balloonText,a.balloonColor,!0)}),a.set.push(c))},translate:function(a,b){this.set&&this.set.translate(a,b)}})})();(function(){var d=window.AmCharts;d.circle=function(a,b,c,e,g,f,h,k,l){0>=b&&(b=.001);if(void 0==g||0===g)g=.01;void 0===f&&(f="#000000");void 0===h&&(h=0);e={fill:c,stroke:f,"fill-opacity":e,"stroke-width":g,"stroke-opacity":h};a=isNaN(l)?a.circle(0,0,b).attr(e):a.ellipse(0,0,b,l).attr(e);k&&a.gradient("radialGradient",[c,d.adjustLuminosity(c,-.6)]);return a};d.text=function(a,b,c,e,g,f,h,k){f||(f="middle");"right"==f&&(f="end");"left"==f&&(f="start");isNaN(k)&&(k=1);void 0!==b&&(b=String(b),d.isIE&&
316
- !d.isModern&&(b=b.replace("&amp;","&"),b=b.replace("&","&amp;")));c={fill:c,"font-family":e,"font-size":g+"px",opacity:k};!0===h&&(c["font-weight"]="bold");c["text-anchor"]=f;return a.text(b,c)};d.polygon=function(a,b,c,e,g,f,h,k,l,m,n){isNaN(f)&&(f=.01);isNaN(k)&&(k=g);var q=e,p=!1;"object"==typeof q&&1<q.length&&(p=!0,q=q[0]);void 0===h&&(h=q);g={fill:q,stroke:h,"fill-opacity":g,"stroke-width":f,"stroke-opacity":k};void 0!==n&&0<n&&(g["stroke-dasharray"]=n);n=d.dx;f=d.dy;a.handDrawn&&(c=d.makeHD(b,
317
- c,a.handDrawScatter),b=c[0],c=c[1]);h=Math.round;m&&(h=Number);k="M"+(h(b[0])+n)+","+(h(c[0])+f);for(q=1;q<b.length;q++)m&&(b[q]=d.roundTo(b[q],5),c[q]=d.roundTo(c[q],5)),k+=" L"+(h(b[q])+n)+","+(h(c[q])+f);a=a.path(k+" Z").attr(g);p&&a.gradient("linearGradient",e,l);return a};d.rect=function(a,b,c,e,g,f,h,k,l,m,n){if(isNaN(b)||isNaN(c))return a.set();isNaN(f)&&(f=0);void 0===l&&(l=0);void 0===m&&(m=270);isNaN(g)&&(g=0);var q=e,p=!1;"object"==typeof q&&(q=q[0],p=!0);void 0===h&&(h=q);void 0===k&&
318
- (k=g);b=Math.round(b);c=Math.round(c);var t=0,r=0;0>b&&(b=Math.abs(b),t=-b);0>c&&(c=Math.abs(c),r=-c);t+=d.dx;r+=d.dy;g={fill:q,stroke:h,"fill-opacity":g,"stroke-opacity":k};void 0!==n&&0<n&&(g["stroke-dasharray"]=n);a=a.rect(t,r,b,c,l,f).attr(g);p&&a.gradient("linearGradient",e,m);return a};d.bullet=function(a,b,c,e,g,f,h,k,l,m,n,q,p){var t;"circle"==b&&(b="round");switch(b){case "round":t=d.circle(a,c/2,e,g,f,h,k);break;case "square":t=d.polygon(a,[-c/2,c/2,c/2,-c/2],[c/2,c/2,-c/2,-c/2],e,g,f,h,
319
- k,m-180,void 0,p);break;case "rectangle":t=d.polygon(a,[-c,c,c,-c],[c/2,c/2,-c/2,-c/2],e,g,f,h,k,m-180,void 0,p);break;case "diamond":t=d.polygon(a,[-c/2,0,c/2,0],[0,-c/2,0,c/2],e,g,f,h,k);break;case "triangleUp":t=d.triangle(a,c,0,e,g,f,h,k);break;case "triangleDown":t=d.triangle(a,c,180,e,g,f,h,k);break;case "triangleLeft":t=d.triangle(a,c,270,e,g,f,h,k);break;case "triangleRight":t=d.triangle(a,c,90,e,g,f,h,k);break;case "bubble":t=d.circle(a,c/2,e,g,f,h,k,!0);break;case "line":t=d.line(a,[-c/
320
- 2,c/2],[0,0],e,g,f,h,k);break;case "yError":t=a.set();t.push(d.line(a,[0,0],[-c/2,c/2],e,g,f));t.push(d.line(a,[-l,l],[-c/2,-c/2],e,g,f));t.push(d.line(a,[-l,l],[c/2,c/2],e,g,f));break;case "xError":t=a.set(),t.push(d.line(a,[-c/2,c/2],[0,0],e,g,f)),t.push(d.line(a,[-c/2,-c/2],[-l,l],e,g,f)),t.push(d.line(a,[c/2,c/2],[-l,l],e,g,f))}t&&t.pattern(n,NaN,q);return t};d.triangle=function(a,b,c,d,g,f,h,k){if(void 0===f||0===f)f=1;void 0===h&&(h="#000");void 0===k&&(k=0);d={fill:d,stroke:h,"fill-opacity":g,
321
- "stroke-width":f,"stroke-opacity":k};b/=2;var l;0===c&&(l=" M"+-b+","+b+" L0,"+-b+" L"+b+","+b+" Z");180==c&&(l=" M"+-b+","+-b+" L0,"+b+" L"+b+","+-b+" Z");90==c&&(l=" M"+-b+","+-b+" L"+b+",0 L"+-b+","+b+" Z");270==c&&(l=" M"+-b+",0 L"+b+","+b+" L"+b+","+-b+" Z");return a.path(l).attr(d)};d.line=function(a,b,c,e,g,f,h,k,l,m,n){if(a.handDrawn&&!n)return d.handDrawnLine(a,b,c,e,g,f,h,k,l,m,n);f={fill:"none","stroke-width":f};void 0!==h&&0<h&&(f["stroke-dasharray"]=h);isNaN(g)||(f["stroke-opacity"]=
322
- g);e&&(f.stroke=e);e=Math.round;m&&(e=Number,b[0]=d.roundTo(b[0],5),c[0]=d.roundTo(c[0],5));m=d.dx;g=d.dy;h="M"+(e(b[0])+m)+","+(e(c[0])+g);for(k=1;k<b.length;k++)b[k]=d.roundTo(b[k],5),c[k]=d.roundTo(c[k],5),h+=" L"+(e(b[k])+m)+","+(e(c[k])+g);if(d.VML)return a.path(h,void 0,!0).attr(f);l&&(h+=" M0,0 L0,0");return a.path(h).attr(f)};d.makeHD=function(a,b,c){for(var d=[],g=[],f=1;f<a.length;f++)for(var h=Number(a[f-1]),k=Number(b[f-1]),l=Number(a[f]),m=Number(b[f]),n=Math.round(Math.sqrt(Math.pow(l-
323
- h,2)+Math.pow(m-k,2))/50)+1,l=(l-h)/n,m=(m-k)/n,q=0;q<=n;q++){var p=k+q*m+Math.random()*c;d.push(h+q*l+Math.random()*c);g.push(p)}return[d,g]};d.handDrawnLine=function(a,b,c,e,g,f,h,k,l,m){var n,q=a.set();for(n=1;n<b.length;n++)for(var p=[b[n-1],b[n]],t=[c[n-1],c[n]],t=d.makeHD(p,t,a.handDrawScatter),p=t[0],t=t[1],r=1;r<p.length;r++)q.push(d.line(a,[p[r-1],p[r]],[t[r-1],t[r]],e,g,f+Math.random()*a.handDrawThickness-a.handDrawThickness/2,h,k,l,m,!0));return q};d.doNothing=function(a){return a};d.drop=
324
- function(a,b,c,d,g,f,h,k){var l=1/180*Math.PI,m=c-20,n=Math.sin(m*l)*b,q=Math.cos(m*l)*b,p=Math.sin((m+40)*l)*b,t=Math.cos((m+40)*l)*b,r=.8*b,w=-b/3,z=b/3;0===c&&(w=-w,z=0);180==c&&(z=0);90==c&&(w=0);270==c&&(w=0,z=-z);c={fill:d,stroke:h,"stroke-width":f,"stroke-opacity":k,"fill-opacity":g};b="M"+n+","+q+" A"+b+","+b+",0,1,1,"+p+","+t+(" A"+r+","+r+",0,0,0,"+(Math.sin((m+20)*l)*b+z)+","+(Math.cos((m+20)*l)*b+w));b+=" A"+r+","+r+",0,0,0,"+n+","+q;return a.path(b,void 0,void 0,"1000,1000").attr(c)};
325
- d.wedge=function(a,b,c,e,g,f,h,k,l,m,n,q,p,t){var r=Math.round;f=r(f);h=r(h);k=r(k);var w=r(h/f*k),z=d.VML,x=359.5+f/100;359.94<x&&(x=359.94);g>=x&&(g=x);var u=1/180*Math.PI,x=b+Math.sin(e*u)*k,A=c-Math.cos(e*u)*w,y=b+Math.sin(e*u)*f,B=c-Math.cos(e*u)*h,D=b+Math.sin((e+g)*u)*f,C=c-Math.cos((e+g)*u)*h,I=b+Math.sin((e+g)*u)*k,u=c-Math.cos((e+g)*u)*w,H={fill:d.adjustLuminosity(m.fill,-.2),"stroke-opacity":0,"fill-opacity":m["fill-opacity"]},Q=0;180<Math.abs(g)&&(Q=1);e=a.set();var M;z&&(x=r(10*x),y=
326
- r(10*y),D=r(10*D),I=r(10*I),A=r(10*A),B=r(10*B),C=r(10*C),u=r(10*u),b=r(10*b),l=r(10*l),c=r(10*c),f*=10,h*=10,k*=10,w*=10,1>Math.abs(g)&&1>=Math.abs(D-y)&&1>=Math.abs(C-B)&&(M=!0));g="";var P;q&&(H["fill-opacity"]=0,H["stroke-opacity"]=m["stroke-opacity"]/2,H.stroke=m.stroke);if(0<l){P=" M"+x+","+(A+l)+" L"+y+","+(B+l);z?(M||(P+=" A"+(b-f)+","+(l+c-h)+","+(b+f)+","+(l+c+h)+","+y+","+(B+l)+","+D+","+(C+l)),P+=" L"+I+","+(u+l),0<k&&(M||(P+=" B"+(b-k)+","+(l+c-w)+","+(b+k)+","+(l+c+w)+","+I+","+(l+u)+
327
- ","+x+","+(l+A)))):(P+=" A"+f+","+h+",0,"+Q+",1,"+D+","+(C+l)+" L"+I+","+(u+l),0<k&&(P+=" A"+k+","+w+",0,"+Q+",0,"+x+","+(A+l)));P+=" Z";var ia=l;z&&(ia/=10);for(var J=0;J<ia;J+=10){var aa=a.path(P,void 0,void 0,"1000,1000").attr(H);e.push(aa);aa.translate(0,-J)}P=a.path(" M"+x+","+A+" L"+x+","+(A+l)+" L"+y+","+(B+l)+" L"+y+","+B+" L"+x+","+A+" Z",void 0,void 0,"1000,1000").attr(H);l=a.path(" M"+D+","+C+" L"+D+","+(C+l)+" L"+I+","+(u+l)+" L"+I+","+u+" L"+D+","+C+" Z",void 0,void 0,"1000,1000").attr(H);
328
- e.push(P);e.push(l)}z?(M||(g=" A"+r(b-f)+","+r(c-h)+","+r(b+f)+","+r(c+h)+","+r(y)+","+r(B)+","+r(D)+","+r(C)),h=" M"+r(x)+","+r(A)+" L"+r(y)+","+r(B)+g+" L"+r(I)+","+r(u)):h=" M"+x+","+A+" L"+y+","+B+(" A"+f+","+h+",0,"+Q+",1,"+D+","+C)+" L"+I+","+u;0<k&&(z?M||(h+=" B"+(b-k)+","+(c-w)+","+(b+k)+","+(c+w)+","+I+","+u+","+x+","+A):h+=" A"+k+","+w+",0,"+Q+",0,"+x+","+A);a.handDrawn&&(k=d.line(a,[x,y],[A,B],m.stroke,m.thickness*Math.random()*a.handDrawThickness,m["stroke-opacity"]),e.push(k));a=a.path(h+
329
- " Z",void 0,void 0,"1000,1000").attr(m);if(n){k=[];for(w=0;w<n.length;w++)k.push(d.adjustLuminosity(m.fill,n[w]));"radial"!=t||d.isModern||(k=[]);0<k.length&&a.gradient(t+"Gradient",k)}d.isModern&&"radial"==t&&a.grad&&(a.grad.setAttribute("gradientUnits","userSpaceOnUse"),a.grad.setAttribute("r",f),a.grad.setAttribute("cx",b),a.grad.setAttribute("cy",c));a.pattern(q,NaN,p);e.wedge=a;e.push(a);return e};d.rgb2hex=function(a){return(a=a.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i))&&
330
- 4===a.length?"#"+("0"+parseInt(a[1],10).toString(16)).slice(-2)+("0"+parseInt(a[2],10).toString(16)).slice(-2)+("0"+parseInt(a[3],10).toString(16)).slice(-2):""};d.adjustLuminosity=function(a,b){a&&-1!=a.indexOf("rgb")&&(a=d.rgb2hex(a));a=String(a).replace(/[^0-9a-f]/gi,"");6>a.length&&(a=String(a[0])+String(a[0])+String(a[1])+String(a[1])+String(a[2])+String(a[2]));b=b||0;var c="#",e,g;for(g=0;3>g;g++)e=parseInt(a.substr(2*g,2),16),e=Math.round(Math.min(Math.max(0,e+e*b),255)).toString(16),c+=("00"+
331
- e).substr(e.length);return c}})();(function(){var d=window.AmCharts;d.Bezier=d.Class({construct:function(a,b,c,e,g,f,h,k,l,m,n){var q=a.chart,p=d.bezierX,t=d.bezierY;isNaN(q.bezierX)||(p=q.bezierX);isNaN(q.bezierY)||(t=q.bezierY);isNaN(p)&&(q.rotate?(p=20,t=4):(t=20,p=4));var r,w;"object"==typeof h&&1<h.length&&(w=!0,r=h,h=h[0]);"object"==typeof k&&(k=k[0]);0===k&&(h="none");f={fill:h,"fill-opacity":k,"stroke-width":f};void 0!==l&&0<l&&(f["stroke-dasharray"]=l);isNaN(g)||(f["stroke-opacity"]=g);e&&(f.stroke=e);e="M"+Math.round(b[0])+
332
- ","+Math.round(c[0])+" ";g=[];for(l=0;l<b.length;l++)isNaN(b[l])||isNaN(c[l])?(e+=this.drawSegment(g,p,t),l<b.length-1&&(e+="L"+b[l+1]+","+c[l+1]+" "),g=[]):g.push({x:Number(b[l]),y:Number(c[l])});e+=this.drawSegment(g,p,t);m?e+=m:d.VML||(e+="M0,0 L0,0");this.path=a.path(e).attr(f);this.node=this.path.node;w&&this.path.gradient("linearGradient",r,n)},drawSegment:function(a,b,c){var d="";if(2<a.length)for(var g=0;g<a.length-1;g++){var f=[],h=a[g-1],k=a[g],l=a[g+1],m=a[g+2];0===g?(f.push({x:k.x,y:k.y}),
333
- f.push({x:k.x,y:k.y}),f.push({x:l.x,y:l.y}),f.push({x:m.x,y:m.y})):g>=a.length-2?(f.push({x:h.x,y:h.y}),f.push({x:k.x,y:k.y}),f.push({x:l.x,y:l.y}),f.push({x:l.x,y:l.y})):(f.push({x:h.x,y:h.y}),f.push({x:k.x,y:k.y}),f.push({x:l.x,y:l.y}),f.push({x:m.x,y:m.y}));h=[];k=Math.round;h.push({x:k(f[1].x),y:k(f[1].y)});h.push({x:k((-f[0].x+b*f[1].x+f[2].x)/b),y:k((-f[0].y+c*f[1].y+f[2].y)/c)});h.push({x:k((f[1].x+b*f[2].x-f[3].x)/b),y:k((f[1].y+c*f[2].y-f[3].y)/c)});h.push({x:k(f[2].x),y:k(f[2].y)});d+="C"+
334
- h[1].x+","+h[1].y+","+h[2].x+","+h[2].y+","+h[3].x+","+h[3].y+" "}else 1<a.length&&(d+="L"+a[1].x+","+a[1].y);return d}})})();(function(){var d=window.AmCharts;d.AmDraw=d.Class({construct:function(a,b,c,e){d.SVG_NS="http://www.w3.org/2000/svg";d.SVG_XLINK="http://www.w3.org/1999/xlink";d.hasSVG=!!document.createElementNS&&!!document.createElementNS(d.SVG_NS,"svg").createSVGRect;1>b&&(b=10);1>c&&(c=10);this.div=a;this.width=b;this.height=c;this.rBin=document.createElement("div");d.hasSVG?(d.SVG=!0,b=this.createSvgElement("svg"),a.appendChild(b),this.container=b,this.addDefs(e),this.R=new d.SVGRenderer(this)):d.isIE&&d.VMLRenderer&&
335
- (d.VML=!0,d.vmlStyleSheet||(document.namespaces.add("amvml","urn:schemas-microsoft-com:vml"),31>document.styleSheets.length?(b=document.createStyleSheet(),b.addRule(".amvml","behavior:url(#default#VML); display:inline-block; antialias:true"),d.vmlStyleSheet=b):document.styleSheets[0].addRule(".amvml","behavior:url(#default#VML); display:inline-block; antialias:true")),this.container=a,this.R=new d.VMLRenderer(this,e),this.R.disableSelection(a))},createSvgElement:function(a){return document.createElementNS(d.SVG_NS,
336
- a)},circle:function(a,b,c,e){var g=new d.AmDObject("circle",this);g.attr({r:c,cx:a,cy:b});this.addToContainer(g.node,e);return g},ellipse:function(a,b,c,e,g){var f=new d.AmDObject("ellipse",this);f.attr({rx:c,ry:e,cx:a,cy:b});this.addToContainer(f.node,g);return f},setSize:function(a,b){0<a&&0<b&&(this.container.style.width=a+"px",this.container.style.height=b+"px")},rect:function(a,b,c,e,g,f,h){var k=new d.AmDObject("rect",this);d.VML&&(g=Math.round(100*g/Math.min(c,e)),c+=2*f,e+=2*f,k.bw=f,k.node.style.marginLeft=
337
- -f,k.node.style.marginTop=-f);1>c&&(c=1);1>e&&(e=1);k.attr({x:a,y:b,width:c,height:e,rx:g,ry:g,"stroke-width":f});this.addToContainer(k.node,h);return k},image:function(a,b,c,e,g,f){var h=new d.AmDObject("image",this);h.attr({x:b,y:c,width:e,height:g});this.R.path(h,a);this.addToContainer(h.node,f);return h},addToContainer:function(a,b){b||(b=this.container);b.appendChild(a)},text:function(a,b,c){return this.R.text(a,b,c)},path:function(a,b,c,e){var g=new d.AmDObject("path",this);e||(e="100,100");
338
- g.attr({cs:e});c?g.attr({dd:a}):g.attr({d:a});this.addToContainer(g.node,b);return g},set:function(a){return this.R.set(a)},remove:function(a){if(a){var b=this.rBin;b.appendChild(a);b.innerHTML=""}},renderFix:function(){var a=this.container,b=a.style;b.top="0px";b.left="0px";try{var c=a.getBoundingClientRect(),d=c.left-Math.round(c.left),g=c.top-Math.round(c.top);d&&(b.left=d+"px");g&&(b.top=g+"px")}catch(f){}},update:function(){this.R.update()},addDefs:function(a){if(d.hasSVG){var b=this.createSvgElement("desc"),
339
- c=this.container;c.setAttribute("version","1.1");c.style.position="absolute";this.setSize(this.width,this.height);if(a.accessibleTitle){var e=this.createSvgElement("text");c.appendChild(e);e.innerHTML=a.accessibleTitle;e.style.opacity=0}d.rtl&&(c.setAttribute("direction","rtl"),c.style.left="auto",c.style.right="0px");a&&(a.addCodeCredits&&b.appendChild(document.createTextNode("JavaScript chart by amCharts "+a.version)),a.accessibleDescription&&(b.innerHTML="",b.appendChild(document.createTextNode(a.accessibleDescription))),
340
- c.appendChild(b),a.defs&&(b=this.createSvgElement("defs"),c.appendChild(b),d.parseDefs(a.defs,b),this.defs=b))}}})})();(function(){var d=window.AmCharts;d.AmDObject=d.Class({construct:function(a,b){this.D=b;this.R=b.R;this.node=this.R.create(this,a);this.y=this.x=0;this.scale=1},attr:function(a){this.R.attr(this,a);return this},getAttr:function(a){return this.node.getAttribute(a)},setAttr:function(a,b){this.R.setAttr(this,a,b);return this},clipRect:function(a,b,c,d){this.R.clipRect(this,a,b,c,d)},translate:function(a,b,c,d){d||(a=Math.round(a),b=Math.round(b));this.R.move(this,a,b,c);this.x=a;this.y=b;this.scale=
341
- c;this.angle&&this.rotate(this.angle)},rotate:function(a,b){this.R.rotate(this,a,b);this.angle=a},animate:function(a,b,c){for(var e in a)if(a.hasOwnProperty(e)){var g=e,f=a[e];c=d.getEffect(c);this.R.animate(this,g,f,b,c)}},push:function(a){if(a){var b=this.node;b.appendChild(a.node);var c=a.clipPath;c&&b.appendChild(c);(a=a.grad)&&b.appendChild(a)}},text:function(a){this.R.setText(this,a)},remove:function(){this.stop();this.R.remove(this)},clear:function(){var a=this.node;if(a.hasChildNodes())for(;1<=
342
- a.childNodes.length;)a.removeChild(a.firstChild)},hide:function(){this.setAttr("visibility","hidden")},show:function(){this.setAttr("visibility","visible")},getBBox:function(){return this.R.getBBox(this)},toFront:function(){var a=this.node;if(a){this.prevNextNode=a.nextSibling;var b=a.parentNode;b&&b.appendChild(a)}},toPrevious:function(){var a=this.node;a&&this.prevNextNode&&(a=a.parentNode)&&a.insertBefore(this.prevNextNode,null)},toBack:function(){var a=this.node;if(a){this.prevNextNode=a.nextSibling;
343
- var b=a.parentNode;if(b){var c=b.firstChild;c&&b.insertBefore(a,c)}}},mouseover:function(a){this.R.addListener(this,"mouseover",a);return this},mouseout:function(a){this.R.addListener(this,"mouseout",a);return this},click:function(a){this.R.addListener(this,"click",a);return this},dblclick:function(a){this.R.addListener(this,"dblclick",a);return this},mousedown:function(a){this.R.addListener(this,"mousedown",a);return this},mouseup:function(a){this.R.addListener(this,"mouseup",a);return this},touchmove:function(a){this.R.addListener(this,
344
- "touchmove",a);return this},touchstart:function(a){this.R.addListener(this,"touchstart",a);return this},touchend:function(a){this.R.addListener(this,"touchend",a);return this},keyup:function(a){this.R.addListener(this,"keyup",a);return this},focus:function(a){this.R.addListener(this,"focus",a);return this},blur:function(a){this.R.addListener(this,"blur",a);return this},contextmenu:function(a){this.node.addEventListener?this.node.addEventListener("contextmenu",a,!0):this.R.addListener(this,"contextmenu",
345
- a);return this},stop:function(){d.removeFromArray(this.R.animations,this.an_translate);d.removeFromArray(this.R.animations,this.an_y);d.removeFromArray(this.R.animations,this.an_x)},length:function(){return this.node.childNodes.length},gradient:function(a,b,c){this.R.gradient(this,a,b,c)},pattern:function(a,b,c){a&&this.R.pattern(this,a,b,c)}})})();(function(){var d=window.AmCharts;d.VMLRenderer=d.Class({construct:function(a,b){this.chart=b;this.D=a;this.cNames={circle:"oval",ellipse:"oval",rect:"roundrect",path:"shape"};this.styleMap={x:"left",y:"top",width:"width",height:"height","font-family":"fontFamily","font-size":"fontSize",visibility:"visibility"}},create:function(a,b){var c;if("group"==b)c=document.createElement("div"),a.type="div";else if("text"==b)c=document.createElement("div"),a.type="text";else if("image"==b)c=document.createElement("img"),
346
- a.type="image";else{a.type="shape";a.shapeType=this.cNames[b];c=document.createElement("amvml:"+this.cNames[b]);var d=document.createElement("amvml:stroke");c.appendChild(d);a.stroke=d;var g=document.createElement("amvml:fill");c.appendChild(g);a.fill=g;g.className="amvml";d.className="amvml";c.className="amvml"}c.style.position="absolute";c.style.top=0;c.style.left=0;return c},path:function(a,b){a.node.setAttribute("src",b)},setAttr:function(a,b,c){if(void 0!==c){var e;8===document.documentMode&&
347
- (e=!0);var g=a.node,f=a.type,h=g.style;"r"==b&&(h.width=2*c,h.height=2*c);"oval"==a.shapeType&&("rx"==b&&(h.width=2*c),"ry"==b&&(h.height=2*c));"roundrect"==a.shapeType&&("width"!=b&&"height"!=b||--c);"cursor"==b&&(h.cursor=c);"cx"==b&&(h.left=c-d.removePx(h.width)/2);"cy"==b&&(h.top=c-d.removePx(h.height)/2);var k=this.styleMap[b];"width"==k&&0>c&&(c=0);void 0!==k&&(h[k]=c);"text"==f&&("text-anchor"==b&&(a.anchor=c,k=g.clientWidth,"end"==c&&(h.marginLeft=-k+"px"),"middle"==c&&(h.marginLeft=-(k/2)+
348
- "px",h.textAlign="center"),"start"==c&&(h.marginLeft="0px")),"fill"==b&&(h.color=c),"font-weight"==b&&(h.fontWeight=c));if(h=a.children)for(k=0;k<h.length;k++)h[k].setAttr(b,c);if("shape"==f){"cs"==b&&(g.style.width="100px",g.style.height="100px",g.setAttribute("coordsize",c));"d"==b&&g.setAttribute("path",this.svgPathToVml(c));"dd"==b&&g.setAttribute("path",c);f=a.stroke;a=a.fill;"stroke"==b&&(e?f.color=c:f.setAttribute("color",c));"stroke-width"==b&&(e?f.weight=c:f.setAttribute("weight",c));"stroke-opacity"==
349
- b&&(e?f.opacity=c:f.setAttribute("opacity",c));"stroke-dasharray"==b&&(h="solid",0<c&&3>c&&(h="dot"),3<=c&&6>=c&&(h="dash"),6<c&&(h="longdash"),e?f.dashstyle=h:f.setAttribute("dashstyle",h));if("fill-opacity"==b||"opacity"==b)0===c?e?a.on=!1:a.setAttribute("on",!1):e?a.opacity=c:a.setAttribute("opacity",c);"fill"==b&&(e?a.color=c:a.setAttribute("color",c));"rx"==b&&(e?g.arcSize=c+"%":g.setAttribute("arcsize",c+"%"))}}},attr:function(a,b){for(var c in b)b.hasOwnProperty(c)&&this.setAttr(a,c,b[c])},
350
- text:function(a,b,c){var e=new d.AmDObject("text",this.D),g=e.node;g.style.whiteSpace="pre";g.innerHTML=a;this.D.addToContainer(g,c);this.attr(e,b);return e},getBBox:function(a){return this.getBox(a.node)},getBox:function(a){var b=a.offsetLeft,c=a.offsetTop,d=a.offsetWidth,g=a.offsetHeight,f;if(a.hasChildNodes()){var h,k,l;for(l=0;l<a.childNodes.length;l++){f=this.getBox(a.childNodes[l]);var m=f.x;isNaN(m)||(isNaN(h)?h=m:m<h&&(h=m));var n=f.y;isNaN(n)||(isNaN(k)?k=n:n<k&&(k=n));m=f.width+m;isNaN(m)||
351
- (d=Math.max(d,m));f=f.height+n;isNaN(f)||(g=Math.max(g,f))}0>h&&(b+=h);0>k&&(c+=k)}return{x:b,y:c,width:d,height:g}},setText:function(a,b){var c=a.node;c&&(c.innerHTML=b);this.setAttr(a,"text-anchor",a.anchor)},addListener:function(a,b,c){a.node["on"+b]=c},move:function(a,b,c){var e=a.node,g=e.style;"text"==a.type&&(c-=d.removePx(g.fontSize)/2-1);"oval"==a.shapeType&&(b-=d.removePx(g.width)/2,c-=d.removePx(g.height)/2);a=a.bw;isNaN(a)||(b-=a,c-=a);isNaN(b)||isNaN(c)||(e.style.left=b+"px",e.style.top=
352
- c+"px")},svgPathToVml:function(a){var b=a.split(" ");a="";var c,d=Math.round,g;for(g=0;g<b.length;g++){var f=b[g],h=f.substring(0,1),f=f.substring(1),k=f.split(","),l=d(k[0])+","+d(k[1]);"M"==h&&(a+=" m "+l);"L"==h&&(a+=" l "+l);"Z"==h&&(a+=" x e");if("Q"==h){var m=c.length,n=c[m-1],q=k[0],p=k[1],l=k[2],t=k[3];c=d(c[m-2]/3+2/3*q);n=d(n/3+2/3*p);q=d(2/3*q+l/3);p=d(2/3*p+t/3);a+=" c "+c+","+n+","+q+","+p+","+l+","+t}"C"==h&&(a+=" c "+k[0]+","+k[1]+","+k[2]+","+k[3]+","+k[4]+","+k[5]);"A"==h&&(a+=" wa "+
353
- f);"B"==h&&(a+=" at "+f);c=k}return a},animate:function(a,b,c,d,g){var f=a.node,h=this.chart;a.animationFinished=!1;if("translate"==b){b=c.split(",");c=b[1];var k=f.offsetTop;h.animate(a,"left",f.offsetLeft,b[0],d,g,"px");h.animate(a,"top",k,c,d,g,"px")}},clipRect:function(a,b,c,d,g){a=a.node;0===b&&0===c?(a.style.width=d+"px",a.style.height=g+"px",a.style.overflow="hidden"):a.style.clip="rect("+c+"px "+(b+d)+"px "+(c+g)+"px "+b+"px)"},rotate:function(a,b,c){if(0!==Number(b)){var e=a.node;a=e.style;
354
- c||(c=this.getBGColor(e.parentNode));a.backgroundColor=c;a.paddingLeft=1;c=b*Math.PI/180;var g=Math.cos(c),f=Math.sin(c),h=d.removePx(a.left),k=d.removePx(a.top),l=e.offsetWidth,e=e.offsetHeight;b/=Math.abs(b);a.left=h+l/2-l/2*Math.cos(c)-b*e/2*Math.sin(c)+3;a.top=k-b*l/2*Math.sin(c)+b*e/2*Math.sin(c);a.cssText=a.cssText+"; filter:progid:DXImageTransform.Microsoft.Matrix(M11='"+g+"', M12='"+-f+"', M21='"+f+"', M22='"+g+"', sizingmethod='auto expand');"}},getBGColor:function(a){var b="#FFFFFF";if(a.style){var c=
355
- a.style.backgroundColor;""!==c?b=c:a.parentNode&&(b=this.getBGColor(a.parentNode))}return b},set:function(a){var b=new d.AmDObject("group",this.D);this.D.container.appendChild(b.node);if(a){var c;for(c=0;c<a.length;c++)b.push(a[c])}return b},gradient:function(a,b,c,d){var g="";"radialGradient"==b&&(b="gradientradial",c.reverse());"linearGradient"==b&&(b="gradient");var f;for(f=0;f<c.length;f++)g+=Math.round(100*f/(c.length-1))+"% "+c[f],f<c.length-1&&(g+=",");a=a.fill;90==d?d=0:270==d?d=180:180==
356
- d?d=90:0===d&&(d=270);8===document.documentMode?(a.type=b,a.angle=d):(a.setAttribute("type",b),a.setAttribute("angle",d));g&&(a.colors.value=g)},remove:function(a){a.clipPath&&this.D.remove(a.clipPath);this.D.remove(a.node)},disableSelection:function(a){a.onselectstart=function(){return!1};a.style.cursor="default"},pattern:function(a,b,c,e){c=a.node;a=a.fill;var g="none";b.color&&(g=b.color);c.fillColor=g;b=b.url;d.isAbsolute(b)||(b=e+b);8===document.documentMode?(a.type="tile",a.src=b):(a.setAttribute("type",
357
- "tile"),a.setAttribute("src",b))},update:function(){}})})();(function(){var d=window.AmCharts;d.SVGRenderer=d.Class({construct:function(a){this.D=a;this.animations=[]},create:function(a,b){return document.createElementNS(d.SVG_NS,b)},attr:function(a,b){for(var c in b)b.hasOwnProperty(c)&&this.setAttr(a,c,b[c])},setAttr:function(a,b,c){void 0!==c&&a.node.setAttribute(b,c)},animate:function(a,b,c,e,g){a.animationFinished=!1;var f=a.node;a["an_"+b]&&d.removeFromArray(this.animations,a["an_"+b]);"translate"==b?(f=(f=f.getAttribute("transform"))?String(f).substring(10,
358
- f.length-1):"0,0",f=f.split(", ").join(" "),f=f.split(" ").join(","),0===f&&(f="0,0")):f=Number(f.getAttribute(b));c={obj:a,frame:0,attribute:b,from:f,to:c,time:e,effect:g};this.animations.push(c);a["an_"+b]=c},update:function(){var a,b=this.animations;for(a=b.length-1;0<=a;a--){var c=b[a],e=c.time*d.updateRate,g=c.frame+1,f=c.obj,h=c.attribute,k,l,m;if(g<=e){c.frame++;if("translate"==h){k=c.from.split(",");h=Number(k[0]);k=Number(k[1]);isNaN(k)&&(k=0);l=c.to.split(",");m=Number(l[0]);l=Number(l[1]);
359
- m=0===m-h?m:Math.round(d[c.effect](0,g,h,m-h,e));c=0===l-k?l:Math.round(d[c.effect](0,g,k,l-k,e));h="transform";if(isNaN(m)||isNaN(c))continue;c="translate("+m+","+c+")"}else l=Number(c.from),k=Number(c.to),m=k-l,c=d[c.effect](0,g,l,m,e),isNaN(c)&&(c=k),0===m&&this.animations.splice(a,1);this.setAttr(f,h,c)}else"translate"==h?(l=c.to.split(","),m=Number(l[0]),l=Number(l[1]),f.translate(m,l)):(k=Number(c.to),this.setAttr(f,h,k)),f.animationFinished=!0,this.animations.splice(a,1)}},getBBox:function(a){if(a=
360
- a.node)try{return a.getBBox()}catch(b){}return{width:0,height:0,x:0,y:0}},path:function(a,b){a.node.setAttributeNS(d.SVG_XLINK,"xlink:href",b)},clipRect:function(a,b,c,e,g){var f=a.node,h=a.clipPath;h&&this.D.remove(h);var k=f.parentNode;k&&(f=document.createElementNS(d.SVG_NS,"clipPath"),h=d.getUniqueId(),f.setAttribute("id",h),this.D.rect(b,c,e,g,0,0,f),k.appendChild(f),b="#",d.baseHref&&!d.isIE&&(b=this.removeTarget(window.location.href)+b),this.setAttr(a,"clip-path","url("+b+h+")"),this.clipPathC++,
361
- a.clipPath=f)},text:function(a,b,c){var e=new d.AmDObject("text",this.D);a=String(a).split("\n");var g=d.removePx(b["font-size"]),f;for(f=0;f<a.length;f++){var h=this.create(null,"tspan");h.appendChild(document.createTextNode(a[f]));h.setAttribute("y",(g+2)*f+Math.round(g/2));h.setAttribute("x",0);e.node.appendChild(h)}e.node.setAttribute("y",Math.round(g/2));this.attr(e,b);this.D.addToContainer(e.node,c);return e},setText:function(a,b){var c=a.node;c&&(c.removeChild(c.firstChild),c.appendChild(document.createTextNode(b)))},
362
- move:function(a,b,c,d){isNaN(b)&&(b=0);isNaN(c)&&(c=0);b="translate("+b+","+c+")";d&&(b=b+" scale("+d+")");this.setAttr(a,"transform",b)},rotate:function(a,b){var c=a.node.getAttribute("transform"),d="rotate("+b+")";c&&(d=c+" "+d);this.setAttr(a,"transform",d)},set:function(a){var b=new d.AmDObject("g",this.D);this.D.container.appendChild(b.node);if(a){var c;for(c=0;c<a.length;c++)b.push(a[c])}return b},addListener:function(a,b,c){a.node["on"+b]=c},gradient:function(a,b,c,e){var g=a.node,f=a.grad;
363
- f&&this.D.remove(f);b=document.createElementNS(d.SVG_NS,b);f=d.getUniqueId();b.setAttribute("id",f);if(!isNaN(e)){var h=0,k=0,l=0,m=0;90==e?l=100:270==e?m=100:180==e?h=100:0===e&&(k=100);b.setAttribute("x1",h+"%");b.setAttribute("x2",k+"%");b.setAttribute("y1",l+"%");b.setAttribute("y2",m+"%")}for(e=0;e<c.length;e++)h=document.createElementNS(d.SVG_NS,"stop"),k=100*e/(c.length-1),0===e&&(k=0),h.setAttribute("offset",k+"%"),h.setAttribute("stop-color",c[e]),b.appendChild(h);g.parentNode.appendChild(b);
364
- c="#";d.baseHref&&!d.isIE&&(c=this.removeTarget(window.location.href)+c);g.setAttribute("fill","url("+c+f+")");a.grad=b},removeTarget:function(a){return a.split("#")[0]},pattern:function(a,b,c,e){var g=a.node;isNaN(c)&&(c=1);var f=a.patternNode;f&&this.D.remove(f);var f=document.createElementNS(d.SVG_NS,"pattern"),h=d.getUniqueId(),k=b;b.url&&(k=b.url);d.isAbsolute(k)||-1!=k.indexOf("data:image")||(k=e+k);e=Number(b.width);isNaN(e)&&(e=4);var l=Number(b.height);isNaN(l)&&(l=4);e/=c;l/=c;c=b.x;isNaN(c)&&
365
- (c=0);var m=-Math.random()*Number(b.randomX);isNaN(m)||(c=m);m=b.y;isNaN(m)&&(m=0);var n=-Math.random()*Number(b.randomY);isNaN(n)||(m=n);f.setAttribute("id",h);f.setAttribute("width",e);f.setAttribute("height",l);f.setAttribute("patternUnits","userSpaceOnUse");f.setAttribute("xlink:href",k);b.color&&(n=document.createElementNS(d.SVG_NS,"rect"),n.setAttributeNS(null,"height",e),n.setAttributeNS(null,"width",l),n.setAttributeNS(null,"fill",b.color),f.appendChild(n));this.D.image(k,0,0,e,l,f).translate(c,
366
- m);k="#";d.baseHref&&!d.isIE&&(k=this.removeTarget(window.location.href)+k);g.setAttribute("fill","url("+k+h+")");a.patternNode=f;g.parentNode.appendChild(f)},remove:function(a){a.clipPath&&this.D.remove(a.clipPath);a.grad&&this.D.remove(a.grad);a.patternNode&&this.D.remove(a.patternNode);this.D.remove(a.node)}})})();(function(){var d=window.AmCharts;d.AmLegend=d.Class({construct:function(a){this.enabled=!0;this.cname="AmLegend";this.createEvents("rollOverMarker","rollOverItem","rollOutMarker","rollOutItem","showItem","hideItem","clickMarker","clickLabel");this.position="bottom";this.borderColor=this.color="#000000";this.borderAlpha=0;this.markerLabelGap=5;this.verticalGap=10;this.align="left";this.horizontalGap=0;this.spacing=10;this.markerDisabledColor="#AAB3B3";this.markerType="square";this.markerSize=16;this.markerBorderThickness=
367
- this.markerBorderAlpha=1;this.marginBottom=this.marginTop=0;this.marginLeft=this.marginRight=20;this.autoMargins=!0;this.valueWidth=50;this.switchable=!0;this.switchType="x";this.switchColor="#FFFFFF";this.rollOverColor="#CC0000";this.reversedOrder=!1;this.labelText="[[title]]";this.valueText="[[value]]";this.accessibleLabel="[[title]]";this.useMarkerColorForLabels=!1;this.rollOverGraphAlpha=1;this.textClickEnabled=!1;this.equalWidths=!0;this.backgroundColor="#FFFFFF";this.backgroundAlpha=0;this.useGraphSettings=
368
- !1;this.showEntries=!0;this.labelDx=0;d.applyTheme(this,a,this.cname)},setData:function(a){this.legendData=a;this.invalidateSize()},invalidateSize:function(){this.destroy();this.entries=[];this.valueLabels=[];var a=this.legendData;this.enabled&&(d.ifArray(a)||d.ifArray(this.data))&&this.drawLegend()},drawLegend:function(){var a=this.chart,b=this.position,c=this.width,e=a.divRealWidth,g=a.divRealHeight,f=this.div,h=this.legendData;this.data&&(h=this.combineLegend?this.legendData.concat(this.data):
369
- this.data);isNaN(this.fontSize)&&(this.fontSize=a.fontSize);this.maxColumnsReal=this.maxColumns;if("right"==b||"left"==b)this.maxColumnsReal=1,this.autoMargins&&(this.marginLeft=this.marginRight=10);else if(this.autoMargins){this.marginRight=a.marginRight;this.marginLeft=a.marginLeft;var k=a.autoMarginOffset;"bottom"==b?(this.marginBottom=k,this.marginTop=0):(this.marginTop=k,this.marginBottom=0)}c=void 0!==c?d.toCoordinate(c,e):"right"!=b&&"left"!=b?a.realWidth:0<this.ieW?this.ieW:a.realWidth;"outside"==
370
- b?(c=f.offsetWidth,g=f.offsetHeight,f.clientHeight&&(c=f.clientWidth,g=f.clientHeight)):(isNaN(c)||(f.style.width=c+"px"),f.className="amChartsLegend "+a.classNamePrefix+"-legend-div");this.divWidth=c;(b=this.container)?(b.container.innerHTML="",f.appendChild(b.container),b.width=c,b.height=g,b.setSize(c,g),b.addDefs(a)):b=new d.AmDraw(f,c,g,a);this.container=b;this.lx=0;this.ly=8;g=this.markerSize;g>this.fontSize&&(this.ly=g/2-1);0<g&&(this.lx+=g+this.markerLabelGap);this.titleWidth=0;if(g=this.title)g=
371
- d.text(this.container,g,this.color,a.fontFamily,this.fontSize,"start",!0),d.setCN(a,g,"legend-title"),g.translate(this.marginLeft,this.marginTop+this.verticalGap+this.ly+1),a=g.getBBox(),this.titleWidth=a.width+15,this.titleHeight=a.height+6;this.index=this.maxLabelWidth=0;if(this.showEntries){for(a=0;a<h.length;a++)this.createEntry(h[a]);for(a=this.index=0;a<h.length;a++)this.createValue(h[a])}this.arrangeEntries();this.updateValues()},arrangeEntries:function(){var a=this.position,b=this.marginLeft+
372
- this.titleWidth,c=this.marginRight,e=this.marginTop,g=this.marginBottom,f=this.horizontalGap,h=this.div,k=this.divWidth,l=this.maxColumnsReal,m=this.verticalGap,n=this.spacing,q=k-c-b,p=0,t=0,r=this.container;this.set&&this.set.remove();var w=r.set();this.set=w;var z=r.set();w.push(z);var x=this.entries,u,A;for(A=0;A<x.length;A++){u=x[A].getBBox();var y=u.width;y>p&&(p=y);u=u.height;u>t&&(t=u)}var y=t=0,B=f,D=0,C=0;for(A=0;A<x.length;A++){var I=x[A];this.reversedOrder&&(I=x[x.length-A-1]);u=I.getBBox();
373
- var H;this.equalWidths?H=y*(p+n+this.markerLabelGap):(H=B,B=B+u.width+f+n);H+u.width>q&&0<A&&0!==y&&(t++,H=y=0,B=H+u.width+f+n,D=D+C+m,C=0);u.height>C&&(C=u.height);I.translate(H,D);y++;!isNaN(l)&&y>=l&&(y=0,t++,D=D+C+m,B=f,C=0);z.push(I)}u=z.getBBox();l=u.height+2*m-1;"left"==a||"right"==a?(n=u.width+2*f,k=n+b+c,h.style.width=k+"px",this.ieW=k):n=k-b-c-1;c=d.polygon(this.container,[0,n,n,0],[0,0,l,l],this.backgroundColor,this.backgroundAlpha,1,this.borderColor,this.borderAlpha);d.setCN(this.chart,
374
- c,"legend-bg");w.push(c);w.translate(b,e);c.toBack();b=f;if("top"==a||"bottom"==a||"absolute"==a||"outside"==a)"center"==this.align?b=f+(n-u.width)/2:"right"==this.align&&(b=f+n-u.width);z.translate(b,m+1);this.titleHeight>l&&(l=this.titleHeight);e=l+e+g+1;0>e&&(e=0);"absolute"!=a&&"outside"!=a&&e>this.chart.divRealHeight&&(h.style.top="0px");h.style.height=Math.round(e)+"px";r.setSize(this.divWidth,e)},createEntry:function(a){if(!1!==a.visibleInLegend&&!a.hideFromLegend){var b=this,c=b.chart,e=b.useGraphSettings,
375
- g=a.markerType;g&&(e=!1);a.legendEntryWidth=b.markerSize;g||(g=b.markerType);var f=a.color,h=a.alpha;a.legendKeyColor&&(f=a.legendKeyColor());a.legendKeyAlpha&&(h=a.legendKeyAlpha());var k;!0===a.hidden&&(k=f=b.markerDisabledColor);var l=a.pattern,m,n=a.customMarker;n||(n=b.customMarker);var q=b.container,p=b.markerSize,t=0,r=0,w=p/2;if(e){e=a.type;b.switchType=void 0;if("line"==e||"step"==e||"smoothedLine"==e||"ohlc"==e)m=q.set(),a.hidden||(f=a.lineColorR,k=a.bulletBorderColorR),t=d.line(q,[0,2*
376
- p],[p/2,p/2],f,a.lineAlpha,a.lineThickness,a.dashLength),d.setCN(c,t,"graph-stroke"),m.push(t),a.bullet&&(a.hidden||(f=a.bulletColorR),t=d.bullet(q,a.bullet,a.bulletSize,f,a.bulletAlpha,a.bulletBorderThickness,k,a.bulletBorderAlpha))&&(d.setCN(c,t,"graph-bullet"),t.translate(p+1,p/2),m.push(t)),w=0,t=p,r=p/3;else{a.getGradRotation&&(m=a.getGradRotation(),0===m&&(m=180));t=a.fillColorsR;!0===a.hidden&&(t=f);if(m=b.createMarker("rectangle",t,a.fillAlphas,a.lineThickness,f,a.lineAlpha,m,l,a.dashLength))w=
377
- p,m.translate(w,p/2);t=p}d.setCN(c,m,"graph-"+e);d.setCN(c,m,"graph-"+a.id)}else if(n)m=q.image(n,0,0,p,p);else{var z;isNaN(b.gradientRotation)||(z=180+b.gradientRotation);(m=b.createMarker(g,f,h,void 0,void 0,void 0,z,l))&&m.translate(p/2,p/2)}d.setCN(c,m,"legend-marker");b.addListeners(m,a);q=q.set([m]);b.switchable&&a.switchable&&q.setAttr("cursor","pointer");void 0!==a.id&&d.setCN(c,q,"legend-item-"+a.id);d.setCN(c,q,a.className,!0);k=b.switchType;var x;k&&"none"!=k&&0<p&&("x"==k?(x=b.createX(),
378
- x.translate(p/2,p/2)):x=b.createV(),x.dItem=a,!0!==a.hidden?"x"==k?x.hide():x.show():"x"!=k&&x.hide(),b.switchable||x.hide(),b.addListeners(x,a),a.legendSwitch=x,q.push(x),d.setCN(c,x,"legend-switch"));k=b.color;a.showBalloon&&b.textClickEnabled&&void 0!==b.selectedColor&&(k=b.selectedColor);b.useMarkerColorForLabels&&!l&&(k=f);!0===a.hidden&&(k=b.markerDisabledColor);f=d.massReplace(b.labelText,{"[[title]]":a.title});void 0!==b.tabIndex&&(q.setAttr("tabindex",b.tabIndex),q.setAttr("role","menuitem"),
379
- q.keyup(function(c){13==c.keyCode&&b.clickMarker(a,c)}));c.accessible&&b.accessibleLabel&&(l=d.massReplace(b.accessibleLabel,{"[[title]]":a.title}),c.makeAccessible(q,l));l=b.fontSize;m&&(p<=l&&(p=p/2+b.ly-l/2+(l+2-p)/2-r,m.translate(w,p),x&&x.translate(x.x,p)),a.legendEntryWidth=m.getBBox().width);var u;f&&(f=d.fixBrakes(f),a.legendTextReal=f,u=b.labelWidth,u=isNaN(u)?d.text(b.container,f,k,c.fontFamily,l,"start"):d.wrappedText(b.container,f,k,c.fontFamily,l,"start",!1,u,0),d.setCN(c,u,"legend-label"),
380
- u.translate(b.lx+t,b.ly),q.push(u),b.labelDx=t,c=u.getBBox().width,b.maxLabelWidth<c&&(b.maxLabelWidth=c));b.entries[b.index]=q;a.legendEntry=b.entries[b.index];a.legendMarker=m;a.legendLabel=u;b.index++}},addListeners:function(a,b){var c=this;a&&a.mouseover(function(a){c.rollOverMarker(b,a)}).mouseout(function(a){c.rollOutMarker(b,a)}).click(function(a){c.clickMarker(b,a)})},rollOverMarker:function(a,b){this.switchable&&this.dispatch("rollOverMarker",a,b);this.dispatch("rollOverItem",a,b)},rollOutMarker:function(a,
381
- b){this.switchable&&this.dispatch("rollOutMarker",a,b);this.dispatch("rollOutItem",a,b)},clickMarker:function(a,b){this.switchable&&(!0===a.hidden?this.dispatch("showItem",a,b):this.dispatch("hideItem",a,b));this.dispatch("clickMarker",a,b)},rollOverLabel:function(a,b){a.hidden||this.textClickEnabled&&a.legendLabel&&a.legendLabel.attr({fill:this.rollOverColor});this.dispatch("rollOverItem",a,b)},rollOutLabel:function(a,b){if(!a.hidden&&this.textClickEnabled&&a.legendLabel){var c=this.color;void 0!==
382
- this.selectedColor&&a.showBalloon&&(c=this.selectedColor);this.useMarkerColorForLabels&&(c=a.lineColor,void 0===c&&(c=a.color));a.legendLabel.attr({fill:c})}this.dispatch("rollOutItem",a,b)},clickLabel:function(a,b){this.textClickEnabled?a.hidden||this.dispatch("clickLabel",a,b):this.switchable&&(!0===a.hidden?this.dispatch("showItem",a,b):this.dispatch("hideItem",a,b))},dispatch:function(a,b,c){a={type:a,dataItem:b,target:this,event:c,chart:this.chart};this.chart&&this.chart.handleLegendEvent(a);
383
- this.fire(a)},createValue:function(a){var b=this,c=b.fontSize,e=b.chart;if(!1!==a.visibleInLegend&&!a.hideFromLegend){var g=b.maxLabelWidth;b.forceWidth&&(g=b.labelWidth);b.equalWidths||(b.valueAlign="left");"left"==b.valueAlign&&a.legendLabel&&(g=a.legendLabel.getBBox().width);var f=g;if(b.valueText&&0<b.valueWidth){var h=b.color;b.useMarkerColorForValues&&(h=a.color,a.legendKeyColor&&(h=a.legendKeyColor()));!0===a.hidden&&(h=b.markerDisabledColor);var k=b.valueText,g=g+b.lx+b.labelDx+b.markerLabelGap+
384
- b.valueWidth,l="end";"left"==b.valueAlign&&(g-=b.valueWidth,l="start");h=d.text(b.container,k,h,b.chart.fontFamily,c,l);d.setCN(e,h,"legend-value");h.translate(g,b.ly);b.entries[b.index].push(h);f+=b.valueWidth+2*b.markerLabelGap;h.dItem=a;b.valueLabels.push(h)}b.index++;e=b.markerSize;e<c+7&&(e=c+7,d.VML&&(e+=3));c=b.container.rect(a.legendEntryWidth,0,f,e,0,0).attr({stroke:"none",fill:"#fff","fill-opacity":.005});c.dItem=a;b.entries[b.index-1].push(c);c.mouseover(function(c){b.rollOverLabel(a,c)}).mouseout(function(c){b.rollOutLabel(a,
385
- c)}).click(function(c){b.clickLabel(a,c)})}},createV:function(){var a=this.markerSize;return d.polygon(this.container,[a/5,a/2,a-a/5,a/2],[a/3,a-a/5,a/5,a/1.7],this.switchColor)},createX:function(){var a=(this.markerSize-4)/2,b={stroke:this.switchColor,"stroke-width":3},c=this.container,e=d.line(c,[-a,a],[-a,a]).attr(b),a=d.line(c,[-a,a],[a,-a]).attr(b);return this.container.set([e,a])},createMarker:function(a,b,c,e,g,f,h,k,l){var m=this.markerSize,n=this.container;g||(g=this.markerBorderColor);g||
386
- (g=b);isNaN(e)&&(e=this.markerBorderThickness);isNaN(f)&&(f=this.markerBorderAlpha);return d.bullet(n,a,m,b,c,e,g,f,m,h,k,this.chart.path,l)},validateNow:function(){this.invalidateSize()},updateValues:function(){var a=this.valueLabels,b=this.chart,c,e=this.data;if(a)for(c=0;c<a.length;c++){var g=a[c],f=g.dItem;f.periodDataItem=void 0;f.periodPercentDataItem=void 0;var h=" ";if(e)f.value?g.text(f.value):g.text("");else{var k=null;if(void 0!==f.type){var k=f.currentDataItem,l=this.periodValueText;f.legendPeriodValueText&&
387
- (l=f.legendPeriodValueText);f.legendPeriodValueTextR&&(l=f.legendPeriodValueTextR);k?(h=this.valueText,f.legendValueText&&(h=f.legendValueText),f.legendValueTextR&&(h=f.legendValueTextR),h=b.formatString(h,k)):l&&b.formatPeriodString&&(l=d.massReplace(l,{"[[title]]":f.title}),h=b.formatPeriodString(l,f))}else h=b.formatString(this.valueText,f);l=f;k&&(l=k);var m=this.valueFunction;m&&(h=m(l,h,b.periodDataItem));var n;this.useMarkerColorForLabels&&!k&&f.lastDataItem&&(k=f.lastDataItem);k?n=b.getBalloonColor(f,
388
- k):f.legendKeyColor&&(n=f.legendKeyColor());f.legendColorFunction&&(n=f.legendColorFunction(l,h,f.periodDataItem,f.periodPercentDataItem));g.text(h);if(!f.pattern&&(this.useMarkerColorForValues&&g.setAttr("fill",n),this.useMarkerColorForLabels)){if(g=f.legendMarker)g.setAttr("fill",n),g.setAttr("stroke",n);(g=f.legendLabel)&&(f.hidden?g.setAttr("fill",this.markerDisabledColor):g.setAttr("fill",n))}}}},renderFix:function(){if(!d.VML&&this.enabled){var a=this.container;a&&a.renderFix()}},destroy:function(){this.div.innerHTML=
389
- "";d.remove(this.set)}})})();(function(){var d=window.AmCharts;d.formatMilliseconds=function(a,b){if(-1!=a.indexOf("fff")){var c=b.getMilliseconds(),d=String(c);10>c&&(d="00"+c);10<=c&&100>c&&(d="0"+c);a=a.replace(/fff/g,d)}return a};d.extractPeriod=function(a){var b=d.stripNumbers(a),c=1;b!=a&&(c=Number(a.slice(0,a.indexOf(b))));return{period:b,count:c}};d.getDate=function(a,b,c){return a instanceof Date?d.newDate(a,c):b&&isNaN(a)?d.stringToDate(a,b):new Date(a)};d.daysInMonth=function(a){return(new Date(a.getYear(),a.getMonth()+
390
- 1,0)).getDate()};d.newDate=function(a,b){return b&&-1==b.indexOf("fff")?new Date(a):new Date(a.getFullYear(),a.getMonth(),a.getDate(),a.getHours(),a.getMinutes(),a.getSeconds(),a.getMilliseconds())};d.resetDateToMin=function(a,b,c,e){void 0===e&&(e=1);var g,f,h,k,l,m,n;d.useUTC?(g=a.getUTCFullYear(),f=a.getUTCMonth(),h=a.getUTCDate(),k=a.getUTCHours(),l=a.getUTCMinutes(),m=a.getUTCSeconds(),n=a.getUTCMilliseconds(),a=a.getUTCDay()):(g=a.getFullYear(),f=a.getMonth(),h=a.getDate(),k=a.getHours(),l=
391
- a.getMinutes(),m=a.getSeconds(),n=a.getMilliseconds(),a=a.getDay());switch(b){case "YYYY":g=Math.floor(g/c)*c;f=0;h=1;n=m=l=k=0;break;case "MM":f=Math.floor(f/c)*c;h=1;n=m=l=k=0;break;case "WW":h=a>=e?h-a+e:h-(7+a)+e;n=m=l=k=0;break;case "DD":n=m=l=k=0;break;case "hh":k=Math.floor(k/c)*c;n=m=l=0;break;case "mm":l=Math.floor(l/c)*c;n=m=0;break;case "ss":m=Math.floor(m/c)*c;n=0;break;case "fff":n=Math.floor(n/c)*c}d.useUTC?(a=new Date,a.setUTCFullYear(g,f,h),a.setUTCHours(k,l,m,n)):a=new Date(g,f,h,
392
- k,l,m,n);return a};d.getPeriodDuration=function(a,b){void 0===b&&(b=1);var c;switch(a){case "YYYY":c=316224E5;break;case "MM":c=26784E5;break;case "WW":c=6048E5;break;case "DD":c=864E5;break;case "hh":c=36E5;break;case "mm":c=6E4;break;case "ss":c=1E3;break;case "fff":c=1}return c*b};d.intervals={s:{nextInterval:"ss",contains:1E3},ss:{nextInterval:"mm",contains:60,count:0},mm:{nextInterval:"hh",contains:60,count:1},hh:{nextInterval:"DD",contains:24,count:2},DD:{nextInterval:"",contains:Infinity,count:3}};
393
- d.getMaxInterval=function(a,b){var c=d.intervals;return a>=c[b].contains?(a=Math.round(a/c[b].contains),b=c[b].nextInterval,d.getMaxInterval(a,b)):"ss"==b?c[b].nextInterval:b};d.dayNames="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" ");d.shortDayNames="Sun Mon Tue Wed Thu Fri Sat".split(" ");d.monthNames="January February March April May June July August September October November December".split(" ");d.shortMonthNames="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" ");
394
- d.getWeekNumber=function(a){a=new Date(a);a.setHours(0,0,0);a.setDate(a.getDate()+4-(a.getDay()||7));var b=new Date(a.getFullYear(),0,1);return Math.ceil(((a-b)/864E5+1)/7)};d.stringToDate=function(a,b){var c={},e=[{pattern:"YYYY",period:"year"},{pattern:"YY",period:"year"},{pattern:"MM",period:"month"},{pattern:"M",period:"month"},{pattern:"DD",period:"date"},{pattern:"D",period:"date"},{pattern:"JJ",period:"hours"},{pattern:"J",period:"hours"},{pattern:"HH",period:"hours"},{pattern:"H",period:"hours"},
395
- {pattern:"KK",period:"hours"},{pattern:"K",period:"hours"},{pattern:"LL",period:"hours"},{pattern:"L",period:"hours"},{pattern:"NN",period:"minutes"},{pattern:"N",period:"minutes"},{pattern:"SS",period:"seconds"},{pattern:"S",period:"seconds"},{pattern:"QQQ",period:"milliseconds"},{pattern:"QQ",period:"milliseconds"},{pattern:"Q",period:"milliseconds"}],g=!0,f=b.indexOf("AA");-1!=f&&(a.substr(f,2),"pm"==a.toLowerCase&&(g=!1));var f=b,h,k,l;for(l=0;l<e.length;l++)k=e[l].period,c[k]=0,"date"==k&&(c[k]=
396
- 1);for(l=0;l<e.length;l++)if(h=e[l].pattern,k=e[l].period,-1!=b.indexOf(h)){var m=d.getFromDateString(h,a,f);b=b.replace(h,"");if("KK"==h||"K"==h||"LL"==h||"L"==h)g||(m+=12);c[k]=m}d.useUTC?(e=new Date,e.setUTCFullYear(c.year,c.month,c.date),e.setUTCHours(c.hours,c.minutes,c.seconds,c.milliseconds)):e=new Date(c.year,c.month,c.date,c.hours,c.minutes,c.seconds,c.milliseconds);return e};d.getFromDateString=function(a,b,c){if(void 0!==b)return c=c.indexOf(a),b=String(b),b=b.substr(c,a.length),"0"==b.charAt(0)&&
397
- (b=b.substr(1,b.length-1)),b=Number(b),isNaN(b)&&(b=0),-1!=a.indexOf("M")&&b--,b};d.formatDate=function(a,b,c){c||(c=d);var e,g,f,h,k,l,m,n,q=d.getWeekNumber(a);d.useUTC?(e=a.getUTCFullYear(),g=a.getUTCMonth(),f=a.getUTCDate(),h=a.getUTCDay(),k=a.getUTCHours(),l=a.getUTCMinutes(),m=a.getUTCSeconds(),n=a.getUTCMilliseconds()):(e=a.getFullYear(),g=a.getMonth(),f=a.getDate(),h=a.getDay(),k=a.getHours(),l=a.getMinutes(),m=a.getSeconds(),n=a.getMilliseconds());var p=String(e).substr(2,2),t="0"+h;b=b.replace(/W/g,
398
- q);q=k;24==q&&(q=0);var r=q;10>r&&(r="0"+r);b=b.replace(/JJ/g,r);b=b.replace(/J/g,q);r=k;0===r&&(r=24,-1!=b.indexOf("H")&&(f--,0===f&&(e=new Date(a),e.setDate(e.getDate()-1),g=e.getMonth(),f=e.getDate(),e=e.getFullYear())));a=g+1;9>g&&(a="0"+a);q=f;10>f&&(q="0"+f);var w=r;10>w&&(w="0"+w);b=b.replace(/HH/g,w);b=b.replace(/H/g,r);r=k;11<r&&(r-=12);w=r;10>w&&(w="0"+w);b=b.replace(/KK/g,w);b=b.replace(/K/g,r);r=k;0===r&&(r=12);12<r&&(r-=12);w=r;10>w&&(w="0"+w);b=b.replace(/LL/g,w);b=b.replace(/L/g,r);
399
- r=l;10>r&&(r="0"+r);b=b.replace(/NN/g,r);b=b.replace(/N/g,l);l=m;10>l&&(l="0"+l);b=b.replace(/SS/g,l);b=b.replace(/S/g,m);m=n;10>m?m="00"+m:100>m&&(m="0"+m);l=n;10>l&&(l="00"+l);b=b.replace(/A/g,"@A@");b=b.replace(/QQQ/g,m);b=b.replace(/QQ/g,l);b=b.replace(/Q/g,n);b=b.replace(/YYYY/g,"@IIII@");b=b.replace(/YY/g,"@II@");b=b.replace(/MMMM/g,"@XXXX@");b=b.replace(/MMM/g,"@XXX@");b=b.replace(/MM/g,"@XX@");b=b.replace(/M/g,"@X@");b=b.replace(/DD/g,"@RR@");b=b.replace(/D/g,"@R@");b=b.replace(/EEEE/g,"@PPPP@");
400
- b=b.replace(/EEE/g,"@PPP@");b=b.replace(/EE/g,"@PP@");b=b.replace(/E/g,"@P@");b=b.replace(/@IIII@/g,e);b=b.replace(/@II@/g,p);b=b.replace(/@XXXX@/g,c.monthNames[g]);b=b.replace(/@XXX@/g,c.shortMonthNames[g]);b=b.replace(/@XX@/g,a);b=b.replace(/@X@/g,g+1);b=b.replace(/@RR@/g,q);b=b.replace(/@R@/g,f);b=b.replace(/@PPPP@/g,c.dayNames[h]);b=b.replace(/@PPP@/g,c.shortDayNames[h]);b=b.replace(/@PP@/g,t);b=b.replace(/@P@/g,h);return b=12>k?b.replace(/@A@/g,c.amString):b.replace(/@A@/g,c.pmString)};d.changeDate=
401
- function(a,b,c,e,g){if(d.useUTC)return d.changeUTCDate(a,b,c,e,g);var f=-1;void 0===e&&(e=!0);void 0===g&&(g=!1);!0===e&&(f=1);switch(b){case "YYYY":a.setFullYear(a.getFullYear()+c*f);e||g||a.setDate(a.getDate()+1);break;case "MM":b=a.getMonth();a.setMonth(a.getMonth()+c*f);a.getMonth()>b+c*f&&a.setDate(a.getDate()-1);e||g||a.setDate(a.getDate()+1);break;case "DD":a.setDate(a.getDate()+c*f);break;case "WW":a.setDate(a.getDate()+c*f*7);break;case "hh":a.setHours(a.getHours()+c*f);break;case "mm":a.setMinutes(a.getMinutes()+
402
- c*f);break;case "ss":a.setSeconds(a.getSeconds()+c*f);break;case "fff":a.setMilliseconds(a.getMilliseconds()+c*f)}return a};d.changeUTCDate=function(a,b,c,d,g){var f=-1;void 0===d&&(d=!0);void 0===g&&(g=!1);!0===d&&(f=1);switch(b){case "YYYY":a.setUTCFullYear(a.getUTCFullYear()+c*f);d||g||a.setUTCDate(a.getUTCDate()+1);break;case "MM":b=a.getUTCMonth();a.setUTCMonth(a.getUTCMonth()+c*f);a.getUTCMonth()>b+c*f&&a.setUTCDate(a.getUTCDate()-1);d||g||a.setUTCDate(a.getUTCDate()+1);break;case "DD":a.setUTCDate(a.getUTCDate()+
403
- c*f);break;case "WW":a.setUTCDate(a.getUTCDate()+c*f*7);break;case "hh":a.setUTCHours(a.getUTCHours()+c*f);break;case "mm":a.setUTCMinutes(a.getUTCMinutes()+c*f);break;case "ss":a.setUTCSeconds(a.getUTCSeconds()+c*f);break;case "fff":a.setUTCMilliseconds(a.getUTCMilliseconds()+c*f)}return a}})();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/js/amcharts/charts.js ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * @license
3
+ * Copyright (c) 2018 amCharts (Antanas Marcelionis, Martynas Majeris)
4
+ *
5
+ * This sofware is provided under multiple licenses. Please see below for
6
+ * links to appropriate usage.
7
+ *
8
+ * Free amCharts linkware license. Details and conditions:
9
+ * https://github.com/amcharts/amcharts4/blob/master/LICENSE
10
+ *
11
+ * One of the amCharts commercial licenses. Details and pricing:
12
+ * https://www.amcharts.com/online-store/
13
+ * https://www.amcharts.com/online-store/licenses-explained/
14
+ *
15
+ * If in doubt, contact amCharts at contact@amcharts.com
16
+ *
17
+ * PLEASE DO NOT REMOVE THIS COPYRIGHT NOTICE.
18
+ * @hidden
19
+ */
20
+ am4internal_webpackJsonp(["689e"],{XFs4:function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a={};i.d(a,"GaugeChartDataItem",function(){return Pt}),i.d(a,"GaugeChart",function(){return At}),i.d(a,"RadarChartDataItem",function(){return ft}),i.d(a,"RadarChart",function(){return xt}),i.d(a,"XYChartDataItem",function(){return G}),i.d(a,"XYChart",function(){return q}),i.d(a,"SerialChartDataItem",function(){return r.b}),i.d(a,"SerialChart",function(){return r.a}),i.d(a,"PieChart3DDataItem",function(){return Vt}),i.d(a,"PieChart3D",function(){return St}),i.d(a,"PieChartDataItem",function(){return Ct.b}),i.d(a,"PieChart",function(){return Ct.a}),i.d(a,"SlicedChart",function(){return Ot}),i.d(a,"SlicedChartDataItem",function(){return Ft}),i.d(a,"FlowDiagramDataItem",function(){return zt}),i.d(a,"FlowDiagram",function(){return Ut}),i.d(a,"SankeyDiagramDataItem",function(){return Qt}),i.d(a,"SankeyDiagram",function(){return $t}),i.d(a,"ChordDiagramDataItem",function(){return ne}),i.d(a,"ChordDiagram",function(){return re}),i.d(a,"TreeMapDataItem",function(){return ce}),i.d(a,"TreeMap",function(){return de}),i.d(a,"XYChart3DDataItem",function(){return ve}),i.d(a,"XYChart3D",function(){return be}),i.d(a,"ChartDataItem",function(){return wt.b}),i.d(a,"Chart",function(){return wt.a}),i.d(a,"LegendDataItem",function(){return jt.b}),i.d(a,"Legend",function(){return jt.a}),i.d(a,"LegendSettings",function(){return jt.c}),i.d(a,"HeatLegend",function(){return Pe.a}),i.d(a,"SeriesDataItem",function(){return V.b}),i.d(a,"Series",function(){return V.a}),i.d(a,"XYSeriesDataItem",function(){return R}),i.d(a,"XYSeries",function(){return L}),i.d(a,"LineSeriesDataItem",function(){return it}),i.d(a,"LineSeries",function(){return at}),i.d(a,"LineSeriesSegment",function(){return J}),i.d(a,"CandlestickSeriesDataItem",function(){return Ce}),i.d(a,"CandlestickSeries",function(){return Ie}),i.d(a,"OHLCSeriesDataItem",function(){return De}),i.d(a,"OHLCSeries",function(){return Te}),i.d(a,"ColumnSeriesDataItem",function(){return oe}),i.d(a,"ColumnSeries",function(){return le}),i.d(a,"StepLineSeriesDataItem",function(){return Se}),i.d(a,"StepLineSeries",function(){return ke}),i.d(a,"RadarSeriesDataItem",function(){return nt}),i.d(a,"RadarSeries",function(){return rt}),i.d(a,"RadarColumnSeriesDataItem",function(){return Oe}),i.d(a,"RadarColumnSeries",function(){return we}),i.d(a,"PieSeriesDataItem",function(){return It.b}),i.d(a,"PieSeries",function(){return It.a}),i.d(a,"FunnelSeries",function(){return Ne}),i.d(a,"FunnelSeriesDataItem",function(){return je}),i.d(a,"PyramidSeries",function(){return We}),i.d(a,"PyramidSeriesDataItem",function(){return Me}),i.d(a,"PictorialStackedSeries",function(){return Ee}),i.d(a,"PictorialStackedSeriesDataItem",function(){return Be}),i.d(a,"PieTick",function(){return He.a}),i.d(a,"FunnelSlice",function(){return Le}),i.d(a,"PieSeries3DDataItem",function(){return Dt}),i.d(a,"PieSeries3D",function(){return Tt}),i.d(a,"TreeMapSeriesDataItem",function(){return he}),i.d(a,"TreeMapSeries",function(){return ue}),i.d(a,"ColumnSeries3DDataItem",function(){return fe}),i.d(a,"ColumnSeries3D",function(){return xe}),i.d(a,"ConeSeriesDataItem",function(){return Ke}),i.d(a,"ConeSeries",function(){return Ge}),i.d(a,"CurvedColumnSeries",function(){return Je}),i.d(a,"CurvedColumnSeriesDataItem",function(){return Ze}),i.d(a,"AxisDataItem",function(){return A.b}),i.d(a,"Axis",function(){return A.a}),i.d(a,"Grid",function(){return ct.a}),i.d(a,"AxisTick",function(){return Qe.a}),i.d(a,"AxisLabel",function(){return $e.a}),i.d(a,"AxisLine",function(){return ti.a}),i.d(a,"AxisFill",function(){return ht.a}),i.d(a,"AxisRenderer",function(){return lt.a}),i.d(a,"AxisBreak",function(){return C.a}),i.d(a,"ValueAxisDataItem",function(){return l.b}),i.d(a,"ValueAxis",function(){return l.a}),i.d(a,"CategoryAxisDataItem",function(){return D}),i.d(a,"CategoryAxis",function(){return T}),i.d(a,"CategoryAxisBreak",function(){return I}),i.d(a,"DateAxisDataItem",function(){return x}),i.d(a,"DateAxis",function(){return v}),i.d(a,"DurationAxisDataItem",function(){return ei}),i.d(a,"DurationAxis",function(){return ii}),i.d(a,"DateAxisBreak",function(){return d}),i.d(a,"ValueAxisBreak",function(){return u.a}),i.d(a,"AxisRendererX",function(){return b.a}),i.d(a,"AxisRendererY",function(){return P.a}),i.d(a,"AxisRendererRadial",function(){return mt}),i.d(a,"AxisLabelCircular",function(){return pt.a}),i.d(a,"AxisRendererCircular",function(){return yt}),i.d(a,"AxisFillCircular",function(){return ut}),i.d(a,"GridCircular",function(){return dt}),i.d(a,"AxisRendererX3D",function(){return pe}),i.d(a,"AxisRendererY3D",function(){return ye}),i.d(a,"Tick",function(){return Xe.a}),i.d(a,"Bullet",function(){return et.a}),i.d(a,"LabelBullet",function(){return Kt}),i.d(a,"CircleBullet",function(){return ai}),i.d(a,"ErrorBullet",function(){return ni}),i.d(a,"XYChartScrollbar",function(){return U}),i.d(a,"ClockHand",function(){return bt}),i.d(a,"FlowDiagramNode",function(){return Nt}),i.d(a,"FlowDiagramLink",function(){return Bt}),i.d(a,"SankeyNode",function(){return Gt}),i.d(a,"SankeyLink",function(){return Zt}),i.d(a,"ChordNode",function(){return ee}),i.d(a,"ChordLink",function(){return ae}),i.d(a,"NavigationBarDataItem",function(){return hi}),i.d(a,"NavigationBar",function(){return ui}),i.d(a,"Column",function(){return se}),i.d(a,"Candlestick",function(){return Ae}),i.d(a,"OHLC",function(){return _e}),i.d(a,"RadarColumn",function(){return Fe}),i.d(a,"Column3D",function(){return me}),i.d(a,"ConeColumn",function(){return Ue}),i.d(a,"CurvedColumn",function(){return qe}),i.d(a,"XYCursor",function(){return B}),i.d(a,"Cursor",function(){return N}),i.d(a,"RadarCursor",function(){return ot});var n=i("m4/l"),r=i("2I/e"),s=i("C6dT"),o=i("vMqJ"),l=i("pR7v"),h=i("+qIf"),u=i("ZoDA"),c=i("aCit"),d=function(t){function e(){var e=t.call(this)||this;return e.className="DateAxisBreak",e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"startDate",{get:function(){return this.getPropertyValue("startDate")},set:function(t){this.setPropertyValue("startDate",t)&&(this.startValue=t.getTime(),this.axis&&(this.axis.invalidate(),this.axis.invalidateSeries()))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endDate",{get:function(){return this.getPropertyValue("endDate")},set:function(t){this.setPropertyValue("endDate",t)&&(this.endValue=t.getTime(),this.axis&&(this.axis.invalidate(),this.axis.invalidateSeries()))},enumerable:!0,configurable:!0}),e}(u.a);c.b.registeredClasses.DateAxisBreak=d;var p=i("L91H"),y=i("Mtpk"),g=i("Wglt"),m=i("Gg2j"),f=i("Qkdp"),x=function(t){function e(){var e=t.call(this)||this;return e.className="DateAxisDataItem",e.applyTheme(),e.values.date={},e.values.endDate={},e}return n.c(e,t),Object.defineProperty(e.prototype,"date",{get:function(){return this.dates.date},set:function(t){this.setDate("date",t),this.value=t.getTime()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endDate",{get:function(){return this.dates.endDate},set:function(t){this.setDate("endDate",t),this.endValue=t.getTime()},enumerable:!0,configurable:!0}),e}(l.b),v=function(t){function e(){var e=t.call(this)||this;return e.gridIntervals=new o.b,e.dateFormats=new h.a,e.periodChangeDateFormats=new h.a,e._baseIntervalReal={timeUnit:"day",count:1},e._minDifference={},e.className="DateAxis",e.setPropertyValue("markUnitChange",!0),e.snapTooltip=!0,e.gridIntervals.pushAll([{timeUnit:"millisecond",count:1},{timeUnit:"millisecond",count:5},{timeUnit:"millisecond",count:10},{timeUnit:"millisecond",count:50},{timeUnit:"millisecond",count:100},{timeUnit:"millisecond",count:500},{timeUnit:"second",count:1},{timeUnit:"second",count:5},{timeUnit:"second",count:10},{timeUnit:"second",count:30},{timeUnit:"minute",count:1},{timeUnit:"minute",count:5},{timeUnit:"minute",count:10},{timeUnit:"minute",count:15},{timeUnit:"minute",count:30},{timeUnit:"hour",count:1},{timeUnit:"hour",count:3},{timeUnit:"hour",count:6},{timeUnit:"hour",count:12},{timeUnit:"day",count:1},{timeUnit:"day",count:2},{timeUnit:"day",count:3},{timeUnit:"day",count:4},{timeUnit:"day",count:5},{timeUnit:"week",count:1},{timeUnit:"month",count:1},{timeUnit:"month",count:2},{timeUnit:"month",count:3},{timeUnit:"month",count:6},{timeUnit:"year",count:1},{timeUnit:"year",count:2},{timeUnit:"year",count:5},{timeUnit:"year",count:10},{timeUnit:"year",count:50},{timeUnit:"year",count:100},{timeUnit:"year",count:200},{timeUnit:"year",count:500},{timeUnit:"year",count:1e3},{timeUnit:"year",count:2e3},{timeUnit:"year",count:5e3},{timeUnit:"year",count:1e4},{timeUnit:"year",count:1e5}]),e.axisFieldName="date",e.applyTheme(),e}return n.c(e,t),e.prototype.fillRule=function(t){var e=t.value,i=t.component,a=i._gridInterval,n=p.getDuration(a.timeUnit,a.count);Math.round((e-i.min)/n)/2==Math.round(Math.round((e-i.min)/n)/2)?t.axisFill.__disabled=!0:t.axisFill.__disabled=!1},e.prototype.applyInternalDefaults=function(){t.prototype.applyInternalDefaults.call(this),this.dateFormats.hasKey("millisecond")||this.dateFormats.setKey("millisecond",this.language.translate("_date_millisecond")),this.dateFormats.hasKey("second")||this.dateFormats.setKey("second",this.language.translate("_date_second")),this.dateFormats.hasKey("minute")||this.dateFormats.setKey("minute",this.language.translate("_date_minute")),this.dateFormats.hasKey("hour")||this.dateFormats.setKey("hour",this.language.translate("_date_hour")),this.dateFormats.hasKey("day")||this.dateFormats.setKey("day",this.language.translate("_date_day")),this.dateFormats.hasKey("week")||this.dateFormats.setKey("week",this.language.translate("_date_day")),this.dateFormats.hasKey("month")||this.dateFormats.setKey("month",this.language.translate("_date_month")),this.dateFormats.hasKey("year")||this.dateFormats.setKey("year",this.language.translate("_date_year")),this.periodChangeDateFormats.hasKey("millisecond")||this.periodChangeDateFormats.setKey("millisecond",this.language.translate("_date_millisecond")),this.periodChangeDateFormats.hasKey("second")||this.periodChangeDateFormats.setKey("second",this.language.translate("_date_second")),this.periodChangeDateFormats.hasKey("minute")||this.periodChangeDateFormats.setKey("minute",this.language.translate("_date_minute")),this.periodChangeDateFormats.hasKey("hour")||this.periodChangeDateFormats.setKey("hour",this.language.translate("_date_hour")),this.periodChangeDateFormats.hasKey("day")||this.periodChangeDateFormats.setKey("day",this.language.translate("_date_day")),this.periodChangeDateFormats.hasKey("week")||this.periodChangeDateFormats.setKey("week",this.language.translate("_date_day")),this.periodChangeDateFormats.hasKey("month")||this.periodChangeDateFormats.setKey("month",this.language.translate("_date_month")+" "+this.language.translate("_date_year"))},e.prototype.createDataItem=function(){return new x},e.prototype.createAxisBreak=function(){return new d},e.prototype.validateDataItems=function(){var e=this.start,i=this.end,a=(this.max-this.min)/this.baseDuration;t.prototype.validateDataItems.call(this),this.maxZoomFactor=(this.max-this.min)/this.baseDuration,this._deltaMinMax=this.baseDuration/2,e+=(i-e)*(1-a/((this.max-this.min)/this.baseDuration)),this.zoom({start:e,end:i},!1,!0)},e.prototype.handleSelectionExtremesChange=function(){},e.prototype.calculateZoom=function(){var e=this;t.prototype.calculateZoom.call(this);var i=this.chooseInterval(0,this.adjustDifference(this._minZoomed,this._maxZoomed),this._gridCount);p.getDuration(i.timeUnit,i.count)<this.baseDuration&&(i=n.a({},this.baseInterval)),this._gridInterval=i,this._gridDate=p.round(new Date(this.min),i.timeUnit,i.count,this.getFirstWeekDay(),this.dateFormatter.utc),this._nextGridUnit=p.getNextUnit(i.timeUnit),this._intervalDuration=p.getDuration(i.timeUnit,i.count);var a=Math.ceil(this._difference/this._intervalDuration);a=Math.max(-5,Math.floor(this.start*a)-3),p.add(this._gridDate,i.timeUnit,a*i.count,this.dateFormatter.utc),g.each(this.series.iterator(),function(t){if(t.baseAxis==e){var i=t.getAxisField(e),a=p.round(new Date(e._minZoomed),e.baseInterval.timeUnit,e.baseInterval.count).getTime(),n=a.toString(),r=t.dataItemsByAxis.getKey(e.uid).getKey(n),s=0;0!=e.start&&(s=r?(r=e.findFirst(r,a,i)).index:t.dataItems.findClosestIndex(e._minZoomed,function(t){return t[i]},"left"));var o=e.baseInterval,l=p.add(p.round(new Date(e._maxZoomed),o.timeUnit,o.count,e.getFirstWeekDay(),e.dateFormatter.utc),o.timeUnit,o.count,e.dateFormatter.utc).getTime(),h=l.toString(),u=t.dataItemsByAxis.getKey(e.uid).getKey(h),c=t.dataItems.length;1!=e.end&&(u?c=u.index:(l-=1,c=t.dataItems.findClosestIndex(l,function(t){return t[i]},"right")+1)),t.startIndex=s,t.endIndex=c}})},e.prototype.findFirst=function(t,e,i){var a=t.index;if(a>0){var n=t.component.dataItems.getIndex(a-1),r=n[i];return!r||r.getTime()<e?t:this.findFirst(n,e,i)}return t},e.prototype.validateData=function(){t.prototype.validateData.call(this),y.isNumber(this.baseInterval.count)||(this.baseInterval.count=1)},Object.defineProperty(e.prototype,"minDifference",{get:function(){var t=this,e=Number.MAX_VALUE;return this.series.each(function(i){e>t._minDifference[i.uid]&&(e=t._minDifference[i.uid])}),e!=Number.MAX_VALUE&&0!=e||(e=p.getDuration("day")),e},enumerable:!0,configurable:!0}),e.prototype.seriesDataChangeUpdate=function(t){this._minDifference[t.uid]=Number.MAX_VALUE},e.prototype.postProcessSeriesDataItems=function(){var t=this;this.series.each(function(e){JSON.stringify(e._baseInterval[t.uid])!=JSON.stringify(t.baseInterval)&&(e.dataItems.each(function(e){t.postProcessSeriesDataItem(e)}),e._baseInterval[t.uid]=t.baseInterval)}),this.addEmptyUnitsBreaks()},e.prototype.postProcessSeriesDataItem=function(t){var e=this,i=this.baseInterval,a=t.component.dataItemsByAxis.getKey(this.uid);f.each(t.dates,function(n){var r=t.getDate(n).getTime(),s=p.round(new Date(r),i.timeUnit,i.count,e.getFirstWeekDay(),e.dateFormatter.utc).getTime(),o=p.add(new Date(s),i.timeUnit,i.count,e.dateFormatter.utc);t.setCalculatedValue(n,s,"open"),t.setCalculatedValue(n,o.getTime(),"close"),a.setKey(s.toString(),t)})},e.prototype.addEmptyUnitsBreaks=function(){var t=this;if(this.skipEmptyPeriods&&y.isNumber(this.min)&&y.isNumber(this.max)){var e=this.baseInterval.timeUnit,i=this.baseInterval.count;this.axisBreaks.clear();for(var a=p.round(new Date(this.min),e,i,this.getFirstWeekDay(),this.dateFormatter.utc),n=void 0,r=function(){p.add(a,e,i,s.dateFormatter.utc);var r=a.getTime(),o=r.toString();g.contains(s.series.iterator(),function(e){return!!e.dataItemsByAxis.getKey(t.uid).getKey(o)})?n&&(n.endDate=new Date(r-1),n=void 0):n||((n=s.axisBreaks.create()).startDate=new Date(r))},s=this;a.getTime()<this.max-this.baseDuration;)r()}},e.prototype.fixAxisBreaks=function(){var e=this;t.prototype.fixAxisBreaks.call(this);var i=this.axisBreaks;i.length>0&&i.each(function(t){var i=Math.ceil(e._gridCount*(Math.min(e.end,t.endPosition)-Math.max(e.start,t.startPosition))/(e.end-e.start));t.gridInterval=e.chooseInterval(0,t.adjustedEndValue-t.adjustedStartValue,i);var a=p.round(new Date(t.adjustedStartValue),t.gridInterval.timeUnit,t.gridInterval.count,e.getFirstWeekDay(),e.dateFormatter.utc);a.getTime()>t.startDate.getTime()&&p.add(a,t.gridInterval.timeUnit,t.gridInterval.count,e.dateFormatter.utc),t.gridDate=a})},e.prototype.getFirstWeekDay=function(){return this.dateFormatter?this.dateFormatter.firstDayOfWeek:1},e.prototype.getGridDate=function(t,e){var i=this._gridInterval.timeUnit,a=this._gridInterval.count;p.round(t,i,1,this.getFirstWeekDay(),this.dateFormatter.utc);var n=t.getTime(),r=p.copy(t),s=p.add(r,i,e,this.dateFormatter.utc).getTime(),o=this.isInBreak(s);o&&(r=new Date(o.endDate.getTime()),p.round(r,i,a,this.getFirstWeekDay(),this.dateFormatter.utc),r.getTime()<o.endDate.getTime()&&p.add(r,i,a,this.dateFormatter.utc),s=r.getTime());var l=this.adjustDifference(n,s);return Math.round(l/p.getDuration(i))<a?this.getGridDate(t,e+a):r},e.prototype.getBreaklessDate=function(t,e,i){var a=new Date(t.endValue);p.round(a,e,i,this.getFirstWeekDay(),this.dateFormatter.utc),p.add(a,e,i,this.dateFormatter.utc);var n=a.getTime();return(t=this.isInBreak(n))?this.getBreaklessDate(t,e,i):a},e.prototype.validateAxisElements=function(){var t=this;if(y.isNumber(this.max)&&y.isNumber(this.min)){this.calculateZoom();var e=this._gridDate.getTime(),i=this._gridInterval.timeUnit,a=this._gridInterval.count,n=p.copy(this._gridDate),r=this._dataItemsIterator;this.resetIterators();for(var s=function(){var t=o.getGridDate(p.copy(n),a);e=t.getTime();var s=p.copy(t);s=p.add(s,i,a,o.dateFormatter.utc);var l=o.dateFormats.getKey(i);o.markUnitChange&&n&&p.checkChange(t,n,o._nextGridUnit,o.dateFormatter.utc)&&"year"!==i&&(l=o.periodChangeDateFormats.getKey(i));var h=o.dateFormatter.format(t,l),u=r.find(function(t){return t.text===h});u.__disabled&&(u.__disabled=!1),o.appendDataItem(u),u.axisBreak=void 0,u.date=t,u.endDate=s,u.text=h,n=t,o.validateDataElement(u)},o=this;e<=this._maxZoomed;)s();var l=this.renderer;g.each(this.axisBreaks.iterator(),function(e){if(e.breakSize>0){var i=e.gridInterval.timeUnit,a=e.gridInterval.count;if(m.getDistance(e.startPoint,e.endPoint)>4*l.minGridDistance)for(var n,s=e.gridDate.getTime(),o=0,h=function(){var l=p.copy(e.gridDate);if(s=p.add(l,i,a*o,t.dateFormatter.utc).getTime(),o++,s>e.adjustedStartValue&&s<e.adjustedEndValue){var h=p.copy(l);h=p.add(h,i,a,t.dateFormatter.utc);var u=t.dateFormats.getKey(i);t.markUnitChange&&n&&p.checkChange(l,n,t._nextGridUnit,t.dateFormatter.utc)&&"year"!==i&&(u=t.periodChangeDateFormats.getKey(i));var c=t.dateFormatter.format(l,u),d=r.find(function(t){return t.text===c});d.__disabled&&(d.__disabled=!1),t.appendDataItem(d),d.axisBreak=e,e.dataItems.moveValue(d),d.date=l,d.endDate=h,d.text=c,n=l,t.validateDataElement(d)}};s<=e.adjustedMax;)h()}})}},e.prototype.validateDataElement=function(t){if(y.isNumber(this.max)&&y.isNumber(this.min)){var e=this.renderer,i=t.value,a=t.endValue;y.isNumber(a)||(a=i);var n=this.valueToPosition(i),r=this.valueToPosition(a),s=r;!t.isRange&&this._gridInterval.count>this.baseInterval.count&&(r=n+(r-n)/(this._gridInterval.count/this.baseInterval.count)),t.position=n;var o=t.tick;o&&!o.disabled&&e.updateTickElement(o,n,r);var l=t.grid;l&&!l.disabled&&e.updateGridElement(l,n,r);var h=t.axisFill;h&&!h.disabled&&(e.updateFillElement(h,n,s),t.isRange||this.fillRule(t));var u=t.mask;u&&e.updateFillElement(u,n,r);var c=t.label;if(c&&!c.disabled){var d=c.location;0==d&&(d=1!=this._gridInterval.count||"week"==this._gridInterval.timeUnit||t.isRange?0:.5),e.updateLabelElement(c,n,r,d)}}},Object.defineProperty(e.prototype,"baseDuration",{get:function(){return p.getDuration(this.baseInterval.timeUnit,this.baseInterval.count)},enumerable:!0,configurable:!0}),e.prototype.adjustMinMax=function(t,e){return{min:t,max:e,step:this.baseDuration}},e.prototype.fixMin=function(t){var e=p.round(new Date(t),this.baseInterval.timeUnit,this.baseInterval.count,this.getFirstWeekDay(),this.dateFormatter.utc).getTime();return e+(p.add(new Date(e),this.baseInterval.timeUnit,this.baseInterval.count,this.dateFormatter.utc).getTime()-e)*this.startLocation},e.prototype.fixMax=function(t){var e=p.round(new Date(t),this.baseInterval.timeUnit,this.baseInterval.count,this.getFirstWeekDay(),this.dateFormatter.utc).getTime();return e+(p.add(new Date(e),this.baseInterval.timeUnit,this.baseInterval.count,this.dateFormatter.utc).getTime()-e)*this.endLocation},e.prototype.chooseInterval=function(t,e,i){var a=this.gridIntervals,r=a.getIndex(t),s=p.getDuration(r.timeUnit,r.count),o=a.length-1;if(t>=o)return n.a({},a.getIndex(o));var l=Math.ceil(e/s);return e<s&&t>0?n.a({},a.getIndex(t-1)):l<=i?n.a({},a.getIndex(t)):t+1<a.length?this.chooseInterval(t+1,e,i):n.a({},a.getIndex(t))},e.prototype.formatLabel=function(t){return this.dateFormatter.format(t)},e.prototype.dateToPosition=function(t){return this.valueToPosition(t.getTime())},e.prototype.anyToPosition=function(t){return t instanceof Date?this.dateToPosition(t):this.valueToPosition(t)},e.prototype.dateToPoint=function(t){var e=this.dateToPosition(t),i=this.renderer.positionToPoint(e),a=this.renderer.positionToAngle(e);return{x:i.x,y:i.y,angle:a}},e.prototype.anyToPoint=function(t){return t instanceof Date?this.dateToPoint(t):this.valueToPoint(t)},e.prototype.positionToDate=function(t){return new Date(this.positionToValue(t))},e.prototype.getX=function(t,e,i){var a=this.getTimeByLocation(t,e,i);return y.isNumber(a)||(a=this.baseValue),this.renderer.positionToPoint(this.valueToPosition(a)).x},e.prototype.getY=function(t,e,i){var a=this.getTimeByLocation(t,e,i),n=t.getValue("valueX","stack");return y.isNumber(a)||(a=this.baseValue),this.renderer.positionToPoint(this.valueToPosition(a+n)).y},e.prototype.getAngle=function(t,e,i,a){var n=this.getTimeByLocation(t,e,i),r=t.getValue(a,"stack");return y.isNumber(n)||(n=this.baseValue),this.positionToAngle(this.valueToPosition(n+r))},e.prototype.getTimeByLocation=function(t,e,i){if(y.hasValue(e)){y.isNumber(i)||(i=t.workingLocations[e],y.isNumber(i)||(i=0));var a=t.values[e].open,n=t.values[e].close;return y.isNumber(a)&&y.isNumber(n)?a+(n-a)*i:void 0}},e.prototype.processSeriesDataItem=function(t,e){var i,a=t.component,n=t["date"+e];if(n){i=n.getTime();var r,s=t["openDate"+e],o=this._prevSeriesTime;if(s&&(r=s.getTime()),y.isNumber(r)){var l=Math.abs(i-r);this._minDifference[a.uid]>l&&(this._minDifference[a.uid]=l)}var h=i-o;h>0&&this._minDifference[a.uid]>h&&(this._minDifference[a.uid]=h),this._prevSeriesTime=i,a._baseInterval[this.uid]?this.postProcessSeriesDataItem(t):this._baseInterval&&(a._baseInterval[this.uid]=this._baseInterval,this.postProcessSeriesDataItem(t))}},e.prototype.updateAxisBySeries=function(){t.prototype.updateAxisBySeries.call(this);var e=this.chooseInterval(0,this.minDifference,1);this.minDifference>=p.getDuration("day",27)&&"week"==e.timeUnit&&(e.timeUnit="month",e.count=1),this.minDifference>=p.getDuration("hour",23)&&"hour"==e.timeUnit&&(e.timeUnit="day",e.count=1),this.minDifference>=p.getDuration("week",1)-p.getDuration("hour",1)&&"day"==e.timeUnit&&(e.timeUnit="week",e.count=1),this.minDifference>=p.getDuration("year",1)-p.getDuration("day",1.01)&&"month"==e.timeUnit&&(e.timeUnit="year",e.count=1),this._baseIntervalReal=e},Object.defineProperty(e.prototype,"baseInterval",{get:function(){return this._baseInterval?this._baseInterval:this._baseIntervalReal},set:function(t){JSON.stringify(this._baseInterval)!=JSON.stringify(t)&&(this._baseInterval=t,this.invalidate(),this.postProcessSeriesDataItems())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"skipEmptyPeriods",{get:function(){return this.getPropertyValue("skipEmptyPeriods")},set:function(t){if(this.setPropertyValue("skipEmptyPeriods",t)&&this.invalidateData(),t){var e=this.axisBreaks.template;e.startLine.disabled=!0,e.endLine.disabled=!0,e.fillShape.disabled=!0,e.breakSize=0}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tooltipDateFormat",{get:function(){return this.getPropertyValue("tooltipDateFormat")},set:function(t){this.setPropertyValue("tooltipDateFormat",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"markUnitChange",{get:function(){return this.getPropertyValue("markUnitChange")},set:function(t){this.setPropertyValue("markUnitChange",t)&&this.invalidateData()},enumerable:!0,configurable:!0}),e.prototype.getTooltipText=function(t){var e,i=this.positionToDate(t);if(i=p.round(i,this.baseInterval.timeUnit,this.baseInterval.count,this.getFirstWeekDay(),this.dateFormatter.utc),y.hasValue(this.tooltipDateFormat))e=this.dateFormatter.format(i,this.tooltipDateFormat);else{var a=this.dateFormats.getKey(this.baseInterval.timeUnit);e=a?this.dateFormatter.format(i,a):this.getPositionLabel(t)}return this.adapter.apply("getTooltipText",e)},e.prototype.roundPosition=function(t,e){var i=this.baseInterval,a=i.timeUnit,n=i.count,r=this.positionToDate(t);if(p.round(r,a,n,this.getFirstWeekDay(),this.dateFormatter.utc),e>0&&p.add(r,a,e*n,this.dateFormatter.utc),this.isInBreak(r.getTime()))for(;r.getTime()<this.max&&(p.add(r,a,n,this.dateFormatter.utc),this.isInBreak(r.getTime())););return this.dateToPosition(r)},e.prototype.getCellStartPosition=function(t){return this.roundPosition(t,0)},e.prototype.getCellEndPosition=function(t){return this.roundPosition(t,1)},e.prototype.getSeriesDataItem=function(t,e,i){var a,n=this.positionToValue(e),r=p.round(new Date(n),this.baseInterval.timeUnit,this.baseInterval.count,this.getFirstWeekDay(),this.dateFormatter.utc),s=t.dataItemsByAxis.getKey(this.uid).getKey(r.getTime().toString());!s&&i&&(a="Y"==this.axisLetter?"dateY":"dateX",s=t.dataItems.getIndex(t.dataItems.findClosestIndex(r.getTime(),function(t){return t[a]?t[a].getTime():-1/0},"any")));return s},e.prototype.getPositionLabel=function(t){var e=this.positionToDate(t);return this.dateFormatter.format(e,this.getCurrentLabelFormat())},e.prototype.getCurrentLabelFormat=function(){return this.dateFormats.getKey(this._gridInterval?this._gridInterval.timeUnit:"day")},e.prototype.initRenderer=function(){t.prototype.initRenderer.call(this);var e=this.renderer;e&&(e.ticks.template.location=0,e.grid.template.location=0,e.labels.template.location=0,e.baseGrid.disabled=!0)},Object.defineProperty(e.prototype,"basePoint",{get:function(){return{x:0,y:0}},enumerable:!0,configurable:!0}),e.prototype.zoomToDates=function(t,e,i,a){t=this.dateFormatter.parse(t),e=this.dateFormatter.parse(e),this.zoomToValues(t.getTime(),e.getTime(),i,a)},e.prototype.asIs=function(e){return"baseInterval"==e||t.prototype.asIs.call(this,e)},e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.dateFormats=e.dateFormats,this.periodChangeDateFormats=e.periodChangeDateFormats,e._baseInterval&&(this.baseInterval=e.baseInterval)},e.prototype.showTooltipAtPosition=function(e,i){var a=this;if(i||(e=this.toAxisPosition(e)),this.snapTooltip){var n,r=p.round(this.positionToDate(e),this.baseInterval.timeUnit,1,this.getFirstWeekDay(),this.dateFormatter.utc).getTime();if(this.series.each(function(t){if(t.baseAxis==a){var i=a.getSeriesDataItem(t,e,!0);if(i){var s=void 0;t.xAxis==a&&(s=i.dateX),t.yAxis==a&&(s=i.dateY),n?Math.abs(n.getTime()-r)>Math.abs(s.getTime()-r)&&(n=s):n=s}}}),n){var s=n.getTime();n=p.round(new Date(s),this.baseInterval.timeUnit,this.baseInterval.count,this.getFirstWeekDay(),this.dateFormatter.utc),s=n.getTime(),n=new Date(n.getTime()+this.baseDuration*this.renderer.tooltipLocation),e=this.dateToPosition(n),this.series.each(function(t){var e=t.dataItemsByAxis.getKey(a.uid).getKey(s.toString()),i=t.showTooltipAtDataItem(e);i?a.chart._seriesPoints.push({series:t,point:i}):t.tooltipText&&t.hideTooltip()})}}t.prototype.showTooltipAtPosition.call(this,e,!0)},Object.defineProperty(e.prototype,"snapTooltip",{get:function(){return this.getPropertyValue("snapTooltip")},set:function(t){this.setPropertyValue("snapTooltip",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"gridInterval",{get:function(){return this._gridInterval},enumerable:!0,configurable:!0}),e.prototype.makeGap=function(t,e){var i=t.component;if(t&&e&&(!i.connect&&y.isNumber(i.autoGapCount)&&i.baseAxis==this&&t.dates["date"+this.axisLetter].getTime()-e.dates["date"+this.axisLetter].getTime()>i.autoGapCount*this.baseDuration))return!0;return!1},e}(l.a);c.b.registeredClasses.DateAxis=v,c.b.registeredClasses.DateAxisDataItem=x;var b=i("k6kv"),P=i("OXm9"),A=i("AAkI"),C=i("Uslz"),I=function(t){function e(){var e=t.call(this)||this;return e.className="CategoryAxisBreak",e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"startPosition",{get:function(){if(this.axis)return this.axis.indexToPosition(this.adjustedStartValue)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endPosition",{get:function(){if(this.axis)return this.axis.indexToPosition(this.adjustedEndValue)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"startCategory",{get:function(){return this.getPropertyValue("startCategory")},set:function(t){this.setPropertyValue("startCategory",t)&&this.axis&&(this.axis.invalidateDataItems(),this.axis.invalidateSeries())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endCategory",{get:function(){return this.getPropertyValue("endCategory")},set:function(t){this.setPropertyValue("endCategory",t)&&this.axis&&(this.axis.invalidateDataItems(),this.axis.invalidateSeries())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"startValue",{get:function(){var t=this.getPropertyValue("startCategory");return t?this.axis.categoryToIndex(t):this.getPropertyValue("startValue")},set:function(t){this.setPropertyValue("startValue",t)&&this.axis&&(this.axis.invalidateDataItems(),this.axis.invalidateSeries())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endValue",{get:function(){var t=this.getPropertyValue("endCategory");return t?this.axis.categoryToIndex(t):this.getPropertyValue("endValue")},set:function(t){this.setPropertyValue("endValue",t)&&this.axis&&(this.axis.invalidateDataItems(),this.axis.invalidateSeries())},enumerable:!0,configurable:!0}),e}(C.a);c.b.registeredClasses.CategoryAxisBreak=I;var _=i("x79X"),D=function(t){function e(){var e=t.call(this)||this;return e.adapter=new _.a(e),e.seriesDataItems={},e.className="CategoryAxisDataItem",e.text="{category}",e.locations.category=0,e.locations.endCategory=1,e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"category",{get:function(){return this.adapter.isEnabled("category")?this.adapter.apply("category",this.properties.category):this.properties.category},set:function(t){this.setProperty("category",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endCategory",{get:function(){return this.properties.endCategory},set:function(t){this.setProperty("endCategory",t)},enumerable:!0,configurable:!0}),e}(A.b),T=function(t){function e(){var e=t.call(this)||this;return e.dataItemsByCategory=new h.a,e.className="CategoryAxis",e.axisFieldName="category",e._lastDataItem=e.createDataItem(),e._lastDataItem.component=e,e._disposers.push(e._lastDataItem),e.applyTheme(),e}return n.c(e,t),e.prototype.createDataItem=function(){return new D},e.prototype.createAxisBreak=function(){return new I},e.prototype.processSeriesDataItem=function(e,i){t.prototype.processSeriesDataItem.call(this,e,i);var a=e["category"+this.axisLetter],n=this.dataItemsByCategory.getKey(a);if(n){var r=e.component.uid,s=n.seriesDataItems[r];s||(s=[],n.seriesDataItems[r]=s),s.push(e)}},e.prototype.validateDataRange=function(){var i=this;t.prototype.validateDataRange.call(this),g.each(this._series.iterator(),function(t){if(t.xAxis instanceof e&&t.yAxis instanceof e)t.invalidateDataRange();else{for(var a=i.positionToIndex(i.start),n=i.positionToIndex(i.end),r=t.uid,s=void 0,o=void 0,l=a;l<=n;l++){var h=i.dataItems.getIndex(l);if(h){var u=h.seriesDataItems[r];if(u)for(var c=0;c<u.length;c++){var d=u[c];if(d){var p=d.index;(!y.isNumber(s)||p<s)&&(s=p),(!y.isNumber(o)||p>o)&&(o=p)}}}}y.isNumber(s)?t.startIndex=s:t.start=i.start,y.isNumber(o)?t.endIndex=o+1:t.end=i.end,i.axisBreaks.length>0&&t.invalidateDataRange()}})},e.prototype.validate=function(){var e=this;t.prototype.validate.call(this);var i=this.dataItems.length,a=m.fitToRange(Math.floor(this.start*i-1),0,i),n=m.fitToRange(Math.ceil(this.end*i),0,i);this.renderer.invalid&&this.renderer.validate();var r=this.renderer.axisLength/this.renderer.minGridDistance,s=Math.min(this.dataItems.length,Math.ceil((n-a)/r));if(this._startIndex=Math.floor(a/s)*s,this._endIndex=Math.ceil(this.end*i),this.fixAxisBreaks(),this._startIndex==this._endIndex&&this._endIndex++,this._frequency=s,!(this.axisLength<=0)){this.maxZoomFactor=this.dataItems.length,this.dataItems.length<=0&&(this.maxZoomFactor=1),this.resetIterators(),a=m.max(0,this._startIndex-this._frequency),n=m.min(this.dataItems.length,this._endIndex+this._frequency);for(var o=0,l=0;l<a;l++){(u=this.dataItems.getIndex(l)).__disabled=!0}l=n;for(var h=this.dataItems.length;l<h;l++){(u=this.dataItems.getIndex(l)).__disabled=!0}for(l=a;l<n;l++)if(l<this.dataItems.length){var u=this.dataItems.getIndex(l);if(l/this._frequency==Math.round(l/this._frequency))this.isInBreak(l)||(this.appendDataItem(u),this.validateDataElement(u,o)),o++;else u.__disabled=!0}this.appendDataItem(this._lastDataItem),this.validateDataElement(this._lastDataItem,o+1,this.dataItems.length),this.axisBreaks.each(function(t){var i=t.adjustedStartValue,a=t.adjustedEndValue;if(m.intersect({start:i,end:a},{start:e._startIndex,end:e._endIndex}))for(var n=m.fitToRange(Math.ceil(e._frequency/t.breakSize),1,a-i),r=0,s=i;s<=a;s+=n){var o=e.dataItems.getIndex(s);e.appendDataItem(o),e.validateDataElement(o,r),r++}}),this.validateBreaks(),this.validateAxisRanges(),this.ghostLabel.invalidate(),this.renderer.invalidateLayout()}},e.prototype.validateDataElement=function(e,i,a){t.prototype.validateDataElement.call(this,e);var n=this.renderer;y.isNumber(a)||(a=this.categoryToIndex(e.category));var r=this.categoryToIndex(e.endCategory);y.isNumber(r)||(r=a);var s,o,l,h=this.indexToPosition(a,e.locations.category),u=this.indexToPosition(r,e.locations.endCategory);e.position=h,e.isRange&&(s=r,o=this.indexToPosition(a,e.locations.category),l=this.indexToPosition(s,e.locations.endCategory)),e.point=n.positionToPoint(h);var c=e.tick;c&&!c.disabled&&n.updateTickElement(c,h,u);var d=e.grid;d&&!d.disabled&&n.updateGridElement(d,h,u);var p=e.label;p&&!p.disabled&&(e.isRange&&void 0!=p.text||(e.text=e.text),n.updateLabelElement(p,h,u),(e.label.measuredWidth>this.ghostLabel.measuredWidth||e.label.measuredHeight>this.ghostLabel.measuredHeight)&&(this.ghostLabel.text=e.label.currentText));var g=e.axisFill;g&&!g.disabled&&(e.isRange||(s=a+this._frequency,o=this.indexToPosition(a,g.location),l=this.indexToPosition(s,g.location)),n.updateFillElement(g,o,l),e.isRange||this.fillRule(e,i));var m=e.mask;m&&n.updateFillElement(m,o,l)},e.prototype.disposeData=function(){this.dataItemsByCategory.clear(),t.prototype.disposeData.call(this)},e.prototype.processDataItem=function(e,i){t.prototype.processDataItem.call(this,e,i),this.dataItemsByCategory.setKey(e.category,e)},e.prototype.getDataItem=function(t){var e=t[this.dataFields.category],i=this.dataItemsByCategory.getKey(e);return i||this.dataItems.create()},e.prototype.indexToPosition=function(t,e){y.isNumber(e)||(e=.5);var i=this.startIndex,a=this.endIndex,n=this.adjustDifference(i,a),r=this.startLocation;n-=r,n-=1-this.endLocation;var s=this.axisBreaks;return g.eachContinue(s.iterator(),function(e){var n=e.adjustedStartValue,r=e.adjustedEndValue;if(t<i)return!1;if(m.intersect({start:n,end:r},{start:i,end:a})){n=Math.max(i,n),r=Math.min(a,r);var s=e.breakSize;t>r?i+=(r-n)*(1-s):t<n||(t=n+(t-n)*s)}return!0}),m.round((t+e-r-i)/n,5)},e.prototype.categoryToPosition=function(t,e){var i=this.categoryToIndex(t);return this.indexToPosition(i,e)},e.prototype.categoryToPoint=function(t,e){var i=this.categoryToPosition(t,e),a=this.renderer.positionToPoint(i),n=this.renderer.positionToAngle(i);return{x:a.x,y:a.y,angle:n}},e.prototype.anyToPoint=function(t,e){return this.categoryToPoint(t,e)},e.prototype.anyToPosition=function(t,e){return this.categoryToPosition(t,e)},e.prototype.categoryToIndex=function(t){if(y.hasValue(t)){var e=this.dataItemsByCategory.getKey(t);if(e)return e.index}},e.prototype.zoomToCategories=function(t,e){this.zoomToIndexes(this.categoryToIndex(t),this.categoryToIndex(e)+1)},e.prototype.getAnyRangePath=function(t,e,i,a){var n=this.categoryToPosition(t,i),r=this.categoryToPosition(e,a);return this.getPositionRangePath(n,r)},e.prototype.roundPosition=function(t,e){var i=this.positionToIndex(t);return this.indexToPosition(i,e)},e.prototype.getFirstSeriesDataItem=function(t,e){for(var i=0;i<t.dataItems.length;i++){var a=t.dataItems.getIndex(i);if(t.xAxis==this&&a.categoryX==e)return a;if(t.yAxis==this&&a.categoryY==e)return a}},e.prototype.getLastSeriesDataItem=function(t,e){for(var i=t.dataItems.length-1;i>=0;i--){var a=t.dataItems.getIndex(i);if(t.xAxis==this&&a.categoryX==e)return a;if(t.yAxis==this&&a.categoryY==e)return a}},e.prototype.getSeriesDataItem=function(t,e,i){var a=this;if(y.isNumber(e)){var n=this.positionToIndex(e),r=this.dataItems.getIndex(n);if(r){var s,o=r.category,l=t.dataItems.getIndex(n);if(l){if(t.xAxis==this&&l.categoryX==o)return l;if(t.yAxis==this&&l.categoryY==o)return l}return t.dataItems.each(function(e){t.xAxis==a&&e.categoryX==o&&(s||(s=e),Math.abs(n-s.index)>Math.abs(n-e.index)&&(s=e)),t.yAxis==a&&e.categoryY==o&&(s||(s=e),Math.abs(n-s.index)>Math.abs(n-e.index)&&(s=e))}),s}}},e.prototype.getX=function(t,e,i){var a;return y.hasValue(e)&&(a=this.categoryToPosition(t.categories[e],i)),y.isNaN(a)?this.basePoint.x:this.renderer.positionToPoint(a).x},e.prototype.getY=function(t,e,i){var a;return y.hasValue(e)&&(a=this.categoryToPosition(t.categories[e],i)),y.isNaN(a)?this.basePoint.y:this.renderer.positionToPoint(a).y},e.prototype.getAngle=function(t,e,i,a){return this.positionToAngle(this.categoryToPosition(t.categories[e],i))},e.prototype.getCellStartPosition=function(t){return this.roundPosition(t,0)},e.prototype.getCellEndPosition=function(t){return this.roundPosition(t,1)},e.prototype.getTooltipText=function(t){var e=this.dataItems.getIndex(this.positionToIndex(t));if(e)return this.adapter.apply("getTooltipText",e.category)},e.prototype.positionToIndex=function(t){(t=m.round(t,10))<0&&(t=0);var e=this.startIndex,i=this.endIndex,a=i-e,n=this.axisBreaks,r=null;return g.eachContinue(n.iterator(),function(n){var s=n.startPosition,o=n.endPosition,l=n.adjustedStartValue,h=n.adjustedEndValue;l=m.max(l,e),h=m.min(h,i);var u=n.breakSize;if(a-=(h-l)*(1-u),t>o)e+=(h-l)*(1-u);else if(!(t<s)){var c=(t-s)/(o-s);return r=l+Math.round(c*(h-l)),!1}return!0}),y.isNumber(r)||(r=Math.floor(t*a+e)),r>=i&&r--,r},e.prototype.positionToCategory=function(t){return this.getPositionLabel(t)},e.prototype.getPositionLabel=function(t){var e=this.dataItems.getIndex(this.positionToIndex(t));if(e)return e.category},Object.defineProperty(e.prototype,"basePoint",{get:function(){return this.renderer.positionToPoint(1)},enumerable:!0,configurable:!0}),e.prototype.initRenderer=function(){t.prototype.initRenderer.call(this),this.renderer.baseGrid.disabled=!0},Object.defineProperty(e.prototype,"frequency",{get:function(){return this._frequency},enumerable:!0,configurable:!0}),e}(A.a);c.b.registeredClasses.CategoryAxis=T,c.b.registeredClasses.CategoryAxisDataItem=D;var V=i("aM7D"),S=i("Vs7R"),k=i("hD5A"),F=i("v9UT"),O=i("hJ5i"),w=i("hGwe"),R=function(t){function e(){var e=t.call(this)||this;return e.className="XYSeriesDataItem",e.values.valueX={stack:0},e.values.valueY={stack:0},e.values.openValueX={},e.values.openValueY={},e.values.dateX={},e.values.dateY={},e.values.openDateX={},e.values.openDateY={},e.setLocation("dateX",.5,0),e.setLocation("dateY",.5,0),e.setLocation("categoryX",.5,0),e.setLocation("categoryY",.5,0),e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"valueX",{get:function(){return this.values.valueX.value},set:function(t){this.setValue("valueX",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"valueY",{get:function(){return this.values.valueY.value},set:function(t){this.setValue("valueY",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dateX",{get:function(){return this.getDate("dateX")},set:function(t){this.setDate("dateX",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dateY",{get:function(){return this.getDate("dateY")},set:function(t){this.setDate("dateY",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"categoryX",{get:function(){return this.categories.categoryX},set:function(t){this.setCategory("categoryX",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"categoryY",{get:function(){return this.categories.categoryY},set:function(t){this.setCategory("categoryY",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"openValueX",{get:function(){return this.values.openValueX.value},set:function(t){this.setValue("openValueX",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"openValueY",{get:function(){return this.values.openValueY.value},set:function(t){this.setValue("openValueY",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"openDateX",{get:function(){return this.getDate("openDateX")},set:function(t){this.setDate("openDateX",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"openDateY",{get:function(){return this.getDate("openDateY")},set:function(t){this.setDate("openDateY",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"openCategoryX",{get:function(){return this.categories.openCategoryX},set:function(t){this.setProperty("openCategoryX",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"openCategoryY",{get:function(){return this.categories.openCategoryY},set:function(t){this.setProperty("openCategoryY",t)},enumerable:!0,configurable:!0}),e.prototype.getMin=function(t,e,i){var a,n=this;return y.isNumber(i)||(i=0),O.each(t,function(t){var r;r=e?n.getWorkingValue(t):n.getValue(t),((r+=i)<a||!y.isNumber(a))&&(a=r)}),a},e.prototype.getMax=function(t,e,i){var a,n=this;return y.isNumber(i)||(i=0),O.each(t,function(t){var r;r=e?n.getWorkingValue(t):n.getValue(t),((r+=i)>a||!y.isNumber(a))&&(a=r)}),a},e}(V.b),L=function(t){function e(){var e=t.call(this)||this;return e._xAxis=new k.d,e._yAxis=new k.d,e._xValueFields=[],e._yValueFields=[],e._baseInterval={},e.className="XYSeries",e.isMeasured=!1,e.cursorTooltipEnabled=!0,e.cursorHoverEnabled=!0,e.mainContainer.mask=new S.a,e.mainContainer.mask.setElement(e.paper.add("path")),e.stacked=!1,e.snapTooltip=!1,e.tooltip.pointerOrientation="horizontal",e.tooltip.events.on("hidden",function(){e.returnBulletDefaultState()},void 0,!1),e._disposers.push(e._xAxis),e._disposers.push(e._yAxis),e.applyTheme(),e}return n.c(e,t),e.prototype.applyInternalDefaults=function(){t.prototype.applyInternalDefaults.call(this),y.hasValue(this.readerTitle)||(this.readerTitle=this.language.translate("X/Y Series"))},e.prototype.createDataItem=function(){return new R},e.prototype.dataChangeUpdate=function(){this._tmin.clear(),this._tmax.clear(),this._smin.clear(),this._smax.clear(),this.xAxis&&this.xAxis.seriesDataChangeUpdate(this),this.yAxis&&this.yAxis.seriesDataChangeUpdate(this)},e.prototype.validateData=function(){if(this.defineFields(),this.data.length>0&&this.dataChangeUpdate(),t.prototype.validateData.call(this),this.updateItemReaderText(),!y.hasValue(this.dataFields[this._xField])||!y.hasValue(this.dataFields[this._yField]))throw Error('Data fields for series "'+(this.name?this.name:this.uid)+'" are not properly defined.')},e.prototype.processDataItem=function(e,i){try{t.prototype.processDataItem.call(this,e,i),e.events.disable(),this.xAxis.processSeriesDataItem(e,"X"),this.yAxis.processSeriesDataItem(e,"Y"),e.events.enable(),this.setInitialWorkingValues(e)}catch(t){this._chart.raiseCriticalError(t)}},e.prototype.setInitialWorkingValues=function(t){},e.prototype.disposeData=function(){if(t.prototype.disposeData.call(this),this.xAxis){var e=this.dataItemsByAxis.getKey(this.xAxis.uid);e&&e.clear(),this.xAxis instanceof T&&this.clearCatAxis(this.xAxis)}if(this.yAxis){var i=this.dataItemsByAxis.getKey(this.yAxis.uid);i&&i.clear(),this.yAxis instanceof T&&this.clearCatAxis(this.yAxis)}},e.prototype.clearCatAxis=function(t){var e=this.uid;t.dataItems.each(function(t){t.seriesDataItems[e]&&(t.seriesDataItems[e]=[])})},e.prototype.defineFields=function(){var t=this.xAxis,e=this.yAxis,i=t.axisFieldName,a=i+"X",n="open"+F.capitalize(i)+"X",r=e.axisFieldName,s=r+"Y",o="open"+F.capitalize(r)+"Y";this._xField=a,this._yField=s,this.dataFields[n]&&(this._xOpenField=n),this.dataFields[o]&&(this._yOpenField=o),this.dataFields[o]||this.baseAxis!=this.yAxis||(this._yOpenField=s),this.dataFields[n]||this.baseAxis!=this.xAxis||(this._xOpenField=a),this.stacked&&this.baseAxis==this.xAxis&&(this._xOpenField=a),this.stacked&&this.baseAxis==this.yAxis&&(this._yOpenField=s),this.xAxis instanceof T&&this.yAxis instanceof T&&(this._yOpenField||(this._yOpenField=s)),this._xValueFields=[],this._yValueFields=[],this.addValueField(this.xAxis,this._xValueFields,this._xField),this.addValueField(this.xAxis,this._xValueFields,this._xOpenField),this.addValueField(this.yAxis,this._yValueFields,this._yField),this.addValueField(this.yAxis,this._yValueFields,this._yOpenField)},e.prototype.addValueField=function(t,e,i){t instanceof l.a&&y.hasValue(this.dataFields[i])&&-1==e.indexOf(i)&&e.push(i)},e.prototype.setCategoryAxisField=function(t,e){y.hasValue(this.dataFields[t])||(this.dataFields[t]=e.dataFields.category)},e.prototype.setDateAxisField=function(t,e){y.hasValue(this.dataFields[t])||(this.dataFields[t]=e.dataFields.date)},e.prototype.afterDraw=function(){t.prototype.afterDraw.call(this),this.createMask()},e.prototype.createMask=function(){if(this.mainContainer.mask){var t=this.getMaskPath();g.each(this.axisRanges.iterator(),function(e){e.axisFill.fillPath&&(e.axisFill.validate(),t+=e.axisFill.fillPath)}),this.mainContainer.mask.path=t}},e.prototype.getMaskPath=function(){return w.rectToPath({x:0,y:0,width:this.xAxis.axisLength,height:this.yAxis.axisLength})},e.prototype.getAxisField=function(t){return t==this.xAxis?this.xField:t==this.yAxis?this.yField:void 0},e.prototype.validateDataItems=function(){this.xAxis.updateAxisBySeries(),this.yAxis.updateAxisBySeries(),t.prototype.validateDataItems.call(this),this.xAxis.postProcessSeriesDataItems(),this.yAxis.postProcessSeriesDataItems()},e.prototype.validateDataRange=function(){this.xAxis.dataRangeInvalid&&this.xAxis.validateDataRange(),this.yAxis.dataRangeInvalid&&this.yAxis.validateDataRange(),t.prototype.validateDataRange.call(this)},e.prototype.validate=function(){this.xAxis.invalid&&this.xAxis.validate(),this.yAxis.invalid&&this.yAxis.validate(),this.y=this.yAxis.pixelY,this.x=this.xAxis.pixelX,this._showBullets=!0;var e=this.minBulletDistance;y.isNumber(e)&&this.baseAxis.axisLength/(this.endIndex-this.startIndex)<e&&(this._showBullets=!1),t.prototype.validate.call(this)},Object.defineProperty(e.prototype,"xAxis",{get:function(){if(this.chart){if(!this._xAxis.get()){var t=this.chart.xAxes.getIndex(0);if(!t)throw Error("There are no X axes on chart.");this.xAxis=t}return this._xAxis.get()}},set:function(t){var e=this._xAxis.get();e!=t&&(e&&(this.dataItemsByAxis.removeKey(e.uid),this._xAxis.dispose(),e.series.removeValue(this)),this._xAxis.set(t,t.registerSeries(this)),this.dataItemsByAxis.setKey(t.uid,new h.a),this.invalidateData())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"yAxis",{get:function(){if(this.chart){if(!this._yAxis.get()){var t=this.chart.yAxes.getIndex(0);if(!t)throw Error("There are no Y axes on chart.");this.yAxis=t}return this._yAxis.get()}},set:function(t){var e=this._yAxis.get();e!=t&&(e&&(this.dataItemsByAxis.removeKey(e.uid),this._yAxis.dispose(),e.series.removeValue(this)),this._yAxis.set(t,t.registerSeries(this)),this.dataItemsByAxis.setKey(t.uid,new h.a),this.invalidateData())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"baseAxis",{get:function(){return this._baseAxis||(this.yAxis instanceof v&&(this._baseAxis=this.yAxis),this.xAxis instanceof v&&(this._baseAxis=this.xAxis),this.yAxis instanceof T&&(this._baseAxis=this.yAxis),this.xAxis instanceof T&&(this._baseAxis=this.xAxis),this._baseAxis||(this._baseAxis=this.xAxis)),this._baseAxis},set:function(t){this._baseAxis!=t&&(this._baseAxis=t,this.invalidate())},enumerable:!0,configurable:!0}),e.prototype.processValues=function(e){t.prototype.processValues.call(this,e);var i=this.dataItems,a=1/0,n=-1/0,r=1/0,s=-1/0,o=this.startIndex,l=this.endIndex;e||(o=0,l=this.dataItems.length);for(var h=o;h<l;h++){var u=i.getIndex(h);this.getStackValue(u,e);var c=u.getValue("valueX","stack"),d=u.getValue("valueY","stack");a=m.min(u.getMin(this._xValueFields,e,c),a),r=m.min(u.getMin(this._yValueFields,e,d),r),n=m.max(u.getMax(this._xValueFields,e,c),n),s=m.max(u.getMax(this._yValueFields,e,d),s),this.stacked&&(this.baseAxis==this.xAxis&&(r=m.min(r,d)),this.baseAxis==this.yAxis&&(a=m.min(a,c)))}this.xAxis.processSeriesDataItems(),this.yAxis.processSeriesDataItems();var p=this.xAxis.uid,y=this.yAxis.uid;e||this._tmin.getKey(p)==a&&this._tmax.getKey(p)==n&&this._tmin.getKey(y)==r&&this._tmax.getKey(y)==s||(this._tmin.setKey(p,a),this._tmax.setKey(p,n),this._tmin.setKey(y,r),this._tmax.setKey(y,s),this.stackedSeries&&this.stackedSeries.processValues(!1),this.dispatchImmediately("extremeschanged")),this._smin.getKey(p)==a&&this._smax.getKey(p)==n&&this._smin.getKey(y)==r&&this._smax.getKey(y)==s||(this._smin.setKey(p,a),this._smax.setKey(p,n),this._smin.setKey(y,r),this._smax.setKey(y,s),(this.appeared||0!=this.start||1!=this.end)&&this.dispatchImmediately("selectionextremeschanged")),!e&&this.stacked&&this.processValues(!0)},e.prototype.hideTooltip=function(){t.prototype.hideTooltip.call(this),this.returnBulletDefaultState(),this._prevTooltipDataItem=void 0},e.prototype.showTooltipAtPosition=function(t,e){var i;if(this.visible&&!this.isHiding&&!this.isShowing){var a=this._xAxis.get(),n=this._yAxis.get();a==this.baseAxis&&(i=a.getSeriesDataItem(this,a.toAxisPosition(t),this.snapTooltip)),n==this.baseAxis&&(i=n.getSeriesDataItem(this,n.toAxisPosition(e),this.snapTooltip));var r=this.showTooltipAtDataItem(i);if(r)return r;if(!this.tooltipText)return}this.hideTooltip()},e.prototype.showTooltipAtDataItem=function(t){if(this.returnBulletDefaultState(t),t&&t.visible&&(this.updateLegendValue(t),this.cursorTooltipEnabled)){this.tooltipDataItem=t;var e=this.tooltipXField,i=this.tooltipYField;if(y.hasValue(t[e])&&y.hasValue(t[i])){var a=this.getPoint(t,e,i,t.locations[e],t.locations[i]);if(a){if(this.tooltipX=a.x,this.tooltipY=a.y,this._prevTooltipDataItem!=t&&(this.dispatchImmediately("tooltipshownat",{type:"tooltipshownat",target:this,dataItem:t}),this._prevTooltipDataItem=t),this.cursorHoverEnabled)try{for(var r=n.g(t.sprites),s=r.next();!s.done;s=r.next()){var o=s.value;!o.parent.visible||o.isHidden||o.__disabled||o.disabled||o.isHiding||(o.isHover=!0)}}catch(t){l={error:t}}finally{try{s&&!s.done&&(h=r.return)&&h.call(r)}finally{if(l)throw l.error}}return this.showTooltip()?F.spritePointToSvg({x:a.x,y:a.y},this):void 0}}}var l,h},e.prototype.returnBulletDefaultState=function(t){if(this._prevTooltipDataItem&&this._prevTooltipDataItem!=t)try{for(var e=n.g(this._prevTooltipDataItem.sprites),i=e.next();!i.done;i=e.next()){var a=i.value;a.isDisposed()?this._prevTooltipDataItem=void 0:a.isHover=!1}}catch(t){r={error:t}}finally{try{i&&!i.done&&(s=e.return)&&s.call(e)}finally{if(r)throw r.error}}var r,s},e.prototype.shouldCreateBullet=function(t,e){var i=e.xField;y.hasValue(i)||(i=this.xField);var a=e.yField;return y.hasValue(a)||(a=this.yField),!(this.xAxis instanceof l.a&&!t.hasValue([i])||this.yAxis instanceof l.a&&!t.hasValue([a]))},e.prototype.positionBullet=function(e){t.prototype.positionBullet.call(this,e);var i=e.dataItem,a=e.xField;y.hasValue(a)||(a=this.xField);var n=e.yField;if(y.hasValue(n)||(n=this.yField),this.xAxis instanceof l.a&&!i.hasValue([a])||this.yAxis instanceof l.a&&!i.hasValue([n]))e.visible=!1;else{var r=this.getBulletLocationX(e,a),s=this.getBulletLocationY(e,n),o=this.getPoint(i,a,n,r,s);if(o){var h=o.x,u=o.y;if(y.isNumber(e.locationX)&&this.xOpenField!=this.xField)h-=(h-this.xAxis.getX(i,this.xOpenField))*e.locationX;if(y.isNumber(e.locationY)&&this.yOpenField!=this.yField)u-=(u-this.yAxis.getY(i,this.yOpenField))*e.locationY;e.moveTo({x:h,y:u}),e.visible=!0}else e.visible=!1}},e.prototype.getBulletLocationX=function(t,e){var i=t.locationX,a=t.dataItem;return y.isNumber(i)||(i=a.workingLocations[e]),i},e.prototype.getBulletLocationY=function(t,e){var i=t.locationY,a=t.dataItem;return y.isNumber(i)||(i=a.workingLocations[e]),i},Object.defineProperty(e.prototype,"stacked",{get:function(){return this.getPropertyValue("stacked")},set:function(t){this.setPropertyValue("stacked",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"snapTooltip",{get:function(){return this.getPropertyValue("snapTooltip")},set:function(t){this.setPropertyValue("snapTooltip",t)},enumerable:!0,configurable:!0}),e.prototype.show=function(e){var i,a=this;this.xAxis instanceof l.a&&this.xAxis!=this.baseAxis&&(i=this._xValueFields),this.yAxis instanceof l.a&&this.yAxis!=this.baseAxis&&(i=this._yValueFields);var n,r=this.startIndex,s=this.endIndex,o=0,h=this.defaultState.transitionDuration;y.isNumber(e)&&(h=e),g.each(g.indexed(this.dataItems.iterator()),function(t){var e=t[0],l=t[1];a.sequencedInterpolation&&h>0&&(o=a.sequencedInterpolationDelay*e+h*(e-r)/(s-r)),n=l.show(h,o,i)});var u=t.prototype.show.call(this,e);return n&&!n.isFinished()&&(u=n),u},e.prototype.hide=function(e){var i,a,n=this,r=this.xAxis;r instanceof l.a&&r!=this.baseAxis&&(i=this._xValueFields,a=this.stacked||r.minZoomed<0&&r.maxZoomed>0||this.stackedSeries?0:r.min);var s=this.yAxis;s instanceof l.a&&s!=this.baseAxis&&(i=this._yValueFields,a=this.stacked||s.minZoomed<0&&s.maxZoomed>0||this.stackedSeries?0:s.min);var o=this.startIndex,h=this.endIndex,u=this.hiddenState.transitionDuration;y.isNumber(e)&&(u=e);var c,d=0;g.each(g.indexed(this.dataItems.iterator()),function(t){var e=t[0],r=t[1];0==u?r.hide(0,0,a,i):(n.sequencedInterpolation&&u>0&&(d=n.sequencedInterpolationDelay*e+u*(e-o)/(h-o)),c=r.hide(u,d,a,i))});var p=t.prototype.hide.call(this,u);return p&&!p.isFinished()&&p.delay(d),c&&!c.isFinished()&&(p=c),this.validateDataElements(),p},e.prototype.handleDataItemWorkingValueChange=function(e,i){t.prototype.handleDataItemWorkingValueChange.call(this,e,i);var a=this.baseAxis.series;g.each(a.iterator(),function(t){t.stacked&&t.invalidateProcessedData()})},e.prototype.getStackValue=function(t,e){var i=this;if(this.stacked){var a,n=this.chart,r=n.series.indexOf(this);this.xAxis!=this.baseAxis&&this.xAxis instanceof l.a&&(a=this.xField),this.yAxis!=this.baseAxis&&this.yAxis instanceof l.a&&(a=this.yField),t.setCalculatedValue(a,0,"stack"),g.eachContinue(n.series.range(0,r).backwards().iterator(),function(n){if(n.xAxis==i.xAxis&&n.yAxis==i.yAxis){n.stackedSeries=i;var r=n.dataItems.getIndex(t.index);if(r&&r.hasValue(i._xValueFields)&&r.hasValue(i._yValueFields)){var s=t.getValue(a),o=void 0;if(o=e?r.getWorkingValue(a)+r.getValue(a,"stack"):r.getValue(a)+r.getValue(a,"stack"),s>=0&&o>=0||s<0&&o<0)return t.setCalculatedValue(a,o,"stack"),!1}else if(!n.stacked)return!1}return!0})}},Object.defineProperty(e.prototype,"xField",{get:function(){return this._xField},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"yField",{get:function(){return this._yField},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"xOpenField",{get:function(){return this._xOpenField},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"yOpenField",{get:function(){return this._yOpenField},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tooltipXField",{get:function(){return this._tooltipXField?this._tooltipXField:this._xField},set:function(t){this._tooltipXField=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tooltipYField",{get:function(){return this._tooltipYField?this._tooltipYField:this._yField},set:function(t){this._tooltipYField=t},enumerable:!0,configurable:!0}),e.prototype.min=function(t){return this._tmin.getKey(t.uid)},e.prototype.max=function(t){return this._tmax.getKey(t.uid)},e.prototype.selectionMin=function(t){var e=this._smin.getKey(t.uid);return y.isNumber(e)||(e=this.min(t)),e},e.prototype.selectionMax=function(t){var e=this._smax.getKey(t.uid);return y.isNumber(e)||(e=this.max(t)),e},e.prototype.processConfig=function(e){if(e){if(y.hasValue(e.xAxis)&&y.isString(e.xAxis)&&(this.map.hasKey(e.xAxis)?e.xAxis=this.map.getKey(e.xAxis):(this.processingErrors.push("[XYSeries ("+(this.name||"unnamed")+')] No axis with id "'+e.xAxis+'" found for `xAxis`.'),delete e.xAxis)),y.hasValue(e.yAxis)&&y.isString(e.yAxis)&&(this.map.hasKey(e.yAxis)?e.yAxis=this.map.getKey(e.yAxis):(this.processingErrors.push("[XYSeries ("+(this.name||"unnamed")+')] No axis with id "'+e.yAxis+'" found for `yAxis`.'),delete e.yAxis)),y.hasValue(e.axisRanges)&&y.isArray(e.axisRanges))for(var i=0,a=e.axisRanges.length;i<a;i++){var n=e.axisRanges[i];y.hasValue(n.type)||(n.type="AxisDataItem"),y.hasValue(n.axis)&&y.isString(n.axis)&&this.map.hasKey(n.axis)?n.component=this.map.getKey(n.axis):y.hasValue(n.component)&&y.isString(n.component)&&this.map.hasKey(n.component)&&(n.component=this.map.getKey(n.component))}y.hasValue(e.dataFields)&&y.isObject(e.dataFields)||this.processingErrors.push("`dataFields` is not set for series ["+(this.name||"unnamed")+"]")}t.prototype.processConfig.call(this,e)},e.prototype.getPoint=function(t,e,i,a,n,r,s){var o=this.xAxis.getX(t,e,a),l=this.yAxis.getY(t,i,n);return{x:o=m.fitToRange(o,-2e4,2e4),y:l=m.fitToRange(l,-2e4,2e4)}},e.prototype.updateItemReaderText=function(){var t="";f.each(this.dataFields,function(e,i){t+="{"+e+"} "}),this.itemReaderText=t},Object.defineProperty(e.prototype,"cursorTooltipEnabled",{get:function(){return this.getPropertyValue("cursorTooltipEnabled")},set:function(t){this.setPropertyValue("cursorTooltipEnabled",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cursorHoverEnabled",{get:function(){return this.getPropertyValue("cursorHoverEnabled")},set:function(t){this.setPropertyValue("cursorHoverEnabled",t)},enumerable:!0,configurable:!0}),e}(V.a);c.b.registeredClasses.XYSeries=L,c.b.registeredClasses.XYSeriesDataItem=R;var X=i("zhwk"),Y=i("tjMS"),j=i("qCRI"),N=function(t){function e(){var e=t.call(this)||this;e.point={x:0,y:0},e._stick="none",e.className="Cursor",e.width=Object(Y.c)(100),e.height=Object(Y.c)(100),e.shouldClone=!1,e.hide(0),e.trackable=!0,e.clickable=!0,e.isMeasured=!1;var i=Object(X.b)();return e._disposers.push(i.body.events.on("down",e.handleCursorDown,e)),e._disposers.push(i.body.events.on("up",e.handleCursorUp,e)),e._disposers.push(i.body.events.on("track",e.handleCursorMove,e)),e.applyTheme(),e}return n.c(e,t),e.prototype.handleCursorMove=function(t){if(!(!this.interactionsEnabled||this.interactions.isTouchProtected&&t.touch)){if(("zoom"==this._generalBehavior||"pan"==this._generalBehavior)&&this.downPoint||Object(X.b)().isLocalElement(t.pointer,this.paper.svg,this.uid)){var e=F.documentPointToSprite(t.pointer.point,this);return"hard"==this._stick&&this._stickPoint&&(e=this._stickPoint),"soft"==this._stick&&this._stickPoint&&(this.fitsToBounds(e)||(e=this._stickPoint)),this.triggerMove(e),e}this.isHidden&&this.isHiding||this.hide()}},e.prototype.hideReal=function(e){if("hard"!=this._stick&&"soft"!=this._stick||!this._stickPoint)return t.prototype.hideReal.call(this,e)},e.prototype.triggerMove=function(t,e){t.x=m.round(t.x,1),t.y=m.round(t.y,1),e&&(this._stick=e),"hard"!=e&&"soft"!=e||(this._stickPoint=t),this.triggerMoveReal(t)},e.prototype.triggerMoveReal=function(t){this.point.x==t.x&&this.point.y==t.y||(this.point=t,this.invalidatePosition(),this.fitsToBounds(t)?this.show(0):this.downPoint||this.hide(0),this.visible&&(this.getPositions(),this.dispatch("cursorpositionchanged")))},e.prototype.triggerDown=function(t){this.triggerDownReal(t)},e.prototype.triggerDownReal=function(t){switch(this._generalBehavior){case"zoom":this.dispatchImmediately("zoomstarted");break;case"select":this.dispatchImmediately("selectstarted");break;case"pan":this.dispatchImmediately("panstarted"),Object(X.b)().setGlobalStyle(j.a.grabbing)}},e.prototype.triggerUp=function(t){this.triggerUpReal(t)},e.prototype.triggerUpReal=function(t){this.updatePoint(this.upPoint);var e=Object(X.b)();if(m.getDistance(this._upPointOrig,this._downPointOrig)>e.getHitOption(this.interactions,"hitTolerance")){switch(this._generalBehavior){case"zoom":this.dispatchImmediately("zoomended");break;case"select":this.dispatchImmediately("selectended");break;case"pan":this.dispatchImmediately("panended"),e.setGlobalStyle(j.a.default)}this.downPoint=void 0,this.updateSelection()}else this.dispatchImmediately("behaviorcanceled"),e.setGlobalStyle(j.a.default),this.downPoint=void 0},e.prototype.updateSelection=function(){},e.prototype.getPositions=function(){this.xPosition=this.point.x/this.innerWidth,this.yPosition=1-this.point.y/this.innerHeight},e.prototype.handleCursorDown=function(t){if(!(!this.interactionsEnabled||this.interactions.isTouchProtected&&t.touch)&&Object(X.b)().isLocalElement(t.pointer,this.paper.svg,this.uid)){var e=F.documentPointToSprite(t.pointer.point,this);this._downPointOrig={x:e.x,y:e.y},t.event.cancelable&&this.shouldPreventGestures(t.touch)&&this.fitsToBounds(e)&&t.event.preventDefault(),this.triggerMove(e),this.triggerDown(e)}},e.prototype.shouldPreventGestures=function(t){return!0},e.prototype.updatePoint=function(t){},e.prototype.handleCursorUp=function(t){if(this.interactionsEnabled&&(("zoom"==this._generalBehavior||"pan"==this._generalBehavior)&&this.downPoint||Object(X.b)().isLocalElement(t.pointer,this.paper.svg,this.uid))){var e=F.documentPointToSprite(t.pointer.point,this);this._upPointOrig={x:e.x,y:e.y},this.triggerMove(e),this.triggerUp(e)}},Object.defineProperty(e.prototype,"chart",{get:function(){return this._chart},set:function(t){this._chart=t,y.hasValue(this._chart.plotContainer)&&Object(X.b)().lockElement(this._chart.plotContainer.interactions)},enumerable:!0,configurable:!0}),e}(s.a);c.b.registeredClasses.Cursor=N;var M=i("8ZqG"),W=i("MIZb"),B=function(t){function e(){var e=t.call(this)||this;e._lineX=new k.d,e._lineY=new k.d,e._xAxis=new k.d,e._yAxis=new k.d,e.className="XYCursor",e.behavior="zoomX",e.maxPanOut=.1;var i=new W.a,a=e.createChild(S.a);a.shouldClone=!1,a.fillOpacity=.2,a.fill=i.getFor("alternativeBackground"),a.isMeasured=!1,a.interactionsEnabled=!1,e.selection=a,e._disposers.push(e.selection);var n=e.createChild(S.a);n.shouldClone=!1,n.stroke=i.getFor("grid"),n.fill=Object(M.c)(),n.strokeDasharray="3,3",n.isMeasured=!1,n.strokeOpacity=.4,n.interactionsEnabled=!1,n.y=0,e.lineX=n,e._disposers.push(e.lineX);var r=e.createChild(S.a);return r.shouldClone=!1,r.stroke=i.getFor("grid"),r.fill=Object(M.c)(),r.strokeDasharray="3,3",r.isMeasured=!1,r.strokeOpacity=.4,r.interactionsEnabled=!1,r.x=0,e.lineY=r,e._disposers.push(e.lineY),e.events.on("sizechanged",e.updateSize,e,!1),e._disposers.push(e._lineX),e._disposers.push(e._lineY),e._disposers.push(e._xAxis),e._disposers.push(e._yAxis),e.mask=e,e.applyTheme(),e}return n.c(e,t),e.prototype.updateSize=function(){this.lineX&&(this.lineX.path=w.moveTo({x:0,y:0})+w.lineTo({x:0,y:this.innerHeight})),this.lineY&&(this.lineY.path=w.moveTo({x:0,y:0})+w.lineTo({x:this.innerWidth,y:0}))},e.prototype.updateSelection=function(){if(this._usesSelection){var t=this.downPoint;if(t){var e=this.point;this.lineX&&(e.x=this.lineX.pixelX),this.lineY&&(e.y=this.lineY.pixelY);var i=this.selection,a=Math.min(e.x,t.x),n=Math.min(e.y,t.y),r=m.round(Math.abs(t.x-e.x),this._positionPrecision),s=m.round(Math.abs(t.y-e.y),this._positionPrecision);switch(this.behavior){case"zoomX":n=0,s=this.pixelHeight;break;case"zoomY":a=0,r=this.pixelWidth;break;case"selectX":n=0,s=this.pixelHeight;break;case"selectY":a=0,r=this.pixelWidth}i.x=a,i.y=n,i.path=w.rectangle(r,s),i.validatePosition()}else this.selection.hide()}},e.prototype.fixPoint=function(t){return t.x=Math.max(0,t.x),t.y=Math.max(0,t.y),t.x=Math.min(this.pixelWidth,t.x),t.y=Math.min(this.pixelHeight,t.y),t},e.prototype.triggerMoveReal=function(e){t.prototype.triggerMoveReal.call(this,e),this.snapToSeries&&!this.snapToSeries.isHidden||this.updateLinePositions(e),this.downPoint&&m.getDistance(this.downPoint,e)>3&&"pan"==this._generalBehavior&&(this.getPanningRanges(),this.dispatch("panning"))},e.prototype.updateLinePositions=function(t){t=this.fixPoint(this.point),this.lineX&&this.lineX.visible&&!this.xAxis&&(this.lineX.x=t.x),this.lineY&&this.lineY.visible&&!this.yAxis&&(this.lineY.y=t.y),this.updateSelection()},e.prototype.triggerDownReal=function(e){if(this.visible&&!this.isHiding)if(this.fitsToBounds(e)){this.downPoint={x:e.x,y:e.y},this.updatePoint(e),this.point.x=this.downPoint.x,this.point.y=this.downPoint.y;var i=this.selection,a=this.downPoint.x,n=this.downPoint.y;this._usesSelection&&(i.x=a,i.y=n,i.path="",i.show()),t.prototype.triggerDownReal.call(this,e)}else this.downPoint=void 0;else this.downPoint=void 0},e.prototype.updatePoint=function(t){this.lineX&&(t.x=this.lineX.pixelX),this.lineY&&(t.y=this.lineY.pixelY)},e.prototype.triggerUpReal=function(e){m.getDistance(this._upPointOrig,this._downPointOrig)>Object(X.b)().getHitOption(this.interactions,"hitTolerance")?this.downPoint&&(this.upPoint=e,this.updatePoint(this.upPoint),this.getRanges(),"selectX"==this.behavior||"selectY"==this.behavior||"selectXY"==this.behavior||this.selection.hide(),t.prototype.triggerUpReal.call(this,e)):(this.selection.hide(0),"pan"==this._generalBehavior&&Object(X.b)().setGlobalStyle(j.a.default));this.downPoint=void 0},e.prototype.getPanningRanges=function(){var t=m.round(this.downPoint.x/this.innerWidth,5),e=m.round(this.downPoint.y/this.innerHeight,5),i=t-m.round(this.point.x/this.innerWidth,5),a=-e+m.round(this.point.y/this.innerHeight,5);this.xRange={start:i,end:1+i},this.yRange={start:a,end:1+a},"panX"==this.behavior&&(this.yRange.start=0,this.yRange.end=1),"panY"==this.behavior&&(this.xRange.start=0,this.xRange.end=1)},e.prototype.getRanges=function(){this.lineX&&(this.upPoint.x=this.lineX.pixelX),this.lineY&&(this.upPoint.y=this.lineY.pixelY),F.used(this.selection);var t=m.round(this.downPoint.x/this.innerWidth,5),e=m.round(this.upPoint.x/this.innerWidth,5),i=m.round(this.downPoint.y/this.innerHeight,5),a=m.round(this.upPoint.y/this.innerHeight,5);this.xRange={start:m.min(t,e),end:m.max(t,e)},this.yRange={start:m.min(i,a),end:m.max(i,a)}},Object.defineProperty(e.prototype,"behavior",{get:function(){return this.getPropertyValue("behavior")},set:function(t){this.setPropertyValue("behavior",t,!0),this._usesSelection=!1,-1!=t.indexOf("zoom")&&(this._generalBehavior="zoom",this._usesSelection=!0),-1!=t.indexOf("select")&&(this._generalBehavior="select",this._usesSelection=!0),-1!=t.indexOf("pan")&&(this._generalBehavior="pan",this._usesSelection=!1)},enumerable:!0,configurable:!0}),e.prototype.shouldPreventGestures=function(t){return!(this.interactions.isTouchProtected&&t||"none"==this.behavior)},Object.defineProperty(e.prototype,"fullWidthLineX",{get:function(){return this.getPropertyValue("fullWidthLineX")},set:function(t){this.setPropertyValue("fullWidthLineX",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fullWidthLineY",{get:function(){return this.getPropertyValue("fullWidthLineY")},set:function(t){this.setPropertyValue("fullWidthLineY",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxPanOut",{get:function(){return this.getPropertyValue("maxPanOut")},set:function(t){this.setPropertyValue("maxPanOut",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"xAxis",{get:function(){return this._xAxis.get()},set:function(t){this._xAxis.get()!=t&&this._xAxis.set(t,new k.c([t.tooltip.events.on("positionchanged",this.handleXTooltipPosition,this,!1)]))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"yAxis",{get:function(){return this._yAxis.get()},set:function(t){this._yAxis.get()!=t&&this._yAxis.set(t,new k.c([t.tooltip.events.on("positionchanged",this.handleYTooltipPosition,this,!1)]))},enumerable:!0,configurable:!0}),e.prototype.handleXTooltipPosition=function(t){var e=this.xAxis.tooltip,i=F.svgPointToSprite({x:e.pixelX,y:e.pixelY},this),a=i.x;if(this.lineX&&(this.lineX.x=a,this.fitsToBounds(i)||this.hide()),this.xAxis&&this.fullWidthLineX){var n=this.xAxis.currentItemStartPoint,r=this.xAxis.currentItemEndPoint;if(n&&r){this.lineX.x=a;var s=r.x-n.x;this.lineX.path=w.rectangle(s,this.innerHeight,-s/2)}}},e.prototype.handleYTooltipPosition=function(t){var e=this.yAxis.tooltip,i=F.svgPointToSprite({x:e.pixelX,y:e.pixelY},this),a=i.y;if(this.lineY&&(this.lineY.y=a,this.fitsToBounds(i)||this.hide()),this.yAxis&&this.fullWidthLineY){var n=this.yAxis.currentItemStartPoint,r=this.yAxis.currentItemEndPoint;if(n&&r){this.lineY.y=a;var s=r.y-n.y;this.lineY.path=w.rectangle(this.innerWidth,s,0,-s/2)}}},Object.defineProperty(e.prototype,"lineX",{get:function(){return this._lineX.get()},set:function(t){t?(t.setElement(this.paper.add("path")),this._lineX.set(t,t.events.on("positionchanged",this.updateSelection,this,!1)),t.interactionsEnabled=!1,t.parent=this):this._lineX.reset()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"lineY",{get:function(){return this._lineY.get()},set:function(t){t?(t.setElement(this.paper.add("path")),this._lineY.set(t,t.events.on("positionchanged",this.updateSelection,this,!1)),t.parent=this,t.interactionsEnabled=!1):this._lineY.reset()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selection",{get:function(){return this._selection},set:function(t){this._selection=t,t&&(t.element=this.paper.add("path"),t.parent=this)},enumerable:!0,configurable:!0}),e.prototype.processConfig=function(e){e&&(y.hasValue(e.xAxis)&&y.isString(e.xAxis)&&(this.map.hasKey(e.xAxis)?e.xAxis=this.map.getKey(e.xAxis):(this.processingErrors.push('[XYCursor] No axis with id "'+e.xAxis+'" found for `xAxis`'),delete e.xAxis)),y.hasValue(e.yAxis)&&y.isString(e.yAxis)&&(this.map.hasKey(e.yAxis)?e.yAxis=this.map.getKey(e.yAxis):(this.processingErrors.push('[XYCursor] No axis with id "'+e.yAxis+'" found for `yAxis`'),delete e.yAxis)),y.hasValue(e.snapToSeries)&&y.isString(e.snapToSeries)&&(this.map.hasKey(e.snapToSeries)?e.snapToSeries=this.map.getKey(e.snapToSeries):(this.processingErrors.push('[XYCursor] No series with id "'+e.snapToSeries+'" found for `series`'),delete e.snapToSeries))),t.prototype.processConfig.call(this,e)},Object.defineProperty(e.prototype,"snapToSeries",{get:function(){return this.getPropertyValue("snapToSeries")},set:function(t){this.setPropertyValue("snapToSeries",t)&&(this._snapToDisposer&&this._snapToDisposer.dispose(),t&&(this._snapToDisposer=t.events.on("tooltipshownat",this.handleSnap,this,!1)))},enumerable:!0,configurable:!0}),e.prototype.handleSnap=function(){var t=this.snapToSeries,e=t.tooltipY,i=t.tooltipX;this.xAxis&&this.xAxis.renderer.opposite&&(e-=this.pixelHeight),this.point={x:i,y:e},this.getPositions();var a=i,n=e;i-=this.pixelWidth,this.yAxis&&this.yAxis.renderer.opposite&&(i+=this.pixelWidth);var r=t.tooltip,s=r.animationDuration,o=r.animationEasing;t.baseAxis==t.xAxis&&t.yAxis.showTooltipAtPosition(this.yPosition),t.baseAxis==t.yAxis&&t.xAxis.showTooltipAtPosition(this.xPosition),this.lineX.animate([{property:"y",to:e}],s,o),this.lineY.animate([{property:"x",to:i}],s,o),this.xAxis||this.lineX.animate([{property:"x",to:a}],s,o),this.yAxis||this.lineY.animate([{property:"y",to:n}],s,o)},e.prototype.dispose=function(){this.hide(0),t.prototype.dispose.call(this)},e}(N);c.b.registeredClasses.XYCursor=B;var E=i("BEgH"),H=i("ISWh"),z=i("85D4"),U=function(t){function e(){var e=t.call(this)||this;e._chart=new k.d,e.className="XYChartScrollbar";var i=new W.a;e.padding(0,0,0,0);var a=e.createChild(q);a.shouldClone=!1,a.margin(0,0,0,0),a.padding(0,0,0,0),a.interactionsEnabled=!1,e._scrollbarChart=a,e._disposers.push(e._scrollbarChart),e.minHeight=60,e.minWidth=60;var n=e.createChild(S.a);n.shouldClone=!1,n.setElement(e.paper.add("path")),n.fill=i.getFor("background"),n.fillOpacity=.8,n.interactionsEnabled=!1,n.isMeasured=!1,n.toBack(),e._unselectedOverlay=n,e._disposers.push(e._unselectedOverlay),a.toBack(),e.background.cornerRadius(0,0,0,0);var r=e.thumb.background;r.cornerRadius(0,0,0,0),r.fillOpacity=0,r.fill=i.getFor("background");var s=r.states.getKey("hover");s&&(s.properties.fillOpacity=.2);var o=r.states.getKey("down");return o&&(o.properties.fillOpacity=.4),e._disposers.push(e._chart),e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"series",{get:function(){return this._series||(this._series=new o.b,this._disposers.push(this._series.events.on("inserted",this.handleSeriesAdded,this,!1)),this._disposers.push(this._series.events.on("removed",this.handleSeriesRemoved,this,!1))),this._series},enumerable:!0,configurable:!0}),e.prototype.handleSeriesAdded=function(t){var e=t.newValue,i=this.scrollbarChart;i.zoomOutButton.disabled=!0,this.chart=e.chart;var a=!0,n=!0;g.each(this.series.iterator(),function(t){t!=e&&(t.xAxis==e.xAxis&&(a=!1),t.yAxis==e.yAxis&&(n=!1))});var r=new W.a,s=e.clone();if(a){var o=e.xAxis.clone();i.xAxes.moveValue(o),o.title.disabled=!0,o.rangeChangeDuration=0,o.id=e.uid,(l=o.renderer).ticks.template.disabled=!0,l.inside=!0,l.labels.template.inside=!0,l.line.strokeOpacity=0,l.minLabelPosition=.02,l.maxLabelPosition=.98,l.line.disabled=!0,l.axisFills.template.disabled=!0,l.baseGrid.disabled=!0,l.grid.template.strokeOpacity=.05,l.minWidth=void 0,l.minHeight=void 0,l.padding(0,0,0,0),l.chart=i,l.margin(0,0,0,0),l.labels.template.fillOpacity=.5,s.xAxis=o}if(n){var l,h=e.yAxis.clone();i.yAxes.moveValue(h),h.title.disabled=!0,h.rangeChangeDuration=0,(l=h.renderer).ticks.template.disabled=!0,l.inside=!0,l.labels.template.inside=!0,l.line.strokeOpacity=0,l.minLabelPosition=.02,l.maxLabelPosition=.98,l.line.disabled=!0,l.axisFills.template.disabled=!0,l.grid.template.stroke=r.getFor("background"),l.baseGrid.disabled=!0,l.grid.template.strokeOpacity=.05,l.minWidth=void 0,l.minHeight=void 0,l.chart=i,l.padding(0,0,0,0),l.margin(0,0,0,0),l.labels.template.fillOpacity=.5,s.yAxis=h}s.rangeChangeDuration=0,s.interpolationDuration=0,s.defaultState.transitionDuration=0,s.showOnInit=!1,this._disposers.push(s.events.on("validated",this.zoomOutAxes,this,!1)),this._disposers.push(e.events.on("datavalidated",function(){s.data!=e.data&&(s.data=e.data)},void 0,!1)),s.defaultState.properties.visible=!0,s.filters.push(new z.a),i.series.push(s),this.updateByOrientation()},e.prototype.updateByOrientation=function(){var t=this;this._scrollbarChart&&(g.each(this._scrollbarChart.xAxes.iterator(),function(e){var i=e.renderer;"vertical"==t.orientation?(i.grid.template.disabled=!0,i.labels.template.disabled=!0,i.minGridDistance=10):(i.grid.template.disabled=!1,i.labels.template.disabled=!1,i.minGridDistance=e.clonedFrom.renderer.minGridDistance)}),g.each(this._scrollbarChart.yAxes.iterator(),function(e){var i=e.renderer;"horizontal"==t.orientation?(i.grid.template.disabled=!0,i.labels.template.disabled=!0,i.minGridDistance=10):(i.grid.template.disabled=!1,i.labels.template.disabled=!1,i.minGridDistance=e.clonedFrom.renderer.minGridDistance)}))},e.prototype.handleSeriesRemoved=function(t){t.oldValue.events.off("validated",this.zoomOutAxes,this)},Object.defineProperty(e.prototype,"scrollbarChart",{get:function(){return this._scrollbarChart},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"chart",{get:function(){return this._chart.get()},set:function(t){this._chart.get()!==t&&(this._chart.set(t,t.events.on("datavalidated",this.handleDataChanged,this,!1)),this.handleDataChanged(),this._scrollbarChart.dataProvider=t)},enumerable:!0,configurable:!0}),e.prototype.handleDataChanged=function(){this.chart.data!=this.scrollbarChart.data&&(this.scrollbarChart.data=this.chart.data)},e.prototype.zoomOutAxes=function(){var t=this.scrollbarChart;g.each(t.xAxes.iterator(),function(t){t.zoom({start:0,end:1},!0,!0)}),g.each(t.yAxes.iterator(),function(t){t.zoom({start:0,end:1},!0,!0)})},e.prototype.updateThumb=function(){if(t.prototype.updateThumb.call(this),this._unselectedOverlay){var e=this.thumb,i=e.pixelX||0,a=e.pixelY||0,n=e.pixelWidth||0,r=e.pixelHeight||0,s="";"horizontal"==this.orientation?(s=w.rectToPath({x:-1,y:0,width:i,height:r}),s+=w.rectToPath({x:i+n,y:0,width:(this.pixelWidth||0)-i-n,height:r})):(s=w.rectToPath({x:0,y:0,width:n,height:a}),s+=w.rectToPath({x:0,y:a+r,width:n,height:(this.pixelHeight||0)-a-r})),this._unselectedOverlay.path=s}},e.prototype.processConfig=function(e){if(e&&y.hasValue(e.series)&&y.isArray(e.series))for(var i=0,a=e.series.length;i<a;i++){var n=e.series[i];if(y.hasValue(n)&&y.isString(n)){if(!this.map.hasKey(n))throw Error("XYChartScrollbar error: Series with id `"+n+"` does not exist.");e.series[i]=this.map.getKey(n)}}t.prototype.processConfig.call(this,e)},e}(H.a);c.b.registeredClasses.XYChartScrollbar=U;var K=i("TGuK"),G=function(t){function e(){var e=t.call(this)||this;return e.className="XYChartDataItem",e.applyTheme(),e}return n.c(e,t),e}(r.b),q=function(t){function e(){var e=t.call(this)||this;e._axisRendererX=b.a,e._axisRendererY=P.a,e._seriesPoints=[],e.className="XYChart",e.maskBullets=!0,e.arrangeTooltips=!0;var i=e.chartContainer;i.layout="vertical",e.padding(15,15,15,15);var a=i.createChild(s.a);a.shouldClone=!1,a.layout="vertical",a.width=Object(Y.c)(100),a.zIndex=1,e.topAxesContainer=a;var n=i.createChild(s.a);n.shouldClone=!1,n.layout="horizontal",n.width=Object(Y.c)(100),n.height=Object(Y.c)(100),n.zIndex=0,e.yAxesAndPlotContainer=n;var r=i.createChild(s.a);r.shouldClone=!1,r.width=Object(Y.c)(100),r.layout="vertical",r.zIndex=1,e.bottomAxesContainer=r;var o=n.createChild(s.a);o.shouldClone=!1,o.layout="horizontal",o.height=Object(Y.c)(100),o.contentAlign="right",o.events.on("transformed",e.updateXAxesMargins,e,!1),o.zIndex=1,e.leftAxesContainer=o;var l=n.createChild(s.a);l.shouldClone=!1,l.height=Object(Y.c)(100),l.width=Object(Y.c)(100),l.background.fillOpacity=0,e.plotContainer=l,e.mouseWheelBehavior="none",e._cursorContainer=l;var h=n.createChild(s.a);h.shouldClone=!1,h.layout="horizontal",h.height=Object(Y.c)(100),h.zIndex=1,h.events.on("transformed",e.updateXAxesMargins,e,!1),e.rightAxesContainer=h,e.seriesContainer.parent=l,e.bulletsContainer.parent=l;var u=l.createChild(E.a);return u.shouldClone=!1,u.align="right",u.valign="top",u.zIndex=Number.MAX_SAFE_INTEGER,u.marginTop=5,u.marginRight=5,u.hide(0),e.zoomOutButton=u,e._bulletMask=e.plotContainer,e.applyTheme(),e}return n.c(e,t),e.prototype.applyInternalDefaults=function(){t.prototype.applyInternalDefaults.call(this),this.zoomOutButton.exportable=!1,y.hasValue(this.readerTitle)||(this.readerTitle=this.language.translate("X/Y chart"))},e.prototype.draw=function(){t.prototype.draw.call(this),this.seriesContainer.toFront(),this.bulletsContainer.toFront(),this.maskBullets&&(this.bulletsContainer.mask=this._bulletMask),this.updateSeriesLegend()},e.prototype.updatePlotElements=function(){g.each(this.series.iterator(),function(t){t.invalidate()})},e.prototype.validateData=function(){0==this._parseDataFrom&&(g.each(this.xAxes.iterator(),function(t){t.dataChangeUpdate()}),g.each(this.yAxes.iterator(),function(t){t.dataChangeUpdate()}),g.each(this.series.iterator(),function(t){t.dataChangeUpdate()})),t.prototype.validateData.call(this)},e.prototype.updateXAxesMargins=function(){var t=this.leftAxesContainer.measuredWidth,e=this.rightAxesContainer.measuredWidth,i=this.bottomAxesContainer;i.paddingLeft==t&&i.paddingRight==e||(i.paddingLeft=t,i.paddingRight=e);var a=this.topAxesContainer;a.paddingLeft==t&&a.paddingRight==e||(a.paddingLeft=t,a.paddingRight=e)},e.prototype.handleXAxisChange=function(t){this.updateXAxis(t.target)},e.prototype.handleYAxisChange=function(t){this.updateYAxis(t.target)},e.prototype.processXAxis=function(t){var e=t.newValue;e.chart=this,e.renderer||(e.renderer=new this._axisRendererX,e.renderer.observe(["opposite","inside","inversed","minGridDistance"],this.handleXAxisChange,this,!1)),e.axisLetter="X",e.events.on("startendchanged",this.handleXAxisRangeChange,this,!1),e.dataProvider=this,this.updateXAxis(e.renderer),this.processAxis(e)},e.prototype.processYAxis=function(t){var e=t.newValue;e.chart=this,e.renderer||(e.renderer=new this._axisRendererY,e.renderer.observe(["opposite","inside","inversed","minGridDistance"],this.handleYAxisChange,this,!1)),e.axisLetter="Y",e.events.on("startendchanged",this.handleYAxisRangeChange,this,!1),e.dataProvider=this,this.updateYAxis(e.renderer),this.processAxis(e)},e.prototype.handleXAxisRangeChange=function(){var t=this.getCommonAxisRange(this.xAxes);this.scrollbarX&&this.zoomAxes(this.xAxes,t,!0),this.toggleZoomOutButton(),this.updateScrollbar(this.scrollbarX,t)},e.prototype.toggleZoomOutButton=function(){if(this.zoomOutButton){var t=!1;g.eachContinue(this.xAxes.iterator(),function(e){return 0==m.round(e.start,3)&&1==m.round(e.end,3)||(t=!0,!1)}),g.eachContinue(this.yAxes.iterator(),function(e){return 0==m.round(e.start,3)&&1==m.round(e.end,3)||(t=!0,!1)}),this.seriesAppeared||(t=!1),t?this.zoomOutButton.show():this.zoomOutButton.hide()}},e.prototype.seriesAppeared=function(){var t=!1;return g.each(this.series.iterator(),function(e){if(!e.appeared)return t=!1,!1}),t},e.prototype.handleYAxisRangeChange=function(){var t=this.getCommonAxisRange(this.yAxes);this.scrollbarY&&this.zoomAxes(this.yAxes,t,!0),this.toggleZoomOutButton(),this.updateScrollbar(this.scrollbarY,t)},e.prototype.updateScrollbar=function(t,e){t&&(t.skipRangeEvents(),t.start=e.start,t.end=e.end)},e.prototype.getCommonAxisRange=function(t){var e,i;return g.each(t.iterator(),function(t){var a=t.start,n=t.end;t.renderer.inversed&&(a=1-t.end,n=1-t.start),(!y.isNumber(e)||a<e)&&(e=a),(!y.isNumber(i)||n>i)&&(i=n)}),{start:e,end:i}},e.prototype.updateXAxis=function(t){var e=t.axis;t.opposite?(e.parent=this.topAxesContainer,e.toFront()):(e.parent=this.bottomAxesContainer,e.toBack()),e.renderer&&e.renderer.processRenderer()},e.prototype.updateYAxis=function(t){var e=t.axis;t.opposite?(e.parent=this.rightAxesContainer,e.toBack()):(e.parent=this.leftAxesContainer,e.toFront()),e.renderer&&e.renderer.processRenderer()},e.prototype.processAxis=function(t){var e=this;t instanceof T&&this._dataUsers.moveValue(t);var i=t.renderer;i.gridContainer.parent=this.plotContainer,i.gridContainer.toBack(),i.breakContainer.parent=this.plotContainer,i.breakContainer.toFront(),i.breakContainer.zIndex=10,t.addDisposer(new k.b(function(){e.dataUsers.removeValue(t)})),this.plotContainer.events.on("maxsizechanged",function(){e.inited&&(t.invalidateDataItems(),e.updateSeriesMasks())},t,!1)},e.prototype.updateSeriesMasks=function(){F.isIE()&&this.series.each(function(t){var e=t.mainContainer.mask;t.mainContainer.mask=void 0,t.mainContainer.mask=e})},Object.defineProperty(e.prototype,"xAxes",{get:function(){return this._xAxes||(this._xAxes=new o.b,this._xAxes.events.on("inserted",this.processXAxis,this,!1),this._xAxes.events.on("removed",this.handleAxisRemoval,this,!1)),this._xAxes},enumerable:!0,configurable:!0}),e.prototype.handleAxisRemoval=function(t){var e=t.oldValue;this.dataUsers.removeValue(e),e.autoDispose&&e.dispose()},Object.defineProperty(e.prototype,"yAxes",{get:function(){return this._yAxes||(this._yAxes=new o.b,this._yAxes.events.on("inserted",this.processYAxis,this,!1),this._yAxes.events.on("removed",this.handleAxisRemoval,this,!1)),this._yAxes},enumerable:!0,configurable:!0}),e.prototype.handleSeriesAdded=function(e){try{t.prototype.handleSeriesAdded.call(this,e);var i=e.newValue;0!=this.xAxes.length&&0!=this.yAxes.length||(c.b.removeFromInvalidComponents(i),i.dataInvalid=!1),F.used(i.xAxis),F.used(i.yAxis),void 0==i.fill&&(i.fill=this.colors.next()),void 0==i.stroke&&(i.stroke=i.fill)}catch(t){this.raiseCriticalError(t)}},Object.defineProperty(e.prototype,"cursor",{get:function(){return this._cursor},set:function(t){this._cursor!=t&&(this._cursor&&this.removeDispose(this._cursor),this._cursor=t,t&&(this._disposers.push(t),t.chart=this,t.shouldClone=!1,t.parent=this._cursorContainer,t.events.on("cursorpositionchanged",this.handleCursorPositionChange,this,!1),t.events.on("zoomstarted",this.handleCursorZoomStart,this,!1),t.events.on("zoomended",this.handleCursorZoomEnd,this,!1),t.events.on("panstarted",this.handleCursorPanStart,this,!1),t.events.on("panning",this.handleCursorPanning,this,!1),t.events.on("panended",this.handleCursorPanEnd,this,!1),t.events.on("behaviorcanceled",this.handleCursorCanceled,this,!1),t.events.on("hidden",this.handleHideCursor,this,!1),t.zIndex=Number.MAX_SAFE_INTEGER-1,this.tapToActivate&&this.setTapToActivate(this.tapToActivate)))},enumerable:!0,configurable:!0}),e.prototype.createCursor=function(){return new B},e.prototype.handleCursorPositionChange=function(){var t=this.cursor;if(t.visible&&!t.isHiding){var e=this.cursor.xPosition,i=this.cursor.yPosition;this.showSeriesTooltip({x:e,y:i});var a=void 0,n=t.snapToSeries;n&&(n.baseAxis==n.xAxis&&(a=n.yAxis),n.baseAxis==n.yAxis&&(a=n.xAxis)),this._seriesPoints=[],this.showAxisTooltip(this.xAxes,e,a),this.showAxisTooltip(this.yAxes,i,a),this.sortSeriesTooltips(this._seriesPoints)}},e.prototype.handleHideCursor=function(){this.hideObjectTooltip(this.xAxes),this.hideObjectTooltip(this.yAxes),this.hideObjectTooltip(this.series),this.updateSeriesLegend()},e.prototype.updateSeriesLegend=function(){g.each(this.series.iterator(),function(t){t.updateLegendValue()})},e.prototype.hideObjectTooltip=function(t){g.each(t.iterator(),function(t){t.hideTooltip(0)})},e.prototype.showSeriesTooltip=function(t){var e=this;if(t){var i=[];this.series.each(function(a){if(a.xAxis instanceof v&&a.xAxis.snapTooltip||a.yAxis instanceof v&&a.yAxis.snapTooltip);else{var n=a.showTooltipAtPosition(t.x,t.y);n&&(a.tooltip.setBounds({x:0,y:0,width:e.pixelWidth,height:e.pixelHeight}),i.push({series:a,point:n}))}}),this.arrangeTooltips&&this.sortSeriesTooltips(i)}else this.series.each(function(t){t.hideTooltip()})},e.prototype.sortSeriesTooltips=function(t){var e=F.spritePointToSvg({x:-.5,y:-.5},this.plotContainer),i=F.spritePointToSvg({x:this.plotContainer.pixelWidth+.5,y:this.plotContainer.pixelHeight+.5},this.plotContainer),a=0,n=[];O.each(t,function(t){var r=t.point;r&&m.isInRectangle(r,{x:e.x,y:e.y,width:i.x-e.x,height:i.y-e.y})&&(n.push({point:r,series:t.series}),a+=r.y)}),(t=n).sort(function(t,e){return t.point.y>e.point.y?1:t.point.y<e.point.y?-1:0});var r=a/t.length,s=F.svgPointToDocument({x:0,y:0},this.svgContainer.SVGContainer).y;if(t.length>0){var o=e.y,l=i.y;F.spritePointToDocument({x:0,y:o},this);var h=!1;if(r>o+(l-o)/2)for(var u=l,c=t.length-1;c>=0;c--){var d=(f=t[c].series).tooltip,p=t[c].point.y;if(d.setBounds({x:0,y:-s,width:this.pixelWidth,height:u+s}),d.invalid&&d.validate(),d.toBack(),(u=F.spritePointToSvg({x:0,y:d.label.pixelY-d.pixelY+p-d.pixelMarginTop},d).y)<-s){h=!0;break}}if(r<=o+(l-o)/2||h)for(var y=o,g=(c=0,t.length);c<g;c++){var f=t[c].series;p=t[c].point.y;(d=f.tooltip).setBounds({x:0,y:y,width:this.pixelWidth,height:l}),d.invalid&&d.validate(),d.toBack(),y=F.spritePointToSvg({x:0,y:d.label.pixelY+d.label.measuredHeight-d.pixelY+p+d.pixelMarginBottom},d).y}}},e.prototype.showAxisTooltip=function(t,e,i){var a=this;g.each(t.iterator(),function(t){t!=i&&(a.dataItems.length>0||t.dataItems.length>0)&&t.showTooltipAtPosition(e)})},e.prototype.getUpdatedRange=function(t,e){if(t){var i,a,n=t.renderer.inversed;t.renderer instanceof P.a&&(e=m.invertRange(e)),n?(m.invertRange(e),i=1-t.end,a=1-t.start):(i=t.start,a=t.end);var r=a-i;return{start:i+e.start*r,end:i+e.end*r}}},e.prototype.handleCursorZoomEnd=function(t){var e=this.cursor,i=e.behavior;if("zoomX"==i||"zoomXY"==i){var a=e.xRange;a&&this.xAxes.length>0&&((a=this.getUpdatedRange(this.xAxes.getIndex(0),a)).priority="start",this.zoomAxes(this.xAxes,a))}if("zoomY"==i||"zoomXY"==i){var n=e.yRange;n&&this.yAxes.length>0&&((n=this.getUpdatedRange(this.yAxes.getIndex(0),n)).priority="start",this.zoomAxes(this.yAxes,n))}this.handleHideCursor()},e.prototype.handleCursorPanStart=function(t){var e=this.xAxes.getIndex(0);e&&(this._panStartXRange={start:e.start,end:e.end});var i=this.yAxes.getIndex(0);i&&(this._panStartYRange={start:i.start,end:i.end})},e.prototype.handleCursorPanEnd=function(t){var e=this.cursor.behavior;if(this._panEndXRange&&("panX"==e||"panXY"==e)){var i=0;(a=this._panEndXRange).start<0&&(i=a.start),a.end>1&&(i=a.end-1),this.zoomAxes(this.xAxes,{start:a.start-i,end:a.end-i},!1,!0),this._panEndXRange=void 0,this._panStartXRange=void 0}if(this._panEndYRange&&("panY"==e||"panXY"==e)){var a;i=0;(a=this._panEndYRange).start<0&&(i=a.start),a.end>1&&(i=a.end-1),this.zoomAxes(this.yAxes,{start:a.start-i,end:a.end-i},!1,!0),this._panEndYRange=void 0,this._panStartYRange=void 0}},e.prototype.handleCursorCanceled=function(){this._panEndXRange=void 0,this._panStartXRange=void 0},e.prototype.handleCursorPanning=function(t){var e=this.cursor,i=e.behavior,a=e.maxPanOut;if(this._panStartXRange&&("panX"==i||"panXY"==i)){var n=this._panStartXRange,r=e.xRange,s=this.getCommonAxisRange(this.xAxes),o=n.end-n.start,l=r.start*(s.end-s.start),h=Math.max(-a,l+n.start),u=Math.min(l+n.end,1+a);h<=0&&(u=h+o),u>=1&&(h=u-o);var c={start:h,end:u};this._panEndXRange=c,this.zoomAxes(this.xAxes,c,!1,!1,e.maxPanOut)}if(this._panStartYRange&&("panY"==i||"panXY"==i)){n=this._panStartYRange,r=e.yRange,s=this.getCommonAxisRange(this.yAxes),o=n.end-n.start,l=r.start*(s.end-s.start),h=Math.max(-a,l+n.start),u=Math.min(l+n.end,1+a);h<=0&&(u=h+o),u>=1&&(h=u-o);c={start:h,end:u};this._panEndYRange=c,this.zoomAxes(this.yAxes,c,!1,!1,e.maxPanOut)}this.handleHideCursor()},e.prototype.handleCursorZoomStart=function(t){},Object.defineProperty(e.prototype,"scrollbarX",{get:function(){return this._scrollbarX},set:function(t){var e=this;this._scrollbarX&&this.removeDispose(this._scrollbarX),this._scrollbarX=t,t&&(this._disposers.push(t),t.parent=this.topAxesContainer,t.shouldClone=!1,t.startGrip.exportable=!1,t.endGrip.exportable=!1,t.toBack(),t.orientation="horizontal",t.events.on("rangechanged",this.handleXScrollbarChange,this,!1),t.adapter.add("positionValue",function(t){var i=e.xAxes.getIndex(0);return i&&(t.value=i.getPositionLabel(t.position)),t}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"scrollbarY",{get:function(){return this._scrollbarY},set:function(t){var e=this;this._scrollbarY&&this.removeDispose(this._scrollbarY),this._scrollbarY=t,t&&(this._disposers.push(t),t.parent=this.rightAxesContainer,t.startGrip.exportable=!1,t.shouldClone=!1,t.endGrip.exportable=!1,t.toFront(),t.orientation="vertical",t.events.on("rangechanged",this.handleYScrollbarChange,this,!1),t.adapter.add("positionValue",function(t){var i=e.yAxes.getIndex(0);return i&&(t.value=i.getPositionLabel(t.position)),t}))},enumerable:!0,configurable:!0}),e.prototype.handleXScrollbarChange=function(t){if(this.inited){var e=t.target,i=e.range;1==i.end&&(i.priority="end"),0==i.start&&(i.priority="start"),i=this.zoomAxes(this.xAxes,i),e.fixRange(i)}},e.prototype.handleYScrollbarChange=function(t){if(this.inited){var e=t.target,i=e.range;1==i.end&&(i.priority="end"),0==i.start&&(i.priority="start"),i=this.zoomAxes(this.yAxes,i),e.fixRange(i)}},e.prototype.zoomAxes=function(t,e,i,a,n){var r={start:0,end:1};return this.showSeriesTooltip(),this.dataInvalid||g.each(t.iterator(),function(t){t.renderer.inversed&&(e=m.invertRange(e)),t.hideTooltip(0),a&&(e.start=t.roundPosition(e.start+1e-4,0),e.end=t.roundPosition(e.end+1e-4,0));var s=t.zoom(e,i,i,n);t.renderer.inversed&&(s=m.invertRange(s)),r=s}),r},Object.defineProperty(e.prototype,"maskBullets",{get:function(){return this.getPropertyValue("maskBullets")},set:function(t){this.setPropertyValue("maskBullets",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"arrangeTooltips",{get:function(){return this.getPropertyValue("arrangeTooltips")},set:function(t){this.setPropertyValue("arrangeTooltips",t,!0)},enumerable:!0,configurable:!0}),e.prototype.handleWheel=function(t){var e=this.plotContainer,i=F.documentPointToSvg(t.point,this.htmlContainer,this.svgContainer.cssScale),a=F.svgPointToSprite(i,e),n=t.shift.y,r=this.getCommonAxisRange(this.xAxes),s=this.getCommonAxisRange(this.yAxes),o=this.mouseWheelBehavior;if("panX"==o||"panXY"==o){var l=r.end-r.start,h=Math.max(-0,r.start+.05*n/100),u=Math.min(r.end+.05*n/100,1);h<=0&&(u=h+l),u>=1&&(h=u-l),this.zoomAxes(this.xAxes,{start:h,end:u})}if("panY"==o||"panXY"==o){n*=-1;var c=s.end-s.start,d=Math.max(-0,s.start+.05*n/100),p=Math.min(s.end+.05*n/100,1);d<=0&&(p=d+c),p>=1&&(d=p-c),this.zoomAxes(this.yAxes,{start:d,end:p})}if("zoomX"==o||"zoomXY"==o){var y=a.x/e.maxWidth;h=Math.max(-0,r.start-.05*n/100*y);h=Math.min(h,y);u=Math.min(r.end+.05*n/100*(1-y),1);u=Math.max(u,y),this.zoomAxes(this.xAxes,{start:h,end:u})}if("zoomY"==o||"zoomXY"==o){var g=a.y/e.maxHeight;d=Math.max(-0,s.start-.05*n/100*(1-g));d=Math.min(d,g);p=Math.min(s.end+.05*n/100*g,1);p=Math.max(p,g),this.zoomAxes(this.yAxes,{start:d,end:p})}},Object.defineProperty(e.prototype,"mouseWheelBehavior",{get:function(){return this.getPropertyValue("mouseWheelBehavior")},set:function(t){this.setPropertyValue("mouseWheelBehavior",t)&&("none"!=t?(this._mouseWheelDisposer=this.plotContainer.events.on("wheel",this.handleWheel,this,!1),this._disposers.push(this._mouseWheelDisposer)):this._mouseWheelDisposer&&(this.plotContainer.wheelable=!1,this.plotContainer.hoverable=!1,this._mouseWheelDisposer.dispose()))},enumerable:!0,configurable:!0}),e.prototype.dataSourceDateFields=function(e){var i=this;return e=t.prototype.dataSourceDateFields.call(this,e),g.each(this.series.iterator(),function(t){e=i.populateDataSourceFields(e,t.dataFields,["dateX","dateY","openDateX","openDateY"])}),e},e.prototype.dataSourceNumberFields=function(e){var i=this;return e=t.prototype.dataSourceDateFields.call(this,e),g.each(this.series.iterator(),function(t){e=i.populateDataSourceFields(e,t.dataFields,["valueX","valueY","openValueX","openValueY"])}),e},e.prototype.processConfig=function(e){if(e){var i=[],a=[];if(y.hasValue(e.xAxes)&&y.isArray(e.xAxes))for(var n=0,r=e.xAxes.length;n<r;n++){if(!e.xAxes[n].type)throw Error("[XYChart error] No type set for xAxes["+n+"].");y.hasValue(e.xAxes[n].axisRanges)&&(i.push({axisRanges:e.xAxes[n].axisRanges,index:n}),delete e.xAxes[n].axisRanges)}if(y.hasValue(e.yAxes)&&y.isArray(e.yAxes))for(n=0,r=e.yAxes.length;n<r;n++){if(!e.yAxes[n].type)throw Error("[XYChart error] No type set for yAxes["+n+"].");y.hasValue(e.yAxes[n].axisRanges)&&(a.push({axisRanges:e.yAxes[n].axisRanges,index:n}),delete e.yAxes[n].axisRanges)}if(y.hasValue(e.series)&&y.isArray(e.series))for(n=0,r=e.series.length;n<r;n++)e.series[n].type=e.series[n].type||"LineSeries";if(y.hasValue(e.cursor)&&!y.hasValue(e.cursor.type)&&(e.cursor.type="XYCursor"),y.hasValue(e.scrollbarX)&&!y.hasValue(e.scrollbarX.type)&&(e.scrollbarX.type="Scrollbar"),y.hasValue(e.scrollbarY)&&!y.hasValue(e.scrollbarY.type)&&(e.scrollbarY.type="Scrollbar"),t.prototype.processConfig.call(this,e),a.length)for(n=0,r=a.length;n<r;n++)this.yAxes.getIndex(a[n].index).config={axisRanges:a[n].axisRanges};if(i.length)for(n=0,r=i.length;n<r;n++)this.xAxes.getIndex(i[n].index).config={axisRanges:i[n].axisRanges}}},e.prototype.configOrder=function(e,i){return e==i?0:"scrollbarX"==e?1:"scrollbarX"==i?-1:"scrollbarY"==e?1:"scrollbarY"==i?-1:"cursor"==e?1:"cursor"==i?-1:"series"==e?1:"series"==i?-1:t.prototype.configOrder.call(this,e,i)},e.prototype.createSeries=function(){return new L},Object.defineProperty(e.prototype,"zoomOutButton",{get:function(){return this._zoomOutButton},set:function(t){var e=this;this._zoomOutButton=t,t&&t.events.on("hit",function(){e.zoomAxes(e.xAxes,{start:0,end:1}),e.zoomAxes(e.yAxes,{start:0,end:1})},void 0,!1)},enumerable:!0,configurable:!0}),e.prototype.copyFrom=function(e){var i=this;e.xAxes.each(function(t){i.xAxes.push(t.clone())}),e.yAxes.each(function(t){i.yAxes.push(t.clone())}),t.prototype.copyFrom.call(this,e),e.cursor&&(this.cursor=e.cursor.clone()),e.scrollbarX&&(this.scrollbarX=e.scrollbarX.clone()),e.scrollbarY&&(this.scrollbarY=e.scrollbarY.clone())},e.prototype.disposeData=function(){t.prototype.disposeData.call(this);var e=this.scrollbarX;e&&e instanceof U&&e.scrollbarChart.disposeData();var i=this.scrollbarY;i&&i instanceof U&&i.scrollbarChart.disposeData(),this.xAxes.each(function(t){t.disposeData()}),this.yAxes.each(function(t){t.disposeData()})},e.prototype.addData=function(e,i){t.prototype.addData.call(this,e,i),this.scrollbarX instanceof U&&this.scrollbarX.scrollbarChart.addData(e,i),this.scrollbarY instanceof U&&this.scrollbarY.scrollbarChart.addData(e,i)},e.prototype.setTapToActivate=function(e){t.prototype.setTapToActivate.call(this,e),this.cursor&&(this.cursor.interactions.isTouchProtected=e,this.plotContainer.interactions.isTouchProtected=e)},e.prototype.handleTapToActivate=function(){t.prototype.handleTapToActivate.call(this),this.cursor&&(this.cursor.interactions.isTouchProtected=!1,this.plotContainer.interactions.isTouchProtected=!1)},e.prototype.handleTapToActivateDeactivation=function(){t.prototype.handleTapToActivateDeactivation.call(this),this.cursor&&(this.cursor.interactions.isTouchProtected=!0,this.plotContainer.interactions.isTouchProtected=!0)},e}(r.a);c.b.registeredClasses.XYChart=q,K.c.push({relevant:K.b.maybeXS,state:function(t,e){if(t instanceof q&&t.scrollbarX){var i=t.states.create(e);return t.scrollbarX.states.create(e).properties.disabled=!0,i}return null}}),K.c.push({relevant:K.b.maybeXS,state:function(t,e){if(t instanceof q&&t.scrollbarY){var i=t.states.create(e);return t.scrollbarY.states.create(e).properties.disabled=!0,i}return null}});var Z=i("aFzC"),J=function(t){function e(){var e=t.call(this)||this;e.className="LineSeriesSegment",e.isMeasured=!1,e.interactionsEnabled=!1,e.layout="none";var i=e.createChild(S.a);e.fillSprite=i,i.shouldClone=!1,i.setElement(e.paper.add("path")),i.isMeasured=!1,e._disposers.push(i);var a=e.createChild(S.a);return e.strokeSprite=a,a.shouldClone=!1,a.fill=Object(M.c)(),a.setElement(e.paper.add("path")),a.isMeasured=!1,e._disposers.push(a),e}return n.c(e,t),e.prototype.drawSegment=function(t,e,i,a){if(!this.disabled)if(t.length>0&&e.length>0){var n=w.moveTo({x:t[0].x-.2,y:t[0].y-.2})+w.moveTo(t[0])+new Z.b(i,a).smooth(t);0==this.strokeOpacity||0==this.strokeSprite.strokeOpacity||(this.strokeSprite.path=n),(this.fillOpacity>0||this.fillSprite.fillOpacity>0)&&(n+=w.lineTo(e[0])+new Z.b(i,a).smooth(e),n+=w.lineTo(t[0]),n+=w.closePath(),this.fillSprite.path=n)}else this.fillSprite.path="",this.strokeSprite.path=""},e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e);var i=this.strokeSprite;f.copyProperties(e,i.properties,S.b),i.events.copyFrom(e.strokeSprite.events),i.fillOpacity=0;var a=this.fillSprite;f.copyProperties(e,a.properties,S.b),a.events.copyFrom(e.fillSprite.events),a.strokeOpacity=0},e}(s.a);c.b.registeredClasses.LineSeriesSegment=J;var Q=i("PTiM"),$=i("p9TX"),tt=i("GtDR"),et=i("TXRX"),it=function(t){function e(){var e=t.call(this)||this;return e.className="LineSeriesDataItem",e}return n.c(e,t),e}(R),at=function(t){function e(){var e=t.call(this)||this;return e.minDistance=.5,e.segments=new o.e(e.createSegment()),e.segments.template.applyOnClones=!0,e._disposers.push(new o.c(e.segments)),e._disposers.push(e.segments.template),e._segmentsIterator=new g.ListIterator(e.segments,function(){return e.segments.create()}),e._segmentsIterator.createNewItems=!0,e.className="LineSeries",e.strokeOpacity=1,e.fillOpacity=0,e.connect=!0,e.tensionX=1,e.tensionY=1,e.autoGapCount=1.1,e.segmentsContainer=e.mainContainer.createChild(s.a),e.segmentsContainer.isMeasured=!1,e.bulletsContainer.toFront(),e.applyTheme(),e}return n.c(e,t),e.prototype.applyInternalDefaults=function(){t.prototype.applyInternalDefaults.call(this),y.hasValue(this.readerTitle)||(this.readerTitle=this.language.translate("Line Series"))},e.prototype.createSegment=function(){return new J},e.prototype.createDataItem=function(){return new it},e.prototype.setInitialWorkingValues=function(t){var e=this._yAxis.get(),i=this._xAxis.get();if(this.appeared&&this.visible){var a=this.dataItems.getIndex(t.index-1);if(t.component=this,this.baseAxis==i&&e instanceof l.a){var n=e.minZoomed;a&&(n=a.values.valueY.workingValue),t.setWorkingValue("valueY",n,0),t.setWorkingValue("valueY",t.values.valueY.value),i instanceof v&&(t.setWorkingLocation("dateX",t.locations.dateX-1,0),t.setWorkingLocation("dateX",t.locations.dateX))}if(this.baseAxis==e&&i instanceof l.a){var r=i.minZoomed;a&&(r=a.values.valueX.workingValue),t.setWorkingValue("valueX",r,0),t.setWorkingValue("valueX",t.values.valueX.value),e instanceof v&&(t.setWorkingLocation("dateY",t.locations.dateX-1,0),t.setWorkingLocation("dateY",t.locations.dateY))}}else this.baseAxis==i&&e instanceof l.a&&(i instanceof v&&t.setWorkingLocation("dateX",t.locations.dateX),i instanceof T&&t.setWorkingLocation("categoryX",t.locations.categoryX)),this.baseAxis==e&&i instanceof l.a&&(e instanceof v&&t.setWorkingLocation("dateY",t.locations.dateY),e instanceof T&&t.setWorkingLocation("categoryY",t.locations.categoryY))},e.prototype.updateLegendValue=function(e){t.prototype.updateLegendValue.call(this,e),e&&e.segment&&(this.tooltipColorSource=e.segment)},e.prototype.validate=function(){var e=this;t.prototype.validate.call(this),this._segmentsIterator.reset(),this.openSegmentWrapper(this._adjustedStartIndex),g.each(this.axisRanges.iterator(),function(t){e.openSegmentWrapper(e._adjustedStartIndex,t)}),g.each(this._segmentsIterator.iterator(),function(t){t.__disabled=!0})},e.prototype.sliceData=function(){for(var t=this.startIndex,e=this.endIndex,i=this.startIndex-1;i>=0;i--){if((n=this.dataItems.getIndex(i))&&n.hasValue(this._xValueFields)&&n.hasValue(this._yValueFields)){t=i;break}}this._adjustedStartIndex=this.findAdjustedIndex(t,["stroke","strokeWidth","strokeDasharray","strokeOpacity","fill","fillOpacity","opacity"]);i=this.endIndex;for(var a=this.dataItems.length;i<a;i++){var n;if((n=this.dataItems.getIndex(i))&&n.hasValue(this._xValueFields)&&n.hasValue(this._yValueFields)){e=i+1;break}}this._workingStartIndex=t,this._workingEndIndex=e},e.prototype.findAdjustedIndex=function(t,e){var i=this,a=this.propertyFields,n=t;return O.each(e,function(e){if(y.hasValue(a[e]))for(var r=n;r>=0;r--){var s=i.dataItems.getIndex(r);if(y.hasValue(s.properties[e])){t>r&&(t=r);break}}}),t},e.prototype.openSegmentWrapper=function(t,e){var i={index:t,axisRange:e};do{i=this.openSegment(i.index,i.axisRange)}while(i)},e.prototype.openSegment=function(t,e){var i=!1,a=[];t=Math.min(t,this.dataItems.length);var n,r=Math.min(this._workingEndIndex,this.dataItems.length);this._workingEndIndex=Math.min(this._workingEndIndex,this.dataItems.length);var s=!1,o=this._segmentsIterator.getFirst();o.__disabled=!1,e?(o.parent=e.contents,f.copyProperties(e.contents,o,S.b)):(f.copyProperties(this,o,S.b),o.filters.clear(),o.parent=this.segmentsContainer);for(var l=t;l<r;l++){var h=this.dataItems.getIndex(l);if(h.segment=o,h.hasProperties&&(l==t?this.updateSegmentProperties(h.properties,o):s=this.updateSegmentProperties(h.properties,o,!0)),h.hasValue(this._xValueFields)&&h.hasValue(this._yValueFields))this.addPoints(a,h,this.xField,this.yField);else{if(l==t)continue;if(!this.connect){n=l;break}}if(n=l,this.baseAxis instanceof v){var u=this.dataItems.getIndex(l+1);if(u&&this.baseAxis.makeGap(u,h)){i=!0;break}}if(s)break}return this.closeSegment(o,a,t,n,e,i)},e.prototype.addPoints=function(t,e,i,a,n){var r=this.getPoint(e,i,a,e.workingLocations[i],e.workingLocations[a]);n||(e.point=r),t.push(r)},e.prototype.closeSegment=function(t,e,i,a,n,r){var s=[];if(this.dataFields[this._xOpenField]||this.dataFields[this._yOpenField]||this.stacked)for(var o=a;o>=i;o--){var l=this.dataItems.getIndex(o);l.hasValue(this._xValueFields)&&l.hasValue(this._yValueFields)&&this.addPoints(s,l,this.xOpenField,this.yOpenField,!0)}else{var h=this.baseAxis,u=e.length,c=this.xAxis,d=this.yAxis;u>0&&(h==c?(s.push({x:e[u-1].x,y:d.basePoint.y}),s.push({x:e[0].x,y:d.basePoint.y})):(s.push({x:c.basePoint.x,y:e[u-1].y}),s.push({x:c.basePoint.x,y:e[0].y})))}return this.drawSegment(t,e,s),r&&a++,a<this._workingEndIndex-1?{index:a,axisRange:n}:null},e.prototype.drawSegment=function(t,e,i){t.drawSegment(e,i,this.tensionX,this.tensionY)},e.prototype.updateSegmentProperties=function(t,e,i){var a=!1;return f.each(t,function(t,n){if(y.hasValue(n)){var r=e[t],s=void 0;r&&(s=r.toString?r.toString():r);var o=void 0;n&&(o=n.toString?n.toString():n),r==n||void 0!=s&&void 0!=o&&s==o||(i||(e[t]=n),a=!0)}}),a},Object.defineProperty(e.prototype,"connect",{get:function(){return this.getPropertyValue("connect")},set:function(t){this.setPropertyValue("connect",t)&&this.invalidate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tensionX",{get:function(){return this.getPropertyValue("tensionX")},set:function(t){this.setPropertyValue("tensionX",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tensionY",{get:function(){return this.getPropertyValue("tensionY")},set:function(t){this.setPropertyValue("tensionY",t,!0)},enumerable:!0,configurable:!0}),e.prototype.createLegendMarker=function(t){var e=this,i=t.pixelWidth,a=t.pixelHeight;t.disposeChildren();var n=t.createChild(Q.a);if(n.shouldClone=!1,f.copyProperties(this,n,S.b),n.x2=i,n.y=a/2,n.visible=!0,this.fillOpacity>0){var r=t.createChild(tt.a);f.copyProperties(this,r,S.b),r.width=i,r.height=a,r.y=0,r.strokeOpacity=0,r.visible=!0,n.y=0}var o=t.dataItem;o.color=this.stroke,o.colorOrig=this.fill,g.eachContinue(this.bullets.iterator(),function(n){if(n instanceof et.a&&!n.copyToLegendMarker)return!1;var r=!1;if(n instanceof s.a&&g.each(n.children.iterator(),function(t){if(t instanceof $.a)return r=!0,!0}),!r){var o=n.clone();return o.parent=t,o.isMeasured=!0,o.tooltipText=void 0,o.x=i/2,e.fillOpacity>0?o.y=0:o.y=a/2,o.visible=!0,y.hasValue(o.fill)||(o.fill=e.fill),y.hasValue(o.stroke)||(o.stroke=e.stroke),!1}})},e.prototype.disposeData=function(){t.prototype.disposeData.call(this),this.segments.clear()},Object.defineProperty(e.prototype,"autoGapCount",{get:function(){return this.getPropertyValue("autoGapCount")},set:function(t){this.setPropertyValue("autoGapCount",t,!0)},enumerable:!0,configurable:!0}),e}(L);c.b.registeredClasses.LineSeries=at,c.b.registeredClasses.LineSeriesDataItem=it;var nt=function(t){function e(){var e=t.call(this)||this;return e.className="RadarSeriesDataItem",e.setLocation("dateX",0,0),e.setLocation("dateY",0,0),e.setLocation("categoryX",0,0),e.setLocation("categoryY",0,0),e.applyTheme(),e}return n.c(e,t),e}(it),rt=function(t){function e(){var e=t.call(this)||this;return e.className="RadarSeries",e.connectEnds=!0,e.applyTheme(),e}return n.c(e,t),e.prototype.validate=function(){this.chart.invalid&&this.chart.validate(),t.prototype.validate.call(this)},e.prototype.createDataItem=function(){return new nt},e.prototype.getPoint=function(t,e,i,a,n,r,s){r||(r="valueX"),s||(s="valueY");var o=this.yAxis.getX(t,i,n,s),l=this.yAxis.getY(t,i,n,s),h=m.getDistance({x:o,y:l});0==h&&(h=1e-5);var u=this.xAxis.getAngle(t,e,a,r),c=this.chart.startAngle,d=this.chart.endAngle;return u<c||u>d?void 0:{x:h*m.cos(u),y:h*m.sin(u)}},e.prototype.addPoints=function(t,e,i,a,n){var r=this.getPoint(e,i,a,e.locations[i],e.locations[a]);r&&t.push(r)},e.prototype.getMaskPath=function(){var t=this.yAxis.renderer;return w.arc(t.startAngle,t.endAngle-t.startAngle,t.pixelRadius,t.pixelInnerRadius)},e.prototype.drawSegment=function(e,i,a){var n=this.yAxis.renderer;this.connectEnds&&360==Math.abs(n.endAngle-n.startAngle)&&(this.dataFields[this._xOpenField]||this.dataFields[this._yOpenField]||this.stacked)&&(i.push(i[0]),a.length>0&&a.unshift(a[a.length-1])),t.prototype.drawSegment.call(this,e,i,a)},Object.defineProperty(e.prototype,"connectEnds",{get:function(){return this.getPropertyValue("connectEnds")},set:function(t){this.setPropertyValue("connectEnds",t,!0)},enumerable:!0,configurable:!0}),e}(at);c.b.registeredClasses.RadarSeries=rt,c.b.registeredClasses.RadarSeriesDataItem=nt;var st=i("FzPm"),ot=function(t){function e(){var e=t.call(this)||this;return e.className="RadarCursor",e.radius=Object(Y.c)(100),e.innerRadius=Object(Y.c)(0),e.applyTheme(),e.mask=void 0,e}return n.c(e,t),e.prototype.fitsToBounds=function(t){var e=m.getDistance(t);return e<this.truePixelRadius+1&&e>this.pixelInnerRadius-1},Object.defineProperty(e.prototype,"startAngle",{get:function(){return this.getPropertyValue("startAngle")},set:function(t){this.setPropertyValue("startAngle",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endAngle",{get:function(){return this.getPropertyValue("endAngle")},set:function(t){this.setPropertyValue("endAngle",t,!0)},enumerable:!0,configurable:!0}),e.prototype.triggerMoveReal=function(e){this.xAxis&&(!this.xAxis||this.xAxis.cursorTooltipEnabled&&!this.xAxis.tooltip.disabled)||this.updateLineX(this.point),this.yAxis&&(!this.yAxis||this.yAxis.cursorTooltipEnabled&&!this.yAxis.tooltip.disabled)||this.updateLineY(this.point),this.updateSelection(),t.prototype.triggerMoveReal.call(this,e)},e.prototype.updateLineX=function(t){var e=this.pixelRadius,i=this.startAngle,a=this.endAngle,n=this.pixelInnerRadius;if(e>0&&y.isNumber(i)&&y.isNumber(a)&&y.isNumber(n)){var r=m.fitAngleToRange(m.getAngle(t),i,a),s=void 0;if(this.lineX&&this.lineX.visible){if(this.lineX.moveTo({x:0,y:0}),this.xAxis&&this.fullWidthLineX){var o=this.xAxis.currentItemStartPoint,l=this.xAxis.currentItemEndPoint;if(o&&l){var h=m.fitAngleToRange(m.getAngle(o),i,a),u=m.fitAngleToRange(m.getAngle(l),i,a)-h;i<a?u<0&&(u+=360):u>0&&(u-=360),r-=u/2,s=w.moveTo({x:n*m.cos(r),y:n*m.sin(r)})+w.lineTo({x:e*m.cos(r),y:e*m.sin(r)})+w.arcTo(r,u,e)+w.lineTo({x:n*m.cos(r+u),y:n*m.sin(r+u)})+w.arcTo(r+u,-u,n)}}s||(s=w.moveTo({x:n*m.cos(r),y:n*m.sin(r)})+w.lineTo({x:e*m.cos(r),y:e*m.sin(r)})),this.lineX.path=s}}},e.prototype.updateLineY=function(t){if(this.lineY&&this.lineY.visible){var e=this.startAngle,i=this.endAngle,a=this.truePixelRadius,n=m.fitToRange(m.getDistance(t),0,this.truePixelRadius);if(y.isNumber(n)&&y.isNumber(e)){this.lineY.moveTo({x:0,y:0});var r=void 0,s=i-e;if(this.yAxis&&this.fullWidthLineY){var o=this.yAxis.currentItemStartPoint,l=this.yAxis.currentItemEndPoint;if(o&&l){var h=m.fitToRange(m.getDistance(o),0,a);n=m.fitToRange(m.getDistance(l),0,a),r=w.moveTo({x:n*m.cos(e),y:n*m.sin(e)})+w.arcTo(e,s,n),r+=w.moveTo({x:h*m.cos(i),y:h*m.sin(i)})+w.arcTo(i,-s,h)}}r||(r=w.moveTo({x:n*m.cos(e),y:n*m.sin(e)})+w.arcTo(e,i-e,n)),this.lineY.path=r}}},e.prototype.updateSelection=function(){if(this._usesSelection){var t=this.downPoint;if(t){var e=this.point,i=this.pixelRadius,a=this.truePixelRadius,n=this.pixelInnerRadius,r=Math.min(this.startAngle,this.endAngle),s=Math.max(this.startAngle,this.endAngle),o=m.fitAngleToRange(m.getAngle(t),r,s),l=m.fitAngleToRange(m.getAngle(e),r,s),h=m.getDistance(t);if(h<a){var u=m.fitToRange(m.getDistance(e),0,a);this._prevAngle=l;var c=w.moveTo({x:0,y:0}),d=m.sin(o),p=m.cos(o),y=m.sin(l),g=m.cos(l),f=this.behavior;"zoomX"==f||"selectX"==f?c+=w.lineTo({x:i*p,y:i*d})+w.arcTo(o,l-o,i)+w.lineTo({x:n*g,y:n*y})+w.arcTo(l,o-l,n):"zoomY"==f||"selectY"==f?c=w.moveTo({x:u*m.cos(r),y:u*m.sin(r)})+w.arcTo(r,s-r,u)+w.lineTo({x:h*m.cos(s),y:h*m.sin(s)})+w.arcTo(s,r-s,h)+w.closePath():"zoomXY"==f&&(c=w.moveTo({x:u*m.cos(o),y:u*m.sin(o)})+w.arcTo(o,l-o,u)+w.lineTo({x:h*m.cos(l),y:h*m.sin(l)})+w.arcTo(l,o-l,h)+w.closePath()),this.selection.path=c}this.selection.moveTo({x:0,y:0})}}},e.prototype.getPositions=function(){if(this.chart){var t=this.pixelInnerRadius,e=this.truePixelRadius-t,i=this.startAngle,a=this.endAngle,n=(m.fitAngleToRange(m.getAngle(this.point),i,a)-i)/(a-i);this.xPosition=n,this.yPosition=m.fitToRange((m.getDistance(this.point)-t)/e,0,1)}},e.prototype.updatePoint=function(t){},e.prototype.handleXTooltipPosition=function(t){if(this.xAxis.cursorTooltipEnabled){var e=this.xAxis.tooltip;this.updateLineX(F.svgPointToSprite({x:e.pixelX,y:e.pixelY},this))}},e.prototype.handleYTooltipPosition=function(t){if(this.yAxis.cursorTooltipEnabled){var e=this.yAxis.tooltip;this.updateLineY(F.svgPointToSprite({x:e.pixelX,y:e.pixelY},this))}},e.prototype.updateLinePositions=function(t){},e.prototype.getRanges=function(){var t=this.downPoint;if(t){var e=this.upPoint;if(this.chart){var i=this.pixelRadius,a=this.startAngle,n=this.endAngle,r=m.fitAngleToRange(m.getAngle(t),this.startAngle,this.endAngle),s=m.fitAngleToRange(m.getAngle(e),this.startAngle,this.endAngle),o=m.fitToRange(m.getDistance(t),0,i),l=m.fitToRange(m.getDistance(e),0,i),h=0,u=1,c=0,d=1,p=this.behavior;if("zoomX"==p||"selectX"==p||"zoomXY"==p||"selectXY"==p){var y=n-a;h=m.round((r-a)/y,5),u=m.round((s-a)/y,5)}"zoomY"!=p&&"selectY"!=p&&"zoomXY"!=p&&"selectXY"!=p||(c=m.round(o/i,5),d=m.round(l/i,5)),this.xRange={start:Math.min(h,u),end:Math.max(h,u)},this.yRange={start:Math.min(c,d),end:Math.max(c,d)},"selectX"==this.behavior||"selectY"==this.behavior||"selectXY"==this.behavior||this.selection.hide()}}},e.prototype.updateSize=function(){},Object.defineProperty(e.prototype,"radius",{get:function(){return this.getPropertyValue("radius")},set:function(t){this.setPercentProperty("radius",t,!1,!1,10,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pixelRadius",{get:function(){return F.relativeRadiusToValue(this.radius,this.truePixelRadius)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"truePixelRadius",{get:function(){return F.relativeToValue(Object(Y.c)(100),m.min(this.innerWidth/2,this.innerHeight/2))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"innerRadius",{get:function(){return this.getPropertyValue("innerRadius")},set:function(t){this.setPercentProperty("innerRadius",t,!1,!1,10,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pixelInnerRadius",{get:function(){var t=this.innerRadius;return t instanceof Y.a&&(t=Object(Y.c)(100*t.value*this.chart.innerRadiusModifyer)),F.relativeRadiusToValue(t,this.truePixelRadius)||0},enumerable:!0,configurable:!0}),e.prototype.fixPoint=function(t){return t},e}(B);c.b.registeredClasses.RadarCursor=ot;var lt=i("Meme"),ht=i("8EhG"),ut=function(t){function e(e){var i=t.call(this,e)||this;return i.className="AxisFillCircular",i.element=i.paper.add("path"),i.radius=Object(Y.c)(100),i.applyTheme(),i}return n.c(e,t),e.prototype.draw=function(){if(t.prototype.draw.call(this),this.axis){var e=this.axis.renderer;this.fillPath=e.getPositionRangePath(this.startPosition,this.endPosition,this.radius,y.hasValue(this.innerRadius)?this.innerRadius:e.innerRadius,this.cornerRadius),this.path=this.fillPath}},Object.defineProperty(e.prototype,"innerRadius",{get:function(){return this.getPropertyValue("innerRadius")},set:function(t){this.setPercentProperty("innerRadius",t,!0,!1,10,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"radius",{get:function(){return this.getPropertyValue("radius")},set:function(t){this.setPercentProperty("radius",t,!0,!1,10,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cornerRadius",{get:function(){return this.getPropertyValue("cornerRadius")},set:function(t){this.setPropertyValue("cornerRadius",t,!0)},enumerable:!0,configurable:!0}),e}(ht.a);c.b.registeredClasses.AxisFillCircular=ut;var ct=i("AaJ4"),dt=function(t){function e(){var e=t.call(this)||this;return e.className="GridCircular",e.pixelPerfect=!1,e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"innerRadius",{get:function(){return this.getPropertyValue("innerRadius")},set:function(t){this.setPercentProperty("innerRadius",t,!0,!1,10,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"radius",{get:function(){return this.getPropertyValue("radius")},set:function(t){this.setPercentProperty("radius",t,!0,!1,10,!1)},enumerable:!0,configurable:!0}),e}(ct.a);c.b.registeredClasses.GridCircular=dt;var pt=i("IbTV"),yt=function(t){function e(){var e=t.call(this)||this;return e.pixelRadiusReal=0,e.layout="none",e.className="AxisRendererCircular",e.isMeasured=!1,e.startAngle=-90,e.endAngle=270,e.useChartAngles=!0,e.radius=Object(Y.c)(100),e.isMeasured=!1,e.grid.template.location=0,e.labels.template.location=0,e.labels.template.radius=15,e.ticks.template.location=0,e.ticks.template.pixelPerfect=!1,e.tooltipLocation=0,e.line.strokeOpacity=0,e.applyTheme(),e}return n.c(e,t),e.prototype.setAxis=function(e){var i=this;t.prototype.setAxis.call(this,e),e.isMeasured=!1;var a=e.tooltip;a.adapter.add("dx",function(t,e){var a=F.svgPointToSprite({x:e.pixelX,y:e.pixelY},i);return i.pixelRadius*Math.cos(Math.atan2(a.y,a.x))-a.x}),a.adapter.add("dy",function(t,e){var a=F.svgPointToSprite({x:e.pixelX,y:e.pixelY},i);return i.pixelRadius*Math.sin(Math.atan2(a.y,a.x))-a.y})},e.prototype.validate=function(){this.chart&&this.chart.invalid&&this.chart.validate(),t.prototype.validate.call(this)},Object.defineProperty(e.prototype,"axisLength",{get:function(){return 2*Math.PI*this.pixelRadius},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"radius",{get:function(){return this.getPropertyValue("radius")},set:function(t){this.setPercentProperty("radius",t,!1,!1,10,!1)&&this.axis&&this.axis.invalidate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pixelRadius",{get:function(){return F.relativeRadiusToValue(this.radius,this.pixelRadiusReal)||0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"innerRadius",{get:function(){return this.getPropertyValue("innerRadius")},set:function(t){this.setPercentProperty("innerRadius",t,!1,!1,10,!1)&&this.axis&&this.axis.invalidate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"useChartAngles",{get:function(){return this.getPropertyValue("useChartAngles")},set:function(t){this.setPropertyValue("useChartAngles",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pixelInnerRadius",{get:function(){return F.relativeRadiusToValue(this.innerRadius,this.pixelRadiusReal)||0},enumerable:!0,configurable:!0}),e.prototype.positionToPoint=function(t){var e=this.positionToCoordinate(t),i=this.startAngle+(this.endAngle-this.startAngle)*e/this.axisLength;return{x:this.pixelRadius*m.cos(i),y:this.pixelRadius*m.sin(i)}},e.prototype.positionToAngle=function(t){var e,i=this.axis,a=(this.endAngle-this.startAngle)/(i.end-i.start);return e=i.renderer.inversed?this.startAngle+(i.end-t)*a:this.startAngle+(t-i.start)*a,m.round(e,3)},e.prototype.updateAxisLine=function(){var t=this.pixelRadius,e=this.startAngle,i=this.endAngle-e;this.line.path=w.moveTo({x:t*m.cos(e),y:t*m.sin(e)})+w.arcTo(e,i,t,t)},e.prototype.updateGridElement=function(t,e,i){e+=(i-e)*t.location;var a=this.positionToPoint(e);if(t.element){var n=m.DEGREES*Math.atan2(a.y,a.x),r=F.relativeRadiusToValue(y.hasValue(t.radius)?t.radius:Object(Y.c)(100),this.pixelRadius),s=F.relativeRadiusToValue(t.innerRadius,this.pixelRadius);t.zIndex=0;var o=F.relativeRadiusToValue(y.isNumber(s)?s:this.innerRadius,this.pixelRadius,!0);t.path=w.moveTo({x:o*m.cos(n),y:o*m.sin(n)})+w.lineTo({x:r*m.cos(n),y:r*m.sin(n)})}this.toggleVisibility(t,e,0,1)},e.prototype.updateTickElement=function(t,e,i){e+=(i-e)*t.location;var a=this.positionToPoint(e);if(t.element){var n=this.pixelRadius,r=m.DEGREES*Math.atan2(a.y,a.x),s=t.length;t.inside&&(s=-s),t.zIndex=1,t.path=w.moveTo({x:n*m.cos(r),y:n*m.sin(r)})+w.lineTo({x:(n+s)*m.cos(r),y:(n+s)*m.sin(r)})}this.toggleVisibility(t,e,0,1)},e.prototype.updateLabelElement=function(t,e,i,a){y.hasValue(a)||(a=t.location),e+=(i-e)*a,t.fixPosition(this.positionToAngle(e),this.pixelRadius),t.zIndex=2,this.toggleVisibility(t,e,this.minLabelPosition,this.maxLabelPosition)},e.prototype.fitsToBounds=function(t){return!0},Object.defineProperty(e.prototype,"startAngle",{get:function(){return this.getPropertyValue("startAngle")},set:function(t){this.setPropertyValue("startAngle",t)&&(this.invalidateAxisItems(),this.axis&&this.axis.invalidateSeries())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endAngle",{get:function(){return this.getPropertyValue("endAngle")},set:function(t){this.setPropertyValue("endAngle",t)&&(this.invalidateAxisItems(),this.axis&&this.axis.invalidateSeries())},enumerable:!0,configurable:!0}),e.prototype.getPositionRangePath=function(t,e,i,a,n){var r="";if(y.isNumber(t)&&y.isNumber(e)){y.hasValue(i)||(i=this.radius),t=m.max(t,this.axis.start),(e=m.min(e,this.axis.end))<t&&(e=t);var s=F.relativeRadiusToValue(i,this.pixelRadius),o=F.relativeRadiusToValue(a,this.pixelRadius,!0),l=this.positionToAngle(t),h=this.positionToAngle(e)-l;r=w.arc(l,h,s,o,s,n)}return r},e.prototype.createGrid=function(){return new dt},e.prototype.createFill=function(t){return new ut(t)},e.prototype.createLabel=function(){return new pt.a},e.prototype.pointToPosition=function(t){var e=m.fitAngleToRange(m.getAngle(t),this.startAngle,this.endAngle);return this.coordinateToPosition((e-this.startAngle)/360*this.axisLength)},e}(lt.a);c.b.registeredClasses.AxisRendererCircular=yt;var gt=i("Vk33"),mt=function(t){function e(){var e=t.call(this)||this;return e._chart=new k.d,e.pixelRadiusReal=0,e.className="AxisRendererRadial",e.isMeasured=!1,e.startAngle=-90,e.endAngle=270,e.minGridDistance=30,e.gridType="circles",e.axisAngle=-90,e.isMeasured=!1,e.layout="none",e.radius=Object(Y.c)(100),e.line.strokeOpacity=0,e.labels.template.horizontalCenter="middle",e._disposers.push(e._chart),e.applyTheme(),e}return n.c(e,t),e.prototype.validate=function(){this.chart&&this.chart.invalid&&this.chart.validate(),t.prototype.validate.call(this)},Object.defineProperty(e.prototype,"axisLength",{get:function(){return this.pixelRadius-this.pixelInnerRadius},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"radius",{get:function(){return this.getPropertyValue("radius")},set:function(t){this.setPercentProperty("radius",t,!1,!1,10,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pixelRadius",{get:function(){return F.relativeRadiusToValue(this.radius,this.pixelRadiusReal)||0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"innerRadius",{get:function(){return this.getPropertyValue("innerRadius")},set:function(t){this.setPercentProperty("innerRadius",t,!1,!1,10,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pixelInnerRadius",{get:function(){return F.relativeRadiusToValue(this.innerRadius,this.pixelRadiusReal)||0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"chart",{get:function(){return this._chart.get()},set:function(t){this._chart.set(t,null)},enumerable:!0,configurable:!0}),e.prototype.positionToPoint=function(t){var e=m.fitToRange(this.positionToCoordinate(t),0,1/0);return{x:e*m.cos(this.axisAngle),y:e*m.sin(this.axisAngle)}},e.prototype.updateAxisLine=function(){this.line.path=w.moveTo({x:this.pixelInnerRadius*m.cos(this.axisAngle),y:this.pixelInnerRadius*m.sin(this.axisAngle)})+w.lineTo({x:this.pixelRadius*m.cos(this.axisAngle),y:this.pixelRadius*m.sin(this.axisAngle)});var t=this.axis.title;t.valign="none",t.horizontalCenter="middle",t.verticalCenter="bottom",t.y=-this.axisLength/2;var e=90;this.opposite?this.inside||(e=-90):this.inside&&(e=-90),t.rotation=e},e.prototype.updateGridElement=function(t,e,i){e+=(i-e)*t.location;var a,n=this.positionToPoint(e),r=m.getDistance(n),s=this.startAngle,o=this.endAngle;if(y.isNumber(r)&&t.element){var l=this.chart,h=l.xAxes.getIndex(0),u=l.dataItems.length,c=l.series.getIndex(0);if("polygons"==this.gridType&&u>0&&c&&h&&h instanceof T){var d=h.renderer.grid.template.location,p=h.getAngle(c.dataItems.getIndex(0),"categoryX",d);a=w.moveTo({x:r*m.cos(p),y:r*m.sin(p)});for(var g=l.dataItems.length,f=1;f<g;f++)p=h.getAngle(c.dataItems.getIndex(f),"categoryX",d),a+=w.lineTo({x:r*m.cos(p),y:r*m.sin(p)});p=h.getAngle(c.dataItems.getIndex(g-1),"categoryX",h.renderer.cellEndLocation),a+=w.lineTo({x:r*m.cos(p),y:r*m.sin(p)})}else a=w.moveTo({x:r*m.cos(s),y:r*m.sin(s)})+w.arcTo(s,o-s,r,r);t.path=a}this.toggleVisibility(t,e,0,1)},e.prototype.updateLabelElement=function(t,e,i,a){y.hasValue(a)||(a=t.location),e+=(i-e)*a;var n=this.positionToPoint(e);this.positionItem(t,n),this.toggleVisibility(t,e,this.minLabelPosition,this.maxLabelPosition)},e.prototype.updateBaseGridElement=function(){},e.prototype.fitsToBounds=function(t){return!0},Object.defineProperty(e.prototype,"startAngle",{get:function(){return this.getPropertyValue("startAngle")},set:function(t){this.setPropertyValue("startAngle",t)&&this.invalidateAxisItems()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endAngle",{get:function(){return this.getPropertyValue("endAngle")},set:function(t){this.setPropertyValue("endAngle",t)&&this.invalidateAxisItems()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"axisAngle",{get:function(){return this.getPropertyValue("axisAngle")},set:function(t){this.setPropertyValue("axisAngle",m.normalizeAngle(t)),this.invalidateAxisItems()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"gridType",{get:function(){return this.chart.xAxes.getIndex(0)instanceof T?this.getPropertyValue("gridType"):"circles"},set:function(t){this.setPropertyValue("gridType",t,!0)},enumerable:!0,configurable:!0}),e.prototype.getPositionRangePath=function(t,e){var i,a=this.pixelInnerRadius,n=this.axisLength+a,r=m.fitToRange(this.positionToCoordinate(t),a,n),s=m.fitToRange(this.positionToCoordinate(e),a,n),o=this.startAngle,l=this.endAngle-o,h=this.chart,u=h.xAxes.getIndex(0),c=h.dataItems.length,d=h.series.getIndex(0);if("polygons"==this.gridType&&c>0&&d&&u&&u instanceof T){var p=u.renderer.grid.template.location,y=u.getAngle(d.dataItems.getIndex(0),"categoryX",p);i=w.moveTo({x:s*m.cos(y),y:s*m.sin(y)});for(var g=h.dataItems.length,f=1;f<g;f++)y=u.getAngle(d.dataItems.getIndex(f),"categoryX",p),i+=w.lineTo({x:s*m.cos(y),y:s*m.sin(y)});y=u.getAngle(d.dataItems.getIndex(g-1),"categoryX",u.renderer.cellEndLocation),i+=w.lineTo({x:s*m.cos(y),y:s*m.sin(y)}),i+=w.moveTo({x:r*m.cos(y),y:r*m.sin(y)});for(f=g-1;f>=0;f--)y=u.getAngle(d.dataItems.getIndex(f),"categoryX",p),i+=w.lineTo({x:r*m.cos(y),y:r*m.sin(y)})}else i=w.arc(o,l,s,r);return i},e.prototype.updateBreakElement=function(t){var e=t.startLine,i=t.endLine,a=t.fillShape,n=t.startPoint,r=t.endPoint;e.radius=Math.abs(n.y),i.radius=Math.abs(r.y),a.radius=Math.abs(r.y),a.innerRadius=Math.abs(n.y)},e.prototype.createBreakSprites=function(t){t.startLine=new gt.a,t.endLine=new gt.a,t.fillShape=new gt.a},e.prototype.updateTooltip=function(){if(this.axis){var t=this.axisAngle;t<0&&(t+=360);var e="vertical";(t>45&&t<135||t>225&&t<315)&&(e="horizontal"),this.axis.updateTooltip(e,{x:-4e3,y:-4e3,width:8e3,height:8e3})}},e.prototype.updateTickElement=function(t,e){var i=this.positionToPoint(e);if(t.element){var a=m.normalizeAngle(this.axisAngle+90);a/90!=Math.round(a/90)?t.pixelPerfect=!1:t.pixelPerfect=!0;var n=-t.length;t.inside&&(n*=-1),t.path=w.moveTo({x:0,y:0})+w.lineTo({x:n*m.cos(a),y:n*m.sin(a)})}this.positionItem(t,i),this.toggleVisibility(t,e,0,1)},e.prototype.positionToCoordinate=function(t){var e,i=this.axis,a=i.axisFullLength,n=this.pixelInnerRadius;return e=i.renderer.inversed?(i.end-t)*a+n:(t-i.start)*a+n,m.round(e,1)},e.prototype.pointToPosition=function(t){var e=m.getDistance(t)-this.pixelInnerRadius;return this.coordinateToPosition(e)},e}(P.a);c.b.registeredClasses.AxisRendererRadial=mt;var ft=function(t){function e(){var e=t.call(this)||this;return e.className="RadarChartDataItem",e.applyTheme(),e}return n.c(e,t),e}(G),xt=function(t){function e(){var e=t.call(this)||this;e._axisRendererX=yt,e._axisRendererY=mt,e.innerRadiusModifyer=1,e.className="RadarChart",e.startAngle=-90,e.endAngle=270,e.radius=Object(Y.c)(80),e.innerRadius=0;var i=e.plotContainer.createChild(s.a);return i.shouldClone=!1,i.layout="absolute",i.align="center",i.valign="middle",e.seriesContainer.parent=i,e.radarContainer=i,e.bulletsContainer.parent=i,e._cursorContainer=i,e._bulletMask=i.createChild(st.a),e._bulletMask.shouldClone=!1,e._bulletMask.element=e.paper.add("path"),e._bulletMask.opacity=0,e.applyTheme(),e}return n.c(e,t),e.prototype.applyInternalDefaults=function(){t.prototype.applyInternalDefaults.call(this),y.hasValue(this.readerTitle)||(this.readerTitle=this.language.translate("Radar chart"))},e.prototype.processAxis=function(e){t.prototype.processAxis.call(this,e);var i=e.renderer;i.gridContainer.parent=i,i.breakContainer.parent=i,e.parent=this.radarContainer,i.toBack()},e.prototype.handleXAxisRangeChange=function(){t.prototype.handleXAxisRangeChange.call(this),g.each(this.yAxes.iterator(),function(t){t.invalidate()})},e.prototype.handleYAxisRangeChange=function(){t.prototype.handleYAxisRangeChange.call(this),g.each(this.xAxes.iterator(),function(t){t.invalidate()})},e.prototype.createCursor=function(){return new ot},e.prototype.processConfig=function(e){if(e&&(y.hasValue(e.cursor)&&!y.hasValue(e.cursor.type)&&(e.cursor.type="RadarCursor"),y.hasValue(e.series)&&y.isArray(e.series)))for(var i=0,a=e.series.length;i<a;i++)e.series[i].type=e.series[i].type||"RadarSeries";t.prototype.processConfig.call(this,e)},e.prototype.beforeDraw=function(){t.prototype.beforeDraw.call(this);var e=this.plotContainer,i=m.getArcRect(this.startAngle,this.endAngle,1),a={x:0,y:0,width:0,height:0},n=e.innerWidth/i.width,r=e.innerHeight/i.height,s=this.innerRadius;if(s instanceof Y.a){var o=s.value,l=Math.min(n,r);o=Math.max(l*o,l-Math.min(e.innerHeight,e.innerWidth))/l,a=m.getArcRect(this.startAngle,this.endAngle,o),this.innerRadiusModifyer=o/s.value,s=Object(Y.c)(100*o)}i=m.getCommonRectangle([i,a]);var h=Math.min(e.innerWidth/i.width,e.innerHeight/i.height),u=2*F.relativeRadiusToValue(this.radius,h)||0,c=u/2,d=this.startAngle,p=this.endAngle;this._pixelInnerRadius=F.relativeRadiusToValue(s,c),this._bulletMask.path=w.arc(d,p-d,c,this._pixelInnerRadius),g.each(this.xAxes.iterator(),function(t){t.renderer.useChartAngles&&(t.renderer.startAngle=d,t.renderer.endAngle=p),t.width=u,t.height=u,t.renderer.pixelRadiusReal=c,t.renderer.innerRadius=s}),g.each(this.yAxes.iterator(),function(t){t.renderer.startAngle=d,t.renderer.endAngle=p,t.width=u,t.height=u,t.renderer.pixelRadiusReal=c,t.renderer.innerRadius=s});var y=this.cursor;y&&(y.width=u,y.height=u,y.startAngle=d,y.endAngle=p),this.radarContainer.definedBBox={x:c*i.x,y:c*i.y,width:c*i.width,height:c*i.height},this.radarContainer.validatePosition()},e.prototype.createSeries=function(){return new rt},Object.defineProperty(e.prototype,"startAngle",{get:function(){return this.getPropertyValue("startAngle")},set:function(t){this.setPropertyValue("startAngle",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endAngle",{get:function(){return this.getPropertyValue("endAngle")},set:function(t){this.setPropertyValue("endAngle",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"radius",{get:function(){return this.getPropertyValue("radius")},set:function(t){this.setPercentProperty("radius",t,!0,!1,10,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pixelInnerRadius",{get:function(){return this._pixelInnerRadius},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"innerRadius",{get:function(){return this.getPropertyValue("innerRadius")},set:function(t){this.setPercentProperty("innerRadius",t,!0,!1,10,!1)},enumerable:!0,configurable:!0}),e.prototype.updateXAxis=function(t){t&&t.processRenderer()},e.prototype.updateYAxis=function(t){t&&t.processRenderer()},e}(q);c.b.registeredClasses.RadarChart=xt;var vt=i("DziZ"),bt=function(t){function e(){var e=t.call(this)||this;e._axis=new k.d,e.className="ClockHand";var i=new W.a;e.fill=i.getFor("alternativeBackground"),e.stroke=e.fill;var a=new st.a;a.radius=5,e.pin=a,e.isMeasured=!1,e.startWidth=5,e.endWidth=1,e.width=Object(Y.c)(100),e.height=Object(Y.c)(100),e.radius=Object(Y.c)(100),e.innerRadius=Object(Y.c)(0);var n=new vt.a;return e.hand=n,e._disposers.push(e._axis),e.applyTheme(),e}return n.c(e,t),e.prototype.validate=function(){t.prototype.validate.call(this);var e=this.hand;e.width=this.pixelWidth;var i=Math.max(this.startWidth,this.endWidth);if(e.height=i,e.leftSide=Object(Y.c)(this.startWidth/i*100),e.rightSide=Object(Y.c)(this.endWidth/i*100),this.axis){var a=this.axis.renderer,n=F.relativeRadiusToValue(this.innerRadius,a.pixelRadius),r=F.relativeRadiusToValue(this.radius,a.pixelRadius);e.x=n,e.y=-i/2,e.width=r-n}},Object.defineProperty(e.prototype,"pin",{get:function(){return this._pin},set:function(t){this._pin&&this.removeDispose(this._pin),t&&(this._pin=t,t.parent=this,this._disposers.push(t))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hand",{get:function(){return this._hand},set:function(t){this._hand&&this.removeDispose(this._hand),t&&(this._hand=t,t.parent=this,this._disposers.push(t))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"radius",{get:function(){return this.getPropertyValue("radius")},set:function(t){this.setPercentProperty("radius",t,!0,!1,10,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"innerRadius",{get:function(){return this.getPropertyValue("innerRadius")},set:function(t){this.setPercentProperty("innerRadius",t,!0,!1,10,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"startWidth",{get:function(){return this.getPropertyValue("startWidth")},set:function(t){this.setPropertyValue("startWidth",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endWidth",{get:function(){return this.getPropertyValue("endWidth")},set:function(t){this.setPropertyValue("endWidth",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rotationDirection",{get:function(){return this.getPropertyValue("rotationDirection")},set:function(t){this.setPropertyValue("rotationDirection",t)},enumerable:!0,configurable:!0}),e.prototype.showValue=function(t,e,i){if(this._value=t,void 0!=t&&(y.isNumber(e)||(e=0),this.axis)){var a=this.axis.renderer.positionToAngle(this.axis.anyToPosition(t)),n=this.rotation;"clockWise"==this.rotationDirection&&a<n&&(this.rotation=n-360),"counterClockWise"==this.rotationDirection&&a>n&&(this.rotation=n+360),this.animate({property:"rotation",to:a},e,i)}},Object.defineProperty(e.prototype,"value",{get:function(){return this._value},set:function(t){this.showValue(t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"axis",{get:function(){return this._axis.get()},set:function(t){if(this.axis!=t&&this._axis.set(t,new k.c([t.events.on("datavalidated",this.updateValue,this,!1),t.events.on("datarangechanged",this.updateValue,this,!1),t.events.on("dataitemsvalidated",this.updateValue,this,!1),t.events.on("propertychanged",this.invalidate,this,!1)])),t){var e=t.chart;e&&(this.rotation=e.startAngle)}this.parent=t.renderer,this.zIndex=5},enumerable:!0,configurable:!0}),e.prototype.updateValue=function(){this.value=this.value},e.prototype.processConfig=function(e){e&&y.hasValue(e.axis)&&y.isString(e.axis)&&this.map.hasKey(e.axis)&&(e.axis=this.map.getKey(e.axis)),t.prototype.processConfig.call(this,e)},e}(s.a);c.b.registeredClasses.ClockHand=bt;var Pt=function(t){function e(){var e=t.call(this)||this;return e.className="GaugeChartDataItem",e.applyTheme(),e}return n.c(e,t),e}(ft),At=function(t){function e(){var e=t.call(this)||this;return e.className="GaugeChart",e.startAngle=180,e.endAngle=360,e.hands=new o.e(new bt),e.hands.events.on("inserted",e.processHand,e,!1),e._disposers.push(new o.c(e.hands)),e._disposers.push(e.hands.template),e.applyTheme(),e}return n.c(e,t),e.prototype.applyInternalDefaults=function(){t.prototype.applyInternalDefaults.call(this),y.hasValue(this.readerTitle)||(this.readerTitle=this.language.translate("Gauge chart"))},e.prototype.processHand=function(t){var e=t.newValue;e.axis||(e.axis=this.xAxes.getIndex(0))},e}(xt);c.b.registeredClasses.GaugeChart=At;var Ct=i("quKg"),It=i("Puh1"),_t=i("nPzZ"),Dt=function(t){function e(){var e=t.call(this)||this;return e.className="PieSeries3DDataItem",e.values.depthValue={},e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"depthValue",{get:function(){return this.values.depthValue.value},set:function(t){this.setValue("depthValue",t)},enumerable:!0,configurable:!0}),e}(It.b),Tt=function(t){function e(){var e=t.call(this)||this;return e.className="PieSeries3D",e.applyTheme(),e}return n.c(e,t),e.prototype.createDataItem=function(){return new Dt},e.prototype.createSlice=function(){return new _t.a},e.prototype.validateDataElement=function(e){var i=e.slice,a=this.depth;y.isNumber(a)||(a=this.chart.depth);var n=e.values.depthValue.percent;y.isNumber(n)||(n=100),i.depth=n*a/100;var r=this.angle;y.isNumber(r)||(r=this.chart.angle),i.angle=r,t.prototype.validateDataElement.call(this,e)},e.prototype.validate=function(){t.prototype.validate.call(this);for(var e=this._workingStartIndex;e<this._workingEndIndex;e++){var i=this.dataItems.getIndex(e).slice,a=i.startAngle;a>=-90&&a<90?i.toFront():a>=90&&i.toBack()}},Object.defineProperty(e.prototype,"depth",{get:function(){return this.getPropertyValue("depth")},set:function(t){this.setPropertyValue("depth",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"angle",{get:function(){return this.getPropertyValue("angle")},set:function(t){this.setPropertyValue("angle",t)},enumerable:!0,configurable:!0}),e.prototype.positionBullet=function(e){t.prototype.positionBullet.call(this,e);var i=e.dataItem.slice;e.y=e.pixelY-i.depth},e}(It.a);c.b.registeredClasses.PieSeries3D=Tt,c.b.registeredClasses.PieSeries3DDataItem=Dt;var Vt=function(t){function e(){var e=t.call(this)||this;return e.className="PieChart3DDataItem",e.applyTheme(),e}return n.c(e,t),e}(Ct.b),St=function(t){function e(){var e=t.call(this)||this;return e.className="PieChart3D",e.depth=20,e.angle=10,e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"depth",{get:function(){return this.getPropertyValue("depth")},set:function(t){this.setPropertyValue("depth",t)&&this.invalidateDataUsers()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"angle",{get:function(){return this.getPropertyValue("angle")},set:function(t){t=m.fitToRange(t,0,90),this.setPropertyValue("angle",t)&&this.invalidateDataUsers()},enumerable:!0,configurable:!0}),e.prototype.createSeries=function(){return new Tt},e}(Ct.a);c.b.registeredClasses.PieChart3D=St;var kt=i("DXFp"),Ft=function(t){function e(){var e=t.call(this)||this;return e.className="SlicedChartDataItem",e.applyTheme(),e}return n.c(e,t),e}(kt.b),Ot=function(t){function e(){var e=t.call(this)||this;return e.className="SlicedChart",e.seriesContainer.layout="horizontal",e.padding(15,15,15,15),e.applyTheme(),e}return n.c(e,t),e.prototype.applyInternalDefaults=function(){t.prototype.applyInternalDefaults.call(this),y.hasValue(this.readerTitle)||(this.readerTitle=this.language.translate("Sliced chart"))},e.prototype.validate=function(){t.prototype.validate.call(this)},e}(kt.a);c.b.registeredClasses.SlicedChart=Ot,c.b.registeredClasses.SlicedChartDataItem=Ft;var wt=i("VIOb"),Rt=i("wUYf"),Lt=i("MlsF"),Xt=i("3Cxr"),Yt=i("CnhP"),jt=i("uWmK"),Nt=function(t){function e(){var e=t.call(this)||this;return e.legendSettings=new jt.c,e.className="FlowDiagramNode",e.isMeasured=!1,new W.a,e.draggable=!0,e.inert=!0,e.setStateOnChildren=!0,e.events.on("positionchanged",e.invalidateLinks,e,!1),e.events.on("sizechanged",e.invalidateLinks,e,!1),e}return n.c(e,t),e.prototype.handleHit=function(t){this.isHidden||this.isHiding?this.show():this.hide()},e.prototype.show=function(e){var i=t.prototype.show.call(this,e);return this.outgoingDataItems.each(function(t){(!t.toNode||t.toNode&&!t.toNode.isHidden)&&t.setWorkingValue("value",t.getValue("value"),e)}),this.incomingDataItems.each(function(t){(!t.fromNode||t.fromNode&&!t.fromNode.isHidden)&&t.setWorkingValue("value",t.getValue("value"),e)}),i},e.prototype.hide=function(e){var i=t.prototype.hide.call(this,e);return this.outgoingDataItems.each(function(t){t.setWorkingValue("value",0,e)}),this.incomingDataItems.each(function(t){t.setWorkingValue("value",0,e)}),i},e.prototype.validate=function(){this.isDisposed()||(t.prototype.validate.call(this),this.invalidateLinks())},e.prototype.invalidateLinks=function(){var t=this;this.outgoingDataItems.each(function(e){var i=e.link;if("fromNode"==i.colorMode&&(i.fill=i.dataItem.fromNode.color),"gradient"==i.colorMode){i.fill=i.gradient,i.stroke=i.gradient;var a=i.gradient.stops.getIndex(0);a&&(a.color=t.color,i.gradient.validate())}}),this.incomingDataItems.each(function(e){var i=e.link;if("toNode"==i.colorMode&&(i.fill=i.dataItem.toNode.color),"gradient"==i.colorMode){i.fill=i.gradient,i.stroke=i.gradient;var a=i.gradient.stops.getIndex(1);a&&(a.color=t.color,i.gradient.validate())}})},Object.defineProperty(e.prototype,"incomingDataItems",{get:function(){var t=this;if(!this._incomingDataItems){var e=new o.b;e.events.on("inserted",function(){"name"==t.chart.sortBy?t._incomingSorted=g.sort(t._incomingDataItems.iterator(),function(t,e){return Rt.order(t.fromName,e.fromName)}):"value"==t.chart.sortBy?t._incomingSorted=g.sort(t._incomingDataItems.iterator(),function(t,e){return Lt.b(Xt.order(t.value,e.value))}):t._incomingSorted=t._incomingDataItems.iterator()},void 0,!1),this._incomingDataItems=e}return this._incomingDataItems},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"outgoingDataItems",{get:function(){var t=this;if(!this._outgoingDataItems){var e=new o.b;e.events.on("inserted",function(){"name"==t.chart.sortBy?t._outgoingSorted=g.sort(t._outgoingDataItems.iterator(),function(t,e){return Rt.order(t.fromName,e.fromName)}):"value"==t.chart.sortBy?t._outgoingSorted=g.sort(t._outgoingDataItems.iterator(),function(t,e){return Lt.b(Xt.order(t.value,e.value))}):t._outgoingSorted=t._outgoingDataItems.iterator()},void 0,!1),this._outgoingDataItems=e}return this._outgoingDataItems},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"name",{get:function(){return this.getPropertyValue("name")},set:function(t){this.setPropertyValue("name",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"total",{get:function(){return this.getPropertyValue("total")},set:function(t){this.setPropertyValue("total",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"totalIncoming",{get:function(){return this.getPropertyValue("totalIncoming")},set:function(t){this.setPropertyValue("totalIncoming",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"totalOutgoing",{get:function(){return this.getPropertyValue("totalOutgoing")},set:function(t){this.setPropertyValue("totalOutgoing",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"color",{get:function(){return this.getPropertyValue("color")},set:function(t){this.setColorProperty("color",t),this._background&&(this._background.fill=t),this.fill=t},enumerable:!0,configurable:!0}),e.prototype.createLegendMarker=function(t){var e=t.pixelWidth,i=t.pixelHeight;t.removeChildren();var a=t.createChild(Yt.a);a.shouldClone=!1,f.copyProperties(this,a,S.b),a.stroke=this.fill,a.copyFrom(this),a.padding(0,0,0,0),a.width=e,a.height=i;var n=t.dataItem;n.color=a.fill,n.colorOrig=a.fill},Object.defineProperty(e.prototype,"legendDataItem",{get:function(){return this._legendDataItem},set:function(t){this._legendDataItem=t,this._legendDataItem.itemContainer.deepInvalidate()},enumerable:!0,configurable:!0}),e}(s.a);c.b.registeredClasses.FlowDiagramNode=Nt;var Mt=i("sxA1"),Wt=i("jfaP"),Bt=function(t){function e(){var e=t.call(this)||this;e.className="FlowDiagramLink";var i=new W.a;return e.maskBullets=!1,e.colorMode="fromNode",e.layout="none",e.isMeasured=!1,e.startAngle=0,e.endAngle=0,e.strokeOpacity=0,e.verticalCenter="none",e.horizontalCenter="none",e.tooltipText="{fromName}→{toName}:{value.value}",e.tooltipLocation=.5,e.link=e.createChild(S.a),e.link.shouldClone=!1,e.link.setElement(e.paper.add("path")),e.link.isMeasured=!1,e.fillOpacity=.2,e.fill=i.getFor("alternativeBackground"),e.applyTheme(),e}return n.c(e,t),e.prototype.positionBullets=function(){var t=this;g.each(this.bullets.iterator(),function(e){e.parent=t.bulletsContainer,e.maxWidth=t.maxWidth,e.maxHeight=t.maxHeight,t.positionBullet(e)})},Object.defineProperty(e.prototype,"bulletsContainer",{get:function(){if(!this._bulletsContainer){var t=this.createChild(s.a);t.shouldClone=!1,t.layout="none",this._bulletsContainer=t}return this._bulletsContainer},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bulletsMask",{get:function(){if(!this._bulletsMask){var t=this.createChild(S.a);t.shouldClone=!1,t.setElement(this.paper.add("path")),t.isMeasured=!1,this._bulletsMask=t}return this._bulletsMask},enumerable:!0,configurable:!0}),e.prototype.positionBullet=function(t){var e=t.locationX;y.isNumber(e)||(e=t.locationY),y.isNumber(e)||(e=.5);var i=this.middleLine.positionToPoint(e);t.moveTo(i);var a,n=t.propertyFields.rotation;t.dataItem&&(a=t.dataItem.dataContext[n]);y.isNumber(a)||(a=i.angle),t.rotation=a},Object.defineProperty(e.prototype,"startAngle",{get:function(){return this.getPropertyValue("startAngle")},set:function(t){this.setPropertyValue("startAngle",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endAngle",{get:function(){return this.getPropertyValue("endAngle")},set:function(t){this.setPropertyValue("endAngle",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"colorMode",{get:function(){return this.getPropertyValue("colorMode")},set:function(t){if("gradient"==t){var e=this.fill;this.gradient.stops.clear(),e instanceof M.a&&(this.gradient.addColor(e),this.gradient.addColor(e)),this.fill=this.gradient,this.stroke=this.gradient}this.setPropertyValue("colorMode",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maskBullets",{get:function(){return this.getPropertyValue("maskBullets")},set:function(t){this.setPropertyValue("maskBullets",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tooltipLocation",{get:function(){return this.getPropertyValue("tooltipLocation")},set:function(t){this.setPropertyValue("tooltipLocation",t,!0)},enumerable:!0,configurable:!0}),e.prototype.setFill=function(e){t.prototype.setFill.call(this,e);var i=this._gradient;i&&e instanceof M.a&&(i.stops.clear(),i.addColor(e),i.addColor(e))},e.prototype.measureElement=function(){},Object.defineProperty(e.prototype,"bullets",{get:function(){var t=this;return this._bullets||(this._bullets=new o.e(new et.a),this._disposers.push(new o.c(this._bullets)),this._disposers.push(this._bullets.template),this._bullets.events.on("inserted",function(e){e.newValue.events.on("propertychanged",function(e){"locationX"!=e.property&&"locationY"!=e.property||t.positionBullet(e.target)},void 0,!1)},void 0,!1)),this._bullets},enumerable:!0,configurable:!0}),e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.bullets.copyFrom(e.bullets);var i=this.middleLine;i&&(i instanceof Q.a&&e.middleLine instanceof Q.a&&i.copyFrom(e.middleLine),i instanceof Wt.a&&e.middleLine instanceof Wt.a&&i.copyFrom(e.middleLine)),this.link.copyFrom(e.link)},e.prototype.getTooltipX=function(){if(this.middleLine)return this.middleLine.positionToPoint(this.tooltipLocation).x},e.prototype.getTooltipY=function(){if(this.middleLine)return this.middleLine.positionToPoint(this.tooltipLocation).y},Object.defineProperty(e.prototype,"gradient",{get:function(){return this._gradient||(this._gradient=new Mt.a),this._gradient},enumerable:!0,configurable:!0}),e}(s.a);c.b.registeredClasses.FlowDiagramLink=Bt;var Et=i("/e9j"),Ht=i("DHte"),zt=function(t){function e(){var e=t.call(this)||this;return e.className="FlowDiagramDataItem",e.values.value={},e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"fromName",{get:function(){return this.properties.fromName},set:function(t){this.setProperty("fromName",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"toName",{get:function(){return this.properties.toName},set:function(t){this.setProperty("toName",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"color",{get:function(){return this.properties.color},set:function(t){this.setProperty("color",Object(M.e)(t))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){return this.values.value.value},set:function(t){this.setValue("value",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"link",{get:function(){var t=this;if(!this._link){var e=this.component.links.create();this._link=e,this.addSprite(e),this._disposers.push(new k.b(function(){t.component&&t.component.links.removeValue(e)}))}return this._link},enumerable:!0,configurable:!0}),e}(wt.b),Ut=function(t){function e(){var e=t.call(this)||this;e.colors=new Ht.a,e.className="FlowDiagram",e.nodePadding=20,e.sortBy="none",e.sequencedInterpolation=!0,e.colors.step=2,e.minNodeSize=.02;var i=e.chartContainer.createChild(s.a);i.shouldClone=!1,i.layout="none",i.isMeasured=!1,e.linksContainer=i;var a=e.chartContainer.createChild(s.a);return a.shouldClone=!1,a.layout="none",a.isMeasured=!1,e.nodesContainer=a,e.dataItem=e.createDataItem(),e.dataItem.component=e,e.applyTheme(),e}return n.c(e,t),e.prototype.dispose=function(){t.prototype.dispose.call(this),this.dataItem.dispose()},e.prototype.validateData=function(){var e=this;0==this._parseDataFrom&&this.nodes.clear(),this.sortNodes(),this.colors.reset(),t.prototype.validateData.call(this);var i,a,n=0,r=0;g.each(this.dataItems.iterator(),function(t){var s=t.fromName;s&&((o=e.nodes.getKey(s))||((o=e.nodes.create(s)).name=s,o.chart=e,o.dataItem=t),t.fromNode=o,t.fromNode.outgoingDataItems.push(t));var o,l=t.toName;l&&((o=e.nodes.getKey(l))||((o=e.nodes.create(l)).name=l,o.chart=e,o.dataItem=t),t.toNode=o,t.toNode.incomingDataItems.push(t));if(!t.fromNode){var h=new Et.a;h.opacities=[0,1],t.link.strokeModifier=h}if(!t.toNode){var u=new Et.a;u.opacities=[1,0],t.link.strokeModifier=u}var c=t.value;y.isNumber(c)&&(n+=c,r++,(i>c||!y.isNumber(i))&&(i=c),(a<c||!y.isNumber(a))&&(a=c))});var s="value";this.dataItem.setCalculatedValue(s,a,"high"),this.dataItem.setCalculatedValue(s,i,"low"),this.dataItem.setCalculatedValue(s,n,"sum"),this.dataItem.setCalculatedValue(s,n/r,"average"),this.dataItem.setCalculatedValue(s,r,"count"),g.each(this.nodes.iterator(),function(t){var i=t[1];i.fill instanceof M.a&&(i.color=i.fill),void 0==i.color&&(i.color=e.colors.next()),void 0!=i.dataItem.color&&(i.color=i.dataItem.color),i.dataItem.visible||i.hide(0),e.getNodeValue(i)}),this.sortNodes(),this.feedLegend()},e.prototype.handleDataItemWorkingValueChange=function(t,e){this.invalidate()},e.prototype.sortNodes=function(){"name"==this.sortBy?this._sorted=this.nodes.sortedIterator():"value"==this.sortBy?this._sorted=g.sort(this.nodes.iterator(),function(t,e){return Lt.b(Xt.order(t[1].total,e[1].total))}):this._sorted=this.nodes.iterator()},e.prototype.getNodeValue=function(t){var e=0,i=0;g.each(t.incomingDataItems.iterator(),function(t){var i=t.getWorkingValue("value");y.isNumber(i)&&(e+=i)}),g.each(t.outgoingDataItems.iterator(),function(t){var e=t.getWorkingValue("value");y.isNumber(e)&&(i+=e)}),t.total=e+i,t.totalIncoming=e,t.totalOutgoing=i},e.prototype.changeSorting=function(){this.sortNodes()},e.prototype.applyInternalDefaults=function(){t.prototype.applyInternalDefaults.call(this),y.hasValue(this.readerTitle)||(this.readerTitle=this.language.translate("Flow diagram"))},e.prototype.createDataItem=function(){return new zt},Object.defineProperty(e.prototype,"nodePadding",{get:function(){return this.getPropertyValue("nodePadding")},set:function(t){this.setPropertyValue("nodePadding",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sortBy",{get:function(){return this.getPropertyValue("sortBy")},set:function(t){this.setPropertyValue("sortBy",t),this.changeSorting()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"minNodeSize",{get:function(){return this.getPropertyValue("minNodeSize")},set:function(t){this.setPropertyValue("minNodeSize",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"nodes",{get:function(){if(!this._nodes){var t=this.createNode();t.events.on("hit",function(t){t.target.handleHit(t)}),this._nodes=new h.c(t),this._disposers.push(new h.b(this._nodes))}return this._nodes},enumerable:!0,configurable:!0}),e.prototype.createNode=function(){var t=new Nt;return this._disposers.push(t),t},Object.defineProperty(e.prototype,"links",{get:function(){return this._links||(this._links=new o.e(this.createLink()),this._disposers.push(new o.c(this._links))),this._links},enumerable:!0,configurable:!0}),e.prototype.createLink=function(){var t=new Bt;return this._disposers.push(t),t},e.prototype.feedLegend=function(){var t=this.legend;if(t){var e=[];this.nodes.each(function(t,i){e.push(i)}),t.data=e,t.dataFields.name="name"}},e.prototype.disposeData=function(){t.prototype.disposeData.call(this),this.nodes.clear()},e}(wt.a);c.b.registeredClasses.FlowDiagram=Ut;var Kt=function(t){function e(){var e=t.call(this)||this;e.className="LabelBullet";var i=e.createChild($.a);return i.shouldClone=!1,i.verticalCenter="middle",i.horizontalCenter="middle",i.truncate=!0,i.hideOversized=!1,i.maxWidth=500,i.maxHeight=500,i.stroke=Object(M.c)(),i.strokeOpacity=0,i.fill=(new W.a).getFor("text"),e.events.on("maxsizechanged",e.handleMaxSize,e,!1),e.label=i,e.applyTheme(),e}return n.c(e,t),e.prototype.handleMaxSize=function(){this.label.maxWidth=this.maxWidth,this.label.maxHeight=this.maxHeight},e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.label.copyFrom(e.label)},e}(et.a);c.b.registeredClasses.LabelBullet=Kt;var Gt=function(t){function e(){var e=t.call(this)||this;e.nextInCoord=0,e.nextOutCoord=0,e.className="SankeyNode",e.width=10,e.height=10;var i=e.createChild(Kt);i.shouldClone=!1,i.locationX=1,i.locationY=.5,i.label.text="{name}",i.width=150,i.height=150,i.label.horizontalCenter="left",i.label.padding(0,5,0,5),e.nameLabel=i;var a=e.createChild(Kt);a.shouldClone=!1,a.label.hideOversized=!1,a.locationX=.5,a.locationY=.5,a.width=150,a.height=150,a.label.horizontalCenter="middle",e.valueLabel=a;var n=e.hiddenState;return n.properties.fill=(new W.a).getFor("disabledBackground"),n.properties.opacity=.5,n.properties.visible=!0,e.background.hiddenState.copyFrom(n),e}return n.c(e,t),e.prototype.invalidateLinks=function(){var e=this;t.prototype.invalidateLinks.call(this),this.nextInCoord=0,this.nextOutCoord=0;var i=this.chart;if(i){var a=i.orientation;this._incomingSorted&&g.each(this._incomingSorted,function(t){var n=t.link,r=t.getWorkingValue("value");if(y.isNumber(r)){n.parent=e.chart.linksContainer;var s=void 0,o=void 0,l=void 0;if("horizontal"==a?(s=e.pixelX+e.dx,o=e.nextInCoord+e.pixelY+e.dy,l=0):(o=e.pixelY+e.dy,s=e.nextInCoord+e.pixelX+e.dx,l=90),n.endX=s,n.endY=o,n.startAngle=l,n.endAngle=l,n.gradient.rotation=l,n.linkWidth=r*i.valueHeight,!t.fromNode){"horizontal"==a?(n.maxWidth=200,n.startX=e.pixelX+e.dx-n.maxWidth,n.startY=n.endY):(n.maxHeight=200,n.startX=n.endX,n.startY=e.pixelY+e.dy-n.maxHeight),F.used(n.gradient),n.fill=t.toNode.color;var h=n.gradient.stops.getIndex(0);h&&("gradient"==n.colorMode&&(h.color=e.color),h.opacity=0,n.fill=n.gradient,n.stroke=n.gradient,n.gradient.validate())}e.nextInCoord+=n.linkWidth}}),this._outgoingSorted&&g.each(this._outgoingSorted,function(t){var i=t.link;i.parent=e.chart.linksContainer;var n=t.getWorkingValue("value");if(y.isNumber(n)){var r=void 0,s=void 0,o=void 0;if("horizontal"==a?(o=0,r=e.pixelX+e.pixelWidth+e.dx-1,s=e.nextOutCoord+e.pixelY+e.dy):(o=90,r=e.nextOutCoord+e.pixelX+e.dx,s=e.pixelY+e.pixelHeight+e.dy-1),i.startX=r,i.startY=s,i.startAngle=o,i.endAngle=o,i.gradient.rotation=o,i.linkWidth=n*e.chart.valueHeight,!t.toNode){"horizontal"==a?(i.maxWidth=200,i.endX=e.pixelX+i.maxWidth+e.dx,i.endY=i.startY):(i.maxHeight=200,i.endX=i.startX,i.endY=e.pixelY+i.maxHeight+e.dy),i.opacity=e.opacity;var l=i.gradient.stops.getIndex(1);l&&("gradient"==i.colorMode&&(l.color=e.color),l.opacity=0,i.fill=i.gradient,i.stroke=i.gradient,i.gradient.validate())}e.nextOutCoord+=i.linkWidth}})}this.positionBullet(this.nameLabel),this.positionBullet(this.valueLabel)},e.prototype.positionBullet=function(t){t&&(t.x=this.measuredWidth*t.locationX,t.y=this.measuredHeight*t.locationY)},Object.defineProperty(e.prototype,"level",{get:function(){return this.getPropertyValue("level")},set:function(t){this.setPropertyValue("level",t,!0)},enumerable:!0,configurable:!0}),e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.nameLabel.copyFrom(e.nameLabel),this.valueLabel.copyFrom(e.valueLabel)},e}(Nt);c.b.registeredClasses.SankeyNode=Gt;var qt=i("xgTw"),Zt=function(t){function e(){var e=t.call(this)||this;return e.className="SankeyLink",new W.a,e.tension=.8,e.controlPointDistance=.2,e.startAngle=0,e.endAngle=0,e.linkWidth=0,e.startX=0,e.endX=0,e.startY=0,e.endY=0,e.middleLine=e.createChild(qt.a),e.middleLine.shouldClone=!1,e.middleLine.strokeOpacity=0,e.applyTheme(),e}return n.c(e,t),e.prototype.validate=function(){if(t.prototype.validate.call(this),!this.isTemplate){var e=this.startX,i=this.startY,a=this.endX,n=this.endY;y.isNumber(a)||(a=e),y.isNumber(n)||(n=i);var r=this.startAngle,s=this.endAngle,o=this.linkWidth,l="",h=e,u=i,c=a,d=n,p=e+o*m.sin(r),g=a+o*m.sin(s),f=i+o*m.cos(r),x=n+o*m.cos(s),v=e+o/2*m.sin(r),b=a+o/2*m.sin(s),P=i+o/2*m.cos(r),A=n+o/2*m.cos(s);this.zIndex=this.zIndex||this.dataItem.index;var C=this.tension+(1-this.tension)*m.sin(r),I=this.tension+(1-this.tension)*m.cos(r);if(this.middleLine.tensionX=C,this.middleLine.tensionY=I,y.isNumber(o)&&y.isNumber(e)&&y.isNumber(a)&&y.isNumber(i)&&y.isNumber(n)){m.round(h,3)==m.round(c,3)&&(c+=.01),m.round(u,3)==m.round(d,3)&&(d+=.01),m.round(p,3)==m.round(g,3)&&(g+=.01),m.round(f,3)==m.round(x,3)&&(x+=.01);var _=Math.min(p,g,h,c),D=Math.min(f,x,u,d),T=Math.max(p,g,h,c),V=Math.max(f,x,u,d);this._bbox={x:_,y:D,width:T-_,height:V-D};var S=this.controlPointDistance,k=h+(c-h)*S*m.cos(r),F=u+(d-u)*S*m.sin(r),O=c-(c-h)*S*m.cos(s),R=d-(d-u)*S*m.sin(s),L=v+(b-v)*S*m.cos(r),X=P+(A-P)*S*m.sin(r),Y=b-(b-v)*S*m.cos(s),j=A-(A-P)*S*m.sin(s),N=m.getAngle({x:k,y:F},{x:O,y:R}),M=(o/m.cos(N)-o)/m.tan(N)*m.cos(r),W=(o/m.sin(N)-o)*m.tan(N)*m.sin(r),B=-M/2+p+(g-p)*S*m.cos(r),E=-W/2+f+(x-f)*S*m.sin(r),H=-M/2+g-(g-p)*S*m.cos(s),z=-W/2+x-(x-f)*S*m.sin(s);this.middleLine.segments=[[{x:v,y:P},{x:L,y:X},{x:Y,y:j},{x:b,y:A}]],k+=M/2,F+=W/2,O+=M/2,R+=W/2,l+=w.moveTo({x:h,y:u}),l+=new Z.b(C,I).smooth([{x:h,y:u},{x:k,y:F},{x:O,y:R},{x:c,y:d}]),l+=w.lineTo({x:g,y:x}),l+=new Z.b(C,I).smooth([{x:g,y:x},{x:H,y:z},{x:B,y:E},{x:p,y:f}]),l+=w.closePath()}this.link.path=l,this.maskBullets&&(this.bulletsMask.path=l,this.bulletsContainer.mask=this.bulletsMask),this.positionBullets()}},Object.defineProperty(e.prototype,"startX",{get:function(){return this.getPropertyValue("startX")},set:function(t){this.setPropertyValue("startX",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endX",{get:function(){return this.getPropertyValue("endX")},set:function(t){this.setPropertyValue("endX",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"startY",{get:function(){return this.getPropertyValue("startY")},set:function(t){this.setPropertyValue("startY",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endY",{get:function(){return this.getPropertyValue("endY")},set:function(t){this.setPropertyValue("endY",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"linkWidth",{get:function(){return this.getPropertyValue("linkWidth")},set:function(t){this.setPropertyValue("linkWidth",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"controlPointDistance",{get:function(){return this.getPropertyValue("controlPointDistance")},set:function(t){this.setPropertyValue("controlPointDistance",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tension",{get:function(){return this.getPropertyValue("tension")},set:function(t){this.setPropertyValue("tension",t,!0)},enumerable:!0,configurable:!0}),e}(Bt);c.b.registeredClasses.SankeyLink=Zt;var Jt=i("1yyj"),Qt=function(t){function e(){var e=t.call(this)||this;return e.className="SankeyDiagramDataItem",e.applyTheme(),e}return n.c(e,t),e}(zt),$t=function(t){function e(){var e=t.call(this)||this;return e.className="SankeyDiagram",e.orientation="horizontal",e.nodeAlign="middle",e.nodesContainer.width=Object(Y.c)(100),e.nodesContainer.height=Object(Y.c)(100),e.linksContainer.width=Object(Y.c)(100),e.linksContainer.height=Object(Y.c)(100),e.applyTheme(),e}return n.c(e,t),e.prototype.validateData=function(){var e=this;t.prototype.validateData.call(this),this._levelCount=0,this.nodes.each(function(t,i){i.level=e.getNodeLevel(i,0),e._levelCount=m.max(e._levelCount,i.level)})},e.prototype.getNodeLevel=function(t,e){var i=this,a=[e];return g.each(t.incomingDataItems.iterator(),function(t){t.fromNode&&a.push(i.getNodeLevel(t.fromNode,e+1))}),Math.max.apply(Math,n.f(a))},e.prototype.calculateValueHeight=function(){var t=this;this._levelSum={},this._levelNodesCount={},this.maxSum=0;var e,i,a=this.dataItem.values.value.sum;g.each(this._sorted,function(e){var i=e[1];t.getNodeValue(i)}),this.nodes.each(function(e,i){var n=i.level,r=Math.max(i.totalIncoming,i.totalOutgoing);r/a<t.minNodeSize&&(r=a*t.minNodeSize),y.isNumber(t._levelSum[n])?t._levelSum[n]+=r:t._levelSum[n]=r,y.isNumber(t._levelNodesCount[n])?t._levelNodesCount[n]++:t._levelNodesCount[n]=1}),e="horizontal"==this.orientation?this.chartContainer.maxHeight-1:this.chartContainer.maxWidth-1,f.each(this._levelSum,function(a,n){var r=n;n=n*e/(e-(t._levelNodesCount[a]-1)*t.nodePadding),t.maxSum<n&&(t.maxSum=r,i=y.toNumber(a))}),this._maxSumLevel=i;var n=this._levelNodesCount[this._maxSumLevel],r=(e-(n-1)*this.nodePadding)/this.maxSum;if(y.isNumber(this.valueHeight)){var s=void 0;try{s=this._heightAnimation.animationOptions[0].to}catch(t){}if(s!=r){var o=this.interpolationDuration;try{o=this.nodes.template.states.getKey("active").transitionDuration}catch(t){}this._heightAnimation=new Jt.a(this,{property:"valueHeight",from:this.valueHeight,to:r},o).start(),this._disposers.push(this._heightAnimation)}}else this.valueHeight=r},e.prototype.validate=function(){var e=this;t.prototype.validate.call(this),this.calculateValueHeight();var i=this.nodesContainer,a={},n=this._levelNodesCount[this._maxSumLevel],r=this.dataItem.values.value.sum;g.each(this._sorted,function(t){var s,o,l,h=t[1],u=h.level,c=0,d=e._levelNodesCount[u];switch(e.nodeAlign){case"bottom":c=(e.maxSum-e._levelSum[u])*e.valueHeight-(d-n)*e.nodePadding;break;case"middle":c=(e.maxSum-e._levelSum[u])*e.valueHeight/2-(d-n)*e.nodePadding/2}h.parent=i;var p=Math.max(h.totalIncoming,h.totalOutgoing);if(p/r<e.minNodeSize&&(p=r*e.minNodeSize),"horizontal"==e.orientation){o=(s=(e.innerWidth-h.pixelWidth)/e._levelCount)*h.level,l=a[u]||c;var y=p*e.valueHeight;h.height=y,h.minX=o,h.maxX=o,a[u]=l+y+e.nodePadding}else{s=(e.innerHeight-h.pixelHeight)/e._levelCount,o=a[u]||c,l=s*h.level;var g=p*e.valueHeight;h.width=g,h.minY=l,h.maxY=l,a[u]=o+g+e.nodePadding}h.x=o,h.y=l})},e.prototype.showReal=function(e){var i=this;if(this.interpolationDuration>0){var a=this.nodesContainer,n=0;g.each(this.links.iterator(),function(t){t.hide(0)}),g.each(this._sorted,function(t){var e,r=t[1];"horizontal"==i.orientation?(r.dx=-(a.pixelWidth-r.pixelWidth)/i._levelCount,e="dx"):(r.dy=-(a.pixelHeight-r.pixelHeight)/i._levelCount,e="dy");var s=0,o=i.interpolationDuration;i.sequencedInterpolation&&(s=i.sequencedInterpolationDelay*n+o*n/g.length(i.nodes.iterator())),r.opacity=0,r.invalidateLinks(),r.animate([{property:"opacity",from:0,to:1},{property:e,to:0}],i.interpolationDuration,i.interpolationEasing).delay(s),g.each(r.outgoingDataItems.iterator(),function(t){var e=t.link.show(i.interpolationDuration);e&&!e.isFinished()&&e.delay(s)}),g.each(r.incomingDataItems.iterator(),function(t){if(!t.fromNode){var e=t.link.show(i.interpolationDuration);e&&!e.isFinished()&&e.delay(s)}}),n++})}return t.prototype.showReal.call(this)},e.prototype.changeSorting=function(){var t=this;this.sortNodes();var e={};g.each(this._sorted,function(i){var a,n,r=i[1],s=r.level,o=(t.maxSum-t._levelSum[s])*t.valueHeight/2;"horizontal"==t.orientation?(a="y",n=r.pixelHeight):(a="x",n=r.pixelWidth),r.animate({property:a,to:e[s]||o},t.interpolationDuration,t.interpolationEasing),e[s]=(e[s]||o)+n+t.nodePadding,r.invalidateLinks()})},e.prototype.applyInternalDefaults=function(){t.prototype.applyInternalDefaults.call(this),y.hasValue(this.readerTitle)||(this.readerTitle=this.language.translate("Sankey diagram"))},e.prototype.createDataItem=function(){return new Qt},Object.defineProperty(e.prototype,"nodeAlign",{get:function(){return this.getPropertyValue("nodeAlign")},set:function(t){this.setPropertyValue("nodeAlign",t),this.changeSorting()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"orientation",{get:function(){return this.getPropertyValue("orientation")},set:function(t){this.setPropertyValue("orientation",t,!0);var e=this.nodes.template.nameLabel;"vertical"==t?(this.nodes.template.width=void 0,e.label.horizontalCenter="middle",e.locationX=.5):(this.nodes.template.height=void 0,e.label.horizontalCenter="left",e.locationX=1)},enumerable:!0,configurable:!0}),e.prototype.createNode=function(){var t=new Gt;return this._disposers.push(t),t},e.prototype.createLink=function(){var t=new Zt;return this._disposers.push(t),t},Object.defineProperty(e.prototype,"valueHeight",{get:function(){return this._valueHeight},set:function(t){t!=this._valueHeight&&(this._valueHeight=t,this.invalidate())},enumerable:!0,configurable:!0}),e.prototype.disposeData=function(){t.prototype.disposeData.call(this),this._sorted=this.nodes.iterator()},e}(Ut);c.b.registeredClasses.SankeyDiagram=$t;var te=i("Inf5"),ee=function(t){function e(){var e=t.call(this)||this;e.className="ChordNode";var i=e.createChild(pt.a);i.location=.5,i.radius=5,i.text="{name}",i.zIndex=1,i.shouldClone=!1,e.label=i,e.layout="none",e.events.on("positionchanged",e.updateRotation,e,!1),e.isMeasured=!1,e.slice=e.createChild(te.a),e.slice.isMeasured=!1;var a=e.hiddenState;return a.properties.fill=(new W.a).getFor("disabledBackground"),a.properties.opacity=.5,a.properties.visible=!0,e.setStateOnChildren=!1,e.slice.hiddenState.properties.visible=!0,e.adapter.add("tooltipX",function(t,e){return e.slice.ix*(e.slice.radius-(e.slice.radius-e.slice.pixelInnerRadius)/2)}),e.adapter.add("tooltipY",function(t,e){return e.slice.iy*(e.slice.radius-(e.slice.radius-e.slice.pixelInnerRadius)/2)}),e}return n.c(e,t),e.prototype.invalidateLinks=function(){var e=this;t.prototype.invalidateLinks.call(this);var i=this.label,a=this.slice,n=this.chart;if(n&&a){var r=this.total,s=a.arc,o=a.startAngle;this.children.each(function(t){if(t instanceof et.a){var e=t.locationX;y.isNumber(e)||(e=.5);var i=t.locationY;y.isNumber(i)||(i=1);var n=o+s*e,r=i*a.radius;t.x=r*m.cos(n),t.y=r*m.sin(n)}});var l=o+s*i.location,h=o+(1-r/this.adjustedTotal)*s*.5;y.isNaN(h)&&(h=o),i.fixPosition(l,a.radius),this.nextAngle=h,this._outgoingSorted&&g.each(this._outgoingSorted,function(t){var i=t.link;i.parent=e.chart.linksContainer;var r=t.getWorkingValue("value");if(y.isNumber(r)){if(n.nonRibbon){var l=i.percentWidth;y.isNumber(l)||(l=5),l/=100,i.startAngle=o+s/2-s/2*l,i.arc=s*l}else i.arc=r*n.valueAngle,i.startAngle=e.nextAngle,e.nextAngle+=i.arc;t.toNode||(i.endAngle=i.startAngle),i.radius=a.pixelInnerRadius}}),this._incomingSorted&&g.each(this._incomingSorted,function(t){var i=t.link;if(i.radius=a.pixelInnerRadius,n.nonRibbon){var r=i.percentWidth;y.isNumber(r)||(r=5),r/=100,i.endAngle=o+s/2-s/2*r,i.arc=s*r}else{i.endAngle=e.nextAngle;var l=t.getWorkingValue("value");y.isNumber(l)&&(i.arc=l*n.valueAngle,e.nextAngle+=i.arc)}t.fromNode||(i.startAngle=i.endAngle)})}},e.prototype.updateRotation=function(){var t=this.slice,e=this.trueStartAngle+t.arc/2,i=t.radius,a=i*m.cos(e),n=i*m.sin(e),r=m.getAngle({x:a+this.pixelX,y:n+this.pixelY});t.startAngle=this.trueStartAngle+(r-e),this.dx=-this.pixelX,this.dy=-this.pixelY},e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.label.copyFrom(e.label),this.slice.copyFrom(e.slice)},e}(Nt);c.b.registeredClasses.ChordNode=ee;var ie=function(t){function e(){var e=t.call(this)||this;return e.className="QuadraticCurve",e.element=e.paper.add("path"),e.pixelPerfect=!1,e.fill=Object(M.c)(),e.applyTheme(),e}return n.c(e,t),e.prototype.draw=function(){if(y.isNumber(this.x1+this.x2+this.y1+this.y2+this.cpx+this.cpy)){var t={x:this.x1,y:this.y1},e={x:this.x2,y:this.y2},i={x:this.cpx,y:this.cpy},a=w.moveTo(t)+w.quadraticCurveTo(e,i);this.path=a}},Object.defineProperty(e.prototype,"cpx",{get:function(){return this.getPropertyValue("cpx")},set:function(t){this.setPropertyValue("cpx",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cpy",{get:function(){return this.getPropertyValue("cpy")},set:function(t){this.setPropertyValue("cpy",t,!0)},enumerable:!0,configurable:!0}),e.prototype.positionToPoint=function(t){var e={x:this.x1,y:this.y1},i={x:this.cpx,y:this.cpy},a={x:this.x2,y:this.y2},n=m.getPointOnQuadraticCurve(e,a,i,t),r=m.getPointOnQuadraticCurve(e,a,i,t+.001);return{x:n.x,y:n.y,angle:m.getAngle(n,r)}},e}(Q.a),ae=function(t){function e(){var e=t.call(this)||this;return e.className="ChordLink",e.middleLine=e.createChild(ie),e.middleLine.shouldClone=!1,e.middleLine.strokeOpacity=0,e.applyTheme(),e}return n.c(e,t),e.prototype.validate=function(){if(t.prototype.validate.call(this),!this.isTemplate){var e=this.startAngle,i=this.endAngle,a=this.arc,n=this.radius,r=this.dataItem.fromNode,s=this.dataItem.toNode,o=0,l=0;r&&(o=r.pixelX+r.dx,l=r.pixelY+r.dy);var h=0,u=0;if(s&&(h=s.pixelX+s.dx,u=s.pixelY+s.dy),n>0){var c=n*m.cos(e)+o,d=n*m.sin(e)+l,p=n*m.cos(i)+h,y=n*m.sin(i)+u,g={x:0,y:0},f=w.moveTo({x:c,y:d});f+=w.arcTo(e,a,n),f+=w.quadraticCurveTo({x:p,y:y},g),f+=w.arcTo(i,a,n),f+=w.quadraticCurveTo({x:c,y:d},g),this.link.path=a>0?f:"",this.maskBullets&&(this.bulletsMask.path=f,this.bulletsContainer.mask=this.bulletsMask);var x=e+a/2,v=i+a/2,b=this.middleLine;b.x1=n*m.cos(x)+o,b.y1=n*m.sin(x)+l,b.x2=n*m.cos(v)+h,b.y2=n*m.sin(v)+u,b.cpx=0,b.cpy=0,b.stroke=this.fill,this.positionBullets()}}},Object.defineProperty(e.prototype,"radius",{get:function(){return this.getPropertyValue("radius")},set:function(t){this.setPropertyValue("radius",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"arc",{get:function(){return this.getPropertyValue("arc")},set:function(t){this.setPropertyValue("arc",t,!0)},enumerable:!0,configurable:!0}),e}(Bt);c.b.registeredClasses.ChordLink=ae;var ne=function(t){function e(){var e=t.call(this)||this;return e.className="ChordDiagramDataItem",e.applyTheme(),e}return n.c(e,t),e}(zt),re=function(t){function e(){var e=t.call(this)||this;e.valueAngle=0,e.className="ChordDiagram",e.startAngle=-90,e.endAngle=270,e.radius=Object(Y.c)(80),e.innerRadius=-15,e.nodePadding=5;var i=e.chartContainer.createChild(s.a);return i.align="center",i.valign="middle",i.shouldClone=!1,i.layout="absolute",e.chordContainer=i,e.nodesContainer.parent=i,e.linksContainer.parent=i,e.chartContainer.events.on("maxsizechanged",e.invalidate,e,!1),e.applyTheme(),e}return n.c(e,t),e.prototype.validate=function(){var e=this,i=this.chartContainer,a=this.endAngle,n=this.startAngle+this.nodePadding/2,r=m.getArcRect(this.startAngle,this.endAngle,1);r=m.getCommonRectangle([r,{x:0,y:0,width:0,height:0}]);var s=Math.min(i.innerWidth/r.width,i.innerHeight/r.height);y.isNumber(s)||(s=0);var o=F.relativeRadiusToValue(this.radius,s),l=F.relativeRadiusToValue(this.innerRadius,o,!0),h=this.dataItem.values.value.sum,u=0,c=0;g.each(this._sorted,function(t){var i=t[1];e.getNodeValue(i),u++;var a=i.total;i.total/h<e.minNodeSize&&(a=h*e.minNodeSize),c+=a}),this.valueAngle=(a-this.startAngle-this.nodePadding*u)/c,g.each(this._sorted,function(t){var i=t[1],r=i.slice;r.radius=o,r.innerRadius=l;var s,c=i.total;i.total/h<e.minNodeSize&&(c=h*e.minNodeSize),i.adjustedTotal=c,s=e.nonRibbon?(a-e.startAngle)/u-e.nodePadding:e.valueAngle*c,r.arc=s,r.startAngle=n,i.trueStartAngle=n,i.parent=e.nodesContainer,i.validate(),n+=s+e.nodePadding}),this.chordContainer.definedBBox={x:o*r.x,y:o*r.y,width:o*r.width,height:o*r.height},this.chordContainer.invalidateLayout(),t.prototype.validate.call(this)},e.prototype.applyInternalDefaults=function(){t.prototype.applyInternalDefaults.call(this),y.hasValue(this.readerTitle)||(this.readerTitle=this.language.translate("Chord diagram"))},e.prototype.createDataItem=function(){return new ne},Object.defineProperty(e.prototype,"startAngle",{get:function(){return this.getPropertyValue("startAngle")},set:function(t){this.setPropertyValue("startAngle",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endAngle",{get:function(){return this.getPropertyValue("endAngle")},set:function(t){this.setPropertyValue("endAngle",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"radius",{get:function(){return this.getPropertyValue("radius")},set:function(t){this.setPercentProperty("radius",t,!0,!1,10,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"innerRadius",{get:function(){return this.getPropertyValue("innerRadius")},set:function(t){this.setPercentProperty("innerRadius",t,!0,!1,10,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"nonRibbon",{get:function(){return this.getPropertyValue("nonRibbon")},set:function(t){this.setPropertyValue("nonRibbon",t,!0),this.links.template.middleLine.strokeOpacity=1,this.links.template.link.fillOpacity=0},enumerable:!0,configurable:!0}),e.prototype.createNode=function(){var t=new ee;return this._disposers.push(t),t},e.prototype.createLink=function(){var t=new ae;return this._disposers.push(t),t},e}(Ut);c.b.registeredClasses.ChordDiagram=re;var se=function(t){function e(){var e=t.call(this)||this;return e.className="Column",e.width=Object(Y.c)(80),e.height=Object(Y.c)(80),e.applyOnClones=!0,e.strokeOpacity=1,e.layout="none",e.createAssets(),e.events.on("childadded",e.handleKidAdded,e,!1),e}return n.c(e,t),e.prototype.handleKidAdded=function(){"none"==this.layout&&(this.layout="absolute")},e.prototype.createAssets=function(){this.column=this.createChild(Yt.a),this.column.shouldClone=!1,this.column.cornerRadius(0,0,0,0),this._disposers.push(this.column)},e.prototype.validate=function(){t.prototype.validate.call(this);var e=this.column;e&&(e.width=m.min(this.pixelWidth,this.maxWidth),e.height=m.min(this.pixelHeight,this.maxHeight),e.invalid&&e.validate())},e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.column&&this.column.copyFrom(e.column)},Object.defineProperty(e.prototype,"bbox",{get:function(){return this.definedBBox?this.definedBBox:this.column?{x:0,y:0,width:this.column.measuredWidth,height:this.column.measuredHeight}:{x:0,y:0,width:m.min(this.pixelWidth,this.maxWidth),height:m.min(this.pixelHeight,this.maxHeight)}},enumerable:!0,configurable:!0}),e}(s.a);c.b.registeredClasses.Column=se;var oe=function(t){function e(){var e=t.call(this)||this;return e.className="ColumnSeriesDataItem",e.locations.dateX=.5,e.locations.dateY=.5,e.locations.categoryX=.5,e.locations.categoryY=.5,e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"column",{get:function(){return this._column},set:function(t){this.setColumn(t)},enumerable:!0,configurable:!0}),e.prototype.setColumn=function(t){var e=this;if(this._column&&t!=this._column&&O.remove(this.sprites,this._column),this._column=t,t){var i=t.dataItem;i&&i!=this&&(i.column=void 0),this.addSprite(t),this._disposers.push(new k.b(function(){e.component&&e.component.columns.removeValue(t)}))}},Object.defineProperty(e.prototype,"rangesColumns",{get:function(){return this._rangesColumns||(this._rangesColumns=new h.a),this._rangesColumns},enumerable:!0,configurable:!0}),e}(R),le=function(t){function e(){var e=t.call(this)||this;e._startLocation=0,e._endLocation=1,e.className="ColumnSeries",e.width=Object(Y.c)(100),e.height=Object(Y.c)(100),e.strokeOpacity=0,e.fillOpacity=1,e.clustered=!0;var i=e.mainContainer.createChild(s.a);return i.shouldClone=!1,i.isMeasured=!1,i.layout="none",e._columnsContainer=i,e.columns.template.pixelPerfect=!1,e.tooltipColorSource=e.columns.template,e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"columnsContainer",{get:function(){return this._columnsContainer},enumerable:!0,configurable:!0}),e.prototype.applyInternalDefaults=function(){t.prototype.applyInternalDefaults.call(this),y.hasValue(this.readerTitle)||(this.readerTitle=this.language.translate("Column Series"))},e.prototype.createDataItem=function(){return new oe},e.prototype.validate=function(){var i=this,a=this.chart.series,n=0,r=0;g.each(a.iterator(),function(t){t instanceof e&&i.baseAxis==t.baseAxis&&((!t.stacked&&t.clustered||0===n)&&n++,t==i&&(r=n-1))});var s=this.baseAxis.renderer,o=s.cellStartLocation,l=s.cellEndLocation;this._startLocation=o+r/n*(l-o),this._endLocation=o+(r+1)/n*(l-o),t.prototype.validate.call(this);for(var h=0;h<this.startIndex;h++){var u=this.dataItems.getIndex(h);this.disableUnusedColumns(u)}for(h=this.dataItems.length-1;h>this.endIndex;h--){u=this.dataItems.getIndex(h);this.disableUnusedColumns(u)}},e.prototype.validateDataElement=function(e){this.validateDataElementReal(e),t.prototype.validateDataElement.call(this,e)},e.prototype.getStartLocation=function(t){var e=this._startLocation;return this.baseAxis==this.xAxis?e+=t.locations[this.xOpenField]-.5:e+=t.locations[this.yOpenField]-.5,e},e.prototype.handleDataItemWorkingValueChange=function(e,i){this.simplifiedProcessing?this.validateDataElement(e):t.prototype.handleDataItemWorkingValueChange.call(this,e,i)},e.prototype.getEndLocation=function(t){var e=this._endLocation;return this.baseAxis==this.xAxis?e+=t.locations[this.xField]-.5:e+=t.locations[this.yField]-.5,e},e.prototype.validateDataElementReal=function(t){var e,i,a,n,r=this,s=this.getStartLocation(t),o=this.getEndLocation(t),h=this.xField,u=this.xOpenField,c=this.yField,d=this.yOpenField,p=this.columns.template,x=p.percentWidth,v=p.percentHeight,b=p.pixelWidth,P=p.pixelHeight,A=p.maxWidth,C=p.maxHeight,I=p.pixelPaddingLeft,_=p.pixelPaddingRight,D=p.pixelPaddingTop,V=p.pixelPaddingBottom,k=!1;if(this.xAxis instanceof T&&this.yAxis instanceof T){if(!t.hasValue(this._xValueFields)||!t.hasValue(this._yValueFields))return;if(s=0,o=1,!y.isNaN(x))s+=R=m.round((o-s)*(1-x/100)/2,5),o-=R;if(e=this.xAxis.getX(t,u,s),i=this.xAxis.getX(t,h,o),y.isNaN(x))e+=R=(i-e-b)/2,i-=R;if(!y.isNaN(A))e+=R=(i-e-A)/2,i-=R;if(s=0,o=1,!y.isNaN(v))s+=R=m.round((1-v/100)/2,5),o-=R;if(a=this.yAxis.getY(t,d,s),n=this.yAxis.getY(t,c,o),y.isNaN(v))n+=R=(n-a-P)/2,a-=R;if(!y.isNaN(C))n+=R=(n-a-C)/2,a-=R;i=this.fixHorizontalCoordinate(i),e=this.fixHorizontalCoordinate(e),a=this.fixVerticalCoordinate(a),n=this.fixVerticalCoordinate(n)}else if(this.baseAxis==this.xAxis){if(!t.hasValue(this._yValueFields))return;if(!y.isNaN(x))s+=R=m.round((o-s)*(1-x/100)/2,5),o-=R;if(e=this.xAxis.getX(t,u,s),i=this.xAxis.getX(t,h,o),y.isNaN(x))e+=R=(i-e-b)/2,i-=R;if(!y.isNaN(A))e+=R=(i-e-A)/2,i-=R;var F=t.locations[d],O=t.locations[c];this.yAxis instanceof l.a&&(F=0,O=0),n=this.yAxis.getY(t,d,F),a=this.yAxis.getY(t,c,O);var w=Math.ceil(this.yAxis.axisLength);(a<0&&n<0||a>w&&n>w)&&(k=!0),a=this.fixVerticalCoordinate(a),n=this.fixVerticalCoordinate(n),Math.abs(i-e)-I-_==0&&(k=!0)}else{if(!t.hasValue(this._xValueFields))return;var R;if(!y.isNaN(v))s+=R=m.round((o-s)*(1-v/100)/2,5),o-=R;if(a=this.yAxis.getY(t,d,s),n=this.yAxis.getY(t,c,o),y.isNaN(v))n-=R=(n-a-P)/2,a+=R;if(!y.isNaN(C))n-=R=(n-a-C)/2,a+=R;var L=t.locations[h],X=t.locations[u];this.xAxis instanceof l.a&&(L=0,X=0),i=this.xAxis.getX(t,h,L),e=this.xAxis.getX(t,u,X);w=Math.ceil(this.xAxis.axisLength);(i<0&&e<0||i>w&&e>w)&&(k=!0),i=this.fixHorizontalCoordinate(i),e=this.fixHorizontalCoordinate(e),Math.abs(a-n)-D-V==0&&(k=!0)}var Y,j=Math.abs(i-e),N=Math.abs(n-a),M=Math.min(e,i),W=Math.min(a,n);k?this.disableUnusedColumns(t):(t.column?Y=t.column:(Y=this.columns.create(),f.copyProperties(this,Y,S.b),f.copyProperties(this.columns.template,Y,S.b),t.addSprite(Y),t.column=Y,this.itemsFocusable()?(Y.role="menuitem",Y.focusable=!0):(Y.role="listitem",Y.focusable=!1),Y.focusable&&(Y.events.once("focus",function(e){Y.readerTitle=r.populateString(r.itemReaderText,t)},void 0,!1),Y.events.once("blur",function(t){Y.readerTitle=""},void 0,!1)),Y.hoverable&&(Y.events.once("over",function(e){Y.readerTitle=r.populateString(r.itemReaderText,t)},void 0,!1),Y.events.once("out",function(t){Y.readerTitle=""},void 0,!1))),Y.width=j,Y.height=N,Y.x=M,Y.y=W,Y.realX=e,Y.realY=a,Y.realWidth=i-e,Y.realHeight=n-a,Y.parent=this.columnsContainer,Y.virtualParent=this,this.setColumnStates(Y),Y.invalid&&Y.validate(),Y.__disabled=!1,g.each(this.axisRanges.iterator(),function(e){var i=t.rangesColumns.getKey(e.uid);i||(i=r.columns.create(),f.copyProperties(e.contents,i,S.b),t.addSprite(i),t.rangesColumns.setKey(e.uid,i)),i.parent=e.contents,i.width=j,i.height=N,i.x=M,i.y=W,r.setColumnStates(i),i.invalid&&i.validate(),i.__disabled=!1}));t.itemWidth=j,t.itemHeight=N},e.prototype.disableUnusedColumns=function(t){t&&(t.column&&(t.column.width=0,t.column.height=0,t.column.__disabled=!0),g.each(this.axisRanges.iterator(),function(e){var i=t.rangesColumns.getKey(e.uid);i&&(i.width=0,i.height=0,i.__disabled=!0)}))},e.prototype.setColumnStates=function(t){var e=t.dataItem;if(this.xAxis instanceof l.a||this.yAxis instanceof l.a){var i,a=void 0,n=void 0;this.baseAxis==this.yAxis?this.xOpenField&&this.xField&&(i=e.getValue(this.xOpenField),a=e.getValue(this.xField),n=e.getValue(this.xAxis.axisFieldName+"X","previousChange")):this.yOpenField&&this.yField&&(i=e.getValue(this.yOpenField),a=e.getValue(this.yField),n=e.getValue(this.yAxis.axisFieldName+"Y","previousChange")),a<i?(e.droppedFromOpen=!0,t.defaultState.copyFrom(this._dropFromOpenState),t.setState(this._dropFromOpenState,0)):(e.droppedFromOpen=!1,t.defaultState.copyFrom(this._riseFromOpenState),t.setState(this._riseFromOpenState,0)),n<0?(e.droppedFromPrevious=!0,t.defaultState.copyFrom(this._dropFromPreviousState),t.setState(this._dropFromPreviousState,0)):(e.droppedFromPrevious=!1,t.defaultState.copyFrom(this._riseFromPreviousState),t.setState(this._riseFromPreviousState,0))}},Object.defineProperty(e.prototype,"columns",{get:function(){return this._columns||(this._columns=new o.e(this.createColumnTemplate()),this._disposers.push(new o.c(this._columns)),this._disposers.push(this._columns.template)),this._columns},enumerable:!0,configurable:!0}),e.prototype.createColumnTemplate=function(){return new se},Object.defineProperty(e.prototype,"clustered",{get:function(){return this.getPropertyValue("clustered")},set:function(t){this.setPropertyValue("clustered",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dropFromOpenState",{get:function(){return this._dropFromOpenState||(this._dropFromOpenState=this.states.create("dropFromOpenState")),this._dropFromOpenState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dropFromPreviousState",{get:function(){return this._dropFromPreviousState||(this._dropFromPreviousState=this.states.create("dropFromPreviousState")),this._dropFromPreviousState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"riseFromOpenState",{get:function(){return this._riseFromOpenState||(this._riseFromOpenState=this.states.create("riseFromOpenState")),this._riseFromOpenState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"riseFromPreviousState",{get:function(){return this._riseFromPreviousState||(this._riseFromPreviousState=this.states.create("riseFromPreviousState")),this._riseFromPreviousState},enumerable:!0,configurable:!0}),e.prototype.updateLegendValue=function(e){var i=this;if(t.prototype.updateLegendValue.call(this,e),this.legendDataItem){var a,n,r=this.legendDataItem.marker;e&&(a=e.droppedFromOpen?this._dropFromOpenState:this._riseFromOpenState,n=e.droppedFromPrevious?this._dropFromPreviousState:this._riseFromPreviousState),g.each(r.children.iterator(),function(t){e?(t.setState(n),t.setState(a)):(t.setState(i._riseFromPreviousState),t.setState(i._riseFromOpenState))})}},e.prototype.createLegendMarker=function(t){var e=t.pixelWidth,i=t.pixelHeight;t.removeChildren();var a=t.createChild(Yt.a);a.shouldClone=!1,f.copyProperties(this,a,S.b),a.copyFrom(this.columns.template),a.padding(0,0,0,0),a.width=e,a.height=i;var n=t.dataItem;n.color=this.fill,n.colorOrig=this.fill},e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.columns.template.copyFrom(e.columns.template)},e.prototype.getBulletLocationX=function(e,i){return this.baseAxis==this.xAxis?(this._startLocation+this._endLocation)/2:t.prototype.getBulletLocationX.call(this,e,i)},e.prototype.getBulletLocationY=function(e,i){return this.baseAxis==this.yAxis?(this._startLocation+this._endLocation)/2:t.prototype.getBulletLocationY.call(this,e,i)},e.prototype.fixVerticalCoordinate=function(t){var e=this.columns.template.pixelPaddingBottom,i=-this.columns.template.pixelPaddingTop,a=this.yAxis.axisLength+e;return m.fitToRange(t,i,a)},e.prototype.fixHorizontalCoordinate=function(t){var e=this.columns.template.pixelPaddingLeft,i=this.columns.template.pixelPaddingRight,a=-e,n=this.xAxis.axisLength+i;return m.fitToRange(t,a,n)},e.prototype.disposeData=function(){t.prototype.disposeData.call(this),this.columns.clear()},e}(L);c.b.registeredClasses.ColumnSeries=le,c.b.registeredClasses.ColumnSeriesDataItem=oe;var he=function(t){function e(){var e=t.call(this)||this;return e.className="TreeMapSeriesDataItem",e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"parentName",{get:function(){var t=this.treeMapDataItem;if(t&&t.parent)return t.parent.name},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){var t=this.treeMapDataItem;if(t)return t.value},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"treeMapDataItem",{get:function(){return this._dataContext},enumerable:!0,configurable:!0}),e}(oe),ue=function(t){function e(){var e=t.call(this)||this;e.className="TreeMapSeries",e.applyTheme(),e.fillOpacity=1,e.strokeOpacity=1,e.minBulletDistance=0,e.columns.template.tooltipText="{parentName} {name}: {value}",e.columns.template.configField="config";var i=new W.a;return e.stroke=i.getFor("background"),e.dataFields.openValueX="x0",e.dataFields.valueX="x1",e.dataFields.openValueY="y0",e.dataFields.valueY="y1",e.sequencedInterpolation=!1,e.showOnInit=!1,e.columns.template.pixelPerfect=!1,e}return n.c(e,t),e.prototype.processDataItem=function(e,i){i.seriesDataItem=e,t.prototype.processDataItem.call(this,e,i)},e.prototype.createDataItem=function(){return new he},e.prototype.show=function(e){var i=this.defaultState.transitionDuration;return y.isNumber(e)&&(i=e),this.dataItems.each(function(t){t.treeMapDataItem.setWorkingValue("value",t.treeMapDataItem.values.value.value)}),t.prototype.showReal.call(this,i)},e.prototype.hide=function(e){var i=this.defaultState.transitionDuration;y.isNumber(e)&&(i=e);var a=t.prototype.hideReal.call(this,i);return this.dataItems.each(function(t){t.treeMapDataItem.setWorkingValue("value",0)}),a},e.prototype.processValues=function(){},e.prototype.dataChangeUpdate=function(){},e.prototype.processConfig=function(e){e&&(y.hasValue(e.dataFields)&&y.isObject(e.dataFields)||(e.dataFields={})),t.prototype.processConfig.call(this,e)},e.prototype.createLegendMarker=function(t){var e=t.pixelWidth,i=t.pixelHeight;t.removeChildren();var a=t.createChild(Yt.a);a.shouldClone=!1,f.copyProperties(this,a,S.b),a.padding(0,0,0,0),a.width=e,a.height=i;var n=t.dataItem;n.color=a.fill,n.colorOrig=a.fill},e}(le);c.b.registeredClasses.TreeMapSeries=ue,c.b.registeredClasses.TreeMapSeriesDataItem=he;var ce=function(t){function e(){var e=t.call(this)||this;return e.rows=[],e.className="TreeMapDataItem",e.values.value={},e.values.x0={},e.values.y0={},e.values.x1={},e.values.y1={},e.hasChildren.children=!0,e.applyTheme(),e}return n.c(e,t),e.prototype.getDuration=function(){return 0},Object.defineProperty(e.prototype,"value",{get:function(){var t=0;return this.children&&0!=this.children.length?g.each(this.children.iterator(),function(e){var i=e.value;y.isNumber(i)&&(t+=i)}):t=this.values.value.workingValue,t},set:function(t){this.setValue("value",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"percent",{get:function(){return this.parent?this.value/this.parent.value*100:100},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"x0",{get:function(){return this.values.x0.value},set:function(t){this.setValue("x0",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"x1",{get:function(){return this.values.x1.value},set:function(t){this.setValue("x1",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"y0",{get:function(){return this.values.y0.value},set:function(t){this.setValue("y0",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"y1",{get:function(){return this.values.y1.value},set:function(t){this.setValue("y1",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"name",{get:function(){return this.properties.name},set:function(t){this.setProperty("name",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"children",{get:function(){return this.properties.children},set:function(t){this.setProperty("children",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"level",{get:function(){return this.parent?this.parent.level+1:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"color",{get:function(){var t=this.properties.color;return void 0==t&&this.parent&&(t=this.parent.color),void 0==t&&this.component&&(t=this.component.colors.getIndex(this.component.colors.step*this.index)),t},set:function(t){this.setProperty("color",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"series",{get:function(){return this._series},set:function(t){t!=this._series&&(this._series&&(this.component.series.removeValue(this._series),this._series.dispose()),this._series=t,this._disposers.push(t))},enumerable:!0,configurable:!0}),e}(G),de=function(t){function e(){var e=t.call(this)||this;e.layoutAlgorithm=e.squarify,e.zoomable=!0,e.className="TreeMap",e.maxLevels=2,e.currentLevel=0,e.colors=new Ht.a,e.sorting="descending";var i=e.xAxes.push(new l.a);i.title.disabled=!0,i.strictMinMax=!0;var a=i.renderer;a.inside=!0,a.labels.template.disabled=!0,a.ticks.template.disabled=!0,a.grid.template.disabled=!0,a.axisFills.template.disabled=!0,a.minGridDistance=100,a.line.disabled=!0,a.baseGrid.disabled=!0;var n=e.yAxes.push(new l.a);n.title.disabled=!0,n.strictMinMax=!0;var r=n.renderer;r.inside=!0,r.labels.template.disabled=!0,r.ticks.template.disabled=!0,r.grid.template.disabled=!0,r.axisFills.template.disabled=!0,r.minGridDistance=100,r.line.disabled=!0,r.baseGrid.disabled=!0,r.inversed=!0,e.xAxis=i,e.yAxis=n;var s=new ue;return e.seriesTemplates=new h.c(s),e._disposers.push(new h.b(e.seriesTemplates)),e._disposers.push(s),e.zoomOutButton.events.on("hit",function(){e.zoomToChartDataItem(e._homeDataItem)},void 0,!1),e.seriesTemplates.events.on("insertKey",function(t){t.newValue.isTemplate=!0},void 0,!1),e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"navigationBar",{get:function(){return this._navigationBar},set:function(t){var e=this;this._navigationBar!=t&&(this._navigationBar=t,t.parent=this,t.toBack(),t.links.template.events.on("hit",function(t){var i=t.target.dataItem.dataContext;i.isDisposed()||(e.zoomToChartDataItem(i),e.createTreeSeries(i))},void 0,!0),this._disposers.push(t))},enumerable:!0,configurable:!0}),e.prototype.validateData=function(){this.series.clear(),this._tempSeries=[],t.prototype.validateData.call(this),this._homeDataItem&&this._homeDataItem.dispose();var e=this.dataItems.template.clone();this._homeDataItem=e,g.each(this.dataItems.iterator(),function(t){t.parent=e}),e.children=this.dataItems,e.x0=0,e.y0=0,e.name=this._homeText;var i=10*Math.round(1e3*this.pixelHeight/this.pixelWidth/10)||1e3;e.x1=1e3,e.y1=i,this.xAxis.min=0,this.xAxis.max=1e3,this.xAxis.getMinMax(),this.yAxis.min=0,this.yAxis.max=i,this.yAxis.getMinMax(),this.layoutItems(e),this.createTreeSeries(e)},e.prototype.layoutItems=function(t,e){if(t){var i=t.children;e||(e=this.sorting),"ascending"==e&&i.values.sort(function(t,e){return t.value-e.value}),"descending"==e&&i.values.sort(function(t,e){return e.value-t.value}),this._updateDataItemIndexes(0),this.layoutAlgorithm(t);for(var a=0,n=i.length;a<n;a++){var r=i.getIndex(a);r.children&&this.layoutItems(r)}}},e.prototype.createTreeSeries=function(t){var e=this;this._tempSeries=[];for(var i=[t],a=t.parent;void 0!=a;)this.initSeries(a),i.push(a),a=a.parent;i.reverse(),this.navigationBar&&(this.navigationBar.data=i),this.createTreeSeriesReal(t),O.each(this._tempSeries,function(t){-1==e.series.indexOf(t)&&e.series.push(t),t.zIndex=t.level})},e.prototype.createTreeSeriesReal=function(t){if(t.children&&t.level<this.currentLevel+this.maxLevels){this.initSeries(t);for(var e=0;e<t.children.length;e++){var i=t.children.getIndex(e);i.children&&this.createTreeSeriesReal(i)}}},e.prototype.setData=function(e){this.currentLevel=0,this.currentlyZoomed=void 0,this.xAxis.start=0,this.xAxis.end=1,this.yAxis.start=0,this.yAxis.end=1,t.prototype.setData.call(this,e)},e.prototype.seriesAppeared=function(){return!0},e.prototype.initSeries=function(t){var e=this;if(!t.series){var i=void 0,a=this.seriesTemplates.getKey(t.level.toString());(i=a?a.clone():this.series.create()).dataItem.dataContext=t,i.name=t.name,i.parentDataItem=t,t.series=i;var n=t.level;i.level=n;var r=t.dataContext;r&&(i.config=r.config),this.dataUsers.removeValue(i),i.data=t.children.values,i.fill=t.color,i.columnsContainer.hide(0),i.bulletsContainer.hide(0),i.columns.template.adapter.add("fill",function(t,e){var i=e.dataItem;if(i){var a=i.treeMapDataItem;if(a)return e.fill=a.color,e.adapter.remove("fill"),a.color}}),this.zoomable&&(t.level>this.currentLevel||t.children&&t.children.length>0)&&(i.columns.template.cursorOverStyle=j.a.pointer,this.zoomable&&i.columns.template.events.on("hit",function(i){var a=i.target.dataItem;t.level>e.currentLevel?e.zoomToChartDataItem(a.treeMapDataItem.parent):e.zoomToSeriesDataItem(a)},this,void 0))}this._tempSeries.push(t.series)},e.prototype.toggleBullets=function(t){var e=this;g.each(this.series.iterator(),function(i){-1==e._tempSeries.indexOf(i)?(i.columnsContainer.hide(),i.bulletsContainer.hide(t)):(i.columnsContainer.show(),i.bulletsContainer.show(t),i.level<e.currentLevel&&i.bulletsContainer.hide(t))})},e.prototype.zoomToSeriesDataItem=function(t){this.zoomToChartDataItem(t.treeMapDataItem)},e.prototype.zoomToChartDataItem=function(t){var e=this;if(t&&t.children){this.xAxis.zoomToValues(t.x0,t.x1),this.yAxis.zoomToValues(t.y0,t.y1),this.currentLevel=t.level,this.currentlyZoomed=t,this.createTreeSeries(t);var i=this.xAxis.rangeChangeAnimation||this.yAxis.rangeChangeAnimation;!i||i.isDisposed()||i.isFinished()?this.toggleBullets():(this._dataDisposers.push(i),i.events.once("animationended",function(){e.toggleBullets()}))}},e.prototype.applyInternalDefaults=function(){t.prototype.applyInternalDefaults.call(this),y.hasValue(this.readerTitle)||(this.readerTitle=this.language.translate("TreeMap chart"))},e.prototype.createDataItem=function(){return new ce},Object.defineProperty(e.prototype,"maxLevels",{get:function(){return this.getPropertyValue("maxLevels")},set:function(t){this.setPropertyValue("maxLevels",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentLevel",{get:function(){return this.getPropertyValue("currentLevel")},set:function(t){this.setPropertyValue("currentLevel",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sorting",{get:function(){return this.getPropertyValue("sorting")},set:function(t){this.setPropertyValue("sorting",t,!0)},enumerable:!0,configurable:!0}),e.prototype.createSeries=function(){return new ue},Object.defineProperty(e.prototype,"homeText",{get:function(){return this._homeText},set:function(t){this._homeText=t,this._homeDataItem&&(this._homeDataItem.name=this._homeText)},enumerable:!0,configurable:!0}),e.prototype.processConfig=function(e){if(e){if(y.hasValue(e.layoutAlgorithm)&&y.isString(e.layoutAlgorithm))switch(e.layoutAlgorithm){case"squarify":e.layoutAlgorithm=this.squarify;break;case"binaryTree":e.layoutAlgorithm=this.binaryTree;break;case"slice":e.layoutAlgorithm=this.slice;break;case"dice":e.layoutAlgorithm=this.dice;break;case"sliceDice":e.layoutAlgorithm=this.sliceDice;break;default:delete e.layoutAlgorithm}y.hasValue(e.navigationBar)&&!y.hasValue(e.navigationBar.type)&&(e.navigationBar.type="NavigationBar"),t.prototype.processConfig.call(this,e)}},e.prototype.validateLayout=function(){t.prototype.validateLayout.call(this),this.layoutItems(this.currentlyZoomed)},e.prototype.validateDataItems=function(){t.prototype.validateDataItems.call(this),this.layoutItems(this._homeDataItem),g.each(this.series.iterator(),function(t){t.validateRawData()}),this.zoomToChartDataItem(this._homeDataItem)},e.prototype.binaryTree=function(t){var e,i,a=t.children,n=a.length,r=new Array(n+1);for(r[0]=i=e=0;e<n;++e)r[e+1]=i+=a.getIndex(e).value;!function t(e,i,n,s,o,l,h){if(e>=i-1){var u=a.getIndex(e);return u.x0=s,u.y0=o,u.x1=l,void(u.y1=h)}var c=r[e],d=n/2+c,p=e+1,y=i-1;for(;p<y;){var g=p+y>>>1;r[g]<d?p=g+1:y=g}d-r[p-1]<r[p]-d&&e+1<p&&--p;var m=r[p]-c,f=n-m;if(l-s>h-o){var x=(s*f+l*m)/n;t(e,p,m,s,o,x,h),t(p,i,f,x,o,l,h)}else{var v=(o*f+h*m)/n;t(e,p,m,s,o,l,v),t(p,i,f,s,v,l,h)}}(0,n,t.value,t.x0,t.y0,t.x1,t.y1)},e.prototype.slice=function(t){for(var e,i=t.x0,a=t.x1,n=t.y0,r=t.y1,s=t.children,o=-1,l=s.length,h=t.value&&(r-n)/t.value;++o<l;)(e=s.getIndex(o)).x0=i,e.x1=a,e.y0=n,n+=e.value*h,e.y1=n},e.prototype.dice=function(t){for(var e,i=t.x0,a=t.x1,n=t.y0,r=t.y1,s=t.children,o=-1,l=s.length,h=t.value&&(a-i)/t.value;++o<l;)(e=s.getIndex(o)).y0=n,e.y1=r,e.x0=i,i+=e.value*h,e.x1=i},e.prototype.sliceDice=function(t){1&t.level?this.slice(t):this.dice(t)},e.prototype.squarify=function(t){for(var e,i,a,n,r,s,o,l,h,u,c=(1+Math.sqrt(5))/2,d=t.x0,p=t.x1,y=t.y0,g=t.y1,m=t.children,f=0,x=0,v=m.length,b=t.value;f<v;){i=p-d,a=g-y;do{n=m.getIndex(x++).value}while(!n&&x<v);for(r=s=n,u=n*n*(h=Math.max(a/i,i/a)/(b*c)),l=Math.max(s/u,u/r);x<v;++x){if(n+=e=m.getIndex(x).value,e<r&&(r=e),e>s&&(s=e),u=n*n*h,(o=Math.max(s/u,u/r))>l){n-=e;break}l=o}var P=this.dataItems.template.clone();P.value=n,P.dice=i<a,P.children=m.slice(f,x),P.x0=d,P.y0=y,P.x1=p,P.y1=g,P.dice?(P.y1=b?y+=a*n/b:g,this.dice(P)):(P.x1=b?d+=i*n/b:p,this.slice(P)),b-=n,f=x}},e.prototype.handleDataItemValueChange=function(t,e){"value"==e&&this.invalidateDataItems()},e.prototype.handleDataItemWorkingValueChange=function(t,e){"value"==e&&this.invalidateDataItems()},e.prototype.feedLegend=function(){var t=this.legend;if(t){var e=[];g.each(this.series.iterator(),function(t){1==t.level&&(t.hiddenInLegend||e.push(t))}),t.dataFields.name="name",t.data=e}},e.prototype.disposeData=function(){t.prototype.disposeData.call(this),this._homeDataItem=void 0,this.series.clear(),this.navigationBar&&this.navigationBar.disposeData(),this.xAxis.disposeData(),this.yAxis.disposeData()},e}(q);c.b.registeredClasses.TreeMap=de;var pe=function(t){function e(){var e=t.call(this)||this;return e._chart=new k.d,e.className="AxisRendererX3D",e._disposers.push(e._chart),e.applyTheme(),e}return n.c(e,t),e.prototype.updateGridElement=function(t,e,i){e+=(i-e)*t.location;var a=this.positionToPoint(e);if(t.element){var n=this.chart.dx3D||0,r=this.chart.dy3D||0,s=this.getHeight();t.path=w.moveTo({x:n,y:r})+w.lineTo({x:n,y:s+r})+w.lineTo({x:0,y:s})}this.positionItem(t,a),this.toggleVisibility(t,e,0,1)},e.prototype.updateBaseGridElement=function(){t.prototype.updateBaseGridElement.call(this);var e=this.getHeight(),i=this.chart.dx3D||0,a=this.chart.dy3D||0;this.baseGrid.path=w.moveTo({x:i,y:a})+w.lineTo({x:i,y:e+a})+w.lineTo({x:0,y:e})},Object.defineProperty(e.prototype,"chart",{get:function(){return this._chart.get()},set:function(t){t&&this._chart.set(t,t.events.on("propertychanged",this.handle3DChanged,this,!1))},enumerable:!0,configurable:!0}),e.prototype.handle3DChanged=function(t){"depth"!=t.property&&"angle"!=t.property||this.invalidate()},e}(b.a);c.b.registeredClasses.AxisRendererX3D=pe;var ye=function(t){function e(){var e=t.call(this)||this;return e._chart=new k.d,e.className="AxisRendererY3D",e._disposers.push(e._chart),e.applyTheme(),e}return n.c(e,t),e.prototype.updateGridElement=function(t,e,i){e+=(i-e)*t.location;var a=this.positionToPoint(e);if(t.element){var n=this.chart.dx3D||0,r=this.chart.dy3D||0,s=this.getWidth();t.path=w.moveTo({x:0,y:0})+w.lineTo({x:n,y:r})+w.lineTo({x:s+n,y:r})}this.positionItem(t,a),this.toggleVisibility(t,e,0,1)},e.prototype.updateBaseGridElement=function(){t.prototype.updateBaseGridElement.call(this);var e=this.chart.dx3D||0,i=this.chart.dy3D||0,a=this.getWidth();this.baseGrid.path=w.moveTo({x:0,y:0})+w.lineTo({x:a,y:0})+w.lineTo({x:a+e,y:i})},Object.defineProperty(e.prototype,"chart",{get:function(){return this._chart.get()},set:function(t){t&&this._chart.set(t,t.events.on("propertychanged",this.handle3DChanged,this,!1))},enumerable:!0,configurable:!0}),e.prototype.handle3DChanged=function(t){"depth"!=t.property&&"angle"!=t.property||this.invalidate()},e}(P.a),ge=i("Mr4Y"),me=function(t){function e(){var e=t.call(this)||this;return e.className="Column3D",e}return n.c(e,t),e.prototype.createAssets=function(){this.column3D=this.createChild(ge.a),this.column3D.shouldClone=!1,this.column3D.strokeOpacity=0,this.column=this.column3D},e.prototype.validate=function(){t.prototype.validate.call(this),this.column3D&&(this.column3D.width=this.pixelWidth,this.column3D.height=this.pixelHeight,this.column3D.invalid&&this.column3D.validate())},e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.column3D&&this.column3D.copyFrom(e.column3D)},e.prototype.setFill=function(e){t.prototype.setFill.call(this,e),this.column.fill=e},e}(se);c.b.registeredClasses.Column3D=me;var fe=function(t){function e(){var e=t.call(this)||this;return e.className="ColumnSeries3DDataItem",e.applyTheme(),e}return n.c(e,t),e}(oe),xe=function(t){function e(){var e=t.call(this)||this;return e.className="ColumnSeries3D",e.columns.template.column3D.applyOnClones=!0,e.columns.template.hiddenState.properties.visible=!0,e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"columnsContainer",{get:function(){return this.chart&&this.chart.columnsContainer?this.chart.columnsContainer:this._columnsContainer},enumerable:!0,configurable:!0}),e.prototype.validateDataElementReal=function(e){t.prototype.validateDataElementReal.call(this,e),e.column&&(e.column.dx=this.dx,e.column.dy=this.dy)},e.prototype.validateDataElements=function(){t.prototype.validateDataElements.call(this),this.chart&&this.chart.invalidateLayout()},e.prototype.createColumnTemplate=function(){return new me},Object.defineProperty(e.prototype,"depth",{get:function(){return this.getPropertyValue("depth")},set:function(t){this.setPropertyValue("depth",t,!0),this.columns.template.column3D.depth=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"angle",{get:function(){return this.getPropertyValue("angle")},set:function(t){this.setPropertyValue("angle",t),this.columns.template.column3D.angle=t},enumerable:!0,configurable:!0}),e}(le);c.b.registeredClasses.ColumnSeries3D=xe,c.b.registeredClasses.ColumnSeries3DDataItem=fe;var ve=function(t){function e(){var e=t.call(this)||this;return e.className="XYChart3DDataItem",e.applyTheme(),e}return n.c(e,t),e}(G),be=function(t){function e(){var e=t.call(this)||this;e._axisRendererX=pe,e._axisRendererY=ye,e.className="XYChart3D",e.depth=30,e.angle=30;var i=e.seriesContainer.createChild(s.a);return i.shouldClone=!1,i.isMeasured=!1,i.layout="none",e.columnsContainer=i,e.columnsContainer.mask=e.createChild(S.a),e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"depth",{get:function(){return this.getPropertyValue("depth")},set:function(t){this.setPropertyValue("depth",t),this.fixLayout(),this.invalidateDataUsers()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"angle",{get:function(){return this.getPropertyValue("angle")},set:function(t){this.setPropertyValue("angle",t),this.fixLayout(),this.invalidateDataUsers()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dx3D",{get:function(){return m.cos(this.angle)*this.depth},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dy3D",{get:function(){return-m.sin(this.angle)*this.depth},enumerable:!0,configurable:!0}),e.prototype.validateLayout=function(){t.prototype.validateLayout.call(this),this.fixColumns()},e.prototype.fixLayout=function(){this.chartContainer.marginTop=-this.dy3D,this.chartContainer.paddingRight=this.dx3D,this.scrollbarX&&(this.scrollbarX.dy=this.dy3D,this.scrollbarX.dx=this.dx3D),this.scrollbarY&&(this.scrollbarY.dy=this.dy3D,this.scrollbarY.dx=this.dx3D),this.fixColumns(),t.prototype.fixLayout.call(this)},e.prototype.fixColumns=function(){var t=this,e=1,i=0;g.each(this.series.iterator(),function(t){t instanceof xe&&(!t.clustered&&i>0&&e++,t.depthIndex=e-1,i++)});var a=0;g.each(this.series.iterator(),function(i){if(i instanceof xe){i.depth=t.depth/e,i.angle=t.angle,i.dx=t.depth/e*m.cos(t.angle)*i.depthIndex,i.dy=-t.depth/e*m.sin(t.angle)*i.depthIndex;var n=!1;(i.baseAxis==i.xAxis&&i.xAxis.renderer.inversed||i.baseAxis==i.yAxis&&i.yAxis.renderer.inversed)&&(n=!0);var r=1;i.columns.each(function(t){t.zIndex=n?1e3*(1e3-r)+a-100*i.depthIndex:1e3*r+a-100*i.depthIndex,r++}),a++}}),this.maskColumns()},e.prototype.processConfig=function(e){if(e&&y.hasValue(e.series)&&y.isArray(e.series))for(var i=0,a=e.series.length;i<a;i++)e.series[i].type=e.series[i].type||"ColumnSeries3D";t.prototype.processConfig.call(this,e)},e.prototype.maskColumns=function(){var t=this.plotContainer.pixelWidth,e=this.plotContainer.pixelHeight,i=this.dx3D,a=this.dy3D,n=w.moveTo({x:0,y:0})+w.lineTo({x:i,y:a})+w.lineTo({x:t+i,y:a})+w.lineTo({x:t+i,y:e+a})+w.lineTo({x:t,y:e})+w.lineTo({x:t,y:e})+w.lineTo({x:0,y:e})+w.closePath(),r=this.columnsContainer;r&&r.mask&&(r.mask.path=n)},e}(q);c.b.registeredClasses.XYChart3D=be;var Pe=i("2OXf"),Ae=function(t){function e(){var e=t.call(this)||this;return e.className="Candlestick",e.layout="none",e}return n.c(e,t),e.prototype.createAssets=function(){t.prototype.createAssets.call(this),this.lowLine=this.createChild(Q.a),this.lowLine.shouldClone=!1,this.highLine=this.createChild(Q.a),this.highLine.shouldClone=!1},e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.lowLine&&this.lowLine.copyFrom(e.lowLine),this.highLine&&this.highLine.copyFrom(e.highLine)},e}(se);c.b.registeredClasses.Candlestick=Ae;var Ce=function(t){function e(){var e=t.call(this)||this;return e.values.lowValueX={},e.values.lowValueY={},e.values.highValueX={},e.values.highValueY={},e.className="CandlestickSeriesDataItem",e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"lowValueX",{get:function(){return this.values.lowValueX.value},set:function(t){this.setValue("lowValueX",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"lowValueY",{get:function(){return this.values.lowValueY.value},set:function(t){this.setValue("lowValueY",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"highValueX",{get:function(){return this.values.highValueX.value},set:function(t){this.setValue("highValueX",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"highValueY",{get:function(){return this.values.highValueY.value},set:function(t){this.setValue("highValueY",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"closeValueX",{get:function(){return this.values.valueX.value},set:function(t){this.setValue("valueX",t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"closeValueY",{get:function(){return this.values.valueY.value},set:function(t){this.setValue("valueY",t)},enumerable:!0,configurable:!0}),e}(oe),Ie=function(t){function e(){var e=t.call(this)||this;e.className="CandlestickSeries",e.strokeOpacity=1;var i=new W.a,a=i.getFor("positive"),n=i.getFor("negative");return e.dropFromOpenState.properties.fill=n,e.dropFromOpenState.properties.stroke=n,e.riseFromOpenState.properties.fill=a,e.riseFromOpenState.properties.stroke=a,e.applyTheme(),e}return n.c(e,t),e.prototype.applyInternalDefaults=function(){t.prototype.applyInternalDefaults.call(this),y.hasValue(this.readerTitle)||(this.readerTitle=this.language.translate("Candlestick Series"))},e.prototype.createDataItem=function(){return new Ce},e.prototype.validateDataElementReal=function(e){t.prototype.validateDataElementReal.call(this,e),this.validateCandlestick(e)},e.prototype.validateCandlestick=function(t){var e=t.column;if(e){var i=e.lowLine,a=e.highLine;if(this.baseAxis==this.xAxis){var n=e.pixelWidth/2;i.x=n,a.x=n;var r=t.getWorkingValue(this.yOpenField),s=t.getWorkingValue(this.yField),o=this.yAxis.getY(t,this.yOpenField),l=this.yAxis.getY(t,this.yField),h=this.yAxis.getY(t,this.yLowField),u=this.yAxis.getY(t,this.yHighField),c=e.pixelY;i.y1=h-c,a.y1=u-c,r<s?(i.y2=o-c,a.y2=l-c):(i.y2=l-c,a.y2=o-c)}if(this.baseAxis==this.yAxis){var d=e.pixelHeight/2;i.y=d,a.y=d;var p=t.getWorkingValue(this.xOpenField),y=t.getWorkingValue(this.xField),m=this.xAxis.getX(t,this.xOpenField),f=this.xAxis.getX(t,this.xField),x=this.xAxis.getX(t,this.xLowField),v=this.xAxis.getX(t,this.xHighField),b=e.pixelX;i.x1=x-b,a.x1=v-b,p<y?(i.x2=m-b,a.x2=f-b):(i.x2=f-b,a.x2=m-b)}g.each(this.axisRanges.iterator(),function(e){var n=t.rangesColumns.getKey(e.uid);if(n){var r=n.lowLine;r.x=i.x,r.y=i.y,r.x1=i.x1,r.x2=i.x2,r.y1=i.y1,r.y2=i.y2;var s=n.highLine;s.x=a.x,s.y=a.y,s.x1=a.x1,s.x2=a.x2,s.y1=a.y1,s.y2=a.y2}})}},Object.defineProperty(e.prototype,"xLowField",{get:function(){return this._xLowField},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"yLowField",{get:function(){return this._yLowField},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"xHighField",{get:function(){return this._xHighField},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"yHighField",{get:function(){return this._yHighField},enumerable:!0,configurable:!0}),e.prototype.defineFields=function(){if(t.prototype.defineFields.call(this),this.baseAxis==this.xAxis){var e=F.capitalize(this.yAxis.axisFieldName);this._yLowField="low"+e+"Y",this._yHighField="high"+e+"Y"}if(this.baseAxis==this.yAxis){var i=F.capitalize(this.xAxis.axisFieldName);this._xLowField="low"+i+"X",this._xHighField="high"+i+"X"}this.addValueField(this.xAxis,this._xValueFields,this._xLowField),this.addValueField(this.xAxis,this._xValueFields,this._xHighField),this.addValueField(this.yAxis,this._yValueFields,this._yLowField),this.addValueField(this.yAxis,this._yValueFields,this._yHighField)},e.prototype.createLegendMarker=function(t){var e=t.pixelWidth,i=t.pixelHeight;t.removeChildren();var a,n,r=t.createChild(Ae);r.shouldClone=!1,r.copyFrom(this.columns.template);var s=r.lowLine,o=r.highLine;this.baseAxis==this.yAxis?(a=e/3,n=i,s.y=i/2,o.y=i/2,s.x2=e/3,o.x2=e/3,o.x=e/3*2,r.column.x=e/3):(a=e,n=i/3,s.x=e/2,o.x=e/2,s.y2=i/3,o.y2=i/3,o.y=i/3*2,r.column.y=i/3),r.width=a,r.height=n,f.copyProperties(this,t,S.b),f.copyProperties(this.columns.template,r,S.b),r.stroke=this.riseFromOpenState.properties.stroke,r.fill=r.stroke;var l=t.dataItem;l.color=r.fill,l.colorOrig=r.fill},e.prototype.createColumnTemplate=function(){return new Ae},e}(le);c.b.registeredClasses.CandlestickSeries=Ie,c.b.registeredClasses.CandlestickSeriesDataItem=Ce;var _e=function(t){function e(){var e=t.call(this)||this;return e.className="OHLC",e.layout="none",e}return n.c(e,t),e.prototype.createAssets=function(){this.openLine=this.createChild(Q.a),this.openLine.shouldClone=!1,this.highLowLine=this.createChild(Q.a),this.highLowLine.shouldClone=!1,this.closeLine=this.createChild(Q.a),this.closeLine.shouldClone=!1},e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.openLine&&this.openLine.copyFrom(e.openLine),this.highLowLine&&this.highLowLine.copyFrom(e.highLowLine),this.closeLine&&this.closeLine.copyFrom(e.closeLine)},e}(Ae);c.b.registeredClasses.OHLC=_e;var De=function(t){function e(){var e=t.call(this)||this;return e.className="OHLCSeriesDataItem",e.applyTheme(),e}return n.c(e,t),e}(Ce),Te=function(t){function e(){var e=t.call(this)||this;return e.className="OHLCSeries",e.applyTheme(),e}return n.c(e,t),e.prototype.applyInternalDefaults=function(){t.prototype.applyInternalDefaults.call(this),y.hasValue(this.readerTitle)||(this.readerTitle=this.language.translate("OHLC Series"))},e.prototype.createDataItem=function(){return new De},e.prototype.validateCandlestick=function(t){var e=t.column;if(e){var i=e.openLine,a=e.highLowLine,n=e.closeLine;if(this.baseAxis==this.xAxis){var r=e.pixelWidth/2;a.x=r,t.getWorkingValue(this.yOpenField),t.getWorkingValue(this.yField);var s=this.yAxis.getY(t,this.yOpenField),o=this.yAxis.getY(t,this.yField),l=this.yAxis.getY(t,this.yLowField),h=this.yAxis.getY(t,this.yHighField),u=e.pixelY;i.y1=s-u,i.y2=s-u,i.x1=0,i.x2=r,n.y1=o-u,n.y2=o-u,n.x1=r,n.x2=2*r,a.y1=h-u,a.y2=l-u}if(this.baseAxis==this.yAxis){var c=e.pixelHeight/2;a.y=c,t.getWorkingValue(this.xOpenField),t.getWorkingValue(this.xField);var d=this.xAxis.getX(t,this.xOpenField),p=this.xAxis.getX(t,this.xField),y=this.xAxis.getX(t,this.xLowField),m=this.xAxis.getX(t,this.xHighField),f=e.pixelX;i.x1=d-f,i.x2=d-f,i.y1=c,i.y2=2*c,n.x1=p-f,n.x2=p-f,n.y1=0,n.y2=c,a.x1=m-f,a.x2=y-f}g.each(this.axisRanges.iterator(),function(e){var r=t.rangesColumns.getKey(e.uid);if(r){var s=r.openLine;s.x=i.x,s.y=i.y,s.x1=i.x1,s.x2=i.x2,s.y1=i.y1,s.y2=i.y2;var o=r.closeLine;o.x=n.x,o.y=n.y,o.x1=n.x1,o.x2=n.x2,o.y1=n.y1,o.y2=n.y2;var l=r.highLowLine;l.x=a.x,l.y=a.y,l.x1=a.x1,l.x2=a.x2,l.y1=a.y1,l.y2=a.y2}})}},e.prototype.createLegendMarker=function(t){var e=t.pixelWidth,i=t.pixelHeight;t.removeChildren();var a,n,r=t.createChild(_e);r.shouldClone=!1,r.copyFrom(this.columns.template);var s=r.openLine,o=r.closeLine,l=r.highLowLine;this.baseAxis==this.yAxis?(a=e/3,n=i,l.y=i/2,l.x2=e,s.x=e/3*2,s.y2=i/2,o.x=e/3,o.y2=i,o.y1=i/2):(a=e,n=i/3,l.x=e/2,l.y2=i,s.y=i/3*2,s.x2=e/2,o.y=i/3,o.x2=e,o.x1=e/2),r.width=a,r.height=n,f.copyProperties(this,t,S.b),f.copyProperties(this.columns.template,r,S.b),r.stroke=this.riseFromOpenState.properties.stroke;var h=t.dataItem;h.color=r.stroke,h.colorOrig=r.stroke},e.prototype.createColumnTemplate=function(){return new _e},e}(Ie);c.b.registeredClasses.OHLCSeries=Te,c.b.registeredClasses.OHLCSeriesDataItem=De;var Ve=function(t){function e(){var e=t.call(this)||this;return e.className="StepLineSeriesSegment",e}return n.c(e,t),e.prototype.drawSegment=function(t,e,i,a,n,r){if(t.length>0&&e.length>0)if(n){var s=w.moveTo(t[0]);if(t.length>0)for(var o=1;o<t.length;o++){var l=t[o];o/2==Math.round(o/2)?s+=w.moveTo(l):s+=w.lineTo(l)}this.strokeSprite.path=s,(this.fillOpacity>0||this.fillSprite.fillOpacity>0)&&(s=w.moveTo(t[0])+w.polyline(t),s+=w.lineTo(e[0])+w.polyline(e),s+=w.lineTo(t[0]),s+=w.closePath(),this.fillSprite.path=s)}else{s=w.moveTo(t[0])+w.polyline(t);this.strokeSprite.path=s,(this.fillOpacity>0||this.fillSprite.fillOpacity>0)&&(s+=w.lineTo(e[0])+w.polyline(e),s+=w.lineTo(t[0]),s+=w.closePath(),this.fillSprite.path=s)}},e}(J);c.b.registeredClasses.StepLineSeriesSegment=Ve;var Se=function(t){function e(){var e=t.call(this)||this;return e.className="StepLineSeriesDataItem",e.applyTheme(),e}return n.c(e,t),e}(it),ke=function(t){function e(){var e=t.call(this)||this;return e.className="StepLineSeries",e.applyTheme(),e.startLocation=0,e.endLocation=1,e}return n.c(e,t),e.prototype.createDataItem=function(){return new Se},e.prototype.addPoints=function(t,e,i,a,n){var r=this.startLocation,s=this.endLocation,o=this.xAxis.getX(e,i,r),l=this.yAxis.getY(e,a,r),h=this.xAxis.getX(e,i,s),u=this.yAxis.getY(e,a,s);if(o=m.fitToRange(o,-2e4,2e4),l=m.fitToRange(l,-2e4,2e4),h=m.fitToRange(h,-2e4,2e4),u=m.fitToRange(u,-2e4,2e4),!this.noRisers&&this.connect&&t.length>1){var c=t[t.length-1];this.baseAxis==this.xAxis&&(n?t.push({x:c.x,y:u}):t.push({x:o,y:c.y})),this.baseAxis==this.yAxis&&(n?t.push({x:h,y:c.y}):t.push({x:c.x,y:l}))}var d={x:o,y:l},p={x:h,y:u};n?t.push(p,d):t.push(d,p)},e.prototype.drawSegment=function(t,e,i){var a=!1;this.yAxis==this.baseAxis&&(a=!0),t.drawSegment(e,i,this.tensionX,this.tensionY,this.noRisers,a)},e.prototype.createSegment=function(){return new Ve},Object.defineProperty(e.prototype,"noRisers",{get:function(){return this.getPropertyValue("noRisers")},set:function(t){this.setPropertyValue("noRisers",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"startLocation",{get:function(){return this.getPropertyValue("startLocation")},set:function(t){this.setPropertyValue("startLocation",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endLocation",{get:function(){return this.getPropertyValue("endLocation")},set:function(t){this.setPropertyValue("endLocation",t,!0)},enumerable:!0,configurable:!0}),e}(at);c.b.registeredClasses.StepLineSeries=ke,c.b.registeredClasses.StepLineSeriesDataItem=Se;var Fe=function(t){function e(){var e=t.call(this)||this;return e.className="RadarColumn",e}return n.c(e,t),e.prototype.createAssets=function(){this.radarColumn=this.createChild(te.a),this.radarColumn.shouldClone=!1,this.radarColumn.strokeOpacity=void 0,this.column=this.radarColumn},e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.radarColumn&&this.radarColumn.copyFrom(e.radarColumn)},e.prototype.getTooltipX=function(){var t=this.getPropertyValue("tooltipX");return y.isNumber(t)||(t=this.radarColumn.tooltipX),t},e.prototype.getTooltipY=function(){var t=this.getPropertyValue("tooltipX");return y.isNumber(t)||(t=this.radarColumn.tooltipY),t},e}(se);c.b.registeredClasses.RadarColumn=Fe;var Oe=function(t){function e(){var e=t.call(this)||this;return e.className="ColumnSeriesDataItem",e.applyTheme(),e}return n.c(e,t),e}(oe),we=function(t){function e(){var e=t.call(this)||this;return e.className="RadarColumnSeries",e.applyTheme(),e}return n.c(e,t),e.prototype.createColumnTemplate=function(){return new Fe},e.prototype.validate=function(){this.chart.invalid&&this.chart.validate(),t.prototype.validate.call(this)},e.prototype.validateDataElementReal=function(t){var e,i,a,n,r=this,s=this.chart.startAngle,o=this.chart.endAngle,l=this.yField,h=this.yOpenField,u=this.xField,c=this.xOpenField,d=this.getStartLocation(t),p=this.getEndLocation(t),x=(o-s)/(this.dataItems.length*(this.end-this.start));s+=d*x,o-=(1-p)*x;var v=this.columns.template.percentWidth;y.isNaN(v)&&(v=100);var b=m.round((p-d)*(1-v/100)/2,5);if(d+=b,p-=b,this.baseAxis==this.xAxis?(a=m.getDistance({x:this.yAxis.getX(t,l,t.locations[l],"valueY"),y:this.yAxis.getY(t,l,t.locations[l],"valueY")}),n=m.getDistance({x:this.yAxis.getX(t,h,t.locations[h],"valueY"),y:this.yAxis.getY(t,h,t.locations[h],"valueY")}),e=this.xAxis.getAngle(t,c,d,"valueX"),i=this.xAxis.getAngle(t,u,p,"valueX")):(a=m.getDistance({x:this.yAxis.getX(t,l,d,"valueY"),y:this.yAxis.getY(t,l,d,"valueY")}),n=m.getDistance({x:this.yAxis.getX(t,h,p,"valueY"),y:this.yAxis.getY(t,h,p,"valueY")}),e=this.xAxis.getAngle(t,u,t.locations[u],"valueX"),i=this.xAxis.getAngle(t,c,t.locations[c],"valueX")),i<e){var P=i;i=e,e=P}e=m.fitToRange(e,s,o),i=m.fitToRange(i,s,o);var A=t.column;A||(A=this.columns.create(),t.column=A,f.forceCopyProperties(this.columns.template,A,S.b),t.addSprite(A),this.setColumnStates(A));var C=A.radarColumn;C.startAngle=e;var I=i-e;I>0?(C.arc=I,C.radius=a,C.innerRadius=n,A.__disabled=!1,A.parent=this.columnsContainer,g.each(this.axisRanges.iterator(),function(i){var s=t.rangesColumns.getKey(i.uid);s||(s=r.columns.create(),f.forceCopyProperties(r.columns.template,s,S.b),f.copyProperties(i.contents,s,S.b),s.dataItem&&O.remove(s.dataItem.sprites,s),t.addSprite(s),r.setColumnStates(s),t.rangesColumns.setKey(i.uid,s));var o=A.radarColumn;o.startAngle=e,o.arc=I,o.radius=a,o.innerRadius=n,o.invalid&&o.validate(),s.__disabled=!1,s.parent=r.columnsContainer})):this.disableUnusedColumns(t)},e.prototype.getPoint=function(t,e,i,a,n,r,s){r||(r="valueX"),s||(s="valueY");var o=this.yAxis.getX(t,i,n,s),l=this.yAxis.getY(t,i,n,s),h=m.getDistance({x:o,y:l});0==h&&(h=1e-5);var u=this.xAxis.getAngle(t,e,a,r);return{x:h*m.cos(u),y:h*m.sin(u)}},e.prototype.getMaskPath=function(){var t=this.yAxis.renderer;return w.arc(t.startAngle,t.endAngle-t.startAngle,t.pixelRadius,t.pixelInnerRadius)},e}(le);c.b.registeredClasses.RadarColumnSeries=we,c.b.registeredClasses.RadarColumnSeriesDataItem=Oe;var Re=i("AC2I"),Le=function(t){function e(){var e=t.call(this)||this;return e.slice=e.createChild(S.a),e.slice.shouldClone=!1,e.slice.setElement(e.paper.add("path")),e.slice.isMeasured=!1,e.orientation="vertical",e.bottomWidth=Object(Y.c)(100),e.topWidth=Object(Y.c)(100),e.isMeasured=!1,e.width=10,e.height=10,e.expandDistance=0,e.className="FunnelSlice",e.applyTheme(),e}return n.c(e,t),e.prototype.draw=function(){t.prototype.draw.call(this);var e=this.pixelPaddingTop,i=this.pixelPaddingBottom,a=this.pixelPaddingRight,n=this.pixelPaddingLeft,r=this.pixelWidth-a-n,s=this.pixelHeight-e-i,o=this.expandDistance,l="";if("vertical"==this.orientation){var h={x:(r-(f=F.relativeToValue(this.topWidth,r)))/2+n,y:e},u={x:(r+f)/2+n,y:e},c={x:(r+(x=F.relativeToValue(this.bottomWidth,r)))/2+n,y:e+s},d={x:(r-x)/2+n,y:e+s},p={x:u.x+(c.x-u.x)/2+o*s,y:u.y+.5*s},y={x:h.x+(d.x-h.x)/2-o*s,y:h.y+.5*s},g=w.lineTo(c),m="";0!=o&&(g=w.quadraticCurveTo(c,p),m=w.quadraticCurveTo(h,y)),l=w.moveTo(h)+w.lineTo(u)+g+w.lineTo(d)+m,this.tickPoint={x:u.x+(c.x-u.x)/2,y:u.y+(c.y-u.y)/2}}else{var f,x,v={x:n,y:(s-(f=F.relativeToValue(this.topWidth,s)))/2+e},b={x:n,y:(s+f)/2+e},P={x:n+r,y:(s-(x=F.relativeToValue(this.bottomWidth,s)))/2+e},A={x:n+r,y:(s+x)/2+e};p={y:v.y+(P.y-v.y)/2-o*r,x:v.x+.5*r},y={y:b.y+(A.y-b.y)/2+o*r,x:b.x+.5*r},g=w.lineTo(P),m="";0!=o&&(g=w.quadraticCurveTo(P,p),m=w.quadraticCurveTo(b,y)),l=w.moveTo(b)+w.lineTo(v)+g+w.lineTo(A)+m,this.tickPoint={y:b.y+(A.y-b.y)/2,x:b.x+(A.x-b.x)/2}}this.slice.path=l,this.invalidateLayout()},e.prototype.getPoint=function(t,e){var i=this.pixelPaddingTop,a=this.pixelPaddingBottom,n=this.pixelPaddingRight,r=this.pixelPaddingLeft,s=this.pixelWidth-n-r,o=this.pixelHeight-i-a;if("vertical"==this.orientation){var l={x:(s-(d=F.relativeToValue(this.topWidth,s)))/2+r,y:i},h={x:(s+d)/2+r,y:i},u={x:(s+(p=F.relativeToValue(this.bottomWidth,s)))/2+r,y:i+o},c=l.x+({x:(s-p)/2+r,y:i+o}.x-l.x)*e;return{x:c+(h.x+(u.x-h.x)*e-c)*t,y:h.y+(u.y-h.y)*e}}var d,p,y={x:r,y:(o-(d=F.relativeToValue(this.topWidth,o)))/2+i},g={x:r,y:(o+d)/2+i},m={x:r+s,y:(o-(p=F.relativeToValue(this.bottomWidth,o)))/2+i},f=y.y+(m.y-y.y)*t;return{y:f+(g.y+({x:r+s,y:(o+p)/2+i}.y-g.y)*t-f)*e,x:y.x+(m.x-y.x)*t}},Object.defineProperty(e.prototype,"bottomWidth",{get:function(){return this.getPropertyValue("bottomWidth")},set:function(t){this.setPercentProperty("bottomWidth",t,!0,!1,10,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"topWidth",{get:function(){return this.getPropertyValue("topWidth")},set:function(t){this.setPercentProperty("topWidth",t,!0,!1,10,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"orientation",{get:function(){return this.getPropertyValue("orientation")},set:function(t){this.setPropertyValue("orientation",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"expandDistance",{get:function(){return this.getPropertyValue("expandDistance")},set:function(t){this.setPropertyValue("expandDistance",t,!0)},enumerable:!0,configurable:!0}),e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.slice&&this.slice.copyFrom(e.slice)},e}(s.a);c.b.registeredClasses.FunnelSlice=Le;var Xe=i("qzbU"),Ye=function(t){function e(){var e=t.call(this)||this;return e._label=new k.d,e._slice=new k.d,e.className="FunnelTick",e.element=e.paper.add("path"),e._disposers.push(e._label),e._disposers.push(e._slice),e.setPropertyValue("locationX",0),e.setPropertyValue("locationY",0),e.applyTheme(),e}return n.c(e,t),e.prototype.draw=function(){t.prototype.draw.call(this);var e=this.slice,i=e.getPoint(this.locationX,this.locationY);if(i){var a=this.label,n=e.dataItem.component;if("vertical"==n.orientation){var r=a.pixelX,s=a.pixelY;n.labelsOpposite||(r+=a.maxRight);var o=F.spritePointToSprite(i,e,this.parent),l=F.spritePointToSprite({x:r,y:s},a.parent,this.parent);this.path=w.moveTo(o)+w.lineTo(l)}else{r=a.pixelX,s=a.pixelY;n.labelsOpposite||(s+=a.maxBottom);o=F.spritePointToSprite(i,e,this.parent),l=F.spritePointToSprite({x:r,y:s},a.parent,this.parent);this.path=w.moveTo(o)+w.lineTo(l)}}},Object.defineProperty(e.prototype,"slice",{get:function(){return this._slice.get()},set:function(t){this._slice.set(t,new k.c([t.events.on("transformed",this.invalidate,this,!1),t.events.on("validated",this.invalidate,this,!1)]))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"label",{get:function(){return this._label.get()},set:function(t){this._label.set(t,t.events.on("transformed",this.invalidate,this,!1))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"locationX",{get:function(){return this.getPropertyValue("locationX")},set:function(t){this.setPropertyValue("locationX",t,!1,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"locationY",{get:function(){return this.getPropertyValue("locationY")},set:function(t){this.setPropertyValue("locationY",t,!1,!0)},enumerable:!0,configurable:!0}),e}(Xe.a);c.b.registeredClasses.FunnelTick=Ye;var je=function(t){function e(){var e=t.call(this)||this;return e.className="FunnelSeriesDataItem",e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"sliceLink",{get:function(){var t=this;if(!this._sliceLink){var e=this.component.sliceLinks.create();this._sliceLink=e,this._disposers.push(e),e.parent=this.component.slicesContainer,this._disposers.push(new k.b(function(){t.component&&t.component.sliceLinks.removeValue(e)})),this.addSprite(e),e.visible=this.visible}return this._sliceLink},enumerable:!0,configurable:!0}),e}(Re.b),Ne=function(t){function e(){var e=t.call(this)||this;return e._nextY=0,e.className="FunnelSeries",e.orientation="vertical",e.width=Object(Y.c)(100),e.height=Object(Y.c)(100),e.slicesContainer.width=Object(Y.c)(100),e.slicesContainer.height=Object(Y.c)(100),e._disposers.push(e.slicesContainer.events.on("maxsizechanged",e.invalidateDataItems,e,!1)),e.labelsOpposite=!0,e.labelsContainer.layout="absolute",e.bottomRatio=0,e.applyTheme(),e}return n.c(e,t),e.prototype.createSlice=function(){return new Le},e.prototype.createTick=function(){return new Ye},e.prototype.applyInternalDefaults=function(){t.prototype.applyInternalDefaults.call(this),y.hasValue(this.readerTitle)||(this.readerTitle=this.language.translate("Funnel Series"))},e.prototype.createDataItem=function(){return new je},e.prototype.initSlice=function(t){t.isMeasured=!1,t.defaultState.properties.scale=1,t.observe("scale",this.handleSliceScale,this),t.observe(["dx","dy","x","y"],this.handleSliceMove,this),t.tooltipText="{category}: {value.percent.formatNumber('#.#')}% ({value.value})",t.states.create("hover").properties.expandDistance=.2},e.prototype.initLabel=function(e){t.prototype.initLabel.call(this,e),e.verticalCenter="middle",e.horizontalCenter="middle",e.isMeasured=!0,e.padding(5,5,5,5)},e.prototype.validate=function(){t.prototype.validate.call(this),this._nextY=0},e.prototype.validateDataElements=function(){var e=this.slicesContainer,i=this.labelsContainer,a=this.labels.template;this.alignLabels?(a.interactionsEnabled=!0,e.isMeasured=!0,i.isMeasured=!0):(a.interactionsEnabled=!1,e.isMeasured=!1,i.isMeasured=!1);var n=0,r=0;this.dataItems.each(function(t){y.hasValue(t.value)&&(r++,t.value>0?n+=t.getWorkingValue("value")/t.value:n+=1)}),this._total=1/r*n,this._count=r,t.prototype.validateDataElements.call(this),this.arrangeLabels()},e.prototype.getNextValue=function(t){var e=t.index,i=t.getWorkingValue("value");if(e<this.dataItems.length-1){var a=this.dataItems.getIndex(e+1);if(i=a.getWorkingValue("value"),!a.visible||a.isHiding)return this.getNextValue(a)}return i},e.prototype.formDataElement=function(){},e.prototype.validateDataElement=function(e){if(y.hasValue(e.value)){var i=e.slice;i.orientation=this.orientation;var a=e.sliceLink;a.orientation=this.orientation;var n=e.tick,r=e.label;n.slice=i,n.label=r,this.decorateSlice(e),a.fill=i.fill,e.index==this.dataItems.length-1&&(a.disabled=!0),t.prototype.validateDataElement.call(this,e)}},e.prototype.decorateSlice=function(t){var e=t.slice,i=t.sliceLink,a=t.label,n=t.tick,r=this.slicesContainer.innerWidth,s=this.slicesContainer.innerHeight,o=this.getNextValue(t),l=t.getWorkingValue("value"),h=this.bottomRatio,u=1;if(t.value>0&&(u=l/t.value),"vertical"==this.orientation){var c=i.pixelHeight*u;s+=c,e.topWidth=l/this.dataItem.values.value.high*r,e.bottomWidth=(l-(l-o)*h)/this.dataItem.values.value.high*r,i.topWidth=e.bottomWidth,i.bottomWidth=(l-(l-o))/this.dataItem.values.value.high*r,e.y=this._nextY,e.height=m.max(0,s/this._count*u/this._total-c),e.x=r/2,this.alignLabels?a.x=void 0:a.x=e.x,a.y=e.pixelY+e.pixelHeight*n.locationY,this._nextY+=e.pixelHeight+c,i.y=this._nextY-c,i.x=e.x}else{var d=i.pixelWidth*u;r+=d,e.topWidth=l/this.dataItem.values.value.high*s,e.bottomWidth=(l-(l-o)*h)/this.dataItem.values.value.high*s,i.topWidth=e.bottomWidth,i.bottomWidth=(l-(l-o))/this.dataItem.values.value.high*s,e.x=this._nextY,e.width=r/this._count*u*1/this._total-d,e.y=s/2,this.alignLabels?a.y=this.labelsContainer.measuredHeight:a.y=e.y,a.x=e.pixelX+e.pixelWidth*n.locationX,this._nextY+=e.pixelWidth+d,i.x=this._nextY-d,i.y=e.y}},e.prototype.arrangeLabels=function(){if(this.alignLabels){var t=this.labels.length;if(t>1){var e=this.labels.getIndex(t-1),i=e.pixelY,a=e.pixelX;if(t>1){for(var n=t-2;n>=0;n--){(r=this.labels.getIndex(n)).visible&&(r.invalid&&r.validate(),"vertical"==this.orientation?r.pixelY+r.measuredHeight>i&&(r.y=i-r.measuredHeight):r.pixelX+r.measuredWidth>a&&(r.x=a-r.measuredWidth),i=r.pixelY,a=r.pixelX)}i=0,a=0;for(n=0;n<t;n++){var r;(r=this.labels.getIndex(n)).visible&&(r.invalid&&r.validate(),"vertical"==this.orientation?r.pixelY<i&&(r.y=i):r.pixelX<a&&(r.x=a),i+=r.measuredHeight,a+=r.measuredWidth)}}}}},e.prototype.positionBullet=function(e){t.prototype.positionBullet.call(this,e);var i=e.dataItem.slice,a=e.locationX;y.isNumber(a)||(a=.5);var n=e.locationY;y.isNumber(n)||(n=1),e.x=i.pixelX+i.measuredWidth*a,e.y=i.pixelY+i.measuredHeight*n},Object.defineProperty(e.prototype,"orientation",{get:function(){return this.getPropertyValue("orientation")},set:function(t){this.setPropertyValue("orientation",t)&&(this.labelsOpposite=this.labelsOpposite,this.invalidate(),"vertical"==t?(this.ticks.template.locationX=1,this.ticks.template.locationY=.5,this.labels.template.rotation=0,this.layout="horizontal"):(this.ticks.template.locationX=.5,this.ticks.template.locationY=1,this.labels.template.rotation=-90,this.layout="vertical"))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bottomRatio",{get:function(){return this.getPropertyValue("bottomRatio")},set:function(t){this.setPropertyValue("bottomRatio",t)&&this.invalidate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sliceLinks",{get:function(){if(!this._sliceLinks){var t=new Le;t.applyOnClones=!0,t.fillOpacity=.5,t.expandDistance=-.3,t.hiddenState.properties.opacity=0,this._disposers.push(t),this._sliceLinks=new o.e(t),this._disposers.push(new o.c(this._sliceLinks))}return this._sliceLinks},enumerable:!0,configurable:!0}),e.prototype.show=function(e){var i=this,a=this.startIndex,n=this.endIndex,r=this.defaultState.transitionDuration;y.isNumber(e)&&(r=e);var s=0;return g.each(g.indexed(this.dataItems.iterator()),function(t){var e=t[0],o=t[1];i.sequencedInterpolation&&(s=i.sequencedInterpolationDelay*e+r*(e-a)/(n-a)),o.show(r,s,["value"])}),t.prototype.show.call(this,e)},e.prototype.hide=function(e){var i=this,a=["value"],n=this.startIndex,r=this.endIndex,s=0,o=this.hiddenState.transitionDuration;y.isNumber(e)&&(o=e),g.each(g.indexed(this.dataItems.iterator()),function(t){var e=t[0],l=t[1];i.sequencedInterpolation&&(s=i.sequencedInterpolationDelay*e+o*(e-n)/(r-n)),l.hide(o,s,0,a)});var l=t.prototype.hide.call(this,e);return l&&!l.isFinished()&&l.delay(s),l},e.prototype.setAlignLabels=function(e){t.prototype.setAlignLabels.call(this,e),this.ticks.template.disabled=!e;var i=this.labelsContainer;i&&(e?(i.height=void 0,i.width=void 0,i.margin(10,10,10,10)):(i.width=Object(Y.c)(100),i.height=Object(Y.c)(100))),this.labelsOpposite=this.labelsOpposite},Object.defineProperty(e.prototype,"labelsOpposite",{get:function(){return this.getPropertyValue("labelsOpposite")},set:function(t){this.setPropertyValue("labelsOpposite",t);var e=this.labels.template,i="none",a="none";this.alignLabels?t?(this.labelsContainer.toFront(),"vertical"==this.orientation?(this.ticks.template.locationX=1,e.horizontalCenter="left",i="right"):(this.ticks.template.locationY=1,e.horizontalCenter="right",a="bottom")):(this.labelsContainer.toBack(),"vertical"==this.orientation?(this.ticks.template.locationX=0,i="left"):(a="top",this.ticks.template.locationY=0)):"vertical"==this.orientation?i="center":a="middle",e.align=i,e.valign=a,this.validateLayout(),this.ticks.each(function(t){t.invalidate()}),this.invalidateDataItems()},enumerable:!0,configurable:!0}),e}(Re.a);c.b.registeredClasses.FunnelSeries=Ne,c.b.registeredClasses.FunnelSeriesDataItem=je;var Me=function(t){function e(){var e=t.call(this)||this;return e.className="PyramidSeriesDataItem",e.applyTheme(),e}return n.c(e,t),e}(je),We=function(t){function e(){var e=t.call(this)||this;return e.className="PyramidSeries",e.topWidth=Object(Y.c)(0),e.bottomWidth=Object(Y.c)(100),e.pyramidHeight=Object(Y.c)(100),e.valueIs="area",e.sliceLinks.template.width=0,e.sliceLinks.template.height=0,e.applyTheme(),e}return n.c(e,t),e.prototype.applyInternalDefaults=function(){t.prototype.applyInternalDefaults.call(this),y.hasValue(this.readerTitle)||(this.readerTitle=this.language.translate("Pyramid Series"))},e.prototype.createDataItem=function(){return new Me},e.prototype.validate=function(){t.prototype.validate.call(this),this._nextWidth=void 0},e.prototype.getNextValue=function(t){var e=t.index,i=t.getWorkingValue("value");e<this.dataItems.length-1&&(i=this.dataItems.getIndex(e+1).getWorkingValue("value"));return 0==i&&(i=1e-6),i},e.prototype.validateDataElements=function(){var e=this,i=this.slicesContainer.innerWidth,a=this.slicesContainer.innerHeight;if(this.dataItems.each(function(t){var n=t.getWorkingValue("value")/t.value,r=t.sliceLink;"vertical"==e.orientation?a-=r.pixelHeight*n:i-=r.pixelWidth*n}),this._pyramidHeight=F.relativeToValue(this.pyramidHeight,a),this._pyramidWidth=F.relativeToValue(this.pyramidHeight,i),"vertical"==this.orientation){var n=(a-this._pyramidHeight)/2;this.slicesContainer.y=n,this.labelsContainer.y=n,this.ticksContainer.y=n}else{var r=(i-this._pyramidWidth)/2;this.slicesContainer.x=r,this.labelsContainer.x=r,this.ticksContainer.x=r}t.prototype.validateDataElements.call(this)},e.prototype.decorateSlice=function(t){var e=this.dataItem.values.value.sum;if(0!=e){var i=t.slice,a=t.sliceLink,n=t.label,r=t.tick;this.getNextValue(t);var s=t.getWorkingValue("value");0==s&&(s=1e-6);var o=this._pyramidWidth,l=this._pyramidHeight,h=this.slicesContainer.innerWidth,u=this.slicesContainer.innerHeight,c=a.pixelWidth,d=a.pixelHeight;if("vertical"==this.orientation){var p=F.relativeToValue(this.topWidth,h);y.isNumber(this._nextWidth)||(this._nextWidth=p);var g=F.relativeToValue(this.bottomWidth,h),m=this._nextWidth,f=Math.atan2(l,p-g);0==(A=Math.tan(Math.PI/2-f))&&(A=1e-8);var x=void 0,v=void 0;if("area"==this.valueIs){var b=(p+g)/2*l*s/e,P=Math.abs(m*m-2*b*A);v=(2*b-(x=(m-Math.sqrt(P))/A)*m)/x}else{v=m-(x=l*s/this.dataItem.values.value.sum)*A}i.height=x,i.width=h,i.bottomWidth=v,i.topWidth=m,a.topWidth=i.bottomWidth,a.bottomWidth=i.bottomWidth,i.y=this._nextY,this.alignLabels?n.x=0:n.x=h/2,n.y=i.pixelY+i.pixelHeight*r.locationY+i.dy,this._nextY+=i.pixelHeight+d*s/t.value,a.y=this._nextY-d,a.x=h/2}else{p=F.relativeToValue(this.topWidth,u);y.isNumber(this._nextWidth)||(this._nextWidth=p);var A;g=F.relativeToValue(this.bottomWidth,u),m=this._nextWidth,f=Math.atan2(o,p-g);0==(A=Math.tan(Math.PI/2-f))&&(A=1e-8);var C=void 0;v=void 0;if("area"==this.valueIs)v=(2*(b=(p+g)/2*o*s/this.dataItem.values.value.sum)-(C=(m-Math.sqrt(m*m-2*b*A))/A)*m)/C;else v=m-(C=o*s/this.dataItem.values.value.sum)*A;i.width=C,i.height=u,i.bottomWidth=v,i.topWidth=m,a.topWidth=i.bottomWidth,a.bottomWidth=i.bottomWidth,i.x=this._nextY,this.alignLabels?n.y=this.labelsContainer.measuredHeight:n.y=u/2,n.x=i.pixelX+i.pixelWidth*r.locationX+i.dx,this._nextY+=i.pixelWidth+c*s/t.value,a.x=this._nextY-c,a.y=u/2}this._nextWidth=i.bottomWidth}},Object.defineProperty(e.prototype,"topWidth",{get:function(){return this.getPropertyValue("topWidth")},set:function(t){this.setPercentProperty("topWidth",t,!1,!1,10,!1)&&this.invalidate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pyramidHeight",{get:function(){return this.getPropertyValue("pyramidHeight")},set:function(t){this.setPercentProperty("pyramidHeight",t,!1,!1,10,!1)&&this.invalidate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bottomWidth",{get:function(){return this.getPropertyValue("bottomWidth")},set:function(t){this.setPercentProperty("bottomWidth",t,!1,!1,10,!1)&&this.invalidate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"valueIs",{get:function(){return this.getPropertyValue("valueIs")},set:function(t){this.setPropertyValue("valueIs",t)&&this.invalidate()},enumerable:!0,configurable:!0}),e}(Ne);c.b.registeredClasses.PyramidSeries=We,c.b.registeredClasses.PyramidSeriesDataItem=Me;var Be=function(t){function e(){var e=t.call(this)||this;return e.className="PictorialStackedSeriesDataItem",e.applyTheme(),e}return n.c(e,t),e}(Me),Ee=function(t){function e(){var e=t.call(this)||this;return e.className="PictorialStackedSeries",e.topWidth=Object(Y.c)(100),e.bottomWidth=Object(Y.c)(100),e.valueIs="height",e.applyTheme(),e.startLocation=0,e.endLocation=1,e._maskSprite=e.slicesContainer.createChild(S.a),e._maskSprite.visible=!1,e._maskSprite.zIndex=100,e._maskSprite.shouldClone=!1,e}return n.c(e,t),e.prototype.validateDataElements=function(){var e=this.slicesContainer.maxWidth,i=this.slicesContainer.maxHeight,a=this._maskSprite,n=a.measuredWidth/a.scale,r=a.measuredHeight/a.scale,s=m.min(i/r,e/n);s==1/0&&(s=1),s=m.max(.001,s);var o=this.startLocation,l=this.endLocation,h=m.min(e,n*s),u=m.min(i,r*s);if(a.scale=s,"vertical"==this.orientation?(this.topWidth=h+4,this.bottomWidth=h+4,this.pyramidHeight=u*(l-o),a.x=e/2,a.y=u/2):(this.topWidth=u+4,this.bottomWidth=u+4,this.pyramidHeight=h*(l-o),a.valign="middle",a.x=h/2,a.y=i/2),a.verticalCenter="middle",a.horizontalCenter="middle",t.prototype.validateDataElements.call(this),"vertical"==this.orientation){var c=(i-u)/2;this.slicesContainer.y=c,this.labelsContainer.y=c,this.ticksContainer.y=c,this.slices.template.dy=o*u}else{var d=(e-h)/2;this.slicesContainer.x=d,this.labelsContainer.x=d,this.ticksContainer.x=d,this.slices.template.dx=o*h}this.slicesContainer.mask=this._maskSprite},e.prototype.applyInternalDefaults=function(){t.prototype.applyInternalDefaults.call(this),y.hasValue(this.readerTitle)||(this.readerTitle=this.language.translate("Pyramid Series"))},e.prototype.createDataItem=function(){return new Be},Object.defineProperty(e.prototype,"maskSprite",{get:function(){return this._maskSprite},enumerable:!0,configurable:!0}),e.prototype.initSlice=function(e){t.prototype.initSlice.call(this,e);var i=e.states.getKey("hover");i&&(i.properties.expandDistance=0)},Object.defineProperty(e.prototype,"startLocation",{get:function(){return this.getPropertyValue("startLocation")},set:function(t){this.setPropertyValue("startLocation",t)&&this.invalidateDataItems()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endLocation",{get:function(){return this.getPropertyValue("endLocation")},set:function(t){this.setPropertyValue("endLocation",t)&&this.invalidateDataItems()},enumerable:!0,configurable:!0}),e}(We);c.b.registeredClasses.PictorialStackedSeries=Ee,c.b.registeredClasses.PictorialStackedSeriesDataItem=Be;var He=i("BmDP"),ze=i("ncT3"),Ue=function(t){function e(){var e=t.call(this)||this;return e.className="ConeColumn",e}return n.c(e,t),e.prototype.createAssets=function(){this.coneColumn=this.createChild(ze.a),this.coneColumn.shouldClone=!1,this.column=this.coneColumn},e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.coneColumn&&this.coneColumn.copyFrom(e.coneColumn)},e}(se);c.b.registeredClasses.ConeColumn=Ue;var Ke=function(t){function e(){var e=t.call(this)||this;return e.className="ConeSeriesDataItem",e.applyTheme(),e}return n.c(e,t),e}(oe),Ge=function(t){function e(){var e=t.call(this)||this;return e.className="ConeSeries",e.applyTheme(),e}return n.c(e,t),e.prototype.createColumnTemplate=function(){return new Ue},e.prototype.getMaskPath=function(){var t=0,e=0,i=this.columns.getIndex(0);if(i)return this.baseAxis==this.xAxis?e=i.coneColumn.bottom.radiusY+1:t=i.coneColumn.bottom.radiusY+1,w.rectToPath({x:-t,y:0,width:this.xAxis.axisLength+t,height:this.yAxis.axisLength+e})},e.prototype.validateDataElementReal=function(e){if(t.prototype.validateDataElementReal.call(this,e),e.column){var i=e.column.coneColumn;i.fill=e.column.fill,this.baseAxis==this.yAxis?i.orientation="horizontal":i.orientation="vertical"}},e}(le);c.b.registeredClasses.ConeSeries=Ge,c.b.registeredClasses.ConeSeriesDataItem=Ke;var qe=function(t){function e(){var e=t.call(this)||this;return e.className="CurvedColumn",e}return n.c(e,t),e.prototype.createAssets=function(){this.curvedColumn=this.createChild(S.a),this.curvedColumn.shouldClone=!1,this.setPropertyValue("tension",.7),this.width=Object(Y.c)(120),this.height=Object(Y.c)(120),this.column=this.curvedColumn},e.prototype.draw=function(){t.prototype.draw.call(this);var e,i=this.realWidth,a=this.realHeight,n=this.realX-this.pixelX,r=this.realY-this.pixelY;F.used(this.width);var s=1,o=1;"vertical"==this.orientation?(s=this.tension,e=[{x:0,y:a+r},{x:i/2,y:r},{x:i,y:a+r}]):(o=this.tension,e=[{x:n,y:0},{x:n+i,y:a/2},{x:n,y:a}]);var l=w.moveTo(e[0])+new Z.b(s,o).smooth(e);this.column.path=l},e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.curvedColumn&&this.curvedColumn.copyFrom(e.curvedColumn)},Object.defineProperty(e.prototype,"tension",{get:function(){return this.getPropertyValue("tension")},set:function(t){this.setPropertyValue("tension",t,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"orientation",{get:function(){return this.getPropertyValue("orientation")},set:function(t){this.setPropertyValue("orientation",t,!0)},enumerable:!0,configurable:!0}),e}(se);c.b.registeredClasses.CurvedColumn=qe;var Ze=function(t){function e(){var e=t.call(this)||this;return e.className="CurvedColumnSeriesDataItem",e.applyTheme(),e}return n.c(e,t),e}(oe),Je=function(t){function e(){var e=t.call(this)||this;return e.className="CurvedColumnSeries",e.applyTheme(),e}return n.c(e,t),e.prototype.createColumnTemplate=function(){return new qe},e.prototype.validateDataElementReal=function(e){var i=e.column;i&&(e.column.curvedColumn.fill=e.column.fill,this.baseAxis==this.yAxis?i.orientation="horizontal":i.orientation="vertical");t.prototype.validateDataElementReal.call(this,e)},e}(le);c.b.registeredClasses.CurvedColumnSeries=Je,c.b.registeredClasses.CurvedColumnSeriesDataItem=Ze;var Qe=i("eN1s"),$e=i("TDx+"),ti=i("eAid"),ei=function(t){function e(){var e=t.call(this)||this;return e.className="DurationAxisDataItem",e.applyTheme(),e}return n.c(e,t),e}(l.b),ii=function(t){function e(){var e=t.call(this)||this;return e._baseUnit="second",e.className="DurationAxis",e.setPropertyValue("maxZoomFactor",1e6),e.applyTheme(),e}return n.c(e,t),e.prototype.formatLabel=function(t,e){return this.durationFormatter.format(t,e||this.axisDurationFormat)},e.prototype.adjustMinMax=function(e,i,a,r,s){var o,l,h,u=this.baseUnit;if(this.setPropertyValue("maxPrecision",0),"millisecond"==u||"second"==u||"minute"==u||"hour"==u){r<=1&&(r=1),r=Math.round(r);var c=e,d=i;0===a&&(a=Math.abs(i));var p,y=[60,30,20,15,10,2,1],g=1;"hour"==u&&(y=[24,12,6,4,2,1]);try{for(var f=n.g(y),x=f.next();!x.done;x=f.next()){var v=x.value;if(a/v>r){g=v;break}}}catch(t){l={error:t}}finally{try{x&&!x.done&&(h=f.return)&&h.call(f)}finally{if(l)throw l.error}}var b=Math.ceil((i-e)/g/r),P=Math.log(Math.abs(b))*Math.LOG10E,A=Math.pow(10,Math.floor(P))/10,C=b/A;p=g*(b=m.closest(y,C)*A),this.durationFormatter.getValueUnit(p,this.baseUnit),e=Math.floor(e/p)*p,i=Math.ceil(i/p)*p,s&&((e-=p)<0&&c>=0&&(e=0),(i+=p)>0&&d<=0&&(i=0)),o={min:e,max:i,step:p}}else o=t.prototype.adjustMinMax.call(this,e,i,a,r,s);return this.axisDurationFormat=this.durationFormatter.getFormat(o.step,o.max,this.baseUnit),o},Object.defineProperty(e.prototype,"tooltipDurationFormat",{get:function(){return this._tooltipDurationFormat},set:function(t){this._tooltipDurationFormat=t},enumerable:!0,configurable:!0}),e.prototype.getTooltipText=function(t){var e=m.round(this.positionToValue(t),this._stepDecimalPlaces);return this.adapter.apply("getTooltipText",this.formatLabel(e,this.tooltipDurationFormat))},Object.defineProperty(e.prototype,"baseUnit",{get:function(){return this._baseUnit},set:function(t){this._baseUnit!=t&&(this._baseUnit=t,this.durationFormatter.baseUnit=t,this.invalidate())},enumerable:!0,configurable:!0}),e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.baseUnit=e.baseUnit},e}(l.a);c.b.registeredClasses.DurationAxis=ii,c.b.registeredClasses.DurationAxisDataItem=ei;var ai=function(t){function e(){var e=t.call(this)||this;e.className="CircleBullet";var i=e.createChild(st.a);return i.shouldClone=!1,i.radius=5,i.isMeasured=!1,e.circle=i,e.applyTheme(),e}return n.c(e,t),e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.circle.copyFrom(e.circle)},e}(et.a);c.b.registeredClasses.CircleBullet=ai;var ni=function(t){function e(){var e=t.call(this)||this;return e.className="ErrorBullet",e.errorLine=e.createChild(S.a),e.errorLine.shouldClone=!1,e.width=20,e.height=20,e.strokeOpacity=1,e.isDynamic=!0,e}return n.c(e,t),e.prototype.validatePosition=function(){t.prototype.validatePosition.call(this);var e=this.pixelWidth/2,i=this.pixelHeight/2;this.errorLine.path=w.moveTo({x:-e,y:-i})+w.lineTo({x:e,y:-i})+w.moveTo({x:0,y:-i})+w.lineTo({x:0,y:i})+w.moveTo({x:-e,y:i})+w.lineTo({x:e,y:i})},e.prototype.copyFrom=function(e){t.prototype.copyFrom.call(this,e),this.errorLine.copyFrom(e.errorLine)},e}(et.a);c.b.registeredClasses.ErrorBullet=ni;var ri=i("Y9w3"),si=i("A6AV"),oi=i("Trvg"),li=i("Rnbi"),hi=function(t){function e(){var e=t.call(this)||this;return e.className="NavigationBarDataItem",e.applyTheme(),e}return n.c(e,t),Object.defineProperty(e.prototype,"name",{get:function(){return this.properties.name},set:function(t){this.setProperty("name",t)},enumerable:!0,configurable:!0}),e}(si.a),ui=function(t){function e(){var e=t.call(this)||this;e.className="NavigationBar";var i=new W.a,a=new oi.a;a.valign="middle",a.paddingTop=8,a.paddingBottom=8,e.paddingBottom=2,e.links=new o.e(a),e._disposers.push(new o.c(e.links)),e._disposers.push(a),e._linksIterator=new g.ListIterator(e.links,function(){return e.links.create()}),e._linksIterator.createNewItems=!0;var n=new li.a;n.direction="right",n.width=8,n.height=12,n.fill=i.getFor("alternativeBackground"),n.fillOpacity=.5,n.valign="middle",n.marginLeft=10,n.marginRight=10,e.separators=new o.e(n),e._disposers.push(new o.c(e.separators)),e._disposers.push(n);var r=new oi.a;return e.activeLink=r,r.copyFrom(a),r.valign="middle",r.fontWeight="bold",e.width=Object(Y.c)(100),e.layout="grid",e.dataFields.name="name",e.applyTheme(),e}return n.c(e,t),e.prototype.validateDataElements=function(){this.removeChildren(),this._linksIterator.reset(),t.prototype.validateDataElements.call(this)},e.prototype.validateDataElement=function(e){var i;if(t.prototype.validateDataElement.call(this,e),e.index<this.dataItems.length-1){(i=this._linksIterator.getLast()).parent=this;var a=this.separators.create();a.parent=this,a.valign="middle"}else(i=this.activeLink).events.copyFrom(this.links.template.events),i.hide(0),i.show(),i.parent=this;i.dataItem=e,i.text=e.name,i.validate()},e}(ri.a);c.b.registeredClasses.NavigationBar=ui,c.b.registeredClasses.NavigationBarDataItem=hi,window.am4charts=a}},["XFs4"]);
21
+ //# sourceMappingURL=charts.js.map
admin/js/amcharts/charts.js.map ADDED
@@ -0,0 +1 @@
 
1
+ {"version":3,"sources":["webpack:///../../../../../src/.internal/charts/axes/DateAxisBreak.ts","webpack:///../../../../../src/.internal/charts/axes/DateAxis.ts","webpack:///../../../../../src/.internal/charts/axes/CategoryAxisBreak.ts","webpack:///../../../../../src/.internal/charts/axes/CategoryAxis.ts","webpack:///../../../../../src/.internal/charts/series/XYSeries.ts","webpack:///../../../../../src/.internal/charts/cursors/Cursor.ts","webpack:///../../../../../src/.internal/charts/cursors/XYCursor.ts","webpack:///../../../../../src/.internal/charts/elements/XYChartScrollbar.ts","webpack:///../../../../../src/.internal/charts/types/XYChart.ts","webpack:///../../../../../src/.internal/charts/series/LineSeriesSegment.ts","webpack:///../../../../../src/.internal/charts/series/LineSeries.ts","webpack:///../../../../../src/.internal/charts/series/RadarSeries.ts","webpack:///../../../../../src/.internal/charts/cursors/RadarCursor.ts","webpack:///../../../../../src/.internal/charts/axes/AxisFillCircular.ts","webpack:///../../../../../src/.internal/charts/axes/GridCircular.ts","webpack:///../../../../../src/.internal/charts/axes/AxisRendererCircular.ts","webpack:///../../../../../src/.internal/charts/axes/AxisRendererRadial.ts","webpack:///../../../../../src/.internal/charts/types/RadarChart.ts","webpack:///../../../../../src/.internal/charts/elements/ClockHand.ts","webpack:///../../../../../src/.internal/charts/types/GaugeChart.ts","webpack:///../../../../../src/.internal/charts/series/PieSeries3D.ts","webpack:///../../../../../src/.internal/charts/types/PieChart3D.ts","webpack:///../../../../../src/.internal/charts/types/SlicedChart.ts","webpack:///../../../../../src/.internal/charts/elements/FlowDiagramNode.ts","webpack:///../../../../../src/.internal/charts/elements/FlowDiagramLink.ts","webpack:///../../../../../src/.internal/charts/types/FlowDiagram.ts","webpack:///../../../../../src/.internal/charts/elements/LabelBullet.ts","webpack:///../../../../../src/.internal/charts/elements/SankeyNode.ts","webpack:///../../../../../src/.internal/charts/elements/SankeyLink.ts","webpack:///../../../../../src/.internal/charts/types/SankeyDiagram.ts","webpack:///../../../../../src/.internal/charts/elements/ChordNode.ts","webpack:///../../../../../src/.internal/core/elements/QuadraticCurve.ts","webpack:///../../../../../src/.internal/charts/elements/ChordLink.ts","webpack:///../../../../../src/.internal/charts/types/ChordDiagram.ts","webpack:///../../../../../src/.internal/charts/elements/Column.ts","webpack:///../../../../../src/.internal/charts/series/ColumnSeries.ts","webpack:///../../../../../src/.internal/charts/series/TreeMapSeries.ts","webpack:///../../../../../src/.internal/charts/types/TreeMap.ts","webpack:///../../../../../src/.internal/charts/axes/AxisRendererX3D.ts","webpack:///../../../../../src/.internal/charts/axes/AxisRendererY3D.ts","webpack:///../../../../../src/.internal/charts/elements/Column3D.ts","webpack:///../../../../../src/.internal/charts/series/ColumnSeries3D.ts","webpack:///../../../../../src/.internal/charts/types/XYChart3D.ts","webpack:///../../../../../src/.internal/charts/elements/Candlestick.ts","webpack:///../../../../../src/.internal/charts/series/CandlestickSeries.ts","webpack:///../../../../../src/.internal/charts/elements/OHLC.ts","webpack:///../../../../../src/.internal/charts/series/OHLCSeries.ts","webpack:///../../../../../src/.internal/charts/series/StepLineSeriesSegment.ts","webpack:///../../../../../src/.internal/charts/series/StepLineSeries.ts","webpack:///../../../../../src/.internal/charts/elements/RadarColumn.ts","webpack:///../../../../../src/.internal/charts/series/RadarColumnSeries.ts","webpack:///../../../../../src/.internal/charts/elements/FunnelSlice.ts","webpack:///../../../../../src/.internal/charts/elements/FunnelTick.ts","webpack:///../../../../../src/.internal/charts/series/FunnelSeries.ts","webpack:///../../../../../src/.internal/charts/series/PyramidSeries.ts","webpack:///../../../../../src/.internal/charts/series/PictorialStackedSeries.ts","webpack:///../../../../../src/.internal/charts/elements/ConeColumn.ts","webpack:///../../../../../src/.internal/charts/series/ConeSeries.ts","webpack:///../../../../../src/.internal/charts/elements/CurvedColumn.ts","webpack:///../../../../../src/.internal/charts/series/CurvedColumnSeries.ts","webpack:///../../../../../src/.internal/charts/axes/DurationAxis.ts","webpack:///../../../../../src/.internal/charts/elements/CircleBullet.ts","webpack:///../../../../../src/.internal/charts/elements/ErrorBullet.ts","webpack:///../../../../../src/.internal/charts/elements/NavigationBar.ts","webpack:///./charts.js"],"names":["DateAxisBreak_DateAxisBreak","_super","DateAxisBreak","_this","call","this","className","applyTheme","tslib_es6","Object","defineProperty","prototype","getPropertyValue","value","setPropertyValue","startValue","getTime","axis","invalidate","invalidateSeries","endValue","ValueAxisBreak","Registry","registeredClasses","DateAxis_DateAxisDataItem","DateAxisDataItem","values","date","endDate","dates","setDate","ValueAxis","DateAxis_DateAxis","DateAxis","gridIntervals","List","dateFormats","Dictionary","periodChangeDateFormats","_baseIntervalReal","timeUnit","count","_minDifference","snapTooltip","pushAll","axisFieldName","fillRule","dataItem","component","gridInterval","_gridInterval","gridDuration","Time","Math","round","min","axisFill","__disabled","applyInternalDefaults","hasKey","setKey","language","translate","createDataItem","createAxisBreak","validateDataItems","start","end","periodCount","max","baseDuration","maxZoomFactor","_deltaMinMax","zoom","handleSelectionExtremesChange","calculateZoom","chooseInterval","adjustDifference","_minZoomed","_maxZoomed","_gridCount","baseInterval","_gridDate","Date","getFirstWeekDay","dateFormatter","utc","_nextGridUnit","_intervalDuration","ceil","_difference","floor","Iterator","series","iterator","baseAxis","field_1","getAxisField","minZoomed","minZoomedStr","toString","startDataItem","dataItemsByAxis","getKey","uid","startIndex","findFirst","index","dataItems","findClosestIndex","x","maxZoomed","maxZoomedStr","endDataItem","endIndex","length","time","key","previousDataItem","getIndex","previousDate","validateData","Type","minDifference","Number","MAX_VALUE","each","seriesDataChangeUpdate","postProcessSeriesDataItems","JSON","stringify","_baseInterval","postProcessSeriesDataItem","addEmptyUnitsBreaks","utils_Object","getDate","startTime","setCalculatedValue","skipEmptyPeriods","axisBreaks","clear","axisBreak","this_1","startTimeStr","undefined","create","startDate","fixAxisBreaks","breakGridCount","endPosition","startPosition","adjustedEndValue","adjustedStartValue","gridDate","firstDayOfWeek","getGridDate","intervalCount","realIntervalCount","prevTimestamp","newDate","timestamp","isInBreak","durationBreaksRemoved","getBreaklessDate","validateAxisElements","prevGridDate","dataItemsIterator_1","_dataItemsIterator","resetIterators","this_2","format","markUnitChange","text","find","appendDataItem","validateDataElement","renderer_1","renderer","breakSize","timeUnit_1","intervalCount_1","utils_Math","startPoint","endPoint","minGridDistance","prevGridDate_1","timestamp_1","text_1","moveValue","adjustedMax","endTimestamp","position","valueToPosition","fillEndPosition","isRange","tick","disabled","updateTickElement","grid","updateGridElement","fill","updateFillElement","mask","label","location_1","location","updateLabelElement","adjustMinMax","step","fixMin","startLocation","fixMax","endLocation","duration","gridCount","intervalDuration","lastIndex","formatLabel","dateToPosition","anyToPosition","dateToPoint","point","positionToPoint","angle","positionToAngle","y","anyToPoint","valueToPoint","positionToDate","positionToValue","getX","getTimeByLocation","baseValue","getY","stack","getValue","getAngle","stackKey","workingLocations","endTime","processSeriesDataItem","axisLetter","openTime","openDate","prevSeriesTime","_prevSeriesTime","difference","abs","differece","updateAxisBySeries","timeInterval","invalidateData","breakTemplate","template","startLine","endLine","fillShape","getTooltipText","tooltipDateFormat","dateFormat","getPositionLabel","adapter","apply","roundPosition","getCellStartPosition","getCellEndPosition","getSeriesDataItem","findNearest","key_1","Infinity","getCurrentLabelFormat","initRenderer","ticks","labels","baseGrid","zoomToDates","skipRangeEvent","instantly","parse","zoomToValues","asIs","field","copyFrom","source","showTooltipAtPosition","local","toAxisPosition","closestDate_1","actualTime_1","xAxis","dateX","yAxis","dateY","closestTime_1","tooltipLocation","showTooltipAtDataItem","chart","_seriesPoints","push","tooltipText","hideTooltip","makeGap","previous","connect","autoGapCount","CategoryAxisBreak_CategoryAxisBreak","CategoryAxisBreak","indexToPosition","invalidateDataItems","category","categoryToIndex","AxisBreak","CategoryAxis_CategoryAxisDataItem","CategoryAxisDataItem","Adapter","seriesDataItems","locations","endCategory","isEnabled","properties","setProperty","Axis","CategoryAxis_CategoryAxis","CategoryAxis","dataItemsByCategory","_lastDataItem","_disposers","categoryAxisDataItem","seriesId","validateDataRange","_series","invalidateDataRange","positionToIndex","minIndex","maxIndex","i","axisDataItem","i_1","seriesDataItem","validate","dataCount","invalid","maxCount","axisLength","frequency","_startIndex","_endIndex","_frequency","itemIndex","len","frequency_1","itemIndex_1","b","validateBreaks","validateAxisRanges","ghostLabel","invalidateLayout","fillEndIndex","fillPosition","measuredWidth","measuredHeight","currentText","disposeData","processDataItem","dataContext","getDataItem","dataFields","breakStartIndex","breakEndIndex","categoryToPosition","categoryToPoint","zoomToCategories","startCategory","zoomToIndexes","getAnyRangePath","startPos","endPos","getPositionRangePath","getFirstSeriesDataItem","categoryX","categoryY","getLastSeriesDataItem","index_1","sdi_1","category_1","categories","basePoint","breakStartPosition","breakEndPosition","breakPosition","positionToCategory","XYSeries_XYSeriesDataItem","XYSeriesDataItem","valueX","valueY","openValueX","openValueY","openDateX","openDateY","setLocation","setValue","setCategory","openCategoryX","openCategoryY","getMin","fields","working","stackValue","utils_Array","getWorkingValue","getMax","Series","XYSeries_XYSeries","XYSeries","_xAxis","Disposer","_yAxis","_xValueFields","_yValueFields","isMeasured","cursorTooltipEnabled","cursorHoverEnabled","mainContainer","Sprite","setElement","paper","add","stacked","tooltip","pointerOrientation","events","on","returnBulletDefaultState","readerTitle","dataChangeUpdate","_tmin","_tmax","_smin","_smax","defineFields","data","updateItemReaderText","_xField","_yField","Error","name","disable","enable","setInitialWorkingValues","e","_chart","raiseCriticalError","dataItemsX","clearCatAxis","dataItemsY","xAxisFieldName","xField","xOpenField","Utils","yAxisFieldName","yField","yOpenField","_xOpenField","_yOpenField","addValueField","indexOf","setCategoryAxisField","setDateAxisField","afterDraw","createMask","path_1","getMaskPath","axisRanges","range","fillPath","path","Path","width","height","dataRangeInvalid","pixelY","pixelX","_showBullets","minBulletDistance","get","xAxes","oldAxis","removeKey","dispose","removeValue","set","registerSeries","yAxes","_baseAxis","processValues","minX","maxX","minY","maxY","getStackValue","stackX","stackY","processSeriesDataItems","xAxisId","yAxisId","stackedSeries","dispatchImmediately","appeared","_prevTooltipDataItem","xPosition","yPosition","visible","isHiding","isShowing","updateLegendValue","tooltipDataItem","tooltipXField","tooltipYField","tooltipPoint","getPoint","tooltipX","tooltipY","type","target","_a","sprites","_b","next","done","sprite","parent","isHidden","isHover","showTooltip","isDisposed","shouldCreateBullet","bulletTemplate","hasValue","positionBullet","bullet","bulletLocationX","getBulletLocationX","bulletLocationY","getBulletLocationY","locationX","locationY","moveTo","bulletLocation","show","anim","delay","interpolationDuration","defaultState","transitionDuration","a","sequencedInterpolation","sequencedInterpolationDelay","animation","isFinished","hide","hiddenState","validateDataElements","handleDataItemWorkingValueChange","axisSeries","invalidateProcessedData","backwards","prevSeries","prevDataItem","prevValue","_tooltipXField","_tooltipYField","selectionMin","selectionMax","processConfig","config","map","processingErrors","xKey","yKey","stackKeyX","stackKeyY","val","itemReaderText","Cursor_Cursor","Cursor","_stick","Percent","shouldClone","trackable","clickable","interaction","Interaction","body","handleCursorDown","handleCursorUp","handleCursorMove","event","interactionsEnabled","interactions","isTouchProtected","touch","_generalBehavior","downPoint","isLocalElement","pointer","svg","_stickPoint","fitsToBounds","triggerMove","hideReal","stick","triggerMoveReal","invalidatePosition","getPositions","dispatch","triggerDown","triggerDownReal","setGlobalStyle","Mouse","grabbing","triggerUp","triggerUpReal","updatePoint","upPoint","_upPointOrig","_downPointOrig","getHitOption","default","updateSelection","innerWidth","innerHeight","cancelable","shouldPreventGestures","preventDefault","plotContainer","lockElement","Container","XYCursor_XYCursor","XYCursor","_lineX","_lineY","behavior","maxPanOut","interfaceColors","InterfaceColorSet","selection","createChild","fillOpacity","getFor","lineX","stroke","Color","strokeDasharray","strokeOpacity","lineY","updateSize","_usesSelection","w","_positionPrecision","h","pixelHeight","pixelWidth","validatePosition","fixPoint","snapToSeries","updateLinePositions","getPanningRanges","selectionX","selectionY","getRanges","startX","startY","deltaX","deltaY","xRange","yRange","endX","endY","handleXTooltipPosition","handleYTooltipPosition","fullWidthLineX","currentItemStartPoint","currentItemEndPoint","fullWidthLineY","reset","_selection","element","_snapToDisposer","handleSnap","opposite","xx","yy","animationDuration","easing","animationEasing","animate","property","to","XYChartScrollbar_XYChartScrollbar","XYChartScrollbar","padding","scrollbarChart","XYChart_XYChart","margin","_scrollbarChart","minHeight","minWidth","unselectedOverlay","toBack","_unselectedOverlay","background","cornerRadius","thumbBackground","thumb","hoverState","states","downState","handleSeriesAdded","handleSeriesRemoved","sourceSeries","newValue","zoomOutButton","addXAxis","addYAxis","clone","title","rangeChangeDuration","id","inside","line","minLabelPosition","maxLabelPosition","axisFills","showOnInit","zoomOutAxes","filters","DesaturateFilter","updateByOrientation","orientation","clonedFrom","oldValue","off","handleDataChanged","dataProvider","updateThumb","Scrollbar","XYChart_XYChartDataItem","XYChartDataItem","SerialChart","XYChart","_axisRendererX","AxisRendererX","_axisRendererY","AxisRendererY","maskBullets","arrangeTooltips","chartContainer","layout","topAxesCont","zIndex","topAxesContainer","yAxesAndPlotCont","yAxesAndPlotContainer","bottomAxesCont","bottomAxesContainer","leftAxesCont","contentAlign","updateXAxesMargins","leftAxesContainer","plotCont","mouseWheelBehavior","_cursorContainer","rightAxesCont","rightAxesContainer","seriesContainer","bulletsContainer","ZoomOutButton","align","valign","MAX_SAFE_INTEGER","marginTop","marginRight","_bulletMask","exportable","draw","toFront","updateSeriesLegend","updatePlotElements","_parseDataFrom","leftAxesWidth","rightAxesWidth","paddingLeft","paddingRight","handleXAxisChange","updateXAxis","handleYAxisChange","updateYAxis","processXAxis","observe","handleXAxisRangeChange","processAxis","processYAxis","handleYAxisRangeChange","getCommonAxisRange","scrollbarX","zoomAxes","toggleZoomOutButton","updateScrollbar","show_1","seriesAppeared","scrollbarY","scrollbar","skipRangeEvents","axes","axisStart","axisEnd","inversed","processRenderer","_dataUsers","gridContainer","breakContainer","addDisposer","dataUsers","inited","updateSeriesMasks","_xAxes","handleAxisRemoval","autoDispose","_yAxes","removeFromInvalidComponents","dataInvalid","colors","_cursor","cursor","removeDispose","handleCursorPositionChange","handleCursorZoomStart","handleCursorZoomEnd","handleCursorPanStart","handleCursorPanning","handleCursorPanEnd","handleCursorCanceled","handleHideCursor","tapToActivate","setTapToActivate","createCursor","showSeriesTooltip","exceptAxis","showAxisTooltip","sortSeriesTooltips","hideObjectTooltip","seriesPoints","setBounds","topLeft","bottomRight","sum","filteredSeriesPoints","seriesPoint","sort","averageY","svgContainer","SVGContainer","top_1","bottom","dropped","nextHeight","pointY","pixelMarginTop","nextY","pixelMarginBottom","except","getUpdatedRange","priority","_panStartXRange","_panStartYRange","_panEndXRange","delta","panEndRange","_panEndYRange","panStartRange","axisRange","newStart","newEnd","newRange","_scrollbarX","startGrip","endGrip","handleXScrollbarChange","arg","_scrollbarY","handleYScrollbarChange","fixRange","declination","realRange","handleWheel","svgPoint","htmlContainer","cssScale","plotPoint","shift","rangeX","rangeY","differenceX","newStartX","newEndX","differenceY","newStartY","newEndY","maxWidth","maxHeight","_mouseWheelDisposer","wheelable","hoverable","dataSourceDateFields","populateDataSourceFields","dataSourceNumberFields","configOrder","createSeries","_zoomOutButton","button","addData","rawDataItem","removeCount","handleTapToActivate","handleTapToActivateDeactivation","Responsive","relevant","maybeXS","state","stateId","LineSeriesSegment_LineSeriesSegment","LineSeriesSegment","fillSprite","strokeSprite","drawSegment","points","closePoints","smoothnessX","smoothnessY","Smoothing","smooth","lineElement","fillElement","LineSeries_LineSeriesDataItem","LineSeriesDataItem","LineSeries_LineSeries","LineSeries","minDistance","segments","createSegment","applyOnClones","_segmentsIterator","createNewItems","tensionX","tensionY","segmentsContainer","initialY","workingValue","setWorkingValue","setWorkingLocation","initialX","segment","tooltipColorSource","openSegmentWrapper","_adjustedStartIndex","sliceData","findAdjustedIndex","_workingStartIndex","_workingEndIndex","adjustedIndex","propertyFields","openIndex","params","openSegment","addToClose","closeIndex","propertiesChanged","getFirst","contents","hasProperties","updateSegmentProperties","addPoints","closeSegment","itemProperties","checkOnly","changed","propertyName","currentValue","currentValueStr","valueStr","createLegendMarker","marker","disposeChildren","Line","x2","Rectangle","legendDataItem","color","colorOrig","bullets","Bullet","copyToLegendMarker","hasLabels","children","child","Label","RadarSeries_RadarSeriesDataItem","RadarSeriesDataItem","RadarSeries_RadarSeries","RadarSeries","connectEnds","radius","startAngle","endAngle","pixelRadius","pixelInnerRadius","unshift","RadarCursor_RadarCursor","RadarCursor","innerRadius","truePixelRadius","updateLineX","updateLineY","fillStartAngle","arc","downAngle","downRadius","currentRadius","_prevAngle","downSin","downCos","sin","cos","upAngle","upRadius","setPercentProperty","innerRadiusModifyer","AxisFillCircular_AxisFillCircular","AxisFillCircular","AxisFill","GridCircular_GridCircular","GridCircular","pixelPerfect","Grid","AxisRendererCircular_AxisRendererCircular","AxisRendererCircular","pixelRadiusReal","useChartAngles","setAxis","atan2","PI","coordinate","positionToCoordinate","updateAxisLine","gridInnerRadius","toggleVisibility","tickLength","fixPosition","invalidateAxisItems","createGrid","createFill","createLabel","AxisLabelCircular","pointToPosition","coordinateToPosition","AxisRenderer","AxisRendererRadial_AxisRendererRadial","AxisRendererRadial","gridType","axisAngle","horizontalCenter","verticalCenter","rotation","gridLocation","count_1","cellEndLocation","positionItem","updateBaseGridElement","count_2","updateBreakElement","createBreakSprites","WavedCircle","updateTooltip","tooltipOrientation","bigNum","axisFullLength","RadarChart_RadarChartDataItem","RadarChartDataItem","RadarChart_RadarChart","RadarChart","radarContainer","Circle","opacity","beforeDraw","rect","innerRect","wr","hr","mr","maxRadius","diameter","_pixelInnerRadius","definedBBox","ClockHand_ClockHand","ClockHand","_axis","pin","startWidth","endWidth","hand","Trapezoid","leftSide","rightSide","x0","x1","_pin","_hand","showValue","_value","newAngle","currentAngle","rotationDirection","updateValue","GaugeChart_GaugeChartDataItem","GaugeChartDataItem","GaugeChart_GaugeChart","GaugeChart","hands","processHand","PieSeries3D_PieSeries3DDataItem","PieSeries3DDataItem","depthValue","PieSeries","PieSeries3D_PieSeries3D","PieSeries3D","createSlice","Slice3D","slice","depth","depthPercent","percent","PieChart3D_PieChart3DDataItem","PieChart3DDataItem","PieChart","PieChart3D_PieChart3D","PieChart3D","invalidateDataUsers","SlicedChart_SlicedChartDataItem","SlicedChartDataItem","PercentChart","SlicedChart_SlicedChart","SlicedChart","FlowDiagramNode_FlowDiagramNode","FlowDiagramNode","legendSettings","Legend","draggable","inert","setStateOnChildren","invalidateLinks","handleHit","outgoingDataItems","toNode","incomingDataItems","fromNode","link","colorMode","gradient","stop_1","stops","stop_2","_incomingDataItems","sortBy","_incomingSorted","utils_String","fromName","Order","utils_Number","_outgoingDataItems","_outgoingSorted","setColorProperty","_background","removeChildren","column","RoundedRectangle","_legendDataItem","itemContainer","deepInvalidate","FlowDiagramLink_FlowDiagramLink","FlowDiagramLink","positionBullets","_bulletsContainer","_bulletsMask","bulletsMask","middleLine","rotationField","addColor","setFill","_gradient","measureElement","_bullets","Polyline","getTooltipX","getTooltipY","LinearGradient","FlowDiagram_FlowDiagramDataItem","FlowDiagramDataItem","toName","_link","link_1","links","addSprite","Chart","FlowDiagram_FlowDiagram","FlowDiagram","ColorSet","nodePadding","minNodeSize","linksContainer","nodesContainer","nodes","sortNodes","low","high","node","strokeModifier","LinearGradientModifier","opacities","fillModifier","strNode","getNodeValue","feedLegend","_sorted","sortedIterator","total","incomingTotal","outgoingTotal","totalIncoming","totalOutgoing","changeSorting","_nodes","createNode","_links","createLink","legend","legendData_1","LabelBullet_LabelBullet","LabelBullet","truncate","hideOversized","handleMaxSize","SankeyNode_SankeyNode","SankeyNode","nextInCoord","nextOutCoord","nameLabel","valueLabel","orientation_1","dx","dy","linkWidth","valueHeight","SankeyLink_SankeyLink","SankeyLink","tension","controlPointDistance","Polyspline","isTemplate","y0","y1","xt0","yt0","xt1","yt1","xb0","xb1","yb0","yb1","xm0","xm1","ym0","ym1","_bbox","cpd","kxt0","kyt0","kxt1","kyt1","kxm0","kym0","kxm1","kym1","kxb0","kyb0","kxb1","kyb1","SankeyDiagram_SankeyDiagramDataItem","SankeyDiagramDataItem","SankeyDiagram_SankeyDiagram","SankeyDiagram","nodeAlign","_levelCount","level","getNodeLevel","levels","calculateValueHeight","_levelSum","_levelNodesCount","maxSum","availableHeight","maxSumLevel","realValue","_maxSumLevel","maxSumLevelNodeCount","finalHeight","_heightAnimation","animationOptions","err","Animation","from","container","nextCoordinate","levelCoordinate","nodeCount","showReal","container_1","interpolationEasing","nodeHeight","_valueHeight","ChordNode_ChordNode","ChordNode","updateRotation","Slice","ix","iy","arc_1","sliceStartAngle_1","childAngle","childRadius","labelAngle","adjustedTotal","nextAngle","nonRibbon","percentWidth","valueAngle","mAngle","trueStartAngle","tx","ty","QuadraticCurve_QuadraticCurve","QuadraticCurve","y2","cpx","cpy","p1","p2","cp","d","point1","point2","ChordLink_ChordLink","ChordLink","fromX","fromY","toX","toY","mAngle1","mAngle2","ChordDiagram_ChordDiagramDataItem","ChordDiagramDataItem","ChordDiagram_ChordDiagram","ChordDiagram","chordContainer","newTotal","Column_Column","Column","createAssets","handleKidAdded","ColumnSeries_ColumnSeriesDataItem","ColumnSeriesDataItem","_column","setColumn","columns","_rangesColumns","ColumnSeries_ColumnSeries","ColumnSeries","_startLocation","_endLocation","clustered","columnsContainer","_columnsContainer","baseAxisSeries","clusterCount","cellStartLocation","disableUnusedColumns","validateDataElementReal","getStartLocation","simplifiedProcessing","getEndLocation","l","r","t","percentHeight","pixelPaddingLeft","pixelPaddingRight","paddingTop","pixelPaddingTop","paddingBottom","pixelPaddingBottom","outOfBounds","offset","fixHorizontalCoordinate","fixVerticalCoordinate","bottomLocation","topLocation","axisLenght","rightLocation","leftLocation","column_1","itemsFocusable","role","focusable","once","ev","populateString","realX","realY","realWidth","realHeight","virtualParent","setColumnStates","rangeColumn","rangesColumns","itemWidth","itemHeight","open_1","change","droppedFromOpen","_dropFromOpenState","setState","_riseFromOpenState","droppedFromPrevious","_dropFromPreviousState","_riseFromPreviousState","_columns","createColumnTemplate","fromOpenState_1","fromPreviousState_1","TreeMapSeries_TreeMapSeriesDataItem","TreeMapSeriesDataItem","treeMapDataItem","_dataContext","TreeMapSeries_TreeMapSeries","TreeMapSeries","configField","TreeMap_TreeMapDataItem","TreeMapDataItem","rows","hasChildren","getDuration","childValue","TreeMap_TreeMap","TreeMap","layoutAlgorithm","squarify","zoomable","maxLevels","currentLevel","sorting","strictMinMax","xRenderer","yRenderer","seriesTemplates","zoomToChartDataItem","_homeDataItem","_navigationBar","navigationBar","createTreeSeries","_tempSeries","homeDataItem","_homeText","getMinMax","layoutItems","_updateDataItemIndexes","navigationData","parentDataItem","initSeries","reverse","createTreeSeriesReal","setData","currentlyZoomed","remove","cursorOverStyle","zoomToSeriesDataItem","toggleBullets","rangeChangeAnimation","_dataDisposers","binaryTree","dice","sliceDice","validateLayout","validateRawData","n","sums","Array","partition","j","valueOffset","valueTarget","k","hi","mid","valueLeft","valueRight","xk","yk","nodeValue","sumValue","minValue","maxValue","newRatio","minRatio","alpha","beta","ratio","sqrt","i0","i1","row","handleDataItemValueChange","hiddenInLegend","AxisRendererX3D_AxisRendererX3D","AxisRendererX3D","dx3D","dy3D","getHeight","handle3DChanged","AxisRendererY3D_AxisRendererY3D","AxisRendererY3D","getWidth","Column3D_Column3D","Column3D","column3D","Rectangle3D","ColumnSeries3D_ColumnSeries3DDataItem","ColumnSeries3DDataItem","ColumnSeries3D_ColumnSeries3D","ColumnSeries3D","XYChart3D_XYChart3DDataItem","XYChart3DDataItem","XYChart3D_XYChart3D","XYChart3D","fixLayout","fixColumns","depthIndex","s","inversed_1","maskColumns","Candlestick_Candlestick","Candlestick","lowLine","highLine","CandlestickSeries_CandlestickSeriesDataItem","CandlestickSeriesDataItem","lowValueX","lowValueY","highValueX","highValueY","CandlestickSeries_CandlestickSeries","CandlestickSeries","positiveColor","negativeColor","dropFromOpenState","riseFromOpenState","validateCandlestick","lowLine_1","highLine_1","close_1","yOpen","yClose","yLow","yLowField","yHigh","yHighField","open_2","close_2","xOpen","xClose","xLow","xLowField","xHigh","xHighField","rangeLowLine","rangehighLine","_xLowField","_yLowField","_xHighField","_yHighField","cw","ch","OHLC_OHLC","OHLC","openLine","highLowLine","closeLine","OHLCSeries_OHLCSeriesDataItem","OHLCSeriesDataItem","OHLCSeries_OHLCSeries","OHLCSeries","openLine_1","highLowLine_1","closeLine_1","rangeOpenLine","rangeCloseLine","rangeHighLowLine","StepLineSeriesSegment_StepLineSeriesSegment","StepLineSeriesSegment","noRisers","vertical","StepLineSeries_StepLineSeriesDataItem","StepLineSeriesDataItem","StepLineSeries_StepLineSeries","StepLineSeries","prevPoint","point0","RadarColumn_RadarColumn","RadarColumn","radarColumn","RadarColumnSeries_RadarColumnSeriesDataItem","RadarColumnSeriesDataItem","RadarColumnSeries_RadarColumnSeries","RadarColumnSeries","lAngle","rAngle","tRadius","bRadius","cellAngle","temp","FunnelSlice_FunnelSlice","FunnelSlice","bottomWidth","topWidth","expandDistance","pt","pb","pr","pl","ed","tl","tw","tr","br","bw","bl","cpr","cpl","qp1","qp2","tickPoint","tt","tb","bt","bb","mlx","mty","FunnelTick_FunnelTick","FunnelTick","_label","_slice","labelsOpposite","maxRight","p0","maxBottom","Tick","FunnelSeries_FunnelSeriesDataItem","FunnelSeriesDataItem","_sliceLink","sliceLink_1","sliceLinks","slicesContainer","PercentSeries","FunnelSeries_FunnelSeries","FunnelSeries","_nextY","labelsContainer","bottomRatio","createTick","initSlice","scale","handleSliceScale","handleSliceMove","initLabel","labelTemplate","alignLabels","dItem","_total","_count","arrangeLabels","getNextValue","nextValue","nextItem","formDataElement","sliceLink","decorateSlice","linkHeight","lastLabel","lastY","lastX","_sliceLinks","setAlignLabels","labelAlign","labelValign","PyramidSeries_PyramidSeriesDataItem","PyramidSeriesDataItem","PyramidSeries_PyramidSeries","PyramidSeries","pyramidHeight","valueIs","_nextWidth","relValue","_pyramidHeight","_pyramidWidth","ticksContainer","pyramidWidth","sliceTopWidth","c","tan","sliceHeight","sliceBottomWidth","square","sliceWidth","PictorialStackedSeries_PictorialStackedSeriesDataItem","PictorialStackedSeriesDataItem","PictorialStackedSeries_PictorialStackedSeries","PictorialStackedSeries","_maskSprite","maskSprite","pictureWidth","pictureHeight","newWidth","newHeight","slices","hs","ConeColumn_ConeColumn","ConeColumn","coneColumn","Cone","ConeSeries_ConeSeriesDataItem","ConeSeriesDataItem","ConeSeries_ConeSeries","ConeSeries","radiusY","CurvedColumn_CurvedColumn","CurvedColumn","curvedColumn","CurvedColumnSeries_CurvedColumnSeriesDataItem","CurvedColumnSeriesDataItem","CurvedColumnSeries_CurvedColumnSeries","CurvedColumnSeries","DurationAxis_DurationAxisDataItem","DurationAxisDataItem","DurationAxis_DurationAxis","DurationAxis","_baseUnit","durationFormatter","axisDurationFormat","strictMode","minMaxStep","baseUnit","initialMin","initialMax","divisors","realDivisor","divisors_1","divisors_1_1","divisor","exponent","log","LOG10E","power","pow","reducedCount","getValueUnit","getFormat","_tooltipDurationFormat","_stepDecimalPlaces","tooltipDurationFormat","CircleBullet_CircleBullet","CircleBullet","circle","ErrorBullet_ErrorBullet","ErrorBullet","errorLine","isDynamic","NavigationBar_NavigationBarDataItem","NavigationBarDataItem","DataItem","NavigationBar_NavigationBar","NavigationBar","textLink","TextLink","_linksIterator","triangle","Triangle","direction","marginLeft","separators","activeLink","fontWeight","getLast","separator","Component","window","am4charts","charts_namespaceObject"],"mappings":"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","file":"charts.js","sourcesContent":["/**\r\n * DateAxisBreak includes functionality to add breaks on a [[DateAxis]].\r\n *\r\n * A \"break\" can be used to \"cut out\" specific ranges of the axis scale, e.g.\r\n * weekends and holidays out of the Date-based axis.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\nimport { ValueAxisBreak, IValueAxisBreakProperties, IValueAxisBreakAdapters, IValueAxisBreakEvents } from \"./ValueAxisBreak\";\r\nimport { DateAxis } from \"./DateAxis\";\r\nimport { ITimeInterval } from \"../../core/defs/ITimeInterval\";\r\nimport { registry } from \"../../core/Registry\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[DateAxisBreak]].\r\n */\r\nexport interface IDateAxisBreakProperties extends IValueAxisBreakProperties {\r\n\r\n\t/**\r\n\t * A `Date` break starts on.\r\n\t */\r\n\tstartDate?: Date;\r\n\r\n\t/**\r\n\t * A `Date` break ends on.\r\n\t */\r\n\tendDate?: Date;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[DateAxisBreak]]\r\n */\r\nexport interface IDateAxisBreakEvents extends IValueAxisBreakEvents { }\r\n\r\n/**\r\n * Defines adapters for [[DateAxisBreak]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IDateAxisBreakAdapters extends IValueAxisBreakAdapters, IDateAxisBreakProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Class used to define breaks for [[DateAxis]].\r\n *\r\n * A \"break\" can be used to \"cut out\" specific ranges of the axis scale, e.g.\r\n * weekends and holidays out of the Date-based axis.\r\n *\r\n * @see {@link IDateAxisBreakEvents} for a list of available events\r\n * @see {@link IDateAxisBreakAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class DateAxisBreak extends ValueAxisBreak {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IDateAxisBreakProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IDateAxisBreakAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IDateAxisBreakEvents;\r\n\r\n\t/**\r\n\t * Defines the type of the Axis this break is used for.\r\n\t */\r\n\tpublic _axisType: DateAxis;\r\n\r\n\t/**\r\n\t * [gridInterval description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic gridInterval: ITimeInterval;\r\n\r\n\t/**\r\n\t * [gridDate description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic gridDate: Date;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"DateAxisBreak\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Starting date for the break.\r\n\t *\r\n\t * @param value Start date\r\n\t */\r\n\tpublic set startDate(value: Date) {\r\n\t\tif (this.setPropertyValue(\"startDate\", value)) {\r\n\t\t\tthis.startValue = value.getTime();\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tthis.axis.invalidate();\r\n\t\t\t\tthis.axis.invalidateSeries();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Start date\r\n\t */\r\n\tpublic get startDate(): Date {\r\n\t\treturn this.getPropertyValue(\"startDate\");\r\n\t}\r\n\r\n\t/**\r\n\t * Ending date for the break.\r\n\t *\r\n\t * @param value End date\r\n\t */\r\n\tpublic set endDate(value: Date) {\r\n\t\tif (this.setPropertyValue(\"endDate\", value)) {\r\n\t\t\tthis.endValue = value.getTime();\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tthis.axis.invalidate();\r\n\t\t\t\tthis.axis.invalidateSeries();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return End date\r\n\t */\r\n\tpublic get endDate(): Date {\r\n\t\treturn this.getPropertyValue(\"endDate\");\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"DateAxisBreak\"] = DateAxisBreak;\r\n\n\n\n// WEBPACK FOOTER //\n// ../../../../../src/.internal/charts/axes/DateAxisBreak.ts","/**\r\n * DateAxis module\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { ValueAxis, ValueAxisDataItem, IValueAxisProperties, IValueAxisDataFields, IValueAxisAdapters, IValueAxisEvents } from \"./ValueAxis\";\r\nimport { AxisItemLocation } from \"./Axis\";\r\nimport { AxisRenderer } from \"./AxisRenderer\";\r\nimport { AxisTick } from \"./AxisTick\";\r\nimport { AxisLabel } from \"./AxisLabel\";\r\nimport { AxisFill } from \"./AxisFill\";\r\nimport { List } from \"../../core/utils/List\";\r\nimport { Dictionary } from \"../../core/utils/Dictionary\";\r\nimport { IPoint, IOrientationPoint } from \"../../core/defs/IPoint\";\r\nimport { Grid } from \"./Grid\";\r\nimport { XYSeries, XYSeriesDataItem } from \"../series/XYSeries\";\r\nimport { LineSeriesDataItem } from \"../series/LineSeries\";\r\nimport { TimeUnit } from \"../../core/defs/TimeUnit\";\r\nimport { ITimeInterval } from \"../../core/defs/ITimeInterval\";\r\nimport { IMinMaxStep } from \"./ValueAxis\";\r\nimport { DateAxisBreak } from \"./DateAxisBreak\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $time from \"../../core/utils/Time\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $object from \"../../core/utils/Object\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data item for [[DateAxis]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class DateAxisDataItem extends ValueAxisDataItem {\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: DateAxis;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"DateAxisDataItem\";\r\n\t\tthis.applyTheme();\r\n\r\n\t\tthis.values.date = {};\r\n\t\tthis.values.endDate = {};\r\n\t}\r\n\r\n\t/**\r\n\t * Date position of the data item.\r\n\t *\r\n\t * @param date Date\r\n\t */\r\n\tpublic set date(date: Date) {\r\n\t\tthis.setDate(\"date\", date);\r\n\t\tthis.value = date.getTime();\r\n\t}\r\n\r\n\t/**\r\n\t * @return Date\r\n\t */\r\n\tpublic get date(): Date {\r\n\t\treturn this.dates[\"date\"];\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * End date for data item.\r\n\t *\r\n\t * @param date End date\r\n\t */\r\n\tpublic set endDate(date: Date) {\r\n\t\tthis.setDate(\"endDate\", date);\r\n\t\tthis.endValue = date.getTime();\r\n\t}\r\n\r\n\t/**\r\n\t * @return End date\r\n\t */\r\n\tpublic get endDate(): Date {\r\n\t\treturn this.dates[\"endDate\"];\r\n\t}\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[DateAxis]].\r\n */\r\nexport interface IDateAxisDataFields extends IValueAxisDataFields {\r\n\r\n\t/**\r\n\t * Date.\r\n\t */\r\n\tdate?: string;\r\n\r\n}\r\n\r\n/**\r\n * Defines properties for [[DateAxis]].\r\n */\r\nexport interface IDateAxisProperties extends IValueAxisProperties {\r\n\r\n\t/**\r\n\t * If enabled, axis will automatically collapse empty (without data points)\r\n\t * periods of time, i.e. weekends.\r\n\t *\r\n\t * @default false\r\n\t */\r\n\tskipEmptyPeriods?: boolean;\r\n\r\n\t/**\r\n\t * Use `periodChangeDateFormats` to apply different formats to the first\r\n\t * label in bigger time unit.\r\n\t *\r\n\t * @default true\r\n\t * @param value Use different format for period beginning?\r\n\t */\r\n\tmarkUnitChange?: boolean;\r\n\r\n\t/**\r\n\t * Should the nearest tooltip be shown if no data item is found on the\r\n\t * current cursor position.\r\n\t *\r\n\t * @default true\r\n\t */\r\n\tsnapTooltip?: boolean;\r\n\r\n\t/**\r\n\t * A special date format to apply axis tooltips.\r\n\t *\r\n\t * Will use same format as for labels, if not set.\r\n\t */\r\n\ttooltipDateFormat?: string;\r\n}\r\n\r\n/**\r\n * Defines events for [[DateAxis]].\r\n */\r\nexport interface IDateAxisEvents extends IValueAxisEvents { }\r\n\r\n/**\r\n * Defines adapters for [[DateAxis]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IDateAxisAdapters extends IValueAxisAdapters, IDateAxisProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Used to create a date/time-based axis for the chart.\r\n *\r\n * ```TypeScript\r\n * // Create the axis\r\n * let xAxis = chart.xAxes.push(new am4charts.DateAxis());\r\n *\r\n * // Set settings\r\n * xAxis.title.text = \"Time\";\r\n * ```\r\n * ```JavaScript\r\n * // Create the axis\r\n * var valueAxis = chart.xAxes.push(new am4charts.DateAxis());\r\n *\r\n * // Set settings\r\n * valueAxis.title.text = \"Time\";\r\n * ```\r\n * ```JSON\r\n * \"xAxes\": [{\r\n * \"type\": \"DateAxis\",\r\n * \"title\": {\r\n * \"text\": \"Time\"\r\n * }\r\n * }]\r\n * ```\r\n *\r\n * @see {@link IDateAxisEvents} for a list of available Events\r\n * @see {@link IDateAxisAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class DateAxis<T extends AxisRenderer = AxisRenderer> extends ValueAxis<T> {\r\n\r\n\t/**\r\n\t * Defines data fields.\r\n\t */\r\n\tpublic _dataFields: IDateAxisDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IDateAxisProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IDateAxisAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IDateAxisEvents;\r\n\r\n\t/**\r\n\t * Defines the type of the Date Items.\r\n\t */\r\n\tpublic _dataItem: DateAxisDataItem;\r\n\r\n\t/**\r\n\t * Defines the type of the axis breaks.\r\n\t */\r\n\tpublic _axisBreak: DateAxisBreak;\r\n\r\n\t/**\r\n\t * A list of date/time intervals for Date axis.\r\n\t *\r\n\t * This define various granularities available for the axis. For example\r\n\t * if you have an axis spanning an hour, and space for 6 grid lines / labels\r\n\t * the axis will choose the granularity of 10 minutes, displaying a label\r\n\t * every 10 minutes.\r\n\t *\r\n\t * Default intervals:\r\n\t *\r\n\t * ```JSON\r\n\t * [\r\n\t * { timeUnit: \"millisecond\", count: 1 },\r\n\t * { timeUnit: \"millisecond\", count: 5 },\r\n\t * { timeUnit: \"millisecond\", count: 10 },\r\n\t * { timeUnit: \"millisecond\", count: 50 },\r\n\t * { timeUnit: \"millisecond\", count: 100 },\r\n\t * { timeUnit: \"millisecond\", count: 500 },\r\n\t * { timeUnit: \"second\", count: 1 },\r\n\t * { timeUnit: \"second\", count: 5 },\r\n\t * { timeUnit: \"second\", count: 10 },\r\n\t * { timeUnit: \"second\", count: 30 },\r\n\t * { timeUnit: \"minute\", count: 1 },\r\n\t * { timeUnit: \"minute\", count: 5 },\r\n\t * { timeUnit: \"minute\", count: 10 },\r\n\t * { timeUnit: \"minute\", count: 30 },\r\n\t * { timeUnit: \"hour\", count: 1 },\r\n\t * { timeUnit: \"hour\", count: 3 },\r\n\t * { timeUnit: \"hour\", count: 6 },\r\n\t * { timeUnit: \"hour\", count: 12 },\r\n\t * { timeUnit: \"day\", count: 1 },\r\n\t * { timeUnit: \"day\", count: 2 },\r\n\t * { timeUnit: \"day\", count: 3 },\r\n\t * { timeUnit: \"day\", count: 4 },\r\n\t * { timeUnit: \"day\", count: 5 },\r\n\t * { timeUnit: \"week\", count: 1 },\r\n\t * { timeUnit: \"month\", count: 1 },\r\n\t * { timeUnit: \"month\", count: 2 },\r\n\t * { timeUnit: \"month\", count: 3 },\r\n\t * { timeUnit: \"month\", count: 6 },\r\n\t * { timeUnit: \"year\", count: 1 },\r\n\t * { timeUnit: \"year\", count: 2 },\r\n\t * { timeUnit: \"year\", count: 5 },\r\n\t * { timeUnit: \"year\", count: 10 },\r\n\t * { timeUnit: \"year\", count: 50 },\r\n\t * { timeUnit: \"year\", count: 100 }\r\n\t * ]\r\n\t * ```\r\n\t */\r\n\tpublic gridIntervals: List<ITimeInterval> = new List<ITimeInterval>();\r\n\r\n\t/**\r\n\t * A collection of date formats to use when formatting different time units\r\n\t * on Date/time axis.\r\n\t *\r\n\t * Actual defaults will depend on the language locale set for the chart.\r\n\t *\r\n\t * To override format for a specific time unit, say days, you need to set\r\n\t * the appropriate key to a format string. E.g.:\r\n\t *\r\n\t * ```TypeScript\r\n\t * axis.dateFormats.setKey(\"day\", \"MMMM d, yyyy\");\r\n\t * ```\r\n\t * ```JavaScript\r\n\t * axis.dateFormats.setKey(\"day\", \"MMMM d, yyyy\");\r\n\t * ```\r\n\t * ```JSON\r\n\t * \"xAxes\": [{\r\n\t * \"type\": \"DateAxis\",\r\n\t * \"dateFormats\": {\r\n\t * \"day\": \"MMMM d, yyyy\"\r\n\t * }\r\n\t * }]\r\n\t * ```\r\n\t *\r\n\t * @see {@link DateFormatter}\r\n\t */\r\n\tpublic dateFormats: Dictionary<TimeUnit, string> = new Dictionary<TimeUnit, string>();\r\n\r\n\t/**\r\n\t * These formats are applied to labels that are first in a larger unit.\r\n\t *\r\n\t * For example, if we have a DateAxis with days on it, the first day of month\r\n\t * indicates a break in month - a start of the bigger period.\r\n\t *\r\n\t * For those labels, `periodChangeDateFormats` are applied instead of\r\n\t * `dateFormats`.\r\n\t *\r\n\t * This allows us implement convenient structures, like instead of:\r\n\t *\r\n\t * `Jan 1 - Jan 2 - Jan 3 - ...`\r\n\t *\r\n\t * We can have:\r\n\t *\r\n\t * `Jan - 1 - 2 - 3 - ...`\r\n\t *\r\n\t * This can be disabled by setting `markUnitChange = false`.\r\n\t */\r\n\tpublic periodChangeDateFormats: Dictionary<TimeUnit, string> = new Dictionary<TimeUnit, string>();\r\n\r\n\t/**\r\n\t * At which intervals grid elements are displayed.\r\n\t */\r\n\tprotected _gridInterval: ITimeInterval;\r\n\r\n\t/**\r\n\t * [_intervalDuration description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _intervalDuration: number;\r\n\r\n\t/**\r\n\t * [_gridDate description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _gridDate: Date;\r\n\r\n\t/**\r\n\t * [_nextGridUnit description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _nextGridUnit: TimeUnit;\r\n\r\n\t/**\r\n\t * User-defined granularity of data.\r\n\t */\r\n\tprotected _baseInterval: ITimeInterval;\r\n\r\n\t/**\r\n\t * Actual interval (granularity) derived from the actual data.\r\n\t */\r\n\tprotected _baseIntervalReal: ITimeInterval = { timeUnit: \"day\", count: 1 };\r\n\r\n\t/**\r\n\t */\r\n\tprotected _prevSeriesTime: number;\r\n\r\n\t/**\r\n\t * [_minDifference description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _minDifference: { [index: string]: number } = {};\r\n\r\n\t/**\r\n\t * A function which applies fills to axis cells.\r\n\t *\r\n\t * Default function fills every second fill. You can set this to a function\r\n\t * that follows some other logic.\r\n\t *\r\n\t * Function should accept a [[DateAxisDataItem]] and modify its `axisFill`\r\n\t * property accordingly.\r\n\t */\r\n\tpublic fillRule(dataItem: this[\"_dataItem\"]): void {\r\n\t\tlet value = dataItem.value;\r\n\t\tlet axis = dataItem.component;\r\n\t\tlet gridInterval = axis._gridInterval;\r\n\t\tlet gridDuration = $time.getDuration(gridInterval.timeUnit, gridInterval.count);\r\n\r\n\t\tif (Math.round((value - axis.min) / gridDuration) / 2 == Math.round(Math.round((value - axis.min) / gridDuration) / 2)) {\r\n\t\t\tdataItem.axisFill.__disabled = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tdataItem.axisFill.__disabled = false;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"DateAxis\";\r\n\r\n\t\tthis.setPropertyValue(\"markUnitChange\", true);\r\n\t\tthis.snapTooltip = true;\r\n\r\n\t\t// Translatable defaults are applied in `applyInternalDefaults()`\r\n\t\t// ...\r\n\r\n\t\t// Define default intervals\r\n\t\tthis.gridIntervals.pushAll([\r\n\t\t\t{ timeUnit: \"millisecond\", count: 1 },\r\n\t\t\t{ timeUnit: \"millisecond\", count: 5 },\r\n\t\t\t{ timeUnit: \"millisecond\", count: 10 },\r\n\t\t\t{ timeUnit: \"millisecond\", count: 50 },\r\n\t\t\t{ timeUnit: \"millisecond\", count: 100 },\r\n\t\t\t{ timeUnit: \"millisecond\", count: 500 },\r\n\t\t\t{ timeUnit: \"second\", count: 1 },\r\n\t\t\t{ timeUnit: \"second\", count: 5 },\r\n\t\t\t{ timeUnit: \"second\", count: 10 },\r\n\t\t\t{ timeUnit: \"second\", count: 30 },\r\n\t\t\t{ timeUnit: \"minute\", count: 1 },\r\n\t\t\t{ timeUnit: \"minute\", count: 5 },\r\n\t\t\t{ timeUnit: \"minute\", count: 10 },\r\n\t\t\t{ timeUnit: \"minute\", count: 15 },\r\n\t\t\t{ timeUnit: \"minute\", count: 30 },\r\n\t\t\t{ timeUnit: \"hour\", count: 1 },\r\n\t\t\t{ timeUnit: \"hour\", count: 3 },\r\n\t\t\t{ timeUnit: \"hour\", count: 6 },\r\n\t\t\t{ timeUnit: \"hour\", count: 12 },\r\n\t\t\t{ timeUnit: \"day\", count: 1 },\r\n\t\t\t{ timeUnit: \"day\", count: 2 },\r\n\t\t\t{ timeUnit: \"day\", count: 3 },\r\n\t\t\t{ timeUnit: \"day\", count: 4 },\r\n\t\t\t{ timeUnit: \"day\", count: 5 },\r\n\t\t\t{ timeUnit: \"week\", count: 1 },\r\n\t\t\t{ timeUnit: \"month\", count: 1 },\r\n\t\t\t{ timeUnit: \"month\", count: 2 },\r\n\t\t\t{ timeUnit: \"month\", count: 3 },\r\n\t\t\t{ timeUnit: \"month\", count: 6 },\r\n\t\t\t{ timeUnit: \"year\", count: 1 },\r\n\t\t\t{ timeUnit: \"year\", count: 2 },\r\n\t\t\t{ timeUnit: \"year\", count: 5 },\r\n\t\t\t{ timeUnit: \"year\", count: 10 },\r\n\t\t\t{ timeUnit: \"year\", count: 50 },\r\n\t\t\t{ timeUnit: \"year\", count: 100 },\r\n\t\t\t{ timeUnit: \"year\", count: 200 },\r\n\t\t\t{ timeUnit: \"year\", count: 500 },\r\n\t\t\t{ timeUnit: \"year\", count: 1000 },\r\n\t\t\t{ timeUnit: \"year\", count: 2000 },\r\n\t\t\t{ timeUnit: \"year\", count: 5000 },\r\n\t\t\t{ timeUnit: \"year\", count: 10000 },\r\n\t\t\t{ timeUnit: \"year\", count: 100000 }\r\n\t\t]);\r\n\r\n\t\t// Set field name\r\n\t\tthis.axisFieldName = \"date\";\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\t\tsuper.applyInternalDefaults();\r\n\r\n\t\t// Set default date formats\r\n\t\tif (!this.dateFormats.hasKey(\"millisecond\")) {\r\n\t\t\tthis.dateFormats.setKey(\"millisecond\", this.language.translate(\"_date_millisecond\"));\r\n\t\t}\r\n\t\tif (!this.dateFormats.hasKey(\"second\")) {\r\n\t\t\tthis.dateFormats.setKey(\"second\", this.language.translate(\"_date_second\"));\r\n\t\t}\r\n\t\tif (!this.dateFormats.hasKey(\"minute\")) {\r\n\t\t\tthis.dateFormats.setKey(\"minute\", this.language.translate(\"_date_minute\"));\r\n\t\t}\r\n\t\tif (!this.dateFormats.hasKey(\"hour\")) {\r\n\t\t\tthis.dateFormats.setKey(\"hour\", this.language.translate(\"_date_hour\"));\r\n\t\t}\r\n\t\tif (!this.dateFormats.hasKey(\"day\")) {\r\n\t\t\tthis.dateFormats.setKey(\"day\", this.language.translate(\"_date_day\"));\r\n\t\t}\r\n\t\tif (!this.dateFormats.hasKey(\"week\")) {\r\n\t\t\tthis.dateFormats.setKey(\"week\", this.language.translate(\"_date_day\"));\t // not a mistake\r\n\t\t}\r\n\t\tif (!this.dateFormats.hasKey(\"month\")) {\r\n\t\t\tthis.dateFormats.setKey(\"month\", this.language.translate(\"_date_month\"));\r\n\t\t}\r\n\t\tif (!this.dateFormats.hasKey(\"year\")) {\r\n\t\t\tthis.dateFormats.setKey(\"year\", this.language.translate(\"_date_year\"));\r\n\t\t}\r\n\r\n\t\tif (!this.periodChangeDateFormats.hasKey(\"millisecond\")) {\r\n\t\t\tthis.periodChangeDateFormats.setKey(\"millisecond\", this.language.translate(\"_date_millisecond\"));\r\n\t\t}\r\n\t\tif (!this.periodChangeDateFormats.hasKey(\"second\")) {\r\n\t\t\tthis.periodChangeDateFormats.setKey(\"second\", this.language.translate(\"_date_second\"));\r\n\t\t}\r\n\t\tif (!this.periodChangeDateFormats.hasKey(\"minute\")) {\r\n\t\t\tthis.periodChangeDateFormats.setKey(\"minute\", this.language.translate(\"_date_minute\"));\r\n\t\t}\r\n\t\tif (!this.periodChangeDateFormats.hasKey(\"hour\")) {\r\n\t\t\tthis.periodChangeDateFormats.setKey(\"hour\", this.language.translate(\"_date_hour\"));\r\n\t\t}\r\n\t\tif (!this.periodChangeDateFormats.hasKey(\"day\")) {\r\n\t\t\tthis.periodChangeDateFormats.setKey(\"day\", this.language.translate(\"_date_day\"));\r\n\t\t}\r\n\t\tif (!this.periodChangeDateFormats.hasKey(\"week\")) {\r\n\t\t\tthis.periodChangeDateFormats.setKey(\"week\", this.language.translate(\"_date_day\"));\r\n\t\t}\r\n\t\tif (!this.periodChangeDateFormats.hasKey(\"month\")) {\r\n\t\t\tthis.periodChangeDateFormats.setKey(\"month\", this.language.translate(\"_date_month\") + \" \" + this.language.translate(\"_date_year\"));\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty [[DataItem]] of the type appropriate for this object.\r\n\t *\r\n\t * @see {@link DataItem}\r\n\t * @return Data Item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new DateAxisDataItem();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty [[AxisBreak]] of the appropriate type.\r\n\t *\r\n\t * @return Axis break\r\n\t */\r\n\tprotected createAxisBreak(): this[\"_axisBreak\"] {\r\n\t\treturn new DateAxisBreak();\r\n\t}\r\n\r\n\t/**\r\n\t * Validates Axis' data items.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateDataItems(): void {\r\n\t\t// allows to keep selection of the same size\r\n\t\tlet start: number = this.start;\r\n\t\tlet end: number = this.end;\r\n\t\tlet periodCount: number = (this.max - this.min) / this.baseDuration;\r\n\r\n\t\tsuper.validateDataItems();\r\n\r\n\t\tthis.maxZoomFactor = (this.max - this.min) / this.baseDuration;\r\n\r\n\t\tthis._deltaMinMax = this.baseDuration / 2;\r\n\r\n\t\t// allows to keep selection of the same size\r\n\t\tlet newPeriodCount: number = (this.max - this.min) / this.baseDuration;\r\n\t\tstart = start + (end - start) * (1 - periodCount / newPeriodCount);\r\n\t\tthis.zoom({ start: start, end: end }, false, true); // added instantlyto solve zoomout problem when we have axes gaps. @todo: check how this affects maxZoomFactor\r\n\t}\r\n\r\n\t/**\r\n\t * Handles process after zoom.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Does nothing?\r\n\t */\r\n\tpublic handleSelectionExtremesChange(): void {\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Calculates all positions, related to axis as per current zoom.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic calculateZoom(): void {\r\n\t\tsuper.calculateZoom();\r\n\r\n\t\tlet gridInterval: ITimeInterval = this.chooseInterval(0, this.adjustDifference(this._minZoomed, this._maxZoomed), this._gridCount);\r\n\r\n\t\tif ($time.getDuration(gridInterval.timeUnit, gridInterval.count) < this.baseDuration) {\r\n\t\t\tgridInterval = { ...this.baseInterval };\r\n\t\t}\r\n\r\n\t\tthis._gridInterval = gridInterval;\r\n\r\n\t\tthis._gridDate = $time.round(new Date(this.min), gridInterval.timeUnit, gridInterval.count, this.getFirstWeekDay(), this.dateFormatter.utc);\r\n\t\tthis._nextGridUnit = $time.getNextUnit(gridInterval.timeUnit);\r\n\r\n\t\t// the following is needed to avoid grid flickering while scrolling\r\n\t\tthis._intervalDuration = $time.getDuration(gridInterval.timeUnit, gridInterval.count);\r\n\t\tlet count: number = Math.ceil(this._difference / this._intervalDuration);\r\n\t\tcount = Math.max(-5, Math.floor(this.start * count) - 3); // some extra is needed\r\n\r\n\t\t$time.add(this._gridDate, gridInterval.timeUnit, count * gridInterval.count, this.dateFormatter.utc);\r\n\r\n\t\t// tell series start/end\r\n\t\t$iter.each(this.series.iterator(), (series) => {\r\n\t\t\tif (series.baseAxis == this) {\r\n\t\t\t\tlet field = <keyof XYSeriesDataItem>series.getAxisField(this);\r\n\r\n\t\t\t\tlet minZoomed = $time.round(new Date(this._minZoomed), this.baseInterval.timeUnit, this.baseInterval.count).getTime();\r\n\t\t\t\tlet minZoomedStr = minZoomed.toString();\r\n\t\t\t\tlet startDataItem = series.dataItemsByAxis.getKey(this.uid).getKey(minZoomedStr);\r\n\t\t\t\tlet startIndex: number = 0;\r\n\t\t\t\tif (this.start != 0) {\r\n\t\t\t\t\tif (startDataItem) {\r\n\t\t\t\t\t\tstartDataItem = this.findFirst(startDataItem, minZoomed, field);\r\n\t\t\t\t\t\tstartIndex = startDataItem.index;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tstartIndex = series.dataItems.findClosestIndex(this._minZoomed, (x) => <number>x[field], \"left\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t// 1 millisecond is removed so that if only first item is selected, it would not count in the second.\r\n\t\t\t\tlet baseInterval = this.baseInterval;\r\n\t\t\t\tlet maxZoomed = $time.add($time.round(new Date(this._maxZoomed), baseInterval.timeUnit, baseInterval.count, this.getFirstWeekDay(), this.dateFormatter.utc), baseInterval.timeUnit, baseInterval.count, this.dateFormatter.utc).getTime();\r\n\r\n\t\t\t\tlet maxZoomedStr = maxZoomed.toString();\r\n\t\t\t\tlet endDataItem = series.dataItemsByAxis.getKey(this.uid).getKey(maxZoomedStr);\r\n\t\t\t\tlet endIndex: number = series.dataItems.length;\r\n\t\t\t\tif (this.end != 1) {\r\n\t\t\t\t\tif (endDataItem) {\r\n\t\t\t\t\t\tendIndex = endDataItem.index;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tmaxZoomed -= 1;\r\n\t\t\t\t\t\tendIndex = series.dataItems.findClosestIndex(maxZoomed, (x) => <number>x[field], \"right\") + 1;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tseries.startIndex = startIndex;\r\n\t\t\t\tseries.endIndex = endIndex;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprotected findFirst(dataItem: XYSeriesDataItem, time: number, key: string): XYSeriesDataItem {\r\n\t\tlet index = dataItem.index;\r\n\t\tif (index > 0) {\r\n\t\t\tlet series = dataItem.component;\r\n\t\t\tlet previousDataItem = series.dataItems.getIndex(index - 1);\r\n\t\t\tlet previousDate = (<any>previousDataItem)[key];\r\n\t\t\tif (!previousDate || previousDate.getTime() < time) {\r\n\t\t\t\treturn dataItem;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn this.findFirst(previousDataItem, time, key);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn dataItem;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * (Re)validates data.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateData(): void {\r\n\t\tsuper.validateData();\r\n\t\tif (!$type.isNumber(this.baseInterval.count)) {\r\n\t\t\tthis.baseInterval.count = 1;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic get minDifference(): number {\r\n\t\tlet minDifference = Number.MAX_VALUE;\r\n\r\n\t\tthis.series.each((series) => {\r\n\t\t\tif (minDifference > this._minDifference[series.uid]) {\r\n\t\t\t\tminDifference = this._minDifference[series.uid];\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tif (minDifference == Number.MAX_VALUE || minDifference == 0) {\r\n\t\t\tminDifference = $time.getDuration(\"day\");\r\n\t\t}\r\n\r\n\t\treturn minDifference;\r\n\t}\r\n\r\n\t/**\r\n\t * [dataChangeUpdate description]\r\n\t *\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic seriesDataChangeUpdate(series: XYSeries): void {\r\n\t\tthis._minDifference[series.uid] = Number.MAX_VALUE;\r\n\t}\r\n\r\n\t/**\r\n\t * [postProcessSeriesDataItems description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic postProcessSeriesDataItems(): void {\r\n\t\tthis.series.each((series) => {\r\n\t\t\tif (JSON.stringify(series._baseInterval[this.uid]) != JSON.stringify(this.baseInterval)) {\r\n\t\t\t\tseries.dataItems.each((dataItem) => {\r\n\t\t\t\t\tthis.postProcessSeriesDataItem(dataItem);\r\n\t\t\t\t});\r\n\t\t\t\tseries._baseInterval[this.uid] = this.baseInterval;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.addEmptyUnitsBreaks();\r\n\t}\r\n\r\n\t/**\r\n\t * [postProcessSeriesDataItem description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic postProcessSeriesDataItem(dataItem: XYSeriesDataItem): void {\r\n\t\t// we need to do this for all series data items not only added recently, as baseInterval might change\r\n\t\tlet baseInterval: ITimeInterval = this.baseInterval;\r\n\r\n\t\tlet series: XYSeries = dataItem.component;\r\n\t\tlet dataItemsByAxis = series.dataItemsByAxis.getKey(this.uid);\r\n\r\n\t\t$object.each(dataItem.dates, (key) => {\r\n\t\t\tlet date: Date = dataItem.getDate(key);\r\n\t\t\tlet time = date.getTime();\r\n\r\n\t\t\tlet startDate: Date = $time.round(new Date(time), baseInterval.timeUnit, baseInterval.count, this.getFirstWeekDay(), this.dateFormatter.utc);\r\n\t\t\tlet startTime = startDate.getTime();\r\n\t\t\tlet endDate: Date = $time.add(new Date(startTime), baseInterval.timeUnit, baseInterval.count, this.dateFormatter.utc);\r\n\r\n\t\t\tdataItem.setCalculatedValue(key, startTime, \"open\");\r\n\t\t\tdataItem.setCalculatedValue(key, endDate.getTime(), \"close\");\r\n\r\n\t\t\tdataItemsByAxis.setKey(startTime.toString(), dataItem);\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Collapses empty stretches of date/time scale by creating [[AxisBreak]]\r\n\t * elements for them.\r\n\t *\r\n\t * Can be used to automatically remove strethes without data, like weekends.\r\n\t *\r\n\t * No, need to call this manually. It will automatically be done if\r\n\t * `skipEmptyPeriods = true`.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected addEmptyUnitsBreaks(): void {\r\n\r\n\t\tif (this.skipEmptyPeriods && $type.isNumber(this.min) && $type.isNumber(this.max)) {\r\n\t\t\tlet timeUnit: TimeUnit = this.baseInterval.timeUnit;\r\n\t\t\tlet count: number = this.baseInterval.count;\r\n\r\n\t\t\tthis.axisBreaks.clear(); // TODO: what about breaks added by user?\r\n\r\n\t\t\tlet date: Date = $time.round(new Date(this.min), timeUnit, count, this.getFirstWeekDay(), this.dateFormatter.utc);\r\n\t\t\tlet axisBreak: DateAxisBreak;\r\n\r\n\t\t\twhile (date.getTime() < this.max - this.baseDuration) {\r\n\t\t\t\t$time.add(date, timeUnit, count, this.dateFormatter.utc);\r\n\r\n\t\t\t\tlet startTime: number = date.getTime();\r\n\t\t\t\tlet startTimeStr: string = startTime.toString();\r\n\r\n\t\t\t\tlet hasData = $iter.contains(this.series.iterator(), (series) => {\r\n\t\t\t\t\treturn !!series.dataItemsByAxis.getKey(this.uid).getKey(startTimeStr);\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// open break if not yet opened\r\n\t\t\t\tif (!hasData) {\r\n\t\t\t\t\tif (!axisBreak) {\r\n\t\t\t\t\t\taxisBreak = <DateAxisBreak>this.axisBreaks.create();\r\n\t\t\t\t\t\taxisBreak.startDate = new Date(startTime);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t// close if already opened\r\n\t\t\t\t\tif (axisBreak) {\r\n\t\t\t\t\t\t// close at end time minus one millisecond\r\n\t\t\t\t\t\taxisBreak.endDate = new Date(startTime - 1);\r\n\t\t\t\t\t\taxisBreak = undefined;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Updates positioning of Axis breaks after something changes.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic fixAxisBreaks(): void {\r\n\t\tsuper.fixAxisBreaks();\r\n\r\n\t\tlet axisBreaks = this.axisBreaks;\r\n\t\tif (axisBreaks.length > 0) {\r\n\t\t\t// process breaks\r\n\t\t\taxisBreaks.each((axisBreak) => {\r\n\t\t\t\tlet breakGridCount: number = Math.ceil(this._gridCount * (Math.min(this.end, axisBreak.endPosition) - Math.max(this.start, axisBreak.startPosition)) / (this.end - this.start));\r\n\t\t\t\taxisBreak.gridInterval = this.chooseInterval(0, axisBreak.adjustedEndValue - axisBreak.adjustedStartValue, breakGridCount);\r\n\t\t\t\tlet gridDate = $time.round(new Date(axisBreak.adjustedStartValue), axisBreak.gridInterval.timeUnit, axisBreak.gridInterval.count, this.getFirstWeekDay(), this.dateFormatter.utc);\r\n\t\t\t\tif (gridDate.getTime() > axisBreak.startDate.getTime()) {\r\n\t\t\t\t\t$time.add(gridDate, axisBreak.gridInterval.timeUnit, axisBreak.gridInterval.count, this.dateFormatter.utc);\r\n\t\t\t\t}\r\n\r\n\t\t\t\taxisBreak.gridDate = gridDate;\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected getFirstWeekDay(): number {\r\n\t\tif (this.dateFormatter) {\r\n\t\t\treturn this.dateFormatter.firstDayOfWeek;\r\n\t\t}\r\n\r\n\t\treturn 1;\r\n\t}\r\n\r\n\t/**\r\n\t * [getGridDate description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param date [description]\r\n\t * @param intervalCount [description]\r\n\t * @return [description]\r\n\t */\r\n\tpublic getGridDate(date: Date, intervalCount: number): Date {\r\n\t\tlet timeUnit: TimeUnit = this._gridInterval.timeUnit;\r\n\t\tlet realIntervalCount: number = this._gridInterval.count;\r\n\t\t// round date\r\n\t\t$time.round(date, timeUnit, 1, this.getFirstWeekDay(), this.dateFormatter.utc);\r\n\r\n\t\tlet prevTimestamp: number = date.getTime();\r\n\r\n\t\tlet newDate: Date = $time.copy(date);\r\n\t\t// modify date by adding intervalcount\r\n\t\tlet timestamp: number = $time.add(newDate, timeUnit, intervalCount, this.dateFormatter.utc).getTime();\r\n\r\n\t\t// if it's axis break, get first rounded date which is not in a break\r\n\t\tlet axisBreak: DateAxisBreak = <DateAxisBreak>this.isInBreak(timestamp);\r\n\t\tif (axisBreak) {\r\n\t\t\tnewDate = new Date(axisBreak.endDate.getTime());\r\n\t\t\t$time.round(newDate, timeUnit, realIntervalCount, this.getFirstWeekDay(), this.dateFormatter.utc);\r\n\t\t\tif (newDate.getTime() < axisBreak.endDate.getTime()) {\r\n\t\t\t\t$time.add(newDate, timeUnit, realIntervalCount, this.dateFormatter.utc);\r\n\t\t\t}\r\n\t\t\ttimestamp = newDate.getTime();\r\n\t\t}\r\n\r\n\t\t// get duration between grid lines with break duration removed\r\n\t\tlet durationBreaksRemoved: number = this.adjustDifference(prevTimestamp, timestamp);\r\n\t\t// calculate how many time units fit to this duration\r\n\t\tlet countBreaksRemoved: number = Math.round(durationBreaksRemoved / $time.getDuration(timeUnit));\r\n\r\n\t\t// if less units fit, add one and repeat\r\n\t\tif (countBreaksRemoved < realIntervalCount) {\r\n\t\t\treturn this.getGridDate(date, intervalCount + realIntervalCount);\r\n\t\t}\r\n\r\n\t\treturn newDate;\r\n\t}\r\n\r\n\t/**\r\n\t * [getBreaklessDate description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param axisBreak [description]\r\n\t * @param timeUnit [description]\r\n\t * @param count [description]\r\n\t * @return [description]\r\n\t */\r\n\tpublic getBreaklessDate(axisBreak: DateAxisBreak, timeUnit: TimeUnit, count: number): Date {\r\n\t\tlet date = new Date(axisBreak.endValue);\r\n\t\t$time.round(date, timeUnit, count, this.getFirstWeekDay(), this.dateFormatter.utc);\r\n\t\t$time.add(date, timeUnit, count, this.dateFormatter.utc);\r\n\r\n\t\tlet timestamp = date.getTime();\r\n\r\n\t\taxisBreak = <DateAxisBreak>this.isInBreak(timestamp);\r\n\t\tif (axisBreak) {\r\n\t\t\treturn this.getBreaklessDate(axisBreak, timeUnit, count);\r\n\t\t}\r\n\t\treturn date;\r\n\t}\r\n\r\n\t/**\r\n\t * (Re)validates all Axis elements.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t */\r\n\tpublic validateAxisElements(): void {\r\n\t\tif ($type.isNumber(this.max) && $type.isNumber(this.min)) {\r\n\r\n\t\t\tthis.calculateZoom();\r\n\r\n\t\t\t// first regular items\r\n\t\t\tlet timestamp = this._gridDate.getTime();\r\n\t\t\tlet timeUnit = this._gridInterval.timeUnit;\r\n\t\t\tlet intervalCount = this._gridInterval.count;\r\n\t\t\tlet prevGridDate = $time.copy(this._gridDate);\r\n\r\n\t\t\tlet dataItemsIterator = this._dataItemsIterator;\r\n\t\t\tthis.resetIterators();\r\n\r\n\t\t\twhile (timestamp <= this._maxZoomed) {\r\n\t\t\t\tlet date = this.getGridDate($time.copy(prevGridDate), intervalCount);\r\n\r\n\t\t\t\ttimestamp = date.getTime();\r\n\r\n\t\t\t\tlet endDate = $time.copy(date); // you might think it's easier to add intervalduration to timestamp, however it won't work for months or years which are not of the same length\r\n\t\t\t\tendDate = $time.add(endDate, timeUnit, intervalCount, this.dateFormatter.utc);\r\n\r\n\t\t\t\tlet format = this.dateFormats.getKey(timeUnit);\r\n\r\n\t\t\t\tif (this.markUnitChange && prevGridDate) {\r\n\t\t\t\t\tif ($time.checkChange(date, prevGridDate, this._nextGridUnit, this.dateFormatter.utc)) {\r\n\t\t\t\t\t\tif (timeUnit !== \"year\") {\r\n\t\t\t\t\t\t\tformat = this.periodChangeDateFormats.getKey(timeUnit);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet text = this.dateFormatter.format(date, format);\r\n\r\n\t\t\t\tlet dataItem = dataItemsIterator.find((x) => x.text === text);\r\n\t\t\t\tif (dataItem.__disabled) {\r\n\t\t\t\t\tdataItem.__disabled = false;\r\n\t\t\t\t}\r\n\t\t\t\tthis.appendDataItem(dataItem);\r\n\r\n\t\t\t\tdataItem.axisBreak = undefined;\r\n\t\t\t\tdataItem.date = date;\r\n\t\t\t\tdataItem.endDate = endDate;\r\n\r\n\t\t\t\tdataItem.text = text;\r\n\r\n\t\t\t\tprevGridDate = date;\r\n\r\n\t\t\t\tthis.validateDataElement(dataItem);\r\n\t\t\t}\r\n\r\n\t\t\t// breaks later\r\n\t\t\tlet renderer: AxisRenderer = this.renderer;\r\n\r\n\t\t\t$iter.each(this.axisBreaks.iterator(), (axisBreak) => {\r\n\t\t\t\tif (axisBreak.breakSize > 0) {\r\n\t\t\t\t\tlet timeUnit: TimeUnit = axisBreak.gridInterval.timeUnit;\r\n\t\t\t\t\tlet intervalCount: number = axisBreak.gridInterval.count;\r\n\r\n\t\t\t\t\t// only add grid if gap is bigger then minGridDistance\r\n\t\t\t\t\tif ($math.getDistance(axisBreak.startPoint, axisBreak.endPoint) > renderer.minGridDistance * 4) {\r\n\t\t\t\t\t\tlet timestamp: number = axisBreak.gridDate.getTime();\r\n\r\n\t\t\t\t\t\tlet prevGridDate;\r\n\t\t\t\t\t\tlet count: number = 0;\r\n\t\t\t\t\t\twhile (timestamp <= axisBreak.adjustedMax) {\r\n\t\t\t\t\t\t\tlet date: Date = $time.copy(axisBreak.gridDate);\r\n\t\t\t\t\t\t\ttimestamp = $time.add(date, timeUnit, intervalCount * count, this.dateFormatter.utc).getTime();\r\n\t\t\t\t\t\t\tcount++;\r\n\t\t\t\t\t\t\tif (timestamp > axisBreak.adjustedStartValue && timestamp < axisBreak.adjustedEndValue) {\r\n\t\t\t\t\t\t\t\tlet endDate = $time.copy(date); // you might think it's easier to add intervalduration to timestamp, however it won't work for months or years which are not of the same length\r\n\t\t\t\t\t\t\t\tendDate = $time.add(endDate, timeUnit, intervalCount, this.dateFormatter.utc);\r\n\r\n\t\t\t\t\t\t\t\tlet format: string = this.dateFormats.getKey(timeUnit);\r\n\r\n\t\t\t\t\t\t\t\tif (this.markUnitChange && prevGridDate) {\r\n\t\t\t\t\t\t\t\t\tif ($time.checkChange(date, prevGridDate, this._nextGridUnit, this.dateFormatter.utc)) {\r\n\t\t\t\t\t\t\t\t\t\tif (timeUnit !== \"year\") {\r\n\t\t\t\t\t\t\t\t\t\t\tformat = this.periodChangeDateFormats.getKey(timeUnit);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tlet text: string = this.dateFormatter.format(date, format);\r\n\r\n\t\t\t\t\t\t\t\tlet dataItem: this[\"_dataItem\"] = dataItemsIterator.find((x) => x.text === text);\r\n\t\t\t\t\t\t\t\tif (dataItem.__disabled) {\r\n\t\t\t\t\t\t\t\t\tdataItem.__disabled = false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t//this.processDataItem(dataItem);\r\n\t\t\t\t\t\t\t\tthis.appendDataItem(dataItem);\r\n\t\t\t\t\t\t\t\tdataItem.axisBreak = axisBreak;\r\n\t\t\t\t\t\t\t\taxisBreak.dataItems.moveValue(dataItem);\r\n\r\n\t\t\t\t\t\t\t\tdataItem.date = date;\r\n\t\t\t\t\t\t\t\tdataItem.endDate = endDate;\r\n\t\t\t\t\t\t\t\tdataItem.text = text;\r\n\t\t\t\t\t\t\t\tprevGridDate = date;\r\n\t\t\t\t\t\t\t\tthis.validateDataElement(dataItem);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Validates Axis data item.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic validateDataElement(dataItem: this[\"_dataItem\"]): void {\r\n\t\t//super.validateDataElement(dataItem);\r\n\t\tif ($type.isNumber(this.max) && $type.isNumber(this.min)) {\r\n\t\t\tlet renderer: AxisRenderer = this.renderer;\r\n\r\n\t\t\tlet timestamp = dataItem.value;\r\n\t\t\tlet endTimestamp = dataItem.endValue;\r\n\r\n\t\t\tif (!$type.isNumber(endTimestamp)) {\r\n\t\t\t\tendTimestamp = timestamp;\r\n\t\t\t}\r\n\r\n\t\t\tlet position: number = this.valueToPosition(timestamp);\r\n\t\t\tlet endPosition: number = this.valueToPosition(endTimestamp);\r\n\t\t\tlet fillEndPosition = endPosition;\r\n\r\n\t\t\tif (!dataItem.isRange && this._gridInterval.count > this.baseInterval.count) {\r\n\t\t\t\tendPosition = position + (endPosition - position) / (this._gridInterval.count / this.baseInterval.count);\r\n\t\t\t}\r\n\r\n\t\t\tdataItem.position = position;\r\n\r\n\t\t\tlet tick: AxisTick = dataItem.tick;\r\n\t\t\tif (tick && !tick.disabled) {\r\n\t\t\t\trenderer.updateTickElement(tick, position, endPosition);\r\n\t\t\t}\r\n\r\n\t\t\tlet grid: Grid = dataItem.grid;\r\n\t\t\tif (grid && !grid.disabled) {\r\n\t\t\t\trenderer.updateGridElement(grid, position, endPosition);\r\n\t\t\t}\r\n\r\n\t\t\tlet fill: AxisFill = dataItem.axisFill;\r\n\t\t\tif (fill && !fill.disabled) {\r\n\t\t\t\trenderer.updateFillElement(fill, position, fillEndPosition);\r\n\t\t\t\tif (!dataItem.isRange) {\r\n\t\t\t\t\tthis.fillRule(dataItem);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tlet mask: AxisFill = dataItem.mask;\r\n\t\t\tif (mask) {\r\n\t\t\t\trenderer.updateFillElement(mask, position, endPosition);\r\n\t\t\t}\r\n\r\n\t\t\tlet label: AxisLabel = dataItem.label;\r\n\t\t\tif (label && !label.disabled) {\r\n\t\t\t\tlet location = label.location;\r\n\r\n\r\n\r\n\t\t\t\tif (location == 0) {\r\n\t\t\t\t\tif (this._gridInterval.count == 1 && this._gridInterval.timeUnit != \"week\" && !dataItem.isRange) {\r\n\t\t\t\t\t\tlocation = 0.5;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tlocation = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\trenderer.updateLabelElement(label, position, endPosition, location);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A duration in milliseconds of the `baseInterval`.\r\n\t *\r\n\t * @return Duration (ms)\r\n\t */\r\n\tpublic get baseDuration(): number {\r\n\t\treturn $time.getDuration(this.baseInterval.timeUnit, this.baseInterval.count);\r\n\t}\r\n\r\n\t/**\r\n\t * Adjusts min/max values.\r\n\t *\r\n\t * @ignore Exclude from docs.\r\n\t * @todo Description (review)\r\n\t * @param min Min timestamp\r\n\t * @param max Max timestamp\r\n\t * @return Adjusted min/max step\r\n\t */\r\n\tpublic adjustMinMax(min: number, max: number): IMinMaxStep {\r\n\t\treturn { min: min, max: max, step: this.baseDuration };\r\n\t}\r\n\r\n\t/**\r\n\t * Adjusts the minimum timestamp as per cell start location.\r\n\t *\r\n\t * @param value Value\r\n\t * @return Adjusted value\r\n\t */\r\n\tprotected fixMin(value: number) {\r\n\r\n\t\t// like this because months are not equal\r\n\t\tlet startTime = $time.round(new Date(value), this.baseInterval.timeUnit, this.baseInterval.count, this.getFirstWeekDay(), this.dateFormatter.utc).getTime();\r\n\t\tlet endTime = $time.add(new Date(startTime), this.baseInterval.timeUnit, this.baseInterval.count, this.dateFormatter.utc).getTime();\r\n\r\n\t\treturn startTime + (endTime - startTime) * this.startLocation;\r\n\t}\r\n\r\n\t/**\r\n\t * Adjusts the maximum timestamp as per cell start location.\r\n\t *\r\n\t * @param value Value\r\n\t * @return Adjusted value\r\n\t */\r\n\tprotected fixMax(value: number) {\r\n\t\t// like this because months are not equal\r\n\t\tlet startTime = $time.round(new Date(value), this.baseInterval.timeUnit, this.baseInterval.count, this.getFirstWeekDay(), this.dateFormatter.utc).getTime();\r\n\t\tlet endTime = $time.add(new Date(startTime), this.baseInterval.timeUnit, this.baseInterval.count, this.dateFormatter.utc).getTime();\r\n\r\n\t\treturn startTime + (endTime - startTime) * this.endLocation;\r\n\t}\r\n\r\n\t/**\r\n\t * [chooseInterval description]\r\n\t *\r\n\t * @ignore Exclude from docs.\r\n\t * @todo Description\r\n\t * @param index [description]\r\n\t * @param duration [description]\r\n\t * @param gridCount [description]\r\n\t * @return [description]\r\n\t */\r\n\tpublic chooseInterval(index: number, duration: number, gridCount: number): ITimeInterval {\r\n\t\tlet gridIntervals: List<ITimeInterval> = this.gridIntervals;\r\n\r\n\t\tlet gridInterval: ITimeInterval = gridIntervals.getIndex(index);\r\n\r\n\t\tlet intervalDuration: number = $time.getDuration(gridInterval.timeUnit, gridInterval.count);\r\n\r\n\t\tlet lastIndex: number = gridIntervals.length - 1;\r\n\t\tif (index >= lastIndex) {\r\n\t\t\treturn { ...gridIntervals.getIndex(lastIndex) };\r\n\t\t}\r\n\r\n\t\tlet count: number = Math.ceil(duration / intervalDuration);\r\n\r\n\t\tif (duration < intervalDuration && index > 0) {\r\n\t\t\treturn { ...gridIntervals.getIndex(index - 1) };\r\n\t\t}\r\n\r\n\t\tif (count <= gridCount) {\r\n\t\t\treturn { ...gridIntervals.getIndex(index) };\r\n\t\t} else {\r\n\t\t\tif (index + 1 < gridIntervals.length) {\r\n\t\t\t\treturn this.chooseInterval(index + 1, duration, gridCount);\r\n\t\t\t} else {\r\n\t\t\t\treturn { ...gridIntervals.getIndex(index) };\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Formats the value according to axis' own [[DateFormatter]].\r\n\t *\r\n\t * @param value Source value\r\n\t * @return Formatted value\r\n\t */\r\n\tpublic formatLabel(value: number): string {\r\n\t\treturn this.dateFormatter.format(value);\r\n\t}\r\n\r\n\t/**\r\n\t * Converts a Date to an asbolute pixel position within Axis.\r\n\t *\r\n\t * @param date Date\r\n\t * @return Position (px)\r\n\t */\r\n\tpublic dateToPosition(date: Date): number {\r\n\t\treturn this.valueToPosition(date.getTime());\r\n\t}\r\n\r\n\t/**\r\n\t * Converts a numeric timestamp or a `Date` to a relative position on axis.\r\n\t *\r\n\t * @param date Date or a timestamp\r\n\t * @return Relative position\r\n\t */\r\n\tpublic anyToPosition(date: Date | number): number {\r\n\t\tif (date instanceof Date) {\r\n\t\t\treturn this.dateToPosition(date);\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this.valueToPosition(date);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Converts date to orientation point (x, y, angle) on axis\r\n\t *\r\n\t * @param date Date\r\n\t * @return IOrientationPoint\r\n\t */\r\n\tpublic dateToPoint(date: Date): IOrientationPoint {\r\n\t\tlet position = this.dateToPosition(date);\r\n\t\tlet point = this.renderer.positionToPoint(position);\r\n\t\tlet angle = this.renderer.positionToAngle(position);\r\n\t\treturn { x: point.x, y: point.y, angle: angle };\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Converts a numeric value to orientation (x, y, angle) point on axis\r\n\t *\r\n\t * @param value Value\r\n\t * @return Orientation point\r\n\t */\r\n\tpublic anyToPoint(date: Date | number): IOrientationPoint {\r\n\t\tif (date instanceof Date) {\r\n\t\t\treturn this.dateToPoint(date);\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this.valueToPoint(date);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Converts pixel position within Axis to a corresponding Date.\r\n\t *\r\n\t * @param position Position (px)\r\n\t * @return Date\r\n\t */\r\n\tpublic positionToDate(position: number): Date {\r\n\t\treturn new Date(this.positionToValue(position));\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the X coordinate for series' data item's value.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param dataItem Data item\r\n\t * @param key Data field to get value from\r\n\t * @param location Location (0-1)\r\n\t * @return X coordinate (px)\r\n\t */\r\n\tpublic getX(dataItem: XYSeriesDataItem, key: string, location?: number): number {\r\n\t\tlet value: number = this.getTimeByLocation(dataItem, key, location);\r\n\t\t//let stack: number = dataItem.getValue(\"valueX\", \"stack\");\r\n\r\n\t\tif (!$type.isNumber(value)) {\r\n\t\t\tvalue = this.baseValue;\r\n\t\t}\r\n\r\n\t\treturn this.renderer.positionToPoint(this.valueToPosition(value)).x;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the Y coordinate for series' data item's value.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param dataItem Data item\r\n\t * @param key Data field to get value from\r\n\t * @param location Location (0-1)\r\n\t * @return Y coordinate (px)\r\n\t */\r\n\tpublic getY(dataItem: XYSeriesDataItem, key: string, location?: number): number {\r\n\t\tlet value: number = this.getTimeByLocation(dataItem, key, location);\r\n\t\tlet stack: number = dataItem.getValue(\"valueX\", \"stack\");\r\n\r\n\t\tif (!$type.isNumber(value)) {\r\n\t\t\tvalue = this.baseValue;\r\n\t\t}\r\n\r\n\t\treturn this.renderer.positionToPoint(this.valueToPosition(value + stack)).y;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an angle for series data item.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param dataItem Data item\r\n\t * @param key Data field to get value from\r\n\t * @param location Location (0-1)\r\n\t * @param stackKey Stack ID\r\n\t * @return Angle\r\n\t */\r\n\tpublic getAngle(dataItem: XYSeriesDataItem, key: string, location?: number, stackKey?: string): number {\r\n\t\tlet value: number = this.getTimeByLocation(dataItem, key, location);\r\n\t\tlet stack: number = dataItem.getValue(stackKey, \"stack\");\r\n\r\n\t\tif (!$type.isNumber(value)) {\r\n\t\t\tvalue = this.baseValue;\r\n\t\t}\r\n\r\n\t\treturn this.positionToAngle(this.valueToPosition(value + stack));\r\n\t}\r\n\r\n\t/**\r\n\t * [getTimeByLocation description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param dataItem [description]\r\n\t * @param key [description]\r\n\t * @param location [description]\r\n\t * @return [description]\r\n\t */\r\n\tprotected getTimeByLocation(dataItem: XYSeriesDataItem, key: string, location: number): number {\r\n\t\tif (!$type.hasValue(key)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!$type.isNumber(location)) {\r\n\t\t\tlocation = dataItem.workingLocations[key];\r\n\r\n\t\t\tif (!$type.isNumber(location)) {\r\n\t\t\t\tlocation = 0;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet startTime: number = dataItem.values[key][\"open\"];\r\n\t\tlet endTime: number = dataItem.values[key][\"close\"];\r\n\r\n\t\tif ($type.isNumber(startTime) && $type.isNumber(endTime)) {\r\n\t\t\treturn startTime + (endTime - startTime) * location;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Processes a related series' data item.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic processSeriesDataItem(dataItem: XYSeriesDataItem, axisLetter?: string): void {\r\n\r\n\t\tlet series = dataItem.component;\r\n\t\tlet time: number;\r\n\r\n\t\tlet date: Date = (<any>dataItem)[\"date\" + axisLetter];\r\n\t\tif (date) {\r\n\t\t\ttime = date.getTime();\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tlet openDate: Date = (<any>dataItem)[\"openDate\" + axisLetter];\r\n\t\tlet prevSeriesTime: number = this._prevSeriesTime;\r\n\r\n\r\n\t\tlet openTime: number;\r\n\t\tif (openDate) {\r\n\t\t\topenTime = openDate.getTime();\r\n\t\t}\r\n\r\n\t\tif ($type.isNumber(openTime)) {\r\n\t\t\tlet difference = Math.abs(time - openTime);\r\n\r\n\t\t\tif (this._minDifference[series.uid] > difference) {\r\n\t\t\t\tthis._minDifference[series.uid] = difference;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet differece: number = time - prevSeriesTime;\r\n\r\n\t\tif (differece > 0) {\r\n\t\t\tif (this._minDifference[series.uid] > differece) {\r\n\t\t\t\tthis._minDifference[series.uid] = differece;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._prevSeriesTime = time;\r\n\r\n\t\tif (series._baseInterval[this.uid]) {\r\n\t\t\tthis.postProcessSeriesDataItem(dataItem);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (this._baseInterval) {\r\n\t\t\t\tseries._baseInterval[this.uid] = this._baseInterval;\r\n\t\t\t\tthis.postProcessSeriesDataItem(dataItem);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * [updateAxisBySeries description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t */\r\n\tpublic updateAxisBySeries() {\r\n\t\tsuper.updateAxisBySeries();\r\n\r\n\t\tlet baseInterval: ITimeInterval = this.chooseInterval(0, this.minDifference, 1);\r\n\t\t// handle short months\r\n\t\tif (this.minDifference >= $time.getDuration(\"day\", 27) && baseInterval.timeUnit == \"week\") {\r\n\t\t\tbaseInterval.timeUnit = \"month\";\r\n\t\t\tbaseInterval.count = 1;\r\n\t\t}\r\n\t\t// handle daylight saving\r\n\t\tif (this.minDifference >= $time.getDuration(\"hour\", 23) && baseInterval.timeUnit == \"hour\") {\r\n\t\t\tbaseInterval.timeUnit = \"day\";\r\n\t\t\tbaseInterval.count = 1;\r\n\t\t}\r\n\r\n\t\tif (this.minDifference >= $time.getDuration(\"week\", 1) - $time.getDuration(\"hour\", 1) && baseInterval.timeUnit == \"day\") {\r\n\t\t\tbaseInterval.timeUnit = \"week\";\r\n\t\t\tbaseInterval.count = 1;\r\n\t\t}\r\n\r\n\t\tif (this.minDifference >= $time.getDuration(\"year\", 1) - $time.getDuration(\"day\", 1.01) && baseInterval.timeUnit == \"month\") {\r\n\t\t\tbaseInterval.timeUnit = \"year\";\r\n\t\t\tbaseInterval.count = 1;\r\n\t\t}\r\n\r\n\t\tthis._baseIntervalReal = baseInterval;\r\n\t\t// no need to invalidate\r\n\t}\r\n\r\n\t/**\r\n\t * A base interval (granularity) of data.\r\n\t *\r\n\t * Used to indicate what are the base units of your data.\r\n\t *\r\n\t * For example, if you have a data set that has a data point every 5 minutes,\r\n\t * you may want to set this to `{ timeUnit: \"minute\", count: 5 }`.\r\n\t *\r\n\t * If not set, the Axis will try to determine the setting by its own, looking\r\n\t * at actual data.\r\n\t *\r\n\t * @param timeInterval base interval\r\n\t */\r\n\tpublic set baseInterval(timeInterval: ITimeInterval) {\r\n\t\tif (JSON.stringify(this._baseInterval) != JSON.stringify(timeInterval)) {\r\n\t\t\tthis._baseInterval = timeInterval;\r\n\t\t\tthis.invalidate();\r\n\t\t\tthis.postProcessSeriesDataItems();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Base interval\r\n\t */\r\n\tpublic get baseInterval(): ITimeInterval {\r\n\t\tif (this._baseInterval) {\r\n\t\t\treturn this._baseInterval;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._baseIntervalReal;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * If enabled, axis will automatically collapse empty (without data points)\r\n\t * periods of time, i.e. weekends.\r\n\t *\r\n\t * An \"empty\" period is considered a stretch of time in the length of current\r\n\t * `baseInterval` without a single data point in it.\r\n\t *\r\n\t * For each such empty period, axis will automatically create an\r\n\t * [[AxisBreak]]. By default they will be invisible. You can still configure\r\n\t * them by accessing `axis.breaks.template`.\r\n\t *\r\n\t * [More info about breaks](https://www.amcharts.com/docs/v4/concepts/axes/#Breaks).\r\n\t *\r\n\t * Important notes:\r\n\t * * If you set this property to `true`, you can not add your custom axis breaks to this axis anymore.\r\n\t * * Using this feature affects performance. Use only if you need it.\r\n\t * * Setting this to `true` will reset appearance of breaks. If you want to modify appearance, do it *after* you set `skipEmptyPeriods`.\r\n\t *\r\n\t * @default false\r\n\t * @param value Remove empty stretches of time?\r\n\t */\r\n\tpublic set skipEmptyPeriods(value: boolean) {\r\n\t\tif (this.setPropertyValue(\"skipEmptyPeriods\", value)) {\r\n\t\t\tthis.invalidateData();\r\n\t\t}\r\n\r\n\t\tif (value) {\r\n\t\t\tlet breakTemplate = this.axisBreaks.template;\r\n\t\t\tbreakTemplate.startLine.disabled = true;\r\n\t\t\tbreakTemplate.endLine.disabled = true;\r\n\t\t\tbreakTemplate.fillShape.disabled = true;\r\n\t\t\tbreakTemplate.breakSize = 0;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Remove empty stretches of time?\r\n\t */\r\n\tpublic get skipEmptyPeriods(): boolean {\r\n\t\treturn this.getPropertyValue(\"skipEmptyPeriods\");\r\n\t}\r\n\r\n\t/**\r\n\t * A special date format to apply axis tooltips.\r\n\t *\r\n\t * Will use same format as for labels, if not set.\r\n\t *\r\n\t * @param value Date format\r\n\t */\r\n\tpublic set tooltipDateFormat(value: string) {\r\n\t\tthis.setPropertyValue(\"tooltipDateFormat\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Date format\r\n\t */\r\n\tpublic get tooltipDateFormat(): string {\r\n\t\treturn this.getPropertyValue(\"tooltipDateFormat\");\r\n\t}\r\n\r\n\t/**\r\n\t * Use `periodChangeDateFormats` to apply different formats to the first\r\n\t * label in bigger time unit.\r\n\t *\r\n\t * @default true\r\n\t * @param value Use different format for period beginning?\r\n\t */\r\n\tpublic set markUnitChange(value: boolean) {\r\n\t\tif (this.setPropertyValue(\"markUnitChange\", value)) {\r\n\t\t\tthis.invalidateData();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Use different format for period beginning?\r\n\t */\r\n\tpublic get markUnitChange(): boolean {\r\n\t\treturn this.getPropertyValue(\"markUnitChange\");\r\n\t}\r\n\r\n\t/**\r\n\t * Returns text to show in a tooltip, based on specific relative position\r\n\t * within axis.\r\n\t *\r\n\t * The label will be formatted as per [[DateFormatter]] set for the whole\r\n\t * chart, or explicitly for this Axis.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param position Position\r\n\t * @return Label (formatted date)\r\n\t */\r\n\tpublic getTooltipText(position: number): string {\r\n\t\tlet text: string;\r\n\t\tlet date = this.positionToDate(position);\r\n\t\tdate = $time.round(date, this.baseInterval.timeUnit, this.baseInterval.count, this.getFirstWeekDay(), this.dateFormatter.utc);\r\n\r\n\t\tif ($type.hasValue(this.tooltipDateFormat)) {\r\n\t\t\ttext = this.dateFormatter.format(date, this.tooltipDateFormat);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlet dateFormat = this.dateFormats.getKey(this.baseInterval.timeUnit);\r\n\t\t\tif (dateFormat) {\r\n\t\t\t\ttext = this.dateFormatter.format(date, dateFormat);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\ttext = this.getPositionLabel(position);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this.adapter.apply(\"getTooltipText\", text);\r\n\t}\r\n\r\n\t/**\r\n\t * Takes an absolute position within axis and adjust it to a specific position within base interval. (cell)\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param position Source position\r\n\t * @param location Location in the cell\r\n\t * @return Adjusted position\r\n\t */\r\n\tpublic roundPosition(position: number, location?: AxisItemLocation): number {\r\n\t\tlet baseInterval = this.baseInterval;\r\n\t\tlet timeUnit = baseInterval.timeUnit;\r\n\t\tlet count = baseInterval.count;\r\n\r\n\t\tlet date: Date = this.positionToDate(position);\r\n\r\n\t\t$time.round(date, timeUnit, count, this.getFirstWeekDay(), this.dateFormatter.utc);\r\n\r\n\t\tif (location > 0) {\r\n\t\t\t$time.add(date, timeUnit, location * count, this.dateFormatter.utc);\r\n\t\t}\r\n\r\n\t\tif (this.isInBreak(date.getTime())) {\r\n\t\t\twhile (date.getTime() < this.max) {\r\n\t\t\t\t$time.add(date, timeUnit, count, this.dateFormatter.utc);\r\n\t\t\t\tif (!this.isInBreak(date.getTime())) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this.dateToPosition(date);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an relative position of the start of the cell (period), that specific position value falls into.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param position Relative position\r\n\t * @return Cell start relative position\r\n\t */\r\n\tpublic getCellStartPosition(position: number): number {\r\n\t\treturn this.roundPosition(position, 0);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an relative position of the end of the cell (period), that specific position value falls into.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param position Relative position\r\n\t * @return Cell end relative position\r\n\t */\r\n\tpublic getCellEndPosition(position: number): number {\r\n\t\treturn this.roundPosition(position, 1);\r\n\t\t//return this.dateToPosition($time.add(this.positionToDate(this.roundPosition(position, 1)), this.baseInterval.timeUnit, this.baseInterval.count));\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a Series data item that corresponds to the specific pixel position\r\n\t * of the Axis.\r\n\t *\r\n\t * If `findNearest` (third parameter) is set to `true`, the method will try\r\n\t * to locate nearest available data item if none is found directly under\r\n\t * `position`.\r\n\t *\r\n\t * @param series Series\r\n\t * @param position Position (px)\r\n\t * @param findNearest Should axis try to find nearest tooltip if there is no data item at exact position\r\n\t * @return Data item\r\n\t */\r\n\tpublic getSeriesDataItem(series: XYSeries, position: number, findNearest?: boolean): XYSeriesDataItem {\r\n\r\n\t\tlet value: number = this.positionToValue(position);\r\n\t\tlet date: Date = $time.round(new Date(value), this.baseInterval.timeUnit, this.baseInterval.count, this.getFirstWeekDay(), this.dateFormatter.utc);\r\n\r\n\t\tlet dataItemsByAxis = series.dataItemsByAxis.getKey(this.uid);\r\n\r\n\t\tlet dataItem = dataItemsByAxis.getKey(date.getTime().toString());\r\n\r\n\t\t// todo: alternatively we can find closiest here\r\n\t\tif (!dataItem && findNearest) {\r\n\r\n\t\t\tlet key: \"dateX\" | \"dateY\";\r\n\r\n\t\t\tif (this.axisLetter == \"Y\") {\r\n\t\t\t\tkey = \"dateY\";\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tkey = \"dateX\";\r\n\t\t\t}\r\n\r\n\t\t\tdataItem = series.dataItems.getIndex(series.dataItems.findClosestIndex(date.getTime(), (x) => {\r\n\t\t\t\tif (x[key]) {\r\n\t\t\t\t\treturn <number>x[key].getTime();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn -Infinity;\r\n\t\t\t\t}\r\n\t\t\t}, \"any\"));\r\n\t\t}\r\n\r\n\t\treturn dataItem;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a formatted date based on position in axis scale.\r\n\t *\r\n\t * Please note that `position` represents position within axis which may be\r\n\t * zoomed and not correspond to Cursor's `position`.\r\n\t *\r\n\t * To convert Cursor's `position` to Axis' `position` use `toAxisPosition()` method.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/tutorials/tracking-cursors-position-via-api/#Tracking_Cursor_s_position} For more information about cursor tracking.\r\n\t * @param position Relative position on axis (0-1)\r\n\t * @return Position label\r\n\t */\r\n\tpublic getPositionLabel(position: number): string {\r\n\t\t// @todo Better format recognition\r\n\t\tlet date = this.positionToDate(position);\r\n\t\treturn this.dateFormatter.format(date, this.getCurrentLabelFormat());\r\n\t}\r\n\r\n\t/**\r\n\t * Returns label date format based on currently used time units\r\n\t *\r\n\t * @return Format\r\n\t */\r\n\tprotected getCurrentLabelFormat(): string {\r\n\t\treturn this.dateFormats.getKey(this._gridInterval ? this._gridInterval.timeUnit : \"day\");\r\n\t}\r\n\r\n\t/**\r\n\t * Initializes an Axis renderer.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic initRenderer(): void {\r\n\t\tsuper.initRenderer();\r\n\t\tlet renderer = this.renderer;\r\n\t\tif (renderer) {\r\n\t\t\t// Set defaults\r\n\t\t\trenderer.ticks.template.location = 0;\r\n\t\t\trenderer.grid.template.location = 0;\r\n\t\t\trenderer.labels.template.location = 0;\r\n\t\t\trenderer.baseGrid.disabled = true;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Coordinates of the actual axis start.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Base point\r\n\t */\r\n\tpublic get basePoint(): IPoint {\r\n\t\treturn { x: 0, y: 0 };\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Zooms axis to specific Dates.\r\n\t *\r\n\t * @param startDate Start date\r\n\t * @param endValue End date\r\n\t * @param skipRangeEvent Do not invoke events\r\n\t * @param instantly Do not play zoom animations\r\n\t */\r\n\tpublic zoomToDates(startDate: Date, endDate: Date, skipRangeEvent?: boolean, instantly?: boolean): void {\r\n\t\tstartDate = this.dateFormatter.parse(startDate);\r\n\t\tendDate = this.dateFormatter.parse(endDate);\r\n\t\tthis.zoomToValues(startDate.getTime(), endDate.getTime(), skipRangeEvent, instantly);\r\n\t}\r\n\r\n\t/**\r\n\t * Adds `baseInterval` to \"as is\" fields.\r\n\t *\r\n\t * @param field Field name\r\n\t * @return Assign as is?\r\n\t */\r\n\tprotected asIs(field: string): boolean {\r\n\t\treturn field == \"baseInterval\" || super.asIs(field);\r\n\t}\r\n\r\n\t/**\r\n\t * Copies all properties and related data from a different instance of Axis.\r\n\t *\r\n\t * @param source Source Axis\r\n\t */\r\n\tpublic copyFrom(source: this): void {\r\n\t\tsuper.copyFrom(source);\r\n\t\tthis.dateFormats = source.dateFormats;\r\n\t\tthis.periodChangeDateFormats = source.periodChangeDateFormats;\r\n\t\tif (source[\"_baseInterval\"]) {\r\n\t\t\tthis.baseInterval = source.baseInterval;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Shows Axis tooltip at specific relative position within Axis. (0-1)\r\n\t *\r\n\t * @param position Position (0-1)\r\n\t * @param local or global position\r\n\t */\r\n\tpublic showTooltipAtPosition(position: number, local?: boolean) {\r\n\r\n\t\tif (!local) {\r\n\t\t\tposition = this.toAxisPosition(position);\r\n\t\t}\r\n\r\n\t\tif (this.snapTooltip) {\r\n\t\t\tlet actualDate = $time.round(this.positionToDate(position), this.baseInterval.timeUnit, 1, this.getFirstWeekDay(), this.dateFormatter.utc);\r\n\r\n\t\t\tlet actualTime = actualDate.getTime();\r\n\t\t\tlet closestDate: Date;\r\n\r\n\t\t\tthis.series.each((series) => {\r\n\t\t\t\tif (series.baseAxis == this) {\r\n\t\t\t\t\tlet dataItem = this.getSeriesDataItem(series, position, true);\r\n\r\n\t\t\t\t\tif (dataItem) {\r\n\t\t\t\t\t\tlet date: Date;\r\n\t\t\t\t\t\tif (series.xAxis == this) {\r\n\t\t\t\t\t\t\tdate = dataItem.dateX;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (series.yAxis == this) {\r\n\t\t\t\t\t\t\tdate = dataItem.dateY;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!closestDate) {\r\n\t\t\t\t\t\t\tclosestDate = date;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tif (Math.abs(closestDate.getTime() - actualTime) > Math.abs(date.getTime() - actualTime)) {\r\n\t\t\t\t\t\t\t\tclosestDate = date;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\tif (closestDate) {\r\n\t\t\t\tlet closestTime = closestDate.getTime();\r\n\t\t\t\tclosestDate = $time.round(new Date(closestTime), this.baseInterval.timeUnit, this.baseInterval.count, this.getFirstWeekDay(), this.dateFormatter.utc);\r\n\t\t\t\tclosestTime = closestDate.getTime();\r\n\t\t\t\tclosestDate = new Date(closestDate.getTime() + this.baseDuration * this.renderer.tooltipLocation);\r\n\t\t\t\tposition = this.dateToPosition(closestDate);\r\n\r\n\t\t\t\tthis.series.each((series) => {\r\n\r\n\t\t\t\t\tlet dataItem = series.dataItemsByAxis.getKey(this.uid).getKey(closestTime.toString());\r\n\t\t\t\t\tlet point = series.showTooltipAtDataItem(dataItem);\r\n\t\t\t\t\tif (point) {\r\n\t\t\t\t\t\tthis.chart._seriesPoints.push({ series: series, point: point });\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t// check, otherwise column tooltip will be hidden\r\n\t\t\t\t\t\tif (series.tooltipText) {\r\n\t\t\t\t\t\t\tseries.hideTooltip();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\r\n\t\t\t\t//this.chart.sortSeriesTooltips(seriesPoints);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tsuper.showTooltipAtPosition(position, true);\r\n\t}\r\n\r\n\t/**\r\n\t * Should the nearest tooltip be shown if no data item is found on the\r\n\t * current cursor position.\r\n\t *\r\n\t * @default true\r\n\t * @param value Should snap?\r\n\t */\r\n\tpublic set snapTooltip(value: boolean) {\r\n\t\tthis.setPropertyValue(\"snapTooltip\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Should snap?\r\n\t */\r\n\tpublic get snapTooltip(): boolean {\r\n\t\treturn this.getPropertyValue(\"snapTooltip\");\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Current grid interval.\r\n\t *\r\n\t * @return Grid interval\r\n\t */\r\n\tpublic get gridInterval(): ITimeInterval {\r\n\t\treturn this._gridInterval;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic makeGap(dataItem: LineSeriesDataItem, previous: LineSeriesDataItem): boolean {\r\n\t\tlet series = dataItem.component;\r\n\t\tif (dataItem && previous) {\r\n\t\t\tif (!series.connect && $type.isNumber(series.autoGapCount)) {\r\n\t\t\t\tif (series.baseAxis == this) {\r\n\t\t\t\t\tlet time = dataItem.dates[\"date\" + this.axisLetter].getTime();\r\n\t\t\t\t\tlet prevTime = previous.dates[\"date\" + this.axisLetter].getTime();\r\n\r\n\t\t\t\t\tif (time - prevTime > series.autoGapCount * this.baseDuration) {\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"DateAxis\"] = DateAxis;\r\nregistry.registeredClasses[\"DateAxisDataItem\"] = DateAxisDataItem;\r\n\n\n\n// WEBPACK FOOTER //\n// ../../../../../src/.internal/charts/axes/DateAxis.ts","/**\r\n * A module which defines functionality related to Category Axis Break.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\nimport { AxisBreak, IAxisBreakProperties, IAxisBreakAdapters, IAxisBreakEvents } from \"./AxisBreak\";\r\nimport { CategoryAxis } from \"./CategoryAxis\";\r\nimport { registry } from \"../../core/Registry\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[CategoryAxisBreak]].\r\n */\r\nexport interface ICategoryAxisBreakProperties extends IAxisBreakProperties {\r\n\r\n\t/**\r\n\t * Category break starts on.\r\n\t */\r\n\tstartCategory?: string;\r\n\r\n\t/**\r\n\t * Category break ends on.\r\n\t */\r\n\tendCategory?: string;\r\n\r\n}\r\n\r\n/**\r\n * Defines events for [[CategoryAxisBreak]].\r\n */\r\nexport interface ICategoryAxisBreakEvents extends IAxisBreakEvents { }\r\n\r\n/**\r\n * Defines adapters for [[CategoryAxisBreak]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ICategoryAxisBreakAdapters extends IAxisBreakAdapters, ICategoryAxisBreakProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Base class to define \"breaks\" in axes\r\n * @see {@link ICategoryAxisBreakEvents} for a list of available events\r\n * @see {@link ICategoryAxisBreakAdapters} for a list of available Adapters\r\n */\r\nexport class CategoryAxisBreak extends AxisBreak {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ICategoryAxisBreakProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ICategoryAxisBreakAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ICategoryAxisBreakEvents;\r\n\r\n\t/**\r\n\t * Defines the type of the Axis this break is used for.\r\n\t */\r\n\tpublic _axisType: CategoryAxis;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"CategoryAxisBreak\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Pixel position of the break's start.\r\n\t *\r\n\t * @return Position (px)\r\n\t * @readonly\r\n\t */\r\n\tpublic get startPosition(): number {\r\n\t\tif (this.axis) {\r\n\t\t\treturn this.axis.indexToPosition(this.adjustedStartValue);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Pixel position of the break's end.\r\n\t *\r\n\t * @return Position (px)\r\n\t * @readonly\r\n\t */\r\n\tpublic get endPosition(): number {\r\n\t\tif (this.axis) {\r\n\t\t\treturn this.axis.indexToPosition(this.adjustedEndValue);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A category break starts on.\r\n\t *\r\n\t * @param value Start category\r\n\t */\r\n\tpublic set startCategory(value: string) {\r\n\t\tif (this.setPropertyValue(\"startCategory\", value)) {\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tthis.axis.invalidateDataItems();\r\n\t\t\t\tthis.axis.invalidateSeries();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Start category\r\n\t */\r\n\tpublic get startCategory(): string {\r\n\t\treturn this.getPropertyValue(\"startCategory\");\r\n\t}\r\n\r\n\t/**\r\n\t * A category break ends on.\r\n\t *\r\n\t * @param value End category\r\n\t */\r\n\tpublic set endCategory(value: string) {\r\n\t\tif (this.setPropertyValue(\"endCategory\", value)) {\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tthis.axis.invalidateDataItems();\r\n\t\t\t\tthis.axis.invalidateSeries();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return End category\r\n\t */\r\n\tpublic get endCategory(): string {\r\n\t\treturn this.getPropertyValue(\"endCategory\");\r\n\t}\r\n\r\n\t/**\r\n\t * An index of start category.\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic set startValue(value: number) {\r\n\t\tif (this.setPropertyValue(\"startValue\", value)) {\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tthis.axis.invalidateDataItems();\r\n\t\t\t\tthis.axis.invalidateSeries();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Value\r\n\t */\r\n\tpublic get startValue(): number {\r\n\t\tlet category: string = this.getPropertyValue(\"startCategory\");\r\n\t\tif (category) {\r\n\t\t\treturn this.axis.categoryToIndex(category);\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this.getPropertyValue(\"startValue\");\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * An index of end category or a end value.\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic set endValue(value: number) {\r\n\t\tif (this.setPropertyValue(\"endValue\", value)) {\r\n\t\t\tif (this.axis) {\r\n\t\t\t\tthis.axis.invalidateDataItems();\r\n\t\t\t\tthis.axis.invalidateSeries();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Value\r\n\t */\r\n\tpublic get endValue(): number {\r\n\t\tlet category: string = this.getPropertyValue(\"endCategory\");\r\n\t\tif (category) {\r\n\t\t\treturn this.axis.categoryToIndex(category);\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this.getPropertyValue(\"endValue\");\r\n\t\t}\r\n\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"CategoryAxisBreak\"] = CategoryAxisBreak;\r\n\n\n\n// WEBPACK FOOTER //\n// ../../../../../src/.internal/charts/axes/CategoryAxisBreak.ts","/**\r\n * Category axis module\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Axis, AxisItemLocation, AxisDataItem, IAxisProperties, IAxisDataFields, IAxisAdapters, IAxisEvents, IAxisDataItemAdapters } from \"./Axis\";\r\nimport { IPoint, IOrientationPoint } from \"../../core/defs/IPoint\";\r\nimport { AxisFill } from \"./AxisFill\";\r\nimport { AxisRenderer } from \"./AxisRenderer\";\r\nimport { SerialChart } from \"../types/SerialChart\";\r\nimport { AxisTick } from \"./AxisTick\";\r\nimport { Grid } from \"./Grid\";\r\nimport { AxisLabel } from \"./AxisLabel\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { Dictionary } from \"../../core/utils/Dictionary\";\r\nimport { XYSeries, XYSeriesDataItem } from \"../series/XYSeries\";\r\nimport { CategoryAxisBreak } from \"./CategoryAxisBreak\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport { Adapter } from \"../../core/utils/Adapter\";\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[CategoryAxis]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class CategoryAxisDataItem extends AxisDataItem {\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: CategoryAxis;\r\n\r\n\t/**\r\n\t * Holds Adapter.\r\n\t */\r\n\tpublic adapter = new Adapter<CategoryAxisDataItem, ICategoryAxisDataItemAdapters>(this);\r\n\r\n\tpublic seriesDataItems: { [index: string]: XYSeriesDataItem[] } = {};\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"CategoryAxisDataItem\";\r\n\t\tthis.text = \"{category}\";\r\n\r\n\t\tthis.locations.category = 0;\r\n\t\tthis.locations.endCategory = 1;\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Category.\r\n\t *\r\n\t * @param value Category\r\n\t */\r\n\tpublic set category(value: string) {\r\n\t\tthis.setProperty(\"category\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Category\r\n\t */\r\n\tpublic get category(): string {\r\n\t\tif (this.adapter.isEnabled(\"category\")) {\r\n\t\t\treturn this.adapter.apply(\"category\", this.properties.category);\r\n\t\t}\r\n\t\treturn this.properties.category;\r\n\t}\r\n\r\n\t/**\r\n\t * End category.\r\n\t *\r\n\t * Used for items that span several categories, like [[CategoryAxisBreak]].\r\n\t *\r\n\t * @param value End category\r\n\t */\r\n\tpublic set endCategory(value: string) {\r\n\t\tthis.setProperty(\"endCategory\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return End category\r\n\t */\r\n\tpublic get endCategory(): string {\r\n\t\treturn this.properties.endCategory;\r\n\t}\r\n}\r\n\r\n/**\r\n * Defines adapters for [[DataItem]]\r\n * Includes both the [[Adapter]] definitions and properties\r\n * @see {@link Adapter}\r\n */\r\nexport interface ICategoryAxisDataItemAdapters extends IAxisDataItemAdapters {\r\n\tcategory: string;\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[CategoryAxis]].\r\n */\r\nexport interface ICategoryAxisDataFields extends IAxisDataFields {\r\n\r\n\t/**\r\n\t * A field that holds category information.\r\n\t */\r\n\tcategory?: string;\r\n\r\n}\r\n\r\n/**\r\n * Defines properties for [[CategoryAxis]].\r\n */\r\nexport interface ICategoryAxisProperties extends IAxisProperties { }\r\n\r\n/**\r\n * Defines events for [[CategoryAxis]].\r\n */\r\nexport interface ICategoryAxisEvents extends IAxisEvents { }\r\n\r\n/**\r\n * Defines adapter for [[CategoryAxis]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ICategoryAxisAdapters extends IAxisAdapters, ICategoryAxisProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Used to create a category-based axis for the chart.\r\n *\r\n * ```TypeScript\r\n * // Create the axis\r\n * let xAxis = chart.xAxes.push(new am4charts.CategoryAxis());\r\n *\r\n * // Set settings\r\n * xAxis.title.text = \"Clients\";\r\n * ```\r\n * ```JavaScript\r\n * // Create the axis\r\n * var valueAxis = chart.xAxes.push(new am4charts.CategoryAxis());\r\n *\r\n * // Set settings\r\n * valueAxis.title.text = \"Clients\";\r\n * ```\r\n * ```JSON\r\n * \"xAxes\": [{\r\n * \"type\": \"CategoryAxis\",\r\n * \"title\": {\r\n * \"text\": \"Clients\"\r\n * }\r\n * }]\r\n * ```\r\n *\r\n * @see {@link ICategoryAxisEvents} for a list of available Events\r\n * @see {@link ICategoryAxisAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class CategoryAxis<T extends AxisRenderer = AxisRenderer> extends Axis<T> {\r\n\r\n\t/**\r\n\t * Defines data fields.\r\n\t */\r\n\tpublic _dataFields: ICategoryAxisDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ICategoryAxisProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ICategoryAxisAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ICategoryAxisEvents;\r\n\r\n\t/**\r\n\t * Defines the type of the Date Items.\r\n\t */\r\n\tpublic _dataItem: CategoryAxisDataItem;\r\n\r\n\t/**\r\n\t * Defines the type of the axis breaks.\r\n\t */\r\n\tpublic _axisBreak: CategoryAxisBreak;\r\n\r\n\t/**\r\n\t * A reference to chart the axis is for.\r\n\t */\r\n\tpublic chart: SerialChart;\r\n\r\n\t/**\r\n\t * Frequency of the labels on axis.\r\n\t */\r\n\tprotected _frequency: number;\r\n\r\n\t/**\r\n\t * A collection that holds Axis' data items sorted by each category.\r\n\t */\r\n\tpublic dataItemsByCategory: Dictionary<string, this[\"_dataItem\"]> = new Dictionary<string, this[\"_dataItem\"]>();\r\n\r\n\t/**\r\n\t * last data item is used for the closing grid\r\n\t */\r\n\tprotected _lastDataItem: CategoryAxisDataItem;\r\n\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"CategoryAxis\";\r\n\r\n\t\t// Set field name\r\n\t\tthis.axisFieldName = \"category\";\r\n\r\n\t\tthis._lastDataItem = this.createDataItem();\r\n\t\tthis._lastDataItem.component = this;\r\n\t\tthis._disposers.push(this._lastDataItem);\r\n\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty [[DataItem]] of the type appropriate for this object.\r\n\t *\r\n\t * @see {@link DataItem}\r\n\t * @return Data Item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new CategoryAxisDataItem();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty [[AxisBreak]] of the appropriate type.\r\n\t *\r\n\t * @return Axis break\r\n\t */\r\n\tprotected createAxisBreak(): this[\"_axisBreak\"] {\r\n\t\treturn new CategoryAxisBreak();\r\n\t}\r\n\r\n\t/**\r\n\t * Processes a related series' data item.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic processSeriesDataItem(dataItem: XYSeriesDataItem, axisLetter?: string): void {\r\n\t\tsuper.processSeriesDataItem(dataItem, axisLetter);\r\n\t\tlet category: string = (<any>dataItem)[\"category\" + this.axisLetter];\r\n\r\n\t\tlet categoryAxisDataItem: this[\"_dataItem\"] = this.dataItemsByCategory.getKey(category);\r\n\t\tif (categoryAxisDataItem) {\r\n\t\t\tlet seriesId = dataItem.component.uid;\r\n\t\t\tlet seriesDataItems = categoryAxisDataItem.seriesDataItems[seriesId];\r\n\t\t\tif(!seriesDataItems){\r\n\t\t\t\tseriesDataItems = [];\r\n\t\t\t\tcategoryAxisDataItem.seriesDataItems[seriesId] = seriesDataItems;\r\n\t\t\t}\r\n\t\t\tseriesDataItems.push(dataItem);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Validates the data range.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t */\r\n\tpublic validateDataRange(): void {\r\n\r\n\t\tsuper.validateDataRange();\r\n\r\n\t\t$iter.each(this._series.iterator(), (series) => {\r\n\t\t\tif ((series.xAxis instanceof CategoryAxis) && (series.yAxis instanceof CategoryAxis)) {\r\n\t\t\t\tseries.invalidateDataRange();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlet startIndex = this.positionToIndex(this.start);\r\n\t\t\t\tlet endIndex = this.positionToIndex(this.end);\r\n\r\n\t\t\t\tlet seriesId = series.uid;\r\n\t\t\t\tlet minIndex:number;\r\n\t\t\t\tlet maxIndex:number;\r\n\r\n\t\t\t\tfor (let i = startIndex; i <= endIndex; i++) {\r\n\t\t\t\t\tlet axisDataItem = this.dataItems.getIndex(i);\r\n\t\t\t\t\tif(axisDataItem){\r\n\t\t\t\t\t\tlet seriesDataItems = axisDataItem.seriesDataItems[seriesId];\r\n\r\n\t\t\t\t\t\tif(seriesDataItems){\r\n\t\t\t\t\t\t\tfor(let i = 0; i < seriesDataItems.length; i++){\r\n\t\t\t\t\t\t\t\tlet seriesDataItem = seriesDataItems[i];\r\n\t\t\t\t\t\t\t\tif(seriesDataItem){\r\n\t\t\t\t\t\t\t\t\tlet index = seriesDataItem.index;\r\n\t\t\t\t\t\t\t\t\tif(!$type.isNumber(minIndex) || index < minIndex){\r\n\t\t\t\t\t\t\t\t\t\tminIndex = index;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif(!$type.isNumber(maxIndex) || index > maxIndex){\r\n\t\t\t\t\t\t\t\t\t\tmaxIndex = index;\r\n\t\t\t\t\t\t\t\t\t}\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($type.isNumber(minIndex)) {\r\n\t\t\t\t\tseries.startIndex = minIndex;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tseries.start = this.start;\r\n\t\t\t\t}\r\n\t\t\t\tif ($type.isNumber(maxIndex)) {\r\n\t\t\t\t\tseries.endIndex = maxIndex + 1;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tseries.end = this.end;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// range might not change, but axis breaks might.\r\n\t\t\t\tif (this.axisBreaks.length > 0) {\r\n\t\t\t\t\tseries.invalidateDataRange();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Validates the whole axis. Causes it to redraw.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t */\r\n\tpublic validate(): void {\r\n\r\n\t\tsuper.validate();\r\n\r\n\t\tlet dataCount: number = this.dataItems.length;\r\n\r\n\t\tlet startIndex = $math.fitToRange(Math.floor(this.start * dataCount - 1), 0, dataCount);\r\n\t\tlet endIndex = $math.fitToRange(Math.ceil(this.end * dataCount), 0, dataCount);\r\n\r\n\t\tif (this.renderer.invalid) {\r\n\t\t\tthis.renderer.validate();\r\n\t\t}\r\n\r\n\t\t// find frequency at which we'll show items\r\n\t\tlet maxCount: number = this.renderer.axisLength / this.renderer.minGridDistance;\r\n\t\tlet frequency: number = Math.min(this.dataItems.length, Math.ceil((endIndex - startIndex) / maxCount));\r\n\r\n\t\tthis._startIndex = Math.floor(startIndex / frequency) * frequency;\r\n\t\tthis._endIndex = Math.ceil(this.end * dataCount);\r\n\r\n\t\tthis.fixAxisBreaks();\r\n\r\n\t\tif (this._startIndex == this._endIndex) {\r\n\t\t\tthis._endIndex++;\r\n\t\t}\r\n\r\n\t\tthis._frequency = frequency;\r\n\r\n\t\tif (this.axisLength <= 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.maxZoomFactor = this.dataItems.length;\r\n\t\tif (this.dataItems.length <= 0) {\r\n\t\t\tthis.maxZoomFactor = 1;\r\n\t\t}\r\n\r\n\t\tthis.resetIterators();\r\n\r\n\t\t// it's important to use protected variables here, as getters will return 0 - length\r\n\t\t// TODO use iterator instead\r\n\t\t// @ todo: not solved cat axis item fading\r\n\t\tstartIndex = $math.max(0, this._startIndex - this._frequency);\r\n\t\tendIndex = $math.min(this.dataItems.length, this._endIndex + this._frequency);\r\n\r\n\t\tlet itemIndex = 0;\r\n\r\n\t\tfor (let i = 0; i < startIndex; i++) {\r\n\t\t\tlet dataItem = this.dataItems.getIndex(i);\r\n\t\t\tdataItem.__disabled = true;\r\n\t\t}\r\n\r\n\t\tfor (let i = endIndex, len = this.dataItems.length; i < len; i++) {\r\n\t\t\tlet dataItem = this.dataItems.getIndex(i);\r\n\t\t\tdataItem.__disabled = true;\r\n\t\t}\r\n\r\n\t\tfor (let i = startIndex; i < endIndex; i++) {\r\n\t\t\tif (i < this.dataItems.length) {\r\n\t\t\t\tlet dataItem: this[\"_dataItem\"] = this.dataItems.getIndex(i);\r\n\t\t\t\tif (i / this._frequency == Math.round(i / this._frequency)) {\r\n\t\t\t\t\tlet axisBreak: CategoryAxisBreak = this.isInBreak(i);\r\n\t\t\t\t\tif (!axisBreak) {\r\n\t\t\t\t\t\tthis.appendDataItem(dataItem);\r\n\t\t\t\t\t\tthis.validateDataElement(dataItem, itemIndex);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\titemIndex++;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t//previously we disabled all before, but this is better for cpu\r\n\t\t\t\t\t//this.validateDataElement(dataItem, itemIndex); // helps to solve shrinking // not good - creates all items\r\n\t\t\t\t\tdataItem.__disabled = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.appendDataItem(this._lastDataItem);\r\n\t\tthis.validateDataElement(this._lastDataItem, itemIndex + 1, this.dataItems.length);\r\n\r\n\t\tlet axisBreaks = this.axisBreaks;\r\n\r\n\t\taxisBreaks.each((axisBreak) => {\r\n\t\t\tlet adjustedStartValue: number = axisBreak.adjustedStartValue;\r\n\t\t\tlet adjustedEndValue: number = axisBreak.adjustedEndValue;\r\n\r\n\t\t\tif ($math.intersect({ start: adjustedStartValue, end: adjustedEndValue }, { start: this._startIndex, end: this._endIndex })) {\r\n\r\n\t\t\t\tlet frequency: number = $math.fitToRange(Math.ceil(this._frequency / axisBreak.breakSize), 1, adjustedEndValue - adjustedStartValue);\r\n\t\t\t\tlet itemIndex = 0;\r\n\t\t\t\t// TODO use iterator instead\r\n\t\t\t\tfor (let b = adjustedStartValue; b <= adjustedEndValue; b = b + frequency) {\r\n\t\t\t\t\tlet dataItem: this[\"_dataItem\"] = this.dataItems.getIndex(b);\r\n\t\t\t\t\tthis.appendDataItem(dataItem);\r\n\t\t\t\t\tthis.validateDataElement(dataItem, itemIndex);\r\n\t\t\t\t\titemIndex++;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.validateBreaks();\r\n\t\tthis.validateAxisRanges();\r\n\r\n\t\tthis.ghostLabel.invalidate(); // solves font issue\r\n\t\tthis.renderer.invalidateLayout();\r\n\t}\r\n\r\n\t/**\r\n\t * [validateDataElement description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param dataItem [description]\r\n\t * @param itemIndex [description]\r\n\t */\r\n\tpublic validateDataElement(dataItem: this[\"_dataItem\"], itemIndex?: number, index?: number): void {\r\n\t\tsuper.validateDataElement(dataItem);\r\n\r\n\t\t//dataItem.__disabled = false;\r\n\r\n\t\tlet renderer: AxisRenderer = this.renderer;\r\n\t\tif (!$type.isNumber(index)) {\r\n\t\t\tindex = this.categoryToIndex(dataItem.category);\r\n\t\t}\r\n\r\n\t\tlet endIndex = this.categoryToIndex(dataItem.endCategory);\r\n\r\n\t\tif (!$type.isNumber(endIndex)) {\r\n\t\t\tendIndex = index;\r\n\t\t}\r\n\r\n\t\tlet position: number = this.indexToPosition(index, dataItem.locations.category);\r\n\t\tlet endPosition: number = this.indexToPosition(endIndex, dataItem.locations.endCategory);\r\n\r\n\t\tdataItem.position = position;\r\n\r\n\t\tlet fillEndIndex: number;\r\n\t\tlet fillPosition: number;\r\n\t\tlet fillEndPosition: number;\r\n\r\n\t\tif (dataItem.isRange) {\r\n\t\t\tfillEndIndex = endIndex;\r\n\t\t\tfillPosition = this.indexToPosition(index, dataItem.locations.category);\r\n\t\t\tfillEndPosition = this.indexToPosition(fillEndIndex, dataItem.locations.endCategory);\r\n\t\t}\r\n\r\n\t\tdataItem.point = renderer.positionToPoint(position);\r\n\r\n\t\tlet tick: AxisTick = dataItem.tick;\r\n\t\tif (tick && !tick.disabled) {\r\n\t\t\trenderer.updateTickElement(tick, position, endPosition);\r\n\t\t}\r\n\r\n\t\tlet grid: Grid = dataItem.grid;\r\n\t\tif (grid && !grid.disabled) {\r\n\t\t\trenderer.updateGridElement(grid, position, endPosition);\r\n\t\t}\r\n\r\n\r\n\t\tlet label: AxisLabel = dataItem.label;\r\n\t\tif (label && !label.disabled) {\r\n\t\t\t// theorethically this might result problems if category text changes, the range text won't change. But otherwise range.label.text = \"custom text\" wont' work, which is not intuitive.\r\n\t\t\tif (!dataItem.isRange || label.text == undefined) {\r\n\t\t\t\tdataItem.text = dataItem.text;\r\n\t\t\t}\r\n\r\n\t\t\trenderer.updateLabelElement(label, position, endPosition);\r\n\r\n\t\t\tif (dataItem.label.measuredWidth > this.ghostLabel.measuredWidth || dataItem.label.measuredHeight > this.ghostLabel.measuredHeight) {\r\n\t\t\t\tthis.ghostLabel.text = dataItem.label.currentText;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet fill: AxisFill = dataItem.axisFill;\r\n\t\tif (fill && !fill.disabled) {\r\n\r\n\t\t\tif (!dataItem.isRange) {\r\n\t\t\t\tfillEndIndex = index + this._frequency;\r\n\t\t\t\tfillPosition = this.indexToPosition(index, fill.location);\r\n\t\t\t\tfillEndPosition = this.indexToPosition(fillEndIndex, fill.location);\r\n\t\t\t}\r\n\r\n\t\t\trenderer.updateFillElement(fill, fillPosition, fillEndPosition);\r\n\t\t\tif (!dataItem.isRange) {\r\n\t\t\t\tthis.fillRule(dataItem, itemIndex);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tlet mask: AxisFill = dataItem.mask;\r\n\t\tif (mask) {\r\n\t\t\trenderer.updateFillElement(mask, fillPosition, fillEndPosition);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic disposeData() {\r\n\t\tthis.dataItemsByCategory.clear();\r\n\t\tsuper.disposeData();\r\n\t}\r\n\r\n\t/**\r\n\t * Processes the axis data item.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param dataItem Data item\r\n\t * @param dataContext The raw data that corresponds to this data item\r\n\t */\r\n\tpublic processDataItem(dataItem: this[\"_dataItem\"], dataContext: Object): void {\r\n\t\t// creat a collection for fast access\r\n\t\tsuper.processDataItem(dataItem, dataContext);\r\n\t\t// check if such category already exists\r\n\t\t//let existingDataItem: CategoryAxisDataItem = this.dataItemsByCategory.getKey(dataItem.category);\r\n\t\t//if (existingDataItem && existingDataItem != dataItem) {\r\n\t\t//\tthis.dataItems.remove(existingDataItem);\r\n\t\t//}\r\n\r\n\t\tthis.dataItemsByCategory.setKey(dataItem.category, dataItem);\r\n\t}\r\n\r\n\r\n\tprotected getDataItem(dataContext?: any): this[\"_dataItem\"] {\r\n\t\tlet category: string = <string>(dataContext[this.dataFields.category]);\r\n\t\tlet dataItem: this[\"_dataItem\"] = this.dataItemsByCategory.getKey(category);\r\n\r\n\t\tif (dataItem) {\r\n\t\t\treturn dataItem;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this.dataItems.create();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Converts a category index to an actual screen coordinate on the axis.\r\n\t *\r\n\t * `location` identifies relative location within category. 0 - beginning,\r\n\t * 0.5 - middle, 1 - end, and anything inbetween.\r\n\t *\r\n\t * @param index Index\r\n\t * @param location Location (0-1)\r\n\t * @return Position (px)\r\n\t */\r\n\tpublic indexToPosition(index: number, location?: AxisItemLocation | number): number {\r\n\t\tif (!$type.isNumber(location)) {\r\n\t\t\tlocation = 0.5;\r\n\t\t}\r\n\r\n\t\tlet startIndex: number = this.startIndex;\r\n\t\tlet endIndex: number = this.endIndex;\r\n\r\n\t\tlet difference: number = this.adjustDifference(startIndex, endIndex);\r\n\r\n\t\tlet startLocation = this.startLocation;\r\n\t\tlet endLocation = this.endLocation;\r\n\r\n\t\tdifference -= startLocation;\r\n\t\tdifference -= (1 - endLocation);\r\n\r\n\t\tlet axisBreaks = this.axisBreaks;\r\n\r\n\t\t$iter.eachContinue(axisBreaks.iterator(), (axisBreak) => {\r\n\t\t\tlet breakStartIndex: number = axisBreak.adjustedStartValue;\r\n\t\t\tlet breakEndIndex: number = axisBreak.adjustedEndValue;\r\n\r\n\t\t\tif (index < startIndex) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tif ($math.intersect({ start: breakStartIndex, end: breakEndIndex }, { start: startIndex, end: endIndex })) {\r\n\t\t\t\tbreakStartIndex = Math.max(startIndex, breakStartIndex);\r\n\t\t\t\tbreakEndIndex = Math.min(endIndex, breakEndIndex);\r\n\r\n\t\t\t\tlet breakSize: number = axisBreak.breakSize;\r\n\r\n\t\t\t\t// value to the right of break end\r\n\t\t\t\tif (index > breakEndIndex) {\r\n\t\t\t\t\tstartIndex += (breakEndIndex - breakStartIndex) * (1 - breakSize);\r\n\t\t\t\t}\r\n\t\t\t\t// value to the left of break start\r\n\t\t\t\telse if (index < breakStartIndex) {\r\n\r\n\t\t\t\t}\r\n\t\t\t\t// value within break\r\n\t\t\t\telse {\r\n\t\t\t\t\tindex = breakStartIndex + (index - breakStartIndex) * breakSize;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t});\r\n\r\n\t\treturn $math.round((index + location - startLocation - startIndex) / difference, 5);\r\n\t}\r\n\r\n\t/**\r\n\t * Converts a string category name to relative position on axis.\r\n\t *\r\n\t * `location` identifies relative location within category. 0 - beginning,\r\n\t * 0.5 - middle, 1 - end, and anything inbetween.\r\n\t *\r\n\t * @param category Category name\r\n\t * @param location Location (0-1)\r\n\t * @return Position\r\n\t */\r\n\tpublic categoryToPosition(category: string, location?: AxisItemLocation): number {\r\n\t\tlet index: number = this.categoryToIndex(category);\r\n\t\treturn this.indexToPosition(index, location);\r\n\t}\r\n\r\n\t/**\r\n\t * Converts a string category name to a orientation point (x, y, angle) on axis\r\n\t *\r\n\t * `location` identifies relative location within category. 0 - beginning,\r\n\t * 0.5 - middle, 1 - end, and anything inbetween.\r\n\t * @param category Category name\r\n\t * @param location Location (0-1)\r\n\t * @return Orientation point\r\n\t */\r\n\tpublic categoryToPoint(category: string, location?: AxisItemLocation): IOrientationPoint {\r\n\t\tlet position = this.categoryToPosition(category, location);\r\n\t\tlet point = this.renderer.positionToPoint(position);\r\n\t\tlet angle = this.renderer.positionToAngle(position);\r\n\t\treturn { x: point.x, y: point.y, angle: angle };\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Converts a string category name to a orientation point (x, y, angle) on axis\r\n\t *\r\n\t * `location` identifies relative location within category. 0 - beginning,\r\n\t * 0.5 - middle, 1 - end, and anything inbetween.\r\n\t * @param category Category name\r\n\t * @param location Location (0-1)\r\n\t * @return Orientation point\r\n\t */\r\n\tanyToPoint(category: string, location?: AxisItemLocation): IOrientationPoint {\r\n\t\treturn this.categoryToPoint(category, location);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Converts a string category name to relative position on axis.\r\n\t *\r\n\t * An alias to `categoryToPosition()`.\r\n\t *\r\n\t * @param category Category name\r\n\t * @param location Location (0-1)\r\n\t * @return Relative position\r\n\t */\r\n\tpublic anyToPosition(category: string, location?: AxisItemLocation): number {\r\n\t\treturn this.categoryToPosition(category, location);\r\n\t}\r\n\r\n\t/**\r\n\t * Converts named category to an index of data item it corresponds to.\r\n\t *\r\n\t * @param category Category\r\n\t * @return Data item index\r\n\t */\r\n\tpublic categoryToIndex(category: string): number {\r\n\t\tif ($type.hasValue(category)) {\r\n\t\t\tlet dataItem: this[\"_dataItem\"] = this.dataItemsByCategory.getKey(category);\r\n\t\t\tif (dataItem) {\r\n\t\t\t\treturn dataItem.index;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Zooms the axis to specific named ctaegories.\r\n\t *\r\n\t * @param startCategory Start category\r\n\t * @param endCategory End category\r\n\t */\r\n\tpublic zoomToCategories(startCategory: string, endCategory: string): void {\r\n\t\tthis.zoomToIndexes(this.categoryToIndex(startCategory), this.categoryToIndex(endCategory) + 1);\r\n\t}\r\n\r\n\t/**\r\n\t * [getAnyRangePath description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param start [description]\r\n\t * @param end [description]\r\n\t * @param startLocation [description]\r\n\t * @param endLocation [description]\r\n\t * @return [description]\r\n\t */\r\n\tpublic getAnyRangePath(start: string, end: string, startLocation?: AxisItemLocation, endLocation?: AxisItemLocation): string {\r\n\t\tlet startPos: number = this.categoryToPosition(start, startLocation);\r\n\t\tlet endPos: number = this.categoryToPosition(end, endLocation);\r\n\t\treturn this.getPositionRangePath(startPos, endPos); // Base class (Axis) gets range shape from AxisRenderer\r\n\t}\r\n\r\n\t/**\r\n\t * Takes an absolute position (px) within axis and adjust it to a specific\r\n\t * `location` within category it corresponds to.\r\n\t *\r\n\t * @param position Source position (px)\r\n\t * @param location Location within category (0-1)\r\n\t * @return Adjusted position (px)\r\n\t */\r\n\tpublic roundPosition(position: number, location?: AxisItemLocation): number {\r\n\t\tlet index: number = this.positionToIndex(position);\r\n\t\treturn this.indexToPosition(index, location);\r\n\t}\r\n\r\n\t/**\r\n\t * Finds and returns first series data item with specific category\r\n\t * @param series Target series\r\n\t * @param category Category\r\n\t * @return XYSeriesDataItem data item\r\n\t */\r\n\tpublic getFirstSeriesDataItem(series: XYSeries, category: string): XYSeriesDataItem {\r\n\r\n\t\tfor (let i = 0; i < series.dataItems.length; i++) {\r\n\t\t\tlet dataItem = series.dataItems.getIndex(i);\r\n\t\t\tif (series.xAxis == this) {\r\n\t\t\t\tif (dataItem.categoryX == category) {\r\n\t\t\t\t\treturn dataItem;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (series.yAxis == this) {\r\n\t\t\t\tif (dataItem.categoryY == category) {\r\n\t\t\t\t\treturn dataItem;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Finds and returns last series data item with specific category.\r\n\t * @param series Target series\r\n\t * @param category Category\r\n\t * @return XYSeriesDataItem data item\r\n\t */\r\n\tpublic getLastSeriesDataItem(series: XYSeries, category: string): XYSeriesDataItem {\r\n\r\n\t\tfor (let i = series.dataItems.length - 1; i >= 0; i--) {\r\n\t\t\tlet dataItem = series.dataItems.getIndex(i);\r\n\t\t\tif (series.xAxis == this) {\r\n\t\t\t\tif (dataItem.categoryX == category) {\r\n\t\t\t\t\treturn dataItem;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (series.yAxis == this) {\r\n\t\t\t\tif (dataItem.categoryY == category) {\r\n\t\t\t\t\treturn dataItem;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns a data item from Series that corresponds to a specific absolute\r\n\t * position on the Axis.\r\n\t *\r\n\t * @param series Target series\r\n\t * @param position Position (px)\r\n\t * @return XYSeriesDataItem data item\r\n\t */\r\n\tpublic getSeriesDataItem(series: XYSeries, position: number, findNearest?: boolean): XYSeriesDataItem {\r\n\r\n\t\tif ($type.isNumber(position)) {\r\n\r\n\t\t\tlet index = this.positionToIndex(position);\r\n\r\n\t\t\tlet dataItem = this.dataItems.getIndex(index);\r\n\r\n\t\t\tif (dataItem) {\r\n\t\t\t\tlet category = dataItem.category;\r\n\t\t\t\tlet sdi: XYSeriesDataItem;\r\n\r\n\t\t\t\tlet seriesDataItem = series.dataItems.getIndex(index);\r\n\t\t\t\tif (seriesDataItem) {\r\n\t\t\t\t\tif (series.xAxis == this) {\r\n\t\t\t\t\t\tif (seriesDataItem.categoryX == category) {\r\n\t\t\t\t\t\t\treturn seriesDataItem;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (series.yAxis == this) {\r\n\t\t\t\t\t\tif (seriesDataItem.categoryY == category) {\r\n\t\t\t\t\t\t\treturn seriesDataItem;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\tseries.dataItems.each((dataItem) => {\r\n\t\t\t\t\tif (series.xAxis == this) {\r\n\t\t\t\t\t\tif (dataItem.categoryX == category) {\r\n\t\t\t\t\t\t\tif (!sdi) {\r\n\t\t\t\t\t\t\t\tsdi = dataItem;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (Math.abs(index - sdi.index) > Math.abs(index - dataItem.index)) {\r\n\t\t\t\t\t\t\t\tsdi = dataItem;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (series.yAxis == this) {\r\n\t\t\t\t\t\tif (dataItem.categoryY == category) {\r\n\t\t\t\t\t\t\tif (!sdi) {\r\n\t\t\t\t\t\t\t\tsdi = dataItem;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (Math.abs(index - sdi.index) > Math.abs(index - dataItem.index)) {\r\n\t\t\t\t\t\t\t\tsdi = dataItem;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\r\n\t\t\t\t//@todo\r\n\t\t\t\tif (findNearest) {\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn sdi;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the X coordinate for series' data item.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param dataItem Data item\r\n\t * @param key Category\r\n\t * @param location Location (0-1)\r\n\t * @return X coordinate (px)\r\n\t */\r\n\tpublic getX(dataItem: XYSeriesDataItem, key?: string, location?: number): number {\r\n\t\tlet position;\r\n\t\tif ($type.hasValue(key)) {\r\n\t\t\tposition = this.categoryToPosition(dataItem.categories[key], location);\r\n\t\t}\r\n\t\tif ($type.isNaN(position)) {\r\n\t\t\treturn this.basePoint.x;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this.renderer.positionToPoint(position).x;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the Y coordinate for series' data item.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param dataItem Data item\r\n\t * @param key Category\r\n\t * @param location Location (0-1)\r\n\t * @return Y coordinate (px)\r\n\t */\r\n\tpublic getY(dataItem: XYSeriesDataItem, key?: string, location?: number): number {\r\n\t\tlet position;\r\n\t\tif ($type.hasValue(key)) {\r\n\t\t\tposition = this.categoryToPosition(dataItem.categories[key], location);\r\n\t\t}\r\n\t\tif ($type.isNaN(position)) {\r\n\t\t\treturn this.basePoint.y;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this.renderer.positionToPoint(position).y;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an angle for series data item.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param dataItem Data item\r\n\t * @param key Category\r\n\t * @param location Location (0-1)\r\n\t * @param stackKey Stack key (?)\r\n\t * @return Angle\r\n\t */\r\n\tpublic getAngle(dataItem: XYSeriesDataItem, key: string, location?: number, stackKey?: string): number {\r\n\t\treturn this.positionToAngle(this.categoryToPosition(dataItem.categories[key], location));\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an absolute pixel coordinate of the start of the cell (category),\r\n\t * that specific position value falls into.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param position Position (px)\r\n\t * @return Cell start position (px)\r\n\t */\r\n\tpublic getCellStartPosition(position: number): number {\r\n\t\treturn this.roundPosition(position, 0);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an absolute pixel coordinate of the end of the cell (category),\r\n\t * that specific position value falls into.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description (review)\r\n\t * @param position Position (px)\r\n\t * @return Cell end position (px)\r\n\t */\r\n\tpublic getCellEndPosition(position: number): number {\r\n\t\treturn this.roundPosition(position, 1);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns text to show in a category tooltip, based on specific position\r\n\t * within axis.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param position Position (px)\r\n\t * @return Label (category)\r\n\t */\r\n\tpublic getTooltipText(position: number): string {\r\n\t\tlet dataItem: this[\"_dataItem\"] = this.dataItems.getIndex(this.positionToIndex(position));\r\n\t\tif (dataItem) {\r\n\t\t\treturn this.adapter.apply(\"getTooltipText\", dataItem.category);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an index of the category that corresponds to specific pixel\r\n\t * position within axis.\r\n\t *\r\n\t * @param position Position (px)\r\n\t * @return Category index\r\n\t */\r\n\tpublic positionToIndex(position: number): number {\r\n\t\tposition = $math.round(position, 10);\r\n\t\tif (position < 0) {\r\n\t\t\tposition = 0;\r\n\t\t}\r\n\r\n\t\tlet startIndex: number = this.startIndex;\r\n\t\tlet endIndex: number = this.endIndex;\r\n\t\tlet difference: number = endIndex - startIndex;\r\n\r\n\t\tlet axisBreaks = this.axisBreaks;\r\n\r\n\t\tlet index: number = null;\r\n\r\n\t\t// in case we have some axis breaks\r\n\t\t$iter.eachContinue(axisBreaks.iterator(), (axisBreak) => {\r\n\t\t\tlet breakStartPosition: number = axisBreak.startPosition;\r\n\t\t\tlet breakEndPosition: number = axisBreak.endPosition;\r\n\r\n\t\t\tlet breakStartIndex: number = axisBreak.adjustedStartValue;\r\n\t\t\tlet breakEndIndex: number = axisBreak.adjustedEndValue;\r\n\r\n\t\t\tbreakStartIndex = $math.max(breakStartIndex, startIndex);\r\n\t\t\tbreakEndIndex = $math.min(breakEndIndex, endIndex);\r\n\r\n\t\t\tlet breakSize: number = axisBreak.breakSize;\r\n\r\n\t\t\tdifference -= (breakEndIndex - breakStartIndex) * (1 - breakSize);\r\n\r\n\t\t\t// position to the right of break end\r\n\t\t\tif (position > breakEndPosition) {\r\n\t\t\t\tstartIndex += (breakEndIndex - breakStartIndex) * (1 - breakSize);\r\n\t\t\t}\r\n\t\t\t// position to the left of break start\r\n\t\t\telse if (position < breakStartPosition) {\r\n\r\n\t\t\t}\r\n\t\t\t// value within break\r\n\t\t\telse {\r\n\t\t\t\tlet breakPosition = (position - breakStartPosition) / (breakEndPosition - breakStartPosition);\r\n\t\t\t\tindex = breakStartIndex + Math.round(breakPosition * (breakEndIndex - breakStartIndex));\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t});\r\n\r\n\t\tif (!$type.isNumber(index)) {\r\n\t\t\tindex = Math.floor(position * difference + startIndex);\r\n\t\t}\r\n\t\tif (index >= endIndex) {\r\n\t\t\tindex--;\r\n\t\t}\r\n\r\n\t\treturn index;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns category based on position.\r\n\t *\r\n\t * Please note that `position` represents position within axis which may be\r\n\t * zoomed and not correspond to Cursor's `position`.\r\n\t *\r\n\t * To convert Cursor's `position` to Axis' `position` use `toAxisPosition()` method.\r\n\t *\r\n\t * This is a synonim of `getPositionLabel()` implemented here for consistentcy.\r\n\t *\r\n\t * @since 4.3.8\r\n\t * @see {@link https://www.amcharts.com/docs/v4/tutorials/tracking-cursors-position-via-api/#Tracking_Cursor_s_position} For more information about cursor tracking.\r\n\t * @param position Relative position on axis (0-1)\r\n\t * @return Position label\r\n\t */\r\n\tpublic positionToCategory(position: number): string {\r\n\t\treturn this.getPositionLabel(position);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns category based on position.\r\n\t *\r\n\t * Please note that `position` represents position within axis which may be\r\n\t * zoomed and not correspond to Cursor's `position`.\r\n\t *\r\n\t * To convert Cursor's `position` to Axis' `position` use `toAxisPosition()` method.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v4/tutorials/tracking-cursors-position-via-api/#Tracking_Cursor_s_position} For more information about cursor tracking.\r\n\t * @param position Relative position on axis (0-1)\r\n\t * @return Position label\r\n\t */\r\n\tpublic getPositionLabel(position: number): string {\r\n\t\tlet dataItem: this[\"_dataItem\"] = this.dataItems.getIndex(this.positionToIndex(position));\r\n\t\tif (dataItem) {\r\n\t\t\treturn dataItem.category;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Coordinates of the actual axis start.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @return Base point\r\n\t */\r\n\tpublic get basePoint(): IPoint {\r\n\t\t// This makes base grid to be drawn at the end of the axis and adds extra\r\n\t\t// grid which we need to nicely close the chart.\r\n\t\treturn this.renderer.positionToPoint(1);\r\n\t}\r\n\r\n\t/**\r\n\t * Initializes Axis' renderer.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic initRenderer(): void {\r\n\t\tsuper.initRenderer();\r\n\r\n\t\tlet renderer = this.renderer;\r\n\t\trenderer.baseGrid.disabled = true;\r\n\t}\r\n\r\n\t/**\r\n\t * Current frequency of labels of the axis.\r\n\t *\r\n\t * Normally it would be 1, but when labels start to be hidden due\r\n\t * to `minGridDistance` this read-only property will increase.\r\n\t *\r\n\t * @readonly\r\n\t * @since 4.2.0\r\n\t * @return Label frequency\r\n\t */\r\n\tpublic get frequency(): number {\r\n\t\treturn this._frequency;\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"CategoryAxis\"] = CategoryAxis;\r\nregistry.registeredClasses[\"CategoryAxisDataItem\"] = CategoryAxisDataItem;\r\n\n\n\n// WEBPACK FOOTER //\n// ../../../../../src/.internal/charts/axes/CategoryAxis.ts","/**\r\n * XY series module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Series, SeriesDataItem, ISeriesProperties, ISeriesDataFields, ISeriesAdapters, ISeriesEvents } from \"./Series\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { Axis } from \"../axes/Axis\";\r\nimport { AxisRenderer } from \"../axes/AxisRenderer\";\r\nimport { ValueAxis } from \"../axes/ValueAxis\";\r\nimport { Dictionary } from \"../../core/utils/Dictionary\";\r\nimport { List } from \"../../core/utils/List\";\r\nimport { MutableValueDisposer } from \"../../core/utils/Disposer\";\r\nimport { XYChart } from \"../types/XYChart\";\r\nimport { CategoryAxis } from \"../axes/CategoryAxis\";\r\nimport { IPoint } from \"../../core/defs/IPoint\";\r\nimport { DateAxis } from \"../axes/DateAxis\";\r\nimport { Bullet } from \"../elements/Bullet\";\r\nimport { CalculatedValue } from \"../../core/Component\";\r\nimport { Animation } from \"../../core/utils/Animation\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $array from \"../../core/utils/Array\";\r\nimport * as $object from \"../../core/utils/Object\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport { ITimeInterval } from \"../../core/defs/ITimeInterval\";\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[XYSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class XYSeriesDataItem extends SeriesDataItem {\r\n\r\n\t/**\r\n\t * [_minX description]\r\n\t *\r\n\t * @todo Descripion\r\n\t */\r\n\tprotected _minX: number;\r\n\r\n\t/**\r\n\t * [_maxX description]\r\n\t *\r\n\t * @todo Descripion\r\n\t */\r\n\tprotected _maxX: number;\r\n\r\n\t/**\r\n\t * [_minY description]\r\n\t *\r\n\t * @todo Descripion\r\n\t */\r\n\tprotected _minY: number;\r\n\r\n\t/**\r\n\t * [_maxY description]\r\n\t *\r\n\t * @todo Descripion\r\n\t */\r\n\tprotected _maxY: number;\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: XYSeries;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.className = \"XYSeriesDataItem\";\r\n\r\n\t\tthis.values.valueX = { stack: 0 };\r\n\t\tthis.values.valueY = { stack: 0 };\r\n\t\tthis.values.openValueX = {};\r\n\t\tthis.values.openValueY = {};\r\n\r\n\t\tthis.values.dateX = {};\r\n\t\tthis.values.dateY = {};\r\n\t\tthis.values.openDateX = {};\r\n\t\tthis.values.openDateY = {};\r\n\r\n\t\tthis.setLocation(\"dateX\", 0.5, 0);\r\n\t\tthis.setLocation(\"dateY\", 0.5, 0);\r\n\r\n\t\tthis.setLocation(\"categoryX\", 0.5, 0);\r\n\t\tthis.setLocation(\"categoryY\", 0.5, 0);\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Item's numeric value on X value axis.\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic set valueX(value: number) {\r\n\t\tthis.setValue(\"valueX\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Value\r\n\t */\r\n\tpublic get valueX(): number {\r\n\t\treturn this.values.valueX.value;\r\n\t}\r\n\r\n\t/**\r\n\t * Item's numeric value on Y value axis.\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic set valueY(value: number) {\r\n\t\tthis.setValue(\"valueY\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Value\r\n\t */\r\n\tpublic get valueY(): number {\r\n\t\treturn this.values.valueY.value;\r\n\t}\r\n\r\n\t/**\r\n\t * Item's date value on X date-based axis.\r\n\t *\r\n\t * @param date Date\r\n\t */\r\n\tpublic set dateX(date: Date) {\r\n\t\tthis.setDate(\"dateX\", date);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Date\r\n\t */\r\n\tpublic get dateX(): Date {\r\n\t\treturn this.getDate(\"dateX\");\r\n\t}\r\n\r\n\t/**\r\n\t * Item's date value on Y date-based axis.\r\n\t *\r\n\t * @param date Date\r\n\t */\r\n\tpublic set dateY(date: Date) {\r\n\t\tthis.setDate(\"dateY\", date);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Date\r\n\t */\r\n\tpublic get dateY(): Date {\r\n\t\treturn this.getDate(\"dateY\");\r\n\t}\r\n\r\n\t/**\r\n\t * Item's category on X category axis.\r\n\t *\r\n\t * @param category Category\r\n\t */\r\n\tpublic set categoryX(category: string) {\r\n\t\tthis.setCategory(\"categoryX\", category);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Category\r\n\t */\r\n\tpublic get categoryX(): string {\r\n\t\treturn this.categories.categoryX;\r\n\t}\r\n\r\n\t/**\r\n\t * Item's category on Y category axis.\r\n\t *\r\n\t * @param category Category\r\n\t */\r\n\tpublic set categoryY(category: string) {\r\n\t\tthis.setCategory(\"categoryY\", category);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Category\r\n\t */\r\n\tpublic get categoryY(): string {\r\n\t\treturn this.categories.categoryY;\r\n\t}\r\n\r\n\t/**\r\n\t * Item's open numeric value on X value axis.\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic set openValueX(value: number) {\r\n\t\tthis.setValue(\"openValueX\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Value\r\n\t */\r\n\tpublic get openValueX(): number {\r\n\t\treturn this.values.openValueX.value;\r\n\t}\r\n\r\n\t/**\r\n\t * Item's open numeric value on Y value axis.\r\n\t *\r\n\t * @param value Value\r\n\t */\r\n\tpublic set openValueY(value: number) {\r\n\t\tthis.setValue(\"openValueY\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Value\r\n\t */\r\n\tpublic get openValueY(): number {\r\n\t\treturn this.values.openValueY.value;\r\n\t}\r\n\r\n\t/**\r\n\t * Item's open date value on X date-based axis.\r\n\t *\r\n\t * @param date Date\r\n\t */\r\n\tpublic set openDateX(date: Date) {\r\n\t\tthis.setDate(\"openDateX\", date);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Date\r\n\t */\r\n\tpublic get openDateX(): Date {\r\n\t\treturn this.getDate(\"openDateX\");\r\n\t}\r\n\r\n\t/**\r\n\t * Item's open date value on Y date-based axis.\r\n\t *\r\n\t * @param date Date\r\n\t */\r\n\tpublic set openDateY(date: Date) {\r\n\t\tthis.setDate(\"openDateY\", date);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Date\r\n\t */\r\n\tpublic get openDateY(): Date {\r\n\t\treturn this.getDate(\"openDateY\");\r\n\t}\r\n\r\n\t/**\r\n\t * Item's open category on X category axis.\r\n\t *\r\n\t * @param category Category\r\n\t */\r\n\tpublic set openCategoryX(category: string) {\r\n\t\tthis.setProperty(\"openCategoryX\", category);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Category\r\n\t */\r\n\tpublic get openCategoryX(): string {\r\n\t\treturn this.categories.openCategoryX;\r\n\t}\r\n\r\n\t/**\r\n\t * Item's open category on Y category axis.\r\n\t *\r\n\t * @param category Category\r\n\t */\r\n\tpublic set openCategoryY(category: string) {\r\n\t\tthis.setProperty(\"openCategoryY\", category);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Category\r\n\t */\r\n\tpublic get openCategoryY(): string {\r\n\t\treturn this.categories.openCategoryY;\r\n\t}\r\n\r\n\t/**\r\n\t * Return smallest value out of all item's value fields.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param fields Fields to check in\r\n\t * @param working Include working (temporary) values\r\n\t * @param stackValue If item is in a stack, the value item starts as\r\n\t * @return Value\r\n\t */\r\n\tpublic getMin(fields: string[], working?: boolean, stackValue?: number): number {\r\n\t\t//if (this.visible) { // dumped because of non smooth zooming\r\n\t\tlet min: number;\r\n\r\n\t\tif (!$type.isNumber(stackValue)) {\r\n\t\t\tstackValue = 0;\r\n\t\t}\r\n\r\n\t\t$array.each(fields, (field) => {\r\n\t\t\tlet value: number;\r\n\r\n\t\t\tif (working) {\r\n\t\t\t\tvalue = this.getWorkingValue(field);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvalue = this.getValue(field);\r\n\t\t\t}\r\n\r\n\t\t\tvalue += stackValue;\r\n\r\n\t\t\tif (value < min || !$type.isNumber(min)) {\r\n\t\t\t\tmin = value;\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn min;\r\n\t\t//}\r\n\t}\r\n\r\n\t/**\r\n\t * Return biggest value out of all item's value fields.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param fields Fields to check in\r\n\t * @param working Include working (temporary) values\r\n\t * @param stackValue If item is in a stack, the value item starts as\r\n\t * @return Value\r\n\t */\r\n\tpublic getMax(fields: string[], working?: boolean, stackValue?: number): number {\r\n\t\t//if (this.visible) { // dumped because of non smooth zooming\r\n\t\tlet max: number;\r\n\r\n\t\tif (!$type.isNumber(stackValue)) {\r\n\t\t\tstackValue = 0;\r\n\t\t}\r\n\r\n\t\t$array.each(fields, (field) => {\r\n\t\t\tlet value: number;\r\n\r\n\t\t\tif (working) {\r\n\t\t\t\tvalue = this.getWorkingValue(field);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvalue = this.getValue(field);\r\n\t\t\t}\r\n\r\n\t\t\tvalue += stackValue;\r\n\r\n\t\t\tif (value > max || !$type.isNumber(max)) {\r\n\t\t\t\tmax = value;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn max;\r\n\t\t//}\r\n\t}\r\n\r\n}\r\n\r\n\r\n/**\r\n * Defines property set for a [[XYSeries]] tooltip event that contains information about dataItem\r\n */\r\nexport type XYSeriesTooltipEvent = {\r\n\r\n\t/**\r\n\t * Shift in coordinates after dragging.\r\n\t */\r\n\tdataItem: XYSeriesDataItem;\r\n};\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[XYSeries]].\r\n */\r\nexport interface IXYSeriesDataFields extends ISeriesDataFields {\r\n\r\n\t/**\r\n\t * Name of the field in data that holds numeric value for horizontal axis.\r\n\t */\r\n\tvalueX?: string;\r\n\r\n\t/**\r\n\t * Name of the field in data that holds numeric value for vertical axis.\r\n\t */\r\n\tvalueY?: string;\r\n\r\n\t/**\r\n\t * Name of the field in data that holds category for horizontal axis.\r\n\t */\r\n\tcategoryX?: string;\r\n\r\n\t/**\r\n\t * Name of the field in data that holds category for vertical axis.\r\n\t */\r\n\tcategoryY?: string;\r\n\r\n\t/**\r\n\t * Name of the field in data that holds date for horizontal axis.\r\n\t */\r\n\tdateX?: string;\r\n\r\n\t/**\r\n\t * Name of the field in data that holds date for vertical axis.\r\n\t */\r\n\tdateY?: string;\r\n\r\n\t/**\r\n\t * Name of the field in data that holds open numeric value for horizontal\r\n\t * axis.\r\n\t */\r\n\topenValueX?: string;\r\n\r\n\t/**\r\n\t * Name of the field in data that holds open numeric value for vertical\r\n\t * axis.\r\n\t */\r\n\topenValueY?: string;\r\n\r\n\t/**\r\n\t * Name of the field in data that holds open category for horizontal axis.\r\n\t */\r\n\topenCategoryX?: string;\r\n\r\n\t/**\r\n\t * Name of the field in data that holds open category for vertical axis.\r\n\t */\r\n\topenCategoryY?: string;\r\n\r\n\t/**\r\n\t * Name of the field in data that holds open date for horizontal axis.\r\n\t */\r\n\topenDateX?: string;\r\n\r\n\t/**\r\n\t * Name of the field in data that holds open date for vertical axis.\r\n\t */\r\n\topenDateY?: string;\r\n\r\n\t/**\r\n\t * Which calculated field to use to use as a horizontal axis value for the\r\n\t * item.\r\n\t */\r\n\tvalueXShow?: CalculatedValue;\r\n\r\n\t/**\r\n\t * Which calculated field to use to use as a vertical axis value for the\r\n\t * item.\r\n\t */\r\n\tvalueYShow?: CalculatedValue;\r\n\r\n\t/**\r\n\t * Which calculated field to use to use as a horizontal axis open value for\r\n\t * the item.\r\n\t */\r\n\topenValueXShow?: CalculatedValue;\r\n\r\n\t/**\r\n\t * Which calculated field to use to use as a vertical axis open value for\r\n\t * the item.\r\n\t */\r\n\topenValueYShow?: CalculatedValue;\r\n\r\n}\r\n\r\n/**\r\n * Defines properties for [[XYSeries]].\r\n */\r\nexport interface IXYSeriesProperties extends ISeriesProperties {\r\n\r\n\t/**\r\n\t * Can items from this series be included into stacks?\r\n\t *\r\n\t * @default false\r\n\t */\r\n\tstacked?: boolean;\r\n\r\n\t/**\r\n\t * Should the nearest tooltip be shown if no data item is found on the\r\n\t * current cursor position\r\n\t *\r\n\t * @default false\r\n\t */\r\n\tsnapTooltip?: boolean;\r\n\r\n\t/**\r\n\t * Indicates if series should display a tooltip for chart's cursor.\r\n\t *\r\n\t * @default true\r\n\t */\r\n\tcursorTooltipEnabled?: boolean;\r\n\r\n\t/**\r\n\t * Indicates if series should apply hover state on bullets/columns/etc when\r\n\t * cursor is over the data item.\r\n\t * \r\n\t * @default true\r\n\t */\r\n\tcursorHoverEnabled?: boolean;\r\n}\r\n\r\n/**\r\n * Defines events for [[XYSeries]].\r\n */\r\nexport interface IXYSeriesEvents extends ISeriesEvents {\r\n\t/**\r\n\t * Invoked when series tooltip was shown on some particular data item\r\n\t */\r\n\ttooltipshownat: XYSeriesTooltipEvent;\r\n}\r\n\r\n/**\r\n * Defines adapters for [[XYSeries]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IXYSeriesAdapters extends ISeriesAdapters, IXYSeriesProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines Series for [[XYChart]].\r\n *\r\n * @see {@link IXYSeriesEvents} for a list of available Events\r\n * @see {@link IXYSeriesAdapters} for a list of available Adapters\r\n * @todo Example\r\n * @important\r\n */\r\nexport class XYSeries extends Series {\r\n\r\n\t/**\r\n\t * Defines the type of data fields used for the series.\r\n\t */\r\n\tpublic _dataFields: IXYSeriesDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IXYSeriesProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IXYSeriesAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IXYSeriesEvents;\r\n\r\n\t/**\r\n\t * Defines the type of data item.\r\n\t */\r\n\tpublic _dataItem: XYSeriesDataItem;\r\n\r\n\t/**\r\n\t * X axis the series is attached to.\r\n\t */\r\n\tprotected _xAxis = new MutableValueDisposer<Axis<AxisRenderer>>();\r\n\r\n\t/**\r\n\t * Y axis the series is attached to.\r\n\t */\r\n\tprotected _yAxis = new MutableValueDisposer<Axis<AxisRenderer>>();\r\n\r\n\t/**\r\n\t * A chart series belongs to.\r\n\t */\r\n\tpublic _chart: XYChart;\r\n\r\n\t/**\r\n\t * The main (base) axis.\r\n\t *\r\n\t * This is the axis that series fills will go to, or grow animations will\r\n\t * happen from.\r\n\t */\r\n\tprotected _baseAxis: Axis;\r\n\r\n\t/**\r\n\t * Total data item count.\r\n\t */\r\n\tprotected _count: Dictionary<string, number>;\r\n\r\n\t/**\r\n\t * Data item count in current selection.\r\n\t */\r\n\tprotected _scount: Dictionary<string, number>;\r\n\r\n\t/**\r\n\t * [_xField description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _xField: string;\r\n\r\n\t/**\r\n\t * [_yField description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _yField: string;\r\n\r\n\t/**\r\n\t * [_xOpenField description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _xOpenField: string;\r\n\r\n\t/**\r\n\t * [_yOpenField description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _yOpenField: string;\r\n\r\n\t/**\r\n\t * [_tooltipXField description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _tooltipXField: string;\r\n\r\n\t/**\r\n\t * [_tooltipYField description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _tooltipYField: string;\r\n\r\n\t/**\r\n\t * [_xValueFields description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _xValueFields: Array<string> = [];\r\n\r\n\t/**\r\n\t * [_yValueFields description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _yValueFields: Array<string> = [];\r\n\r\n\t/**\r\n\t * Series which is stacked on top of this series, if any.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic stackedSeries: XYSeries;\r\n\r\n\t/**\r\n\t * dataitem of previously shown tooltip, used to avoid multiple tooltipshownat dispatches\r\n\t * @ignore\r\n\t */\r\n\tprotected _prevTooltipDataItem: XYSeriesDataItem;\r\n\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic _baseInterval: { [index: string]: ITimeInterval } = {};\r\n\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"XYSeries\";\r\n\t\tthis.isMeasured = false;\r\n\r\n\t\tthis.cursorTooltipEnabled = true;\r\n\r\n\t\tthis.cursorHoverEnabled = true;\r\n\r\n\t\tthis.mainContainer.mask = new Sprite();\r\n\t\tthis.mainContainer.mask.setElement(this.paper.add(\"path\"));\r\n\r\n\t\tthis.stacked = false;\r\n\t\tthis.snapTooltip = false;\r\n\r\n\t\tthis.tooltip.pointerOrientation = \"horizontal\";\r\n\r\n\t\tthis.tooltip.events.on(\"hidden\", () => {\r\n\t\t\tthis.returnBulletDefaultState();\r\n\t\t}, undefined, false)\r\n\r\n\t\tthis._disposers.push(this._xAxis);\r\n\t\tthis._disposers.push(this._yAxis);\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\t\tsuper.applyInternalDefaults();\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"X/Y Series\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty DataItem of the type appropriate for this object.\r\n\t *\r\n\t * @see {@link DataItem}\r\n\t * @return Data Item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new XYSeriesDataItem();\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic dataChangeUpdate() {\r\n\t\tthis._tmin.clear();\r\n\t\tthis._tmax.clear();\r\n\r\n\t\tthis._smin.clear();\r\n\t\tthis._smax.clear();\r\n\r\n\r\n\t\tif (this.xAxis) {\r\n\t\t\tthis.xAxis.seriesDataChangeUpdate(this);\r\n\t\t}\r\n\r\n\t\tif (this.yAxis) {\r\n\t\t\tthis.yAxis.seriesDataChangeUpdate(this);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * (Re)validates the series' data.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateData(): void {\r\n\t\tthis.defineFields();\r\n\r\n\t\tif (this.data.length > 0) {\r\n\t\t\tthis.dataChangeUpdate();\r\n\t\t}\r\n\r\n\t\tsuper.validateData();\r\n\r\n\t\tthis.updateItemReaderText();\r\n\r\n\t\tif (!$type.hasValue(this.dataFields[<keyof this[\"_dataFields\"]>this._xField]) || !$type.hasValue(this.dataFields[<keyof this[\"_dataFields\"]>this._yField])) {\r\n\t\t\tthrow Error(\"Data fields for series \\\"\" + (this.name ? this.name : this.uid) + \"\\\" are not properly defined.\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Processes data item.\r\n\t *\r\n\t * @param dataItem Data item\r\n\t * @param dataContext Raw data\r\n\t * @param index Index of the data item\r\n\t */\r\n\tprotected processDataItem(dataItem: this[\"_dataItem\"], dataContext?: Object): void {\r\n\r\n\t\ttry {\r\n\t\t\tsuper.processDataItem(dataItem, dataContext);\r\n\r\n\t\t\tdataItem.events.disable();\r\n\t\t\tthis.xAxis.processSeriesDataItem(dataItem, \"X\");\r\n\t\t\tthis.yAxis.processSeriesDataItem(dataItem, \"Y\");\r\n\r\n\t\t\tdataItem.events.enable();\r\n\r\n\t\t\tthis.setInitialWorkingValues(dataItem);\r\n\t\t}\r\n\t\tcatch (e) {\r\n\t\t\tthis._chart.raiseCriticalError(e);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Inits data item's working values.\r\n\t *\r\n\t * @param dataItem Data item\r\n\t * @param index Data item's index\r\n\t */\r\n\r\n\tprotected setInitialWorkingValues(dataItem: this[\"_dataItem\"]): void {\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic disposeData() {\r\n\t\tsuper.disposeData();\r\n\t\tif (this.xAxis) {\r\n\t\t\tlet dataItemsX = this.dataItemsByAxis.getKey(this.xAxis.uid);\r\n\t\t\tif (dataItemsX) {\r\n\t\t\t\tdataItemsX.clear();\r\n\t\t\t}\r\n\t\t\tif(this.xAxis instanceof CategoryAxis){\r\n\t\t\t\tthis.clearCatAxis(this.xAxis);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this.yAxis) {\r\n\t\t\tlet dataItemsY = this.dataItemsByAxis.getKey(this.yAxis.uid);\r\n\t\t\tif (dataItemsY) {\r\n\t\t\t\tdataItemsY.clear();\r\n\t\t\t}\r\n\t\t\tif(this.yAxis instanceof CategoryAxis){\r\n\t\t\t\tthis.clearCatAxis(this.yAxis);\r\n\t\t\t}\t\t\t\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected clearCatAxis(axis:CategoryAxis){\r\n\t\tlet uid = this.uid;\r\n\t\taxis.dataItems.each((dataItem)=>{\r\n\t\t\tif(dataItem.seriesDataItems[uid]){\r\n\t\t\t\tdataItem.seriesDataItems[uid] = [];\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Sets up which data fields to use for data access.\r\n\t */\r\n\tprotected defineFields() {\r\n\t\tlet xAxis: Axis = this.xAxis;\r\n\t\tlet yAxis: Axis = this.yAxis;\r\n\r\n\t\tlet xAxisFieldName: string = xAxis.axisFieldName;\r\n\t\tlet xField: $type.Keyof<this[\"_dataFields\"]> = <$type.Keyof<this[\"_dataFields\"]>>(xAxisFieldName + \"X\");\r\n\t\tlet xOpenField: $type.Keyof<this[\"_dataFields\"]> = <$type.Keyof<this[\"_dataFields\"]>>(\"open\" + $utils.capitalize(xAxisFieldName) + \"X\");\r\n\r\n\t\tlet yAxisFieldName: string = yAxis.axisFieldName;\r\n\t\tlet yField: $type.Keyof<this[\"_dataFields\"]> = <$type.Keyof<this[\"_dataFields\"]>>(yAxisFieldName + \"Y\");\r\n\t\tlet yOpenField: $type.Keyof<this[\"_dataFields\"]> = <$type.Keyof<this[\"_dataFields\"]>>(\"open\" + $utils.capitalize(yAxisFieldName) + \"Y\");\r\n\r\n\t\tthis._xField = xField;\r\n\t\tthis._yField = yField;\r\n\r\n\t\tif (this.dataFields[xOpenField]) {\r\n\t\t\tthis._xOpenField = xOpenField;\r\n\t\t}\r\n\r\n\t\tif (this.dataFields[yOpenField]) {\r\n\t\t\tthis._yOpenField = yOpenField;\r\n\t\t}\r\n\r\n\t\tif (!this.dataFields[yOpenField] && this.baseAxis == this.yAxis) {\r\n\t\t\tthis._yOpenField = yField;\r\n\t\t}\r\n\r\n\t\tif (!this.dataFields[xOpenField] && this.baseAxis == this.xAxis) {\r\n\t\t\tthis._xOpenField = xField;\r\n\t\t}\r\n\r\n\t\tif (this.stacked && this.baseAxis == this.xAxis) {\r\n\t\t\tthis._xOpenField = xField;\r\n\t\t}\r\n\r\n\t\tif (this.stacked && this.baseAxis == this.yAxis) {\r\n\t\t\tthis._yOpenField = yField;\r\n\t\t}\r\n\r\n\t\tif ((this.xAxis instanceof CategoryAxis) && (this.yAxis instanceof CategoryAxis)) {\r\n\t\t\tif (!this._yOpenField) {\r\n\t\t\t\tthis._yOpenField = yField;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._xValueFields = [];\r\n\t\tthis._yValueFields = [];\r\n\r\n\t\tthis.addValueField(this.xAxis, <any>this._xValueFields, <any>this._xField);\r\n\t\tthis.addValueField(this.xAxis, <any>this._xValueFields, <any>this._xOpenField);\r\n\r\n\t\tthis.addValueField(this.yAxis, <any>this._yValueFields, <any>this._yField);\r\n\t\tthis.addValueField(this.yAxis, <any>this._yValueFields, <any>this._yOpenField);\r\n\t}\r\n\r\n\t/**\r\n\t * [axis description]\r\n\t *\r\n\t * @todo Description\r\n\t * @param axis Axis\r\n\t * @param fields Fields (?)\r\n\t * @param field Field\r\n\t */\r\n\tprotected addValueField<Key extends keyof this[\"_dataFields\"]>(axis: Axis, fields: Array<Key>, field: Key): void {\r\n\t\tif (axis instanceof ValueAxis) {\r\n\t\t\tif ($type.hasValue(this.dataFields[field]) && fields.indexOf(field) == -1) {\r\n\t\t\t\tfields.push(field);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets category field from the category axis.\r\n\t *\r\n\t * User might set field for category axis only, but not for series. In such\r\n\t * case, we take field value from axis and set it for series.\r\n\t *\r\n\t * @param field Field\r\n\t * @param axis Axis\r\n\t */\r\n\tprotected setCategoryAxisField<Key extends keyof this[\"_dataFields\"]>(field: Key, axis: CategoryAxis): void {\r\n\t\tif (!$type.hasValue(this.dataFields[field])) {\r\n\t\t\tthis.dataFields[field] = <any>axis.dataFields.category;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets date field from the date axis.\r\n\t *\r\n\t * User might set field for category axis only, but not for series. In such\r\n\t * case, we take field value from axis and set it for series.\r\n\t *\r\n\t * @param field Field\r\n\t * @param axis Axis\r\n\t */\r\n\tprotected setDateAxisField<Key extends keyof this[\"_dataFields\"]>(field: Key, axis: DateAxis): void {\r\n\t\tif (!$type.hasValue(this.dataFields[field])) {\r\n\t\t\tthis.dataFields[field] = <any>axis.dataFields.date;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Performs after-draw tasks, e.g. creates masks.\r\n\t */\r\n\tprotected afterDraw(): void {\r\n\t\tsuper.afterDraw();\r\n\t\tthis.createMask();\r\n\t}\r\n\r\n\t/**\r\n\t * Create a mask for the series.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic createMask(): void {\r\n\t\t// this mask from which we cut out ranges. does not work well if ranges overlap.\r\n\t\tif (this.mainContainer.mask) {\r\n\t\t\tlet path: string = this.getMaskPath();\r\n\r\n\t\t\t// @todo: this approach won't work well on circluar or other non x/y axes\r\n\t\t\t$iter.each(this.axisRanges.iterator(), (range) => {\r\n\t\t\t\tif (range.axisFill.fillPath) {\r\n\t\t\t\t\trange.axisFill.validate();\r\n\t\t\t\t\tpath += range.axisFill.fillPath;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.mainContainer.mask.path = path;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an SVG path to use as series mask.\r\n\t *\r\n\t * @return SVG path\r\n\t */\r\n\tprotected getMaskPath(): string {\r\n\t\treturn $path.rectToPath({\r\n\t\t\tx: 0,\r\n\t\t\ty: 0,\r\n\t\t\twidth: this.xAxis.axisLength,\r\n\t\t\theight: this.yAxis.axisLength\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Returns axis data field to use.\r\n\t *\r\n\t * @param axis Axis\r\n\t * @return Field name\r\n\t */\r\n\tpublic getAxisField(axis: Axis): string {\r\n\t\tif (axis == this.xAxis) {\r\n\t\t\treturn this.xField;\r\n\t\t}\r\n\t\tif (axis == this.yAxis) {\r\n\t\t\treturn this.yField;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Validates data items.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateDataItems() {\r\n\r\n\t\t// this helps date axis to check which baseInterval we should use\r\n\t\tthis.xAxis.updateAxisBySeries();\r\n\t\tthis.yAxis.updateAxisBySeries();\r\n\r\n\t\tsuper.validateDataItems();\r\n\r\n\t\tthis.xAxis.postProcessSeriesDataItems();\r\n\t\tthis.yAxis.postProcessSeriesDataItems();\r\n\t}\r\n\r\n\t/**\r\n\t * Validates data range.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateDataRange() {\r\n\t\tif (this.xAxis.dataRangeInvalid) {\r\n\t\t\tthis.xAxis.validateDataRange();\r\n\t\t}\r\n\r\n\t\tif (this.yAxis.dataRangeInvalid) {\r\n\t\t\tthis.yAxis.validateDataRange();\r\n\t\t}\r\n\r\n\t\tsuper.validateDataRange();\r\n\t}\r\n\r\n\t/**\r\n\t * (Re)validates the whole series, effectively causing it to redraw.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validate(): void {\r\n\t\tif (this.xAxis.invalid) {\r\n\t\t\tthis.xAxis.validate();\r\n\t\t}\r\n\r\n\t\tif (this.yAxis.invalid) {\r\n\t\t\tthis.yAxis.validate();\r\n\t\t}\r\n\r\n\t\tthis.y = this.yAxis.pixelY;\r\n\t\tthis.x = this.xAxis.pixelX;\r\n\r\n\r\n\t\tthis._showBullets = true;\r\n\t\tlet minBulletDistance: number = this.minBulletDistance;\r\n\t\tif ($type.isNumber(minBulletDistance)) {\r\n\t\t\tif (this.baseAxis.axisLength / (this.endIndex - this.startIndex) < minBulletDistance) {\r\n\t\t\t\tthis._showBullets = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tsuper.validate();\r\n\t}\r\n\r\n\t/**\r\n\t * X axis the series is attached to.\r\n\t *\r\n\t * @param axis Axis\r\n\t */\r\n\tpublic set xAxis(axis: Axis) {\r\n\t\tlet oldAxis = this._xAxis.get();\r\n\t\tif (oldAxis != axis) {\r\n\t\t\tif (oldAxis) {\r\n\t\t\t\tthis.dataItemsByAxis.removeKey(oldAxis.uid);\r\n\t\t\t\t// TODO why is this here ?\r\n\t\t\t\tthis._xAxis.dispose();\r\n\t\t\t\t// temp @todo: why it is not disposed?\r\n\t\t\t\toldAxis.series.removeValue(this);\r\n\t\t\t}\r\n\r\n\t\t\tthis._xAxis.set(axis, axis.registerSeries(this));\r\n\r\n\t\t\tthis.dataItemsByAxis.setKey(axis.uid, new Dictionary<string, this[\"_dataItem\"]>());\r\n\t\t\tthis.invalidateData();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Axis\r\n\t */\r\n\tpublic get xAxis(): Axis {\r\n\t\tif (this.chart) {\r\n\t\t\tif (!this._xAxis.get()) {\r\n\t\t\t\tconst axis = this.chart.xAxes.getIndex(0);\r\n\r\n\t\t\t\tif (!axis) {\r\n\t\t\t\t\tthrow Error(\"There are no X axes on chart.\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.xAxis = axis;\r\n\t\t\t}\r\n\t\t\treturn this._xAxis.get();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Y axis the series is attached to.\r\n\t *\r\n\t * @param axis Axis\r\n\t */\r\n\tpublic set yAxis(axis: Axis) {\r\n\t\tlet oldAxis = this._yAxis.get();\r\n\t\tif (oldAxis != axis) {\r\n\t\t\tif (oldAxis) {\r\n\t\t\t\tthis.dataItemsByAxis.removeKey(oldAxis.uid);\r\n\t\t\t\t// TODO why is this here ?\r\n\t\t\t\tthis._yAxis.dispose();\r\n\t\t\t\t// temp @todo: why it is not disposed?\r\n\t\t\t\toldAxis.series.removeValue(this);\r\n\t\t\t}\r\n\r\n\t\t\tthis._yAxis.set(axis, axis.registerSeries(this));\r\n\r\n\t\t\tthis.dataItemsByAxis.setKey(axis.uid, new Dictionary<string, this[\"_dataItem\"]>());\r\n\t\t\tthis.invalidateData();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Axis\r\n\t */\r\n\tpublic get yAxis(): Axis {\r\n\t\tif (this.chart) {\r\n\t\t\tif (!this._yAxis.get()) {\r\n\t\t\t\tconst axis = this.chart.yAxes.getIndex(0);\r\n\r\n\t\t\t\tif (!axis) {\r\n\t\t\t\t\tthrow Error(\"There are no Y axes on chart.\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.yAxis = axis;\r\n\t\t\t}\r\n\r\n\t\t\treturn this._yAxis.get();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * The main (base) axis.\r\n\t *\r\n\t * This is the axis that series fills will go to, or grow animations will\r\n\t * happen from.\r\n\t *\r\n\t * @param value Axis\r\n\t */\r\n\tpublic set baseAxis(value: Axis) {\r\n\t\tif (this._baseAxis != value) {\r\n\t\t\tthis._baseAxis = value;\r\n\t\t\tthis.invalidate();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Axis\r\n\t */\r\n\tpublic get baseAxis(): Axis {\r\n\t\tif (!this._baseAxis) {\r\n\t\t\tif (this.yAxis instanceof DateAxis) {\r\n\t\t\t\tthis._baseAxis = this.yAxis;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.xAxis instanceof DateAxis) {\r\n\t\t\t\tthis._baseAxis = this.xAxis;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.yAxis instanceof CategoryAxis) {\r\n\t\t\t\tthis._baseAxis = this.yAxis;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.xAxis instanceof CategoryAxis) {\r\n\t\t\t\tthis._baseAxis = this.xAxis;\r\n\t\t\t}\r\n\r\n\t\t\tif (!this._baseAxis) {\r\n\t\t\t\tthis._baseAxis = this.xAxis;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this._baseAxis;\r\n\t}\r\n\r\n\t/**\r\n\t * Processes values after data items' were added.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param dataItems Data items\r\n\t */\r\n\tpublic processValues(working: boolean): void {\r\n\r\n\t\tsuper.processValues(working);\r\n\r\n\t\tlet dataItems = this.dataItems;\r\n\r\n\t\tlet minX = Infinity;\r\n\t\tlet maxX = - Infinity;\r\n\r\n\t\tlet minY = Infinity;\r\n\t\tlet maxY = - Infinity;\r\n\r\n\t\tlet startIndex = this.startIndex;\r\n\t\tlet endIndex = this.endIndex;\r\n\r\n\t\tif (!working) {\r\n\t\t\tstartIndex = 0;\r\n\t\t\tendIndex = this.dataItems.length;\r\n\t\t}\r\n\r\n\t\tfor (let i = startIndex; i < endIndex; i++) {\r\n\t\t\tlet dataItem = dataItems.getIndex(i);\r\n\r\n\t\t\tthis.getStackValue(dataItem, working);\r\n\r\n\t\t\tlet stackX = dataItem.getValue(\"valueX\", \"stack\");\r\n\t\t\tlet stackY = dataItem.getValue(\"valueY\", \"stack\");\r\n\r\n\t\t\tminX = $math.min(dataItem.getMin(this._xValueFields, working, stackX), minX);\r\n\t\t\tminY = $math.min(dataItem.getMin(this._yValueFields, working, stackY), minY);\r\n\r\n\t\t\tmaxX = $math.max(dataItem.getMax(this._xValueFields, working, stackX), maxX);\r\n\t\t\tmaxY = $math.max(dataItem.getMax(this._yValueFields, working, stackY), maxY);\r\n\r\n\t\t\t// if it's stacked, pay attention to stack value\r\n\t\t\tif (this.stacked) {\r\n\t\t\t\tif (this.baseAxis == this.xAxis) {\r\n\t\t\t\t\tminY = $math.min(minY, stackY);\r\n\t\t\t\t}\r\n\t\t\t\tif (this.baseAxis == this.yAxis) {\r\n\t\t\t\t\tminX = $math.min(minX, stackX);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// this is mainly for value axis to calculate total and perecent.total of each series category\r\n\t\tthis.xAxis.processSeriesDataItems();\r\n\t\tthis.yAxis.processSeriesDataItems();\r\n\r\n\t\tlet xAxisId: string = this.xAxis.uid;\r\n\t\tlet yAxisId: string = this.yAxis.uid;\r\n\r\n\t\tif (!working) {\r\n\t\t\tif (this._tmin.getKey(xAxisId) != minX || this._tmax.getKey(xAxisId) != maxX || this._tmin.getKey(yAxisId) != minY || this._tmax.getKey(yAxisId) != maxY) {\r\n\t\t\t\tthis._tmin.setKey(xAxisId, minX);\r\n\t\t\t\tthis._tmax.setKey(xAxisId, maxX);\r\n\t\t\t\tthis._tmin.setKey(yAxisId, minY);\r\n\t\t\t\tthis._tmax.setKey(yAxisId, maxY);\r\n\r\n\t\t\t\tif (this.stackedSeries) {\r\n\t\t\t\t\tthis.stackedSeries.processValues(false);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.dispatchImmediately(\"extremeschanged\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this._smin.getKey(xAxisId) != minX || this._smax.getKey(xAxisId) != maxX || this._smin.getKey(yAxisId) != minY || this._smax.getKey(yAxisId) != maxY) {\r\n\t\t\tthis._smin.setKey(xAxisId, minX);\r\n\t\t\tthis._smax.setKey(xAxisId, maxX);\r\n\t\t\tthis._smin.setKey(yAxisId, minY);\r\n\t\t\tthis._smax.setKey(yAxisId, maxY);\r\n\r\n\t\t\tif (this.appeared || this.start != 0 || this.end != 1) {\r\n\t\t\t\tthis.dispatchImmediately(\"selectionextremeschanged\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(!working && this.stacked){\r\n\t\t\tthis.processValues(true);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Hides element's [[Tooltip]].\r\n\t *\r\n\t * @see {@link Tooltip}\r\n\t */\r\n\tpublic hideTooltip() {\r\n\t\tsuper.hideTooltip();\r\n\t\tthis.returnBulletDefaultState();\r\n\t\tthis._prevTooltipDataItem = undefined;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Shows series tooltip at specific position.\r\n\t *\r\n\t * @param xPosition X\r\n\t * @param yPosition Y\r\n\t */\r\n\tpublic showTooltipAtPosition(xPosition: number, yPosition: number): IPoint {\r\n\r\n\t\tlet dataItem: this[\"_dataItem\"];\r\n\r\n\t\tif (this.visible && !this.isHiding && !this.isShowing) {\r\n\r\n\t\t\tlet xAxis: Axis = this._xAxis.get();\r\n\t\t\tlet yAxis: Axis = this._yAxis.get();\r\n\r\n\t\t\tif (xAxis == this.baseAxis) {\r\n\t\t\t\tdataItem = <this[\"_dataItem\"]>xAxis.getSeriesDataItem(this, xAxis.toAxisPosition(xPosition), this.snapTooltip);\r\n\t\t\t}\r\n\t\t\tif (yAxis == this.baseAxis) {\r\n\t\t\t\tdataItem = <this[\"_dataItem\"]>yAxis.getSeriesDataItem(this, yAxis.toAxisPosition(yPosition), this.snapTooltip);\r\n\t\t\t}\r\n\r\n\t\t\tlet point = this.showTooltipAtDataItem(dataItem);\r\n\r\n\t\t\tif (point) {\r\n\t\t\t\treturn point;\r\n\t\t\t}\r\n\r\n\t\t\t// so that if tooltip is shown on columns or bullets for it not to be hidden\r\n\t\t\tif (!this.tooltipText) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.hideTooltip();\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Shows series tooltip at specific dataItem.\r\n\t *\r\n\t * @param dataItem\r\n\t */\r\n\tpublic showTooltipAtDataItem(dataItem: this[\"_dataItem\"]): IPoint {\r\n\t\tthis.returnBulletDefaultState(dataItem);\r\n\t\tif (dataItem && dataItem.visible) {\r\n\t\t\tthis.updateLegendValue(dataItem);\r\n\t\t\tif (this.cursorTooltipEnabled) {\r\n\t\t\t\tthis.tooltipDataItem = dataItem;\r\n\r\n\t\t\t\t// todo: add tooltipXField and tooltipYField.\r\n\t\t\t\tlet tooltipXField = this.tooltipXField;\r\n\t\t\t\tlet tooltipYField = this.tooltipYField;\r\n\r\n\t\t\t\tif ($type.hasValue((<any>dataItem)[tooltipXField]) && $type.hasValue((<any>dataItem)[tooltipYField])) {\r\n\r\n\t\t\t\t\tlet tooltipPoint = this.getPoint(dataItem, tooltipXField, tooltipYField, dataItem.locations[tooltipXField], dataItem.locations[tooltipYField]);\r\n\r\n\t\t\t\t\tif (tooltipPoint) {\r\n\r\n\t\t\t\t\t\tthis.tooltipX = tooltipPoint.x;\r\n\t\t\t\t\t\tthis.tooltipY = tooltipPoint.y;\r\n\r\n\t\t\t\t\t\tif (this._prevTooltipDataItem != dataItem) {\r\n\t\t\t\t\t\t\tthis.dispatchImmediately(\"tooltipshownat\", {\r\n\t\t\t\t\t\t\t\ttype: \"tooltipshownat\",\r\n\t\t\t\t\t\t\t\ttarget: this,\r\n\t\t\t\t\t\t\t\tdataItem: dataItem\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tthis._prevTooltipDataItem = dataItem;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (this.cursorHoverEnabled) {\r\n\t\t\t\t\t\t\tfor (let sprite of dataItem.sprites) {\r\n\t\t\t\t\t\t\t\tif (!sprite.parent.visible || sprite.isHidden || sprite.__disabled || sprite.disabled || sprite.isHiding) {\r\n\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tsprite.isHover = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (this.showTooltip()) {\r\n\t\t\t\t\t\t\treturn $utils.spritePointToSvg({ x: tooltipPoint.x, y: tooltipPoint.y }, this);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t/**\r\n\t * returns default state to bullets when tooltip is shown at some other data item or hidden\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected returnBulletDefaultState(dataItem?: XYSeriesDataItem) {\r\n\t\tif (this._prevTooltipDataItem && this._prevTooltipDataItem != dataItem) {\r\n\t\t\tfor (let sprite of this._prevTooltipDataItem.sprites) {\r\n\t\t\t\tif (!sprite.isDisposed()) {\r\n\t\t\t\t\tsprite.isHover = false;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis._prevTooltipDataItem = undefined;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprotected shouldCreateBullet(dataItem: this[\"_dataItem\"], bulletTemplate:Bullet): boolean {\r\n\t\t// use series xField/yField if bullet doesn't have fields set\r\n\t\tlet xField: string = bulletTemplate.xField;\r\n\t\tif (!$type.hasValue(xField)) {\r\n\t\t\txField = this.xField;\r\n\t\t}\r\n\r\n\t\tlet yField: string = bulletTemplate.yField;\r\n\t\tif (!$type.hasValue(yField)) {\r\n\t\t\tyField = this.yField;\r\n\t\t}\r\n\r\n\t\tif ((this.xAxis instanceof ValueAxis && !dataItem.hasValue([xField])) || (this.yAxis instanceof ValueAxis && !dataItem.hasValue([yField]))) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\t\r\n\r\n\r\n\r\n\t/**\r\n\t * Positions series bullet.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param bullet Bullet\r\n\t */\r\n\tpublic positionBullet(bullet: Bullet) {\r\n\t\tsuper.positionBullet(bullet);\r\n\r\n\t\tlet dataItem: XYSeriesDataItem = <XYSeriesDataItem>bullet.dataItem;\r\n\r\n\t\t// use series xField/yField if bullet doesn't have fields set\r\n\t\tlet xField: string = bullet.xField;\r\n\t\tif (!$type.hasValue(xField)) {\r\n\t\t\txField = this.xField;\r\n\t\t}\r\n\r\n\t\tlet yField: string = bullet.yField;\r\n\t\tif (!$type.hasValue(yField)) {\r\n\t\t\tyField = this.yField;\r\n\t\t}\r\n\r\n\t\tif ((this.xAxis instanceof ValueAxis && !dataItem.hasValue([xField])) || (this.yAxis instanceof ValueAxis && !dataItem.hasValue([yField]))) {\r\n\t\t\tbullet.visible = false;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlet bulletLocationX: number = this.getBulletLocationX(bullet, xField);\r\n\t\t\tlet bulletLocationY: number = this.getBulletLocationY(bullet, yField);\r\n\r\n\t\t\tlet point = this.getPoint(dataItem, xField, yField, bulletLocationX, bulletLocationY);\r\n\t\t\tif (point) {\r\n\t\t\t\tlet x: number = point.x;\r\n\t\t\t\tlet y: number = point.y;\r\n\r\n\t\t\t\tif ($type.isNumber(bullet.locationX) && this.xOpenField != this.xField) {\r\n\t\t\t\t\tlet openX: number = this.xAxis.getX(dataItem, this.xOpenField);\r\n\t\t\t\t\tx = x - (x - openX) * bullet.locationX;\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\tif ($type.isNumber(bullet.locationY) && this.yOpenField != this.yField) {\r\n\t\t\t\t\tlet openY: number = this.yAxis.getY(dataItem, this.yOpenField);\r\n\t\t\t\t\ty = y - (y - openY) * bullet.locationY;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tbullet.moveTo({ x: x, y: y });\r\n\r\n\t\t\t\tbullet.visible = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tbullet.visible = false;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t* returns bullet x location\r\n\t* @ignore\r\n\t*/\r\n\tprotected getBulletLocationX(bullet: Bullet, field: string): number {\r\n\t\tlet bulletLocation: number = bullet.locationX;\r\n\t\tlet dataItem = bullet.dataItem;\r\n\t\tif (!$type.isNumber(bulletLocation)) {\r\n\t\t\tbulletLocation = dataItem.workingLocations[field];\r\n\t\t}\r\n\t\treturn bulletLocation;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t* returns bullet x location\r\n\t* @ignore\r\n\t*/\r\n\tprotected getBulletLocationY(bullet: Bullet, field: string): number {\r\n\t\tlet bulletLocation: number = bullet.locationY;\r\n\t\tlet dataItem = bullet.dataItem;\r\n\t\tif (!$type.isNumber(bulletLocation)) {\r\n\t\t\tbulletLocation = dataItem.workingLocations[field];\r\n\t\t}\r\n\t\treturn bulletLocation;\r\n\t}\r\n\r\n\t/**\r\n\t * Can items from this series be included into stacks?\r\n\t * \r\n\t * Note: proper stacking is only possible if series have the same number\r\n\t * of data items. To ensure this, don't set data directly on series\r\n\t * but do this on chart instead.\r\n\t *\r\n\t * @default false\r\n\t * @param stacked Can be stacked?\r\n\t */\r\n\tpublic set stacked(stacked: boolean) {\r\n\t\tthis.setPropertyValue(\"stacked\", stacked, true);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Can be stacked?\r\n\t */\r\n\tpublic get stacked(): boolean {\r\n\t\treturn this.getPropertyValue(\"stacked\");\r\n\t}\r\n\r\n\t/**\r\n\t * Should the nearest tooltip be shown if no data item is found on the\r\n\t * current cursor position?\r\n\t *\r\n\t * @default false\r\n\t * @param value Should snap?\r\n\t */\r\n\tpublic set snapTooltip(value: boolean) {\r\n\t\tthis.setPropertyValue(\"snapTooltip\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Should snap?\r\n\t */\r\n\tpublic get snapTooltip(): boolean {\r\n\t\treturn this.getPropertyValue(\"snapTooltip\");\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Shows hidden series.\r\n\t *\r\n\t * @param duration Duration of reveal animation (ms)\r\n\t * @return Animation\r\n\t */\r\n\tpublic show(duration?: number): Animation {\r\n\r\n\t\tlet fields: string[];\r\n\t\tif (this.xAxis instanceof ValueAxis && this.xAxis != this.baseAxis) {\r\n\t\t\tfields = this._xValueFields;\r\n\t\t}\r\n\r\n\t\tif (this.yAxis instanceof ValueAxis && this.yAxis != this.baseAxis) {\r\n\t\t\tfields = this._yValueFields;\r\n\t\t}\r\n\r\n\t\tlet startIndex: number = this.startIndex;\r\n\t\tlet endIndex: number = this.endIndex;\r\n\t\tlet delay: number = 0;\r\n\r\n\t\tlet interpolationDuration = this.defaultState.transitionDuration;\r\n\t\tif ($type.isNumber(duration)) {\r\n\t\t\tinterpolationDuration = duration;\r\n\t\t}\r\n\r\n\t\tlet anim: Animation;\r\n\t\t$iter.each($iter.indexed(this.dataItems.iterator()), (a) => {\r\n\t\t\tlet i = a[0];\r\n\t\t\tlet dataItem = a[1];\r\n\r\n\t\t\tif (this.sequencedInterpolation && interpolationDuration > 0) {\r\n\t\t\t\tdelay = this.sequencedInterpolationDelay * i + interpolationDuration * (i - startIndex) / (endIndex - startIndex);\r\n\t\t\t}\r\n\t\t\tanim = dataItem.show(interpolationDuration, delay, fields);\r\n\t\t});\r\n\r\n\t\tlet animation = super.show(duration);\r\n\r\n\t\tif (anim && !anim.isFinished()) {\r\n\t\t\tanimation = anim;\r\n\t\t}\r\n\r\n\t\treturn animation;\r\n\t}\r\n\r\n\t/**\r\n\t * Hides series.\r\n\t *\r\n\t * @param duration Duration of hiding animation (ms)\r\n\t * @return Animation\r\n\t */\r\n\tpublic hide(duration?: number): Animation {\r\n\r\n\t\tlet fields: string[];\r\n\t\tlet value: number;\r\n\t\tlet xAxis: Axis = this.xAxis;\r\n\r\n\t\tif (xAxis instanceof ValueAxis && xAxis != this.baseAxis) {\r\n\t\t\tfields = this._xValueFields;\r\n\t\t\t// animate to zero if 0 is within zoomMin/zoomMax\r\n\t\t\tif (this.stacked || (xAxis.minZoomed < 0 && xAxis.maxZoomed > 0) || this.stackedSeries) {\r\n\t\t\t\tvalue = 0;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvalue = xAxis.min;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet yAxis: Axis = this.yAxis;\r\n\t\tif (yAxis instanceof ValueAxis && yAxis != this.baseAxis) {\r\n\t\t\tfields = this._yValueFields;\r\n\t\t\t// animate to zero if 0 is within zoomMin/zoomMax\r\n\t\t\tif (this.stacked || (yAxis.minZoomed < 0 && yAxis.maxZoomed > 0) || this.stackedSeries) {\r\n\t\t\t\tvalue = 0;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvalue = yAxis.min;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//if ($type.hasValue(fields)) {\r\n\t\tlet startIndex: number = this.startIndex;\r\n\t\tlet endIndex: number = this.endIndex;\r\n\r\n\t\tlet interpolationDuration = this.hiddenState.transitionDuration;\r\n\t\tif ($type.isNumber(duration)) {\r\n\t\t\tinterpolationDuration = duration;\r\n\t\t}\r\n\r\n\t\tlet delay: number = 0;\r\n\t\tlet anim: Animation;\r\n\r\n\t\t$iter.each($iter.indexed(this.dataItems.iterator()), (a) => {\r\n\t\t\tlet i = a[0];\r\n\t\t\tlet dataItem = a[1];\r\n\r\n\t\t\tif (interpolationDuration == 0) {\r\n\t\t\t\tdataItem.hide(0, 0, value, fields);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (this.sequencedInterpolation && interpolationDuration > 0) {\r\n\t\t\t\t\tdelay = this.sequencedInterpolationDelay * i + interpolationDuration * (i - startIndex) / (endIndex - startIndex);\r\n\t\t\t\t}\r\n\t\t\t\tanim = dataItem.hide(interpolationDuration, delay, value, fields);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet animation = super.hide(interpolationDuration);\r\n\t\tif (animation && !animation.isFinished()) {\r\n\t\t\tanimation.delay(delay);\r\n\t\t}\r\n\r\n\t\tif (anim && !anim.isFinished()) {\r\n\t\t\tanimation = anim;\r\n\t\t}\r\n\r\n\t\t// helps to avoid flicker. otherwise columns will show up at full size and only on next frame will animate from 0\r\n\t\tthis.validateDataElements();\r\n\t\t//}\r\n\t\treturn animation;\r\n\t}\r\n\r\n\t/**\r\n\t * [handleDataItemWorkingValueChange description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic handleDataItemWorkingValueChange(dataItem?: this[\"_dataItem\"], name?: string): void {\r\n\t\tsuper.handleDataItemWorkingValueChange(dataItem, name);\r\n\r\n\t\t// to calculate stack values\r\n\t\tlet axisSeries: List<XYSeries> = <List<XYSeries>>this.baseAxis.series;\r\n\r\n\t\t$iter.each(axisSeries.iterator(), (series) => {\r\n\t\t\tif (series.stacked) {\r\n\t\t\t\tseries.invalidateProcessedData();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * [getStackValue description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param dataItem Data item\r\n\t */\r\n\tpublic getStackValue(dataItem: this[\"_dataItem\"], working?: boolean): void {\r\n\t\t// todo: here wer stack x and y values only. question is - what should we do with other values, like openX, openY?\r\n\t\t// if this series is not stacked or new stack begins, return.\r\n\r\n\t\tif (!this.stacked) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// it might seem that it's better to go through base axis series, but we do not maintain the same order as in chart.series there.\r\n\t\t\tlet chart: XYChart = this.chart;\r\n\t\t\tlet index: number = chart.series.indexOf(this);\r\n\r\n\t\t\tlet field: string;\r\n\r\n\t\t\tif (this.xAxis != this.baseAxis && this.xAxis instanceof ValueAxis) {\r\n\t\t\t\tfield = this.xField;\r\n\t\t\t}\r\n\t\t\tif (this.yAxis != this.baseAxis && this.yAxis instanceof ValueAxis) {\r\n\t\t\t\tfield = this.yField;\r\n\t\t\t}\r\n\r\n\t\t\t//this is good for removing series, otherwise stack values will remain the same and chart won't pay atention when adding/removing series\r\n\t\t\tdataItem.setCalculatedValue(field, 0, \"stack\");\r\n\r\n\t\t\t$iter.eachContinue(chart.series.range(0, index).backwards().iterator(), (prevSeries) => {\r\n\t\t\t\t// stacking is only possible if both axes are the same\r\n\t\t\t\tif (prevSeries.xAxis == this.xAxis && prevSeries.yAxis == this.yAxis) {\r\n\t\t\t\t\t// saving value\r\n\t\t\t\t\tprevSeries.stackedSeries = this;\r\n\r\n\t\t\t\t\tlet prevDataItem = prevSeries.dataItems.getIndex(dataItem.index); // indexes should match\r\n\r\n\t\t\t\t\tif (prevDataItem && prevDataItem.hasValue(this._xValueFields) && prevDataItem.hasValue(this._yValueFields)) {\r\n\r\n\t\t\t\t\t\tlet value = dataItem.getValue(field);\r\n\t\t\t\t\t\tlet prevValue: number;\r\n\r\n\t\t\t\t\t\tif (working) {\r\n\t\t\t\t\t\t\tprevValue = prevDataItem.getWorkingValue(field) + prevDataItem.getValue(field, \"stack\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tprevValue = prevDataItem.getValue(field) + prevDataItem.getValue(field, \"stack\");\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ((value >= 0 && prevValue >= 0) || (value < 0 && prevValue < 0)) {\r\n\t\t\t\t\t\t\t//dataItem.events.disable();\r\n\t\t\t\t\t\t\tdataItem.setCalculatedValue(field, prevValue, \"stack\");\r\n\t\t\t\t\t\t\t//dataItem.events.enable();\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (!prevSeries.stacked) {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn true;\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * [xField description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @return [description]\r\n\t */\r\n\tpublic get xField(): string {\r\n\t\treturn this._xField;\r\n\t}\r\n\r\n\t/**\r\n\t * [yField description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @return [description]\r\n\t */\r\n\tpublic get yField(): string {\r\n\t\treturn this._yField;\r\n\t}\r\n\r\n\t/**\r\n\t * [xOpenField description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @return [description]\r\n\t */\r\n\tpublic get xOpenField(): string {\r\n\t\treturn this._xOpenField;\r\n\t}\r\n\r\n\t/**\r\n\t * [yOpenField description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @return [description]\r\n\t */\r\n\tpublic get yOpenField(): string {\r\n\t\treturn this._yOpenField;\r\n\t}\r\n\r\n\t/**\r\n\t * [tooltipXField description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param value [description]\r\n\t */\r\n\tpublic set tooltipXField(value: string) {\r\n\t\tthis._tooltipXField = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @return [description]\r\n\t */\r\n\tpublic get tooltipXField(): string {\r\n\t\tif (this._tooltipXField) {\r\n\t\t\treturn this._tooltipXField;\r\n\t\t}\r\n\t\treturn this._xField;\r\n\t}\r\n\r\n\t/**\r\n\t * [tooltipYField description]\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @param value [description]\r\n\t */\r\n\tpublic set tooltipYField(value: string) {\r\n\t\tthis._tooltipYField = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore Exclude from docs\r\n\t * @todo Description\r\n\t * @return [description]\r\n\t */\r\n\tpublic get tooltipYField(): string {\r\n\t\tif (this._tooltipYField) {\r\n\t\t\treturn this._tooltipYField;\r\n\t\t}\r\n\t\treturn this._yField;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns lowest value in the series for the specific axis.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param axis Axis\r\n\t * @return value\r\n\t */\r\n\tpublic min(axis: ValueAxis): number {\r\n\t\treturn this._tmin.getKey(axis.uid);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns highest value in the series for the specific axis.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param axis Axis\r\n\t * @return value\r\n\t */\r\n\tpublic max(axis: ValueAxis): number {\r\n\t\treturn this._tmax.getKey(axis.uid);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns lowest value in the series for the specific axis within current\r\n\t * selection.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param axis Axis\r\n\t * @return value\r\n\t */\r\n\tpublic selectionMin(axis: ValueAxis): number {\r\n\t\tlet value = this._smin.getKey(axis.uid);\r\n\t\tif (!$type.isNumber(value)) {\r\n\t\t\tvalue = this.min(axis);\r\n\t\t}\r\n\t\treturn value;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns highest value in the series for the specific axis within current\r\n\t * selection.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param axis Axis\r\n\t * @return value\r\n\t */\r\n\tpublic selectionMax(axis: ValueAxis): number {\r\n\t\tlet value = this._smax.getKey(axis.uid);\r\n\t\tif (!$type.isNumber(value)) {\r\n\t\t\tvalue = this.max(axis);\r\n\t\t}\r\n\t\treturn value;\r\n\t}\r\n\r\n\t/**\r\n\t * Processes JSON-based config before it is applied to the object.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param config Config\r\n\t */\r\n\tpublic processConfig(config?: { [index: string]: any }): void {\r\n\r\n\t\tif (config) {\r\n\r\n\t\t\t// Set up axes\r\n\t\t\tif ($type.hasValue(config.xAxis) && $type.isString(config.xAxis)) {\r\n\t\t\t\tif (this.map.hasKey(config.xAxis)) {\r\n\t\t\t\t\tconfig.xAxis = this.map.getKey(config.xAxis);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.processingErrors.push(\"[XYSeries (\" + (this.name || \"unnamed\") + \")] No axis with id \\\"\" + config.xAxis + \"\\\" found for `xAxis`.\");\r\n\t\t\t\t\tdelete config.xAxis;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif ($type.hasValue(config.yAxis) && $type.isString(config.yAxis)) {\r\n\t\t\t\tif (this.map.hasKey(config.yAxis)) {\r\n\t\t\t\t\tconfig.yAxis = this.map.getKey(config.yAxis);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.processingErrors.push(\"[XYSeries (\" + (this.name || \"unnamed\") + \")] No axis with id \\\"\" + config.yAxis + \"\\\" found for `yAxis`.\");\r\n\t\t\t\t\tdelete config.yAxis;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Set up axis ranges\r\n\t\t\tif ($type.hasValue(config.axisRanges) && $type.isArray(config.axisRanges)) {\r\n\t\t\t\tfor (let i = 0, len = config.axisRanges.length; i < len; i++) {\r\n\t\t\t\t\tlet range = config.axisRanges[i];\r\n\t\t\t\t\tif (!$type.hasValue(range.type)) {\r\n\t\t\t\t\t\trange.type = \"AxisDataItem\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ($type.hasValue(range.axis) && $type.isString(range.axis) && this.map.hasKey(range.axis)) {\r\n\t\t\t\t\t\trange.component = this.map.getKey(range.axis);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if ($type.hasValue(range.component) && $type.isString(range.component) && this.map.hasKey(range.component)) {\r\n\t\t\t\t\t\trange.component = this.map.getKey(range.component);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Parse date fields based on the series fields\r\n\t\t\tif (!$type.hasValue(config.dataFields) || !$type.isObject(config.dataFields)) {\r\n\t\t\t\tthis.processingErrors.push(\"`dataFields` is not set for series [\" + (this.name || \"unnamed\") + \"]\");\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tsuper.processConfig(config);\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an [[IPoint]] coordinates of the specific Serie's data point.\r\n\t *\r\n\t * @param dataItem Data item\r\n\t * @param xKey Name of X data field\r\n\t * @param yKey Name of Y data field\r\n\t * @param locationX X location\r\n\t * @param locationY Y location\r\n\t * @param stackKeyX ?\r\n\t * @param stackKeyY ?\r\n\t * @returns Coordinates\r\n\t */\r\n\tpublic getPoint(dataItem: XYSeriesDataItem, xKey: string, yKey: string, locationX?: number, locationY?: number, stackKeyX?: string, stackKeyY?: string): IPoint {\r\n\t\tlet x: number = this.xAxis.getX(dataItem, xKey, locationX);\r\n\t\tlet y: number = this.yAxis.getY(dataItem, yKey, locationY);\r\n\r\n\t\tx = $math.fitToRange(x, -20000, 20000); // from geometric point of view this is not right, but practically it's ok. this is done to avoid too big objects.\r\n\t\ty = $math.fitToRange(y, -20000, 20000); // from geometric point of view this is not right, but practically it's ok. this is done to avoid too big objects.\r\n\r\n\t\treturn { x: x, y: y };\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Updates item reader text based on the type and set up of axis.\r\n\t */\r\n\tprotected updateItemReaderText(): void {\r\n\t\tlet text = \"\"\r\n\t\t$object.each(this.dataFields, (key, val) => {\r\n\t\t\ttext += \"{\" + key + \"} \";\r\n\t\t});\r\n\t\tthis.itemReaderText = text;\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates if series should display a tooltip for chart's cursor.\r\n\t *\r\n\t * If set to `true` (default), the tooltips set for all series item's\r\n\t * elements like columns and bullets will be automatically shown\r\n\t * when [[XYCursor]] passes over category/date, even if its not hovered\r\n\t * directly over the item.\r\n\t *\r\n\t * Set this to `false` to disable such behavior and display item-specific\r\n\t * tooltips only when hovered directly over them\r\n\t *\r\n\t * @default true\r\n\t * @param value Display tooltip?\r\n\t */\r\n\tpublic set cursorTooltipEnabled(value: boolean) {\r\n\t\tthis.setPropertyValue(\"cursorTooltipEnabled\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Display tooltip?\r\n\t */\r\n\tpublic get cursorTooltipEnabled(): boolean {\r\n\t\treturn this.getPropertyValue(\"cursorTooltipEnabled\");\r\n\t}\r\n\r\n\t/**\r\n\t * Indicates if series should apply hover state on bullets/columns/etc when\r\n\t * cursor is over the data item.\r\n\t *\r\n\t * If set to `true` (default) and chart cursor is enabled on th chart,\r\n\t * hovering over date/category will trigger hover states on related Series\r\n\t * items like bullets and columns.\r\n\t *\r\n\t * @default true\r\n\t * @since 4.2.2\r\n\t * @param value Hover enabled?\r\n\t */\r\n\tpublic set cursorHoverEnabled(value: boolean) {\r\n\t\tthis.setPropertyValue(\"cursorHoverEnabled\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Hover enabled?\r\n\t */\r\n\tpublic get cursorHoverEnabled(): boolean {\r\n\t\treturn this.getPropertyValue(\"cursorHoverEnabled\");\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"XYSeries\"] = XYSeries;\r\nregistry.registeredClasses[\"XYSeriesDataItem\"] = XYSeriesDataItem;\r\n\n\n\n// WEBPACK FOOTER //\n// ../../../../../src/.internal/charts/series/XYSeries.ts","/**\r\n * Cursor module\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Container, IContainerProperties, IContainerAdapters, IContainerEvents } from \"../../core/Container\";\r\nimport { getInteraction, IInteractionEvents } from \"../../core/interaction/Interaction\";\r\nimport { IInteractionObjectEvents } from \"../../core/interaction/InteractionObjectEvents\";\r\nimport { IPoint, } from \"../../core/defs/IPoint\";\r\nimport { Chart } from \"../Chart\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport { MouseCursorStyle } from \"../../core/interaction/Mouse\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { Animation } from \"../../core/utils/Animation\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[Cursor]].\r\n */\r\nexport interface ICursorProperties extends IContainerProperties { }\r\n\r\n/**\r\n * Defines events for [[Cursor]].\r\n */\r\nexport interface ICursorEvents extends IContainerEvents {\r\n\r\n\t/**\r\n\t * Invoked when position of cursor changes.\r\n\t */\r\n\tcursorpositionchanged: {};\r\n\r\n\t/**\r\n\t * Invoked when user starts selecting a range with a cursor, e.g. presses\r\n\t * down mouse button and drags the cursor.\r\n\t */\r\n\tselectstarted: {};\r\n\r\n\t/**\r\n\t * Invoked when selection has ended, e.g. user releases mouse button.\r\n\t */\r\n\tselectended: {};\r\n\r\n\t/**\r\n\t * Invoked when user starts zooming using cursor.\r\n\t */\r\n\tzoomstarted: {};\r\n\r\n\t/**\r\n\t * Invoked when user clicked to start zooming/panning/selecting but haven't\r\n\t * finished the operation.\r\n\t */\r\n\tbehaviorcanceled: {};\r\n\r\n\t/**\r\n\t * Invoked when user is done zooming using cursor.\r\n\t */\r\n\tzoomended: {};\r\n\r\n\t/**\r\n\t * Invoked when user starts panning using cursor.\r\n\t */\r\n\tpanstarted: {};\r\n\r\n\t/**\r\n\t * Invoked when user is done panning using cursor.\r\n\t */\r\n\tpanended: {};\r\n\r\n\t/**\r\n\t * Invoked when user is panning using cursor.\r\n\t */\r\n\tpanning: {};\r\n}\r\n\r\n/**\r\n * Defines adapters for [[Cursor]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface ICursorAdapters extends IContainerAdapters, ICursorProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Main Cursor class with common cursor functionality.\r\n *\r\n * Chart-specific cursors must extend this class.\r\n *\r\n * @see {@link ICursorEvents} for a list of available events\r\n * @see {@link ICursorAdapters} for a list of available Adapters\r\n * @todo Add description, examples\r\n * @todo Should we allow changing `_generalBehavior`?\r\n */\r\nexport class Cursor extends Container {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: ICursorProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: ICursorAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: ICursorEvents;\r\n\r\n\t/**\r\n\t * Point coordinates of where selection started.\r\n\t */\r\n\tpublic downPoint: IPoint;\r\n\r\n\t/**\r\n\t * Point coordinates of where selection ended.\r\n\t */\r\n\tpublic upPoint: IPoint;\r\n\r\n\t/**\r\n\t * Current cursor position during selection.\r\n\t *\r\n\t * @todo Better description\r\n\t */\r\n\tpublic point: IPoint = { x: 0, y: 0 };\r\n\r\n\t/**\r\n\t * Relative horizontal position.\r\n\t *\r\n\t * @todo: maybe we should make getter only? it is used from outside by axes or series to show tooltips at some position\r\n\t */\r\n\tpublic xPosition: number;\r\n\r\n\t/**\r\n\t * Relative vertical position.\r\n\t *\r\n\t * @todo: maybe we should make getter only? it is used from outside by axes or series to show tooltips at some position\r\n\t */\r\n\tpublic yPosition: number;\r\n\r\n\t/**\r\n\t * [_usesSelection description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _usesSelection: boolean;\r\n\r\n\t/**\r\n\t * What to do when user pressed down and drags cursor: zoom or select.\r\n\t */\r\n\tprotected _generalBehavior: \"zoom\" | \"select\" | \"pan\"; // todo: draw\r\n\r\n\t/**\r\n\t * A reference to chart cursor belongs to.\r\n\t */\r\n\tpublic _chart: Chart;\r\n\r\n\t/**\r\n\t * Specifies the rules when cursor needs to be moved or hidden.\r\n\t */\r\n\tprotected _stick: \"hard\" | \"soft\" | \"none\" = \"none\";\r\n\r\n\t/**\r\n\t * A screen point that cursor is \"stuck\" to.\r\n\t */\r\n\tprotected _stickPoint: IPoint;\r\n\r\n\t/**\r\n\t * non-modified down point\r\n\t * @ignore\r\n\t */\r\n\tprotected _downPointOrig: IPoint;\r\n\r\n\t/**\r\n\t * non-modified up point\r\n\t * @ignore\r\n\t */\r\n\tprotected _upPointOrig: IPoint;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"Cursor\";\r\n\r\n\t\t// Set defaults\r\n\t\tthis.width = percent(100);\r\n\t\tthis.height = percent(100);\r\n\t\tthis.shouldClone = false;\r\n\r\n\t\tthis.hide(0);\r\n\r\n\t\tthis.trackable = true;\r\n\t\tthis.clickable = true;\r\n\r\n\t\tthis.isMeasured = false;\r\n\r\n\t\t// Add events on body to trigger down and up events (to start zooming or\r\n\t\t// selection)\r\n\t\tconst interaction = getInteraction();\r\n\t\tthis._disposers.push(interaction.body.events.on(\"down\", this.handleCursorDown, this));\r\n\t\tthis._disposers.push(interaction.body.events.on(\"up\", this.handleCursorUp, this));\r\n\t\tthis._disposers.push(interaction.body.events.on(\"track\", this.handleCursorMove, this));\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Handle pointer movement in document and update cursor position as needed.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param event Event\r\n\t */\r\n\tpublic handleCursorMove(event: IInteractionObjectEvents[\"track\"]): IPoint {\r\n\r\n\r\n\t\tif (!this.interactionsEnabled || (this.interactions.isTouchProtected && event.touch)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (((this._generalBehavior != \"zoom\" && this._generalBehavior != \"pan\") || !this.downPoint) && !getInteraction().isLocalElement(event.pointer, this.paper.svg, this.uid)) {\r\n\t\t\t// We want to let zoom/pan continue even if cursor is outside chart area\r\n\t\t\tif (!this.isHidden || !this.isHiding) {\r\n\t\t\t\tthis.hide();\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet local: IPoint = $utils.documentPointToSprite(event.pointer.point, this);\r\n\r\n\t\tif (this._stick == \"hard\" && this._stickPoint) {\r\n\t\t\tlocal = this._stickPoint;\r\n\t\t}\r\n\r\n\t\tif (this._stick == \"soft\" && this._stickPoint) {\r\n\t\t\tif (!this.fitsToBounds(local)) {\r\n\t\t\t\tlocal = this._stickPoint;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.triggerMove(local);\r\n\t\treturn local;\r\n\t}\r\n\r\n\t/**\r\n\t * Hides actual SVG elements and handles hiding animations.\r\n\t *\r\n\t * @param duration Fade out duration (ms)\r\n\t * @return Fade out duration (ms)\r\n\t * @ignore\r\n\t */\r\n\tprotected hideReal(duration?: number): $type.Optional<Animation> {\r\n\t\tif ((this._stick == \"hard\" || this._stick == \"soft\") && this._stickPoint) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\treturn super.hideReal(duration);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Places the cursor at specific point.\r\n\t *\r\n\t * The second parameter has following options:\r\n\t *\r\n\t * `\"none\"` - placed cursor will only be there until mouse/touch moves, then\r\n\t * it either moves to a new place (if pointer over plot area) or is hidden.\r\n\t *\r\n\t * `\"soft\"` - cursor will stay in the place if mouse/touch is happening\r\n\t * outside chart, but will move to a new place whe plot area is hovered or\r\n\t * touched.\r\n\t *\r\n\t * `\"hard\"` - cursor will stay in place no matter what, until it is moved by\r\n\t * another `triggerMove()` call.\r\n\t *\r\n\t * @param point Point to place cursor at\r\n\t * @param stick Level of cursor stickiness to the place\r\n\t */\r\n\tpublic triggerMove(point: IPoint, stick?: \"hard\" | \"soft\" | \"none\"): void {\r\n\r\n\t\tpoint.x = $math.round(point.x, 1);\r\n\t\tpoint.y = $math.round(point.y, 1);\r\n\r\n\t\tif (stick) {\r\n\t\t\tthis._stick = stick;\r\n\t\t}\r\n\r\n\t\tif (stick == \"hard\" || stick == \"soft\") {\r\n\t\t\tthis._stickPoint = point;\r\n\t\t}\r\n\r\n\t\tthis.triggerMoveReal(point);\r\n\t}\r\n\r\n\t/**\r\n\t * Places the cursor at specific point.\r\n\t *\r\n\t * @param point Point to place cursor at\r\n\t */\r\n\tprotected triggerMoveReal(point: IPoint): void {\r\n\t\tif (this.point.x != point.x || this.point.y != point.y) {\r\n\t\t\tthis.point = point;\r\n\t\t\tthis.invalidatePosition();\r\n\t\t\t// hide cursor if it's out of bounds\r\n\t\t\tif (this.fitsToBounds(point)) {\r\n\t\t\t\tthis.show(0);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// unless we are selecting (mouse is down)\r\n\t\t\t\tif (!this.downPoint) {\r\n\t\t\t\t\tthis.hide(0);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (this.visible) {\r\n\t\t\t\tthis.getPositions();\r\n\r\n\t\t\t\tthis.dispatch(\"cursorpositionchanged\"); // not good to dispatch later (check step count example)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Simulates pressing down (click/touch) action by a cursor.\r\n\t *\r\n\t * @param point Point of action\r\n\t */\r\n\tpublic triggerDown(point: IPoint) {\r\n\t\tthis.triggerDownReal(point);\r\n\t}\r\n\r\n\t/**\r\n\t * Simulates pressing down (click/touch) action by a cursor.\r\n\t *\r\n\t * @param point Point of action\r\n\t */\r\n\tprotected triggerDownReal(point: IPoint) {\r\n\t\tswitch (this._generalBehavior) {\r\n\t\t\tcase \"zoom\":\r\n\t\t\t\tthis.dispatchImmediately(\"zoomstarted\");\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"select\":\r\n\t\t\t\tthis.dispatchImmediately(\"selectstarted\");\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"pan\":\r\n\t\t\t\tthis.dispatchImmediately(\"panstarted\");\r\n\t\t\t\tgetInteraction().setGlobalStyle(MouseCursorStyle.grabbing);\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Simulates the action of release of the mouse down / touch.\r\n\t *\r\n\t * @param point Point of action\r\n\t */\r\n\tpublic triggerUp(point: IPoint) {\r\n\t\tthis.triggerUpReal(point);\r\n\t}\r\n\r\n\t/**\r\n\t * Simulates the action of release of the mouse down / touch.\r\n\t *\r\n\t * @param point Point of action\r\n\t */\r\n\tprotected triggerUpReal(point: IPoint) {\r\n\r\n\t\tthis.updatePoint(this.upPoint);\r\n\t\tlet interaction = getInteraction();\r\n\r\n\t\tif ($math.getDistance(this._upPointOrig, this._downPointOrig) > interaction.getHitOption(this.interactions, \"hitTolerance\")) {\r\n\t\t\tswitch (this._generalBehavior) {\r\n\t\t\t\tcase \"zoom\":\r\n\t\t\t\t\tthis.dispatchImmediately(\"zoomended\");\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"select\":\r\n\t\t\t\t\tthis.dispatchImmediately(\"selectended\");\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"pan\":\r\n\t\t\t\t\tthis.dispatchImmediately(\"panended\");\r\n\t\t\t\t\tinteraction.setGlobalStyle(MouseCursorStyle.default);\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tthis.downPoint = undefined;\r\n\t\t\tthis.updateSelection();\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.dispatchImmediately(\"behaviorcanceled\");\r\n\t\t\tinteraction.setGlobalStyle(MouseCursorStyle.default);\r\n\t\t\tthis.downPoint = undefined;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Updates selection dimensions on size change.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateSelection(): void {\r\n\t}\r\n\r\n\t/**\r\n\t * Updates cursors current positions.\r\n\t */\r\n\tprotected getPositions(): void {\r\n\t\t// positions are used by axes or series\r\n\t\tthis.xPosition = this.point.x / this.innerWidth;\r\n\t\tthis.yPosition = 1 - this.point.y / this.innerHeight;\r\n\t}\r\n\r\n\t/**\r\n\t * Handles pointer down event so we can start zoom or selection.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param event Original event\r\n\t */\r\n\tpublic handleCursorDown(event: IInteractionEvents[\"down\"]): void {\r\n\r\n\t\tif (!this.interactionsEnabled || (this.interactions.isTouchProtected && event.touch) || !getInteraction().isLocalElement(event.pointer, this.paper.svg, this.uid)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Get local point\r\n\t\tlet local: IPoint = $utils.documentPointToSprite(event.pointer.point, this);\r\n\r\n\t\tthis._downPointOrig = { x: local.x, y: local.y };\r\n\r\n\t\t// We need to cancel the event to prevent gestures on touch devices\r\n\t\tif (event.event.cancelable && this.shouldPreventGestures(event.touch) && this.fitsToBounds(local)) {\r\n\t\t\tevent.event.preventDefault();\r\n\t\t}\r\n\r\n\t\t// Make this happen\r\n\t\tthis.triggerMove(local);\r\n\t\tthis.triggerDown(local);\r\n\t}\r\n\r\n\t/**\r\n\t * Determines whether Cursor should prevent default action on move.\r\n\t *\r\n\t * Child classes should override this as necessary.\r\n\t * \r\n\t * @return Prevent default?\r\n\t */\r\n\tprotected shouldPreventGestures(touch: boolean): boolean {\r\n\t\treturn true;\r\n\t}\r\n\r\n\t/**\r\n\t * Updates the coordinates of where pointer down event occurred\r\n\t * (was pressed).\r\n\t */\r\n\tprotected updatePoint(point: IPoint) {\r\n\t}\r\n\r\n\t/**\r\n\t * Handles pointer up event - finishes zoom or selection action.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param event Original event\r\n\t */\r\n\tpublic handleCursorUp(event: IInteractionEvents[\"up\"]): void {\r\n\t\tif (!this.interactionsEnabled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (((this._generalBehavior != \"zoom\" && this._generalBehavior != \"pan\") || !this.downPoint) && !getInteraction().isLocalElement(event.pointer, this.paper.svg, this.uid)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tlet local: IPoint = $utils.documentPointToSprite(event.pointer.point, this);\r\n\t\tthis._upPointOrig = { x: local.x, y: local.y };\r\n\r\n\t\tthis.triggerMove(local);\r\n\t\tthis.triggerUp(local);\r\n\t}\r\n\r\n\t/**\r\n\t * A reference to a [[Chart]] the cursor belongs to.\r\n\t *\r\n\t * @param value Chart\r\n\t */\r\n\tpublic set chart(value: this[\"_chart\"]) {\r\n\t\tthis._chart = value;\r\n\t\tif ($type.hasValue((<any>this._chart).plotContainer)) {\r\n\t\t\tgetInteraction().lockElement((<any>this._chart).plotContainer.interactions);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Chart\r\n\t */\r\n\tpublic get chart(): this[\"_chart\"] {\r\n\t\treturn this._chart;\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Cursor\"] = Cursor;\r\n\n\n\n// WEBPACK FOOTER //\n// ../../../../../src/.internal/charts/cursors/Cursor.ts","/**\r\n * Cursor for XY chart\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Cursor, ICursorProperties, ICursorAdapters, ICursorEvents } from \"./Cursor\";\r\nimport { Sprite, ISpriteEvents } from \"../../core/Sprite\";\r\nimport { MutableValueDisposer, MultiDisposer, IDisposer } from \"../../core/utils/Disposer\";\r\nimport { IPoint } from \"../../core/defs/IPoint\";\r\nimport { IRange } from \"../../core/defs/IRange\";\r\nimport { Axis } from \"../axes/Axis\";\r\nimport { XYSeries } from \"../series/XYSeries\";\r\nimport { AxisRenderer } from \"../axes/AxisRenderer\";\r\nimport { Tooltip } from \"../../core/elements/Tooltip\";\r\nimport { XYChart } from \"../types/XYChart\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { color } from \"../../core/utils/Color\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport { getInteraction } from \"../../core/interaction/Interaction\";\r\nimport { MouseCursorStyle } from \"../../core/interaction/Mouse\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[XYCursor]].\r\n */\r\nexport interface IXYCursorProperties extends ICursorProperties {\r\n\r\n\t/**\r\n\t * Cursor's behavior when moved with pointer down:\r\n\t *\r\n\t * * \"zoomX\" - zooms horizontally; (default)\r\n\t * * \"zoomY\" - zooms vertically;\r\n\t * * \"zoomXY\" - zooms both horizontally and vertically;\r\n\t * * \"selectX\" - selects a range horizontally;\r\n\t * * \"selectY\" - selects a range vertically;\r\n\t * * \"selectXY\" - selects a range both horizontally and vertically;\r\n\t * * \"panX\" - moves (pans) current selection horizontally;\r\n\t * * \"panY\" - moves (pans) current selection vertically;\r\n\t * * \"panXY\" - moves (pans) current selection both horizontally and vertically;\r\n\t * * \"none\" - does nothing with pointer down.\r\n\t *\r\n\t * @default \"zoomX\"\r\n\t */\r\n\tbehavior?: \"zoomX\" | \"zoomY\" | \"zoomXY\" | \"selectX\" | \"selectY\" | \"selectXY\" | \"panX\" | \"panY\" | \"panXY\" | \"none\";\r\n\r\n\t/**\r\n\t * Cursor's horizontal line is expanded to take full width of the related\r\n\t * Axis' cell/category.\r\n\t */\r\n\tfullWidthLineX?: boolean;\r\n\r\n\t/**\r\n\t * Cursor's vertical line is expanded to take full width of the related\r\n\t * Axis' cell/category.\r\n\t */\r\n\tfullWidthLineY?: boolean;\r\n\r\n\t/**\r\n\t * If cursor behavior is panX or panY, we allow to pan plot out of it's max bounds for a better user experience.\r\n\t * This setting specifies relative value by how much we can pan out the plot\r\n\t */\r\n\tmaxPanOut?: number;\r\n\r\n\t/**\r\n\t * Specifies to which series cursor lines should be snapped. Works when one\r\n\t * of the axis is `DateAxis` or `CategoryAxis`. Won't work if both axes are\r\n\t * `ValueAxis`.\r\n\t */\r\n\tsnapToSeries: XYSeries;\r\n}\r\n\r\n/**\r\n * Defines events for [[XYCursor]].\r\n */\r\nexport interface IXYCursorEvents extends ICursorEvents { }\r\n\r\n/**\r\n * Defines adapters for [[XYCursor]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IXYCursorAdapters extends ICursorAdapters, IXYCursorProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * A cursor used on [[XYChart]].\r\n *\r\n * @see {@link IXYCursorEvents} for a list of available events\r\n * @see {@link IXYCursorAdapters} for a list of available Adapters\r\n * @todo Add description, examples\r\n */\r\nexport class XYCursor extends Cursor {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IXYCursorProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters\r\n\t */\r\n\tpublic _adapter!: IXYCursorAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IXYCursorEvents;\r\n\r\n\t/**\r\n\t * Vertical cursor line element.\r\n\t */\r\n\tprotected _lineX = new MutableValueDisposer<Sprite>();\r\n\r\n\t/**\r\n\t * Horizontal cursor line element.\r\n\t */\r\n\tprotected _lineY = new MutableValueDisposer<Sprite>();\r\n\r\n\t/**\r\n\t * Element which highlights selected area.\r\n\t */\r\n\tprotected _selection: Sprite;\r\n\r\n\t/**\r\n\t * A range of current horizontal selection.\r\n\t */\r\n\tpublic xRange: IRange;\r\n\r\n\t/**\r\n\t * A range of current vertical selection.\r\n\t */\r\n\tpublic yRange: IRange;\r\n\r\n\t/**\r\n\t * Horizontal [[Axis]].\r\n\t */\r\n\tprotected _xAxis = new MutableValueDisposer<Axis<AxisRenderer>>();\r\n\r\n\t/**\r\n\t * Vertical [[Axis]].\r\n\t */\r\n\tprotected _yAxis = new MutableValueDisposer<Axis<AxisRenderer>>();\r\n\r\n\t/**\r\n\t * A reference to chart cursor belongs to.\r\n\t */\r\n\tpublic _chart: XYChart;\r\n\r\n\tprotected _snapToDisposer: IDisposer;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"XYCursor\";\r\n\r\n\t\t// Defaults\r\n\t\tthis.behavior = \"zoomX\";\r\n\r\n\t\tthis.maxPanOut = 0.1;\r\n\r\n\t\tlet interfaceColors = new InterfaceColorSet();\r\n\r\n\t\t// Create selection element\r\n\t\tlet selection: Sprite = this.createChild(Sprite);\r\n\t\tselection.shouldClone = false;\r\n\t\tselection.fillOpacity = 0.2;\r\n\t\tselection.fill = interfaceColors.getFor(\"alternativeBackground\");\r\n\t\tselection.isMeasured = false;\r\n\t\tselection.interactionsEnabled = false;\r\n\t\tthis.selection = selection;\r\n\t\tthis._disposers.push(this.selection);\r\n\r\n\t\t// Create cursor's vertical line\r\n\t\tlet lineX: Sprite = this.createChild(Sprite);\r\n\t\tlineX.shouldClone = false;\r\n\t\tlineX.stroke = interfaceColors.getFor(\"grid\");\r\n\t\tlineX.fill = color();\r\n\t\tlineX.strokeDasharray = \"3,3\";\r\n\t\tlineX.isMeasured = false;\r\n\t\tlineX.strokeOpacity = 0.4;\r\n\t\tlineX.interactionsEnabled = false;\r\n\t\tlineX.y = 0;// important\r\n\t\tthis.lineX = lineX;\r\n\t\tthis._disposers.push(this.lineX);\r\n\r\n\t\t// Create cursor's horizontal line\r\n\t\tlet lineY: Sprite = this.createChild(Sprite);\r\n\t\tlineY.shouldClone = false;\r\n\t\tlineY.stroke = interfaceColors.getFor(\"grid\");\r\n\t\tlineY.fill = color();\r\n\t\tlineY.strokeDasharray = \"3,3\";\r\n\t\tlineY.isMeasured = false;\r\n\t\tlineY.strokeOpacity = 0.4;\r\n\t\tlineY.interactionsEnabled = false;\r\n\t\tlineY.x = 0; // important\r\n\t\tthis.lineY = lineY;\r\n\t\tthis._disposers.push(this.lineY);\r\n\r\n\t\t// Add handler for size changes\r\n\t\tthis.events.on(\"sizechanged\", this.updateSize, this, false);\r\n\r\n\t\tthis._disposers.push(this._lineX);\r\n\t\tthis._disposers.push(this._lineY);\r\n\t\tthis._disposers.push(this._xAxis);\r\n\t\tthis._disposers.push(this._yAxis);\r\n\r\n\t\tthis.mask = this;\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Updates cursor element dimensions on size change.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateSize(): void {\r\n\t\tif (this.lineX) {\r\n\t\t\tthis.lineX.path = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: 0, y: this.innerHeight });\r\n\t\t}\r\n\t\tif (this.lineY) {\r\n\t\t\tthis.lineY.path = $path.moveTo({ x: 0, y: 0 }) + $path.lineTo({ x: this.innerWidth, y: 0 });\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Updates selection dimensions on size change.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updateSelection(): void {\r\n\t\tif (this._usesSelection) {\r\n\t\t\tlet downPoint: IPoint = this.downPoint;\r\n\r\n\t\t\tif (downPoint) {\r\n\t\t\t\tlet point: IPoint = this.point;\r\n\r\n\t\t\t\tif (this.lineX) {\r\n\t\t\t\t\tpoint.x = this.lineX.pixelX;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.lineY) {\r\n\t\t\t\t\tpoint.y = this.lineY.pixelY;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet selection: Sprite = this.selection;\r\n\r\n\t\t\t\tlet x: number = Math.min(point.x, downPoint.x);\r\n\t\t\t\tlet y: number = Math.min(point.y, downPoint.y);\r\n\r\n\t\t\t\tlet w: number = $math.round(Math.abs(downPoint.x - point.x), this._positionPrecision);\r\n\t\t\t\tlet h: number = $math.round(Math.abs(downPoint.y - point.y), this._positionPrecision);\r\n\r\n\t\t\t\tswitch (this.behavior) {\r\n\t\t\t\t\tcase \"zoomX\":\r\n\t\t\t\t\t\ty = 0;\r\n\t\t\t\t\t\th = this.pixelHeight;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"zoomY\":\r\n\t\t\t\t\t\tx = 0;\r\n\t\t\t\t\t\tw = this.pixelWidth;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"selectX\":\r\n\t\t\t\t\t\ty = 0;\r\n\t\t\t\t\t\th = this.pixelHeight;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"selectY\":\r\n\t\t\t\t\t\tx = 0;\r\n\t\t\t\t\t\tw = this.pixelWidth;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tselection.x = x;\r\n\t\t\t\tselection.y = y;\r\n\r\n\t\t\t\tselection.path = $path.rectangle(w, h);\r\n\r\n\t\t\t\tselection.validatePosition(); // otherwise Edge shoes some incorrect size rectangle\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.selection.hide();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\r\n\tprotected fixPoint(point: IPoint): IPoint {\r\n\t\tpoint.x = Math.max(0, point.x);\r\n\t\tpoint.y = Math.max(0, point.y);\r\n\t\tpoint.x = Math.min(this.pixelWidth, point.x);\r\n\t\tpoint.y = Math.min(this.pixelHeight, point.y);\r\n\r\n\t\treturn point;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Places the cursor at specific point.\r\n\t *\r\n\t * @param point Point to place cursor at\r\n\t */\r\n\tprotected triggerMoveReal(point: IPoint): void {\r\n\r\n\t\tsuper.triggerMoveReal(point);\r\n\r\n\t\tif ((this.snapToSeries && !this.snapToSeries.isHidden)) {\r\n\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.updateLinePositions(point);\r\n\t\t}\r\n\r\n\t\tif (this.downPoint && $math.getDistance(this.downPoint, point) > 3) {\r\n\t\t\tif (this._generalBehavior == \"pan\") {\r\n\t\t\t\tthis.getPanningRanges();\r\n\t\t\t\tthis.dispatch(\"panning\");\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tprotected updateLinePositions(point: IPoint) {\r\n\t\tpoint = this.fixPoint(this.point);\r\n\r\n\t\tif (this.lineX && this.lineX.visible && !this.xAxis) {\r\n\t\t\tthis.lineX.x = point.x;\r\n\t\t}\r\n\t\tif (this.lineY && this.lineY.visible && !this.yAxis) {\r\n\t\t\tthis.lineY.y = point.y;\r\n\t\t}\r\n\t\tthis.updateSelection();\r\n\t}\r\n\r\n\r\n\tprotected triggerDownReal(point: IPoint) {\r\n\r\n\t\tif (this.visible && !this.isHiding) {\r\n\r\n\t\t\tif (this.fitsToBounds(point)) {\r\n\t\t\t\tthis.downPoint = { x: point.x, y: point.y };\r\n\r\n\t\t\t\tthis.updatePoint(point);\r\n\r\n\t\t\t\t//this.updateLinePositions(point); // otherwise lines won't be in correct position and touch won't work fine\r\n\r\n\t\t\t\tthis.point.x = this.downPoint.x;\r\n\t\t\t\tthis.point.y = this.downPoint.y;\r\n\r\n\t\t\t\tlet selection: Sprite = this.selection;\r\n\t\t\t\tlet selectionX: number = this.downPoint.x;\r\n\t\t\t\tlet selectionY: number = this.downPoint.y;\r\n\r\n\t\t\t\tif (this._usesSelection) {\r\n\t\t\t\t\tselection.x = selectionX;\r\n\t\t\t\t\tselection.y = selectionY;\r\n\t\t\t\t\tselection.path = \"\";\r\n\t\t\t\t\tselection.show();\r\n\t\t\t\t}\r\n\t\t\t\tsuper.triggerDownReal(point);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.downPoint = undefined;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.downPoint = undefined;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Updates the coordinates of where pointer down event occurred\r\n\t * (was pressed).\r\n\t */\r\n\tprotected updatePoint(point: IPoint) {\r\n\t\tif (this.lineX) {\r\n\t\t\tpoint.x = this.lineX.pixelX;\r\n\t\t}\r\n\t\tif (this.lineY) {\r\n\t\t\tpoint.y = this.lineY.pixelY;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tprotected triggerUpReal(point: IPoint) {\r\n\t\tif ($math.getDistance(this._upPointOrig, this._downPointOrig) > getInteraction().getHitOption(this.interactions, \"hitTolerance\")) {\r\n\t\t\tif (this.downPoint) {\r\n\t\t\t\tthis.upPoint = point;\r\n\r\n\t\t\t\tthis.updatePoint(this.upPoint);\r\n\r\n\t\t\t\tthis.getRanges();\r\n\r\n\t\t\t\tif (this.behavior == \"selectX\" || this.behavior == \"selectY\" || this.behavior == \"selectXY\") {\r\n\t\t\t\t\t// void\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.selection.hide();\r\n\t\t\t\t}\r\n\t\t\t\tsuper.triggerUpReal(point);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.selection.hide(0);\r\n\r\n\t\t\t// reset cursor style, just in case\r\n\t\t\tif (this._generalBehavior == \"pan\") {\r\n\t\t\t\tlet interaction = getInteraction();\r\n\t\t\t\tinteraction.setGlobalStyle(MouseCursorStyle.default);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.downPoint = undefined;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * [getRanges description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected getPanningRanges() {\r\n\r\n\t\tlet startX = $math.round(this.downPoint.x / this.innerWidth, 5);\r\n\t\tlet startY = $math.round(this.downPoint.y / this.innerHeight, 5);\r\n\r\n\t\tlet currentX = $math.round(this.point.x / this.innerWidth, 5);\r\n\t\tlet currentY = $math.round(this.point.y / this.innerHeight, 5);\r\n\r\n\t\tlet deltaX = startX - currentX;\r\n\t\tlet deltaY = -startY + currentY;\r\n\r\n\t\tthis.xRange = { start: deltaX, end: 1 + deltaX };\r\n\t\tthis.yRange = { start: deltaY, end: 1 + deltaY };\r\n\r\n\t\tif (this.behavior == \"panX\") {\r\n\t\t\tthis.yRange.start = 0;\r\n\t\t\tthis.yRange.end = 1;\r\n\t\t}\r\n\t\tif (this.behavior == \"panY\") {\r\n\t\t\tthis.xRange.start = 0;\r\n\t\t\tthis.xRange.end = 1;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * [getRanges description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected getRanges() {\r\n\t\tif (this.lineX) {\r\n\t\t\tthis.upPoint.x = this.lineX.pixelX;\r\n\t\t}\r\n\t\tif (this.lineY) {\r\n\t\t\tthis.upPoint.y = this.lineY.pixelY;\r\n\t\t}\r\n\r\n\t\t// @todo Is this needed?\r\n\t\t$utils.used(this.selection);\r\n\r\n\t\tlet startX: number = $math.round(this.downPoint.x / this.innerWidth, 5);\r\n\t\tlet endX: number = $math.round((this.upPoint.x) / this.innerWidth, 5);\r\n\r\n\t\tlet startY: number = $math.round(this.downPoint.y / this.innerHeight, 5);\r\n\t\tlet endY: number = $math.round((this.upPoint.y) / this.innerHeight, 5);\r\n\r\n\t\tthis.xRange = { start: $math.min(startX, endX), end: $math.max(startX, endX) };\r\n\t\tthis.yRange = { start: $math.min(startY, endY), end: $math.max(startY, endY) };\r\n\t}\r\n\r\n\t/**\r\n\t * Cursor's behavior when it's moved with pointer down:\r\n\t *\r\n\t * * \"zoomX\" - zooms horizontally;\r\n\t * * \"zoomY\" - zooms vertically;\r\n\t * * \"zoomXY\" - zooms both horizontally and vertically;\r\n\t * * \"selectX\" - selects a range horizontally;\r\n\t * * \"selectY\" - selects a range vertically;\r\n\t * * \"selectXY\" - selects a range both horizontally and vertically;\r\n\t * * \"panX\" - moves (pans) current selection horizontally;\r\n\t * * \"panY\" - moves (pans) current selection vertically;\r\n\t * * \"panXY\" - moves (pans) current selection both horizontally and vertically;\r\n\t * * \"none\" - does nothing with pointer down.\r\n\t *\r\n\t * E.g. \"zoomXY\" will mean that pressing a mouse (or touching) over plot area\r\n\t * and dragging it will start zooming the chart.\r\n\t *\r\n\t * @param value Bheavior\r\n\t */\r\n\tpublic set behavior(value: \"zoomX\" | \"zoomY\" | \"zoomXY\" | \"selectX\" | \"selectY\" | \"selectXY\" | \"panX\" | \"panY\" | \"panXY\" | \"none\") {\r\n\t\tthis.setPropertyValue(\"behavior\", value, true);\r\n\r\n\t\tthis._usesSelection = false;\r\n\r\n\t\tif (value.indexOf(\"zoom\") != -1) {\r\n\t\t\tthis._generalBehavior = \"zoom\";\r\n\t\t\tthis._usesSelection = true;\r\n\t\t}\r\n\t\tif (value.indexOf(\"select\") != -1) {\r\n\t\t\tthis._generalBehavior = \"select\";\r\n\t\t\tthis._usesSelection = true;\r\n\t\t}\r\n\t\tif (value.indexOf(\"pan\") != -1) {\r\n\t\t\tthis._generalBehavior = \"pan\";\r\n\t\t\tthis._usesSelection = false;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Behavior\r\n\t */\r\n\tpublic get behavior(): \"zoomX\" | \"zoomY\" | \"zoomXY\" | \"selectX\" | \"selectY\" | \"selectXY\" | \"panX\" | \"panY\" | \"panXY\" | \"none\" {\r\n\t\treturn this.getPropertyValue(\"behavior\");\r\n\t}\r\n\r\n\t/**\r\n\t * Determines whether Cursor should prevent default action on move.\r\n\t *\r\n\t * If cursor's behavior is \"none\", it should not obstruct the page scrolling.\r\n\t *\r\n\t * @return Prevent default?\r\n\t */\r\n\tprotected shouldPreventGestures(touch: boolean): boolean {\r\n\t\treturn (!this.interactions.isTouchProtected || !touch) && this.behavior != \"none\";\r\n\t}\r\n\r\n\t/**\r\n\t * Cursor's horizontal line is expanded to take full width of the related\r\n\t * Axis' cell/category.\r\n\t *\r\n\t * NOTE: this setting will work properly if `xAxis` is set and only in case\r\n\t * `xAxis` is [[CategoryAxis]] or [[DateAxis]].\r\n\t *\r\n\t * @param value Full width?\r\n\t */\r\n\tpublic set fullWidthLineX(value: boolean) {\r\n\t\tthis.setPropertyValue(\"fullWidthLineX\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Full width?\r\n\t */\r\n\tpublic get fullWidthLineX(): boolean {\r\n\t\treturn this.getPropertyValue(\"fullWidthLineX\");\r\n\t}\r\n\r\n\t/**\r\n\t * Cursor's vertical line is expanded to take full width of the related\r\n\t * Axis' cell/category.\r\n\t *\r\n\t * NOTE: this setting will work properly if `yAxis` is set and only in case\r\n\t * `yAxis` is [[CategoryAxis]] or [[DateAxis]].\r\n\t *\r\n\t * @param value Full width?\r\n\t */\r\n\tpublic set fullWidthLineY(value: boolean) {\r\n\t\tthis.setPropertyValue(\"fullWidthLineY\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Full width?\r\n\t */\r\n\tpublic get fullWidthLineY(): boolean {\r\n\t\treturn this.getPropertyValue(\"fullWidthLineY\");\r\n\t}\r\n\r\n\t/**\r\n\t * If cursor behavior is panX or panY, we allow to pan plot out of it's max bounds for a better user experience.\r\n\t * This setting specifies relative value by how much we can pan out the plot\r\n\t *\r\n\t * @param value\r\n\t */\r\n\tpublic set maxPanOut(value: number) {\r\n\t\tthis.setPropertyValue(\"maxPanOut\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Full width?\r\n\t */\r\n\tpublic get maxPanOut(): number {\r\n\t\treturn this.getPropertyValue(\"maxPanOut\");\r\n\t}\r\n\r\n\t/**\r\n\t * A reference to X [[Axis]].\r\n\t *\r\n\t * An XY cursor can live without `xAxis` set. You set xAxis for cursor when\r\n\t * you have axis tooltip enabled and you want cursor line to be at the same\r\n\t * position as tooltip.\r\n\t *\r\n\t * This works with [[CategoryAxis]] and [[DateAxis]] but not with\r\n\t * [[ValueAxis]].\r\n\t *\r\n\t * @todo Description (review)\r\n\t * @param axis X axis\r\n\t */\r\n\tpublic set xAxis(axis: Axis) {\r\n\t\tif (this._xAxis.get() != axis) {\r\n\t\t\tthis._xAxis.set(axis, new MultiDisposer([\r\n\t\t\t\taxis.tooltip.events.on(\"positionchanged\", this.handleXTooltipPosition, this, false),\r\n\t\t\t\t//axis.events.on(\"validated\", chart.handleCursorPositionChange, chart, false)\r\n\t\t\t]));\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return X axis\r\n\t */\r\n\tpublic get xAxis(): Axis {\r\n\t\treturn this._xAxis.get();\r\n\t}\r\n\r\n\t/**\r\n\t * A reference to Y [[Axis]].\r\n\t *\r\n\t * An XY cursor can live without `yAxis` set. You set xAxis for cursor when\r\n\t * you have axis tooltip enabled and you want cursor line to be at the same\r\n\t * position as tooltip.\r\n\t *\r\n\t * This works with [[CategoryAxis]] and [[DateAxis]] but not with\r\n\t * [[ValueAxis]].\r\n\t *\r\n\t * @todo Description (review)\r\n\t * @param axis Y axis\r\n\t */\r\n\tpublic set yAxis(axis: Axis) {\r\n\t\tif (this._yAxis.get() != axis) {\r\n\t\t\tthis._yAxis.set(axis, new MultiDisposer([\r\n\t\t\t\taxis.tooltip.events.on(\"positionchanged\", this.handleYTooltipPosition, this, false),\r\n\t\t\t\t//axis.events.on(\"validated\", chart.handleCursorPositionChange, chart, false)\r\n\t\t\t]));\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Y Axis\r\n\t */\r\n\tpublic get yAxis(): Axis {\r\n\t\treturn this._yAxis.get();\r\n\t}\r\n\r\n\t/**\r\n\t * Updates Cursor's position when axis tooltip changes position.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param event Original Axis event\r\n\t */\r\n\tprotected handleXTooltipPosition(event: ISpriteEvents[\"positionchanged\"]): void {\r\n\t\tlet tooltip: Tooltip = this.xAxis.tooltip;\r\n\t\tlet point: IPoint = $utils.svgPointToSprite({ x: tooltip.pixelX, y: tooltip.pixelY }, this);\r\n\t\tlet x: number = point.x;\r\n\r\n\t\tif (this.lineX) {\r\n\t\t\tthis.lineX.x = x;\r\n\t\t\tif (!this.fitsToBounds(point)) {\r\n\t\t\t\tthis.hide();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.xAxis && this.fullWidthLineX) {\r\n\t\t\tlet startPoint: IPoint = this.xAxis.currentItemStartPoint;\r\n\t\t\tlet endPoint: IPoint = this.xAxis.currentItemEndPoint;\r\n\t\t\tif (startPoint && endPoint) {\r\n\t\t\t\tthis.lineX.x = x;\r\n\t\t\t\tlet width: number = endPoint.x - startPoint.x;\r\n\t\t\t\tthis.lineX.path = $path.rectangle(width, this.innerHeight, -width / 2);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Updates Cursor's position when Y axis changes position or scale.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param event Original Axis event\r\n\t */\r\n\tprotected handleYTooltipPosition(event: ISpriteEvents[\"positionchanged\"]): void {\r\n\t\tlet tooltip: Tooltip = this.yAxis.tooltip;\r\n\t\tlet point: IPoint = $utils.svgPointToSprite({ x: tooltip.pixelX, y: tooltip.pixelY }, this);\r\n\t\tlet y: number = point.y;\r\n\r\n\t\tif (this.lineY) {\r\n\t\t\tthis.lineY.y = y;\r\n\r\n\t\t\tif (!this.fitsToBounds(point)) {\r\n\t\t\t\tthis.hide();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.yAxis && this.fullWidthLineY) {\r\n\t\t\tlet startPoint: IPoint = this.yAxis.currentItemStartPoint;\r\n\t\t\tlet endPoint: IPoint = this.yAxis.currentItemEndPoint;\r\n\t\t\tif (startPoint && endPoint) {\r\n\t\t\t\tthis.lineY.y = y;\r\n\t\t\t\tlet height: number = endPoint.y - startPoint.y;\r\n\t\t\t\tthis.lineY.path = $path.rectangle(this.innerWidth, height, 0, -height / 2);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A Line element to use for X axis.\r\n\t *\r\n\t * @param lineX Line\r\n\t */\r\n\tpublic set lineX(lineX: Sprite) {\r\n\t\tif (lineX) {\r\n\t\t\tlineX.setElement(this.paper.add(\"path\"));\r\n\t\t\tthis._lineX.set(lineX, lineX.events.on(\"positionchanged\", this.updateSelection, this, false));\r\n\t\t\tlineX.interactionsEnabled = false;\r\n\t\t\tlineX.parent = this;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis._lineX.reset();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Line element\r\n\t */\r\n\tpublic get lineX(): Sprite {\r\n\t\treturn this._lineX.get();\r\n\t}\r\n\r\n\t/**\r\n\t * A Line element to use Y axis.\r\n\t *\r\n\t * @param lineY Line\r\n\t */\r\n\tpublic set lineY(lineY: Sprite) {\r\n\t\tif (lineY) {\r\n\t\t\tlineY.setElement(this.paper.add(\"path\"));\r\n\t\t\tthis._lineY.set(lineY, lineY.events.on(\"positionchanged\", this.updateSelection, this, false));\r\n\t\t\tlineY.parent = this;\r\n\t\t\tlineY.interactionsEnabled = false;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis._lineY.reset();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Line element\r\n\t */\r\n\tpublic get lineY(): Sprite {\r\n\t\treturn this._lineY.get();\r\n\t}\r\n\r\n\t/**\r\n\t * A selection element ([[Sprite]]).\r\n\t *\r\n\t * @param selection Selection rectangle\r\n\t */\r\n\tpublic set selection(selection: Sprite) {\r\n\t\tthis._selection = selection;\r\n\t\tif (selection) {\r\n\t\t\tselection.element = this.paper.add(\"path\");\r\n\t\t\tselection.parent = this;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Selection rectangle\r\n\t */\r\n\tpublic get selection(): Sprite {\r\n\t\treturn this._selection;\r\n\t}\r\n\r\n\t/**\r\n\t * Processes JSON-based config before it is applied to the object.\r\n\t *\r\n\t * Looks if `xAxis` and `yAxis` is set via ID in JSON config, and replaces\r\n\t * with real references.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param config Config\r\n\t */\r\n\tpublic processConfig(config?: { [index: string]: any }): void {\r\n\r\n\t\tif (config) {\r\n\r\n\t\t\t// Set up axes\r\n\t\t\tif ($type.hasValue(config.xAxis) && $type.isString(config.xAxis)) {\r\n\t\t\t\tif (this.map.hasKey(config.xAxis)) {\r\n\t\t\t\t\tconfig.xAxis = this.map.getKey(config.xAxis);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.processingErrors.push(\"[XYCursor] No axis with id \\\"\" + config.xAxis + \"\\\" found for `xAxis`\");\r\n\t\t\t\t\tdelete config.xAxis;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif ($type.hasValue(config.yAxis) && $type.isString(config.yAxis)) {\r\n\t\t\t\tif (this.map.hasKey(config.yAxis)) {\r\n\t\t\t\t\tconfig.yAxis = this.map.getKey(config.yAxis);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.processingErrors.push(\"[XYCursor] No axis with id \\\"\" + config.yAxis + \"\\\" found for `yAxis`\");\r\n\t\t\t\t\tdelete config.yAxis;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif ($type.hasValue(config.snapToSeries) && $type.isString(config.snapToSeries)) {\r\n\t\t\t\tif (this.map.hasKey(config.snapToSeries)) {\r\n\t\t\t\t\tconfig.snapToSeries = this.map.getKey(config.snapToSeries);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.processingErrors.push(\"[XYCursor] No series with id \\\"\" + config.snapToSeries + \"\\\" found for `series`\");\r\n\t\t\t\t\tdelete config.snapToSeries;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tsuper.processConfig(config);\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Specifies to which series cursor lines should be snapped. Works when one\r\n\t * of the axis is `DateAxis` or `CategoryAxis`. Won't work if both axes are\r\n\t * `ValueAxis`.\r\n\t *\r\n\t * @param {XYSeries}\r\n\t */\r\n\tpublic set snapToSeries(series: XYSeries) {\r\n\t\tif (this.setPropertyValue(\"snapToSeries\", series)) {\r\n\t\t\tif (this._snapToDisposer) {\r\n\t\t\t\tthis._snapToDisposer.dispose();\r\n\t\t\t}\r\n\r\n\t\t\tif (series) {\r\n\t\t\t\tthis._snapToDisposer = series.events.on(\"tooltipshownat\", this.handleSnap, this, false);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return {XYSeries}\r\n\t */\r\n\tpublic get snapToSeries(): XYSeries {\r\n\t\treturn this.getPropertyValue(\"snapToSeries\");\r\n\t}\r\n\r\n\t/**\r\n\t * [handleSnap description]\r\n\t *\r\n\t * @ignore\r\n\t * @todo Description\r\n\t */\r\n\tpublic handleSnap() {\r\n\r\n\t\tlet series = this.snapToSeries;\r\n\t\tlet y = series.tooltipY;\r\n\t\tlet x = series.tooltipX;\r\n\r\n\t\tif (this.xAxis) {\r\n\t\t\tif (this.xAxis.renderer.opposite) {\r\n\t\t\t\ty -= this.pixelHeight;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.point = { x: x, y: y };\r\n\t\tthis.getPositions();\r\n\r\n\t\tlet xx = x;\r\n\t\tlet yy = y;\r\n\r\n\t\tx -= this.pixelWidth;\r\n\r\n\t\tif (this.yAxis) {\r\n\t\t\tif (this.yAxis.renderer.opposite) {\r\n\t\t\t\tx += this.pixelWidth;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet tooltip = series.tooltip;\r\n\t\tlet duration = tooltip.animationDuration;\r\n\t\tlet easing = tooltip.animationEasing;\r\n\r\n\t\tif (series.baseAxis == series.xAxis) {\r\n\t\t\tseries.yAxis.showTooltipAtPosition(this.yPosition);\r\n\t\t}\r\n\r\n\t\tif (series.baseAxis == series.yAxis) {\r\n\t\t\tseries.xAxis.showTooltipAtPosition(this.xPosition);\r\n\t\t}\r\n\r\n\t\tthis.lineX.animate([{ property: \"y\", to: y }], duration, easing);\r\n\t\tthis.lineY.animate([{ property: \"x\", to: x }], duration, easing);\r\n\r\n\t\tif (!this.xAxis) {\r\n\t\t\tthis.lineX.animate([{ property: \"x\", to: xx }], duration, easing);\r\n\t\t}\r\n\t\tif (!this.yAxis) {\r\n\t\t\tthis.lineY.animate([{ property: \"y\", to: yy }], duration, easing);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Destroys this object and all related data.\r\n\t */\r\n\tpublic dispose(){\r\n\t\tthis.hide(0);\r\n\t\tsuper.dispose();\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"XYCursor\"] = XYCursor;\r\n\n\n\n// WEBPACK FOOTER //\n// ../../../../../src/.internal/charts/cursors/XYCursor.ts","/**\r\n * A module with functionality for buildin a scrollbar with an XY graph in it.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Scrollbar, IScrollbarProperties, IScrollbarAdapters, IScrollbarEvents } from \"../../core/elements/Scrollbar\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { List, IListEvents } from \"../../core/utils/List\";\r\nimport { XYSeries } from \"../series/XYSeries\";\r\nimport { MutableValueDisposer } from \"../../core/utils/Disposer\";\r\nimport { XYChart } from \"../types/XYChart\";\r\nimport { Axis } from \"../axes/Axis\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport { DesaturateFilter } from \"../../core/rendering/filters/DesaturateFilter\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines properties for [[XYChartScrollbar]].\r\n */\r\nexport interface IXYChartScrollbarProperties extends IScrollbarProperties { }\r\n\r\n/**\r\n * Defines events for [[XYChartScrollbar]].\r\n */\r\nexport interface IXYChartScrollbarEvents extends IScrollbarEvents { }\r\n\r\n/**\r\n * Defines adapters for [[XYChartScrollbar]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IXYChartScrollbarAdapters extends IScrollbarAdapters, IXYChartScrollbarProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * A special version of the Scrollbar that has an XY chart in it.\r\n *\r\n * Used mainly as an advanced scrollbar with a preview for other XY charts.\r\n *\r\n * However, can be used as standalone element.\r\n *\r\n * @see {@link IXYChartScrollbarEvents} for a list of available events\r\n * @see {@link IXYChartScrollbarAdapters} for a list of available Adapters\r\n * @important\r\n */\r\nexport class XYChartScrollbar extends Scrollbar {\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IXYChartScrollbarProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IXYChartScrollbarAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IXYChartScrollbarEvents;\r\n\r\n\t/**\r\n\t * An [[XYSeries]] used to draw a graph on the Scrollbar.\r\n\t */\r\n\tprotected _series: List<XYSeries>;\r\n\r\n\t/**\r\n\t * A chart element Scrollbar is for.\r\n\t */\r\n\tprotected _chart = new MutableValueDisposer<XYChart>();\r\n\r\n\t/**\r\n\t * A chart instance that shows mini-chart within Scrollbar.\r\n\t */\r\n\tprotected _scrollbarChart: XYChart;\r\n\r\n\t/**\r\n\t * [_unselectedOverlay description]\r\n\t *\r\n\t * @todo Description\r\n\t */\r\n\tprotected _unselectedOverlay: Sprite;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"XYChartScrollbar\";\r\n\r\n\t\tlet interfaceColors = new InterfaceColorSet();\r\n\t\tthis.padding(0, 0, 0, 0);\r\n\r\n\t\tlet scrollbarChart: XYChart = this.createChild(XYChart);\r\n\t\tscrollbarChart.shouldClone = false;\r\n\t\tscrollbarChart.margin(0, 0, 0, 0);\r\n\t\tscrollbarChart.padding(0, 0, 0, 0);\r\n\t\tscrollbarChart.interactionsEnabled = false;\r\n\r\n\t\tthis._scrollbarChart = scrollbarChart;\r\n\t\tthis._disposers.push(this._scrollbarChart);\r\n\r\n\t\tthis.minHeight = 60;\r\n\t\tthis.minWidth = 60;\r\n\r\n\t\tlet unselectedOverlay: Sprite = this.createChild(Sprite);\r\n\t\tunselectedOverlay.shouldClone = false;\r\n\t\tunselectedOverlay.setElement(this.paper.add(\"path\"));\r\n\t\tunselectedOverlay.fill = interfaceColors.getFor(\"background\");\r\n\t\tunselectedOverlay.fillOpacity = 0.8;\r\n\t\tunselectedOverlay.interactionsEnabled = false;\r\n\t\tunselectedOverlay.isMeasured = false;\r\n\t\tunselectedOverlay.toBack();\r\n\t\tthis._unselectedOverlay = unselectedOverlay;\r\n\t\tthis._disposers.push(this._unselectedOverlay);\r\n\r\n\t\tscrollbarChart.toBack();\r\n\r\n\t\tthis.background.cornerRadius(0, 0, 0, 0);\r\n\r\n\t\tlet thumbBackground = this.thumb.background;\r\n\t\tthumbBackground.cornerRadius(0, 0, 0, 0);\r\n\t\tthumbBackground.fillOpacity = 0;\r\n\t\tthumbBackground.fill = interfaceColors.getFor(\"background\");\r\n\r\n\t\tlet hoverState = thumbBackground.states.getKey(\"hover\");\r\n\t\tif (hoverState) {\r\n\t\t\thoverState.properties.fillOpacity = 0.2;\r\n\t\t}\r\n\r\n\t\tlet downState = thumbBackground.states.getKey(\"down\");\r\n\t\tif (downState) {\r\n\t\t\tdownState.properties.fillOpacity = 0.4;\r\n\t\t}\r\n\r\n\t\tthis._disposers.push(this._chart);\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * A list of series that are used to draw graph(s) on the scrollbar.\r\n\t *\r\n\t * @readonly\r\n\t * @return Series\r\n\t */\r\n\tpublic get series(): List<XYSeries> {\r\n\t\tif (!this._series) {\r\n\t\t\tthis._series = new List<XYSeries>();\r\n\t\t\tthis._disposers.push(this._series.events.on(\"inserted\", this.handleSeriesAdded, this, false));\r\n\t\t\tthis._disposers.push(this._series.events.on(\"removed\", this.handleSeriesRemoved, this, false));\r\n\t\t}\r\n\t\treturn this._series;\r\n\t}\r\n\r\n\t/**\r\n\t * Decorates a new series when they are pushed into a `series` list.\r\n\t *\r\n\t * @param event Event\r\n\t */\r\n\tprotected handleSeriesAdded(event: IListEvents<XYSeries>[\"inserted\"]) {\r\n\t\tlet sourceSeries: XYSeries = event.newValue;\r\n\t\tlet scrollbarChart: XYChart = this.scrollbarChart;\r\n\t\tscrollbarChart.zoomOutButton.disabled = true;\r\n\r\n\t\tthis.chart = sourceSeries.chart;\r\n\r\n\t\tlet addXAxis: boolean = true;\r\n\t\tlet addYAxis: boolean = true;\r\n\r\n\t\t// check if we haven't added clone of x or y axis before\r\n\t\t$iter.each(this.series.iterator(), (series) => {\r\n\t\t\tif (series != sourceSeries) {\r\n\t\t\t\tif (series.xAxis == sourceSeries.xAxis) {\r\n\t\t\t\t\taddXAxis = false;\r\n\t\t\t\t}\r\n\t\t\t\tif (series.yAxis == sourceSeries.yAxis) {\r\n\t\t\t\t\taddYAxis = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet interfaceColors = new InterfaceColorSet();\r\n\r\n\t\tlet series: XYSeries = <XYSeries>sourceSeries.clone();\r\n\r\n\t\tif (addXAxis) {\r\n\r\n\t\t\tlet xAxis = sourceSeries.xAxis.clone();\r\n\t\t\tscrollbarChart.xAxes.moveValue(xAxis);\r\n\t\t\txAxis.title.disabled = true;\r\n\t\t\txAxis.rangeChangeDuration = 0;\r\n\t\t\txAxis.id = sourceSeries.uid;\r\n\t\t\tlet renderer = xAxis.renderer;\r\n\t\t\trenderer.ticks.template.disabled = true;\r\n\t\t\trenderer.inside = true;\r\n\t\t\trenderer.labels.template.inside = true;\r\n\t\t\trenderer.line.strokeOpacity = 0;\r\n\t\t\trenderer.minLabelPosition = 0.02;\r\n\t\t\trenderer.maxLabelPosition = 0.98;\r\n\t\t\trenderer.line.disabled = true;\r\n\t\t\trenderer.axisFills.template.disabled = true;\r\n\t\t\trenderer.baseGrid.disabled = true;\r\n\t\t\trenderer.grid.template.strokeOpacity = 0.05;\r\n\t\t\trenderer.minWidth = undefined;\r\n\t\t\trenderer.minHeight = undefined;\r\n\t\t\trenderer.padding(0,0,0,0);\r\n\t\t\trenderer.chart = scrollbarChart;\r\n\t\t\trenderer.margin(0,0,0,0);\r\n\r\n\t\t\tlet labelsTemplate = renderer.labels.template;\r\n\t\t\tlabelsTemplate.fillOpacity = 0.5;\r\n\r\n\t\t\tseries.xAxis = xAxis;\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// @todo find clone, otherwise there might be probs with multiple axes\r\n\t\t}\r\n\r\n\r\n\t\tif (addYAxis) {\r\n\t\t\tlet yAxis: Axis = <Axis>sourceSeries.yAxis.clone();\r\n\t\t\tscrollbarChart.yAxes.moveValue(yAxis);\r\n\t\t\tyAxis.title.disabled = true;\r\n\t\t\tyAxis.rangeChangeDuration = 0;\r\n\r\n\t\t\tlet renderer = yAxis.renderer;\r\n\t\t\trenderer.ticks.template.disabled = true;\r\n\t\t\trenderer.inside = true;\r\n\t\t\trenderer.labels.template.inside = true;\r\n\t\t\trenderer.line.strokeOpacity = 0;\r\n\t\t\trenderer.minLabelPosition = 0.02;\r\n\t\t\trenderer.maxLabelPosition = 0.98;\r\n\t\t\trenderer.line.disabled = true;\r\n\t\t\trenderer.axisFills.template.disabled = true;\r\n\t\t\trenderer.grid.template.stroke = interfaceColors.getFor(\"background\");\r\n\t\t\trenderer.baseGrid.disabled = true;\r\n\t\t\trenderer.grid.template.strokeOpacity = 0.05;\r\n\t\t\trenderer.minWidth = undefined;\r\n\t\t\trenderer.minHeight = undefined;\t\t\r\n\t\t\trenderer.chart = scrollbarChart;\r\n\t\t\trenderer.padding(0,0,0,0);\r\n\t\t\trenderer.margin(0,0,0,0);\r\n\r\n\t\t\tlet labelsTemplate = renderer.labels.template;\r\n\t\t\tlabelsTemplate.fillOpacity = 0.5;\r\n\r\n\t\t\tseries.yAxis = yAxis;\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// @todo find clone, otherwise there might be probs with multiple axes\r\n\t\t}\r\n\r\n\t\tseries.rangeChangeDuration = 0;\r\n\t\tseries.interpolationDuration = 0;\r\n\t\tseries.defaultState.transitionDuration = 0;\r\n\t\tseries.showOnInit = false;\r\n\r\n\t\tthis._disposers.push(series.events.on(\"validated\", this.zoomOutAxes, this, false));\r\n\r\n\t\t// data might be set drectly on series\r\n\t\tthis._disposers.push(sourceSeries.events.on(\"datavalidated\", () => {\r\n\t\t\tif (series.data != sourceSeries.data) { // data setter doesn't check this\r\n\t\t\t\tseries.data = sourceSeries.data;\r\n\t\t\t}\r\n\t\t}, undefined, false));\r\n\t\tseries.defaultState.properties.visible = true;\r\n\r\n\t\tseries.filters.push(new DesaturateFilter());\r\n\t\tscrollbarChart.series.push(series);\r\n\r\n\t\tthis.updateByOrientation();\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected updateByOrientation() {\r\n\t\tif (this._scrollbarChart) {\r\n\t\t\t$iter.each(this._scrollbarChart.xAxes.iterator(), (xAxis) => {\r\n\t\t\t\tlet renderer = xAxis.renderer;\r\n\t\t\t\tif (this.orientation == \"vertical\") {\r\n\t\t\t\t\trenderer.grid.template.disabled = true;\r\n\t\t\t\t\trenderer.labels.template.disabled = true;\r\n\t\t\t\t\trenderer.minGridDistance = 10;\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\trenderer.grid.template.disabled = false;\r\n\t\t\t\t\trenderer.labels.template.disabled = false;\r\n\t\t\t\t\trenderer.minGridDistance = xAxis.clonedFrom.renderer.minGridDistance;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\r\n\t\t\t$iter.each(this._scrollbarChart.yAxes.iterator(), (yAxis) => {\r\n\t\t\t\tlet renderer = yAxis.renderer;\r\n\t\t\t\tif (this.orientation == \"horizontal\") {\r\n\t\t\t\t\trenderer.grid.template.disabled = true;\r\n\t\t\t\t\trenderer.labels.template.disabled = true;\r\n\t\t\t\t\trenderer.minGridDistance = 10;\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\trenderer.grid.template.disabled = false;\r\n\t\t\t\t\trenderer.labels.template.disabled = false;\r\n\t\t\t\t\trenderer.minGridDistance = yAxis.clonedFrom.renderer.minGridDistance;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\r\n\r\n\t/**\r\n\t * Cleans up after series are removed from Scrollbar.\r\n\t *\r\n\t * @param event Event\r\n\t */\r\n\tprotected handleSeriesRemoved(event: IListEvents<XYSeries>[\"removed\"]) {\r\n\t\tlet sourceSeries: XYSeries = event.oldValue;\r\n\t\tsourceSeries.events.off(\"validated\", this.zoomOutAxes, this);\r\n\t}\r\n\r\n\t/**\r\n\t * A chart element that is used to display graphs in the Scrollbar.\r\n\t *\r\n\t * This is not the same as `chart`. It's a totally independent instance of\r\n\t * [[XYChart]] with separate config, series, etc.\r\n\t *\r\n\t * It can be configured just like any other [[XYChart]].\r\n\t *\r\n\t * @readonly\r\n\t * @return Scrollbar's internal chart\r\n\t */\r\n\tpublic get scrollbarChart(): XYChart {\r\n\t\treturn this._scrollbarChart;\r\n\t}\r\n\r\n\t/**\r\n\t * A chart that Scrollbar belongs to.\r\n\t *\r\n\t * @param chart Chart\r\n\t */\r\n\tpublic set chart(chart: XYChart) {\r\n\t\tif (this._chart.get() !== chart) {\r\n\t\t\tthis._chart.set(chart, chart.events.on(\"datavalidated\", this.handleDataChanged, this, false));\r\n\t\t\tthis.handleDataChanged();\r\n\t\t\tthis._scrollbarChart.dataProvider = chart; // this makes scrollbar chart do not validate data untill charts' data is validated\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @return Chart\r\n\t */\r\n\tpublic get chart(): XYChart {\r\n\t\treturn this._chart.get();\r\n\t}\r\n\r\n\t/**\r\n\t * Updates Scrollbar's internal chart's data when the main chart's data\r\n\t * changes.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic handleDataChanged() {\r\n\t\t//@todo: what if raw data changed?\r\n\t\tif (this.chart.data != this.scrollbarChart.data) {\r\n\t\t\tthis.scrollbarChart.data = this.chart.data;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Zooms out all axes on the internal chart.\r\n\t */\r\n\tprotected zoomOutAxes() {\r\n\t\tlet scrollbarChart: XYChart = this.scrollbarChart;\r\n\t\t$iter.each(scrollbarChart.xAxes.iterator(), (x) => {\r\n\t\t\tx.zoom({ start: 0, end: 1 }, true, true);\r\n\t\t});\r\n\t\t$iter.each(scrollbarChart.yAxes.iterator(), (y) => {\r\n\t\t\ty.zoom({ start: 0, end: 1 }, true, true);\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Updates scrollbar thumb.\r\n\t */\r\n\tprotected updateThumb() {\r\n\t\tsuper.updateThumb();\r\n\t\tif (this._unselectedOverlay) {\r\n\t\t\tlet thumb = this.thumb;\r\n\t\t\tlet x: number = thumb.pixelX || 0;\r\n\t\t\tlet y: number = thumb.pixelY || 0;\r\n\t\t\tlet w: number = thumb.pixelWidth || 0;\r\n\t\t\tlet h: number = thumb.pixelHeight || 0;\r\n\r\n\t\t\tlet path: string = \"\";\r\n\r\n\t\t\tif (this.orientation == \"horizontal\") {\r\n\t\t\t\tpath = $path.rectToPath({\r\n\t\t\t\t\tx: -1,\r\n\t\t\t\t\ty: 0,\r\n\t\t\t\t\twidth: x,\r\n\t\t\t\t\theight: h\r\n\t\t\t\t});\r\n\r\n\t\t\t\tpath += $path.rectToPath({\r\n\t\t\t\t\tx: x + w,\r\n\t\t\t\t\ty: 0,\r\n\t\t\t\t\twidth: (this.pixelWidth || 0) - x - w,\r\n\t\t\t\t\theight: h\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tpath = $path.rectToPath({\r\n\t\t\t\t\tx: 0,\r\n\t\t\t\t\ty: 0,\r\n\t\t\t\t\twidth: w,\r\n\t\t\t\t\theight: y\r\n\t\t\t\t});\r\n\r\n\t\t\t\tpath += $path.rectToPath({\r\n\t\t\t\t\tx: 0,\r\n\t\t\t\t\ty: y + h,\r\n\t\t\t\t\twidth: w,\r\n\t\t\t\t\theight: (this.pixelHeight || 0) - y - h\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tthis._unselectedOverlay.path = path;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Processes JSON-based config before it is applied to the object.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t * @param config Config\r\n\t */\r\n\tpublic processConfig(config?: { [index: string]: any }): void {\r\n\r\n\t\tif (config) {\r\n\r\n\t\t\tif ($type.hasValue(config.series) && $type.isArray(config.series)) {\r\n\t\t\t\tfor (let i = 0, len = config.series.length; i < len; i++) {\r\n\t\t\t\t\tlet series = config.series[i];\r\n\t\t\t\t\tif ($type.hasValue(series) && $type.isString(series)) {\r\n\t\t\t\t\t\tif (this.map.hasKey(series)) {\r\n\t\t\t\t\t\t\tconfig.series[i] = this.map.getKey(series);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tthrow Error(\"XYChartScrollbar error: Series with id `\" + series + \"` does not exist.\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tsuper.processConfig(config);\r\n\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"XYChartScrollbar\"] = XYChartScrollbar;\r\n\n\n\n// WEBPACK FOOTER //\n// ../../../../../src/.internal/charts/elements/XYChartScrollbar.ts","/**\r\n * XY Chart module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { SerialChart, ISerialChartProperties, ISerialChartDataFields, ISerialChartAdapters, ISerialChartEvents, SerialChartDataItem } from \"./SerialChart\";\r\nimport { Sprite, ISpriteEvents, AMEvent } from \"../../core/Sprite\";\r\nimport { Container } from \"../../core/Container\";\r\nimport { List, IListEvents } from \"../../core/utils/List\";\r\nimport { Axis } from \"../axes/Axis\";\r\nimport { DateAxis } from \"../axes/DateAxis\";\r\nimport { Optional } from \"../../core/utils/Type\";\r\nimport { AxisRenderer } from \"../axes/AxisRenderer\";\r\nimport { AxisRendererX } from \"../axes/AxisRendererX\";\r\nimport { AxisRendererY } from \"../axes/AxisRendererY\";\r\nimport { CategoryAxis } from \"../axes/CategoryAxis\";\r\nimport { XYSeries } from \"../series/XYSeries\";\r\nimport { Scrollbar, IScrollbarEvents } from \"../../core/elements/Scrollbar\";\r\nimport { IRange } from \"../../core/defs/IRange\";\r\nimport { XYCursor, IXYCursorEvents } from \"../cursors/XYCursor\";\r\nimport { IPoint } from \"../../core/defs/IPoint\";\r\nimport { IDisposer, Disposer } from \"../../core/utils/Disposer\";\r\nimport { Button } from \"../../core/elements/Button\";\r\nimport { ZoomOutButton } from \"../../core/elements/ZoomOutButton\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport { Ordering } from \"../../core/utils/Order\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { XYChartScrollbar } from \"../elements/XYChartScrollbar\";\r\n\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $array from \"../../core/utils/Array\";\r\n\r\nimport { defaultRules, ResponsiveBreakpoints } from \"../../core/utils/Responsive\";\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[XYChart]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class XYChartDataItem extends SerialChartDataItem {\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: XYChart;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"XYChartDataItem\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[XYChart]].\r\n */\r\nexport interface IXYChartDataFields extends ISerialChartDataFields { }\r\n\r\n/**\r\n * Defines properties for [[XYChart]].\r\n */\r\nexport interface IXYChartProperties extends ISerialChartProperties {\r\n\r\n\t/**\r\n\t * A container that is used as a maske for bullets so that they can't\r\n\t * \"spill\" outside of the plot area.\r\n\t */\r\n\tmaskBullets?: boolean;\r\n\r\n\t/**\r\n\t * Specifies what should chart do if when mouse wheel is rotated.\r\n\t *\r\n\t * @default \"none\"\r\n\t */\r\n\tmouseWheelBehavior?: \"zoomX\" | \"zoomY\" | \"zoomXY\" | \"panX\" | \"panY\" | \"panXY\" | \"none\";\r\n\r\n\t/**\r\n\t * Specifies if chart should arrange series tooltips so that they won't\r\n\t * overlap.\r\n\t *\r\n\t * @default true\r\n\t */\r\n\tarrangeTooltips?: boolean;\r\n}\r\n\r\n/**\r\n * Defines events for [[XYChart]].\r\n */\r\nexport interface IXYChartEvents extends ISerialChartEvents { }\r\n\r\n/**\r\n * Defines adapters for [[XYChart]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IXYChartAdapters extends ISerialChartAdapters, IXYChartProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates an XY chart, and any derivative chart, like Serial, Date-based, etc.\r\n *\r\n * Basically this is a chart type, that is used to display any chart\r\n * information in a square plot area.\r\n *\r\n * The horizontal and vertical scale is determined by the type of Axis.\r\n *\r\n * The plot types are determined by type of Series.\r\n *\r\n * ```TypeScript\r\n * // Includes\r\n * import * as am4core from \"@amcharts/amcharts4/core\";\r\n * import * as am4charts from \"@amcharts/amcharts4/charts\";\r\n *\r\n * // Create chart\r\n * let chart = am4core.create(\"chartdiv\", am4charts.XYChart);\r\n *\r\n * // Add Data\r\n * chart.data = [{\r\n * \"country\": \"USA\",\r\n * \"visits\": 3025\r\n * }, {\r\n * \t\"country\": \"China\",\r\n * \t\"visits\": 1882\r\n * }, {\r\n * \t\"country\": \"Japan\",\r\n * \t\"visits\": 1809\r\n * }];\r\n *\r\n * // Add category axis\r\n * let categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\r\n * categoryAxis.dataFields.category = \"country\";\r\n *\r\n * // Add value axis\r\n * let valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\r\n *\r\n * // Add series\r\n * let series = chart.series.push(new am4charts.ColumnSeries());\r\n * series.name = \"Web Traffic\";\r\n * series.dataFields.categoryX = \"country\";\r\n * series.dataFields.valueY = \"visits\";\r\n * ```\r\n * ```JavaScript\r\n * // Create chart\r\n * var chart = am4core.create(\"chartdiv\", am4charts.XYChart);\r\n *\r\n * // The following would work as well:\r\n * // var chart = am4core.create(\"chartdiv\", \"XYChart\");\r\n *\r\n * // Add Data\r\n * chart.data = [{\r\n * \"country\": \"USA\",\r\n * \"visits\": 3025\r\n * }, {\r\n * \t\"country\": \"China\",\r\n * \t\"visits\": 1882\r\n * }, {\r\n * \t\"country\": \"Japan\",\r\n * \t\"visits\": 1809\r\n * }];\r\n *\r\n * // Add category axis\r\n * var categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\r\n * categoryAxis.dataFields.category = \"country\";\r\n *\r\n * // Add value axis\r\n * var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\r\n *\r\n * // Add series\r\n * var series = chart.series.push(new am4charts.ColumnSeries());\r\n * series.name = \"Web Traffic\";\r\n * series.dataFields.categoryX = \"country\";\r\n * series.dataFields.valueY = \"visits\";\r\n * ```\r\n * ```JSON\r\n * var chart = am4core.createFromConfig({\r\n *\r\n * \t// Category axis\r\n * \t\"xAxes\": [{\r\n * \t\t\"type\": \"CategoryAxis\",\r\n * \t\t\"dataFields\": {\r\n * \t\t\t\"category\": \"country\"\r\n * \t\t}\r\n * \t}],\r\n *\r\n * \t// Value axis\r\n * \t\"yAxes\": [{\r\n * \t\t\"type\": \"ValueAxis\"\r\n * \t}],\r\n *\r\n * \t// Series\r\n * \t\"series\": [{\r\n * \t\t\"type\": \"ColumnSeries\",\r\n * \t\t\"dataFields\": {\r\n * \t\t\t\"categoryX\": \"country\",\r\n * \t\t\t\"valueY\": \"visits\"\r\n * \t\t},\r\n * \t\t\"name\": \"Web Traffic\"\r\n * \t}],\r\n *\r\n * \t// Cursor\r\n * \t\"cursor\": {},\r\n *\r\n * \t// Data\r\n * \t\"data\": [{\r\n * \t\t\"country\": \"USA\",\r\n * \t\t\"visits\": 3025\r\n * \t}, {\r\n * \t\t\"country\": \"China\",\r\n * \t\t\"visits\": 1882\r\n * \t}, {\r\n * \t\t\"country\": \"Japan\",\r\n * \t\t\"visits\": 1809\r\n * \t}]\r\n *\r\n * }, \"chartdiv\", \"XYChart\");\r\n * ```\r\n *\r\n *\r\n * @see {@link IXYChartEvents} for a list of available Events\r\n * @see {@link IXYChartAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/xy-chart/} for documentation\r\n * @important\r\n */\r\nexport class XYChart extends SerialChart {\r\n\r\n\t/**\r\n\t * Defines available data fields.\r\n\t */\r\n\tpublic _dataFields: IXYChartDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IXYChartProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IXYChartAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IXYChartEvents;\r\n\r\n\t/**\r\n\t * Defines a type of series that this chart uses.\r\n\t */\r\n\tpublic _seriesType: XYSeries;\r\n\r\n\t/**\r\n\t * A list of horizontal axes.\r\n\t */\r\n\tprotected _xAxes: List<Axis<this[\"_xAxisRendererType\"]>>;\r\n\r\n\t/**\r\n\t * A list of vertical axes.\r\n\t */\r\n\tprotected _yAxes: List<Axis<this[\"_yAxisRendererType\"]>>;\r\n\r\n\t/**\r\n\t * A container that holds vertical axes and plot area.\r\n\t *\r\n\t * @type {Container}\r\n\t */\r\n\tpublic yAxesAndPlotContainer: Container\r\n\r\n\t/**\r\n\t * A container that holds top axes.\r\n\t *\r\n\t * @type {Container}\r\n\t */\r\n\tpublic topAxesContainer: Container;\r\n\r\n\t/**\r\n\t * A container that holds bottom axes.\r\n\t *\r\n\t * @type {Container}\r\n\t */\r\n\tpublic bottomAxesContainer: Container;\r\n\r\n\t/**\r\n\t * A container that holds left axes.\r\n\t *\r\n\t * @type {Container}\r\n\t */\r\n\tpublic leftAxesContainer: Container;\r\n\r\n\t/**\r\n\t * A container that holds right axes.\r\n\t *\r\n\t * @type {Container}\r\n\t */\r\n\tpublic rightAxesContainer: Container;\r\n\r\n\t/**\r\n\t * A container for plot area.\r\n\t *\r\n\t * @type {Container}\r\n\t */\r\n\tpublic plotContainer: Container;\r\n\r\n\t/**\r\n\t * A reference to horizontal [[Scrollbar]].\r\n\t */\r\n\tprotected _scrollbarX: Scrollbar;\r\n\r\n\t/**\r\n\t * A reference to vertical [[Scrollbar]].\r\n\t */\r\n\tprotected _scrollbarY: Scrollbar;\r\n\r\n\t/**\r\n\t * A reference to chart's cursor.\r\n\t */\r\n\tpublic _cursor: XYCursor;\r\n\r\n\t/**\r\n\t * A container that chart's cursor is placed in.\r\n\t */\r\n\tprotected _cursorContainer: Container;\r\n\r\n\t/**\r\n\t * Defines the type of horizontal axis rederer.\r\n\t */\r\n\tprotected _axisRendererX: typeof AxisRendererX = AxisRendererX;\r\n\r\n\t/**\r\n\t * Defines the type of vertical axis rederer.\r\n\t */\r\n\tprotected _axisRendererY: typeof AxisRendererY = AxisRendererY;\r\n\r\n\t/**\r\n\t * Defines the type horizontal axis renderer.\r\n\t */\r\n\tpublic _xAxisRendererType: AxisRendererX;\r\n\r\n\t/**\r\n\t * Defines the type of vertical axis renderer.\r\n\t */\r\n\tpublic _yAxisRendererType: AxisRendererY;\r\n\r\n\t/**\r\n\t * A button which is used to zoom out the chart.\r\n\t */\r\n\tprotected _zoomOutButton: Button;\r\n\r\n\t/**\r\n\t * An element that is used as a mask to contain bullets from spilling out of\r\n\t * the plot area.\r\n\t */\r\n\tprotected _bulletMask: Sprite;\r\n\r\n\r\n\tprotected _panStartXRange: IRange;\r\n\r\n\tprotected _panStartYRange: IRange;\r\n\r\n\tprotected _panEndXRange: IRange;\r\n\r\n\tprotected _panEndYRange: IRange;\r\n\r\n\tprotected _mouseWheelDisposer: IDisposer;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic _seriesPoints: { point: IPoint, series: XYSeries }[] = [];\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\r\n\t\tthis.className = \"XYChart\";\r\n\r\n\t\t// Set defaults\r\n\t\t//this.margin(10, 10, 10, 10);\r\n\t\tthis.maskBullets = true;\r\n\t\tthis.arrangeTooltips = true;\r\n\r\n\t\t// Create main chart container\r\n\t\tlet chartContainer = this.chartContainer;\r\n\t\tchartContainer.layout = \"vertical\";\r\n\t\tthis.padding(15, 15, 15, 15);\r\n\r\n\t\t// Create top axes container\r\n\t\tlet topAxesCont = chartContainer.createChild(Container);\r\n\t\ttopAxesCont.shouldClone = false;\r\n\t\ttopAxesCont.layout = \"vertical\";\r\n\t\ttopAxesCont.width = percent(100);\r\n\t\ttopAxesCont.zIndex = 1;\r\n\t\tthis.topAxesContainer = topAxesCont;\r\n\r\n\t\t// Create vertical axes and plot area container\r\n\t\t// Plot area and vertical axes share the whole width of the chart,\r\n\t\t// so we need to put then into a separate container so that layouting\r\n\t\t// engine takes care of the positioning\r\n\t\tlet yAxesAndPlotCont = chartContainer.createChild(Container);\r\n\t\tyAxesAndPlotCont.shouldClone = false;\r\n\t\tyAxesAndPlotCont.layout = \"horizontal\";\r\n\t\tyAxesAndPlotCont.width = percent(100);\r\n\t\tyAxesAndPlotCont.height = percent(100);\r\n\t\tyAxesAndPlotCont.zIndex = 0;\r\n\t\tthis.yAxesAndPlotContainer = yAxesAndPlotCont;\r\n\r\n\t\t// Create a container for bottom axes\r\n\t\tlet bottomAxesCont = chartContainer.createChild(Container);\r\n\t\tbottomAxesCont.shouldClone = false;\r\n\t\tbottomAxesCont.width = percent(100);\r\n\t\tbottomAxesCont.layout = \"vertical\";\r\n\t\tbottomAxesCont.zIndex = 1;\r\n\t\tthis.bottomAxesContainer = bottomAxesCont;\r\n\r\n\t\t// Create a container for left-side axes\r\n\t\tlet leftAxesCont = yAxesAndPlotCont.createChild(Container);\r\n\t\tleftAxesCont.shouldClone = false;\r\n\t\tleftAxesCont.layout = \"horizontal\";\r\n\t\tleftAxesCont.height = percent(100);\r\n\t\tleftAxesCont.contentAlign = \"right\";\r\n\t\tleftAxesCont.events.on(\"transformed\", this.updateXAxesMargins, this, false);\r\n\t\tleftAxesCont.zIndex = 1;\r\n\t\tthis.leftAxesContainer = leftAxesCont;\r\n\r\n\t\t// Create a container for plot area\r\n\t\tlet plotCont = yAxesAndPlotCont.createChild(Container);\r\n\t\tplotCont.shouldClone = false;\r\n\t\tplotCont.height = percent(100);\r\n\t\tplotCont.width = percent(100);\r\n\t\t// Create transparend background for plot container so that hover works\r\n\t\t// on all of it\r\n\t\tplotCont.background.fillOpacity = 0;\r\n\t\tthis.plotContainer = plotCont;\r\n\r\n\t\t// must go below plot container\r\n\t\tthis.mouseWheelBehavior = \"none\";\r\n\r\n\t\tthis._cursorContainer = plotCont;\r\n\r\n\t\t// Create a container for right-side axes\r\n\t\tlet rightAxesCont = yAxesAndPlotCont.createChild(Container);\r\n\t\trightAxesCont.shouldClone = false;\r\n\t\trightAxesCont.layout = \"horizontal\";\r\n\t\trightAxesCont.height = percent(100);\r\n\t\trightAxesCont.zIndex = 1;\r\n\t\trightAxesCont.events.on(\"transformed\", this.updateXAxesMargins, this, false);\r\n\t\tthis.rightAxesContainer = rightAxesCont;\r\n\r\n\t\tthis.seriesContainer.parent = plotCont;\r\n\t\tthis.bulletsContainer.parent = plotCont;\r\n\r\n\t\tlet zoomOutButton = plotCont.createChild(ZoomOutButton);\r\n\t\tzoomOutButton.shouldClone = false;\r\n\t\tzoomOutButton.align = \"right\";\r\n\t\tzoomOutButton.valign = \"top\";\r\n\t\tzoomOutButton.zIndex = Number.MAX_SAFE_INTEGER;\r\n\t\tzoomOutButton.marginTop = 5;\r\n\t\tzoomOutButton.marginRight = 5;\r\n\r\n\t\tzoomOutButton.hide(0);\r\n\t\tthis.zoomOutButton = zoomOutButton;\r\n\r\n\t\tthis._bulletMask = this.plotContainer;\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\r\n\t\tsuper.applyInternalDefaults();\r\n\t\tthis.zoomOutButton.exportable = false;\r\n\t\t// Add a default screen reader title for accessibility\r\n\t\t// This will be overridden in screen reader if there are any `titles` set\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"X/Y chart\");\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Draws the chart.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic draw(): void {\r\n\t\tsuper.draw();\r\n\r\n\t\tthis.seriesContainer.toFront();\r\n\t\tthis.bulletsContainer.toFront();\r\n\r\n\t\tif (this.maskBullets) {\r\n\t\t\tthis.bulletsContainer.mask = this._bulletMask;\r\n\t\t}\r\n\r\n\t\tthis.updateSeriesLegend();\r\n\t}\r\n\r\n\t/**\r\n\t * Triggers a redrawing of all chart's series.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic updatePlotElements(): void {\r\n\t\t$iter.each(this.series.iterator(), (series) => {\r\n\t\t\tseries.invalidate();\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Triggers data (re)validation which in turn can cause a redraw of the\r\n\t * whole chart or just aprticular series / elements.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateData(): void {\r\n\r\n\t\t// tell axes that data changed\r\n\t\tif (this._parseDataFrom == 0) {\r\n\t\t\t$iter.each(this.xAxes.iterator(), (axis) => {\r\n\t\t\t\taxis.dataChangeUpdate();\r\n\t\t\t});\r\n\r\n\t\t\t$iter.each(this.yAxes.iterator(), (axis) => {\r\n\t\t\t\taxis.dataChangeUpdate();\r\n\t\t\t});\r\n\r\n\t\t\t$iter.each(thi