├── .bowerrc
├── .editorconfig
├── .ember-cli
├── .gitignore
├── .jshintrc
├── .npmignore
├── .travis.yml
├── .watchmanconfig
├── LICENSE.md
├── README.md
├── addon
├── .gitkeep
└── components
│ └── ember-anychart.js
├── app
├── .gitkeep
├── components
│ └── ember-anychart.js
└── templates
│ └── components
│ └── ember-anychart.hbs
├── blueprints
└── ember-anychart
│ └── index.js
├── bower.json
├── config
├── ember-try.js
└── environment.js
├── ember-cli-build.js
├── index.js
├── package-lock.json
├── package.json
├── testem.js
├── tests
├── .jshintrc
├── dummy
│ ├── app
│ │ ├── app.js
│ │ ├── components
│ │ │ └── .gitkeep
│ │ ├── controllers
│ │ │ ├── .gitkeep
│ │ │ └── chart-with-dynamic-settings.js
│ │ ├── helpers
│ │ │ └── .gitkeep
│ │ ├── index.html
│ │ ├── resolver.js
│ │ ├── router.js
│ │ ├── routes
│ │ │ ├── .gitkeep
│ │ │ ├── chart-with-custom-settings.js
│ │ │ ├── chart-with-dynamic-settings.js
│ │ │ ├── data-streaming.js
│ │ │ ├── geographical-colored-map.js
│ │ │ ├── index.js
│ │ │ ├── simple-chart.js
│ │ │ ├── simple-dashboard.js
│ │ │ ├── simple-gantt-chart.js
│ │ │ └── simple-stock-chart.js
│ │ ├── styles
│ │ │ └── app.css
│ │ └── templates
│ │ │ ├── application.hbs
│ │ │ ├── chart-with-custom-settings.hbs
│ │ │ ├── chart-with-dynamic-settings.hbs
│ │ │ ├── components
│ │ │ └── .gitkeep
│ │ │ ├── data-streaming.hbs
│ │ │ ├── geographical-colored-map.hbs
│ │ │ ├── index.hbs
│ │ │ ├── simple-chart.hbs
│ │ │ ├── simple-dashboard.hbs
│ │ │ ├── simple-gantt-chart.hbs
│ │ │ └── simple-stock-chart.hbs
│ ├── config
│ │ └── environment.js
│ └── public
│ │ ├── crossdomain.xml
│ │ ├── robots.txt
│ │ ├── stock-data.json
│ │ └── united_states_of_america.topo.json
├── helpers
│ ├── destroy-app.js
│ ├── module-for-acceptance.js
│ ├── resolver.js
│ └── start-app.js
├── index.html
├── integration
│ └── .gitkeep
├── test-helper.js
└── unit
│ └── .gitkeep
└── vendor
├── .gitkeep
└── anychart
├── fonts.css
└── fonts
├── anychart.eot
├── anychart.svg
├── anychart.ttf
└── anychart.woff
/.bowerrc:
--------------------------------------------------------------------------------
1 | {
2 | "directory": "bower_components",
3 | "analytics": false
4 | }
5 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | # EditorConfig helps developers define and maintain consistent
2 | # coding styles between different editors and IDEs
3 | # editorconfig.org
4 |
5 | root = true
6 |
7 |
8 | [*]
9 | end_of_line = lf
10 | charset = utf-8
11 | trim_trailing_whitespace = true
12 | insert_final_newline = true
13 | indent_style = space
14 | indent_size = 2
15 |
16 | [*.hbs]
17 | insert_final_newline = false
18 |
19 | [*.{diff,md}]
20 | trim_trailing_whitespace = false
21 |
--------------------------------------------------------------------------------
/.ember-cli:
--------------------------------------------------------------------------------
1 | {
2 | /**
3 | Ember CLI sends analytics information by default. The data is completely
4 | anonymous, but there are times when you might want to disable this behavior.
5 |
6 | Setting `disableAnalytics` to true will prevent any data from being sent.
7 | */
8 | "disableAnalytics": false
9 | }
10 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/ignore-files/ for more about ignoring files.
2 |
3 | # compiled output
4 | /dist
5 | /tmp
6 |
7 | # dependencies
8 | /node_modules
9 | /bower_components
10 |
11 | # misc
12 | /.sass-cache
13 | /connect.lock
14 | /coverage/*
15 | /libpeerconnection.log
16 | npm-debug.log*
17 | testem.log
18 |
19 | .idea
20 |
--------------------------------------------------------------------------------
/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "predef": [
3 | "document",
4 | "window",
5 | "-Promise",
6 | "anychart"
7 | ],
8 | "browser": true,
9 | "boss": true,
10 | "curly": true,
11 | "debug": false,
12 | "devel": true,
13 | "eqeqeq": true,
14 | "evil": true,
15 | "forin": false,
16 | "immed": false,
17 | "laxbreak": false,
18 | "newcap": true,
19 | "noarg": true,
20 | "noempty": false,
21 | "nonew": false,
22 | "nomen": false,
23 | "onevar": false,
24 | "plusplus": false,
25 | "regexp": false,
26 | "undef": true,
27 | "sub": true,
28 | "strict": false,
29 | "white": false,
30 | "eqnull": true,
31 | "esversion": 6,
32 | "unused": true
33 | }
34 |
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | /bower_components
2 | /config/ember-try.js
3 | /dist
4 | /tests
5 | /tmp
6 | /.idea
7 | **/.gitkeep
8 | .bowerrc
9 | .editorconfig
10 | .ember-cli
11 | .gitignore
12 | .jshintrc
13 | .watchmanconfig
14 | .travis.yml
15 | bower.json
16 | ember-cli-build.js
17 | testem.js
18 | todo.txt
19 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | ---
2 | language: node_js
3 | node_js:
4 | - "4"
5 |
6 | sudo: false
7 |
8 | cache:
9 | directories:
10 | - $HOME/.npm
11 | - $HOME/.cache # includes bowers cache
12 |
13 | env:
14 | # we recommend testing LTS's and latest stable release (bonus points to beta/canary)
15 | - EMBER_TRY_SCENARIO=ember-lts-2.4
16 | - EMBER_TRY_SCENARIO=ember-lts-2.8
17 | - EMBER_TRY_SCENARIO=ember-release
18 | - EMBER_TRY_SCENARIO=ember-beta
19 | - EMBER_TRY_SCENARIO=ember-canary
20 |
21 | matrix:
22 | fast_finish: true
23 | allow_failures:
24 | - env: EMBER_TRY_SCENARIO=ember-canary
25 |
26 | before_install:
27 | - npm config set spin false
28 | - npm install -g bower
29 | - bower --version
30 | - npm install phantomjs-prebuilt
31 | - node_modules/phantomjs-prebuilt/bin/phantomjs --version
32 |
33 | install:
34 | - npm install
35 | - bower install
36 |
37 | script:
38 | # Usually, it's ok to finish the test scenario without reverting
39 | # to the addon's original dependency state, skipping "cleanup".
40 | - ember try:one $EMBER_TRY_SCENARIO test --skip-cleanup
41 |
--------------------------------------------------------------------------------
/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {
2 | "ignore_dirs": ["tmp", "dist"]
3 | }
4 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "{}"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright {yyyy} {name of copyright owner}
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
202 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | [ ](https://www.anychart.com)
2 |
3 | Ember Plugin for AnyChart
4 | =========================
5 |
6 | AnyChart Component for Ember CLI provides an easy way to use [AnyChart JavaScript Charts](https://www.anychart.com) with [Ember Framework](http://emberjs.com/).
7 |
8 | ## Download and install
9 |
10 | ### Install dependencies
11 |
12 | First, you need to download and install [NodeJS](https://nodejs.org/en/) if you don’t have it installed already.
13 |
14 | To use the **ember-anychart** plugin, you should also have [Bower](https://bower.io/) and [Ember CLI](https://ember-cli.com/) installed.
15 |
16 | * `npm install -g bower`
17 | * `npm install -g ember-cli`
18 |
19 | ### Install plugin globally
20 |
21 | You can install **ember-anychart** plugin using **npm** or **yarn** package managers:
22 | * `npm install -g ember-anychart`
23 | * `yarn global add ember-anychart`
24 |
25 | ### Install plugin into a project
26 |
27 | To install **ember-anychart** plugin into an ember project, navigate to project directory and install the package:
28 |
29 | * `ember install --save ember-anychart`
30 | * `npm install --save ember-anychart`
31 | * `yarn add ember-anychart`
32 |
33 | If you installed plugin via **npm** or **yarn** then you should complete installation by generation plugin blueprint
34 | * `ember generate ember-anychart`
35 |
36 | ## Usage
37 |
38 | Use the following custom element in a Handlebars template file:
39 |
40 | ```handlebars
41 | // Create a simple chart using attributes
42 | {{ember-anychart type="pie" data=someData title="My simple chart"}}
43 |
44 | // Create a chart using chart instance
45 | {{ember-anychart instance=model.chart}}
46 |
47 | // Create a dashboard using a stage instance
48 | {{ember-anychart instance=model.stage}}
49 |
50 | // Also you can set id and class of a container where chart is placed
51 | {{ember-anychart instance=model.chart id="chart-container" class="custom-styled-container"}}
52 | ```
53 |
54 | ### Component attributes
55 |
56 | | Attribute | Type | Description | Required |
57 | | :------------- |:-------------:| :----| :---- |
58 | | **instance** | Object | A chart or a stage instance. If you use this parameter, then *type* attribute is ignored. | **Required** (if *type* is not defined) |
59 | | **type** | String | Chart type. Use this to create a simple chart. This parameter is ignored when an *instance* is defined. | **Required** (if *instance* is not defined) |
60 | | **afterDraw** | Function | Chart after draw callback function. This parameter is ignored when 'instance' param is defined and it is a stage instance. | optional |
61 | | A chart or stage settings | | You can use any chart or stage settings as an attribute, like *data*, *title*, *label*, *legend* and so on. | optional |
62 |
63 | ## Examples
64 |
65 | Please see a sample applications in the *ember-anychart/tests/dummy/* folder.
66 |
67 | ### How to run a sample application
68 |
69 | You should have NodeJs, Ember, and Bower installed. See [Download and install](#download-and-install).
70 |
71 | Clone and install:
72 | ```
73 | git clone https://github.com/AnyChart/AnyChart-Ember
74 | cd AnyChart-Ember
75 | npm install
76 | bower install
77 | ember server
78 | ```
79 |
80 | Then open browser at *http://localhost:4200*
81 |
82 | ### Sample files
83 |
84 | | Example | Files | Description |
85 | | :--- |:---| :----|
86 | |**Simple chart**|*ember-anychart/tests/dummy/app/routes/simple-chart.js* *ember-anychart/tests/dummy/app/templates/simple-chart.hbs*|Shows how to create a simple Line Chart by creating chart instance and passing it to *instance* attribute of the component.|
87 | |**Chart with custom settings**|*ember-anychart/tests/dummy/app/routes/chart-with-custom-settings.js* *ember-anychart/tests/dummy/app/templates/chart-with-custom-settings.hbs*|Shows a simple Pie Chart with *type*, *data* and *title* attributes. Also shows how to use *afterDraw* callback.|
88 | |**Simple dashboard**|*ember-anychart/tests/dummy/app/routes/simple-dashboard.js* *ember-anychart/tests/dummy/app/templates/simple-dashboard.hbs*|Dashboard with stage instance set to *instance* attribute.|
89 | |**Chart with dynamic settings**|*ember-anychart/tests/dummy/app/routes/chart-with-dynamic-settings.js* *ember-anychart/tests/dummy/app/templates/chart-with-dynamic-settings.hbs* *ember-anychart/tests/dummy/app/controllers/chart-with-dynamic-settings.js*|Dynamic change of chart palette setting with the help of ember controller action.|
90 | |**Data streaming**|*ember-anychart/tests/dummy/app/routes/data-streaming.js* *ember-anychart/tests/dummy/app/templates/data-streaming.hbs*|Dynamic change of chart data.|
91 | |**Simple stock chart**|*ember-anychart/tests/dummy/app/routes/simple-stock-chart.js* *ember-anychart/tests/dummy/app/templates/simple-stock-chart.hbs* *ember-anychart/tests/dummy/public/stock-data.json*|A simple Stock Chart. Shows how you can load a big data set from a JSON file.|
92 | |**Geographical colored map**|*ember-anychart/tests/dummy/app/routes/geographical-colored-map.js* *ember-anychart/tests/dummy/app/templates/geographical-colored-map.hbs* *ember-anychart/tests/dummy/public/united_states_of_america.topo.json*|Colored Geographical Map with geo data loaded from a file.|
93 | |**Simple gantt chart** |*ember-anychart/tests/dummy/app/routes/simple-gantt-chart.js* *ember-anychart/tests/dummy/app/templates/simple-gantt-chart.hbs*|Simple Gantt Chart.|
94 |
95 | ## Versions
96 |
97 | * Code in the *v1.1.1* branch works with Ember version 2.10
98 | * Code in the *master* branch works with Ember version 2.14 and higher
99 |
100 | ## Contacts
101 |
102 | * Web: [www.anychart.com](www.anychart.com)
103 | * Email: [contact@anychart.com](mailto:contact@anychart.com)
104 | * Twitter: [anychart](https://twitter.com/anychart)
105 | * Facebook: [AnyCharts](https://www.facebook.com/AnyCharts)
106 | * LinkedIn: [anychart](https://www.linkedin.com/company/anychart)
107 |
108 | ## Links
109 |
110 | * [AnyChart Website](https://www.anychart.com)
111 | * [Download AnyChart](https://www.anychart.com/download/)
112 | * [AnyChart Licensing](https://www.anychart.com/buy/)
113 | * [AnyChart Support](https://www.anychart.com/support/)
114 | * [Report Issues](https://github.com/AnyChart/AnyChart-Ember/issues)
115 | * [AnyChart Playground](https://playground.anychart.com)
116 | * [AnyChart Documentation](https://docs.anychart.com)
117 | * [AnyChart API Reference](https://api.anychart.com)
118 | * [AnyChart Sample Solutions](https://www.anychart.com/solutions/)
119 | * [AnyChart Integrations](https://www.anychart.com/integrations/)
120 |
121 | ## License
122 |
123 | [© AnyChart.com - JavaScript charts](https://www.anychart.com).
124 | [](https://github.com/igrigorik/ga-beacon)
125 |
--------------------------------------------------------------------------------
/addon/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AnyChart/AnyChart-Ember/4d0c17e2508e25b21dd28f1dd0eef03e9c600b2b/addon/.gitkeep
--------------------------------------------------------------------------------
/addon/components/ember-anychart.js:
--------------------------------------------------------------------------------
1 | import Ember from "ember";
2 |
3 | export default Ember.Component.extend({
4 | classNames: ["ember-anychart"],
5 |
6 | // Instance of chart or stage object
7 | instance: undefined,
8 |
9 | didReceiveAttrs() {
10 | this._super(...arguments);
11 |
12 | let attributes = this.get('attrs');
13 |
14 | if (!("instance" in attributes)) {
15 | let acType = this.get("type") || "line";
16 | this.set("instance", anychart[acType]());
17 | }
18 |
19 | let instance = this.get("instance");
20 | let attr;
21 | for (attr in attributes) {
22 | let value = attributes[attr]["value"];
23 | if (typeof instance[attr] === "function") {
24 | instance[attr](value);
25 | }
26 | }
27 | },
28 |
29 | didInsertElement() {
30 | this._super(...arguments);
31 |
32 | Ember.run.scheduleOnce('afterRender', this, '_renderChart');
33 | },
34 |
35 | _renderChart(){
36 | let instance = this.get("instance");
37 | if (typeof instance === "object") {
38 | instance['container'](this.elementId);
39 | // If instance is a chart
40 | if (typeof instance['draw'] === "function") {
41 | instance['draw']();
42 |
43 | // after draw callback processing
44 | let afterDraw = this.get("afterDraw");
45 | if (typeof afterDraw === "function") {
46 | instance['listenOnce']("chartdraw", function() {
47 | instance.animation(false);
48 | afterDraw(instance);
49 | });
50 | }
51 | }
52 | }
53 | }
54 | });
55 |
--------------------------------------------------------------------------------
/app/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AnyChart/AnyChart-Ember/4d0c17e2508e25b21dd28f1dd0eef03e9c600b2b/app/.gitkeep
--------------------------------------------------------------------------------
/app/components/ember-anychart.js:
--------------------------------------------------------------------------------
1 | import EmberAnyChartComponent from 'ember-anychart/components/ember-anychart';
2 |
3 | export default EmberAnyChartComponent;
4 |
--------------------------------------------------------------------------------
/app/templates/components/ember-anychart.hbs:
--------------------------------------------------------------------------------
1 | {{yield}}
2 |
--------------------------------------------------------------------------------
/blueprints/ember-anychart/index.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | normalizeEntityName: function() {
3 | },
4 |
5 | afterInstall: function() {
6 | return this.addBowerPackagesToProject([{name: 'anychart', target: '~8'}, {name: 'proj4', target: '~2'}]);
7 | }
8 | };
9 |
--------------------------------------------------------------------------------
/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ember-anychart",
3 | "description": "Ember component for the AnyChart JavaScript charting library.",
4 | "authors": [
5 | "AnyChart"
6 | ],
7 | "license": "Apache-2.0",
8 | "homepage": "https://github.com/AnyChart/AnyChart-Ember",
9 | "ignore": [
10 | "**/.*",
11 | "node_modules",
12 | "bower_components",
13 | "test",
14 | "tests",
15 | "yarn.lock"
16 | ],
17 | "dependencies": {
18 | "ember": "~2.14.0",
19 | "ember-cli-shims": "0.1.3",
20 | "anychart": "~8",
21 | "proj4": "~2"
22 | },
23 | "keywords": [
24 | "anychart",
25 | "anystock",
26 | "anygantt",
27 | "anymap",
28 | "charts",
29 | "javascript charts",
30 | "ajax charts",
31 | "plots",
32 | "line charts",
33 | "bar charts",
34 | "pie charts",
35 | "javascript plots",
36 | "ajax plots",
37 | "javascript",
38 | "react",
39 | "SVG",
40 | "HTML5",
41 | "framework",
42 | "VML"
43 | ]
44 | }
45 |
--------------------------------------------------------------------------------
/config/ember-try.js:
--------------------------------------------------------------------------------
1 | /*jshint node:true*/
2 | module.exports = {
3 | scenarios: [
4 | {
5 | name: 'ember-lts-2.4',
6 | bower: {
7 | dependencies: {
8 | 'ember': 'components/ember#lts-2-4'
9 | },
10 | resolutions: {
11 | 'ember': 'lts-2-4'
12 | }
13 | }
14 | },
15 | {
16 | name: 'ember-lts-2.8',
17 | bower: {
18 | dependencies: {
19 | 'ember': 'components/ember#lts-2-8'
20 | },
21 | resolutions: {
22 | 'ember': 'lts-2-8'
23 | }
24 | }
25 | },
26 | {
27 | name: 'ember-release',
28 | bower: {
29 | dependencies: {
30 | 'ember': 'components/ember#release'
31 | },
32 | resolutions: {
33 | 'ember': 'release'
34 | }
35 | }
36 | },
37 | {
38 | name: 'ember-beta',
39 | bower: {
40 | dependencies: {
41 | 'ember': 'components/ember#beta'
42 | },
43 | resolutions: {
44 | 'ember': 'beta'
45 | }
46 | }
47 | },
48 | {
49 | name: 'ember-canary',
50 | bower: {
51 | dependencies: {
52 | 'ember': 'components/ember#canary'
53 | },
54 | resolutions: {
55 | 'ember': 'canary'
56 | }
57 | }
58 | }
59 | ]
60 | };
61 |
--------------------------------------------------------------------------------
/config/environment.js:
--------------------------------------------------------------------------------
1 | /*jshint node:true*/
2 | 'use strict';
3 |
4 | module.exports = function(/* environment, appConfig */) {
5 | return { };
6 | };
7 |
--------------------------------------------------------------------------------
/ember-cli-build.js:
--------------------------------------------------------------------------------
1 | /*jshint node:true*/
2 | /* global require, module */
3 | var EmberAddon = require('ember-cli/lib/broccoli/ember-addon');
4 |
5 | module.exports = function(defaults) {
6 | var app = new EmberAddon(defaults);
7 |
8 | /*
9 | This build file specifies the options for the dummy test app of this
10 | addon, located in `/tests/dummy`
11 | This build file does *not* influence how the addon or the app using it
12 | behave. You most likely want to be modifying `./index.js` or app's build file
13 | */
14 | app.import('bower_components/proj4/dist/proj4.js');
15 |
16 | app.import('bower_components/anychart/dist/js/anychart-bundle.min.js');
17 | app.import('bower_components/anychart/dist/css/anychart-ui.min.css');
18 |
19 | app.import('vendor/anychart/fonts.css');
20 | app.import('vendor/anychart/fonts/anychart.eot', {destDir: '/assets/fonts'});
21 | app.import('vendor/anychart/fonts/anychart.svg', {destDir: '/assets/fonts'});
22 | app.import('vendor/anychart/fonts/anychart.ttf', {destDir: '/assets/fonts'});
23 | app.import('vendor/anychart/fonts/anychart.woff', {destDir: '/assets/fonts'});
24 |
25 | return app.toTree();
26 | };
27 |
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | /* jshint node: true */
2 | 'use strict';
3 |
4 | module.exports = {
5 | name: 'ember-anychart',
6 | included: function (app) {
7 | this._super.included(app);
8 |
9 | app.import('bower_components/proj4/dist/proj4.js');
10 |
11 | app.import('bower_components/anychart/dist/js/anychart-bundle.min.js');
12 | app.import('bower_components/anychart/dist/css/anychart-ui.min.css');
13 |
14 | app.import('vendor/anychart/fonts.css');
15 | app.import('vendor/anychart/fonts/anychart.eot', {destDir: '/assets/fonts'});
16 | app.import('vendor/anychart/fonts/anychart.svg', {destDir: '/assets/fonts'});
17 | app.import('vendor/anychart/fonts/anychart.ttf', {destDir: '/assets/fonts'});
18 | app.import('vendor/anychart/fonts/anychart.woff', {destDir: '/assets/fonts'});
19 | }
20 | };
21 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ember-anychart",
3 | "version": "1.4.1",
4 | "description": "Ember component for the AnyChart JavaScript charting library.",
5 | "keywords": [
6 | "addon",
7 | "ember-addon",
8 | "charts",
9 | "chart",
10 | "charting",
11 | "anychart",
12 | "anycharts",
13 | "graphs",
14 | "graph",
15 | "data",
16 | "dashboards",
17 | "dashboard",
18 | "visualizations",
19 | "wrapper"
20 | ],
21 | "license": "Apache-2.0",
22 | "author": "AnyChart",
23 | "directories": {
24 | "doc": "doc",
25 | "test": "tests"
26 | },
27 | "repository": "https://github.com/AnyChart/anychart-ember",
28 | "scripts": {
29 | "build": "ember build",
30 | "start": "ember server",
31 | "test": "ember try:each"
32 | },
33 | "dependencies": {
34 | "ember-cli-babel": "^6.12.0"
35 | },
36 | "devDependencies": {
37 | "broccoli-asset-rev": "^2.4.5",
38 | "ember-ajax": "^3.1.0",
39 | "ember-cli": "^3.0.2",
40 | "ember-cli-app-version": "^2.0.0",
41 | "ember-cli-dependency-checker": "^2.1.0",
42 | "ember-cli-htmlbars": "^1.0.10",
43 | "ember-cli-htmlbars-inline-precompile": "^1.0.2",
44 | "ember-cli-inject-live-reload": "^1.4.1",
45 | "ember-cli-jshint": "^2.0.1",
46 | "ember-cli-qunit": "^4.3.2",
47 | "ember-cli-release": "^0.2.9",
48 | "ember-cli-sri": "^2.1.0",
49 | "ember-cli-uglify": "^1.2.0",
50 | "ember-data": "^2.10.0",
51 | "ember-disable-prototype-extensions": "^1.1.0",
52 | "ember-load-initializers": "^1.0.0",
53 | "ember-resolver": "^4.5.5",
54 | "loader.js": "^4.0.10"
55 | },
56 | "engines": {
57 | "node": ">= 0.12.0"
58 | },
59 | "ember-addon": {
60 | "configPath": "tests/dummy/config"
61 | }
62 | }
63 |
--------------------------------------------------------------------------------
/testem.js:
--------------------------------------------------------------------------------
1 | /*jshint node:true*/
2 | module.exports = {
3 | "framework": "qunit",
4 | "test_page": "tests/index.html?hidepassed",
5 | "disable_watching": true,
6 | "launch_in_ci": [
7 | "PhantomJS"
8 | ],
9 | "launch_in_dev": [
10 | "PhantomJS",
11 | "Chrome"
12 | ]
13 | };
14 |
--------------------------------------------------------------------------------
/tests/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "predef": [
3 | "document",
4 | "window",
5 | "location",
6 | "setTimeout",
7 | "$",
8 | "-Promise",
9 | "define",
10 | "console",
11 | "visit",
12 | "exists",
13 | "fillIn",
14 | "click",
15 | "keyEvent",
16 | "triggerEvent",
17 | "find",
18 | "findWithAssert",
19 | "wait",
20 | "DS",
21 | "andThen",
22 | "currentURL",
23 | "currentPath",
24 | "currentRouteName",
25 | "anychart"
26 | ],
27 | "node": false,
28 | "browser": false,
29 | "boss": true,
30 | "curly": true,
31 | "debug": false,
32 | "devel": false,
33 | "eqeqeq": true,
34 | "evil": true,
35 | "forin": false,
36 | "immed": false,
37 | "laxbreak": false,
38 | "newcap": true,
39 | "noarg": true,
40 | "noempty": false,
41 | "nonew": false,
42 | "nomen": false,
43 | "onevar": false,
44 | "plusplus": false,
45 | "regexp": false,
46 | "undef": true,
47 | "sub": true,
48 | "strict": false,
49 | "white": false,
50 | "eqnull": true,
51 | "esversion": 6,
52 | "unused": true
53 | }
54 |
--------------------------------------------------------------------------------
/tests/dummy/app/app.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 | import Resolver from './resolver';
3 | import loadInitializers from 'ember-load-initializers';
4 | import config from './config/environment';
5 |
6 | let App;
7 |
8 | App = Ember.Application.extend({
9 | modulePrefix: config.modulePrefix,
10 | podModulePrefix: config.podModulePrefix,
11 | Resolver
12 | });
13 |
14 | loadInitializers(App, config.modulePrefix);
15 |
16 | export default App;
17 |
--------------------------------------------------------------------------------
/tests/dummy/app/components/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AnyChart/AnyChart-Ember/4d0c17e2508e25b21dd28f1dd0eef03e9c600b2b/tests/dummy/app/components/.gitkeep
--------------------------------------------------------------------------------
/tests/dummy/app/controllers/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AnyChart/AnyChart-Ember/4d0c17e2508e25b21dd28f1dd0eef03e9c600b2b/tests/dummy/app/controllers/.gitkeep
--------------------------------------------------------------------------------
/tests/dummy/app/controllers/chart-with-dynamic-settings.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 |
3 | let paletteOptions = [
4 | 'defaultPalette',
5 | 'blue',
6 | 'coffee',
7 | 'earth',
8 | 'glamour',
9 | 'monochrome',
10 | 'morning',
11 | 'pastel',
12 | 'provence',
13 | 'sea',
14 | 'turquoise',
15 | 'v6',
16 | ];
17 |
18 | export default Ember.Controller.extend({
19 | paletteOptions: paletteOptions,
20 | actions: {
21 | changePalette(palette) {
22 | this.model.chart.palette(anychart.palettes[palette]);
23 | }
24 | }
25 | });
26 |
--------------------------------------------------------------------------------
/tests/dummy/app/helpers/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AnyChart/AnyChart-Ember/4d0c17e2508e25b21dd28f1dd0eef03e9c600b2b/tests/dummy/app/helpers/.gitkeep
--------------------------------------------------------------------------------
/tests/dummy/app/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Ember plugin for AnyChart examples
7 |
8 |
9 |
10 | {{content-for "head"}}
11 |
12 |
13 |
14 |
15 | {{content-for "head-footer"}}
16 |
17 |
18 | {{content-for "body"}}
19 |
20 |
21 |
22 |
23 | {{content-for "body-footer"}}
24 |
25 |
26 |
--------------------------------------------------------------------------------
/tests/dummy/app/resolver.js:
--------------------------------------------------------------------------------
1 | import Resolver from 'ember-resolver';
2 |
3 | export default Resolver;
4 |
--------------------------------------------------------------------------------
/tests/dummy/app/router.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 | import config from './config/environment';
3 |
4 | const Router = Ember.Router.extend({
5 | location: config.locationType,
6 | rootURL: config.rootURL
7 | });
8 |
9 | Router.map(function() {
10 | this.route('simple-chart');
11 | this.route('chart-with-custom-settings');
12 | this.route('simple-dashboard');
13 | this.route('chart-with-dynamic-settings');
14 | this.route('data-streaming');
15 | this.route('simple-stock-chart');
16 | this.route('geographical-colored-map');
17 | this.route('simple-gantt-chart');
18 | });
19 |
20 | export default Router;
21 |
--------------------------------------------------------------------------------
/tests/dummy/app/routes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AnyChart/AnyChart-Ember/4d0c17e2508e25b21dd28f1dd0eef03e9c600b2b/tests/dummy/app/routes/.gitkeep
--------------------------------------------------------------------------------
/tests/dummy/app/routes/chart-with-custom-settings.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 |
3 | export default Ember.Route.extend({
4 | // Chart instance
5 | chart: undefined,
6 |
7 | model(){
8 | let self = this;
9 | return {
10 | data: [["Pen", 3], ["Pineapple", 9], ["Apple", 5], ["Pen", 3]],
11 | type: 'pie',
12 | title: "Chart title text",
13 |
14 | //After draw callback
15 | afterDraw: function(chart){
16 | self.chart = chart;
17 | let oldTitle = self.chart.title().text();
18 | self.chart.title(oldTitle + "!!!");
19 | }
20 | };
21 | }
22 | });
23 |
--------------------------------------------------------------------------------
/tests/dummy/app/routes/chart-with-dynamic-settings.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 |
3 | export default Ember.Route.extend({
4 | // chart instance
5 | chart: undefined,
6 |
7 | model() {
8 | // create data set on our data
9 | let dataSet = anychart.data.set([
10 | ['Nail polish', 6814, 3054, 4376, 4229],
11 | ['Eyebrow pencil', 7012, 5067, 8987, 3932],
12 | ['Pomade', 8814, 9054, 4376, 9256]
13 | ]);
14 |
15 | // map data for the first series, take x from the zero column and value from the first column of data set
16 | let seriesData_1 = dataSet.mapAs({x: [0], value: [1]});
17 |
18 | // map data for the second series, take x from the zero column and value from the second column of data set
19 | let seriesData_2 = dataSet.mapAs({x: [0], value: [2]});
20 |
21 | // map data for the third series, take x from the zero column and value from the third column of data set
22 | let seriesData_3 = dataSet.mapAs({x: [0], value: [3]});
23 |
24 | // map data for the fourth series, take x from the zero column and value from the fourth column of data set
25 | let seriesData_4 = dataSet.mapAs({x: [0], value: [4]});
26 |
27 | // create column chart
28 | this.chart = anychart.column();
29 |
30 | // turn on chart animation
31 | this.chart.animation(true);
32 |
33 | // set chart title text settings
34 | this.chart.title('Top 3 Products with Region Sales Data');
35 |
36 | this.chart.yAxis().labels().format("${%Value}");
37 |
38 | // set titles for Y-axis
39 | this.chart.yAxis().title('Revenue');
40 |
41 | // set up tooltip position and text formatter
42 | this.chart.tooltip().position('top').anchor('bottom').offsetX(0).offsetY(5).positionMode('point');
43 | this.chart.tooltip().format("{%SeriesName}: ${%Value}{groupsSeparator:\\,}");
44 |
45 | // turn on legend and tune it
46 | this.chart.legend().enabled(true).fontSize(13).padding([0, 0, 20, 0]);
47 |
48 | // interactivity settings
49 | this.chart.interactivity().hoverMode('single');
50 |
51 | // helper function to setup label settings for all series
52 | let setupSeries = function(series, name) {
53 | series.name(name);
54 | series.hovered().labels().enabled(false);
55 |
56 | let seriesLabels = series.labels();
57 | seriesLabels.enabled(true).position('top').anchor('bottom').format("${%Value}{groupsSeparator:\\,}");
58 | };
59 |
60 | // create first series with mapped data
61 | let series_1 = this.chart.column(seriesData_1);
62 | setupSeries(series_1, 'Florida');
63 |
64 | // create second series with mapped data
65 | let series_2 = this.chart.column(seriesData_2);
66 | setupSeries(series_2, 'Texas');
67 |
68 | // create third series with mapped data
69 | let series_3 = this.chart.column(seriesData_3);
70 | setupSeries(series_3, 'Arizona');
71 |
72 | // create fourth series with mapped data
73 | let series_4 = this.chart.column(seriesData_4);
74 | setupSeries(series_4, 'Nevada');
75 |
76 | // set up chart palette as 'defaultPalette'
77 | this.chart.palette(anychart.palettes.defaultPalette);
78 |
79 | return {chart: this.chart};
80 | }
81 | });
82 |
--------------------------------------------------------------------------------
/tests/dummy/app/routes/data-streaming.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 |
3 | export default Ember.Route.extend({
4 | chart: undefined,
5 | dataSet: undefined,
6 |
7 | beforeModel(){
8 | if (!this.chart) {
9 | // create line chart
10 | this.chart = anychart.line();
11 |
12 | // turn the legend on
13 | this.chart.legend().enabled(true).fontSize(13).padding([0, 0, 20, 0]);
14 |
15 | // Here we create initial data for dataSet
16 | let data = [];
17 | for (let i = 0; i < 50; i++) {
18 | data.push([
19 | this._getRandomInt(180, 350),
20 | this._getRandomInt(20, 150)
21 | ]);
22 | }
23 |
24 | // create data set on our data
25 | this.dataSet = anychart.data.set(data);
26 |
27 | // map data for the first series, takes value from the first column of data set
28 | let seriesData_1 = this.dataSet.mapAs({value: [0]});
29 |
30 | // create first series with mapped data
31 | let series_1 = this.chart.stepLine(seriesData_1);
32 | series_1.color('#ff0e09').name('Red');
33 | series_1.selected().markers().enabled(false);
34 |
35 | // map data for the second series, takes value from the second column of data set
36 | let seriesData_2 = this.dataSet.mapAs({value: [1]});
37 |
38 | // create second series with mapped data
39 | let series_2 = this.chart.splineArea(seriesData_2);
40 | series_2.fill('#00a0ff 0.4').name('Blue');
41 | series_2.selected().markers().enabled(false);
42 | }
43 | },
44 |
45 | model() {
46 | // Now we've got some new data
47 | let newData = [
48 | [
49 | this._getRandomInt(180, 350),
50 | this._getRandomInt(20, 150)
51 | ], [
52 | this._getRandomInt(180, 350),
53 | this._getRandomInt(20, 150)
54 | ]
55 | ];
56 |
57 | // Adding new data to dataSet, and removing same amount of rows of older data
58 | for (let i in newData) {
59 | // Just removing the most old row of data
60 | this.dataSet.remove(0);
61 | // Add new row
62 | this.dataSet.append(newData[i]);
63 | }
64 |
65 | return {chart: this.chart};
66 | },
67 | afterModel() {
68 | // Set timer to reload model
69 | let self = this;
70 | Ember.run.later((function () {
71 | self.refresh();
72 | }), 500);
73 | },
74 |
75 | // Helper utility function to get random integer
76 | _getRandomInt(min, max)
77 | {
78 | min = Math.ceil(min);
79 | max = Math.floor(max);
80 | return Math.floor(Math.random() * (max - min)) + min;
81 | }
82 | })
83 | ;
84 |
--------------------------------------------------------------------------------
/tests/dummy/app/routes/geographical-colored-map.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 |
3 | export default Ember.Route.extend({
4 | // chart instance
5 | chart: undefined,
6 |
7 |
8 | model: function() {
9 | let self = this;
10 |
11 | // load data from file
12 | return Ember.$.getJSON("united_states_of_america.topo.json").then(function(data) {
13 | return {
14 | chart: self._createChart(data)
15 | };
16 | });
17 | },
18 |
19 | _createChart: function(data){
20 | this.chart = anychart.map();
21 |
22 | //set map title settings using html
23 | this.chart.title().padding(10, 0).hAlign('center').fontFamily("'Verdana', Helvetica, Arial, sans-serif");
24 | this.chart.title().enabled(true);
25 | this.chart.title().text(
26 | ' The States That ' +
27 | 'Love Wine The Most. ' + ' ' +
28 | 'Litres of wine ' +
29 | 'per person each state consumed in 2013. '
30 | ).useHtml(true);
31 |
32 | //set map Geo data
33 | this.chart.geoData(data);
34 |
35 | let colorRange = this.chart.colorRange();
36 | colorRange.enabled(true).padding([20, 0, 0, 0]);
37 | colorRange.labels().padding(3);
38 | colorRange.colorLineSize(10);
39 |
40 | colorRange.stroke('#B9B9B9');
41 | colorRange.ticks().stroke('#B9B9B9').position('outside').length(10).enabled(true);
42 | colorRange.minorTicks().stroke('#B9B9B9').position('outside').length(5).enabled(true);
43 | colorRange.marker().size(7);
44 |
45 | let dataSet = anychart.data.set([
46 | {id: 'US.MN', name: "Minnesota", 'value': 8.4},
47 | {id: 'US.MT', name: "Montana", 'value': 8.5},
48 | {id: 'US.ND', name: "North Dakota", 'value': 5.1},
49 | {id: 'US.ID', name: "Idaho", 'value': 8.0},
50 | {id: 'US.WA', name: "Washington", 'value': 13.1},
51 | {id: 'US.AZ', name: "Arizona", 'value': 9.7},
52 | {id: 'US.CA', name: "California", 'value': 14.0},
53 | {id: 'US.CO', name: "Colorado", 'value': 8.7},
54 | {id: 'US.NV', name: "Nevada", 'value': 14.7},
55 | {id: 'US.NM', name: "New Mexico", 'value': 6.9},
56 | {id: 'US.OR', name: "Oregon", 'value': 12.2},
57 | {id: 'US.UT', name: "Utah", 'value': 3.2},
58 | {id: 'US.WY', name: "Wyoming", 'value': 5.2},
59 | {id: 'US.AR', name: "Arkansas", 'value': 4.2},
60 | {id: 'US.IA', name: "Iowa", 'value': 4.7},
61 | {id: 'US.KS', name: "Kansas", 'value': 3.2},
62 | {id: 'US.MO', name: "Missouri", 'value': 7.2},
63 | {id: 'US.NE', name: "Nebraska", 'value': 5.0},
64 | {id: 'US.OK', name: "Oklahoma", 'value': 4.5},
65 | {id: 'US.SD', name: "South Dakota", 'value': 5.0},
66 | {id: 'US.LA', name: "Louisiana", 'value': 5.7},
67 | {id: 'US.TX', name: "Texas", 'value': 5.0},
68 | {id: 'US.CT', name: "Connecticut", 'value': 14.4, labels: false},
69 | {id: 'US.MA', name: "Massachusetts", 'value': 16.9, labels: false},
70 | {id: 'US.NH', name: "New Hampshire", 'value': 19.6},
71 | {id: 'US.RI', name: "Rhode Island", 'value': 14.0, labels: false},
72 | {id: 'US.VT', name: "Vermont", 'value': 17.5},
73 | {id: 'US.AL', name: "Alabama", 'value': 6.0},
74 | {id: 'US.FL', name: "Florida", 'value': 12.4},
75 | {id: 'US.GA', name: "Georgia", 'value': 5.9},
76 | {id: 'US.MS', name: "Mississippi", 'value': 2.8},
77 | {id: 'US.SC', name: "South Carolina", 'value': 6.1},
78 | {id: 'US.IL', name: "Illinois", 'value': 10.2},
79 | {id: 'US.IN', name: "Indiana", 'value': 6.1},
80 | {id: 'US.KY', name: "Kentucky", 'value': 3.9},
81 | {id: 'US.NC', name: "North Carolina", 'value': 6.6},
82 | {id: 'US.OH', name: "Ohio", 'value': 7.2},
83 | {id: 'US.TN', name: "Tennessee", 'value': 5.4},
84 | {id: 'US.VA', name: "Virginia", 'value': 10.7},
85 | {id: 'US.WI', name: "Wisconsin", 'value': 9.1},
86 | {id: 'US.WY', name: "Wyoming", 'value': 5.2, labels: false},
87 | {id: 'US.WV', name: "West Virginia", 'value': 2.4},
88 | {id: 'US.DE', name: "Delaware", 'value': 13.5, labels: false},
89 | {id: 'US.DC', name: "District of Columbia", 'value': 25.7, labels: false},
90 | {id: 'US.MD', name: "Maryland", 'value': 8.9, labels: false},
91 | {id: 'US.NJ', name: "New Jersey", 'value': 14.9, labels: false},
92 | {id: 'US.NY', name: "New York", 'value': 11.9},
93 | {id: 'US.PA', name: "Pennsylvania", 'value': 5.6},
94 | {id: 'US.ME', name: "Maine", 'value': 10.4},
95 | {id: 'US.HI', name: "Hawaii", 'value': 13.1},
96 | {id: 'US.AK', name: "Alaska", 'value': 10.9},
97 | {id: 'US.MI', name: "Michigan", 'value': 7.6}
98 | ]);
99 |
100 | let series = this.chart.choropleth(dataSet);
101 | series.hovered().fill('#f48fb1');
102 | series.hovered().stroke(anychart.color.darken('#f48fb1'));
103 | series.selected().fill('#c2185b');
104 | series.selected().stroke(anychart.color.darken('#c2185b'));
105 |
106 | series.tooltip().useHtml(true);
107 | series.tooltip().format(function () {
108 | return '' + this.value + ' litres per capita ';
109 | });
110 | series.colorScale(anychart.scales.linearColor('#c2e9fb', '#81d4fa', '#01579b', '#002746'));
111 |
112 | return this.chart;
113 | },
114 | });
115 |
--------------------------------------------------------------------------------
/tests/dummy/app/routes/index.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 |
3 | export default Ember.Route.extend({
4 | beforeModel() {
5 | this._super(...arguments);
6 | this.replaceWith('simple-chart');
7 | }
8 | });
9 |
--------------------------------------------------------------------------------
/tests/dummy/app/routes/simple-chart.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 |
3 | export default Ember.Route.extend({
4 | // chart instance
5 | chart: undefined,
6 |
7 | model() {
8 | if (this.chart === undefined) {
9 | // We have some data
10 | let data = [
11 | ['1986', 3.6, 2.3, 2.8, 11.5],
12 | ['1987', 7.1, 4.0, 4.1, 14.1],
13 | ['1988', 8.5, 6.2, 5.1, 17.5],
14 | ['1989', 9.2, 11.8, 6.5, 18.9],
15 | ['1990', 10.1, 13.0, 12.5, 20.8],
16 | ['1991', 11.6, 13.9, 18.0, 22.9],
17 | ['1992', 16.4, 18.0, 21.0, 25.2],
18 | ['1993', 18.0, 23.3, 20.3, 27.0],
19 | ['1994', 13.2, 24.7, 19.2, 26.5],
20 | ['1995', 12.0, 18.0, 14.4, 25.3],
21 | ['1996', 3.2, 15.1, 9.2, 23.4],
22 | ['1997', 4.1, 11.3, 5.9, 19.5],
23 | ['1998', 6.3, 14.2, 5.2, 17.8],
24 | ['1999', 9.4, 13.7, 4.7, 16.2],
25 | ['2000', 11.5, 9.9, 4.2, 15.4],
26 | ['2001', 13.5, 12.1, 1.2, 14.0],
27 | ['2002', 14.8, 13.5, 5.4, 12.5],
28 | ['2003', 16.6, 15.1, 6.3, 10.8],
29 | ['2004', 18.1, 17.9, 8.9, 8.9],
30 | ['2005', 17.0, 18.9, 10.1, 8.0],
31 | ['2006', 16.6, 20.3, 11.5, 6.2],
32 | ['2007', 14.1, 20.7, 12.2, 5.1],
33 | ['2008', 15.7, 21.6, 10, 3.7],
34 | ['2009', 12.0, 22.5, 8.9, 1.5]
35 | ];
36 |
37 | // create data set with our data
38 | let dataSet = anychart.data.set(data);
39 |
40 | // map data for the first series, take x from the zero column and value from the first column of data set
41 | let seriesData_1 = dataSet.mapAs({x: [0], value: [1]});
42 |
43 | // map data for the second series, take x from the zero column and value from the second column of data set
44 | let seriesData_2 = dataSet.mapAs({x: [0], value: [2]});
45 |
46 | // map data for the third series, take x from the zero column and value from the third column of data set
47 | let seriesData_3 = dataSet.mapAs({x: [0], value: [3]});
48 |
49 | // create line chart
50 | this.chart = anychart.line();
51 |
52 | // turn on chart animation
53 | this.chart.animation(true);
54 |
55 | // turn on the crosshair
56 | this.chart.crosshair().enabled(true).yLabel().enabled(false);
57 | this.chart.crosshair().yStroke(null);
58 |
59 | // set up tooltip
60 | this.chart.tooltip().positionMode('point').position('right').anchor('left').offsetX(5).offsetY(5);
61 |
62 | // set chart title text settings
63 | this.chart.title('Trend of Sales of the Most Popular Products of ACME Corp.');
64 | this.chart.title().padding([0, 0, 5, 0]);
65 |
66 | // set yAxis title
67 | this.chart.yAxis().title('Number of Bottles Sold (thousands)');
68 | this.chart.xAxis().labels().padding([5]);
69 |
70 | // create first series with mapped data
71 | let series_1 = this.chart.line(seriesData_1);
72 | series_1.name('Brandy');
73 | series_1.hovered().markers().enabled(true).type('circle').size(4);
74 |
75 | // create second series with mapped data
76 | let series_2 = this.chart.line(seriesData_2);
77 | series_2.name('Whiskey');
78 | series_2.hovered().markers().enabled(true).type('circle').size(4);
79 |
80 | // create third series with mapped data
81 | let series_3 = this.chart.line(seriesData_3);
82 | series_3.name('Tequila');
83 | series_3.hovered().markers().enabled(true).type('circle').size(4);
84 |
85 | // turn the legend on
86 | this.chart.legend().enabled(true).fontSize(13).padding([0, 0, 10, 0]);
87 |
88 | // set up paddings
89 | this.chart.padding([10, 20, 5, 20]);
90 | }
91 |
92 | // return our chart instance as route's model
93 | return {
94 | chart: this.chart
95 | };
96 | }
97 | });
98 |
--------------------------------------------------------------------------------
/tests/dummy/app/routes/simple-dashboard.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 |
3 | export default Ember.Route.extend({
4 | // stage instance
5 | stage: undefined,
6 |
7 | // Charts instances
8 | chart1: undefined,
9 | chart2: undefined,
10 |
11 | model() {
12 | if (this.stage === undefined) {
13 | let data = [
14 | ['Rouge', '80540'],
15 | ['Foundation', '94190'],
16 | ['Mascara', '102610'],
17 | ['Lip gloss', '110430'],
18 | ['Pomade', '128000'],
19 | ['Nail polish', '143760'],
20 | ['Eyebrow pencil', '170670'],
21 | ['Eyeliner', '213210'],
22 | ['Eyeshadows', '249980']
23 | ];
24 |
25 | // Create stage
26 | this.stage = anychart.graphics.create();
27 |
28 | // Create first chart
29 | this.chart1 = anychart.column();
30 |
31 | // turn on chart1 animation
32 | this.chart1.animation(true);
33 |
34 | // set chart1 title text settings
35 | this.chart1.title('Top 10 Cosmetic Products by Revenue');
36 |
37 | // tooltips position and interactivity settings
38 | this.chart1.tooltip().positionMode('point').position('top').anchor('bottom').offsetX(0).offsetY(5);
39 | this.chart1.interactivity().hoverMode('byX');
40 |
41 | // set scale minimum
42 | this.chart1.yScale().minimum(0);
43 |
44 | // axes titles
45 | this.chart1.xAxis().title('Product');
46 | this.chart1.yAxis().title('Revenue');
47 |
48 | // set yAxis labels formatter
49 | this.chart1.yAxis().labels().format("${%Value}");
50 |
51 | // create area series with passed data
52 | let series = this.chart1.column(data);
53 |
54 | // set series tooltip settings
55 | series.tooltip().format("${%Value}{groupsSeparator:\\,}");
56 |
57 | // set up chart's size
58 | this.chart1.width(800);
59 | this.chart1.height(300);
60 |
61 | // create second chart
62 | this.chart2 = anychart.pie(data);
63 |
64 | // turn on chart2 animation
65 | this.chart2.animation(true);
66 |
67 | //set chart radius
68 | this.chart2.radius('43%');
69 |
70 | // set up chart2 legend
71 | this.chart2.legend().enabled(true).position("left").align("top").itemsLayout("vertical");
72 |
73 | this.chart2.width(800);
74 | this.chart2.height(300);
75 | this.chart2.top(300);
76 |
77 | // set stage as container for the both of charts and initiate drawing
78 | this.chart1.container(this.stage);
79 | this.chart2.container(this.stage);
80 |
81 | this.chart1.draw();
82 | this.chart2.draw();
83 | }
84 |
85 | // return our stage instance as route's model
86 | return {
87 | stage: this.stage
88 | };
89 | }
90 | });
91 |
--------------------------------------------------------------------------------
/tests/dummy/app/routes/simple-gantt-chart.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 |
3 | export default Ember.Route.extend({
4 | // chart instance
5 | chart: undefined,
6 |
7 | model() {
8 | // create project gantt chart
9 | this.chart = anychart.ganttProject();
10 |
11 | // create data tree on our data
12 | let treeData = anychart.data.tree(this._getData(), 'as-table');
13 |
14 | // set data for the chart
15 | this.chart.data(treeData);
16 |
17 | // set start splitter position settings
18 | this.chart.splitterPosition(395);
19 |
20 | // get chart data grid link to set column settings
21 | let dataGrid = this.chart.dataGrid();
22 |
23 | // set first column settings
24 | let firstColumn = dataGrid.column(0);
25 | firstColumn.title('#');
26 | firstColumn.width(30);
27 | firstColumn.labels().hAlign('center');
28 |
29 | // set second column settings
30 | let secondColumn = dataGrid.column(1);
31 | secondColumn.labels().hAlign('left');
32 | secondColumn.width(180);
33 |
34 | // set third column settings
35 | let thirdColumn = dataGrid.column(2);
36 | thirdColumn.title('Start Time');
37 | thirdColumn.width(90);
38 | thirdColumn.labels().hAlign('right');
39 | thirdColumn.labels().format(function() {return anychart.format.dateTime(this.item.get('actualStart'), "yyyy.MM.dd");});
40 |
41 | // set fourth column settings
42 | let fourthColumn = dataGrid.column(3);
43 | fourthColumn.title('End Time');
44 | fourthColumn.width(90);
45 | fourthColumn.labels().hAlign('right');
46 | fourthColumn.labels().format(function() {return anychart.format.dateTime(this.item.get('actualStart'), "yyyy.MM.dd");});
47 |
48 | return {
49 | chart: this.chart,
50 | afterDraw: function(chart) {
51 | chart.zoomTo(951350400000, 954201600000);
52 | }
53 | };
54 | },
55 |
56 | _getData() {
57 | return [
58 | {
59 | "id": "1",
60 | "name": "Phase 1 - Strategic Plan",
61 | "progressValue": "14%",
62 | "actualStart": 951350400000,
63 | "actualEnd": 954201600000
64 | },
65 | {
66 | "id": "2",
67 | "name": "Self-Assessment",
68 | parent: "1",
69 | "progressValue": "25%",
70 | "actualStart": 951350400000,
71 | "actualEnd": 951955200000
72 | },
73 | {
74 | "id": "3",
75 | "name": "Define business vision",
76 | parent: "2",
77 | "progressValue": "0%",
78 | "actualStart": 951408000000,
79 | "actualEnd": 951440400000,
80 | "connectTo": "4",
81 | "connectorType": "FinishStart"
82 | },
83 | {
84 | "id": "4",
85 | "name": "Identify available skills, information and support",
86 | parent: "2",
87 | "progressValue": "0%",
88 | "actualStart": 951494400000,
89 | "actualEnd": 951526800000,
90 | "connectTo": "5",
91 | "connectorType": "FinishStart"
92 | },
93 | {
94 | "id": "5",
95 | "name": "Decide whether to proceed",
96 | parent: "2",
97 | "progressValue": "0%",
98 | "actualStart": 951753600000,
99 | "actualEnd": 951786000000,
100 | "connectTo": "7",
101 | "connectorType": "FinishStart"
102 | },
103 | {
104 | "id": "6",
105 | "name": "Define the Opportunity",
106 | parent: "1",
107 | "progressValue": "27%",
108 | "actualStart": 951782400000,
109 | "actualEnd": 952992000000
110 | },
111 | {
112 | "id": "7",
113 | "name": "Research the market and competition",
114 | parent: "6",
115 | "progressValue": "0%",
116 | "actualStart": 951840000000,
117 | "actualEnd": 951872400000,
118 | "connectTo": "8",
119 | "connectorType": "FinishStart"
120 | },
121 | {
122 | "id": "8",
123 | "name": "Interview owners of similar businesses",
124 | parent: "6",
125 | "progressValue": "60%",
126 | "actualStart": 951868800000,
127 | "actualEnd": 952473600000,
128 | "connectTo": "9",
129 | "connectorType": "FinishStart"
130 | },
131 | {
132 | "id": "9",
133 | "name": "Identify needed resources",
134 | parent: "6",
135 | "progressValue": "0%",
136 | "actualStart": 952531200000,
137 | "actualEnd": 952650000000,
138 | "connectTo": "10",
139 | "connectorType": "FinishStart"
140 | },
141 | {
142 | "id": "10",
143 | "name": "Identify operating cost elements",
144 | parent: "6",
145 | "progressValue": "0%",
146 | "actualStart": 952704000000,
147 | "actualEnd": 952995600000,
148 | "connectTo": "12",
149 | "connectorType": "FinishStart"
150 | },
151 | {
152 | "id": "11",
153 | "name": "Evaluate Business Approach",
154 | parent: "1",
155 | "progressValue": "0%",
156 | "actualStart": 953049600000,
157 | "actualEnd": 953341200000
158 | },
159 | {
160 | "id": "12",
161 | "name": "Define new entity requirements",
162 | parent: "11",
163 | "progressValue": "0%",
164 | "actualStart": 953049600000,
165 | "actualEnd": 953082000000,
166 | "connectTo": "17",
167 | "connectorType": "FinishStart"
168 | },
169 | {
170 | "id": "13",
171 | "name": "Identify on-going business purchase opportunities",
172 | parent: "11",
173 | "progressValue": "0%",
174 | "actualStart": 953136000000,
175 | "actualEnd": 953168400000,
176 | "connectTo": "14",
177 | "connectorType": "FinishStart"
178 | },
179 | {
180 | "id": "14",
181 | "name": "Research franchise possibilities",
182 | parent: "11",
183 | "progressValue": "0%",
184 | "actualStart": 953222400000,
185 | "actualEnd": 953254800000,
186 | "connectTo": "15",
187 | "connectorType": "FinishStart"
188 | },
189 | {
190 | "id": "15",
191 | "name": "Summarize business approach",
192 | parent: "11",
193 | "progressValue": "0%",
194 | "actualStart": 953308800000,
195 | "actualEnd": 953341200000,
196 | "connectTo": "21",
197 | "connectorType": "FinishStart"
198 | },
199 | {
200 | "id": "16",
201 | "name": "Evaluate Potential Risks and Rewards",
202 | parent: "1",
203 | "progressValue": "0%",
204 | "actualStart": 953136000000,
205 | "actualEnd": 953946000000
206 | },
207 | {
208 | "id": "17",
209 | "name": "Assess market size and stability",
210 | parent: "16",
211 | "progressValue": "0%",
212 | "actualStart": 953136000000,
213 | "actualEnd": 953254800000,
214 | "connectTo": "18",
215 | "connectorType": "FinishStart"
216 | },
217 | {
218 | "id": "18",
219 | "name": "Estimate the competition",
220 | parent: "16",
221 | "progressValue": "0%",
222 | "actualStart": 953308800000,
223 | "actualEnd": 953341200000,
224 | "connectTo": "19",
225 | "connectorType": "FinishStart"
226 | },
227 | {
228 | "id": "19",
229 | "name": "Assess needed resource availability",
230 | parent: "16",
231 | "progressValue": "0%",
232 | "actualStart": 953740800000,
233 | "actualEnd": 953859600000,
234 | "connectTo": "20",
235 | "connectorType": "FinishStart"
236 | },
237 | {
238 | "id": "20",
239 | "name": "Evaluate realistic initial market share",
240 | parent: "16",
241 | "progressValue": "0%",
242 | "actualStart": 953913600000,
243 | "actualEnd": 953946000000
244 | },
245 | {
246 | "id": "21",
247 | "name": "Determine financial requirements",
248 | parent: "16",
249 | "progressValue": "0%",
250 | "actualStart": 953568000000,
251 | "actualEnd": 953686800000,
252 | "connectTo": "22",
253 | "connectorType": "FinishStart"
254 | },
255 | {
256 | "id": "22",
257 | "name": "Review personal suitability",
258 | parent: "16",
259 | "progressValue": "0%",
260 | "actualStart": 953740800000,
261 | "actualEnd": 953773200000,
262 | "connectTo": "23",
263 | "connectorType": "FinishStart"
264 | },
265 | {
266 | "id": "23",
267 | "name": "Evaluate initial profitability",
268 | parent: "16",
269 | "progressValue": "0%",
270 | "actualStart": 953827200000,
271 | "actualEnd": 953859600000,
272 | "connectTo": "24",
273 | "connectorType": "FinishStart"
274 | },
275 | {
276 | "id": "24",
277 | "name": "Review and modify the strategic plan",
278 | parent: "1",
279 | "progressValue": "0%",
280 | "actualStart": 953913600000,
281 | "actualEnd": 954208800000,
282 | "connectTo": "25",
283 | "connectorType": "FinishStart"
284 | },
285 | {
286 | "id": "25",
287 | "name": "Confirm decision to proceed",
288 | parent: "1",
289 | "progressValue": "0%",
290 | "actualStart": 954208800000,
291 | "actualEnd": 954208800000,
292 | "connectTo": "28",
293 | "connectorType": "FinishStart"
294 | },
295 | {
296 | "id": "26",
297 | "name": "Phase 2 - Define the Business Opportunity",
298 | "progressValue": "19%",
299 | "actualStart": 954201600000,
300 | "actualEnd": 957312000000
301 | },
302 | {
303 | "id": "27",
304 | "name": "Define the Market",
305 | parent: "26",
306 | "progressValue": "28%",
307 | "actualStart": 954201600000,
308 | "actualEnd": 955670400000
309 | },
310 | {
311 | "id": "28",
312 | "name": "Access available information",
313 | parent: "27",
314 | "progressValue": "0%",
315 | "actualStart": 954262800000,
316 | "actualEnd": 954295200000,
317 | "connectTo": "35",
318 | "connectorType": "StartStart"
319 | },
320 | {
321 | "id": "29",
322 | "name": "Create market analysis plan",
323 | parent: "27",
324 | "progressValue": "0%",
325 | "actualStart": 954349200000,
326 | "actualEnd": 954468000000
327 | },
328 | {
329 | "id": "30",
330 | "name": "Implement market analysis plan",
331 | parent: "27",
332 | "progressValue": "40%",
333 | "actualStart": 954460800000,
334 | "actualEnd": 955065600000,
335 | "connectTo": "31",
336 | "connectorType": "FinishStart"
337 | },
338 | {
339 | "id": "31",
340 | "name": "Identify competition",
341 | parent: "27",
342 | "progressValue": "60%",
343 | "actualStart": 955065600000,
344 | "actualEnd": 955411200000,
345 | "connectTo": "32",
346 | "connectorType": "FinishStart"
347 | },
348 | {
349 | "id": "32",
350 | "name": "Summarize the market",
351 | parent: "27",
352 | "progressValue": "0%",
353 | "actualStart": 955472400000,
354 | "actualEnd": 955591200000,
355 | "connectTo": "33",
356 | "connectorType": "FinishStart"
357 | },
358 | {
359 | "id": "33",
360 | "name": "Identify target market niche",
361 | parent: "27",
362 | "progressValue": "0%",
363 | "actualStart": 955645200000,
364 | "actualEnd": 955677600000,
365 | "connectTo": "35",
366 | "connectorType": "StartStart"
367 | },
368 | {
369 | "id": "34",
370 | "name": "Identify Needed Materials and Supplies",
371 | parent: "26",
372 | "progressValue": "0%",
373 | "actualStart": 955645200000,
374 | "actualEnd": 956368800000
375 | },
376 | {
377 | "id": "35",
378 | "name": "Select a business approach (from 'Evaluate Business Approach' above)",
379 | parent: "34",
380 | "progressValue": "0%",
381 | "actualStart": 955645200000,
382 | "actualEnd": 955764000000,
383 | "connectTo": "36",
384 | "connectorType": "FinishStart"
385 | },
386 | {
387 | "id": "36",
388 | "name": "Identify management staff resources",
389 | parent: "34",
390 | "progressValue": "0%",
391 | "actualStart": 955990800000,
392 | "actualEnd": 956023200000,
393 | "connectTo": "37",
394 | "connectorType": "FinishStart"
395 | },
396 | {
397 | "id": "37",
398 | "name": "Identify staffing requirements",
399 | parent: "34",
400 | "progressValue": "0%",
401 | "actualStart": 956077200000,
402 | "actualEnd": 956109600000,
403 | "connectTo": "38",
404 | "connectorType": "FinishStart"
405 | },
406 | {
407 | "id": "38",
408 | "name": "Identify needed raw materials",
409 | parent: "34",
410 | "progressValue": "0%",
411 | "actualStart": 956163600000,
412 | "actualEnd": 956196000000,
413 | "connectTo": "39",
414 | "connectorType": "FinishStart"
415 | },
416 | {
417 | "id": "39",
418 | "name": "Identify needed utilities",
419 | parent: "34",
420 | "progressValue": "0%",
421 | "actualStart": 956250000000,
422 | "actualEnd": 956282400000,
423 | "connectTo": "40",
424 | "connectorType": "FinishStart"
425 | },
426 | {
427 | "id": "40",
428 | "name": "Summarize operating expenses and financial projections",
429 | parent: "34",
430 | "progressValue": "0%",
431 | "actualStart": 956336400000,
432 | "actualEnd": 956368800000,
433 | "connectTo": "42",
434 | "connectorType": "FinishStart"
435 | },
436 | {
437 | "id": "41",
438 | "name": "Evaluate Potential Risks and Rewards",
439 | parent: "26",
440 | "progressValue": "17%",
441 | "actualStart": 956534400000,
442 | "actualEnd": 957225600000
443 | },
444 | {
445 | "id": "42",
446 | "name": "Assess market size and stability",
447 | parent: "41",
448 | "progressValue": "50%",
449 | "actualStart": 956534400000,
450 | "actualEnd": 956707200000,
451 | "connectTo": "43",
452 | "connectorType": "FinishStart"
453 | },
454 | {
455 | "id": "43",
456 | "name": "Assess needed resources availability",
457 | parent: "41",
458 | "progressValue": "0%",
459 | "actualStart": 956768400000,
460 | "actualEnd": 956887200000,
461 | "connectTo": "44",
462 | "connectorType": "FinishStart"
463 | },
464 | {
465 | "id": "44",
466 | "name": "Forecast financial returns",
467 | parent: "41",
468 | "progressValue": "0%",
469 | "actualStart": 956941200000,
470 | "actualEnd": 957232800000,
471 | "connectTo": "45",
472 | "connectorType": "FinishStart"
473 | },
474 | {
475 | "id": "45",
476 | "name": "Review and modify the business opportunity",
477 | parent: "26",
478 | "progressValue": "0%",
479 | "actualStart": 957286800000,
480 | "actualEnd": 957319200000,
481 | "connectTo": "46",
482 | "connectorType": "FinishStart"
483 | },
484 | {
485 | "id": "46",
486 | "name": "Confirm decision to proceed",
487 | parent: "26",
488 | "progressValue": "0%",
489 | "actualStart": 957319200000,
490 | "actualEnd": 957319200000,
491 | "connectTo": "49",
492 | "connectorType": "FinishStart"
493 | },
494 | {
495 | "id": "47",
496 | "name": "Phase 3 - Plan for Action",
497 | "progressValue": "17%",
498 | "actualStart": 957312000000,
499 | "actualEnd": 959817600000
500 | },
501 | {
502 | "id": "48",
503 | "name": "Develop Detailed 5-Year Business Plan",
504 | parent: "47",
505 | "progressValue": "17%",
506 | "actualStart": 957312000000,
507 | "actualEnd": 959817600000
508 | },
509 | {
510 | "id": "49",
511 | "name": "Describe the vision and opportunity",
512 | parent: "48",
513 | "progressValue": "0%",
514 | "actualStart": 957373200000,
515 | "actualEnd": 957405600000,
516 | "connectTo": "50",
517 | "connectorType": "FinishStart"
518 | },
519 | {
520 | "id": "50",
521 | "name": "List assumptions",
522 | parent: "48",
523 | "progressValue": "0%",
524 | "actualStart": 957459600000,
525 | "actualEnd": 957492000000,
526 | "connectTo": "51",
527 | "connectorType": "FinishStart"
528 | },
529 | {
530 | "id": "51",
531 | "name": "Describe the market",
532 | parent: "48",
533 | "progressValue": "0%",
534 | "actualStart": 957546000000,
535 | "actualEnd": 957578400000,
536 | "connectTo": "52",
537 | "connectorType": "FinishStart"
538 | },
539 | {
540 | "id": "52",
541 | "name": "Describe the new business",
542 | parent: "48",
543 | "progressValue": "0%",
544 | "actualStart": 957805200000,
545 | "actualEnd": 957837600000,
546 | "connectTo": "53",
547 | "connectorType": "FinishStart"
548 | },
549 | {
550 | "id": "53",
551 | "name": "Describe strengths, weaknesses, assets and threats",
552 | parent: "48",
553 | "progressValue": "0%",
554 | "actualStart": 957891600000,
555 | "actualEnd": 957924000000,
556 | "connectTo": "54",
557 | "connectorType": "FinishStart"
558 | },
559 | {
560 | "id": "54",
561 | "name": "Estimate sales volume during startup period",
562 | parent: "48",
563 | "progressValue": "0%",
564 | "actualStart": 957978000000,
565 | "actualEnd": 958010400000,
566 | "connectTo": "55",
567 | "connectorType": "FinishStart"
568 | },
569 | {
570 | "id": "55",
571 | "name": "Forecast operating costs",
572 | parent: "48",
573 | "progressValue": "0%",
574 | "actualStart": 958064400000,
575 | "actualEnd": 958096800000,
576 | "connectTo": "56",
577 | "connectorType": "FinishStart"
578 | },
579 | {
580 | "id": "56",
581 | "name": "Establish pricing strategy",
582 | parent: "48",
583 | "progressValue": "0%",
584 | "actualStart": 958150800000,
585 | "actualEnd": 958183200000,
586 | "connectTo": "57",
587 | "connectorType": "FinishStart"
588 | },
589 | {
590 | "id": "57",
591 | "name": "Forecast revenue",
592 | parent: "48",
593 | "progressValue": "0%",
594 | "actualStart": 958410000000,
595 | "actualEnd": 958442400000,
596 | "connectTo": "58",
597 | "connectorType": "FinishStart"
598 | },
599 | {
600 | "id": "58",
601 | "name": "X",
602 | parent: "48",
603 | "progressValue": "0%",
604 | "actualStart": 958496400000,
605 | "actualEnd": 958615200000,
606 | "connectTo": "59",
607 | "connectorType": "FinishStart"
608 | },
609 | {
610 | "id": "59",
611 | "name": "Develop break-even analysis",
612 | parent: "48",
613 | "progressValue": "0%",
614 | "actualStart": 958669200000,
615 | "actualEnd": 958701600000,
616 | "connectTo": "60",
617 | "connectorType": "FinishStart"
618 | },
619 | {
620 | "id": "60",
621 | "name": "Develop cash-flow projection",
622 | parent: "48",
623 | "progressValue": "0%",
624 | "actualStart": 958755600000,
625 | "actualEnd": 958788000000,
626 | "connectTo": "61",
627 | "connectorType": "FinishStart"
628 | },
629 | {
630 | "id": "61",
631 | "name": "Identify licensing and permitting requirements",
632 | parent: "48",
633 | "progressValue": "0%",
634 | "actualStart": 959014800000,
635 | "actualEnd": 959047200000,
636 | "connectTo": "62",
637 | "connectorType": "FinishStart"
638 | },
639 | {
640 | "id": "62",
641 | "name": "Develop startup plan",
642 | parent: "48",
643 | "progressValue": "100%",
644 | "actualStart": 959101200000,
645 | "actualEnd": 959220000000,
646 | "connectTo": "63",
647 | "connectorType": "FinishStart"
648 | },
649 | {
650 | "id": "63",
651 | "name": "Develop sales and marketing strategy",
652 | parent: "48",
653 | "progressValue": "0%",
654 | "actualStart": 959274000000,
655 | "actualEnd": 959306400000,
656 | "connectTo": "64",
657 | "connectorType": "FinishStart"
658 | },
659 | {
660 | "id": "64",
661 | "name": "Develop distribution structure",
662 | parent: "48",
663 | "progressValue": "0%",
664 | "actualStart": 959360400000,
665 | "actualEnd": 959392800000,
666 | "connectTo": "65",
667 | "connectorType": "FinishStart"
668 | },
669 | {
670 | "id": "65",
671 | "name": "Describe risks and opportunities",
672 | parent: "48",
673 | "progressValue": "20%",
674 | "actualStart": 959558400000,
675 | "actualEnd": 959731200000,
676 | "connectTo": "66",
677 | "connectorType": "FinishStart"
678 | },
679 | {
680 | "id": "66",
681 | "name": "Publish the business plan",
682 | parent: "48",
683 | "progressValue": "0%",
684 | "actualStart": 959792400000,
685 | "actualEnd": 959824800000,
686 | "connectTo": "67",
687 | "connectorType": "FinishStart"
688 | },
689 | {
690 | "id": "67",
691 | "name": "Confirm decision to proceed",
692 | parent: "48",
693 | "progressValue": "0%",
694 | "actualStart": 959824800000,
695 | "actualEnd": 959824800000,
696 | "connectTo": "69",
697 | "connectorType": "FinishStart"
698 | },
699 | {
700 | "id": "68",
701 | "name": "Phase 4 - Proceed With Startup Plan",
702 | "progressValue": "24%",
703 | "actualStart": 959817600000,
704 | "actualEnd": 967075200000
705 | },
706 | {
707 | "id": "69",
708 | "name": "Choose a location",
709 | parent: "68",
710 | "progressValue": "36%",
711 | "actualStart": 959817600000,
712 | "actualEnd": 959904000000,
713 | "connectTo": "72",
714 | "connectorType": "FinishStart"
715 | },
716 | {
717 | "id": "70",
718 | "name": "Establish Business Structure",
719 | parent: "68",
720 | "progressValue": "14%",
721 | "actualStart": 959904000000,
722 | "actualEnd": 963273600000
723 | },
724 | {
725 | "id": "71",
726 | "name": "Choose a Name",
727 | parent: "70",
728 | "progressValue": "33%",
729 | "actualStart": 959904000000,
730 | "actualEnd": 960249600000
731 | },
732 | {
733 | "id": "72",
734 | "name": "Identify implications",
735 | parent: "71",
736 | "progressValue": "40%",
737 | "actualStart": 959904000000,
738 | "actualEnd": 959990400000,
739 | "connectTo": "73",
740 | "connectorType": "FinishStart"
741 | },
742 | {
743 | "id": "73",
744 | "name": "Research name availability",
745 | parent: "71",
746 | "progressValue": "0%",
747 | "actualStart": 960224400000,
748 | "actualEnd": 960256800000,
749 | "connectTo": "87",
750 | "connectorType": "StartStart"
751 | },
752 | {
753 | "id": "74",
754 | "name": "Choose a Bank",
755 | parent: "70",
756 | "progressValue": "0%",
757 | "actualStart": 960310800000,
758 | "actualEnd": 960861600000
759 | },
760 | {
761 | "id": "75",
762 | "name": "Establish accounts",
763 | parent: "74",
764 | "progressValue": "0%",
765 | "actualStart": 960310800000,
766 | "actualEnd": 960602400000,
767 | "connectTo": "77",
768 | "connectorType": "StartStart"
769 | },
770 | {
771 | "id": "76",
772 | "name": "Establish line of credit",
773 | parent: "74",
774 | "progressValue": "0%",
775 | "actualStart": 960829200000,
776 | "actualEnd": 960861600000,
777 | "connectTo": "77",
778 | "connectorType": "StartStart"
779 | },
780 | {
781 | "id": "77",
782 | "name": "Choose legal representation",
783 | parent: "70",
784 | "progressValue": "0%",
785 | "actualStart": 960829200000,
786 | "actualEnd": 960861600000,
787 | "connectTo": "78",
788 | "connectorType": "FinishStart"
789 | },
790 | {
791 | "id": "78",
792 | "name": "Select business tax-basis category",
793 | parent: "70",
794 | "progressValue": "0%",
795 | "actualStart": 960915600000,
796 | "actualEnd": 961034400000,
797 | "connectTo": "79",
798 | "connectorType": "FinishStart"
799 | },
800 | {
801 | "id": "79",
802 | "name": "Choose capital funding source",
803 | parent: "70",
804 | "progressValue": "0%",
805 | "actualStart": 961088400000,
806 | "actualEnd": 961207200000,
807 | "connectTo": "98",
808 | "connectorType": "FinishStart"
809 | },
810 | {
811 | "id": "80",
812 | "name": "Commit capital funding",
813 | parent: "70",
814 | "progressValue": "0%",
815 | "actualStart": 961207200000,
816 | "actualEnd": 961207200000,
817 | "connectTo": "82",
818 | "connectorType": "FinishStart"
819 | },
820 | {
821 | "id": "81",
822 | "name": "Establish the Operating Control Base",
823 | parent: "70",
824 | "progressValue": "19%",
825 | "actualStart": 961372800000,
826 | "actualEnd": 963273600000
827 | },
828 | {
829 | "id": "82",
830 | "name": "Choose and set up the accounting system",
831 | parent: "81",
832 | "progressValue": "0%",
833 | "actualStart": 961434000000,
834 | "actualEnd": 961552800000,
835 | "connectTo": "83",
836 | "connectorType": "FinishStart"
837 | },
838 | {
839 | "id": "83",
840 | "name": "Obtain required licenses and permits",
841 | parent: "81",
842 | "progressValue": "38%",
843 | "actualStart": 961545600000,
844 | "actualEnd": 962409600000,
845 | "connectTo": "84",
846 | "connectorType": "FinishStart"
847 | },
848 | {
849 | "id": "84",
850 | "name": "Obtain needed insurance",
851 | parent: "81",
852 | "progressValue": "0%",
853 | "actualStart": 962643600000,
854 | "actualEnd": 962935200000,
855 | "connectTo": "85",
856 | "connectorType": "FinishStart"
857 | },
858 | {
859 | "id": "85",
860 | "name": "Establish security plan",
861 | parent: "81",
862 | "progressValue": "0%",
863 | "actualStart": 962989200000,
864 | "actualEnd": 963280800000,
865 | "connectTo": "91",
866 | "connectorType": "FinishStart"
867 | },
868 | {
869 | "id": "86",
870 | "name": "Develop Marketing Program",
871 | parent: "70",
872 | "progressValue": "0%",
873 | "actualStart": 960224400000,
874 | "actualEnd": 960516000000
875 | },
876 | {
877 | "id": "87",
878 | "name": "Establish an advertising program",
879 | parent: "86",
880 | "progressValue": "0%",
881 | "actualStart": 960224400000,
882 | "actualEnd": 960343200000,
883 | "connectTo": "88",
884 | "connectorType": "FinishStart"
885 | },
886 | {
887 | "id": "88",
888 | "name": "Develop a logo",
889 | parent: "86",
890 | "progressValue": "0%",
891 | "actualStart": 960397200000,
892 | "actualEnd": 960429600000,
893 | "connectTo": "89",
894 | "connectorType": "FinishStart"
895 | },
896 | {
897 | "id": "89",
898 | "name": "Order promotional materials",
899 | parent: "86",
900 | "progressValue": "0%",
901 | "actualStart": 960483600000,
902 | "actualEnd": 960516000000,
903 | "connectTo": "91",
904 | "connectorType": "FinishStart"
905 | },
906 | {
907 | "id": "90",
908 | "name": "Provide Physical Facilities",
909 | parent: "68",
910 | "progressValue": "16%",
911 | "actualStart": 963273600000,
912 | "actualEnd": 967075200000
913 | },
914 | {
915 | "id": "91",
916 | "name": "Secure operation space",
917 | parent: "90",
918 | "progressValue": "0%",
919 | "actualStart": 963334800000,
920 | "actualEnd": 963885600000,
921 | "connectTo": "92",
922 | "connectorType": "FinishStart"
923 | },
924 | {
925 | "id": "92",
926 | "name": "Select computer network hardware",
927 | parent: "90",
928 | "progressValue": "100%",
929 | "actualStart": 963939600000,
930 | "actualEnd": 963972000000,
931 | "connectTo": "93",
932 | "connectorType": "FinishStart"
933 | },
934 | {
935 | "id": "93",
936 | "name": "Select computer software",
937 | parent: "90",
938 | "progressValue": "0%",
939 | "actualStart": 964026000000,
940 | "actualEnd": 964058400000,
941 | "connectTo": "94",
942 | "connectorType": "FinishStart"
943 | },
944 | {
945 | "id": "94",
946 | "name": "Establish utilities",
947 | parent: "90",
948 | "progressValue": "67%",
949 | "actualStart": 964137600000,
950 | "actualEnd": 964569600000,
951 | "connectTo": "95",
952 | "connectorType": "FinishStart"
953 | },
954 | {
955 | "id": "95",
956 | "name": "Provide furniture and equipment",
957 | parent: "90",
958 | "progressValue": "15%",
959 | "actualStart": 964569600000,
960 | "actualEnd": 965088000000,
961 | "connectTo": "96",
962 | "connectorType": "FinishStart"
963 | },
964 | {
965 | "id": "96",
966 | "name": "Move in",
967 | parent: "90",
968 | "progressValue": "13%",
969 | "actualStart": 966988800000,
970 | "actualEnd": 967075200000
971 | },
972 | {
973 | "id": "97",
974 | "name": "Provide Staffing",
975 | parent: "68",
976 | "progressValue": "30%",
977 | "actualStart": 961372800000,
978 | "actualEnd": 966988800000
979 | },
980 | {
981 | "id": "98",
982 | "name": "Interview and test candidates",
983 | parent: "97",
984 | "progressValue": "43%",
985 | "actualStart": 961372800000,
986 | "actualEnd": 962928000000,
987 | "connectTo": "99",
988 | "connectorType": "FinishStart"
989 | },
990 | {
991 | "id": "99",
992 | "name": "Hire staff",
993 | parent: "97",
994 | "progressValue": "10%",
995 | "actualStart": 962928000000,
996 | "actualEnd": 964137600000,
997 | "connectTo": "100",
998 | "connectorType": "FinishStart"
999 | },
1000 | {
1001 | "id": "100",
1002 | "name": "Train staff",
1003 | parent: "97",
1004 | "progressValue": "31%",
1005 | "actualStart": 965088000000,
1006 | "actualEnd": 966988800000
1007 | },
1008 | {
1009 | "id": "102",
1010 | "name": "Mau & Ago business",
1011 | parent: "97",
1012 | "progressValue": "40%",
1013 | "actualStart": 951350400000,
1014 | "actualEnd": 951955200000
1015 | }
1016 | ];
1017 | }
1018 | });
1019 |
--------------------------------------------------------------------------------
/tests/dummy/app/routes/simple-stock-chart.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 |
3 | export default Ember.Route.extend({
4 | // chart instance
5 | chart: undefined,
6 |
7 | model: function() {
8 | let self = this;
9 |
10 | // load data from file
11 | return Ember.$.getJSON("stock-data.json").then(function(data) {
12 | return {
13 | chart: self._createChart(data),
14 | afterDraw: self.afterChartDraw
15 | };
16 | });
17 | },
18 |
19 | _createChart: function(data){
20 | // create data table on loaded data
21 | let dataTable = anychart.data.table();
22 | dataTable.addData(data);
23 |
24 | // map loaded data for the ohlc series
25 | let mapping = dataTable.mapAs({'open': 1, 'high': 2, 'low': 3, 'close': 4});
26 |
27 | // create stock chart
28 | this.chart = anychart.stock();
29 |
30 | // create first plot on the chart
31 | let plot = this.chart.plot(0);
32 | plot.xGrid().enabled(true);
33 | plot.yGrid().enabled(true);
34 | plot.xMinorGrid().enabled(true);
35 | plot.yMinorGrid().enabled(true);
36 |
37 | // create EMA indicators with period 50
38 | plot.ema(dataTable.mapAs({'value': 4})).series().stroke('1.5 #455a64');
39 |
40 | let series = plot.candlestick(mapping).name('CSCO');
41 | series.legendItem().iconType('risingfalling');
42 |
43 | // create scroller series with mapped data
44 | this.chart.scroller().candlestick(mapping);
45 |
46 | // set chart selected date/time range
47 | this.chart.selectRange('2007-01-03', '2007-05-20');
48 |
49 | return this.chart;
50 | },
51 |
52 | afterChartDraw: function(chart){
53 | // create range picker
54 | let rangePicker = anychart.ui.rangePicker();
55 | // init range picker
56 | rangePicker.render(chart);
57 |
58 | // create range selector
59 | let rangeSelector = anychart.ui.rangeSelector();
60 | // init range selector
61 | rangeSelector.render(chart);
62 | }
63 |
64 | });
65 |
--------------------------------------------------------------------------------
/tests/dummy/app/styles/app.css:
--------------------------------------------------------------------------------
1 | html, body, .ember-anychart {
2 | width: 100%;
3 | height: 100%;
4 | margin: 0;
5 | padding: 0;
6 | }
7 |
8 | .container {
9 | width: 1024px;
10 | margin: 20px auto;
11 | }
12 | .menu .links a {
13 | display: inline-block;
14 | padding: 5px 10px;
15 | outline: none;
16 | }
17 | .menu .active {
18 | font-weight: bold;
19 | }
20 | .ember-anychart {
21 | width: 600px;
22 | height: 500px;
23 | border: 2px solid deepskyblue;
24 | }
25 | .class2 {
26 | border-style: dashed;
27 | }
28 | .class1 {
29 | width: 100%;
30 | border-color: red;
31 | }
32 | .wide-container {
33 | width: 100%;
34 | height: 600px;
35 | }
36 | p code {
37 | padding: 9.5px;
38 | margin: 0 0 10px;
39 | font-size: 13px;
40 | word-break: break-all;
41 | word-wrap: break-word;
42 | background-color: #f5f5f5;
43 | border: 1px solid #ccc;
44 | }
45 |
--------------------------------------------------------------------------------
/tests/dummy/app/templates/application.hbs:
--------------------------------------------------------------------------------
1 |
2 |
Welcome to Ember plugin for AnyChart Samples
3 |
31 |
32 | {{outlet}}
33 |
34 |
35 |
--------------------------------------------------------------------------------
/tests/dummy/app/templates/chart-with-custom-settings.hbs:
--------------------------------------------------------------------------------
1 | Chart with custom settings
2 | In this example we create chart using only attributes:
3 | {{ember-anychart data=model.data type=model.type title=model.title afterDraw=model.afterDraw}}
4 | Chart instance is created automatically using type and data attributes. All attribute values are specified in the route file
5 | ember-anychart\tests\dummy\app\routes\chart-by-attributes.js
6 | Also notice using afterDraw attribute. With this attribute you can set callback function that will be called
7 | after chart drawing is done and takes chart instance as the first argument.
8 | {{ember-anychart data=model.data type=model.type title=model.title afterDraw=model.afterDraw}}
9 | {{outlet}}
10 |
--------------------------------------------------------------------------------
/tests/dummy/app/templates/chart-with-dynamic-settings.hbs:
--------------------------------------------------------------------------------
1 | Chart with dynamic settings
2 | If you change some setting of AnyChart chart instance, it is applied dynamically.
3 | In this sample we change chart palette using select input and processing the onchange event in a proper controller
4 | ember-anychart\tests\dummy\app\controllers\dynamic.js
5 |
6 | Palette:
7 |
8 | {{#each paletteOptions as |palette|}}
9 | {{palette}}
10 | {{/each}}
11 |
12 |
13 | {{ember-anychart instance=model.chart}}
14 | {{outlet}}
15 |
--------------------------------------------------------------------------------
/tests/dummy/app/templates/components/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AnyChart/AnyChart-Ember/4d0c17e2508e25b21dd28f1dd0eef03e9c600b2b/tests/dummy/app/templates/components/.gitkeep
--------------------------------------------------------------------------------
/tests/dummy/app/templates/data-streaming.hbs:
--------------------------------------------------------------------------------
1 | Data streaming
2 | {{ember-anychart instance=model.chart}}
3 | {{outlet}}
4 |
--------------------------------------------------------------------------------
/tests/dummy/app/templates/geographical-colored-map.hbs:
--------------------------------------------------------------------------------
1 | Geographical colored map
2 | {{ember-anychart instance=model.chart}}
3 | {{outlet}}
4 |
--------------------------------------------------------------------------------
/tests/dummy/app/templates/index.hbs:
--------------------------------------------------------------------------------
1 | {{outlet}}
2 |
--------------------------------------------------------------------------------
/tests/dummy/app/templates/simple-chart.hbs:
--------------------------------------------------------------------------------
1 | Simple chart
2 | This is the most simple example of using ember-anychart plugin. We can create AnyChart chart
3 | using {{ember-anychart}} element and define the instance attribute.
4 | {{ember-anychart instance=model.chart}}
5 | We create AnyChart chart instance, provide settings and data in route file ember-anychart\tests\dummy\app\routes\simple.js .
6 |
7 | {{ember-anychart instance=model.chart}}
8 | {{outlet}}
9 |
--------------------------------------------------------------------------------
/tests/dummy/app/templates/simple-dashboard.hbs:
--------------------------------------------------------------------------------
1 | Simple dashboard
2 |
9 | Using {{ember-anychart}} element you can create not only AnyChart chart but also a dashboard.
10 | All you need to do is to pass stage instance to instance attribute.
11 | {{ember-anychart instance=model.stage}}
12 | Stage instance is created in the ember-anychart\tests\dummy\app\routes\stage.js route file .
13 | Besides chart attributes you can use standard id and class attributes to set custom css styles for the container.
14 | {{ember-anychart instance=model.stage id="custom-styled-container" class="class2"}}
15 |
16 |
17 | {{ember-anychart instance=model.stage id="custom-styled-container" class="class2"}}
18 | {{outlet}}
19 |
--------------------------------------------------------------------------------
/tests/dummy/app/templates/simple-gantt-chart.hbs:
--------------------------------------------------------------------------------
1 | Simple gantt chart
2 | {{ember-anychart instance=model.chart afterDraw=model.afterDraw class="wide-container"}}
3 | {{outlet}}
4 |
--------------------------------------------------------------------------------
/tests/dummy/app/templates/simple-stock-chart.hbs:
--------------------------------------------------------------------------------
1 | Simple stock chart
2 | In this example we create a Stock chart. One of the main characteristics of this type of charts is the ability to work with big data sets.
3 | In stock route (ember-anychart\tests\dummy\app\routes\stock.js ) we load a big data set from the JSON file ember-anychart\tests\dummy\public\stock-data.json
4 | and pass this data to a private function that creates a chart.
5 | Also we use after draw callback function to set up range picker and range selector.
6 | {{ember-anychart instance=model.chart afterDraw=model.afterDraw class="wide-container"}}
7 | {{ember-anychart instance=model.chart afterDraw=model.afterDraw class="wide-container"}}
8 | {{outlet}}
9 |
--------------------------------------------------------------------------------
/tests/dummy/config/environment.js:
--------------------------------------------------------------------------------
1 | /* jshint node: true */
2 |
3 | module.exports = function(environment) {
4 | var ENV = {
5 | modulePrefix: 'dummy',
6 | environment: environment,
7 | rootURL: '/',
8 | locationType: 'auto',
9 | EmberENV: {
10 | FEATURES: {
11 | // Here you can enable experimental features on an ember canary build
12 | // e.g. 'with-controller': true
13 | },
14 | EXTEND_PROTOTYPES: {
15 | // Prevent Ember Data from overriding Date.parse.
16 | Date: false
17 | }
18 | },
19 |
20 | APP: {
21 | // Here you can pass flags/options to your application instance
22 | // when it is created
23 | }
24 | };
25 |
26 | if (environment === 'development') {
27 | // ENV.APP.LOG_RESOLVER = true;
28 | // ENV.APP.LOG_ACTIVE_GENERATION = true;
29 | // ENV.APP.LOG_TRANSITIONS = true;
30 | // ENV.APP.LOG_TRANSITIONS_INTERNAL = true;
31 | // ENV.APP.LOG_VIEW_LOOKUPS = true;
32 | }
33 |
34 | if (environment === 'test') {
35 | // Testem prefers this...
36 | ENV.locationType = 'none';
37 |
38 | // keep test console output quieter
39 | ENV.APP.LOG_ACTIVE_GENERATION = false;
40 | ENV.APP.LOG_VIEW_LOOKUPS = false;
41 |
42 | ENV.APP.rootElement = '#ember-testing';
43 | }
44 |
45 | if (environment === 'production') {
46 |
47 | }
48 |
49 | return ENV;
50 | };
51 |
--------------------------------------------------------------------------------
/tests/dummy/public/crossdomain.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
15 |
16 |
--------------------------------------------------------------------------------
/tests/dummy/public/robots.txt:
--------------------------------------------------------------------------------
1 | # http://www.robotstxt.org
2 | User-agent: *
3 | Disallow:
4 |
--------------------------------------------------------------------------------
/tests/dummy/public/united_states_of_america.topo.json:
--------------------------------------------------------------------------------
1 | {"crs": {"type": "name", "properties": {"name": "urn:ogc:def:crs:EPSG:102004"}}, "ac-tx": {"default": {"crs": "+proj=lcc +lat_1=33 +lat_2=45 +lat_0=39 +lon_0=-96 +x_0=0 +y_0=0 +datum=NAD83 +units=m +no_defs", "scale": 0.0015916460024534757, "xoffset": 0, "yoffset": 0}, "US.AK": {"crs": "+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs", "scale": 0.0007, "yoffset": -2759.337600948428, "crs_name": "urn:ogc:def:crs:EPSG:26932", "heatZone": {"width": 1770.355028949852, "top": -1358.652521566014, "height": 1306.6993574581015, "left": -3545.010094633992}, "xoffset": -2657.2470347872886}, "US.HI": {"crs_name": "urn:ogc:def:crs:EPSG:102007", "crs": "+proj=aea +lat_1=8 +lat_2=18 +lat_0=13 +lon_0=-157 +x_0=0 +y_0=0 +datum=NAD83 +units=m +no_defs", "heatZone": {"width": 823.6167899705476, "top": -2245.5002241286047, "height": 579.307103684635, "left": -1516.7674552436124}, "xoffset": -1059.1766580551757, "yoffset": -3872.021339875486}}, "arcs": [[[9384, 7475], [-165, -61], [-127, -40]], [[9092, 7374], [-4, 247]], [[9088, 7621], [338, 115]], [[9426, 7736], [53, 89], [28, -47], [-11, -155], [48, 2], [72, -130], [-81, -145], [-33, 60]], [[9502, 7410], [-46, 91], [-71, -30]], [[9385, 7471], [-1, 4]], [[6107, 8534], [-115, -4], [-130, -145], [-133, -103], [5, -201], [-66, -64], [-27, -121], [36, -43], [-19, -129], [0, -113], [125, -104], [81, -123], [65, -50], [14, -144]], [[5943, 7190], [-285, -18], [-340, -12], [-284, -2]], [[5034, 7158], [1, 628], [-68, 109], [52, 118]], [[5019, 8013], [-7, 135], [-31, 111], [-9, 299], [-43, 241], [7, 168], [-19, 123]], [[4917, 9090], [328, -2], [1, 135], [53, -28], [39, -200], [117, -28], [20, -41], [80, 43], [98, -29], [58, -76], [42, 10], [59, -79], [43, -18], [81, 74], [23, -44], [99, 14], [34, -34], [78, 2]], [[6170, 8789], [-63, -255]], [[3760, 8100], [-22, -328]], [[3738, 7772], [-255, 35], [-277, 46], [-332, 65], [-319, 73], [-21, -174]], [[2534, 7817], [-34, 93], [-41, -55], [-98, 22], [-50, -12], [-107, 28], [-17, 124], [-65, 198], [0, 99], [-23, 46], [-72, -54], [-32, 42], [10, 71], [71, 247], [-125, 303], [-25, 24], [-14, 145], [-36, 122], [53, 341]], [[1929, 9601], [238, -76], [346, -97], [346, -85], [315, -67], [245, -45], [406, -60]], [[3825, 9171], [-39, -655], [-26, -416]], [[5019, 8013], [-470, 14], [-235, 16], [-274, 24], [-280, 33]], [[3825, 9171], [259, -32], [246, -21], [351, -22], [236, -6]], [[3988, 420], [64, -32], [55, -64], [1, -47], [62, -85], [-38, -49], [-118, -71], [-42, -72], [-45, 34], [-2, 105], [-40, 138], [54, 102], [49, 41]], [[3764, 728], [134, -80], [-1, -39], [-91, -34], [-42, 153]], [[3469, 925], [22, -118], [-68, 13], [-29, 66], [48, 75], [27, -36]], [[3134, 1146], [21, -28], [-34, -97], [-72, 40], [11, 62], [74, 23]], [[2534, 7817], [-55, -483], [-43, -376]], [[2436, 6958], [-231, 58], [-295, 83]], [[1910, 7099], [-293, 89], [-226, 75]], [[1391, 7263], [97, 608], [1, 14]], [[1489, 7885], [3, 6], [6, 2], [5, 11]], [[1503, 7904], [9, 32], [2, 4], [0, 2], [1, 2], [2, 4], [0, 8], [-3, 12]], [[1514, 7968], [0, 6], [3, 2], [6, 0]], [[1523, 7976], [3, 8], [1, 6], [2, 1], [1, 2], [2, 2], [0, 4]], [[1532, 7999], [-6, 10], [-3, 4], [-2, 20]], [[1521, 8033], [-34, 22], [4, 18], [0, 4], [-2, 8], [0, 3], [7, 30]], [[1496, 8118], [2, 2], [2, 2], [2, 6]], [[1502, 8128], [1, 0], [3, 0], [1, 2], [4, 2], [3, 6], [3, 6], [4, 12], [23, 41], [11, 6], [4, 4], [2, 4], [21, 34], [54, 136], [44, 70]], [[1680, 8451], [1, 6], [2, 15]], [[1683, 8472], [-6, 40]], [[1677, 8512], [-33, 44], [-9, 27], [-1, 22], [0, 10], [0, 2]], [[1634, 8617], [-2, 18], [-5, 22], [1, 93]], [[1628, 8750], [12, 83], [28, 166], [17, 113]], [[1685, 9112], [55, 322]], [[1740, 9434], [8, 54], [8, 55], [18, 109]], [[1774, 9652], [155, -51]], [[1634, 8617], [-22, 8], [-42, 14], [-107, 37], [-176, 66], [-101, 10], [-114, -22], [-66, 24], [-89, -4], [-17, 39], [-84, 40], [-86, -20], [-71, 65], [3, 163], [-38, 43]], [[624, 9080], [-72, 79], [-42, -2], [36, 159], [-17, 124], [13, 254], [-21, 71], [5, 95], [40, 55], [66, -103], [188, -118], [29, -133], [-49, -135], [44, -5], [5, 97], [35, 95], [26, 225], [-19, 161], [251, -109], [271, -107], [361, -131]], [[1774, 9652], [-34, -218]], [[1740, 9434], [-10, -51], [-9, -54], [-36, -217]], [[1685, 9112], [-57, -362], [6, -133]], [[2619, 5155], [-62, -609], [-59, -612], [-74, -736]], [[2424, 3198], [-414, 95], [-238, 202], [-307, 265], [-159, 142], [8, 30], [13, 18], [6, 10], [4, 12]], [[1337, 3972], [8, 5], [21, -11], [9, 0], [3, 4], [3, 19], [12, 8], [2, 4], [2, 8], [0, 22], [1, 16], [-9, 22], [-18, 5], [-7, 8], [-4, 14], [3, 12], [4, 12], [3, 14], [1, 20], [-1, 6], [-4, 11], [0, 6], [4, 8], [2, 4], [2, 2], [-2, 4], [-2, 8], [0, 4], [2, 2]], [[1372, 4209], [10, -2], [9, 4]], [[1391, 4211], [13, 26], [8, 6], [3, 4], [21, 130], [22, 24], [4, 6], [10, 24], [57, 37], [3, 18], [-40, 62], [-11, 104], [-9, 8], [-2, 28], [-1, 4], [-6, 10], [3, 41], [0, 2]], [[1466, 4745], [6, 46], [15, 16], [-3, 117], [18, 198], [35, 13], [76, -63], [25, 55], [36, 268]], [[1674, 5395], [294, -83], [237, -62], [414, -95]], [[874, 7453], [-103, -554], [-84, -453], [32, -72], [32, -71], [32, -71], [67, -143], [67, -142], [32, -71], [105, -234], [178, -392], [234, -505]], [[1466, 4745], [0, -2], [-3, -41], [6, -10], [1, -4], [2, -28], [9, -8], [11, -104], [40, -62], [-3, -18], [-57, -37], [-10, -24], [-4, -6], [-22, -24], [-21, -130], [-3, -4], [-8, -6], [-13, -26], [-19, -2], [-2, -2], [0, -4], [2, -8], [2, -4], [-2, -2], [-2, -4], [-4, -8], [0, -6], [4, -11], [1, -6], [-1, -20], [-3, -14], [-4, -12], [-3, -12], [4, -14], [7, -8], [18, -5], [9, -22]], [[1398, 4047], [2, -4], [-2, -4], [0, -4], [-1, -4]], [[1397, 4031], [0, -22], [-2, -8], [-2, -4], [-12, -8]], [[1381, 3989], [-2, -6], [-1, -13]], [[1378, 3970], [-3, -4], [-9, 0], [-21, 11], [-8, -5]], [[1337, 3972], [-1, -4], [-112, 19], [-105, 20], [-269, 54], [-16, 67], [9, 142], [-24, 91], [-92, 175], [-51, 55], [-18, 81], [-76, 30], [-108, 176], [-162, 75], [-25, 60], [36, 186], [-40, 55], [14, 50], [-58, 118], [-20, 123], [-54, 143], [3, 65], [51, 91], [-17, 69], [-39, 18], [-32, 91], [3, 123], [71, -14], [-109, 214], [6, 81], [-79, 247], [4, 180], [30, 163], [-57, 184], [5, 63], [52, 71], [80, 230], [15, 200]], [[152, 7764], [272, -123], [450, -188]], [[4001, 5992], [-27, -617], [-19, -424]], [[3955, 4951], [-184, 18]], [[3771, 4969], [-253, 32], [-361, 53], [-251, 46], [-287, 55]], [[2619, 5155], [46, 473], [48, 475], [42, 430]], [[2755, 6533], [480, -91], [419, -62]], [[3654, 6380], [362, -41], [-15, -347]], [[874, 7453], [226, -85], [291, -105]], [[1910, 7099], [-67, -479], [-65, -481], [-104, -744]], [[3762, 4797], [-9, 0], [0, -6], [-2, -59], [-3, -48], [-16, -289], [-6, -97], [-3, -49], [-2, -48], [-17, -289], [-19, -338], [-2, -50], [-4, -47], [-9, -147], [-5, -97], [-45, 6], [-45, 6], [-91, 10], [-181, 24], [-227, 35], [-90, 14], [-54, 10], [0, -6], [2, -14], [2, -8], [-2, -7], [7, -28], [3, -2], [3, -2], [1, -2]], [[2948, 3269], [7, -16], [-346, 65], [-15, -156], [-170, 36]], [[3771, 4969], [-3, -41], [-4, -88], [-2, -43]], [[1634, 8617], [43, -105], [6, -40], [-3, -21], [-44, -70], [-54, -136], [-21, -34], [-2, -4], [-4, -4], [-11, -6], [-23, -41], [-4, -12], [-3, -6], [-3, -6], [-4, -2], [-1, -2], [-3, 0], [-1, 0], [-6, -10]], [[1496, 8118], [0, -10], [-5, -12], [-2, -8]], [[1489, 8088], [0, -3], [2, -8], [0, -4]], [[1491, 8073], [-2, -4], [-2, -8], [0, -6]], [[1487, 8055], [34, -22], [11, -34], [0, -4], [-2, -2], [-1, -2], [-2, -1]], [[1527, 7990], [0, -2], [-1, -4]], [[1526, 7984], [-3, -8], [-9, -8], [3, -12], [0, -8], [-2, -4], [-1, -2], [0, -2], [-2, -4], [-9, -32], [-14, -19]], [[1489, 7885], [0, -8], [-1, -6]], [[1488, 7871], [-97, -608]], [[152, 7764], [-12, 127], [27, 108], [-10, 72], [89, 170], [54, 142], [123, 412], [89, 329], [62, 0], [50, -44]], [[2436, 6958], [-39, -344], [358, -81]], [[3738, 7772], [-42, -697]], [[3696, 7075], [-42, -695]], [[6332, 4609], [-37, -97], [7, -65], [-34, -60], [7, -67], [-40, -69]], [[6235, 4251], [0, -2], [7, -10], [0, -16]], [[6242, 4223], [-6, -12], [-9, -10], [-22, -14], [-23, -67], [4, -75], [-18, -20], [-10, -2], [-5, 4], [-1, -2]], [[6152, 4025], [1, -4], [0, -4], [3, -12]], [[6156, 4005], [-13, -14], [-2, -2], [-7, -25], [-15, -14], [-1, -4], [0, -10], [15, -10], [1, -14], [-2, -6], [-3, -2], [-14, -4]], [[6115, 3900], [-11, -8], [-10, -6]], [[6094, 3886], [0, -5], [6, -6], [4, -10], [0, -40], [-2, -8], [-10, -4], [-16, -27], [-3, -62], [4, -2], [4, -2], [11, -14], [0, -6], [2, -10], [-2, -11], [0, -6], [-7, -16], [-2, -6], [4, -8], [1, 0], [7, -2], [4, -8], [0, -18], [3, -12], [1, -6], [-1, -5], [-12, -48]], [[6090, 3544], [-147, -12], [-36, -2], [-37, -2], [-36, -2], [-144, -8], [-36, -2], [-37, -2], [-36, 0], [-72, -4]], [[5509, 3510], [0, 42], [-3, 83]], [[5506, 3635], [0, 42], [-2, 23]], [[5504, 3700], [-87, 30]], [[5417, 3730], [2, 608], [-40, 386]], [[5379, 4724], [319, 12], [211, 11], [330, 26], [22, -71], [-54, -111], [125, 18]], [[6062, 6853], [90, -128], [-1, -107], [-23, -75], [-62, -60], [-51, -10], [-14, -85], [25, -83], [-79, -204]], [[5947, 6101], [-56, 79], [-249, -27], [-252, -12], [-235, 6]], [[5155, 6147], [-21, 251], [-36, 79], [4, 87], [-52, 143], [-23, 109]], [[5027, 6816], [-27, 81], [32, 129], [-19, 35], [21, 97]], [[5943, 7190], [44, -261], [62, -26], [13, -50]], [[5378, 4898], [-489, 0], [-353, 12], [-266, 14], [-315, 27]], [[4001, 5992], [235, -19], [424, -26], [270, -6], [308, -2]], [[5238, 5939], [80, -61], [-38, -101], [50, -109], [40, -32], [8, -738]], [[5947, 6101], [-13, -73], [36, -158], [105, -129], [25, -111], [98, -29], [2, -86], [-30, -120], [56, -93], [111, -101], [23, -87], [-11, -62], [43, -83], [15, 12], [13, -22], [7, 4], [4, -2]], [[6431, 4961], [1, -6], [0, -29], [-4, -10]], [[6428, 4916], [0, -12], [4, -12], [0, -8], [0, -10], [-10, -43], [-3, -10], [-6, -6], [-6, 2], [-10, 14], [-5, 6], [-3, -4], [-2, -6], [-2, -14], [0, -4]], [[6385, 4809], [-3, -18], [0, -4]], [[6382, 4787], [-49, -93], [-1, -85]], [[5379, 4724], [-1, 174]], [[5238, 5939], [-83, 208]], [[3696, 7075], [453, -49], [330, -24], [197, -10], [83, -77], [30, 27], [94, 4], [104, -75], [40, -55]], [[5417, 3730], [-79, 38]], [[5338, 3768], [-69, 71], [-27, -34], [-18, 0], [-19, 6], [-12, 22], [-68, -20], [-53, -45], [-131, 39], [-45, -21], [-26, 35], [-10, -20], [-6, 8], [-16, -16], [-61, 56], [-7, -8], [-18, -26], [-106, 93], [-30, -22], [-139, 62]], [[4477, 3948], [0, 31], [-13, 32]], [[4464, 4011], [-82, -2], [-3, 4], [-4, 10], [-31, 48], [-23, 5], [19, 669], [-349, 28], [-50, 4], [-47, 6], [-44, 4], [-35, 4], [-53, 6]], [[6470, 2588], [-38, -10], [-111, 63], [-36, -61], [17, -53], [106, -14], [83, -52], [-40, -112], [143, -117], [-32, -44], [-161, 141], [-31, -111], [-104, 36], [-28, -66], [-113, 32], [0, 59], [-68, 40], [-34, 75], [-64, 24], [-59, -109], [-87, 20], [-110, 53], [-113, -16], [-15, 87]], [[5575, 2453], [8, 143], [45, 230], [-68, 190], [-17, 101], [-29, 39], [-3, 151], [0, 81], [-1, 41], [0, 42], [-1, 39]], [[6090, 3544], [6, -137], [53, -95], [-27, -91], [-64, -126], [-23, -85], [-20, -179], [397, 34], [-18, -113], [76, -164]], [[5575, 2453], [-53, -108], [-174, -113], [-56, -117], [-94, -101], [-129, -61], [-177, -192], [-35, -72], [-83, -291], [61, -374], [-38, -37], [-56, 65], [-120, 20], [-123, 109], [-64, 16], [-32, 150], [-45, 85], [-5, 184], [-41, 32], [-75, 180], [-43, 53], [-22, 105], [-43, 121], [-9, 69], [-99, 143], [-48, 97], [-186, 61], [-83, -41], [-49, -137], [-63, -119], [-32, 10], [-98, 109], [-55, 28], [-92, 128], [-26, 101], [5, 87], [-55, 181], [-70, 71], [-118, 210], [-31, 23], [-33, 101], [-27, 18], [-11, 22]], [[2948, 3269], [-1, 2], [-3, 2], [-3, 2], [-7, 28], [2, 7], [-2, 8], [-2, 14], [0, 6], [54, -10], [90, -14], [227, -35], [181, -24], [91, -10], [45, -6], [45, -6], [5, 97], [9, 147], [4, 47], [2, 50], [19, 338], [17, 289], [2, 48], [3, 49], [6, 97], [16, 289], [3, 48]], [[3751, 4732], [2, 49], [0, 10]], [[3753, 4791], [0, 6], [9, 0]], [[3762, 4797], [53, -6], [35, -4], [44, -4], [47, -6], [50, -4], [349, -28], [-19, -669], [23, -5], [31, -48], [4, -10], [3, -4], [82, 2], [13, -63], [139, -62], [30, 22], [106, -93], [18, 26], [7, 8], [61, -56], [16, 16], [6, -8], [10, 20], [26, -35], [45, 21], [131, -39], [53, 45], [68, 20], [12, -22], [19, -6], [18, 0], [27, 34], [69, -71]], [[5338, 3768], [116, -56], [50, -12]], [[5504, 3700], [2, -23], [0, -42], [3, -125]], [[9219, 7414], [165, 61]], [[9384, 7475], [20, -101]], [[9404, 7374], [7, -38], [4, -19], [1, -10], [3, -14], [3, -22], [-3, -10], [1, -18], [0, -8], [0, -2]], [[9420, 7233], [-4, 6], [-19, -4], [-52, -41], [-84, -38], [-136, -148]], [[9125, 7008], [-1, 4], [-2, 2], [-1, 4], [-3, 2], [-11, 16], [-1, 1], [19, 78], [-3, 21], [-1, 16], [-8, 64], [-21, 158]], [[9092, 7374], [120, 28], [7, 12]], [[9243, 8502], [4, 83], [47, 44]], [[9294, 8629], [4, -18], [4, -18], [4, -18], [8, -35], [30, -125], [20, -89], [21, -89], [4, -18], [4, -18], [8, -35], [12, -52], [9, -35], [4, -18], [2, -10], [10, -61]], [[9438, 7990], [65, -90], [-77, -164]], [[9426, 7736], [-200, -67]], [[9226, 7669], [-25, 43], [-13, 232], [16, 97], [-3, 178], [51, 79], [-9, 204]], [[9502, 7410], [-23, -135], [-18, -6], [-26, -24], [-12, -10], [-3, -2]], [[9404, 7374], [-19, 97]], [[9226, 7669], [-77, -26], [-14, -6], [-18, -6], [-8, -2], [-10, -4], [-11, -4]], [[9088, 7621], [-1, 0], [-6, 16], [0, 6], [0, 18], [-38, 235], [-32, 58], [-7, 26], [-1, 4], [0, 6], [0, 3], [0, 4], [-2, 2], [-5, 12], [-4, 14]], [[8992, 8025], [-2, 4], [-1, 10]], [[8989, 8039], [0, 4], [-3, 2], [-4, 6], [0, 2], [-1, 6], [1, 4], [1, 29], [0, 6], [-1, 6], [1, 6], [2, 4], [1, 2], [2, 2], [1, 4], [0, 2], [0, 4], [0, 8], [-3, 10], [-4, 14], [-1, 4], [0, 2]], [[8981, 8166], [1, 14], [1, 9]], [[8983, 8189], [-1, 6], [0, 4], [-1, 2], [0, 2], [-41, 178]], [[8940, 8381], [303, 121]], [[7158, 4363], [0, -2], [1, -5], [3, -16], [11, -56], [32, -162], [38, -190], [52, -261], [80, -228], [-26, -47], [-10, -113], [28, -97], [-7, -93], [30, -91]], [[7390, 3002], [-328, -54], [-206, -29], [-5, -46], [52, -73], [0, -60]], [[6903, 2740], [-30, -75], [-72, 42], [-41, -34], [-60, 10]], [[6700, 2683], [-46, 523], [8, 473], [10, 582], [-19, 33]], [[6653, 4294], [-2, 4], [2, 0], [7, 2], [31, 2], [31, 4], [60, 8], [155, 16], [63, 10], [61, 10]], [[7061, 4350], [30, 4], [31, 5]], [[7122, 4359], [36, 4]], [[8122, 3049], [86, -307], [99, -233], [85, -145], [-18, -89], [105, -227], [109, -279], [20, -329], [-27, -103], [-11, -146], [-140, -72], [-79, 220], [-116, 87], [-26, 121], [-114, 117], [-99, 219], [-2, 66], [-47, 33], [-2, 131], [18, 95], [-12, 158], [-53, 89], [-37, -9], [-93, 106], [-69, 125], [-77, 52], [-52, -16], [-117, -151], [-89, -27], [-15, 67], [-72, 69], [-151, 67], [-223, 2]], [[7390, 3002], [37, -93], [385, 35], [163, 20], [59, 103], [88, -18]], [[8194, 3536], [-49, -123], [-21, -112], [24, -46], [-35, -117], [9, -89]], [[7158, 4363], [44, 8], [25, 4], [24, 6], [51, 8], [106, 20]], [[7408, 4409], [235, 51]], [[7643, 4460], [-36, -110], [106, -66], [73, -158], [147, -147], [44, -97], [53, -29], [38, -137], [46, -39], [41, -131], [39, -10]], [[6700, 2683], [-69, -20], [-41, 26], [-120, -101]], [[6090, 3544], [0, 36], [12, 12]], [[6102, 3592], [1, 5], [-1, 6], [-3, 12], [0, 18], [-4, 8], [-7, 2], [-1, 0], [-4, 8], [2, 6], [7, 16], [0, 6], [2, 11], [-2, 10], [0, 6], [-11, 14], [-4, 2], [-4, 2], [3, 62], [16, 27], [10, 4], [2, 8]], [[6104, 3825], [-5, 24], [3, 8], [2, 8]], [[6104, 3865], [-4, 10], [-6, 6]], [[6094, 3881], [-2, 3], [2, 2]], [[6094, 3886], [21, 14], [14, 4], [3, 2], [2, 6], [-1, 14], [-15, 10], [0, 10], [1, 4], [15, 14], [7, 25], [2, 2]], [[6143, 3991], [9, 0], [4, 14]], [[6156, 4005], [-4, 20], [1, 2], [5, -4], [10, 2], [18, 20], [-4, 75], [23, 67], [22, 14], [9, 10], [6, 12], [-7, 28]], [[6235, 4251], [25, 2], [25, 2], [52, 4], [102, 11], [128, 14], [50, 6], [26, 2], [10, 2]], [[8578, 4294], [-61, -103], [-33, -168], [-135, -243], [-76, -66], [-1, -41], [-78, -137]], [[7643, 4460], [155, 105], [237, 38], [63, -53], [8, -46], [220, 46], [252, -256]], [[6687, 6661], [-56, -8], [22, -366], [28, -465], [-19, -73], [37, -133], [-19, -87], [-65, -172], [5, -85]], [[6620, 5272], [-3, -20], [-12, -20], [-4, -13], [0, -8]], [[6601, 5211], [1, -6], [5, -10], [12, -24], [-7, -16]], [[6612, 5155], [-34, -14], [-11, -10], [-16, -4], [-3, -3]], [[6548, 5124], [-7, -24], [3, -26]], [[6544, 5074], [15, -34], [-3, -25], [-5, -8], [-83, 41], [-37, -87]], [[6062, 6853], [502, 48], [139, 22]], [[6703, 6923], [-16, -262]], [[6687, 6661], [428, 70], [2, -22]], [[7117, 6709], [28, -337], [45, -562]], [[7190, 5810], [-4, -4], [-4, -10], [1, -11], [9, -10], [10, -34], [2, -4], [-3, -8], [-3, -4], [0, -8], [2, -14], [-33, -11], [-26, -28], [-7, -4], [-106, -160], [-2, -4], [-3, -16], [-7, -12], [-1, -50], [-21, -27], [-47, 20], [-3, 23], [-12, 14], [0, -20], [-8, -6], [-5, 0], [-2, 0], [-2, 4], [-2, 2], [-3, 0], [0, -4], [1, -4], [3, -4], [1, -4], [0, -7], [-13, -20], [0, -32], [-38, -14], [-7, 6], [-4, 8], [-3, 10], [-3, 6], [-6, -6], [-14, -18], [-11, -2], [-9, -16], [-6, -31], [-68, 39], [-68, -33], [-26, -34], [-19, 4]], [[7774, 5383], [-8, -16], [-15, -24], [-40, -67], [-49, -52], [-39, -102], [-42, -60], [-97, -71]], [[7484, 4991], [-5, -4], [-7, -4], [-172, -24], [-47, -6], [-48, -6], [-181, -27], [-77, -2], [-262, -44], [-38, -55]], [[6647, 4819], [-99, -12], [-67, -8], [-66, -8], [-33, -4]], [[6382, 4787], [3, 22], [0, 4], [2, 14], [2, 6], [3, 4], [5, -6], [10, -14], [6, -2], [6, 6], [3, 10], [10, 43], [0, 10], [0, 8], [-4, 12], [0, 12], [3, 45]], [[6431, 4961], [-7, 10], [-4, 8], [-1, 10], [49, 59]], [[6468, 5048], [83, -41], [5, 8]], [[6556, 5015], [4, 15], [-1, 10]], [[6559, 5040], [-15, 34], [4, 50], [3, 3], [16, 4], [11, 10], [34, 14], [-11, 56], [0, 8], [4, 13], [12, 20], [3, 20]], [[6620, 5272], [19, -4]], [[6639, 5268], [8, 16], [0, 33], [18, -15]], [[6665, 5302], [68, 33], [68, -39], [6, 31], [9, 16], [11, 2], [14, 18], [6, 6], [3, -6], [3, -10], [4, -8], [7, -6], [38, 14], [0, 32], [13, 20], [0, 7], [-1, 4], [-3, 4], [-1, 4], [0, 4], [3, 0], [2, -2], [2, -4], [2, 0], [5, 0], [8, 6], [0, 20], [12, -14], [3, -23], [47, -20], [21, 27], [1, 50], [7, 12], [3, 16], [2, 4], [106, 160], [7, 4], [26, 28], [33, 11], [-2, 14], [0, 8], [3, 4], [3, 8], [-2, 4]], [[7202, 5741], [-12, 0], [-5, 6], [7, 28]], [[7192, 5775], [-9, 10], [-1, 11], [4, 10], [4, 4]], [[7190, 5810], [10, 12], [2, 4], [2, 4], [4, 0], [16, -20], [36, 14], [24, -20], [18, -35]], [[7302, 5769], [4, -12], [1, -14]], [[7307, 5743], [3, -6], [4, -4], [127, -12], [4, 0], [4, -2], [9, -6], [15, -2], [14, -17], [72, 65], [18, -52]], [[7577, 5707], [24, -13], [16, -16], [9, -18]], [[7626, 5660], [0, -4], [1, -2], [0, -10], [0, -2], [1, -2], [4, -12], [2, -4], [0, -2], [1, -21], [-4, -4], [0, -14], [-1, -4], [-3, -4], [-1, -4], [1, -6]], [[7627, 5565], [18, -26], [5, -12], [12, -12], [0, -15]], [[7662, 5500], [15, -16], [2, -6], [1, -10], [3, -6], [13, -16], [4, -8], [7, -18], [67, -37]], [[8936, 5351], [30, -41], [-31, -157], [65, 16], [32, -44], [-57, -190], [-58, 2], [-7, -245], [-102, -57], [-56, -82], [-45, -106], [-4, -89], [-125, -64]], [[7408, 4409], [0, 16], [-1, 18], [-2, 43], [101, 145], [43, 10], [108, 158], [124, 99], [23, -16], [54, 121]], [[7858, 5003], [2, 41], [1, 8], [5, 24]], [[7866, 5076], [85, 6], [218, 43], [297, 82], [470, 144]], [[7920, 6513], [-2, -115], [-22, -251], [-54, -95], [-88, -91], [2, -93], [-53, 14], [-30, -204], [-47, -18]], [[7626, 5660], [-49, 47], [-18, 52], [-72, -65], [-14, 17], [-15, 2], [-9, 6], [-4, 2], [-4, 0], [-127, 12], [-4, 4], [-3, 6], [-5, 26], [-18, 35], [-24, 20], [-36, -14], [-16, 20], [-4, 0], [-2, -4], [-2, -4], [-10, -12]], [[7117, 6709], [246, 61], [44, 79]], [[7407, 6849], [83, -73], [51, 10], [183, 230], [127, 71]], [[7851, 7087], [69, -574]], [[6382, 4787], [265, 32], [38, 55], [262, 44], [77, 2], [181, 27], [48, 6], [47, 6], [172, 24], [7, 4], [5, 4]], [[7484, 4991], [328, 67], [8, 10]], [[7820, 5068], [29, 4], [17, 4]], [[7866, 5076], [-8, -73], [-54, -121], [-23, 16], [-124, -99], [-108, -158], [-43, -10], [-101, -145], [2, -43], [1, -18], [0, -16]], [[7408, 4409], [-106, -20], [-51, -8], [-24, -6], [-25, -4]], [[7202, 4371], [-24, -4], [-20, -4]], [[7158, 4363], [-36, -4], [-61, -9], [-61, -10], [-63, -10], [-155, -16], [-60, -8], [-31, -4], [-31, -2], [-7, -2], [-2, 0], [2, -4]], [[6653, 4294], [-3, 0], [-7, -2]], [[6643, 4292], [-26, -2], [-50, -6], [-128, -14], [-102, -11], [-52, -4], [-25, -2], [-25, -2]], [[8481, 6200], [55, -57], [77, -44]], [[8613, 6099], [24, -71], [-30, -30], [-9, -75], [97, -69], [50, 8], [81, -64], [8, -221], [37, -99], [54, 0], [23, -123], [-8, -2], [-4, -2]], [[7866, 5076], [-46, -8], [-8, -10], [-328, -67]], [[7774, 5383], [3, -2], [0, -2], [1, -2]], [[7778, 5377], [0, -8], [-3, -14], [11, -26]], [[7786, 5329], [2, -2], [1, -2], [9, -8], [13, -15], [54, -14], [110, 55], [11, 14], [2, 4], [1, 4], [58, 57], [17, -10], [0, 2], [5, 8], [21, 26], [-6, 59], [67, 228], [16, 115], [29, -32], [9, -2], [19, -4], [13, -2], [1, 0], [1, 2], [11, 34], [6, 43], [19, 80], [25, -12], [30, 59], [13, 22], [4, 20], [7, 23], [6, 10], [6, 16], [4, 103], [3, -4], [23, -18], [12, -8], [64, -49], [1, 4], [0, 6], [2, 10], [4, 27], [2, 16], [0, 4], [0, 2]], [[6107, 8534], [-64, -254], [52, -81], [170, -51], [50, -34], [123, -24], [57, -77], [3, -69], [76, -89], [46, 91], [56, 8], [92, -59], [-69, -149], [-33, -243], [-10, -242], [47, -338]], [[8147, 6244], [20, -176], [120, 162], [105, 75], [72, -55]], [[8464, 6250], [1, -4], [1, -4]], [[8466, 6242], [0, -8], [9, -4], [2, -4], [4, -26]], [[8481, 6200], [0, -2], [0, -4], [-2, -16], [-4, -27], [-2, -10], [0, -6], [-1, -4], [-64, 49], [-12, 8], [-23, 18], [-3, 4], [-4, -103], [-6, -16], [-6, -10], [-7, -23], [-4, -20], [-13, -22], [-30, -59], [-25, 12], [-19, -80], [-6, -43], [-11, -34], [-1, -2], [-1, 0], [-13, 2], [-19, 4], [-9, 2], [-29, 32], [-16, -115], [-67, -228]], [[8084, 5507], [14, -21], [-8, -38]], [[8090, 5448], [-21, -26], [-5, -8], [0, -2], [-17, 10], [-58, -57], [-1, -4], [-2, -4], [-11, -14], [-110, -55], [-54, 14], [-13, 15], [-9, 8], [-1, 2], [-2, 2], [-8, 48], [-1, 2], [0, 2], [-3, 2]], [[7774, 5383], [-3, 2], [-3, 0], [-8, -4], [-15, 4], [-38, 35]], [[7707, 5420], [-7, 18], [-4, 8], [-13, 16], [-3, 6], [-1, 10], [-2, 6], [-15, 16], [-35, 65]], [[7627, 5565], [-1, 4], [0, 2]], [[7626, 5571], [1, 4], [3, 4], [1, 4], [0, 14], [4, 4]], [[7635, 5601], [-1, 9], [0, 8], [0, 4]], [[7634, 5622], [0, 2], [-2, 4], [-4, 12], [-1, 2], [0, 2], [0, 10], [-1, 2], [0, 4]], [[7920, 6513], [38, -319], [189, 50]], [[8876, 6493], [-23, -75], [68, -176], [56, -75], [41, -109], [-5, 2], [-2, -4]], [[9011, 6056], [-15, -4], [-57, -20]], [[8939, 6032], [-41, -12], [-36, 178]], [[8862, 6198], [-43, 220], [-4, 26]], [[8815, 6444], [61, 49]], [[8481, 6200], [-4, 6], [0, 6], [0, 6], [0, 8]], [[8477, 6226], [-2, 4], [-9, 4]], [[8466, 6234], [-2, 2], [2, 6]], [[8466, 6242], [-2, 8], [-72, 55], [-105, -75], [-120, -162], [-20, 176]], [[8147, 6244], [62, 18], [64, 15], [21, 6], [20, 6], [22, 6], [167, 50], [83, 25], [63, 20], [20, 6], [22, 6], [20, 8], [104, 34]], [[8815, 6444], [47, -246], [36, -178], [41, 12], [72, 24]], [[9011, 6056], [0, -2], [0, -6], [-6, 0], [6, -8], [-2, -4], [6, -28], [-22, -39], [-12, -80], [-48, -33], [-39, 47], [-86, 46], [-3, 115], [-39, 219], [-46, -12], [21, -104], [-16, -89], [20, -84], [55, -120], [-119, 17], [-27, 52], [-46, -2], [30, 83], [16, 73], [-41, 2]], [[8920, 7063], [160, -75]], [[9080, 6988], [-7, -101], [-32, -89], [65, -38], [1, -225], [-26, -62], [-42, -192], [-83, 22], [-83, 73], [2, 107], [47, 50], [14, 55], [28, 46]], [[8964, 6634], [11, 10], [6, 13], [-3, 6]], [[8978, 6663], [-37, 38], [-36, 34], [-6, 25], [-4, 8], [-18, -2], [-11, 64], [13, 17], [0, 8], [0, 8], [1, 4], [3, 4]], [[8883, 6871], [0, 6], [-2, 6]], [[8881, 6883], [-17, 24], [-2, 2], [2, 6], [15, 24], [17, 53], [3, 34]], [[8899, 7026], [8, 21], [6, 8], [4, 2], [3, 4]], [[8920, 7061], [0, 2]], [[9362, 7146], [-11, -103], [-136, -104], [-76, -76], [-48, 58], [65, 79], [153, 73], [53, 73]], [[9092, 7374], [21, -158], [8, -64], [1, -16], [3, -21]], [[9125, 7115], [15, -22], [-1, -6], [-32, -46], [-1, -4]], [[9106, 7037], [1, -1], [11, -16], [3, -2], [1, -4], [2, -2], [1, -4]], [[9125, 7008], [-1, -2], [1, 0], [0, -4], [-3, -12], [-13, -20], [-6, -28], [-23, 46]], [[8920, 7063], [-2, 6], [-12, 18], [-11, 0], [-9, -4], [-5, 0], [-2, 2], [-3, 4], [-3, 2], [-15, 8], [-16, 30], [-15, 71], [-54, 41], [-219, -71], [-96, -30], [-24, -6], [-23, -7], [-48, -14], [-72, -22], [-293, -79], [-12, 103], [-11, 81]], [[7975, 7196], [119, 125], [-28, 156], [-29, 63], [76, 81], [315, 91], [44, 177], [156, 332], [60, 73], [252, 87]], [[8940, 8381], [23, -146], [18, -32]], [[8981, 8203], [0, -2], [1, -2], [0, -4], [1, -6], [-2, -23], [0, -2], [1, -4], [4, -14]], [[8986, 8146], [2, -4], [1, -6]], [[8989, 8136], [0, -8], [0, -4], [0, -2], [-1, -4], [-2, -2], [-1, -2], [-2, -4]], [[8983, 8110], [-1, -4], [0, -2]], [[8982, 8104], [1, -6], [0, -6], [-1, -29], [-1, -4]], [[8981, 8059], [0, -4], [1, -2]], [[8982, 8053], [0, -2], [4, -6], [3, -2], [0, -4], [3, -14], [4, -14], [5, -12], [2, -2], [0, -4], [0, -3], [0, -6]], [[9003, 7984], [0, -2], [1, -2]], [[9004, 7980], [5, -8], [2, -18]], [[9011, 7954], [32, -58], [38, -235], [0, -18], [0, -6], [6, -16], [1, 0]], [[7851, 7087], [124, 109]], [[7975, 7196], [11, -81]], [[7986, 7115], [2, -22], [2, -20], [8, -61]], [[7998, 7012], [293, 79], [72, 22], [48, 14], [23, 7], [24, 6], [96, 30], [219, 71], [54, -41]], [[8827, 7200], [7, -16], [8, -55]], [[8842, 7129], [16, -30], [15, -8], [3, -2], [3, -4], [2, -2], [5, 0], [9, 4], [11, 0], [12, -18], [2, -6]], [[8920, 7063], [0, -2], [-21, -35], [-3, -34], [-17, -53], [-15, -24], [-2, -6], [2, -2], [17, -24], [2, -12], [-3, -4], [-1, -4], [0, -8], [0, -8], [-13, -17], [11, -64], [18, 2], [4, -8], [6, -25], [36, -34]], [[8941, 6701], [19, -24], [18, -14]], [[8978, 6663], [-12, -27], [-2, -2]], [[8964, 6634], [-16, -22], [-27, -44], [-1, -25], [-44, -50]], [[9438, 7990], [-7, 35], [0, 10], [-1, 4], [-2, 12]], [[9428, 8051], [-2, 10], [-4, 18], [-9, 35], [-12, 52], [-8, 35], [-4, 18], [-4, 18], [-21, 89], [-20, 89], [-30, 125], [-8, 35], [-4, 18], [-4, 18], [-4, 18]], [[9294, 8629], [49, 79], [43, 184], [-17, 48], [15, 132], [-10, 101], [67, 299], [49, -49], [25, -10], [101, 101], [85, -74], [93, -401], [68, -48], [21, -111], [50, -12], [66, -105], [-28, -77], [-94, -126], [-65, -6], [-69, -87], [-45, 11], [5, -136], [-16, -48], [-116, -75], [-31, -71], [-30, -234], [-72, 76]], [[6170, 8789], [26, 0], [108, 109], [47, 20], [292, -200], [308, -206], [60, -138], [73, -2], [46, -123], [55, 29], [12, -102], [184, -119], [12, -26], [128, -588], [-27, -182], [-3, -144], [-94, -163], [10, -105]], [[351, 506], [3, -32], [-33, -6], [-21, -23], [-11, 31], [49, 33], [13, -3]], [[443, 524], [15, -21], [3, -37], [-102, -20], [19, 23], [21, -5], [44, 60]], [[661, 596], [13, -55], [-20, -16], [-30, 16], [-23, -20], [-27, 11], [34, 60], [53, 4]], [[2614, 502], [18, -34], [5, -42], [-9, -40], [-42, 36], [7, 69], [21, 11]], [[2468, 536], [24, 1], [11, -41], [20, -5], [29, -50], [-2, -20], [28, -33], [10, -73], [-41, 18], [-4, 24], [-38, 18], [4, 55], [-20, 9], [6, 31], [-7, 41], [-20, 25]], [[2438, 610], [12, -11], [2, -53], [-33, 32], [19, 32]], [[2448, 645], [47, -13], [7, -45], [-10, -29], [-29, -6], [-15, 93]], [[2350, 688], [29, -13], [24, -92], [3, -60], [-26, 28], [-21, 41], [1, 35], [-24, 43], [14, 18]], [[1354, 809], [29, -9], [-3, -40], [-19, -54], [-33, 0], [-50, -65], [-28, 47], [-9, 58], [15, 25], [44, 32], [42, -11], [12, 17]], [[2325, 805], [46, -24], [12, -81], [-64, -14], [-29, 62], [-3, 37], [38, 20]], [[2368, 834], [14, -29], [29, 4], [2, -13], [-7, -17], [26, -52], [7, -39], [-32, -57], [-3, 56], [-13, 30], [-23, 117]], [[1385, 886], [27, -22], [5, -21], [-50, -27], [-21, 32], [26, 13], [13, 25]], [[1705, 1125], [-24, -62], [-10, 10], [34, 52]], [[728, 1454], [17, -25], [-7, -58], [-41, 1], [-39, 60], [52, 31], [18, -9]], [[620, 2113], [1, -25], [20, -30], [34, -2], [21, -103], [-27, -11], [-17, 70], [-13, 27], [-32, -1], [-8, 42], [21, 33]], [[1488, 2901], [-3, -21], [41, -32], [12, -55], [45, 3], [25, -13], [-3, -51], [15, -21], [93, -10], [32, -36], [44, -28], [44, -5], [33, -32], [62, 18], [35, -41], [47, -32], [3, -292], [4, -338], [2, -158], [3, -292], [2, -203], [2, -158], [52, -18], [20, 24], [28, 3], [-3, -42], [89, -122], [13, -50], [49, 64], [8, 53], [39, 32], [28, -35], [-3, -20], [42, -50], [13, -31], [20, -13], [26, -38], [65, -137], [37, -67], [-2, -26], [66, -57], [66, -35], [0, -52], [19, -68], [-16, -64], [-33, -21], [-14, 56], [9, 25], [-7, 56], [-20, 31], [-16, 7], [-17, -23], [-8, -62], [-21, 33], [14, 45], [-6, 54], [-33, 31], [-3, 21], [-40, 46], [-28, 10], [7, 25], [-15, 57], [-19, 34], [-13, 15], [-3, 32], [-9, -11], [-16, 18], [-15, 5], [-26, 64], [-2, -35], [13, -45], [-46, 28], [-9, -24], [-31, -29], [-53, 47], [-40, 68], [-93, 75], [19, 27], [-8, 26], [-37, -30], [-75, 38], [-57, 24], [-60, -17], [-51, 62], [-53, 16], [14, 30], [-41, 29], [-14, 34], [-30, -18], [-48, 7], [14, -73], [-29, -65], [-49, 12], [-23, -17], [-36, -59], [-81, -32], [-4, 40], [35, 15], [-29, 42], [28, 57], [30, 87], [35, 32], [20, -21], [22, 7], [-47, 56], [-31, -30], [-32, -16], [-7, -25], [-31, -35], [-30, -82], [-20, -27], [-29, -3], [-32, -33], [-12, -45], [26, -8], [18, -26], [-9, -29], [-28, -12], [-22, -56], [-27, -24], [-25, 7], [-27, -40], [-59, -31], [-6, -36], [-58, -46], [-44, -4], [-30, -19], [-6, -46], [-85, -26], [-12, 11], [-48, -40], [-51, -1], [-12, 47], [-35, -65], [-28, 8], [-33, -11], [-4, 28], [67, 68], [29, 17], [43, -5], [11, -41], [24, 23], [18, 48], [45, 32], [52, 22], [49, 59], [40, 26], [34, 132], [30, 32], [3, 24], [-65, -21], [-29, 43], [-7, -45], [-18, -9], [-9, 57], [-28, 14], [-15, 55], [-64, -29], [-18, 12], [-2, 63], [10, 38], [15, 11], [-12, 117], [-13, -23], [-63, -3], [-23, 18], [1, 33], [-28, 66], [-8, 43], [42, 20], [-11, 45], [-24, 27], [5, 20], [-16, 62], [39, 22], [5, 41], [43, 43], [19, 8], [5, 34], [25, 36], [25, 8], [40, -55], [60, 36], [43, -11], [26, 27], [13, 119], [15, 15], [-24, 32], [-30, 6], [-30, -21], [-73, 52], [-35, -5], [-45, 49], [4, 51], [-8, 33], [29, 25], [-42, 40], [-20, 45], [43, 25], [73, 14], [60, 19], [31, -8], [-12, -67], [5, -18], [72, -42], [21, 26], [5, 29], [31, -27], [28, 13], [-22, 33], [-22, -12], [-17, 36], [13, 51], [-26, 2], [-45, 42], [1, 85], [-32, 92], [-28, 68], [20, 22], [12, 45], [70, -32], [33, 14], [26, 26], [23, 59], [50, 55], [41, -9], [64, 39], [47, -7], [34, 25], [35, 40]]], "transform": {"translate": [-3758, -2824.8073278132397], "scale": [0.7349734973497349, 0.5052312559069146]}, "objects": {"features": {"type": "GeometryCollection", "geometries": [{"type": "Polygon", "properties": {"labelrank": 0, "postal": "MA", "code_hasc": "US.MA", "name": "Massachusetts", "admin": "United States of America", "type_en": "State", "region": "Northeast", "woe_id": 2347580, "longitude": -71, "woe_name": "Massachusetts", "fips": "US25", "iso_a2": "US", "latitude": 42, "objectid_1": 2059, "woe_label": "Massachusetts, US, United States", "type": "State", "id": "US.MA"}, "arcs": [[0, 1, 2, 3, 4, 5]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "MN", "code_hasc": "US.MN", "name": "Minnesota", "admin": "United States of America", "type_en": "State", "region": "Midwest", "woe_id": 2347582, "longitude": -93, "woe_name": "Minnesota", "fips": "US32", "iso_a2": "US", "latitude": 46, "objectid_1": 3494, "woe_label": "Minnesota, US, United States", "type": "State", "id": "US.MN"}, "arcs": [[6, 7, 8, 9, 10, 11]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "MT", "code_hasc": "US.MT", "name": "Montana", "admin": "United States of America", "type_en": "State", "region": "West", "woe_id": 2347585, "longitude": -110, "woe_name": "Montana", "fips": "US30", "iso_a2": "US", "latitude": 46, "objectid_1": 3510, "woe_label": "Montana, US, United States", "type": "State", "id": "US.MT"}, "arcs": [[12, 13, 14, 15, 16]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "ND", "code_hasc": "US.ND", "name": "North Dakota", "admin": "United States of America", "type_en": "State", "region": "Midwest", "woe_id": 2347593, "longitude": -100, "woe_name": "North Dakota", "fips": "US38", "iso_a2": "US", "latitude": 47, "objectid_1": 3511, "woe_label": "North Dakota, US, United States", "type": "State", "id": "US.ND"}, "arcs": [[17, -17, 18, -10]]}, {"type": "MultiPolygon", "properties": {"labelrank": 0, "postal": "HI", "code_hasc": "US.HI", "name": "Hawaii", "admin": "United States of America", "type_en": "State", "region": "West", "woe_id": 2347570, "longitude": -157, "woe_name": "Hawaii", "fips": "US15", "iso_a2": "US", "latitude": 21, "objectid_1": 347, "woe_label": "Hawaii, US, United States", "type": "State", "id": "US.HI"}, "arcs": [[[19]], [[20]], [[21]], [[22]]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "ID", "code_hasc": "US.ID", "name": "Idaho", "admin": "United States of America", "type_en": "State", "region": "West", "woe_id": 2347571, "longitude": -114, "woe_name": "Idaho", "fips": "US16", "iso_a2": "US", "latitude": 43, "objectid_1": 3512, "woe_label": "Idaho, US, United States", "type": "State", "id": "US.ID"}, "arcs": [[23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, -15]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "WA", "code_hasc": "US.WA", "name": "Washington", "admin": "United States of America", "type_en": "State", "region": "West", "woe_id": 2347606, "longitude": -120, "woe_name": "Washington", "fips": "US53", "iso_a2": "US", "latitude": 47, "objectid_1": 872, "woe_label": "Washington, US, United States", "type": "State", "id": "US.WA"}, "arcs": [[43, 44, 45, 46, 47]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "AZ", "code_hasc": "US.AZ", "name": "Arizona", "admin": "United States of America", "type_en": "State", "region": "West", "woe_id": 2347561, "longitude": -111, "woe_name": "Arizona", "fips": "US04", "iso_a2": "US", "latitude": 34, "objectid_1": 3513, "woe_label": "Arizona, US, United States", "type": "State", "id": "US.AZ"}, "arcs": [[48, 49, 50, 51, 52, 53, 54]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "CA", "code_hasc": "US.CA", "name": "California", "admin": "United States of America", "type_en": "State", "region": "West", "woe_id": 2347563, "longitude": -119, "woe_name": "California", "fips": "US06", "iso_a2": "US", "latitude": 36, "objectid_1": 356, "woe_label": "California, US, United States", "type": "State", "id": "US.CA"}, "arcs": [[55, 56, 57, 58, 59, 60, 61, 62]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "CO", "code_hasc": "US.CO", "name": "Colorado", "admin": "United States of America", "type_en": "State", "region": "West", "woe_id": 2347564, "longitude": -105, "woe_name": "Colorado", "fips": "US08", "iso_a2": "US", "latitude": 38, "objectid_1": 3514, "woe_label": "Colorado, US, United States", "type": "State", "id": "US.CO"}, "arcs": [[63, 64, 65, 66, 67, 68]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "NV", "code_hasc": "US.NV", "name": "Nevada", "admin": "United States of America", "type_en": "State", "region": "West", "woe_id": 2347587, "longitude": -117, "woe_name": "Nevada", "fips": "US32", "iso_a2": "US", "latitude": 39, "objectid_1": 3515, "woe_label": "Nevada, US, United States", "type": "State", "id": "US.NV"}, "arcs": [[-54, -56, 69, -26, 70]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "NM", "code_hasc": "US.NM", "name": "New Mexico", "admin": "United States of America", "type_en": "State", "region": "West", "woe_id": 2347590, "longitude": -106, "woe_name": "New Mexico", "fips": "US35", "iso_a2": "US", "latitude": 34, "objectid_1": 3516, "woe_label": "New Mexico, US, United States", "type": "State", "id": "US.NM"}, "arcs": [[71, 72, -49, -66, 73]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "OR", "code_hasc": "US.OR", "name": "Oregon", "admin": "United States of America", "type_en": "State", "region": "West", "woe_id": 2347596, "longitude": -120, "woe_name": "Oregon", "fips": "US41", "iso_a2": "US", "latitude": 43, "objectid_1": 873, "woe_label": "Oregon, US, United States", "type": "State", "id": "US.OR"}, "arcs": [[74, 75, 76, 77, 78, 79, 80, 81, 82, -70, -63, 83, -44]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "UT", "code_hasc": "US.UT", "name": "Utah", "admin": "United States of America", "type_en": "State", "region": "West", "woe_id": 2347603, "longitude": -111, "woe_name": "Utah", "fips": "US49", "iso_a2": "US", "latitude": 39, "objectid_1": 3517, "woe_label": "Utah, US, United States", "type": "State", "id": "US.UT"}, "arcs": [[84, -67, -55, -71, -25]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "WY", "code_hasc": "US.WY", "name": "Wyoming", "admin": "United States of America", "type_en": "State", "region": "West", "woe_id": 2347609, "longitude": -107, "woe_name": "Wyoming", "fips": "US56", "iso_a2": "US", "latitude": 42, "objectid_1": 3518, "woe_label": "Wyoming, US, United States", "type": "State", "id": "US.WY"}, "arcs": [[-68, -85, -24, -14, 85, 86]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "AR", "code_hasc": "US.AR", "name": "Arkansas", "admin": "United States of America", "type_en": "State", "region": "South", "woe_id": 2347562, "longitude": -92, "woe_name": "Arkansas", "fips": "US05", "iso_a2": "US", "latitude": 34, "objectid_1": 3519, "woe_label": "Arkansas, US, United States", "type": "State", "id": "US.AR"}, "arcs": [[87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "IA", "code_hasc": "US.IA", "name": "Iowa", "admin": "United States of America", "type_en": "State", "region": "Midwest", "woe_id": 2347574, "longitude": -93, "woe_name": "Iowa", "fips": "US19", "iso_a2": "US", "latitude": 42, "objectid_1": 3520, "woe_label": "Iowa, US, United States", "type": "State", "id": "US.IA"}, "arcs": [[100, 101, 102, 103, -8, 104]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "KS", "code_hasc": "US.KS", "name": "Kansas", "admin": "United States of America", "type_en": "State", "region": "Midwest", "woe_id": 2347575, "longitude": -98, "woe_name": "Kansas", "fips": "US20", "iso_a2": "US", "latitude": 38, "objectid_1": 3521, "woe_label": "Kansas, US, United States", "type": "State", "id": "US.KS"}, "arcs": [[105, -64, 106, 107]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "MO", "code_hasc": "US.MO", "name": "Missouri", "admin": "United States of America", "type_en": "State", "region": "Midwest", "woe_id": 2347584, "longitude": -92, "woe_name": "Missouri", "fips": "US29", "iso_a2": "US", "latitude": 38, "objectid_1": 3522, "woe_label": "Missouri, US, United States", "type": "State", "id": "US.MO"}, "arcs": [[108, 109, 110, 111, 112, -100, 113, -108, 114, -102]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "NE", "code_hasc": "US.NE", "name": "Nebraska", "admin": "United States of America", "type_en": "State", "region": "Midwest", "woe_id": 2347586, "longitude": -99, "woe_name": "Nebraska", "fips": "US31", "iso_a2": "US", "latitude": 41, "objectid_1": 3523, "woe_label": "Nebraska, US, United States", "type": "State", "id": "US.NE"}, "arcs": [[-103, -115, -107, -69, -87, 115]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "OK", "code_hasc": "US.OK", "name": "Oklahoma", "admin": "United States of America", "type_en": "State", "region": "South", "woe_id": 2347595, "longitude": -97, "woe_name": "Oklahoma", "fips": "US40", "iso_a2": "US", "latitude": 35, "objectid_1": 3524, "woe_label": "Oklahoma, US, United States", "type": "State", "id": "US.OK"}, "arcs": [[-99, 116, 117, 118, 119, -74, -65, -106, -114]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "SD", "code_hasc": "US.SD", "name": "South Dakota", "admin": "United States of America", "type_en": "State", "region": "Midwest", "woe_id": 2347600, "longitude": -100, "woe_name": "South Dakota", "fips": "US46", "iso_a2": "US", "latitude": 44, "objectid_1": 3525, "woe_label": "South Dakota, US, United States", "type": "State", "id": "US.SD"}, "arcs": [[-9, -104, -116, -86, -13, -18]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "LA", "code_hasc": "US.LA", "name": "Louisiana", "admin": "United States of America", "type_en": "State", "region": "South", "woe_id": 2347577, "longitude": -91, "woe_name": "Louisiana", "fips": "US22", "iso_a2": "US", "latitude": 30, "objectid_1": 3455, "woe_label": "Louisiana, US, United States", "type": "State", "id": "US.LA"}, "arcs": [[120, 121, -95, 122]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "TX", "code_hasc": "US.TX", "name": "Texas", "admin": "United States of America", "type_en": "State", "region": "South", "woe_id": 2347602, "longitude": -98, "woe_name": "Texas", "fips": "US48", "iso_a2": "US", "latitude": 31, "objectid_1": 3449, "woe_label": "Texas, US, United States", "type": "State", "id": "US.TX"}, "arcs": [[-122, 123, 124, 125, 126, 127, 128, 129]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "CT", "code_hasc": "US.CT", "name": "Connecticut", "admin": "United States of America", "type_en": "State", "region": "Northeast", "woe_id": 2347565, "longitude": -72, "woe_name": "Connecticut", "fips": "US09", "iso_a2": "US", "latitude": 41, "objectid_1": 3495, "woe_label": "Connecticut, US, United States", "type": "State", "id": "US.CT"}, "arcs": [[130, 131, 132, 133, 134, 135]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "NH", "code_hasc": "US.NH", "name": "New Hampshire", "admin": "United States of America", "type_en": "State", "region": "Northeast", "woe_id": 2347588, "longitude": -71, "woe_name": "New Hampshire", "fips": "US33", "iso_a2": "US", "latitude": 43, "objectid_1": 3496, "woe_label": "New Hampshire, US, United States", "type": "State", "id": "US.NH"}, "arcs": [[136, 137, 138, 139, 140]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "RI", "code_hasc": "US.RI", "name": "Rhode Island", "admin": "United States of America", "type_en": "State", "region": "Northeast", "woe_id": 2347598, "longitude": -71, "woe_name": "Rhode Island", "fips": "US44", "iso_a2": "US", "latitude": 41, "objectid_1": 2084, "woe_label": "Rhode Island, US, United States", "type": "State", "id": "US.RI"}, "arcs": [[141, -133, 142, -5]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "VT", "code_hasc": "US.VT", "name": "Vermont", "admin": "United States of America", "type_en": "State", "region": "Northeast", "woe_id": 2347604, "longitude": -72, "woe_name": "Vermont", "fips": "US50", "iso_a2": "US", "latitude": 44, "objectid_1": 3497, "woe_label": "Vermont, US, United States", "type": "State", "id": "US.VT"}, "arcs": [[143, 144, 145, 146, 147, 148, 149, -141]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "AL", "code_hasc": "US.AL", "name": "Alabama", "admin": "United States of America", "type_en": "State", "region": "South", "woe_id": 2347559, "longitude": -86, "woe_name": "Alabama", "fips": "US01", "iso_a2": "US", "latitude": 32, "objectid_1": 3460, "woe_label": "Alabama, US, United States", "type": "State", "id": "US.AL"}, "arcs": [[150, 151, 152, 153, 154, 155, 156]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "FL", "code_hasc": "US.FL", "name": "Florida", "admin": "United States of America", "type_en": "State", "region": "South", "woe_id": 2347568, "longitude": -81, "woe_name": "Florida", "fips": "US12", "iso_a2": "US", "latitude": 28, "objectid_1": 3447, "woe_label": "Florida, US, United States", "type": "State", "id": "US.FL"}, "arcs": [[157, -152, 158]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "GA", "code_hasc": "US.GA", "name": "Georgia", "admin": "United States of America", "type_en": "State", "region": "South", "woe_id": 2347569, "longitude": -83, "woe_name": "Georgia", "fips": "US13", "iso_a2": "US", "latitude": 32, "objectid_1": 1924, "woe_label": "Georgia, US, United States", "type": "State", "id": "US.GA"}, "arcs": [[159, -159, -151, 160, 161, 162]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "MS", "code_hasc": "US.MS", "name": "Mississippi", "admin": "United States of America", "type_en": "State", "region": "South", "woe_id": 2347583, "longitude": -89, "woe_name": "Mississippi", "fips": "US28", "iso_a2": "US", "latitude": 32, "objectid_1": 3459, "woe_label": "Mississippi, US, United States", "type": "State", "id": "US.MS"}, "arcs": [[-154, 163, -123, 164, 165, 166, 167, 168, 169, 170, 171, 172]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "SC", "code_hasc": "US.SC", "name": "South Carolina", "admin": "United States of America", "type_en": "State", "region": "South", "woe_id": 2347599, "longitude": -80, "woe_name": "South Carolina", "fips": "US45", "iso_a2": "US", "latitude": 33, "objectid_1": 3498, "woe_label": "South Carolina, US, United States", "type": "State", "id": "US.SC"}, "arcs": [[173, -163, 174]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "IL", "code_hasc": "US.IL", "name": "Illinois", "admin": "United States of America", "type_en": "State", "region": "Midwest", "woe_id": 2347572, "longitude": -89, "woe_name": "Illinois", "fips": "US17", "iso_a2": "US", "latitude": 39, "objectid_1": 3499, "woe_label": "Illinois, US, United States", "type": "State", "id": "US.IL"}, "arcs": [[175, 176, 177, 178, 179, 180, -109, -101, 181, 182]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "IN", "code_hasc": "US.IN", "name": "Indiana", "admin": "United States of America", "type_en": "State", "region": "Midwest", "woe_id": 2347573, "longitude": -86, "woe_name": "Indiana", "fips": "US18", "iso_a2": "US", "latitude": 39, "objectid_1": 3500, "woe_label": "Indiana, US, United States", "type": "State", "id": "US.IN"}, "arcs": [[183, 184, 185, -176]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "KY", "code_hasc": "US.KY", "name": "Kentucky", "admin": "United States of America", "type_en": "State", "region": "South", "woe_id": 2347576, "longitude": -85, "woe_name": "Kentucky", "fips": "US21", "iso_a2": "US", "latitude": 37, "objectid_1": 3501, "woe_label": "Kentucky, US, United States", "type": "State", "id": "US.KY"}, "arcs": [[186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "NC", "code_hasc": "US.NC", "name": "North Carolina", "admin": "United States of America", "type_en": "State", "region": "South", "woe_id": 2347592, "longitude": -78, "woe_name": "North Carolina", "fips": "US37", "iso_a2": "US", "latitude": 35, "objectid_1": 3303, "woe_label": "North Carolina, US, United States", "type": "State", "id": "US.NC"}, "arcs": [[206, -175, -162, 207, 208, 209]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "OH", "code_hasc": "US.OH", "name": "Ohio", "admin": "United States of America", "type_en": "State", "region": "Midwest", "woe_id": 2347594, "longitude": -82, "woe_name": "Ohio", "fips": "US39", "iso_a2": "US", "latitude": 40, "objectid_1": 3502, "woe_label": "Ohio, US, United States", "type": "State", "id": "US.OH"}, "arcs": [[210, 211, -185, 212, 213, 214]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "TN", "code_hasc": "US.TN", "name": "Tennessee", "admin": "United States of America", "type_en": "State", "region": "South", "woe_id": 2347601, "longitude": -86, "woe_name": "Tennessee", "fips": "US47", "iso_a2": "US", "latitude": 35, "objectid_1": 3503, "woe_label": "Tennessee, US, United States", "type": "State", "id": "US.TN"}, "arcs": [[-88, -113, 215, 216, 217, 218, 219, 220, 221, 222, 223]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "VA", "code_hasc": "US.VA", "name": "Virginia", "admin": "United States of America", "type_en": "State", "region": "South", "woe_id": 2347605, "longitude": -78, "woe_name": "Virginia", "fips": "US51", "iso_a2": "US", "latitude": 37, "objectid_1": 3475, "woe_label": "Virginia, US, United States", "type": "State", "id": "US.VA"}, "arcs": [[224, 225, -210, 226, -187, 227, 228, 229]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "WI", "code_hasc": "US.WI", "name": "Wisconsin", "admin": "United States of America", "type_en": "State", "region": "Midwest", "woe_id": 2347608, "longitude": -89, "woe_name": "Wisconsin", "fips": "US55", "iso_a2": "US", "latitude": 44, "objectid_1": 3504, "woe_label": "Wisconsin, US, United States", "type": "State", "id": "US.WI"}, "arcs": [[230, -182, -105, -7]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "WV", "code_hasc": "US.WV", "name": "West Virginia", "admin": "United States of America", "type_en": "State", "region": "South", "woe_id": 2347607, "longitude": -80, "woe_name": "West Virginia", "fips": "US54", "iso_a2": "US", "latitude": 38, "objectid_1": 3505, "woe_label": "West Virginia, US, United States", "type": "State", "id": "US.WV"}, "arcs": [[231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, -211, 243]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "DE", "code_hasc": "US.DE", "name": "Delaware", "admin": "United States of America", "type_en": "State", "region": "South", "woe_id": 2347566, "longitude": -75, "woe_name": "Delaware", "fips": "US10", "iso_a2": "US", "latitude": 38, "objectid_1": 3506, "woe_label": "Delaware, US, United States", "type": "State", "id": "US.DE"}, "arcs": [[244, 245, 246, 247, 248]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "MD", "code_hasc": "US.MD", "name": "Maryland", "admin": "United States of America", "type_en": "State", "region": "South", "woe_id": 2347579, "longitude": -77, "woe_name": "Maryland", "fips": "US24", "iso_a2": "US", "latitude": 39, "objectid_1": 3508, "woe_label": "Maryland, US, United States", "type": "State", "id": "US.MD"}, "arcs": [[-225, 249, 250, 251, 252, 253, 254, 255]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "NJ", "code_hasc": "US.NJ", "name": "New Jersey", "admin": "United States of America", "type_en": "State", "region": "Northeast", "woe_id": 2347589, "longitude": -74, "woe_name": "New Jersey", "fips": "US34", "iso_a2": "US", "latitude": 40, "objectid_1": 3478, "woe_label": "New Jersey, US, United States", "type": "State", "id": "US.NJ"}, "arcs": [[256, 257, 258, 259, 260, 261, 262, 263]]}, {"type": "MultiPolygon", "properties": {"labelrank": 0, "postal": "NY", "code_hasc": "US.NY", "name": "New York", "admin": "United States of America", "type_en": "State", "region": "Northeast", "woe_id": 2347591, "longitude": -75, "woe_name": "New York", "fips": "US36", "iso_a2": "US", "latitude": 43, "objectid_1": 2056, "woe_label": "New York, US, United States", "type": "State", "id": "US.NY"}, "arcs": [[[264]], [[265, 266, 267, 268, -257, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -2]]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "PA", "code_hasc": "US.PA", "name": "Pennsylvania", "admin": "United States of America", "type_en": "State", "region": "Northeast", "woe_id": 2347597, "longitude": -77, "woe_name": "Pennsylvania", "fips": "US42", "iso_a2": "US", "latitude": 40, "objectid_1": 3509, "woe_label": "Pennsylvania, US, United States", "type": "State", "id": "US.PA"}, "arcs": [[-254, -244, -215, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -249]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "ME", "code_hasc": "US.ME", "name": "Maine", "admin": "United States of America", "type_en": "State", "region": "Northeast", "woe_id": 2347578, "longitude": -69, "woe_name": "Maine", "fips": "US23", "iso_a2": "US", "latitude": 45, "objectid_1": 397, "woe_label": "Maine, US, United States", "type": "State", "id": "US.ME"}, "arcs": [[292, 293, 294]]}, {"type": "Polygon", "properties": {"labelrank": 0, "postal": "MI", "code_hasc": "US.MI", "name": "Michigan", "admin": "United States of America", "type_en": "State", "region": "Midwest", "woe_id": 2347581, "longitude": -84, "woe_name": "Michigan", "fips": "US26", "iso_a2": "US", "latitude": 43, "objectid_1": 3202, "woe_label": "Michigan, US, United States", "type": "State", "id": "US.MI"}, "arcs": [[-184, -183, -231, -12, 295, -213]]}, {"type": "MultiPolygon", "properties": {"labelrank": 0, "postal": "AK", "code_hasc": "US.AK", "name": "Alaska", "admin": "United States of America", "type_en": "State", "region": "West", "woe_id": 2347560, "longitude": -151, "woe_name": "Alaska", "fips": "US02", "iso_a2": "US", "latitude": 65, "objectid_1": 500, "woe_label": "Alaska, US, United States", "type": "State", "id": "US.AK"}, "arcs": [[[296]], [[297]], [[298]], [[299]], [[300]], [[301]], [[302]], [[303]], [[304]], [[305]], [[306]], [[307]], [[308]], [[309]], [[310]], [[311]]]}]}}, "bbox": [-3758, -2824.8073278132397, 3591, 2227], "type": "Topology"}
--------------------------------------------------------------------------------
/tests/helpers/destroy-app.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 |
3 | export default function destroyApp(application) {
4 | Ember.run(application, 'destroy');
5 | }
6 |
--------------------------------------------------------------------------------
/tests/helpers/module-for-acceptance.js:
--------------------------------------------------------------------------------
1 | import { module } from 'qunit';
2 | import Ember from 'ember';
3 | import startApp from '../helpers/start-app';
4 | import destroyApp from '../helpers/destroy-app';
5 |
6 | const { RSVP: { Promise } } = Ember;
7 |
8 | export default function(name, options = {}) {
9 | module(name, {
10 | beforeEach() {
11 | this.application = startApp();
12 |
13 | if (options.beforeEach) {
14 | return options.beforeEach.apply(this, arguments);
15 | }
16 | },
17 |
18 | afterEach() {
19 | let afterEach = options.afterEach && options.afterEach.apply(this, arguments);
20 | return Promise.resolve(afterEach).then(() => destroyApp(this.application));
21 | }
22 | });
23 | }
24 |
--------------------------------------------------------------------------------
/tests/helpers/resolver.js:
--------------------------------------------------------------------------------
1 | import Resolver from '../../resolver';
2 | import config from '../../config/environment';
3 |
4 | const resolver = Resolver.create();
5 |
6 | resolver.namespace = {
7 | modulePrefix: config.modulePrefix,
8 | podModulePrefix: config.podModulePrefix
9 | };
10 |
11 | export default resolver;
12 |
--------------------------------------------------------------------------------
/tests/helpers/start-app.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 | import Application from '../../app';
3 | import config from '../../config/environment';
4 |
5 | export default function startApp(attrs) {
6 | let application;
7 |
8 | // use defaults, but you can override
9 | let attributes = Ember.assign({}, config.APP, attrs);
10 |
11 | Ember.run(() => {
12 | application = Application.create(attributes);
13 | application.setupForTesting();
14 | application.injectTestHelpers();
15 | });
16 |
17 | return application;
18 | }
19 |
--------------------------------------------------------------------------------
/tests/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Dummy Tests
7 |
8 |
9 |
10 | {{content-for "head"}}
11 | {{content-for "test-head"}}
12 |
13 |
14 |
15 |
16 |
17 | {{content-for "head-footer"}}
18 | {{content-for "test-head-footer"}}
19 |
20 |
21 | {{content-for "body"}}
22 | {{content-for "test-body"}}
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 | {{content-for "body-footer"}}
31 | {{content-for "test-body-footer"}}
32 |
33 |
34 |
--------------------------------------------------------------------------------
/tests/integration/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AnyChart/AnyChart-Ember/4d0c17e2508e25b21dd28f1dd0eef03e9c600b2b/tests/integration/.gitkeep
--------------------------------------------------------------------------------
/tests/test-helper.js:
--------------------------------------------------------------------------------
1 | import resolver from './helpers/resolver';
2 | import {
3 | setResolver
4 | } from 'ember-qunit';
5 |
6 | setResolver(resolver);
7 |
--------------------------------------------------------------------------------
/tests/unit/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AnyChart/AnyChart-Ember/4d0c17e2508e25b21dd28f1dd0eef03e9c600b2b/tests/unit/.gitkeep
--------------------------------------------------------------------------------
/vendor/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AnyChart/AnyChart-Ember/4d0c17e2508e25b21dd28f1dd0eef03e9c600b2b/vendor/.gitkeep
--------------------------------------------------------------------------------
/vendor/anychart/fonts.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'anychart';
3 | src: url('fonts/anychart.eot?7r1vso');
4 | src: url('fonts/anychart.eot?7r1vso#iefix') format('embedded-opentype'),
5 | url('fonts/anychart.ttf?7r1vso') format('truetype'),
6 | url('fonts/anychart.woff?7r1vso') format('woff'),
7 | url('fonts/anychart.svg?7r1vso#anychart') format('svg');
8 | font-weight: normal;
9 | font-style: normal;
10 | }
11 |
12 | .ac {
13 | /* use !important to prevent issues with browser extensions that change fonts */
14 | font-family: 'anychart' !important;
15 | speak: none;
16 | font-style: normal;
17 | font-weight: normal;
18 | font-variant: normal;
19 | text-transform: none;
20 | line-height: 1;
21 |
22 | /* Better Font Rendering =========== */
23 | -webkit-font-smoothing: antialiased;
24 | -moz-osx-font-smoothing: grayscale;
25 | }
26 |
27 | .ac-logo:before {
28 | content: "\e900";
29 | }
30 | .ac-anychart:before {
31 | content: "\e901";
32 | }
33 | .ac-anychart2:before {
34 | content: "\e902";
35 | }
36 | .ac-desktop:before {
37 | content: "\e903";
38 | }
39 | .ac-chart-column:before {
40 | content: "\e904";
41 | }
42 | .ac-chart-gauge:before {
43 | content: "\e905";
44 | }
45 | .ac-folder:before {
46 | content: "\e906";
47 | }
48 | .ac-file-image-o:before {
49 | content: "\e907";
50 | }
51 | .ac-map-o:before {
52 | content: "\e908";
53 | }
54 | .ac-book:before {
55 | content: "\e909";
56 | }
57 | .ac-envelope:before {
58 | content: "\e90a";
59 | }
60 | .ac-phone-call:before {
61 | content: "\e90b";
62 | }
63 | .ac-support:before {
64 | content: "\e90c";
65 | }
66 | .ac-print:before {
67 | content: "\e90d";
68 | }
69 | .ac-print2:before {
70 | content: "\e90e";
71 | }
72 | .ac-position-center2:before {
73 | content: "\e90f";
74 | }
75 | .ac-rectangle-2:before {
76 | content: "\e910";
77 | }
78 | .ac-upload:before {
79 | content: "\e911";
80 | }
81 | .ac-cloud-upload:before {
82 | content: "\e912";
83 | }
84 | .ac-download-zip:before {
85 | content: "\e913";
86 | }
87 | .ac-jsfiddle:before {
88 | content: "\e914";
89 | }
90 | .ac-line:before {
91 | content: "\e915";
92 | }
93 | .ac-horizontal-line:before {
94 | content: "\e916";
95 | }
96 | .ac-vertical-line:before {
97 | content: "\e917";
98 | }
99 | .ac-infinite-line:before {
100 | content: "\e918";
101 | }
102 | .ac-ray:before {
103 | content: "\e919";
104 | }
105 | .ac-rectangle:before {
106 | content: "\e91a";
107 | }
108 | .ac-ellipse:before {
109 | content: "\e91b";
110 | }
111 | .ac-triangle:before {
112 | content: "\e91c";
113 | }
114 | .ac-fibonacci-arc:before {
115 | content: "\e91d";
116 | }
117 | .ac-fibonacci-fan:before {
118 | content: "\e91e";
119 | }
120 | .ac-fibonacci-retracement:before {
121 | content: "\e91f";
122 | }
123 | .ac-fibonacci-timezones:before {
124 | content: "\e920";
125 | }
126 | .ac-andrews-pitchfork:before {
127 | content: "\e921";
128 | }
129 | .ac-trend-channel:before {
130 | content: "\e922";
131 | }
132 | .ac-question-circle-thin:before {
133 | content: "\e923";
134 | }
135 | .ac-ruler-paint-brush-o:before {
136 | content: "\e924";
137 | }
138 | .ac-plus:before {
139 | content: "\e925";
140 | }
141 | .ac-minus:before {
142 | content: "\e926";
143 | }
144 | .ac-check-circle-thick:before {
145 | content: "\e927";
146 | }
147 | .ac-chevron-circle-left-thin:before {
148 | content: "\e928";
149 | }
150 | .ac-chevron-circle-right-thin:before {
151 | content: "\e929";
152 | }
153 | .ac-chevron-circle-up-thin:before {
154 | content: "\e92a";
155 | }
156 | .ac-chevron-circle-down-thin:before {
157 | content: "\e92b";
158 | }
159 | .ac-linkedin:before {
160 | content: "\e92c";
161 | }
162 | .ac-anystock:before {
163 | content: "\e92d";
164 | }
165 | .ac-anygantt:before {
166 | content: "\e92e";
167 | }
168 | .ac-anymap:before {
169 | content: "\e92f";
170 | }
171 | .ac-anymap2:before {
172 | content: "\e930";
173 | }
174 | .ac-api:before {
175 | content: "\e931";
176 | }
177 | .ac-javascript:before {
178 | content: "\e932";
179 | }
180 | .ac-globe:before {
181 | content: "\e933";
182 | }
183 | .ac-charts-many:before {
184 | content: "\e934";
185 | }
186 | .ac-bars:before {
187 | content: "\e935";
188 | }
189 | .ac-search:before {
190 | content: "\e936";
191 | }
192 | .ac-star-4:before {
193 | content: "\e937";
194 | }
195 | .ac-triangle-right:before {
196 | content: "\e938";
197 | }
198 | .ac-position-left:before {
199 | content: "\e939";
200 | }
201 | .ac-position-right:before {
202 | content: "\e93a";
203 | }
204 | .ac-question-circle:before {
205 | content: "\e93b";
206 | }
207 | .ac-question-circle-o:before {
208 | content: "\e93c";
209 | }
210 | .ac-plane:before {
211 | content: "\e93d";
212 | }
213 | .ac-smile:before {
214 | content: "\e93e";
215 | }
216 | .ac-disk-slash:before {
217 | content: "\e93f";
218 | }
219 | .ac-v-line-dotted:before {
220 | content: "\e940";
221 | }
222 | .ac-check:before {
223 | content: "\e941";
224 | }
225 | .ac-remove:before {
226 | content: "\e942";
227 | }
228 | .ac-check-thin:before {
229 | content: "\e943";
230 | }
231 | .ac-fill:before {
232 | content: "\e944";
233 | }
234 | .ac-remove2-thin:before {
235 | content: "\e945";
236 | }
237 | .ac-check-circle-o:before {
238 | content: "\e946";
239 | }
240 | .ac-remove-circle:before {
241 | content: "\e947";
242 | }
243 | .ac-chevron-circle-left:before {
244 | content: "\e948";
245 | }
246 | .ac-chevron-circle-right:before {
247 | content: "\e949";
248 | }
249 | .ac-chevron-circle-up:before {
250 | content: "\e94a";
251 | }
252 | .ac-chevron-circle-down:before {
253 | content: "\e94b";
254 | }
255 | .ac-bookmark:before {
256 | content: "\e94c";
257 | }
258 | .ac-mobile-phone:before {
259 | content: "\e94d";
260 | }
261 | .ac-chevron-up:before {
262 | content: "\e94e";
263 | }
264 | .ac-chevron-down:before {
265 | content: "\e94f";
266 | }
267 | .ac-download-picture:before {
268 | content: "\e950";
269 | }
270 | .ac-download-chart:before {
271 | content: "\e951";
272 | }
273 | .ac-chevron-up-thick:before {
274 | content: "\e952";
275 | }
276 | .ac-chevron-down-thick:before {
277 | content: "\e953";
278 | }
279 | .ac-tint:before {
280 | content: "\e954";
281 | }
282 | .ac-position-top:before {
283 | content: "\e955";
284 | }
285 | .ac-arrow-up:before {
286 | content: "\e956";
287 | }
288 | .ac-arrow-down:before {
289 | content: "\e957";
290 | }
291 | .ac-arrow-up-left-square:before {
292 | content: "\e958";
293 | }
294 | .ac-position-bottom:before {
295 | content: "\e959";
296 | }
297 | .ac-arrow-up-right-square:before {
298 | content: "\e95a";
299 | }
300 | .ac-arrow-right-square:before {
301 | content: "\e95b";
302 | }
303 | .ac-arrow-down-right-square:before {
304 | content: "\e95c";
305 | }
306 | .ac-remove-thin:before {
307 | content: "\e95d";
308 | }
309 | .ac-arrow-down-left-square:before {
310 | content: "\e95e";
311 | }
312 | .ac-arrow-left-square:before {
313 | content: "\e95f";
314 | }
315 | .ac-chevron-left:before {
316 | content: "\e960";
317 | }
318 | .ac-chevron-right:before {
319 | content: "\e961";
320 | }
321 | .ac-chevron-left-thick:before {
322 | content: "\e962";
323 | }
324 | .ac-arrow-right-thin:before {
325 | content: "\e963";
326 | }
327 | .ac-chevron-right-thick:before {
328 | content: "\e964";
329 | }
330 | .ac-arrow-left:before {
331 | content: "\e965";
332 | }
333 | .ac-arrow-right:before {
334 | content: "\e966";
335 | }
336 | .ac-arrow-left-thin:before {
337 | content: "\e967";
338 | }
339 | .ac-arrow-up-square:before {
340 | content: "\e968";
341 | }
342 | .ac-arrow-down-square:before {
343 | content: "\e969";
344 | }
345 | .ac-arrow-up-left-thin:before {
346 | content: "\e96a";
347 | }
348 | .ac-arrow-up-thin:before {
349 | content: "\e96b";
350 | }
351 | .ac-share:before {
352 | content: "\e96c";
353 | }
354 | .ac-arrow-up-right-thin:before {
355 | content: "\e96d";
356 | }
357 | .ac-pause:before {
358 | content: "\e96e";
359 | }
360 | .ac-stop:before {
361 | content: "\e96f";
362 | }
363 | .ac-arrow-down-right-thin:before {
364 | content: "\e970";
365 | }
366 | .ac-arrow-down-thin:before {
367 | content: "\e971";
368 | }
369 | .ac-arrow-down-left-thin:before {
370 | content: "\e972";
371 | }
372 | .ac-undo:before {
373 | content: "\e973";
374 | }
375 | .ac-redo:before {
376 | content: "\e974";
377 | }
378 | .ac-forward2:before {
379 | content: "\e975";
380 | }
381 | .ac-map2-o:before {
382 | content: "\e976";
383 | }
384 | .ac-reply:before {
385 | content: "\e977";
386 | }
387 | .ac-play:before {
388 | content: "\e978";
389 | }
390 | .ac-search2:before {
391 | content: "\e979";
392 | }
393 | .ac-backward:before {
394 | content: "\e97a";
395 | }
396 | .ac-forward:before {
397 | content: "\e97b";
398 | }
399 | .ac-facebook:before {
400 | content: "\e97c";
401 | }
402 | .ac-underline:before {
403 | content: "\e97d";
404 | }
405 | .ac-twitter:before {
406 | content: "\e97e";
407 | }
408 | .ac-code:before {
409 | content: "\e97f";
410 | }
411 | .ac-sort:before {
412 | content: "\e980";
413 | }
414 | .ac-sort-asc:before {
415 | content: "\e981";
416 | }
417 | .ac-sort-desc:before {
418 | content: "\e982";
419 | }
420 | .ac-html5:before {
421 | content: "\e983";
422 | }
423 | .ac-font:before {
424 | content: "\e984";
425 | }
426 | .ac-bold:before {
427 | content: "\e985";
428 | }
429 | .ac-italic:before {
430 | content: "\e986";
431 | }
432 | .ac-strikethrough:before {
433 | content: "\e987";
434 | }
435 | .ac-sort-alpha-asc:before {
436 | content: "\e988";
437 | }
438 | .ac-info:before {
439 | content: "\e989";
440 | }
441 | .ac-sort-alpha-desc:before {
442 | content: "\e98a";
443 | }
444 | .ac-question:before {
445 | content: "\e98b";
446 | }
447 | .ac-sort-amount-asc:before {
448 | content: "\e98c";
449 | }
450 | .ac-sort-amount-desc:before {
451 | content: "\e98d";
452 | }
453 | .ac-chart-ruler:before {
454 | content: "\e98e";
455 | }
456 | .ac-chart-ruler-pencil:before {
457 | content: "\e98f";
458 | }
459 | .ac-chart-ruler-pencil2:before {
460 | content: "\e990";
461 | }
462 | .ac-ruler-paint-brush:before {
463 | content: "\e991";
464 | }
465 | .ac-universal-access:before {
466 | content: "\e992";
467 | }
468 | .ac-low-vision:before {
469 | content: "\e993";
470 | }
471 | .ac-deaf:before {
472 | content: "\e994";
473 | }
474 | .ac-sort-numeric-asc:before {
475 | content: "\e995";
476 | }
477 | .ac-sort-numeric-desc:before {
478 | content: "\e996";
479 | }
480 | .ac-exclamation:before {
481 | content: "\e997";
482 | }
483 | .ac-keyboard-o:before {
484 | content: "\e998";
485 | }
486 | .ac-folder-open:before {
487 | content: "\e999";
488 | }
489 | .ac-clone:before {
490 | content: "\e99a";
491 | }
492 | .ac-object-group:before {
493 | content: "\e99b";
494 | }
495 | .ac-object-ungroup:before {
496 | content: "\e99c";
497 | }
498 | .ac-chart-database-o:before {
499 | content: "\e99d";
500 | }
501 | .ac-chart-database-o2:before {
502 | content: "\e99e";
503 | }
504 | .ac-trash-o:before {
505 | content: "\e99f";
506 | }
507 | .ac-calendar:before {
508 | content: "\e9a0";
509 | }
510 | .ac-calendar-plus-o:before {
511 | content: "\e9a1";
512 | }
513 | .ac-file-excel-o:before {
514 | content: "\e9a2";
515 | }
516 | .ac-triangle-left:before {
517 | content: "\e9a3";
518 | }
519 | .ac-file-pdf-o:before {
520 | content: "\e9a4";
521 | }
522 | .ac-star:before {
523 | content: "\e9a5";
524 | }
525 | .ac-star-half-o:before {
526 | content: "\e9a6";
527 | }
528 | .ac-star-o:before {
529 | content: "\e9a7";
530 | }
531 | .ac-file-archive-o:before {
532 | content: "\e9a8";
533 | }
534 | .ac-file-code-o:before {
535 | content: "\e9a9";
536 | }
537 | .ac-user-plus:before {
538 | content: "\e9aa";
539 | }
540 | .ac-caret-left:before {
541 | content: "\e9ab";
542 | }
543 | .ac-caret-right:before {
544 | content: "\e9ac";
545 | }
546 | .ac-caret-down:before {
547 | content: "\e9ad";
548 | }
549 | .ac-caret-up:before {
550 | content: "\e9ae";
551 | }
552 | .ac-file-text:before {
553 | content: "\e9af";
554 | }
555 | .ac-align-left:before {
556 | content: "\e9b0";
557 | }
558 | .ac-align-center:before {
559 | content: "\e9b1";
560 | }
561 | .ac-align-right:before {
562 | content: "\e9b2";
563 | }
564 | .ac-align-justify:before {
565 | content: "\e9b3";
566 | }
567 | .ac-random:before {
568 | content: "\e9b4";
569 | }
570 | .ac-dot-square-o:before {
571 | content: "\e9b5";
572 | }
573 | .ac-picture-o:before {
574 | content: "\e9b7";
575 | }
576 | .ac-chart-area:before {
577 | content: "\e9b8";
578 | }
579 | .ac-chart-financial:before {
580 | content: "\e9b9";
581 | }
582 | .ac-chart-column2:before {
583 | content: "\e9ba";
584 | }
585 | .ac-checkbox-checked:before {
586 | content: "\e9bb";
587 | }
588 | .ac-head-arrow:before {
589 | content: "\e9bc";
590 | }
591 | .ac-ellipse-thin:before {
592 | content: "\e9bd";
593 | }
594 | .ac-cross:before {
595 | content: "\e9be";
596 | }
597 | .ac-diagonal-cros:before {
598 | content: "\e9bf";
599 | }
600 | .ac-diamond:before {
601 | content: "\e9c0";
602 | }
603 | .ac-pentagon:before {
604 | content: "\e9c2";
605 | }
606 | .ac-square:before {
607 | content: "\e9c3";
608 | }
609 | .ac-star-1:before {
610 | content: "\e9c4";
611 | }
612 | .ac-star-2:before {
613 | content: "\e9c5";
614 | }
615 | .ac-star-3:before {
616 | content: "\e9c6";
617 | }
618 | .ac-star-5:before {
619 | content: "\e9c8";
620 | }
621 | .ac-trapezium:before {
622 | content: "\e9c9";
623 | }
624 | .ac-triangle-down:before {
625 | content: "\e9ca";
626 | }
627 | .ac-triangle-up:before {
628 | content: "\e9cd";
629 | }
630 | .ac-h-line-thickness-1:before {
631 | content: "\e9ce";
632 | }
633 | .ac-h-line-thickness-2:before {
634 | content: "\e9cf";
635 | }
636 | .ac-h-line-thickness-3:before {
637 | content: "\e9d0";
638 | }
639 | .ac-h-line-thickness-4:before {
640 | content: "\e9d1";
641 | }
642 | .ac-h-line-thickness-5:before {
643 | content: "\e9d2";
644 | }
645 | .ac-h-line-dotted-1:before {
646 | content: "\e9d3";
647 | }
648 | .ac-h-line-dotted-2:before {
649 | content: "\e9d4";
650 | }
651 | .ac-h-line-dotted-3:before {
652 | content: "\e9d5";
653 | }
654 | .ac-h-line-dotted-4:before {
655 | content: "\e9d6";
656 | }
657 | .ac-h-line-dotted-5:before {
658 | content: "\e9d7";
659 | }
660 | .ac-h-line-dashed-1:before {
661 | content: "\e9d8";
662 | }
663 | .ac-h-line-dashed-2:before {
664 | content: "\e9d9";
665 | }
666 | .ac-h-line-dashed-3:before {
667 | content: "\e9da";
668 | }
669 | .ac-h-line-dashed-4:before {
670 | content: "\e9db";
671 | }
672 | .ac-h-line-dashed-5:before {
673 | content: "\e9dc";
674 | }
675 | .ac-fill-o:before {
676 | content: "\e9de";
677 | }
678 | .ac-free:before {
679 | content: "\e9df";
680 | }
681 | .ac-chart-ruler-o:before {
682 | content: "\e9e0";
683 | }
684 | .ac-download:before {
685 | content: "\e9e2";
686 | }
687 | .ac-git:before {
688 | content: "\e9e3";
689 | }
690 | .ac-cog-o:before {
691 | content: "\e9e4";
692 | }
693 | .ac-asterisk:before {
694 | content: "\e9e5";
695 | }
696 | .ac-unlock-alt:before {
697 | content: "\e9e6";
698 | }
699 | .ac-unlock:before {
700 | content: "\e9e7";
701 | }
702 | .ac-position-center:before {
703 | content: "\e9e8";
704 | }
705 | .ac-comment:before {
706 | content: "\e9ed";
707 | }
708 | .ac-refresh:before {
709 | content: "\e9ee";
710 | }
711 | .ac-cog:before {
712 | content: "\e9f4";
713 | }
714 | .ac-comment-o:before {
715 | content: "\e9f5";
716 | }
717 | .ac-comments-o:before {
718 | content: "\e9f6";
719 | }
720 | .ac-square-double-o:before {
721 | content: "\e9f7";
722 | }
723 | .ac-rss:before {
724 | content: "\e9fa";
725 | }
726 | .ac-save:before {
727 | content: "\f0c7";
728 | }
729 | .ac-pinterest:before {
730 | content: "\f0d2";
731 | }
732 | .ac-reverse:before {
733 | content: "\f1da";
734 | }
735 | .ac-net:before {
736 | content: "\f1e0";
737 | }
738 | .ac-mouse-pointer:before {
739 | content: "\f245";
740 | }
741 | .ac-rectangle-1:before {
742 | content: "\e9cc";
743 | }
744 | .ac-bullhorn2:before {
745 | content: "\f0a1";
746 | }
747 | .ac-group:before {
748 | content: "\f0c0";
749 | }
750 | .ac-light-bulb:before {
751 | content: "\f0eb";
752 | }
753 | .ac-bullhorn:before {
754 | content: "\e9b6";
755 | }
756 | .ac-users:before {
757 | content: "\e9c1";
758 | }
759 | .ac-user-tie:before {
760 | content: "\e9c7";
761 | }
762 | .ac-clipboard:before {
763 | content: "\e9cb";
764 | }
765 | .ac-question1:before {
766 | content: "\ea09";
767 | }
768 | .ac-info1:before {
769 | content: "\ea0c";
770 | }
771 |
772 |
--------------------------------------------------------------------------------
/vendor/anychart/fonts/anychart.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AnyChart/AnyChart-Ember/4d0c17e2508e25b21dd28f1dd0eef03e9c600b2b/vendor/anychart/fonts/anychart.eot
--------------------------------------------------------------------------------
/vendor/anychart/fonts/anychart.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AnyChart/AnyChart-Ember/4d0c17e2508e25b21dd28f1dd0eef03e9c600b2b/vendor/anychart/fonts/anychart.ttf
--------------------------------------------------------------------------------
/vendor/anychart/fonts/anychart.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AnyChart/AnyChart-Ember/4d0c17e2508e25b21dd28f1dd0eef03e9c600b2b/vendor/anychart/fonts/anychart.woff
--------------------------------------------------------------------------------