Compare commits
954 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b3acb63ac5 | ||
|
|
71cf6cb9f8 | ||
|
|
281bb899b5 | ||
|
|
51e96d8ea9 | ||
|
|
6d6d00a281 | ||
|
|
61dc63a6d5 | ||
|
|
96b63a6243 | ||
|
|
278785ad49 | ||
|
|
d4ed1e435a | ||
|
|
55d120a0b1 | ||
|
|
53393404f1 | ||
|
|
c3fb2e2bcd | ||
|
|
f0421f5b36 | ||
|
|
a667b95b8d | ||
|
|
b98b5914e7 | ||
|
|
d7f2e977f5 | ||
|
|
d53319e56f | ||
|
|
156f56c3c1 | ||
|
|
cc4654239b | ||
|
|
f14e4aaccb | ||
|
|
6157c7bc77 | ||
|
|
4cae976a39 | ||
|
|
1ee1030db2 | ||
|
|
f8c4a40c8b | ||
|
|
857b15a275 | ||
|
|
9ccb1f6b68 | ||
|
|
e47823e6f1 | ||
|
|
06bb8c2be1 | ||
|
|
76ce5a9c1f | ||
|
|
a780269957 | ||
|
|
7cfbe94b7e | ||
|
|
187dcfae4d | ||
|
|
f4ee8fba68 | ||
|
|
fbbc450c41 | ||
|
|
4b0d73bab9 | ||
|
|
41d3db21ed | ||
|
|
6f77ce584e | ||
|
|
87209a984a | ||
|
|
406cda26d9 | ||
|
|
c6b45cdfa0 | ||
|
|
a60df9f050 | ||
|
|
4169db0857 | ||
|
|
342a0ac17f | ||
|
|
ec245fd46e | ||
|
|
ccb00ccdad | ||
|
|
7089f63213 | ||
|
|
bf174bfcb0 | ||
|
|
1f797fd5f7 | ||
|
|
b12cc7d9e4 | ||
|
|
26a56938ce | ||
|
|
4c25d55149 | ||
|
|
eb782d743b | ||
|
|
b7da81b3d3 | ||
|
|
6f754362f5 | ||
|
|
d1dd9b8013 | ||
|
|
936302b847 | ||
|
|
a0475e08ae | ||
|
|
235481d1d6 | ||
|
|
37c8bbb019 | ||
|
|
890ccbdb09 | ||
|
|
30324f4f33 | ||
|
|
324bca9f14 | ||
|
|
2c372a2ce2 | ||
|
|
b04a99466d | ||
|
|
201d482066 | ||
|
|
b5f4bba4e6 | ||
|
|
a1f6bb07d3 | ||
|
|
024e3faa9d | ||
|
|
436513ac24 | ||
|
|
d2d63c857a | ||
|
|
57c62f4222 | ||
|
|
af4ece9a80 | ||
|
|
3f5abdbfca | ||
|
|
383d685a5f | ||
|
|
075fe294ed | ||
|
|
9f870d0fad | ||
|
|
3c672fe9aa | ||
|
|
a7d49bd656 | ||
|
|
f02c61eb0e | ||
|
|
469e9cd136 | ||
|
|
84ca9cdc24 | ||
|
|
01b4740d93 | ||
|
|
17c9366f4b | ||
|
|
7cecd1922d | ||
|
|
d10ba04ec9 | ||
|
|
51142e7fc9 | ||
|
|
28c75ef8a0 | ||
|
|
cdc2e7e3d0 | ||
|
|
b5e67488e7 | ||
|
|
178adf5dc0 | ||
|
|
6683ab7303 | ||
|
|
7aa9f44d66 | ||
|
|
bfbccf9bf7 | ||
|
|
61cd9ca7b0 | ||
|
|
aa945e6e6f | ||
|
|
d73be88861 | ||
|
|
f46e5198b7 | ||
|
|
be0a0b17b0 | ||
|
|
074d1ca039 | ||
|
|
fcc14dcff7 | ||
|
|
bd3799eb7c | ||
|
|
082ffa3d41 | ||
|
|
09c91313a0 | ||
|
|
1273f93e67 | ||
|
|
74c27f7f11 | ||
|
|
501448ad6f | ||
|
|
cdcf40edc0 | ||
|
|
8747e8be04 | ||
|
|
2be703222a | ||
|
|
95d377eabc | ||
|
|
194f92be3a | ||
|
|
0c4ca8c4db | ||
|
|
2f3d9ca953 | ||
|
|
02efe00fc9 | ||
|
|
4758ab5216 | ||
|
|
b621ed77f2 | ||
|
|
76e1d899d5 | ||
|
|
b016468ab2 | ||
|
|
a527b7fe99 | ||
|
|
8410b2fdc1 | ||
|
|
e73de15f31 | ||
|
|
96174a1ada | ||
|
|
1817e83917 | ||
|
|
fff97052cc | ||
|
|
7ec1e072d9 | ||
|
|
3d4acd72d9 | ||
|
|
bb61097fea | ||
|
|
5ecdce9813 | ||
|
|
508e4f0815 | ||
|
|
70b95bbf6f | ||
|
|
dc83709196 | ||
|
|
09651c1d0c | ||
|
|
eec8a98901 | ||
|
|
e736df9f64 | ||
|
|
12ea7168fb | ||
|
|
90e62c2af0 | ||
|
|
e499f26f76 | ||
|
|
53b904d946 | ||
|
|
7ec587b75b | ||
|
|
0159d06b24 | ||
|
|
51bf7c4a80 | ||
|
|
6e2f5b0708 | ||
|
|
8a7b80c64c | ||
|
|
ced14b133d | ||
|
|
1fe157ae77 | ||
|
|
3cbb6273e0 | ||
|
|
7e011ed4b5 | ||
|
|
e3d93f7e1d | ||
|
|
797b65b3ca | ||
|
|
5b14053e35 | ||
|
|
4de79841b4 | ||
|
|
8d21b84474 | ||
|
|
7561213185 | ||
|
|
1a89a2feab | ||
|
|
060f79063e | ||
|
|
159887612e | ||
|
|
e207c9c0c8 | ||
|
|
be18803032 | ||
|
|
821a3bc063 | ||
|
|
79bd17075e | ||
|
|
30f9916802 | ||
|
|
5170c4f8ea | ||
|
|
09a8974ab7 | ||
|
|
e989db685e | ||
|
|
87cba5d352 | ||
|
|
8f0a652055 | ||
|
|
be11566d95 | ||
|
|
d4877677ab | ||
|
|
98400d1498 | ||
|
|
1bffa9fd44 | ||
|
|
7d78453e8a | ||
|
|
0e601c1463 | ||
|
|
b8ea25e8eb | ||
|
|
16bb613abe | ||
|
|
0ab2eb7f38 | ||
|
|
665514209b | ||
|
|
13f3036479 | ||
|
|
2de98d7b70 | ||
|
|
140c350c5c | ||
|
|
68e473db43 | ||
|
|
64a91f7b56 | ||
|
|
8e278e1145 | ||
|
|
bca8e8ec66 | ||
|
|
db51bd8b98 | ||
|
|
1a29b58111 | ||
|
|
35dacb3f97 | ||
|
|
688631379b | ||
|
|
05f0528552 | ||
|
|
20cd83d204 | ||
|
|
9d6c25d7b2 | ||
|
|
6ed3a7bfc4 | ||
|
|
476653811a | ||
|
|
84ad18c3e8 | ||
|
|
59c8ea100a | ||
|
|
493bdb6580 | ||
|
|
abe80a0e92 | ||
|
|
0dc992837e | ||
|
|
ec2e31079b | ||
|
|
d003040ddc | ||
|
|
b07ef01535 | ||
|
|
b4f1c53713 | ||
|
|
bcd808d203 | ||
|
|
9b80592460 | ||
|
|
8438a30eaa | ||
|
|
da310983fd | ||
|
|
04e4fcb934 | ||
|
|
1c243550e4 | ||
|
|
b71926e6ac | ||
|
|
f9a3f8b5ff | ||
|
|
0c4ebb13c2 | ||
|
|
198e91c64a | ||
|
|
9b77655eb3 | ||
|
|
c9dcc7c1dd | ||
|
|
e5e0c53b0c | ||
|
|
6eab94926c | ||
|
|
a0addfa177 | ||
|
|
cb6ac64ac4 | ||
|
|
e61eb404d2 | ||
|
|
ea7823b72c | ||
|
|
88b4e3d8b6 | ||
|
|
446b1cec52 | ||
|
|
d73cf99666 | ||
|
|
139b4604c5 | ||
|
|
af4360260c | ||
|
|
0050e298a2 | ||
|
|
d051696b4b | ||
|
|
a49aaf581b | ||
|
|
8db9797950 | ||
|
|
497ca6d7e6 | ||
|
|
034c31e089 | ||
|
|
bdec7573df | ||
|
|
f3b2f0d46c | ||
|
|
c2bc22698c | ||
|
|
bd61a3b66b | ||
|
|
fe147c9b21 | ||
|
|
faa724a692 | ||
|
|
dbfd0322c0 | ||
|
|
720c036708 | ||
|
|
2f64568f4c | ||
|
|
18b882dd3f | ||
|
|
4fbef59be1 | ||
|
|
9c28589ad6 | ||
|
|
bd36febbc0 | ||
|
|
2b73a99716 | ||
|
|
be82cd2d05 | ||
|
|
bc696b82cc | ||
|
|
fe3382b879 | ||
|
|
525f1e62fe | ||
|
|
10e1f7fc2d | ||
|
|
f284016fa8 | ||
|
|
93e99de603 | ||
|
|
6a45ff52d0 | ||
|
|
45b64a9739 | ||
|
|
74428d3ec4 | ||
|
|
e6318e7386 | ||
|
|
41d18400ba | ||
|
|
fceb5eebe6 | ||
|
|
f741eec73c | ||
|
|
b1e8da631e | ||
|
|
732d6bbd59 | ||
|
|
5482534db4 | ||
|
|
65904edd76 | ||
|
|
93f2ad2fef | ||
|
|
e92b9acd19 | ||
|
|
03ff6f5d9f | ||
|
|
d30707611d | ||
|
|
d7189ad95c | ||
|
|
34ce040105 | ||
|
|
c174dc7b63 | ||
|
|
2681b8bd2e | ||
|
|
dce8dd7070 | ||
|
|
12bf734658 | ||
|
|
ff6ce09d39 | ||
|
|
9c15693784 | ||
|
|
1ee281b3b9 | ||
|
|
57e10bc372 | ||
|
|
bbb67bafa5 | ||
|
|
1c448a3afa | ||
|
|
9ca725c313 | ||
|
|
0cfe69d351 | ||
|
|
13697c4743 | ||
|
|
250fa7bbd7 | ||
|
|
4a83dc18ce | ||
|
|
02c76b9075 | ||
|
|
20eba516a4 | ||
|
|
b76c319144 | ||
|
|
1accd72830 | ||
|
|
eb887847b3 | ||
|
|
8340a48561 | ||
|
|
94d164d7e4 | ||
|
|
f2b7e0eecc | ||
|
|
58cc994008 | ||
|
|
26d33dffe4 | ||
|
|
4cd707a49e | ||
|
|
5e66dfdcae | ||
|
|
9157e62294 | ||
|
|
8a7a7ae527 | ||
|
|
7032389411 | ||
|
|
9505f59ac6 | ||
|
|
226ba4f4ed | ||
|
|
9c0d5d8c03 | ||
|
|
6e19e37251 | ||
|
|
fe3af68654 | ||
|
|
ef8624bff7 | ||
|
|
f6593b34d2 | ||
|
|
0dad027265 | ||
|
|
0748343f22 | ||
|
|
86712ae424 | ||
|
|
aa26f6eb7a | ||
|
|
435dcfba80 | ||
|
|
9bd1f6aa28 | ||
|
|
ee1782c007 | ||
|
|
6cd614c582 | ||
|
|
31725e0868 | ||
|
|
2f72188c28 | ||
|
|
9e93fa988e | ||
|
|
080e4da6e8 | ||
|
|
dc84e46552 | ||
|
|
8c2b2a41a1 | ||
|
|
91f47a8b7a | ||
|
|
2dcddd175d | ||
|
|
1ca659788b | ||
|
|
685ba27900 | ||
|
|
996444f55b | ||
|
|
b747fdf973 | ||
|
|
396b319c7e | ||
|
|
9fa335f363 | ||
|
|
283355e533 | ||
|
|
56aabaa0b1 | ||
|
|
86387efc8f | ||
|
|
18691817cf | ||
|
|
0b9e3c822c | ||
|
|
ec43144a62 | ||
|
|
be2ca6a21e | ||
|
|
8c7fc61559 | ||
|
|
cba5477a46 | ||
|
|
dcc45e5915 | ||
|
|
72847dc136 | ||
|
|
f68e1edb0e | ||
|
|
feac61b20c | ||
|
|
fc9554f866 | ||
|
|
5d9e59efce | ||
|
|
f7dc1429e2 | ||
|
|
3c05a7858f | ||
|
|
81e784af15 | ||
|
|
81aa879d3a | ||
|
|
d3a547c5d3 | ||
|
|
02cd4e32ee | ||
|
|
8ab58de601 | ||
|
|
ae37d79c1d | ||
|
|
f25c90f598 | ||
|
|
dde604023b | ||
|
|
6ab5a66fa2 | ||
|
|
a335278aa1 | ||
|
|
31af666ccc | ||
|
|
393bb3ca1f | ||
|
|
746ecd5cd3 | ||
|
|
3faad543cb | ||
|
|
36f31d1448 | ||
|
|
738252af74 | ||
|
|
67fd530662 | ||
|
|
1555830bc6 | ||
|
|
ac99249af7 | ||
|
|
2f390152bc | ||
|
|
71657fc0bc | ||
|
|
c38df88d5a | ||
|
|
a1c8225c2e | ||
|
|
1ba31abdc6 | ||
|
|
418f73e2a8 | ||
|
|
e13db59eb3 | ||
|
|
7df333d8b6 | ||
|
|
e7653c8655 | ||
|
|
af4deafa7c | ||
|
|
a0a4a3207a | ||
|
|
27d94de81a | ||
|
|
4e6e19a9f7 | ||
|
|
648d682618 | ||
|
|
361db6d391 | ||
|
|
f525567feb | ||
|
|
70cda3605b | ||
|
|
7860607b5b | ||
|
|
5e57d8f4c1 | ||
|
|
dfc6a3d7ac | ||
|
|
7964338817 | ||
|
|
de59b4c4c9 | ||
|
|
87534fa1f0 | ||
|
|
2f8cd4f324 | ||
|
|
0eb8c98efd | ||
|
|
48dc576492 | ||
|
|
bdc89f14fe | ||
|
|
0fce8ad2db | ||
|
|
ade5e66851 | ||
|
|
5cb4f2840b | ||
|
|
ccebf2492a | ||
|
|
560b79e884 | ||
|
|
d311cc0ab2 | ||
|
|
502b6e6b2d | ||
|
|
63230ebf57 | ||
|
|
d20b62ca81 | ||
|
|
9837243bc9 | ||
|
|
a981cb8e54 | ||
|
|
1d34316754 | ||
|
|
a7158e5ab8 | ||
|
|
30e6e1f034 | ||
|
|
2827e4d2fb | ||
|
|
0943d33ff3 | ||
|
|
37a065bb99 | ||
|
|
b1a94d780f | ||
|
|
b8b38a29fa | ||
|
|
13aa44fe14 | ||
|
|
12996b0242 | ||
|
|
6676c7d068 | ||
|
|
2296534d36 | ||
|
|
6bf4e63c44 | ||
|
|
efd38d62be | ||
|
|
a081021a9d | ||
|
|
0bd8306502 | ||
|
|
8f1173b340 | ||
|
|
b6148c802e | ||
|
|
10ca2ed070 | ||
|
|
7760b0d516 | ||
|
|
ef2c51694d | ||
|
|
a8406b4102 | ||
|
|
7c93106626 | ||
|
|
2ceb6e19b8 | ||
|
|
d75e3e18c9 | ||
|
|
c848c6737f | ||
|
|
8cecbcf2ca | ||
|
|
63ad645910 | ||
|
|
5befe56edc | ||
|
|
3f81b24501 | ||
|
|
9fae8c8a00 | ||
|
|
6e5a7e47bf | ||
|
|
4bebda892a | ||
|
|
a6c2500da3 | ||
|
|
0bc1c2d7ae | ||
|
|
824a8f3264 | ||
|
|
145fbe8a1b | ||
|
|
3d9087a5cf | ||
|
|
477c0ec8af | ||
|
|
ead60ced86 | ||
|
|
24722d195e | ||
|
|
229ac9a996 | ||
|
|
1e21624ddd | ||
|
|
d74cec4227 | ||
|
|
175d349e64 | ||
|
|
4e9daad75e | ||
|
|
17fbe16151 | ||
|
|
e5771daaf5 | ||
|
|
7ddea34311 | ||
|
|
6220d2c4fd | ||
|
|
c7c3381856 | ||
|
|
4b1e5f1e42 | ||
|
|
eb8012df48 | ||
|
|
1411dda538 | ||
|
|
7a2181964d | ||
|
|
6c795e84e9 | ||
|
|
23adb8661c | ||
|
|
57d18a266a | ||
|
|
65d99c7b6c | ||
|
|
4ce12b818c | ||
|
|
14cb228dcb | ||
|
|
68e1d9d7d5 | ||
|
|
2c0e0af494 | ||
|
|
ab07ef8c92 | ||
|
|
3c031bccde | ||
|
|
3e48dba688 | ||
|
|
8feef037b7 | ||
|
|
f19c8f619e | ||
|
|
6b234f1186 | ||
|
|
a16d1478eb | ||
|
|
3058ba125c | ||
|
|
bf2f7223aa | ||
|
|
ad68d5e466 | ||
|
|
13f00afa61 | ||
|
|
b7c4e32abe | ||
|
|
c2c97171dd | ||
|
|
406de4e708 | ||
|
|
586db744f7 | ||
|
|
14600d7016 | ||
|
|
e8553fd402 | ||
|
|
1e096c9eec | ||
|
|
8ae58fe1f6 | ||
|
|
a676363cf6 | ||
|
|
381d380797 | ||
|
|
a5cb88e44f | ||
|
|
6f02bcd6c5 | ||
|
|
13ec90f533 | ||
|
|
fd58f76090 | ||
|
|
b8b837ad4d | ||
|
|
aa1e07b564 | ||
|
|
75919217fd | ||
|
|
a9d1889cc8 | ||
|
|
a94a21dc52 | ||
|
|
e37ea9d383 | ||
|
|
1ea7dea2ec | ||
|
|
0cdbdca0cb | ||
|
|
9023977238 | ||
|
|
35912a5a6d | ||
|
|
1bfa07d562 | ||
|
|
c1298a0eab | ||
|
|
b98e09f88a | ||
|
|
2860bc0fdb | ||
|
|
e9ff619013 | ||
|
|
4c8d3b929a | ||
|
|
88d8a6fd9b | ||
|
|
615c1707be | ||
|
|
d87ac0306b | ||
|
|
f501a96712 | ||
|
|
f520388da9 | ||
|
|
05ace29173 | ||
|
|
cb091b7094 | ||
|
|
32c6fc147d | ||
|
|
0561cecd77 | ||
|
|
73c403b796 | ||
|
|
1cc2f8be47 | ||
|
|
110da40511 | ||
|
|
3fee45b583 | ||
|
|
8c4cfbf887 | ||
|
|
8dc6a9d021 | ||
|
|
7ee63f97bd | ||
|
|
1a62467472 | ||
|
|
00de9b4e8d | ||
|
|
1428e23c28 | ||
|
|
6015ecef25 | ||
|
|
75e2910a69 | ||
|
|
322c309bbd | ||
|
|
becf3981b5 | ||
|
|
c2730bf40b | ||
|
|
094ac31d18 | ||
|
|
bfb9370dad | ||
|
|
cd058f0a92 | ||
|
|
1bccec3bca | ||
|
|
a0b752343d | ||
|
|
c9200169fb | ||
|
|
f6c3fb88d1 | ||
|
|
073701cd00 | ||
|
|
d0ac3e7922 | ||
|
|
1252cf423c | ||
|
|
84ce31cabb | ||
|
|
ec8fa4a9e4 | ||
|
|
0d5a039b5d | ||
|
|
68ff51a0c4 | ||
|
|
fa75a8d3b0 | ||
|
|
aa6552502d | ||
|
|
6f09c02537 | ||
|
|
3eb31be585 | ||
|
|
1ca9859367 | ||
|
|
d3494a468e | ||
|
|
8adf3ef9e8 | ||
|
|
d08e0e0c69 | ||
|
|
81fabc38c8 | ||
|
|
375905f41b | ||
|
|
f45f1101b7 | ||
|
|
493ce24f47 | ||
|
|
6d981a4315 | ||
|
|
b219c57f9e | ||
|
|
3836ac6712 | ||
|
|
e55c2b85aa | ||
|
|
7948e11145 | ||
|
|
077bacd847 | ||
|
|
2401235e98 | ||
|
|
b203535862 | ||
|
|
d9cc6e3d37 | ||
|
|
72a190f384 | ||
|
|
bc3b170782 | ||
|
|
1ea3e97d1f | ||
|
|
02c04ca12d | ||
|
|
2b8e2c3859 | ||
|
|
d72176caa7 | ||
|
|
c0280e2819 | ||
|
|
b80104171d | ||
|
|
7bfbc542cc | ||
|
|
c46d8723f7 | ||
|
|
66f6c40b47 | ||
|
|
95a5719287 | ||
|
|
654fcc0922 | ||
|
|
2af6d6ee45 | ||
|
|
e35f602533 | ||
|
|
e0577e6d01 | ||
|
|
416583c0e0 | ||
|
|
f2c3bd47aa | ||
|
|
9adf789426 | ||
|
|
d2bbd218f2 | ||
|
|
4780c4ad61 | ||
|
|
c8ef738577 | ||
|
|
6b2a9191e1 | ||
|
|
c07774f947 | ||
|
|
a89298e29c | ||
|
|
3e5e1008b5 | ||
|
|
bb7d6e72d5 | ||
|
|
244134986b | ||
|
|
064de16cdd | ||
|
|
cf6a37dc80 | ||
|
|
25f3628be8 | ||
|
|
01c0071459 | ||
|
|
7fd2c0bf47 | ||
|
|
89bc33ce4c | ||
|
|
c51c10f236 | ||
|
|
38dbc01055 | ||
|
|
4b6b9ffef9 | ||
|
|
2c1ef3d5d8 | ||
|
|
28ffb61ecc | ||
|
|
35ea2489b5 | ||
|
|
e419815b34 | ||
|
|
bba4150caa | ||
|
|
1277b22ebe | ||
|
|
6d1efe98c7 | ||
|
|
c546ed7062 | ||
|
|
36df97fe10 | ||
|
|
75d1407041 | ||
|
|
22926e6792 | ||
|
|
c1caa414f4 | ||
|
|
bc4c3fca69 | ||
|
|
d6861e81be | ||
|
|
d4674d3a1d | ||
|
|
654614067b | ||
|
|
f23da45064 | ||
|
|
0f46cb356b | ||
|
|
4bc1bbe090 | ||
|
|
bd926b06ac | ||
|
|
d928b118df | ||
|
|
84ef3ce4da | ||
|
|
811d1f3dbe | ||
|
|
4476517642 | ||
|
|
125734950b | ||
|
|
6757b695af | ||
|
|
b149ad3db2 | ||
|
|
69235fee35 | ||
|
|
ac2b52005c | ||
|
|
ed56daaf97 | ||
|
|
fd7106ce5b | ||
|
|
bc4a25452e | ||
|
|
777a93ddc4 | ||
|
|
35e0d2e73d | ||
|
|
94e52710d5 | ||
|
|
8f6d175488 | ||
|
|
6eb0cefc4f | ||
|
|
9a4adb7546 | ||
|
|
9ac155ee5c | ||
|
|
d5c8cb8ab2 | ||
|
|
436856b1c3 | ||
|
|
64096856cc | ||
|
|
e0bd7ba438 | ||
|
|
a1f496be11 | ||
|
|
dc2b2fef49 | ||
|
|
cd4c9aecba | ||
|
|
ffe1d9ced5 | ||
|
|
ba23ea0a11 | ||
|
|
0d48b12fc0 | ||
|
|
340be0df61 | ||
|
|
0fc9439050 | ||
|
|
0e7def36bb | ||
|
|
1ef5178a6c | ||
|
|
ac534fd60c | ||
|
|
a056fbf5b2 | ||
|
|
5a97938d81 | ||
|
|
34a1353630 | ||
|
|
85b64ef0e7 | ||
|
|
467d442c22 | ||
|
|
b71df6e81c | ||
|
|
802592aa4a | ||
|
|
95fe7c218e | ||
|
|
7516fece64 | ||
|
|
fb77d2171c | ||
|
|
4db47e6ca4 | ||
|
|
46c31acf01 | ||
|
|
bad990bd1a | ||
|
|
5a2dd478fb | ||
|
|
75596d1189 | ||
|
|
c74cf61565 | ||
|
|
09463c8db2 | ||
|
|
e9276e43ac | ||
|
|
a00ab59882 | ||
|
|
9a122a39d6 | ||
|
|
bbef7a40e9 | ||
|
|
0b5d6e55ed | ||
|
|
5e888faa31 | ||
|
|
4dacac85ec | ||
|
|
bfb25a6ee8 | ||
|
|
7cc7d81ad9 | ||
|
|
2f7f43109d | ||
|
|
ca3f112980 | ||
|
|
940ac58558 | ||
|
|
919fba82f6 | ||
|
|
c2158b1138 | ||
|
|
d0664b2695 | ||
|
|
9ffad71b0d | ||
|
|
993aff4e31 | ||
|
|
d373b16699 | ||
|
|
1ad2394ff4 | ||
|
|
e9b5020cc1 | ||
|
|
046df357d9 | ||
|
|
df02e559cb | ||
|
|
cbd471a3b2 | ||
|
|
8365e0e4c8 | ||
|
|
63b7c3d50e | ||
|
|
4abde39635 | ||
|
|
b4cde82b74 | ||
|
|
a771ce89ea | ||
|
|
de6f3a91f9 | ||
|
|
cb5ab444d5 | ||
|
|
7c7cc5768a | ||
|
|
2b2b706438 | ||
|
|
776aa33cb8 | ||
|
|
c8328e944c | ||
|
|
d83809c4e9 | ||
|
|
ae4fcde836 | ||
|
|
ab57813844 | ||
|
|
f0fe6d8eff | ||
|
|
c25a8710f4 | ||
|
|
c7d5dea45d | ||
|
|
edd6de2e50 | ||
|
|
09b425e63e | ||
|
|
3810f026ce | ||
|
|
c6e7e8dd07 | ||
|
|
4f40077a5b | ||
|
|
3e3fedd4f5 | ||
|
|
544fc08aab | ||
|
|
22c5b35043 | ||
|
|
c285b41223 | ||
|
|
b11c60a6f8 | ||
|
|
5051f21522 | ||
|
|
5121f708f7 | ||
|
|
ebf6b8b937 | ||
|
|
aec621eb77 | ||
|
|
66491416c8 | ||
|
|
c6aedd60d3 | ||
|
|
b2baf6e74f | ||
|
|
41dbb2f9c1 | ||
|
|
59e2ba0e17 | ||
|
|
0391457ff5 | ||
|
|
11d8befda2 | ||
|
|
1b54f8946d | ||
|
|
9cf17863fa | ||
|
|
9197cb613f | ||
|
|
9753353574 | ||
|
|
5c93ffc613 | ||
|
|
cdb3d56c38 | ||
|
|
7165c78c3c | ||
|
|
fdb97e3d5d | ||
|
|
70e9032937 | ||
|
|
8015fa3456 | ||
|
|
dbfcd57ecd | ||
|
|
e8504a1245 | ||
|
|
643976f10e | ||
|
|
ed51f8b0ef | ||
|
|
b81fd035f6 | ||
|
|
c78bf1f4d5 | ||
|
|
1093482f1b | ||
|
|
d9aae29254 | ||
|
|
bb63d927e7 | ||
|
|
f882a5a054 | ||
|
|
b200298e2c | ||
|
|
c5aa9e00f5 | ||
|
|
7b5711f4e4 | ||
|
|
26fc4f6a53 | ||
|
|
7534497535 | ||
|
|
1a0afe89b9 | ||
|
|
01cd01345a | ||
|
|
6e2661c367 | ||
|
|
970ba215ad | ||
|
|
e180f1f4d9 | ||
|
|
c8a5c85dd4 | ||
|
|
e3c644bb21 | ||
|
|
52777c1e2a | ||
|
|
59fbae2aee | ||
|
|
57fb76966b | ||
|
|
4a4457b5d3 | ||
|
|
99b5803008 | ||
|
|
d6e65c12d9 | ||
|
|
a2b8c69593 | ||
|
|
ec6a274b1c | ||
|
|
b95e38d6b0 | ||
|
|
436006b2c1 | ||
|
|
d2f6b5bdb2 | ||
|
|
c5c2e7e4a1 | ||
|
|
8a49ac4816 | ||
|
|
da2d2c2adb | ||
|
|
877bedc208 | ||
|
|
3d77a6b859 | ||
|
|
653a929d06 | ||
|
|
3850d5a89a | ||
|
|
1d9d946f88 | ||
|
|
2dbfbc2845 | ||
|
|
fca08b462a | ||
|
|
0223d7b34a | ||
|
|
ae6d7a4844 | ||
|
|
207fe83431 | ||
|
|
ffb2731764 | ||
|
|
45c82f5a1a | ||
|
|
90e693f67b | ||
|
|
8e3453382d | ||
|
|
e1fd521e38 | ||
|
|
cab4b05331 | ||
|
|
c9025c7143 | ||
|
|
000eaf8ea6 | ||
|
|
7d4d182a40 | ||
|
|
e22fbd6a15 | ||
|
|
28664a1551 | ||
|
|
09aaa0ac2d | ||
|
|
cf4b2ba96f | ||
|
|
cd239fb930 | ||
|
|
2c215d004d | ||
|
|
69f4bc9245 | ||
|
|
49abea0294 | ||
|
|
d99355d8bb | ||
|
|
f35ef596ec | ||
|
|
f67bf85a40 | ||
|
|
3996c72e66 | ||
|
|
f84eb88bcf | ||
|
|
174be54e9b | ||
|
|
5f18b60e56 | ||
|
|
279ad811ee | ||
|
|
cf4ab6fa0d | ||
|
|
afc7053354 | ||
|
|
2370bd873e | ||
|
|
ebc66a896e | ||
|
|
3efb12b93f | ||
|
|
ba74d2f179 | ||
|
|
451cef5ec9 | ||
|
|
745fd328bf | ||
|
|
f388f54538 | ||
|
|
ac94f181a9 | ||
|
|
51822ddcb0 | ||
|
|
78ac2fe031 | ||
|
|
2dd4d573f4 | ||
|
|
09a8ac4573 | ||
|
|
3c0552ab73 | ||
|
|
79e8c7395a | ||
|
|
26381847ce | ||
|
|
acbb2f4020 | ||
|
|
c8c02c68cf | ||
|
|
79c250d7ba | ||
|
|
5fb6d42a2b | ||
|
|
1e9e9b8f9b | ||
|
|
61b38618ad | ||
|
|
dd8bfbc5d6 | ||
|
|
10bde1cf79 | ||
|
|
eccd2b521d | ||
|
|
18529ffaef | ||
|
|
f73abda0f3 | ||
|
|
fd947242ac | ||
|
|
3888ca4471 | ||
|
|
c371b396af | ||
|
|
2fd6632111 | ||
|
|
19c0faaca0 | ||
|
|
64f0082d8a | ||
|
|
a56e67be26 | ||
|
|
b00e8de8b8 | ||
|
|
169c2c7558 | ||
|
|
50cfcf7c46 | ||
|
|
c9065c46ee | ||
|
|
6a44a9dc04 | ||
|
|
e219f5c692 | ||
|
|
7f65b2cd9c | ||
|
|
748b5b5a08 | ||
|
|
87adc23aa8 | ||
|
|
2a35eafb8b | ||
|
|
b44054594b | ||
|
|
31b8b27666 | ||
|
|
e504685879 | ||
|
|
4c49db6b95 | ||
|
|
66c2b94e8d | ||
|
|
03dea0694a | ||
|
|
61cd864a07 | ||
|
|
a680ab42c8 | ||
|
|
41f205b602 | ||
|
|
9ce321f7d3 | ||
|
|
ff0bce1fae | ||
|
|
13c5bfd89f | ||
|
|
0495d691f5 | ||
|
|
0079a98135 | ||
|
|
d73834a2b5 | ||
|
|
5603363872 | ||
|
|
2fb8daa671 | ||
|
|
d4e3af2995 | ||
|
|
3eb5e01c89 | ||
|
|
e335bffa6b | ||
|
|
933a303486 | ||
|
|
a5131165ab | ||
|
|
8f0800243e | ||
|
|
a35f2f4052 | ||
|
|
0cf4223adc | ||
|
|
6fb9338bc2 | ||
|
|
2754bb3c41 | ||
|
|
ca86f6e899 | ||
|
|
70f6d20345 | ||
|
|
4f12178ce3 | ||
|
|
1b4ce382bb | ||
|
|
2fa0b63ebe | ||
|
|
e7c61ff4f4 | ||
|
|
2e6e2085f2 | ||
|
|
6c362b13e9 | ||
|
|
fff8d72fa5 | ||
|
|
8d725ff092 | ||
|
|
896263dd5f | ||
|
|
743133b857 | ||
|
|
8ec353b38c | ||
|
|
a498d22e95 | ||
|
|
acab3dac61 | ||
|
|
040c5d1998 | ||
|
|
7de4faa420 | ||
|
|
debcd84146 | ||
|
|
5e1a7df64b | ||
|
|
e715f1b75d | ||
|
|
a34bf866ef | ||
|
|
0e6963e04d | ||
|
|
9d04e5fe1a | ||
|
|
b8291ce83c | ||
|
|
5a659ff5d6 | ||
|
|
c1c379d0f9 | ||
|
|
4fb173d0a5 | ||
|
|
91bec2dd52 | ||
|
|
465f581a94 | ||
|
|
ac69a861ee | ||
|
|
cfa254e96f | ||
|
|
2715d7b111 | ||
|
|
6e4a3aeea0 | ||
|
|
5ad2be7757 | ||
|
|
d8ac55d6a3 | ||
|
|
1d900be948 | ||
|
|
35ba9268b6 | ||
|
|
bdf6cd6fd4 | ||
|
|
7737015bdc | ||
|
|
eb15ebc9d5 | ||
|
|
f31f32b317 | ||
|
|
e12d021779 | ||
|
|
3a999f72ce | ||
|
|
841ef63f20 | ||
|
|
3395b8b18b | ||
|
|
ce062a3533 | ||
|
|
4dc1189fa1 | ||
|
|
41b271f3fc | ||
|
|
aa2170285c | ||
|
|
d56557e274 | ||
|
|
024b276c20 | ||
|
|
854142ca16 | ||
|
|
67910e590e | ||
|
|
1027479da9 | ||
|
|
30b27596b2 | ||
|
|
90f829f420 | ||
|
|
ec3856d238 | ||
|
|
274063d472 | ||
|
|
b1f6042969 | ||
|
|
248cb48bbd | ||
|
|
9ee5a751a6 | ||
|
|
424eab60e3 | ||
|
|
58638459fd | ||
|
|
a3f0e2d580 | ||
|
|
1e58140233 | ||
|
|
2960616a69 | ||
|
|
27e0398db6 | ||
|
|
b2a34fdcd3 |
34
.github/ISSUE_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
<!--
|
||||
Before opening a new issue, please search through the existing issues to
|
||||
see if your topic has already been addressed. Note that you may need to
|
||||
remove the "is:open" filter from the search bar to include closed issues.
|
||||
|
||||
Check the appropriate type for your issue below by placing an x between the
|
||||
brackets.
|
||||
|
||||
Please note that issues which do not fall under any of the below categories
|
||||
will be closed.
|
||||
--->
|
||||
### Issue type:
|
||||
- [ ] Feature request <!-- Requesting the implementation of a new feature -->
|
||||
- [ ] Bug report <!-- Reporting unexpected or erroneous behavior -->
|
||||
- [ ] Documentation <!-- Proposing a modification to the documentation -->
|
||||
|
||||
<!--
|
||||
Please describe the environment.
|
||||
-->
|
||||
### Environment:
|
||||
* AdminLTE Version: <!-- Example: 2.4 -->
|
||||
* Operating System: <!-- Example: OSX/Android -->
|
||||
* Browser (Version): <!-- Example: Chrome (Latest) -->
|
||||
|
||||
<!--
|
||||
BUG REPORTS must include:
|
||||
* Steps or URL needed to reproduce the bug/issue
|
||||
* Any relevant error messages (screenshots may also help)
|
||||
* A snippet of your markup (where applicable)
|
||||
|
||||
FEATURE REQUESTS must include:
|
||||
* A detailed description of the proposed functionality
|
||||
-->
|
||||
### Description:
|
||||
11
.gitignore
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
*.DS_Store
|
||||
*.log
|
||||
*.zip
|
||||
.idea
|
||||
.sass-cache/
|
||||
/nbproject/
|
||||
/nbproject/private/
|
||||
/node_modules/
|
||||
ad.js
|
||||
TODO
|
||||
test.html
|
||||
3
.npmignore
Normal file
@@ -0,0 +1,3 @@
|
||||
bower_components/
|
||||
documentation/
|
||||
composer.json
|
||||
311
Gruntfile.js
Normal file
@@ -0,0 +1,311 @@
|
||||
// AdminLTE Gruntfile
|
||||
module.exports = function (grunt) { // jshint ignore:line
|
||||
'use strict';
|
||||
|
||||
grunt.initConfig({
|
||||
pkg : grunt.file.readJSON('package.json'),
|
||||
watch : {
|
||||
less : {
|
||||
// Compiles less files upon saving
|
||||
files: ['build/less/*.less'],
|
||||
tasks: ['less:development', 'less:production', 'replace', 'notify:less']
|
||||
},
|
||||
js : {
|
||||
// Compile js files upon saving
|
||||
files: ['build/js/*.js'],
|
||||
tasks: ['js', 'notify:js']
|
||||
},
|
||||
skins: {
|
||||
// Compile any skin less files upon saving
|
||||
files: ['build/less/skins/*.less'],
|
||||
tasks: ['less:skins', 'less:minifiedSkins', 'notify:less']
|
||||
}
|
||||
},
|
||||
// Notify end of tasks
|
||||
notify: {
|
||||
less: {
|
||||
options: {
|
||||
title : 'AdminLTE',
|
||||
message: 'LESS finished running'
|
||||
}
|
||||
},
|
||||
js : {
|
||||
options: {
|
||||
title : 'AdminLTE',
|
||||
message: 'JS bundler finished running'
|
||||
}
|
||||
}
|
||||
},
|
||||
// 'less'-task configuration
|
||||
// This task will compile all less files upon saving to create both AdminLTE.css and AdminLTE.min.css
|
||||
less : {
|
||||
// Development not compressed
|
||||
development : {
|
||||
files: {
|
||||
// compilation.css : source.less
|
||||
'dist/css/AdminLTE.css' : 'build/less/AdminLTE.less',
|
||||
// AdminLTE without plugins
|
||||
'dist/css/alt/AdminLTE-without-plugins.css' : 'build/less/AdminLTE-without-plugins.less',
|
||||
// Separate plugins
|
||||
'dist/css/alt/AdminLTE-select2.css' : 'build/less/select2.less',
|
||||
'dist/css/alt/AdminLTE-fullcalendar.css' : 'build/less/fullcalendar.less',
|
||||
'dist/css/alt/AdminLTE-bootstrap-social.css': 'build/less/bootstrap-social.less'
|
||||
}
|
||||
},
|
||||
// Production compressed version
|
||||
production : {
|
||||
options: {
|
||||
compress: true
|
||||
},
|
||||
files : {
|
||||
// compilation.css : source.less
|
||||
'dist/css/AdminLTE.min.css' : 'build/less/AdminLTE.less',
|
||||
// AdminLTE without plugins
|
||||
'dist/css/alt/AdminLTE-without-plugins.min.css' : 'build/less/AdminLTE-without-plugins.less',
|
||||
// Separate plugins
|
||||
'dist/css/alt/AdminLTE-select2.min.css' : 'build/less/select2.less',
|
||||
'dist/css/alt/AdminLTE-fullcalendar.min.css' : 'build/less/fullcalendar.less',
|
||||
'dist/css/alt/AdminLTE-bootstrap-social.min.css': 'build/less/bootstrap-social.less'
|
||||
}
|
||||
},
|
||||
// Non minified skin files
|
||||
skins : {
|
||||
files: {
|
||||
'dist/css/skins/skin-blue.css' : 'build/less/skins/skin-blue.less',
|
||||
'dist/css/skins/skin-black.css' : 'build/less/skins/skin-black.less',
|
||||
'dist/css/skins/skin-yellow.css' : 'build/less/skins/skin-yellow.less',
|
||||
'dist/css/skins/skin-green.css' : 'build/less/skins/skin-green.less',
|
||||
'dist/css/skins/skin-red.css' : 'build/less/skins/skin-red.less',
|
||||
'dist/css/skins/skin-purple.css' : 'build/less/skins/skin-purple.less',
|
||||
'dist/css/skins/skin-blue-light.css' : 'build/less/skins/skin-blue-light.less',
|
||||
'dist/css/skins/skin-black-light.css' : 'build/less/skins/skin-black-light.less',
|
||||
'dist/css/skins/skin-yellow-light.css': 'build/less/skins/skin-yellow-light.less',
|
||||
'dist/css/skins/skin-green-light.css' : 'build/less/skins/skin-green-light.less',
|
||||
'dist/css/skins/skin-red-light.css' : 'build/less/skins/skin-red-light.less',
|
||||
'dist/css/skins/skin-purple-light.css': 'build/less/skins/skin-purple-light.less',
|
||||
'dist/css/skins/_all-skins.css' : 'build/less/skins/_all-skins.less'
|
||||
}
|
||||
},
|
||||
// Skins minified
|
||||
minifiedSkins: {
|
||||
options: {
|
||||
compress: true
|
||||
},
|
||||
files : {
|
||||
'dist/css/skins/skin-blue.min.css' : 'build/less/skins/skin-blue.less',
|
||||
'dist/css/skins/skin-black.min.css' : 'build/less/skins/skin-black.less',
|
||||
'dist/css/skins/skin-yellow.min.css' : 'build/less/skins/skin-yellow.less',
|
||||
'dist/css/skins/skin-green.min.css' : 'build/less/skins/skin-green.less',
|
||||
'dist/css/skins/skin-red.min.css' : 'build/less/skins/skin-red.less',
|
||||
'dist/css/skins/skin-purple.min.css' : 'build/less/skins/skin-purple.less',
|
||||
'dist/css/skins/skin-blue-light.min.css' : 'build/less/skins/skin-blue-light.less',
|
||||
'dist/css/skins/skin-black-light.min.css' : 'build/less/skins/skin-black-light.less',
|
||||
'dist/css/skins/skin-yellow-light.min.css': 'build/less/skins/skin-yellow-light.less',
|
||||
'dist/css/skins/skin-green-light.min.css' : 'build/less/skins/skin-green-light.less',
|
||||
'dist/css/skins/skin-red-light.min.css' : 'build/less/skins/skin-red-light.less',
|
||||
'dist/css/skins/skin-purple-light.min.css': 'build/less/skins/skin-purple-light.less',
|
||||
'dist/css/skins/_all-skins.min.css' : 'build/less/skins/_all-skins.less'
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// Uglify task info. Compress the js files.
|
||||
uglify: {
|
||||
options : {
|
||||
mangle : true,
|
||||
preserveComments: 'some'
|
||||
},
|
||||
production: {
|
||||
files: {
|
||||
'dist/js/adminlte.min.js': ['dist/js/adminlte.js']
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// Concatenate JS Files
|
||||
concat: {
|
||||
options: {
|
||||
separator: '\n\n',
|
||||
banner : '/*! AdminLTE app.js\n'
|
||||
+ '* ================\n'
|
||||
+ '* Main JS application file for AdminLTE v2. This file\n'
|
||||
+ '* should be included in all pages. It controls some layout\n'
|
||||
+ '* options and implements exclusive AdminLTE plugins.\n'
|
||||
+ '*\n'
|
||||
+ '* @Author Almsaeed Studio\n'
|
||||
+ '* @Support <https://www.almsaeedstudio.com>\n'
|
||||
+ '* @Email <abdullah@almsaeedstudio.com>\n'
|
||||
+ '* @version <%= pkg.version %>\n'
|
||||
+ '* @repository <%= pkg.repository.url %>\n'
|
||||
+ '* @license MIT <http://opensource.org/licenses/MIT>\n'
|
||||
+ '*/\n\n'
|
||||
+ '// Make sure jQuery has been loaded\n'
|
||||
+ 'if (typeof jQuery === \'undefined\') {\n'
|
||||
+ 'throw new Error(\'AdminLTE requires jQuery\')\n'
|
||||
+ '}\n\n'
|
||||
},
|
||||
dist : {
|
||||
src : [
|
||||
'build/js/BoxRefresh.js',
|
||||
'build/js/BoxWidget.js',
|
||||
'build/js/ControlSidebar.js',
|
||||
'build/js/DirectChat.js',
|
||||
'build/js/Layout.js',
|
||||
'build/js/PushMenu.js',
|
||||
'build/js/TodoList.js',
|
||||
'build/js/Tree.js'
|
||||
],
|
||||
dest: 'dist/js/adminlte.js'
|
||||
}
|
||||
},
|
||||
|
||||
// Replace image paths in AdminLTE without plugins
|
||||
replace: {
|
||||
withoutPlugins : {
|
||||
src : ['dist/css/alt/AdminLTE-without-plugins.css'],
|
||||
dest : 'dist/css/alt/AdminLTE-without-plugins.css',
|
||||
replacements: [
|
||||
{
|
||||
from: '../img',
|
||||
to : '../../img'
|
||||
}
|
||||
]
|
||||
},
|
||||
withoutPluginsMin: {
|
||||
src : ['dist/css/alt/AdminLTE-without-plugins.min.css'],
|
||||
dest : 'dist/css/alt/AdminLTE-without-plugins.min.css',
|
||||
replacements: [
|
||||
{
|
||||
from: '../img',
|
||||
to : '../../img'
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
// Build the documentation files
|
||||
includes: {
|
||||
build: {
|
||||
src : ['*.html'], // Source files
|
||||
dest : 'documentation/', // Destination directory
|
||||
flatten: true,
|
||||
cwd : 'documentation/build',
|
||||
options: {
|
||||
silent : true,
|
||||
includePath: 'documentation/build/include'
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// Optimize images
|
||||
image: {
|
||||
dynamic: {
|
||||
files: [
|
||||
{
|
||||
expand: true,
|
||||
cwd : 'build/img/',
|
||||
src : ['**/*.{png,jpg,gif,svg,jpeg}'],
|
||||
dest : 'dist/img/'
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
// Validate JS code
|
||||
jshint: {
|
||||
options: {
|
||||
jshintrc: 'build/js/.jshintrc'
|
||||
},
|
||||
grunt : {
|
||||
options: {
|
||||
jshintrc: 'build/grunt/.jshintrc'
|
||||
},
|
||||
src : 'Gruntfile.js'
|
||||
},
|
||||
core : {
|
||||
src: 'build/js/*.js'
|
||||
},
|
||||
demo : {
|
||||
src: 'dist/js/demo.js'
|
||||
},
|
||||
pages : {
|
||||
src: 'dist/js/pages/*.js'
|
||||
}
|
||||
},
|
||||
|
||||
jscs: {
|
||||
options: {
|
||||
config: 'build/js/.jscsrc'
|
||||
},
|
||||
core : {
|
||||
src: '<%= jshint.core.src %>'
|
||||
},
|
||||
pages : {
|
||||
src: '<%= jshint.pages.src %>'
|
||||
}
|
||||
},
|
||||
|
||||
// Validate CSS files
|
||||
csslint: {
|
||||
options: {
|
||||
csslintrc: 'build/less/.csslintrc'
|
||||
},
|
||||
dist : [
|
||||
'dist/css/AdminLTE.css'
|
||||
]
|
||||
},
|
||||
|
||||
// Validate Bootstrap HTML
|
||||
bootlint: {
|
||||
options: {
|
||||
relaxerror: ['W005']
|
||||
},
|
||||
files : ['pages/**/*.html', '*.html']
|
||||
},
|
||||
|
||||
// Delete images in build directory
|
||||
// After compressing the images in the build/img dir, there is no need
|
||||
// for them
|
||||
clean: {
|
||||
build: ['build/img/*']
|
||||
}
|
||||
});
|
||||
|
||||
// Load all grunt tasks
|
||||
|
||||
// LESS Compiler
|
||||
grunt.loadNpmTasks('grunt-contrib-less');
|
||||
// Watch File Changes
|
||||
grunt.loadNpmTasks('grunt-contrib-watch');
|
||||
// Compress JS Files
|
||||
grunt.loadNpmTasks('grunt-contrib-uglify');
|
||||
// Include Files Within HTML
|
||||
grunt.loadNpmTasks('grunt-includes');
|
||||
// Optimize images
|
||||
grunt.loadNpmTasks('grunt-image');
|
||||
// Validate JS code
|
||||
grunt.loadNpmTasks('grunt-contrib-jshint');
|
||||
grunt.loadNpmTasks('grunt-jscs');
|
||||
// Delete not needed files
|
||||
grunt.loadNpmTasks('grunt-contrib-clean');
|
||||
// Lint CSS
|
||||
grunt.loadNpmTasks('grunt-contrib-csslint');
|
||||
// Lint Bootstrap
|
||||
grunt.loadNpmTasks('grunt-bootlint');
|
||||
// Concatenate JS files
|
||||
grunt.loadNpmTasks('grunt-contrib-concat');
|
||||
// Notify
|
||||
grunt.loadNpmTasks('grunt-notify');
|
||||
// Replace
|
||||
grunt.loadNpmTasks('grunt-text-replace');
|
||||
|
||||
// Linting task
|
||||
grunt.registerTask('lint', ['jshint', 'csslint', 'bootlint']);
|
||||
// JS task
|
||||
grunt.registerTask('js', ['concat', 'uglify']);
|
||||
// CSS Task
|
||||
grunt.registerTask('css', ['less:development', 'less:production', 'replace']);
|
||||
|
||||
// The default task (running 'grunt' in console) is 'watch'
|
||||
grunt.registerTask('default', ['watch']);
|
||||
};
|
||||
2
LICENSE
@@ -1,6 +1,6 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2013 almasaeed2010
|
||||
Copyright (c) 2014-2017 Abdullah Almsaeed
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
|
||||
59
README.md
@@ -1,6 +1,57 @@
|
||||
AdminLTE
|
||||
========
|
||||
Introduction
|
||||
============
|
||||
|
||||
Completely free admin control panel theme. Based on bootstrap 3.x.
|
||||

|
||||
[](https://www.npmjs.com/package/admin-lte)
|
||||
[](https://packagist.org/packages/almasaeed2010/adminlte)
|
||||
[](https://cdnjs.com/libraries/admin-lte)
|
||||
|
||||
Visit http://www.almsaeedstudio.com/AdminLTE-pre for a preview.
|
||||
**AdminLTE** -- is a fully responsive admin template. Based on **[Bootstrap 3](https://github.com/twbs/bootstrap)** framework. Highly customizable and easy to use. Fits many screen resolutions from small mobile devices to large desktops. Check out the live preview now and see for yourself.
|
||||
|
||||
**Download & Preview on [AdminLTE.IO](https://adminlte.io)**
|
||||
|
||||
### Looking for Premium Templates?
|
||||
**AdminLTE.IO just opened a new premium templates website. Hand picked to ensure the best quality and the most affordable prices. Visit https://themequarry.com for more information.**
|
||||
|
||||
## Documentation & Installation Guide
|
||||
Visit the [online documentation](https://adminlte.io/docs) for the most
|
||||
updated guide.
|
||||
|
||||

|
||||
|
||||
### Contribution
|
||||
Contribution are always **welcome and recommended**! Here is how:
|
||||
|
||||
- Fork the repository ([here is the guide](https://help.github.com/articles/fork-a-repo/)).
|
||||
- Clone to your machine ```git clone https://github.com/YOUR_USERNAME/AdminLTE.git```
|
||||
- Make your changes
|
||||
- Create a pull request
|
||||
|
||||
#### Contribution Requirements:
|
||||
|
||||
- When you contribute, you agree to give a non-exclusive license to AdminLTE.IO to use that contribution in any context as we (AdminLTE.IO) see appropriate.
|
||||
- If you use content provided by another party, it must be appropriately licensed using an [open source](http://opensource.org/licenses) license.
|
||||
- Contributions are only accepted through Github pull requests.
|
||||
- Finally, contributed code must work in all supported browsers (see above for browser support).
|
||||
|
||||
### License
|
||||
AdminLTE is an open source project by [AdminLTE.IO](https://adminlte.io) that is licensed under [MIT](http://opensource.org/licenses/MIT). AdminLTE.IO
|
||||
reserves the right to change the license of future releases. Wondering what you can or can't do? View the [license guide](https://adminlte.io/docs/license).
|
||||
|
||||
### Legacy Releases
|
||||
AdminLTE 1.x can be easily upgraded to 2.x using [this guide](https://adminlte.io/themes/AdminLTE/documentation/index.html#upgrade), but if you intend to keep using AdminLTE 1.x, you can download the latest release from the [releases](https://github.com/almasaeed2010/AdminLTE/releases) section above.
|
||||
|
||||
### Change log
|
||||
**For the most recent change log, visit the [releases page](https://github.com/almasaeed2010/AdminLTE/releases) or the [changelog file](https://github.com/almasaeed2010/AdminLTE/blob/master/changelog.md).** We will add detailed release notes to each new release.
|
||||
|
||||
### Image Credits
|
||||
- [Pixeden](http://www.pixeden.com/psd-web-elements/flat-responsive-showcase-psd)
|
||||
- [Graphicsfuel](http://www.graphicsfuel.com/2013/02/13-high-resolution-blur-backgrounds/)
|
||||
- [Pickaface](http://pickaface.net/)
|
||||
- [Unsplash](https://unsplash.com/)
|
||||
- [Uifaces](http://uifaces.com/)
|
||||
|
||||
### Donations
|
||||
Donations are **greatly appreciated!**
|
||||
|
||||
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=629XCUSXBHCBC "Donate")
|
||||
|
||||
143
blank_page.html
@@ -1,143 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Template</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport'>
|
||||
<!-- bootstrap 3.0.2 -->
|
||||
<link href="css/bootstrap.min.css" rel="stylesheet" />
|
||||
<!-- font Awesome -->
|
||||
<link href="css/font-awesome.min.css" rel="stylesheet" />
|
||||
<!-- Theme style -->
|
||||
<link href="theme/theme.css" rel="stylesheet" />
|
||||
<!-- Google font Signika -->
|
||||
<link href='http://fonts.googleapis.com/css?family=Signika+Negative' rel='stylesheet' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="navbar navbar-theme bg-blue navbar-static-top" role="navigation">
|
||||
|
||||
<!-- Brand and toggle get grouped for better mobile display -->
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="index.html"><span class="fa fa-shield"></span> AdminLTE</a>
|
||||
<a href="#" class='lte-menu-sm visible-xs navbar-brand'>
|
||||
<span class="fa fa-list"></span>
|
||||
</a>
|
||||
</div>
|
||||
<!-- Collect the nav links, forms, and other content for toggling -->
|
||||
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-gears"></i></a>
|
||||
<ul class="dropdown-menu navbar-selector">
|
||||
<li role="presentation" class="dropdown-header font-primary noClick">Navbar Color</li>
|
||||
<li class="font-primary" data-color="bg-primary"><a href="#"><i class="fa fa-gear"></i> Primary</a></li>
|
||||
<li class="font-blue" data-color="bg-blue"><a href="#"><i class="fa fa-gear"></i> Blue <small class="text-muted">(default)</small></a></li>
|
||||
<li class="font-light-blue" data-color="bg-light-blue"><a href="#"><i class="fa fa-gear"></i> Light Blue</a></li>
|
||||
<li class="font-green" data-color="bg-green"><a href="#"><i class="fa fa-gear"></i> Green</a></li>
|
||||
<li class="font-yellow" data-color="bg-yellow"><a href="#"><i class="fa fa-gear"></i> Yellow</a></li>
|
||||
<li class="font-purple" data-color="bg-purple"><a href="#"><i class="fa fa-gear"></i> Purple</a></li>
|
||||
<li class="font-red" data-color="bg-red"><a href="#"><i class="fa fa-gear"></i> Red</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#"><i class="fa fa-bullhorn"></i></a></li>
|
||||
<li><a href="#"><i class="fa fa-envelope"></i></a></li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#">Profile</a></li>
|
||||
<li><a href="#">Friends</a></li>
|
||||
<li><a href="#">Settings</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a href="#">Privacy</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<form class="navbar-form navbar-right">
|
||||
<div class="form-group">
|
||||
<input type="text" name="search" class="form-control" placeholder="..."/>
|
||||
</div>
|
||||
</form>
|
||||
</div><!-- /.navbar-collapse -->
|
||||
</nav>
|
||||
<div class="lte-main-content">
|
||||
<!-- side bar -->
|
||||
<div class="lte-sidebar col-md-2 col-sm-3 hidden-xs">
|
||||
<ul class="lte-sidebar-menu">
|
||||
<li class="active"><a href="index.html"><i class="fa fa-dashboard"></i> Dashboard</a></li>
|
||||
<li class="lte-tree">
|
||||
<a href="#"><i class="fa fa-bar-chart-o"></i> Charts<i class="pull-right fa fa-angle-right"></i></a>
|
||||
<ul class="lte-tree-menu">
|
||||
<li><a href="charts/flot.html"><i class="fa fa-bar-chart-o"></i> Flot</a></li>
|
||||
<li><a href="charts/jqplot.html"><i class="fa fa-bar-chart-o"></i> JQplot</a></li>
|
||||
<li><a href="charts/xcharts.html"><i class="fa fa-bar-chart-o"></i> xCharts</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="ui.html"><i class="fa fa-tint"></i> User Interface </a></li>
|
||||
<!--<li><a href="widgets.html"><i class="fa fa-gear"></i> Widgets</a></li>-->
|
||||
<li class="lte-tree">
|
||||
<a href="#"><i class="fa fa-pagelines"></i> Example Pages <i class="pull-right fa fa-angle-right"></i></a>
|
||||
<ul class="lte-tree-menu">
|
||||
<li><a href="examples/invoice.html"><i class="fa fa-money"></i> Invoice</a></li>
|
||||
<li><a href="examples/login.html"><i class="fa fa-sign-in"></i> Login</a></li>
|
||||
<li><a href="examples/register.html"><i class="fa fa-lock"></i> Register</a></li>
|
||||
<li><a href="examples/blank_page.html"><i class="fa fa-paperclip"></i> Blank Page</a></li>
|
||||
<li><a href="examples/404.html"><i class="fa fa-unlink"></i> 404 Error Page</a></li>
|
||||
<li><a href="examples/500.html"><i class="fa fa-unlink"></i> 500 Error Page</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="forms.html"><i class="fa fa-edit"></i> Forms</a></li>
|
||||
<li><a href="typography.html"><i class="fa fa-text-width"></i> Typography</a></li>
|
||||
<li><a href="calendar.html"><i class="fa fa-calendar"></i> Calendar</a></li>
|
||||
|
||||
<li class="lte-tree">
|
||||
<a href="#"><i class="fa fa-pagelines"></i> Multilevel Dropdown<i class="pull-right fa fa-angle-right"></i></a>
|
||||
<ul class="lte-tree-menu">
|
||||
<li class="lte-tree">
|
||||
<a href="#"><i class="fa fa-pagelines"></i> Level 1<i class="pull-right fa fa-angle-right"></i></a>
|
||||
<ul class="lte-tree-menu">
|
||||
<li class="lte-tree">
|
||||
<a href="#"><i class="fa fa-pagelines"></i> Level 2<i class="pull-right fa fa-angle-right"></i></a>
|
||||
<ul class="lte-tree-menu">
|
||||
<li><a href="#"><i class="fa fa-pagelines"></i> Level 3</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<!-- /.side-bar-->
|
||||
|
||||
<div class="lte-main-container col-md-10 col-sm-9">
|
||||
<!-- main content -->
|
||||
<div class="page-header">
|
||||
<i class="fa fa-paperclip"></i> Blank Page <small>example page</small>
|
||||
</div>
|
||||
<!-- /.page-header -->
|
||||
<!-- PUT CONTENT HERE -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- ./.lte-main-content -->
|
||||
<footer>
|
||||
Copyright © 2013 - <a>Preview</a> - <a>Purchase</a> - Built with <a target="blank" href="http://getbootstrap.com">Bootstrap 3</a>
|
||||
</footer>
|
||||
|
||||
|
||||
<!-- JQuery 1.10.2 -->
|
||||
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
|
||||
<!-- Bootstrap -->
|
||||
<script src="js/bootstrap.min.js" type="text/javascript"></script>
|
||||
<!-- LTE Tree -->
|
||||
<script src="js/lteTree.js" type="text/javascript"></script>
|
||||
<!-- LTE App -->
|
||||
<script src="js/lteApp.js" type="text/javascript"></script>
|
||||
</body>
|
||||
</html>
|
||||
65
bower.json
Normal file
@@ -0,0 +1,65 @@
|
||||
{
|
||||
"name": "admin-lte",
|
||||
"homepage": "https://adminlte.io",
|
||||
"authors": [
|
||||
"Abdullah Almsaeed <abdullah@almsaeedstudio.com>"
|
||||
],
|
||||
"description": "Admin dashboard and control panel template",
|
||||
"main": [
|
||||
"index2.html",
|
||||
"dist/css/AdminLTE.css",
|
||||
"dist/js/adminlte.js",
|
||||
"build/less/AdminLTE.less"
|
||||
],
|
||||
"keywords": [
|
||||
"css",
|
||||
"js",
|
||||
"html",
|
||||
"template",
|
||||
"admin",
|
||||
"bootstrap",
|
||||
"theme",
|
||||
"backend",
|
||||
"responsive"
|
||||
],
|
||||
"license": "MIT",
|
||||
"ignore": [
|
||||
"/.*",
|
||||
"node_modules",
|
||||
"bower_components",
|
||||
"composer.json",
|
||||
"documentation"
|
||||
],
|
||||
"dependencies": {
|
||||
"bootstrap-slider": "*",
|
||||
"chart.js": "1.0.*",
|
||||
"ckeditor": "^4.7.0",
|
||||
"bootstrap-colorpicker": "^2.5.1",
|
||||
"bootstrap": "^3.3.7",
|
||||
"jquery": "^3.2.1",
|
||||
"datatables.net": "^1.10.15",
|
||||
"datatables.net-bs": "^2.1.1",
|
||||
"bootstrap-datepicker": "^1.7.0",
|
||||
"bootstrap-daterangepicker": "^2.1.25",
|
||||
"moment": "^2.18.1",
|
||||
"fastclick": "^1.0.6",
|
||||
"Flot": "flot#^0.8.3",
|
||||
"fullcalendar": "^3.4.0",
|
||||
"inputmask": "jquery.inputmask#^3.3.7",
|
||||
"ion.rangeSlider": "ionrangeslider#^2.2.0",
|
||||
"jvectormap": "^2.0.4",
|
||||
"jquery-knob": "^1.2.13",
|
||||
"morris.js": "^0.5.1",
|
||||
"PACE": "pace#^1.0.2",
|
||||
"select2": "^4.0.3",
|
||||
"jquery-slimscroll": "slimscroll#^1.3.8",
|
||||
"bootstrap-timepicker": "^0.5.2",
|
||||
"jquery-sparkline": "^2.1.3",
|
||||
"font-awesome": "^4.7.0",
|
||||
"Ionicons": "ionicons#^2.0.1",
|
||||
"jquery-ui": "1.11.4"
|
||||
},
|
||||
"resolutions": {
|
||||
"jquery": "^3.2.1"
|
||||
}
|
||||
}
|
||||
18
bower_components/Flot/.bower.json
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"name": "Flot",
|
||||
"version": "0.8.3",
|
||||
"main": "jquery.flot.js",
|
||||
"dependencies": {
|
||||
"jquery": ">= 1.2.6"
|
||||
},
|
||||
"homepage": "https://github.com/flot/flot",
|
||||
"_release": "0.8.3",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "v0.8.3",
|
||||
"commit": "453b017cc5acfd75e252b93e8635f57f4196d45d"
|
||||
},
|
||||
"_source": "https://github.com/flot/flot.git",
|
||||
"_target": "^0.8.3",
|
||||
"_originalSource": "flot"
|
||||
}
|
||||
3
bower_components/Flot/.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
*.min.js
|
||||
!excanvas.min.js
|
||||
node_modules/
|
||||
3
bower_components/Flot/.travis.yml
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
language: node_js
|
||||
node_js:
|
||||
- 0.8
|
||||
22
bower_components/Flot/LICENSE.txt
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
Copyright (c) 2007-2014 IOLA and Ole Laursen
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without
|
||||
restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
48
js/flot/NEWS.md → bower_components/Flot/NEWS.md
vendored
@@ -1,3 +1,51 @@
|
||||
## Flot 0.8.3 ##
|
||||
|
||||
### Changes ###
|
||||
|
||||
- Updated example code to avoid encouraging unnecessary re-plots.
|
||||
(patch by soenter, pull request #1221)
|
||||
|
||||
### Bug fixes ###
|
||||
|
||||
- Added a work-around to disable the allocation of extra space for first and
|
||||
last axis ticks, allowing plots to span the full width of their container.
|
||||
A proper solution for this bug will be implemented in the 0.9 release.
|
||||
(reported by Josh Pigford and andig, issue #1212, pull request #1290)
|
||||
|
||||
- Fixed a regression introduced in 0.8.1, where the last tick label would
|
||||
sometimes wrap rather than extending the plot's offset to create space.
|
||||
(reported by Elite Gamer, issue #1283)
|
||||
|
||||
- Fixed a regression introduced in 0.8.2, where the resize plugin would use
|
||||
unexpectedly high amounts of CPU even when idle.
|
||||
(reported by tommie, issue #1277, pull request #1289)
|
||||
|
||||
- Fixed the selection example to work with jQuery 1.9.x and later.
|
||||
(reported by EGLadona and dmfalke, issue #1250, pull request #1285)
|
||||
|
||||
- Added a detach shim to fix support for jQuery versions earlier than 1.4.x.
|
||||
(reported by ngavard, issue #1240, pull request #1286)
|
||||
|
||||
- Fixed a rare 'Uncaught TypeError' when using the resize plugin in IE 7/8.
|
||||
(reported by tleish, issue #1265, pull request #1289)
|
||||
|
||||
- Fixed zoom constraints to apply only in the direction of the zoom.
|
||||
(patch by Neil Katin, issue #1204, pull request #1205)
|
||||
|
||||
- Markings lines are no longer blurry when drawn on pixel boundaries.
|
||||
(reported by btccointicker and Rouillard, issue #1210)
|
||||
|
||||
- Don't discard original pie data-series values when combining slices.
|
||||
(patch by Phil Tsarik, pull request #1238)
|
||||
|
||||
- Fixed broken auto-scale behavior when using deprecated [x|y]2axis options.
|
||||
(reported by jorese, issue #1228, pull request #1284)
|
||||
|
||||
- Exposed the dateGenerator function on the plot object, as it used to be
|
||||
before time-mode was moved into a separate plugin.
|
||||
(patch by Paolo Valleri, pull request #1028)
|
||||
|
||||
|
||||
## Flot 0.8.2 ##
|
||||
|
||||
### Changes ###
|
||||
8
bower_components/Flot/component.json
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"name": "Flot",
|
||||
"version": "0.8.3",
|
||||
"main": "jquery.flot.js",
|
||||
"dependencies": {
|
||||
"jquery": ">= 1.2.6"
|
||||
}
|
||||
}
|
||||
173
bower_components/Flot/examples/ajax/index.html
vendored
Normal file
@@ -0,0 +1,173 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Flot Examples: AJAX</title>
|
||||
<link href="../examples.css" rel="stylesheet" type="text/css">
|
||||
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../../excanvas.min.js"></script><![endif]-->
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(function() {
|
||||
|
||||
var options = {
|
||||
lines: {
|
||||
show: true
|
||||
},
|
||||
points: {
|
||||
show: true
|
||||
},
|
||||
xaxis: {
|
||||
tickDecimals: 0,
|
||||
tickSize: 1
|
||||
}
|
||||
};
|
||||
|
||||
var data = [];
|
||||
|
||||
$.plot("#placeholder", data, options);
|
||||
|
||||
// Fetch one series, adding to what we already have
|
||||
|
||||
var alreadyFetched = {};
|
||||
|
||||
$("button.fetchSeries").click(function () {
|
||||
|
||||
var button = $(this);
|
||||
|
||||
// Find the URL in the link right next to us, then fetch the data
|
||||
|
||||
var dataurl = button.siblings("a").attr("href");
|
||||
|
||||
function onDataReceived(series) {
|
||||
|
||||
// Extract the first coordinate pair; jQuery has parsed it, so
|
||||
// the data is now just an ordinary JavaScript object
|
||||
|
||||
var firstcoordinate = "(" + series.data[0][0] + ", " + series.data[0][1] + ")";
|
||||
button.siblings("span").text("Fetched " + series.label + ", first point: " + firstcoordinate);
|
||||
|
||||
// Push the new data onto our existing data array
|
||||
|
||||
if (!alreadyFetched[series.label]) {
|
||||
alreadyFetched[series.label] = true;
|
||||
data.push(series);
|
||||
}
|
||||
|
||||
$.plot("#placeholder", data, options);
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: dataurl,
|
||||
type: "GET",
|
||||
dataType: "json",
|
||||
success: onDataReceived
|
||||
});
|
||||
});
|
||||
|
||||
// Initiate a recurring data update
|
||||
|
||||
$("button.dataUpdate").click(function () {
|
||||
|
||||
data = [];
|
||||
alreadyFetched = {};
|
||||
|
||||
$.plot("#placeholder", data, options);
|
||||
|
||||
var iteration = 0;
|
||||
|
||||
function fetchData() {
|
||||
|
||||
++iteration;
|
||||
|
||||
function onDataReceived(series) {
|
||||
|
||||
// Load all the data in one pass; if we only got partial
|
||||
// data we could merge it with what we already have.
|
||||
|
||||
data = [ series ];
|
||||
$.plot("#placeholder", data, options);
|
||||
}
|
||||
|
||||
// Normally we call the same URL - a script connected to a
|
||||
// database - but in this case we only have static example
|
||||
// files, so we need to modify the URL.
|
||||
|
||||
$.ajax({
|
||||
url: "data-eu-gdp-growth-" + iteration + ".json",
|
||||
type: "GET",
|
||||
dataType: "json",
|
||||
success: onDataReceived
|
||||
});
|
||||
|
||||
if (iteration < 5) {
|
||||
setTimeout(fetchData, 1000);
|
||||
} else {
|
||||
data = [];
|
||||
alreadyFetched = {};
|
||||
}
|
||||
}
|
||||
|
||||
setTimeout(fetchData, 1000);
|
||||
});
|
||||
|
||||
// Load the first series by default, so we don't have an empty plot
|
||||
|
||||
$("button.fetchSeries:first").click();
|
||||
|
||||
// Add the Flot version string to the footer
|
||||
|
||||
$("#footer").prepend("Flot " + $.plot.version + " – ");
|
||||
});
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header">
|
||||
<h2>AJAX</h2>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<div class="demo-container">
|
||||
<div id="placeholder" class="demo-placeholder"></div>
|
||||
</div>
|
||||
|
||||
<p>Example of loading data dynamically with AJAX. Percentage change in GDP (source: <a href="http://epp.eurostat.ec.europa.eu/tgm/table.do?tab=table&init=1&plugin=1&language=en&pcode=tsieb020">Eurostat</a>). Click the buttons below:</p>
|
||||
|
||||
<p>The data is fetched over HTTP, in this case directly from text files. Usually the URL would point to some web server handler (e.g. a PHP page or Java/.NET/Python/Ruby on Rails handler) that extracts it from a database and serializes it to JSON.</p>
|
||||
|
||||
<p>
|
||||
<button class="fetchSeries">First dataset</button>
|
||||
[ <a href="data-eu-gdp-growth.json">see data</a> ]
|
||||
<span></span>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<button class="fetchSeries">Second dataset</button>
|
||||
[ <a href="data-japan-gdp-growth.json">see data</a> ]
|
||||
<span></span>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<button class="fetchSeries">Third dataset</button>
|
||||
[ <a href="data-usa-gdp-growth.json">see data</a> ]
|
||||
<span></span>
|
||||
</p>
|
||||
|
||||
<p>If you combine AJAX with setTimeout, you can poll the server for new data.</p>
|
||||
|
||||
<p>
|
||||
<button class="dataUpdate">Poll for data</button>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
Copyright © 2007 - 2014 IOLA and Ole Laursen
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
87
bower_components/Flot/examples/annotating/index.html
vendored
Normal file
@@ -0,0 +1,87 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Flot Examples: Adding Annotations</title>
|
||||
<link href="../examples.css" rel="stylesheet" type="text/css">
|
||||
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../../excanvas.min.js"></script><![endif]-->
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(function() {
|
||||
|
||||
var d1 = [];
|
||||
for (var i = 0; i < 20; ++i) {
|
||||
d1.push([i, Math.sin(i)]);
|
||||
}
|
||||
|
||||
var data = [{ data: d1, label: "Pressure", color: "#333" }];
|
||||
|
||||
var markings = [
|
||||
{ color: "#f6f6f6", yaxis: { from: 1 } },
|
||||
{ color: "#f6f6f6", yaxis: { to: -1 } },
|
||||
{ color: "#000", lineWidth: 1, xaxis: { from: 2, to: 2 } },
|
||||
{ color: "#000", lineWidth: 1, xaxis: { from: 8, to: 8 } }
|
||||
];
|
||||
|
||||
var placeholder = $("#placeholder");
|
||||
|
||||
var plot = $.plot(placeholder, data, {
|
||||
bars: { show: true, barWidth: 0.5, fill: 0.9 },
|
||||
xaxis: { ticks: [], autoscaleMargin: 0.02 },
|
||||
yaxis: { min: -2, max: 2 },
|
||||
grid: { markings: markings }
|
||||
});
|
||||
|
||||
var o = plot.pointOffset({ x: 2, y: -1.2});
|
||||
|
||||
// Append it to the placeholder that Flot already uses for positioning
|
||||
|
||||
placeholder.append("<div style='position:absolute;left:" + (o.left + 4) + "px;top:" + o.top + "px;color:#666;font-size:smaller'>Warming up</div>");
|
||||
|
||||
o = plot.pointOffset({ x: 8, y: -1.2});
|
||||
placeholder.append("<div style='position:absolute;left:" + (o.left + 4) + "px;top:" + o.top + "px;color:#666;font-size:smaller'>Actual measurements</div>");
|
||||
|
||||
// Draw a little arrow on top of the last label to demonstrate canvas
|
||||
// drawing
|
||||
|
||||
var ctx = plot.getCanvas().getContext("2d");
|
||||
ctx.beginPath();
|
||||
o.left += 4;
|
||||
ctx.moveTo(o.left, o.top);
|
||||
ctx.lineTo(o.left, o.top - 10);
|
||||
ctx.lineTo(o.left + 10, o.top - 5);
|
||||
ctx.lineTo(o.left, o.top);
|
||||
ctx.fillStyle = "#000";
|
||||
ctx.fill();
|
||||
|
||||
// Add the Flot version string to the footer
|
||||
|
||||
$("#footer").prepend("Flot " + $.plot.version + " – ");
|
||||
});
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header">
|
||||
<h2>Adding Annotations</h2>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<div class="demo-container">
|
||||
<div id="placeholder" class="demo-placeholder"></div>
|
||||
</div>
|
||||
|
||||
<p>Flot has support for simple background decorations such as lines and rectangles. They can be useful for marking up certain areas. You can easily add any HTML you need with standard DOM manipulation, e.g. for labels. For drawing custom shapes there is also direct access to the canvas.</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
Copyright © 2007 - 2014 IOLA and Ole Laursen
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
97
bower_components/Flot/examples/axes-interacting/index.html
vendored
Normal file
@@ -0,0 +1,97 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Flot Examples: Interacting with axes</title>
|
||||
<link href="../examples.css" rel="stylesheet" type="text/css">
|
||||
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../../excanvas.min.js"></script><![endif]-->
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(function() {
|
||||
|
||||
function generate(start, end, fn) {
|
||||
var res = [];
|
||||
for (var i = 0; i <= 100; ++i) {
|
||||
var x = start + i / 100 * (end - start);
|
||||
res.push([x, fn(x)]);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
var data = [
|
||||
{ data: generate(0, 10, function (x) { return Math.sqrt(x);}), xaxis: 1, yaxis:1 },
|
||||
{ data: generate(0, 10, function (x) { return Math.sin(x);}), xaxis: 1, yaxis:2 },
|
||||
{ data: generate(0, 10, function (x) { return Math.cos(x);}), xaxis: 1, yaxis:3 },
|
||||
{ data: generate(2, 10, function (x) { return Math.tan(x);}), xaxis: 2, yaxis: 4 }
|
||||
];
|
||||
|
||||
var plot = $.plot("#placeholder", data, {
|
||||
xaxes: [
|
||||
{ position: 'bottom' },
|
||||
{ position: 'top'}
|
||||
],
|
||||
yaxes: [
|
||||
{ position: 'left' },
|
||||
{ position: 'left' },
|
||||
{ position: 'right' },
|
||||
{ position: 'left' }
|
||||
]
|
||||
});
|
||||
|
||||
// Create a div for each axis
|
||||
|
||||
$.each(plot.getAxes(), function (i, axis) {
|
||||
if (!axis.show)
|
||||
return;
|
||||
|
||||
var box = axis.box;
|
||||
|
||||
$("<div class='axisTarget' style='position:absolute; left:" + box.left + "px; top:" + box.top + "px; width:" + box.width + "px; height:" + box.height + "px'></div>")
|
||||
.data("axis.direction", axis.direction)
|
||||
.data("axis.n", axis.n)
|
||||
.css({ backgroundColor: "#f00", opacity: 0, cursor: "pointer" })
|
||||
.appendTo(plot.getPlaceholder())
|
||||
.hover(
|
||||
function () { $(this).css({ opacity: 0.10 }) },
|
||||
function () { $(this).css({ opacity: 0 }) }
|
||||
)
|
||||
.click(function () {
|
||||
$("#click").text("You clicked the " + axis.direction + axis.n + "axis!")
|
||||
});
|
||||
});
|
||||
|
||||
// Add the Flot version string to the footer
|
||||
|
||||
$("#footer").prepend("Flot " + $.plot.version + " – ");
|
||||
});
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header">
|
||||
<h2>Interacting with axes</h2>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<div class="demo-container">
|
||||
<div id="placeholder" class="demo-placeholder"></div>
|
||||
</div>
|
||||
|
||||
<p>With multiple axes, you sometimes need to interact with them. A simple way to do this is to draw the plot, deduce the axis placements and insert a couple of divs on top to catch events.</p>
|
||||
|
||||
<p>Try clicking an axis.</p>
|
||||
|
||||
<p id="click"></p>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
Copyright © 2007 - 2014 IOLA and Ole Laursen
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
77
bower_components/Flot/examples/axes-multiple/index.html
vendored
Normal file
114
bower_components/Flot/examples/axes-time-zones/index.html
vendored
Normal file
@@ -0,0 +1,114 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Flot Examples: Time zones</title>
|
||||
<link href="../examples.css" rel="stylesheet" type="text/css">
|
||||
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../../excanvas.min.js"></script><![endif]-->
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.time.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="date.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(function() {
|
||||
|
||||
timezoneJS.timezone.zoneFileBasePath = "tz";
|
||||
timezoneJS.timezone.defaultZoneFile = [];
|
||||
timezoneJS.timezone.init({async: false});
|
||||
|
||||
var d = [
|
||||
[Date.UTC(2011, 2, 12, 14, 0, 0), 28],
|
||||
[Date.UTC(2011, 2, 12, 15, 0, 0), 27],
|
||||
[Date.UTC(2011, 2, 12, 16, 0, 0), 25],
|
||||
[Date.UTC(2011, 2, 12, 17, 0, 0), 19],
|
||||
[Date.UTC(2011, 2, 12, 18, 0, 0), 16],
|
||||
[Date.UTC(2011, 2, 12, 19, 0, 0), 14],
|
||||
[Date.UTC(2011, 2, 12, 20, 0, 0), 11],
|
||||
[Date.UTC(2011, 2, 12, 21, 0, 0), 9],
|
||||
[Date.UTC(2011, 2, 12, 22, 0, 0), 7.5],
|
||||
[Date.UTC(2011, 2, 12, 23, 0, 0), 6],
|
||||
[Date.UTC(2011, 2, 13, 0, 0, 0), 5],
|
||||
[Date.UTC(2011, 2, 13, 1, 0, 0), 6],
|
||||
[Date.UTC(2011, 2, 13, 2, 0, 0), 7.5],
|
||||
[Date.UTC(2011, 2, 13, 3, 0, 0), 9],
|
||||
[Date.UTC(2011, 2, 13, 4, 0, 0), 11],
|
||||
[Date.UTC(2011, 2, 13, 5, 0, 0), 14],
|
||||
[Date.UTC(2011, 2, 13, 6, 0, 0), 16],
|
||||
[Date.UTC(2011, 2, 13, 7, 0, 0), 19],
|
||||
[Date.UTC(2011, 2, 13, 8, 0, 0), 25],
|
||||
[Date.UTC(2011, 2, 13, 9, 0, 0), 27],
|
||||
[Date.UTC(2011, 2, 13, 10, 0, 0), 28],
|
||||
[Date.UTC(2011, 2, 13, 11, 0, 0), 29],
|
||||
[Date.UTC(2011, 2, 13, 12, 0, 0), 29.5],
|
||||
[Date.UTC(2011, 2, 13, 13, 0, 0), 29],
|
||||
[Date.UTC(2011, 2, 13, 14, 0, 0), 28],
|
||||
[Date.UTC(2011, 2, 13, 15, 0, 0), 27],
|
||||
[Date.UTC(2011, 2, 13, 16, 0, 0), 25],
|
||||
[Date.UTC(2011, 2, 13, 17, 0, 0), 19],
|
||||
[Date.UTC(2011, 2, 13, 18, 0, 0), 16],
|
||||
[Date.UTC(2011, 2, 13, 19, 0, 0), 14],
|
||||
[Date.UTC(2011, 2, 13, 20, 0, 0), 11],
|
||||
[Date.UTC(2011, 2, 13, 21, 0, 0), 9],
|
||||
[Date.UTC(2011, 2, 13, 22, 0, 0), 7.5],
|
||||
[Date.UTC(2011, 2, 13, 23, 0, 0), 6]
|
||||
];
|
||||
|
||||
var plot = $.plot("#placeholderUTC", [d], {
|
||||
xaxis: {
|
||||
mode: "time"
|
||||
}
|
||||
});
|
||||
|
||||
var plot = $.plot("#placeholderLocal", [d], {
|
||||
xaxis: {
|
||||
mode: "time",
|
||||
timezone: "browser"
|
||||
}
|
||||
});
|
||||
|
||||
var plot = $.plot("#placeholderChicago", [d], {
|
||||
xaxis: {
|
||||
mode: "time",
|
||||
timezone: "America/Chicago"
|
||||
}
|
||||
});
|
||||
|
||||
// Add the Flot version string to the footer
|
||||
|
||||
$("#footer").prepend("Flot " + $.plot.version + " – ");
|
||||
});
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header">
|
||||
<h2>Time zones</h2>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<h3>UTC</h3>
|
||||
<div class="demo-container" style="height: 300px;">
|
||||
<div id="placeholderUTC" class="demo-placeholder"></div>
|
||||
</div>
|
||||
|
||||
<h3>Browser</h3>
|
||||
<div class="demo-container" style="height: 300px;">
|
||||
<div id="placeholderLocal" class="demo-placeholder"></div>
|
||||
</div>
|
||||
|
||||
<h3>Chicago</h3>
|
||||
<div class="demo-container" style="height: 300px;">
|
||||
<div id="placeholderChicago" class="demo-placeholder"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
Copyright © 2007 - 2014 IOLA and Ole Laursen
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
137
bower_components/Flot/examples/axes-time/index.html
vendored
Normal file
|
Before Width: | Height: | Size: 231 B After Width: | Height: | Size: 231 B |
91
bower_components/Flot/examples/basic-options/index.html
vendored
Normal file
@@ -0,0 +1,91 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Flot Examples: Basic Options</title>
|
||||
<link href="../examples.css" rel="stylesheet" type="text/css">
|
||||
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../../excanvas.min.js"></script><![endif]-->
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(function () {
|
||||
|
||||
var d1 = [];
|
||||
for (var i = 0; i < Math.PI * 2; i += 0.25) {
|
||||
d1.push([i, Math.sin(i)]);
|
||||
}
|
||||
|
||||
var d2 = [];
|
||||
for (var i = 0; i < Math.PI * 2; i += 0.25) {
|
||||
d2.push([i, Math.cos(i)]);
|
||||
}
|
||||
|
||||
var d3 = [];
|
||||
for (var i = 0; i < Math.PI * 2; i += 0.1) {
|
||||
d3.push([i, Math.tan(i)]);
|
||||
}
|
||||
|
||||
$.plot("#placeholder", [
|
||||
{ label: "sin(x)", data: d1 },
|
||||
{ label: "cos(x)", data: d2 },
|
||||
{ label: "tan(x)", data: d3 }
|
||||
], {
|
||||
series: {
|
||||
lines: { show: true },
|
||||
points: { show: true }
|
||||
},
|
||||
xaxis: {
|
||||
ticks: [
|
||||
0, [ Math.PI/2, "\u03c0/2" ], [ Math.PI, "\u03c0" ],
|
||||
[ Math.PI * 3/2, "3\u03c0/2" ], [ Math.PI * 2, "2\u03c0" ]
|
||||
]
|
||||
},
|
||||
yaxis: {
|
||||
ticks: 10,
|
||||
min: -2,
|
||||
max: 2,
|
||||
tickDecimals: 3
|
||||
},
|
||||
grid: {
|
||||
backgroundColor: { colors: [ "#fff", "#eee" ] },
|
||||
borderWidth: {
|
||||
top: 1,
|
||||
right: 1,
|
||||
bottom: 2,
|
||||
left: 2
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Add the Flot version string to the footer
|
||||
|
||||
$("#footer").prepend("Flot " + $.plot.version + " – ");
|
||||
});
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header">
|
||||
<h2>Basic Options</h2>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<div class="demo-container">
|
||||
<div id="placeholder" class="demo-placeholder"></div>
|
||||
</div>
|
||||
|
||||
<p>There are plenty of options you can set to control the precise looks of your plot. You can control the ticks on the axes, the legend, the graph type, etc.</p>
|
||||
|
||||
<p>Flot goes to great lengths to provide sensible defaults so that you don't have to customize much for a good-looking result.</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
Copyright © 2007 - 2014 IOLA and Ole Laursen
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
57
bower_components/Flot/examples/basic-usage/index.html
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Flot Examples: Basic Usage</title>
|
||||
<link href="../examples.css" rel="stylesheet" type="text/css">
|
||||
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../../excanvas.min.js"></script><![endif]-->
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(function() {
|
||||
|
||||
var d1 = [];
|
||||
for (var i = 0; i < 14; i += 0.5) {
|
||||
d1.push([i, Math.sin(i)]);
|
||||
}
|
||||
|
||||
var d2 = [[0, 3], [4, 8], [8, 5], [9, 13]];
|
||||
|
||||
// A null signifies separate line segments
|
||||
|
||||
var d3 = [[0, 12], [7, 12], null, [7, 2.5], [12, 2.5]];
|
||||
|
||||
$.plot("#placeholder", [ d1, d2, d3 ]);
|
||||
|
||||
// Add the Flot version string to the footer
|
||||
|
||||
$("#footer").prepend("Flot " + $.plot.version + " – ");
|
||||
});
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header">
|
||||
<h2>Basic Usage</h2>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<div class="demo-container">
|
||||
<div id="placeholder" class="demo-placeholder"></div>
|
||||
</div>
|
||||
|
||||
<p>You don't have to do much to get an attractive plot. Create a placeholder, make sure it has dimensions (so Flot knows at what size to draw the plot), then call the plot function with your data.</p>
|
||||
|
||||
<p>The axes are automatically scaled.</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
Copyright © 2007 - 2014 IOLA and Ole Laursen
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
75
bower_components/Flot/examples/canvas/index.html
vendored
Normal file
64
bower_components/Flot/examples/categories/index.html
vendored
Normal file
@@ -0,0 +1,64 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Flot Examples: Categories</title>
|
||||
<link href="../examples.css" rel="stylesheet" type="text/css">
|
||||
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../../excanvas.min.js"></script><![endif]-->
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.categories.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(function() {
|
||||
|
||||
var data = [ ["January", 10], ["February", 8], ["March", 4], ["April", 13], ["May", 17], ["June", 9] ];
|
||||
|
||||
$.plot("#placeholder", [ data ], {
|
||||
series: {
|
||||
bars: {
|
||||
show: true,
|
||||
barWidth: 0.6,
|
||||
align: "center"
|
||||
}
|
||||
},
|
||||
xaxis: {
|
||||
mode: "categories",
|
||||
tickLength: 0
|
||||
}
|
||||
});
|
||||
|
||||
// Add the Flot version string to the footer
|
||||
|
||||
$("#footer").prepend("Flot " + $.plot.version + " – ");
|
||||
});
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header">
|
||||
<h2>Categories</h2>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<div class="demo-container">
|
||||
<div id="placeholder" class="demo-placeholder"></div>
|
||||
</div>
|
||||
|
||||
<p>With the categories plugin you can plot categories/textual data easily.</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
Copyright © 2007 - 2014 IOLA and Ole Laursen
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
69
bower_components/Flot/examples/image/index.html
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Flot Examples: Image Plots</title>
|
||||
<link href="../examples.css" rel="stylesheet" type="text/css">
|
||||
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../../excanvas.min.js"></script><![endif]-->
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.image.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(function() {
|
||||
|
||||
var data = [[["hs-2004-27-a-large-web.jpg", -10, -10, 10, 10]]];
|
||||
|
||||
var options = {
|
||||
series: {
|
||||
images: {
|
||||
show: true
|
||||
}
|
||||
},
|
||||
xaxis: {
|
||||
min: -8,
|
||||
max: 4
|
||||
},
|
||||
yaxis: {
|
||||
min: -8,
|
||||
max: 4
|
||||
}
|
||||
};
|
||||
|
||||
$.plot.image.loadDataImages(data, options, function () {
|
||||
$.plot("#placeholder", data, options);
|
||||
});
|
||||
|
||||
// Add the Flot version string to the footer
|
||||
|
||||
$("#footer").prepend("Flot " + $.plot.version + " – ");
|
||||
});
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header">
|
||||
<h2>Image Plots</h2>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<div class="demo-container" style="width:600px;height:600px;">
|
||||
<div id="placeholder" class="demo-placeholder"></div>
|
||||
</div>
|
||||
|
||||
<p>The Cat's Eye Nebula (<a href="http://hubblesite.org/gallery/album/nebula/pr2004027a/">picture from Hubble</a>).</p>
|
||||
|
||||
<p>With the image plugin, you can plot static images against a set of axes. This is for useful for adding ticks to complex prerendered visualizations. Instead of inputting data points, you specify the images and where their two opposite corners are supposed to be in plot space.</p>
|
||||
|
||||
<p>Images represent a little further complication because you need to make sure they are loaded before you can use them (Flot skips incomplete images). The plugin comes with a couple of helpers for doing that.</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
Copyright © 2007 - 2014 IOLA and Ole Laursen
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
118
bower_components/Flot/examples/interacting/index.html
vendored
Normal file
@@ -0,0 +1,118 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Flot Examples: Interactivity</title>
|
||||
<link href="../examples.css" rel="stylesheet" type="text/css">
|
||||
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../../excanvas.min.js"></script><![endif]-->
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(function() {
|
||||
|
||||
var sin = [],
|
||||
cos = [];
|
||||
|
||||
for (var i = 0; i < 14; i += 0.5) {
|
||||
sin.push([i, Math.sin(i)]);
|
||||
cos.push([i, Math.cos(i)]);
|
||||
}
|
||||
|
||||
var plot = $.plot("#placeholder", [
|
||||
{ data: sin, label: "sin(x)"},
|
||||
{ data: cos, label: "cos(x)"}
|
||||
], {
|
||||
series: {
|
||||
lines: {
|
||||
show: true
|
||||
},
|
||||
points: {
|
||||
show: true
|
||||
}
|
||||
},
|
||||
grid: {
|
||||
hoverable: true,
|
||||
clickable: true
|
||||
},
|
||||
yaxis: {
|
||||
min: -1.2,
|
||||
max: 1.2
|
||||
}
|
||||
});
|
||||
|
||||
$("<div id='tooltip'></div>").css({
|
||||
position: "absolute",
|
||||
display: "none",
|
||||
border: "1px solid #fdd",
|
||||
padding: "2px",
|
||||
"background-color": "#fee",
|
||||
opacity: 0.80
|
||||
}).appendTo("body");
|
||||
|
||||
$("#placeholder").bind("plothover", function (event, pos, item) {
|
||||
|
||||
if ($("#enablePosition:checked").length > 0) {
|
||||
var str = "(" + pos.x.toFixed(2) + ", " + pos.y.toFixed(2) + ")";
|
||||
$("#hoverdata").text(str);
|
||||
}
|
||||
|
||||
if ($("#enableTooltip:checked").length > 0) {
|
||||
if (item) {
|
||||
var x = item.datapoint[0].toFixed(2),
|
||||
y = item.datapoint[1].toFixed(2);
|
||||
|
||||
$("#tooltip").html(item.series.label + " of " + x + " = " + y)
|
||||
.css({top: item.pageY+5, left: item.pageX+5})
|
||||
.fadeIn(200);
|
||||
} else {
|
||||
$("#tooltip").hide();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$("#placeholder").bind("plotclick", function (event, pos, item) {
|
||||
if (item) {
|
||||
$("#clickdata").text(" - click point " + item.dataIndex + " in " + item.series.label);
|
||||
plot.highlight(item.series, item.datapoint);
|
||||
}
|
||||
});
|
||||
|
||||
// Add the Flot version string to the footer
|
||||
|
||||
$("#footer").prepend("Flot " + $.plot.version + " – ");
|
||||
});
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="header">
|
||||
<h2>Interactivity</h2>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<div class="demo-container">
|
||||
<div id="placeholder" class="demo-placeholder"></div>
|
||||
</div>
|
||||
|
||||
<p>One of the goals of Flot is to support user interactions. Try pointing and clicking on the points.</p>
|
||||
|
||||
<p>
|
||||
<label><input id="enablePosition" type="checkbox" checked="checked"></input>Show mouse position</label>
|
||||
<span id="hoverdata"></span>
|
||||
<span id="clickdata"></span>
|
||||
</p>
|
||||
|
||||
<p>A tooltip is easy to build with a bit of jQuery code and the data returned from the plot.</p>
|
||||
|
||||
<p><label><input id="enableTooltip" type="checkbox" checked="checked"></input>Enable tooltip</label></p>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
Copyright © 2007 - 2014 IOLA and Ole Laursen
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
Before Width: | Height: | Size: 916 B After Width: | Height: | Size: 916 B |
|
Before Width: | Height: | Size: 891 B After Width: | Height: | Size: 891 B |
|
Before Width: | Height: | Size: 897 B After Width: | Height: | Size: 897 B |
|
Before Width: | Height: | Size: 916 B After Width: | Height: | Size: 916 B |
153
bower_components/Flot/examples/navigate/index.html
vendored
Normal file
@@ -0,0 +1,153 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Flot Examples: Navigation</title>
|
||||
<link href="../examples.css" rel="stylesheet" type="text/css">
|
||||
<style type="text/css">
|
||||
|
||||
#placeholder .button {
|
||||
position: absolute;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#placeholder div.button {
|
||||
font-size: smaller;
|
||||
color: #999;
|
||||
background-color: #eee;
|
||||
padding: 2px;
|
||||
}
|
||||
.message {
|
||||
padding-left: 50px;
|
||||
font-size: smaller;
|
||||
}
|
||||
|
||||
</style>
|
||||
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../../excanvas.min.js"></script><![endif]-->
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.navigate.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(function() {
|
||||
|
||||
// generate data set from a parametric function with a fractal look
|
||||
|
||||
function sumf(f, t, m) {
|
||||
var res = 0;
|
||||
for (var i = 1; i < m; ++i) {
|
||||
res += f(i * i * t) / (i * i);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
var d1 = [];
|
||||
for (var t = 0; t <= 2 * Math.PI; t += 0.01) {
|
||||
d1.push([sumf(Math.cos, t, 10), sumf(Math.sin, t, 10)]);
|
||||
}
|
||||
|
||||
var data = [ d1 ],
|
||||
placeholder = $("#placeholder");
|
||||
|
||||
var plot = $.plot(placeholder, data, {
|
||||
series: {
|
||||
lines: {
|
||||
show: true
|
||||
},
|
||||
shadowSize: 0
|
||||
},
|
||||
xaxis: {
|
||||
zoomRange: [0.1, 10],
|
||||
panRange: [-10, 10]
|
||||
},
|
||||
yaxis: {
|
||||
zoomRange: [0.1, 10],
|
||||
panRange: [-10, 10]
|
||||
},
|
||||
zoom: {
|
||||
interactive: true
|
||||
},
|
||||
pan: {
|
||||
interactive: true
|
||||
}
|
||||
});
|
||||
|
||||
// show pan/zoom messages to illustrate events
|
||||
|
||||
placeholder.bind("plotpan", function (event, plot) {
|
||||
var axes = plot.getAxes();
|
||||
$(".message").html("Panning to x: " + axes.xaxis.min.toFixed(2)
|
||||
+ " – " + axes.xaxis.max.toFixed(2)
|
||||
+ " and y: " + axes.yaxis.min.toFixed(2)
|
||||
+ " – " + axes.yaxis.max.toFixed(2));
|
||||
});
|
||||
|
||||
placeholder.bind("plotzoom", function (event, plot) {
|
||||
var axes = plot.getAxes();
|
||||
$(".message").html("Zooming to x: " + axes.xaxis.min.toFixed(2)
|
||||
+ " – " + axes.xaxis.max.toFixed(2)
|
||||
+ " and y: " + axes.yaxis.min.toFixed(2)
|
||||
+ " – " + axes.yaxis.max.toFixed(2));
|
||||
});
|
||||
|
||||
// add zoom out button
|
||||
|
||||
$("<div class='button' style='right:20px;top:20px'>zoom out</div>")
|
||||
.appendTo(placeholder)
|
||||
.click(function (event) {
|
||||
event.preventDefault();
|
||||
plot.zoomOut();
|
||||
});
|
||||
|
||||
// and add panning buttons
|
||||
|
||||
// little helper for taking the repetitive work out of placing
|
||||
// panning arrows
|
||||
|
||||
function addArrow(dir, right, top, offset) {
|
||||
$("<img class='button' src='arrow-" + dir + ".gif' style='right:" + right + "px;top:" + top + "px'>")
|
||||
.appendTo(placeholder)
|
||||
.click(function (e) {
|
||||
e.preventDefault();
|
||||
plot.pan(offset);
|
||||
});
|
||||
}
|
||||
|
||||
addArrow("left", 55, 60, { left: -100 });
|
||||
addArrow("right", 25, 60, { left: 100 });
|
||||
addArrow("up", 40, 45, { top: -100 });
|
||||
addArrow("down", 40, 75, { top: 100 });
|
||||
|
||||
// Add the Flot version string to the footer
|
||||
|
||||
$("#footer").prepend("Flot " + $.plot.version + " – ");
|
||||
});
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header">
|
||||
<h2>Navigation</h2>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<div class="demo-container">
|
||||
<div id="placeholder" class="demo-placeholder"></div>
|
||||
</div>
|
||||
|
||||
<p class="message"></p>
|
||||
|
||||
<p>With the navigate plugin it is easy to add panning and zooming. Drag to pan, double click to zoom (or use the mouse scrollwheel).</p>
|
||||
|
||||
<p>The plugin fires events (useful for synchronizing several plots) and adds a couple of public methods so you can easily build a little user interface around it, like the little buttons at the top right in the plot.</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
Copyright © 2007 - 2014 IOLA and Ole Laursen
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
79
bower_components/Flot/examples/percentiles/index.html
vendored
Normal file
@@ -0,0 +1,79 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Flot Examples: Percentiles</title>
|
||||
<link href="../examples.css" rel="stylesheet" type="text/css">
|
||||
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../../excanvas.min.js"></script><![endif]-->
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.fillbetween.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(function() {
|
||||
|
||||
var males = {"15%": [[2, 88.0], [3, 93.3], [4, 102.0], [5, 108.5], [6, 115.7], [7, 115.6], [8, 124.6], [9, 130.3], [10, 134.3], [11, 141.4], [12, 146.5], [13, 151.7], [14, 159.9], [15, 165.4], [16, 167.8], [17, 168.7], [18, 169.5], [19, 168.0]], "90%": [[2, 96.8], [3, 105.2], [4, 113.9], [5, 120.8], [6, 127.0], [7, 133.1], [8, 139.1], [9, 143.9], [10, 151.3], [11, 161.1], [12, 164.8], [13, 173.5], [14, 179.0], [15, 182.0], [16, 186.9], [17, 185.2], [18, 186.3], [19, 186.6]], "25%": [[2, 89.2], [3, 94.9], [4, 104.4], [5, 111.4], [6, 117.5], [7, 120.2], [8, 127.1], [9, 132.9], [10, 136.8], [11, 144.4], [12, 149.5], [13, 154.1], [14, 163.1], [15, 169.2], [16, 170.4], [17, 171.2], [18, 172.4], [19, 170.8]], "10%": [[2, 86.9], [3, 92.6], [4, 99.9], [5, 107.0], [6, 114.0], [7, 113.5], [8, 123.6], [9, 129.2], [10, 133.0], [11, 140.6], [12, 145.2], [13, 149.7], [14, 158.4], [15, 163.5], [16, 166.9], [17, 167.5], [18, 167.1], [19, 165.3]], "mean": [[2, 91.9], [3, 98.5], [4, 107.1], [5, 114.4], [6, 120.6], [7, 124.7], [8, 131.1], [9, 136.8], [10, 142.3], [11, 150.0], [12, 154.7], [13, 161.9], [14, 168.7], [15, 173.6], [16, 175.9], [17, 176.6], [18, 176.8], [19, 176.7]], "75%": [[2, 94.5], [3, 102.1], [4, 110.8], [5, 117.9], [6, 124.0], [7, 129.3], [8, 134.6], [9, 141.4], [10, 147.0], [11, 156.1], [12, 160.3], [13, 168.3], [14, 174.7], [15, 178.0], [16, 180.2], [17, 181.7], [18, 181.3], [19, 182.5]], "85%": [[2, 96.2], [3, 103.8], [4, 111.8], [5, 119.6], [6, 125.6], [7, 131.5], [8, 138.0], [9, 143.3], [10, 149.3], [11, 159.8], [12, 162.5], [13, 171.3], [14, 177.5], [15, 180.2], [16, 183.8], [17, 183.4], [18, 183.5], [19, 185.5]], "50%": [[2, 91.9], [3, 98.2], [4, 106.8], [5, 114.6], [6, 120.8], [7, 125.2], [8, 130.3], [9, 137.1], [10, 141.5], [11, 149.4], [12, 153.9], [13, 162.2], [14, 169.0], [15, 174.8], [16, 176.0], [17, 176.8], [18, 176.4], [19, 177.4]]};
|
||||
|
||||
var females = {"15%": [[2, 84.8], [3, 93.7], [4, 100.6], [5, 105.8], [6, 113.3], [7, 119.3], [8, 124.3], [9, 131.4], [10, 136.9], [11, 143.8], [12, 149.4], [13, 151.2], [14, 152.3], [15, 155.9], [16, 154.7], [17, 157.0], [18, 156.1], [19, 155.4]], "90%": [[2, 95.6], [3, 104.1], [4, 111.9], [5, 119.6], [6, 127.6], [7, 133.1], [8, 138.7], [9, 147.1], [10, 152.8], [11, 161.3], [12, 166.6], [13, 167.9], [14, 169.3], [15, 170.1], [16, 172.4], [17, 169.2], [18, 171.1], [19, 172.4]], "25%": [[2, 87.2], [3, 95.9], [4, 101.9], [5, 107.4], [6, 114.8], [7, 121.4], [8, 126.8], [9, 133.4], [10, 138.6], [11, 146.2], [12, 152.0], [13, 153.8], [14, 155.7], [15, 158.4], [16, 157.0], [17, 158.5], [18, 158.4], [19, 158.1]], "10%": [[2, 84.0], [3, 91.9], [4, 99.2], [5, 105.2], [6, 112.7], [7, 118.0], [8, 123.3], [9, 130.2], [10, 135.0], [11, 141.1], [12, 148.3], [13, 150.0], [14, 150.7], [15, 154.3], [16, 153.6], [17, 155.6], [18, 154.7], [19, 153.1]], "mean": [[2, 90.2], [3, 98.3], [4, 105.2], [5, 112.2], [6, 119.0], [7, 125.8], [8, 131.3], [9, 138.6], [10, 144.2], [11, 151.3], [12, 156.7], [13, 158.6], [14, 160.5], [15, 162.1], [16, 162.9], [17, 162.2], [18, 163.0], [19, 163.1]], "75%": [[2, 93.2], [3, 101.5], [4, 107.9], [5, 116.6], [6, 122.8], [7, 129.3], [8, 135.2], [9, 143.7], [10, 148.7], [11, 156.9], [12, 160.8], [13, 163.0], [14, 165.0], [15, 165.8], [16, 168.7], [17, 166.2], [18, 167.6], [19, 168.0]], "85%": [[2, 94.5], [3, 102.8], [4, 110.4], [5, 119.0], [6, 125.7], [7, 131.5], [8, 137.9], [9, 146.0], [10, 151.3], [11, 159.9], [12, 164.0], [13, 166.5], [14, 167.5], [15, 168.5], [16, 171.5], [17, 168.0], [18, 169.8], [19, 170.3]], "50%": [[2, 90.2], [3, 98.1], [4, 105.2], [5, 111.7], [6, 118.2], [7, 125.6], [8, 130.5], [9, 138.3], [10, 143.7], [11, 151.4], [12, 156.7], [13, 157.7], [14, 161.0], [15, 162.0], [16, 162.8], [17, 162.2], [18, 162.8], [19, 163.3]]};
|
||||
|
||||
var dataset = [
|
||||
{ label: "Female mean", data: females["mean"], lines: { show: true }, color: "rgb(255,50,50)" },
|
||||
{ id: "f15%", data: females["15%"], lines: { show: true, lineWidth: 0, fill: false }, color: "rgb(255,50,50)" },
|
||||
{ id: "f25%", data: females["25%"], lines: { show: true, lineWidth: 0, fill: 0.2 }, color: "rgb(255,50,50)", fillBetween: "f15%" },
|
||||
{ id: "f50%", data: females["50%"], lines: { show: true, lineWidth: 0.5, fill: 0.4, shadowSize: 0 }, color: "rgb(255,50,50)", fillBetween: "f25%" },
|
||||
{ id: "f75%", data: females["75%"], lines: { show: true, lineWidth: 0, fill: 0.4 }, color: "rgb(255,50,50)", fillBetween: "f50%" },
|
||||
{ id: "f85%", data: females["85%"], lines: { show: true, lineWidth: 0, fill: 0.2 }, color: "rgb(255,50,50)", fillBetween: "f75%" },
|
||||
|
||||
{ label: "Male mean", data: males["mean"], lines: { show: true }, color: "rgb(50,50,255)" },
|
||||
{ id: "m15%", data: males["15%"], lines: { show: true, lineWidth: 0, fill: false }, color: "rgb(50,50,255)" },
|
||||
{ id: "m25%", data: males["25%"], lines: { show: true, lineWidth: 0, fill: 0.2 }, color: "rgb(50,50,255)", fillBetween: "m15%" },
|
||||
{ id: "m50%", data: males["50%"], lines: { show: true, lineWidth: 0.5, fill: 0.4, shadowSize: 0 }, color: "rgb(50,50,255)", fillBetween: "m25%" },
|
||||
{ id: "m75%", data: males["75%"], lines: { show: true, lineWidth: 0, fill: 0.4 }, color: "rgb(50,50,255)", fillBetween: "m50%" },
|
||||
{ id: "m85%", data: males["85%"], lines: { show: true, lineWidth: 0, fill: 0.2 }, color: "rgb(50,50,255)", fillBetween: "m75%" }
|
||||
];
|
||||
|
||||
$.plot($("#placeholder"), dataset, {
|
||||
xaxis: {
|
||||
tickDecimals: 0
|
||||
},
|
||||
yaxis: {
|
||||
tickFormatter: function (v) {
|
||||
return v + " cm";
|
||||
}
|
||||
},
|
||||
legend: {
|
||||
position: "se"
|
||||
}
|
||||
});
|
||||
|
||||
// Add the Flot version string to the footer
|
||||
|
||||
$("#footer").prepend("Flot " + $.plot.version + " – ");
|
||||
});
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header">
|
||||
<h2>Percentiles</h2>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<div class="demo-container">
|
||||
<div id="placeholder" class="demo-placeholder"></div>
|
||||
</div>
|
||||
|
||||
<p>Height in centimeters of individuals from the US (2003-2006) as function of age in years (source: <a href="http://www.cdc.gov/nchs/data/nhsr/nhsr010.pdf">CDC</a>). The 15%-85%, 25%-75% and 50% percentiles are indicated.</p>
|
||||
|
||||
<p>For each point of a filled curve, you can specify an arbitrary bottom. As this example illustrates, this can be useful for plotting percentiles. If you have the data sets available without appropriate fill bottoms, you can use the fillbetween plugin to compute the data point bottoms automatically.</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
Copyright © 2007 - 2014 IOLA and Ole Laursen
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
122
bower_components/Flot/examples/realtime/index.html
vendored
Normal file
@@ -0,0 +1,122 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Flot Examples: Real-time updates</title>
|
||||
<link href="../examples.css" rel="stylesheet" type="text/css">
|
||||
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../../excanvas.min.js"></script><![endif]-->
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(function() {
|
||||
|
||||
// We use an inline data source in the example, usually data would
|
||||
// be fetched from a server
|
||||
|
||||
var data = [],
|
||||
totalPoints = 300;
|
||||
|
||||
function getRandomData() {
|
||||
|
||||
if (data.length > 0)
|
||||
data = data.slice(1);
|
||||
|
||||
// Do a random walk
|
||||
|
||||
while (data.length < totalPoints) {
|
||||
|
||||
var prev = data.length > 0 ? data[data.length - 1] : 50,
|
||||
y = prev + Math.random() * 10 - 5;
|
||||
|
||||
if (y < 0) {
|
||||
y = 0;
|
||||
} else if (y > 100) {
|
||||
y = 100;
|
||||
}
|
||||
|
||||
data.push(y);
|
||||
}
|
||||
|
||||
// Zip the generated y values with the x values
|
||||
|
||||
var res = [];
|
||||
for (var i = 0; i < data.length; ++i) {
|
||||
res.push([i, data[i]])
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
// Set up the control widget
|
||||
|
||||
var updateInterval = 30;
|
||||
$("#updateInterval").val(updateInterval).change(function () {
|
||||
var v = $(this).val();
|
||||
if (v && !isNaN(+v)) {
|
||||
updateInterval = +v;
|
||||
if (updateInterval < 1) {
|
||||
updateInterval = 1;
|
||||
} else if (updateInterval > 2000) {
|
||||
updateInterval = 2000;
|
||||
}
|
||||
$(this).val("" + updateInterval);
|
||||
}
|
||||
});
|
||||
|
||||
var plot = $.plot("#placeholder", [ getRandomData() ], {
|
||||
series: {
|
||||
shadowSize: 0 // Drawing is faster without shadows
|
||||
},
|
||||
yaxis: {
|
||||
min: 0,
|
||||
max: 100
|
||||
},
|
||||
xaxis: {
|
||||
show: false
|
||||
}
|
||||
});
|
||||
|
||||
function update() {
|
||||
|
||||
plot.setData([getRandomData()]);
|
||||
|
||||
// Since the axes don't change, we don't need to call plot.setupGrid()
|
||||
|
||||
plot.draw();
|
||||
setTimeout(update, updateInterval);
|
||||
}
|
||||
|
||||
update();
|
||||
|
||||
// Add the Flot version string to the footer
|
||||
|
||||
$("#footer").prepend("Flot " + $.plot.version + " – ");
|
||||
});
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header">
|
||||
<h2>Real-time updates</h2>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<div class="demo-container">
|
||||
<div id="placeholder" class="demo-placeholder"></div>
|
||||
</div>
|
||||
|
||||
<p>You can update a chart periodically to get a real-time effect by using a timer to insert the new data in the plot and redraw it.</p>
|
||||
|
||||
<p>Time between updates: <input id="updateInterval" type="text" value="" style="text-align: right; width:5em"> milliseconds</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
Copyright © 2007 - 2014 IOLA and Ole Laursen
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
76
bower_components/Flot/examples/resize/index.html
vendored
Normal file
@@ -0,0 +1,76 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Flot Examples: Resizing</title>
|
||||
<link href="../examples.css" rel="stylesheet" type="text/css">
|
||||
<link href="../shared/jquery-ui/jquery-ui.min.css" rel="stylesheet" type="text/css">
|
||||
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../../excanvas.min.js"></script><![endif]-->
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../shared/jquery-ui/jquery-ui.min.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.resize.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(function() {
|
||||
|
||||
var d1 = [];
|
||||
for (var i = 0; i < 14; i += 0.5) {
|
||||
d1.push([i, Math.sin(i)]);
|
||||
}
|
||||
|
||||
var d2 = [[0, 3], [4, 8], [8, 5], [9, 13]];
|
||||
var d3 = [[0, 12], [7, 12], null, [7, 2.5], [12, 2.5]];
|
||||
|
||||
var placeholder = $("#placeholder");
|
||||
var plot = $.plot(placeholder, [d1, d2, d3]);
|
||||
|
||||
// The plugin includes a jQuery plugin for adding resize events to any
|
||||
// element. Add a callback so we can display the placeholder size.
|
||||
|
||||
placeholder.resize(function () {
|
||||
$(".message").text("Placeholder is now "
|
||||
+ $(this).width() + "x" + $(this).height()
|
||||
+ " pixels");
|
||||
});
|
||||
|
||||
$(".demo-container").resizable({
|
||||
maxWidth: 900,
|
||||
maxHeight: 500,
|
||||
minWidth: 450,
|
||||
minHeight: 250
|
||||
});
|
||||
|
||||
// Add the Flot version string to the footer
|
||||
|
||||
$("#footer").prepend("Flot " + $.plot.version + " – ");
|
||||
});
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header">
|
||||
<h2>Resizing</h2>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<div class="demo-container">
|
||||
<div id="placeholder" class="demo-placeholder"></div>
|
||||
</div>
|
||||
|
||||
<p class="message"></p>
|
||||
|
||||
<p>Sometimes it makes more sense to just let the plot take up the available space. In that case, we need to redraw the plot each time the placeholder changes its size. If you include the resize plugin, this is handled automatically.</p>
|
||||
|
||||
<p>Drag the bottom and right sides of the plot to resize it.</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
Copyright © 2007 - 2014 IOLA and Ole Laursen
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
152
bower_components/Flot/examples/selection/index.html
vendored
Normal file
@@ -0,0 +1,152 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Flot Examples: Selection</title>
|
||||
<link href="../examples.css" rel="stylesheet" type="text/css">
|
||||
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../../excanvas.min.js"></script><![endif]-->
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.selection.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(function() {
|
||||
|
||||
// Shim allowing us to get the state of the check-box on jQuery versions
|
||||
// prior to 1.6, when prop was added. The reason we don't just use attr
|
||||
// is because it doesn't work in jQuery versions 1.9.x and later.
|
||||
|
||||
// TODO: Remove this once Flot's minimum supported jQuery reaches 1.6.
|
||||
if (typeof $.fn.prop != 'function') {
|
||||
$.fn.prop = $.fn.attr;
|
||||
}
|
||||
|
||||
var data = [{
|
||||
label: "United States",
|
||||
data: [[1990, 18.9], [1991, 18.7], [1992, 18.4], [1993, 19.3], [1994, 19.5], [1995, 19.3], [1996, 19.4], [1997, 20.2], [1998, 19.8], [1999, 19.9], [2000, 20.4], [2001, 20.1], [2002, 20.0], [2003, 19.8], [2004, 20.4]]
|
||||
}, {
|
||||
label: "Russia",
|
||||
data: [[1992, 13.4], [1993, 12.2], [1994, 10.6], [1995, 10.2], [1996, 10.1], [1997, 9.7], [1998, 9.5], [1999, 9.7], [2000, 9.9], [2001, 9.9], [2002, 9.9], [2003, 10.3], [2004, 10.5]]
|
||||
}, {
|
||||
label: "United Kingdom",
|
||||
data: [[1990, 10.0], [1991, 11.3], [1992, 9.9], [1993, 9.6], [1994, 9.5], [1995, 9.5], [1996, 9.9], [1997, 9.3], [1998, 9.2], [1999, 9.2], [2000, 9.5], [2001, 9.6], [2002, 9.3], [2003, 9.4], [2004, 9.79]]
|
||||
}, {
|
||||
label: "Germany",
|
||||
data: [[1990, 12.4], [1991, 11.2], [1992, 10.8], [1993, 10.5], [1994, 10.4], [1995, 10.2], [1996, 10.5], [1997, 10.2], [1998, 10.1], [1999, 9.6], [2000, 9.7], [2001, 10.0], [2002, 9.7], [2003, 9.8], [2004, 9.79]]
|
||||
}, {
|
||||
label: "Denmark",
|
||||
data: [[1990, 9.7], [1991, 12.1], [1992, 10.3], [1993, 11.3], [1994, 11.7], [1995, 10.6], [1996, 12.8], [1997, 10.8], [1998, 10.3], [1999, 9.4], [2000, 8.7], [2001, 9.0], [2002, 8.9], [2003, 10.1], [2004, 9.80]]
|
||||
}, {
|
||||
label: "Sweden",
|
||||
data: [[1990, 5.8], [1991, 6.0], [1992, 5.9], [1993, 5.5], [1994, 5.7], [1995, 5.3], [1996, 6.1], [1997, 5.4], [1998, 5.4], [1999, 5.1], [2000, 5.2], [2001, 5.4], [2002, 6.2], [2003, 5.9], [2004, 5.89]]
|
||||
}, {
|
||||
label: "Norway",
|
||||
data: [[1990, 8.3], [1991, 8.3], [1992, 7.8], [1993, 8.3], [1994, 8.4], [1995, 5.9], [1996, 6.4], [1997, 6.7], [1998, 6.9], [1999, 7.6], [2000, 7.4], [2001, 8.1], [2002, 12.5], [2003, 9.9], [2004, 19.0]]
|
||||
}];
|
||||
|
||||
var options = {
|
||||
series: {
|
||||
lines: {
|
||||
show: true
|
||||
},
|
||||
points: {
|
||||
show: true
|
||||
}
|
||||
},
|
||||
legend: {
|
||||
noColumns: 2
|
||||
},
|
||||
xaxis: {
|
||||
tickDecimals: 0
|
||||
},
|
||||
yaxis: {
|
||||
min: 0
|
||||
},
|
||||
selection: {
|
||||
mode: "x"
|
||||
}
|
||||
};
|
||||
|
||||
var placeholder = $("#placeholder");
|
||||
|
||||
placeholder.bind("plotselected", function (event, ranges) {
|
||||
|
||||
$("#selection").text(ranges.xaxis.from.toFixed(1) + " to " + ranges.xaxis.to.toFixed(1));
|
||||
|
||||
var zoom = $("#zoom").prop("checked");
|
||||
|
||||
if (zoom) {
|
||||
$.each(plot.getXAxes(), function(_, axis) {
|
||||
var opts = axis.options;
|
||||
opts.min = ranges.xaxis.from;
|
||||
opts.max = ranges.xaxis.to;
|
||||
});
|
||||
plot.setupGrid();
|
||||
plot.draw();
|
||||
plot.clearSelection();
|
||||
}
|
||||
});
|
||||
|
||||
placeholder.bind("plotunselected", function (event) {
|
||||
$("#selection").text("");
|
||||
});
|
||||
|
||||
var plot = $.plot(placeholder, data, options);
|
||||
|
||||
$("#clearSelection").click(function () {
|
||||
plot.clearSelection();
|
||||
});
|
||||
|
||||
$("#setSelection").click(function () {
|
||||
plot.setSelection({
|
||||
xaxis: {
|
||||
from: 1994,
|
||||
to: 1995
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// Add the Flot version string to the footer
|
||||
|
||||
$("#footer").prepend("Flot " + $.plot.version + " – ");
|
||||
});
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header">
|
||||
<h2>Selection</h2>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<div class="demo-container">
|
||||
<div id="placeholder" class="demo-placeholder"></div>
|
||||
</div>
|
||||
|
||||
<p>1000 kg. CO<sub>2</sub> emissions per year per capita for various countries (source: <a href="http://en.wikipedia.org/wiki/List_of_countries_by_carbon_dioxide_emissions_per_capita">Wikipedia</a>).</p>
|
||||
|
||||
<p>Flot supports selections through the selection plugin. You can enable rectangular selection or one-dimensional selection if the user should only be able to select on one axis. Try left-click and drag on the plot above where selection on the x axis is enabled.</p>
|
||||
|
||||
<p>You selected: <span id="selection"></span></p>
|
||||
|
||||
<p>The plot command returns a plot object you can use to control the selection. Click the buttons below.</p>
|
||||
|
||||
<p>
|
||||
<button id="clearSelection">Clear selection</button>
|
||||
<button id="setSelection">Select year 1994</button>
|
||||
</p>
|
||||
|
||||
<p>Selections are really useful for zooming. Just replot the chart with min and max values for the axes set to the values in the "plotselected" event triggered. Enable the checkbox below and select a region again.</p>
|
||||
|
||||
<p><label><input id="zoom" type="checkbox"></input>Zoom to selection.</label></p>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
Copyright © 2007 - 2014 IOLA and Ole Laursen
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
150
bower_components/Flot/examples/series-errorbars/index.html
vendored
Normal file
@@ -0,0 +1,150 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Flot Examples: Error Bars</title>
|
||||
<link href="../examples.css" rel="stylesheet" type="text/css">
|
||||
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../../excanvas.min.js"></script><![endif]-->
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.errorbars.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.navigate.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(function() {
|
||||
|
||||
function drawArrow(ctx, x, y, radius){
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(x + radius, y + radius);
|
||||
ctx.lineTo(x, y);
|
||||
ctx.lineTo(x - radius, y + radius);
|
||||
ctx.stroke();
|
||||
}
|
||||
|
||||
function drawSemiCircle(ctx, x, y, radius){
|
||||
ctx.beginPath();
|
||||
ctx.arc(x, y, radius, 0, Math.PI, false);
|
||||
ctx.moveTo(x - radius, y);
|
||||
ctx.lineTo(x + radius, y);
|
||||
ctx.stroke();
|
||||
}
|
||||
|
||||
var data1 = [
|
||||
[1,1,.5,.1,.3],
|
||||
[2,2,.3,.5,.2],
|
||||
[3,3,.9,.5,.2],
|
||||
[1.5,-.05,.5,.1,.3],
|
||||
[3.15,1.,.5,.1,.3],
|
||||
[2.5,-1.,.5,.1,.3]
|
||||
];
|
||||
|
||||
var data1_points = {
|
||||
show: true,
|
||||
radius: 5,
|
||||
fillColor: "blue",
|
||||
errorbars: "xy",
|
||||
xerr: {show: true, asymmetric: true, upperCap: "-", lowerCap: "-"},
|
||||
yerr: {show: true, color: "red", upperCap: "-"}
|
||||
};
|
||||
|
||||
var data2 = [
|
||||
[.7,3,.2,.4],
|
||||
[1.5,2.2,.3,.4],
|
||||
[2.3,1,.5,.2]
|
||||
];
|
||||
|
||||
var data2_points = {
|
||||
show: true,
|
||||
radius: 5,
|
||||
errorbars: "y",
|
||||
yerr: {show:true, asymmetric:true, upperCap: drawArrow, lowerCap: drawSemiCircle}
|
||||
};
|
||||
|
||||
var data3 = [
|
||||
[1,2,.4],
|
||||
[2,0.5,.3],
|
||||
[2.7,2,.5]
|
||||
];
|
||||
|
||||
var data3_points = {
|
||||
//do not show points
|
||||
radius: 0,
|
||||
errorbars: "y",
|
||||
yerr: {show:true, upperCap: "-", lowerCap: "-", radius: 5}
|
||||
};
|
||||
|
||||
var data4 = [
|
||||
[1.3, 1],
|
||||
[1.75, 2.5],
|
||||
[2.5, 0.5]
|
||||
];
|
||||
|
||||
var data4_errors = [0.1, 0.4, 0.2];
|
||||
for (var i = 0; i < data4.length; i++) {
|
||||
data4_errors[i] = data4[i].concat(data4_errors[i])
|
||||
}
|
||||
|
||||
var data = [
|
||||
{color: "blue", points: data1_points, data: data1, label: "data1"},
|
||||
{color: "red", points: data2_points, data: data2, label: "data2"},
|
||||
{color: "green", lines: {show: true}, points: data3_points, data: data3, label: "data3"},
|
||||
// bars with errors
|
||||
{color: "orange", bars: {show: true, align: "center", barWidth: 0.25}, data: data4, label: "data4"},
|
||||
{color: "orange", points: data3_points, data: data4_errors}
|
||||
];
|
||||
|
||||
$.plot($("#placeholder"), data , {
|
||||
legend: {
|
||||
position: "sw",
|
||||
show: true
|
||||
},
|
||||
series: {
|
||||
lines: {
|
||||
show: false
|
||||
}
|
||||
},
|
||||
xaxis: {
|
||||
min: 0.6,
|
||||
max: 3.1
|
||||
},
|
||||
yaxis: {
|
||||
min: 0,
|
||||
max: 3.5
|
||||
},
|
||||
zoom: {
|
||||
interactive: true
|
||||
},
|
||||
pan: {
|
||||
interactive: true
|
||||
}
|
||||
});
|
||||
|
||||
// Add the Flot version string to the footer
|
||||
|
||||
$("#footer").prepend("Flot " + $.plot.version + " – ");
|
||||
});
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header">
|
||||
<h2>Error Bars</h2>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<div class="demo-container">
|
||||
<div id="placeholder" class="demo-placeholder"></div>
|
||||
</div>
|
||||
|
||||
<p>With the errorbars plugin you can plot error bars to show standard deviation and other useful statistical properties.</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
Copyright © 2007 - 2014 IOLA and Ole Laursen
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
818
bower_components/Flot/examples/series-pie/index.html
vendored
Normal file
@@ -0,0 +1,818 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Flot Examples: Pie Charts</title>
|
||||
<link href="../examples.css" rel="stylesheet" type="text/css">
|
||||
<style type="text/css">
|
||||
|
||||
.demo-container {
|
||||
position: relative;
|
||||
height: 400px;
|
||||
}
|
||||
|
||||
#placeholder {
|
||||
width: 550px;
|
||||
}
|
||||
|
||||
#menu {
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
left: 625px;
|
||||
bottom: 20px;
|
||||
right: 20px;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
#menu button {
|
||||
display: inline-block;
|
||||
width: 200px;
|
||||
padding: 3px 0 2px 0;
|
||||
margin-bottom: 4px;
|
||||
background: #eee;
|
||||
border: 1px solid #999;
|
||||
border-radius: 2px;
|
||||
font-size: 16px;
|
||||
-o-box-shadow: 0 1px 2px rgba(0,0,0,0.15);
|
||||
-ms-box-shadow: 0 1px 2px rgba(0,0,0,0.15);
|
||||
-moz-box-shadow: 0 1px 2px rgba(0,0,0,0.15);
|
||||
-webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.15);
|
||||
box-shadow: 0 1px 2px rgba(0,0,0,0.15);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#description {
|
||||
margin: 15px 10px 20px 10px;
|
||||
}
|
||||
|
||||
#code {
|
||||
display: block;
|
||||
width: 870px;
|
||||
padding: 15px;
|
||||
margin: 10px auto;
|
||||
border: 1px dashed #999;
|
||||
background-color: #f8f8f8;
|
||||
font-size: 16px;
|
||||
line-height: 20px;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
ul {
|
||||
font-size: 10pt;
|
||||
}
|
||||
|
||||
ul li {
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
ul.options li {
|
||||
list-style: none;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
ul li i {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
</style>
|
||||
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../../excanvas.min.js"></script><![endif]-->
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.pie.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(function() {
|
||||
|
||||
// Example Data
|
||||
|
||||
//var data = [
|
||||
// { label: "Series1", data: 10},
|
||||
// { label: "Series2", data: 30},
|
||||
// { label: "Series3", data: 90},
|
||||
// { label: "Series4", data: 70},
|
||||
// { label: "Series5", data: 80},
|
||||
// { label: "Series6", data: 110}
|
||||
//];
|
||||
|
||||
//var data = [
|
||||
// { label: "Series1", data: [[1,10]]},
|
||||
// { label: "Series2", data: [[1,30]]},
|
||||
// { label: "Series3", data: [[1,90]]},
|
||||
// { label: "Series4", data: [[1,70]]},
|
||||
// { label: "Series5", data: [[1,80]]},
|
||||
// { label: "Series6", data: [[1,0]]}
|
||||
//];
|
||||
|
||||
//var data = [
|
||||
// { label: "Series A", data: 0.2063},
|
||||
// { label: "Series B", data: 38888}
|
||||
//];
|
||||
|
||||
// Randomly Generated Data
|
||||
|
||||
var data = [],
|
||||
series = Math.floor(Math.random() * 6) + 3;
|
||||
|
||||
for (var i = 0; i < series; i++) {
|
||||
data[i] = {
|
||||
label: "Series" + (i + 1),
|
||||
data: Math.floor(Math.random() * 100) + 1
|
||||
}
|
||||
}
|
||||
|
||||
var placeholder = $("#placeholder");
|
||||
|
||||
$("#example-1").click(function() {
|
||||
|
||||
placeholder.unbind();
|
||||
|
||||
$("#title").text("Default pie chart");
|
||||
$("#description").text("The default pie chart with no options set.");
|
||||
|
||||
$.plot(placeholder, data, {
|
||||
series: {
|
||||
pie: {
|
||||
show: true
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
setCode([
|
||||
"$.plot('#placeholder', data, {",
|
||||
" series: {",
|
||||
" pie: {",
|
||||
" show: true",
|
||||
" }",
|
||||
" }",
|
||||
"});"
|
||||
]);
|
||||
});
|
||||
|
||||
$("#example-2").click(function() {
|
||||
|
||||
placeholder.unbind();
|
||||
|
||||
$("#title").text("Default without legend");
|
||||
$("#description").text("The default pie chart when the legend is disabled. Since the labels would normally be outside the container, the chart is resized to fit.");
|
||||
|
||||
$.plot(placeholder, data, {
|
||||
series: {
|
||||
pie: {
|
||||
show: true
|
||||
}
|
||||
},
|
||||
legend: {
|
||||
show: false
|
||||
}
|
||||
});
|
||||
|
||||
setCode([
|
||||
"$.plot('#placeholder', data, {",
|
||||
" series: {",
|
||||
" pie: {",
|
||||
" show: true",
|
||||
" }",
|
||||
" },",
|
||||
" legend: {",
|
||||
" show: false",
|
||||
" }",
|
||||
"});"
|
||||
]);
|
||||
});
|
||||
|
||||
$("#example-3").click(function() {
|
||||
|
||||
placeholder.unbind();
|
||||
|
||||
$("#title").text("Custom Label Formatter");
|
||||
$("#description").text("Added a semi-transparent background to the labels and a custom labelFormatter function.");
|
||||
|
||||
$.plot(placeholder, data, {
|
||||
series: {
|
||||
pie: {
|
||||
show: true,
|
||||
radius: 1,
|
||||
label: {
|
||||
show: true,
|
||||
radius: 1,
|
||||
formatter: labelFormatter,
|
||||
background: {
|
||||
opacity: 0.8
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
legend: {
|
||||
show: false
|
||||
}
|
||||
});
|
||||
|
||||
setCode([
|
||||
"$.plot('#placeholder', data, {",
|
||||
" series: {",
|
||||
" pie: {",
|
||||
" show: true,",
|
||||
" radius: 1,",
|
||||
" label: {",
|
||||
" show: true,",
|
||||
" radius: 1,",
|
||||
" formatter: labelFormatter,",
|
||||
" background: {",
|
||||
" opacity: 0.8",
|
||||
" }",
|
||||
" }",
|
||||
" }",
|
||||
" },",
|
||||
" legend: {",
|
||||
" show: false",
|
||||
" }",
|
||||
"});"
|
||||
]);
|
||||
});
|
||||
|
||||
$("#example-4").click(function() {
|
||||
|
||||
placeholder.unbind();
|
||||
|
||||
$("#title").text("Label Radius");
|
||||
$("#description").text("Slightly more transparent label backgrounds and adjusted the radius values to place them within the pie.");
|
||||
|
||||
$.plot(placeholder, data, {
|
||||
series: {
|
||||
pie: {
|
||||
show: true,
|
||||
radius: 1,
|
||||
label: {
|
||||
show: true,
|
||||
radius: 3/4,
|
||||
formatter: labelFormatter,
|
||||
background: {
|
||||
opacity: 0.5
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
legend: {
|
||||
show: false
|
||||
}
|
||||
});
|
||||
|
||||
setCode([
|
||||
"$.plot('#placeholder', data, {",
|
||||
" series: {",
|
||||
" pie: {",
|
||||
" show: true,",
|
||||
" radius: 1,",
|
||||
" label: {",
|
||||
" show: true,",
|
||||
" radius: 3/4,",
|
||||
" formatter: labelFormatter,",
|
||||
" background: {",
|
||||
" opacity: 0.5",
|
||||
" }",
|
||||
" }",
|
||||
" }",
|
||||
" },",
|
||||
" legend: {",
|
||||
" show: false",
|
||||
" }",
|
||||
"});"
|
||||
]);
|
||||
});
|
||||
|
||||
$("#example-5").click(function() {
|
||||
|
||||
placeholder.unbind();
|
||||
|
||||
$("#title").text("Label Styles #1");
|
||||
$("#description").text("Semi-transparent, black-colored label background.");
|
||||
|
||||
$.plot(placeholder, data, {
|
||||
series: {
|
||||
pie: {
|
||||
show: true,
|
||||
radius: 1,
|
||||
label: {
|
||||
show: true,
|
||||
radius: 3/4,
|
||||
formatter: labelFormatter,
|
||||
background: {
|
||||
opacity: 0.5,
|
||||
color: "#000"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
legend: {
|
||||
show: false
|
||||
}
|
||||
});
|
||||
|
||||
setCode([
|
||||
"$.plot('#placeholder', data, {",
|
||||
" series: {",
|
||||
" pie: { ",
|
||||
" show: true,",
|
||||
" radius: 1,",
|
||||
" label: {",
|
||||
" show: true,",
|
||||
" radius: 3/4,",
|
||||
" formatter: labelFormatter,",
|
||||
" background: { ",
|
||||
" opacity: 0.5,",
|
||||
" color: '#000'",
|
||||
" }",
|
||||
" }",
|
||||
" }",
|
||||
" },",
|
||||
" legend: {",
|
||||
" show: false",
|
||||
" }",
|
||||
"});"
|
||||
]);
|
||||
});
|
||||
|
||||
$("#example-6").click(function() {
|
||||
|
||||
placeholder.unbind();
|
||||
|
||||
$("#title").text("Label Styles #2");
|
||||
$("#description").text("Semi-transparent, black-colored label background placed at pie edge.");
|
||||
|
||||
$.plot(placeholder, data, {
|
||||
series: {
|
||||
pie: {
|
||||
show: true,
|
||||
radius: 3/4,
|
||||
label: {
|
||||
show: true,
|
||||
radius: 3/4,
|
||||
formatter: labelFormatter,
|
||||
background: {
|
||||
opacity: 0.5,
|
||||
color: "#000"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
legend: {
|
||||
show: false
|
||||
}
|
||||
});
|
||||
|
||||
setCode([
|
||||
"$.plot('#placeholder', data, {",
|
||||
" series: {",
|
||||
" pie: {",
|
||||
" show: true,",
|
||||
" radius: 3/4,",
|
||||
" label: {",
|
||||
" show: true,",
|
||||
" radius: 3/4,",
|
||||
" formatter: labelFormatter,",
|
||||
" background: {",
|
||||
" opacity: 0.5,",
|
||||
" color: '#000'",
|
||||
" }",
|
||||
" }",
|
||||
" }",
|
||||
" },",
|
||||
" legend: {",
|
||||
" show: false",
|
||||
" }",
|
||||
"});"
|
||||
]);
|
||||
});
|
||||
|
||||
$("#example-7").click(function() {
|
||||
|
||||
placeholder.unbind();
|
||||
|
||||
$("#title").text("Hidden Labels");
|
||||
$("#description").text("Labels can be hidden if the slice is less than a given percentage of the pie (10% in this case).");
|
||||
|
||||
$.plot(placeholder, data, {
|
||||
series: {
|
||||
pie: {
|
||||
show: true,
|
||||
radius: 1,
|
||||
label: {
|
||||
show: true,
|
||||
radius: 2/3,
|
||||
formatter: labelFormatter,
|
||||
threshold: 0.1
|
||||
}
|
||||
}
|
||||
},
|
||||
legend: {
|
||||
show: false
|
||||
}
|
||||
});
|
||||
|
||||
setCode([
|
||||
"$.plot('#placeholder', data, {",
|
||||
" series: {",
|
||||
" pie: {",
|
||||
" show: true,",
|
||||
" radius: 1,",
|
||||
" label: {",
|
||||
" show: true,",
|
||||
" radius: 2/3,",
|
||||
" formatter: labelFormatter,",
|
||||
" threshold: 0.1",
|
||||
" }",
|
||||
" }",
|
||||
" },",
|
||||
" legend: {",
|
||||
" show: false",
|
||||
" }",
|
||||
"});"
|
||||
]);
|
||||
});
|
||||
|
||||
$("#example-8").click(function() {
|
||||
|
||||
placeholder.unbind();
|
||||
|
||||
$("#title").text("Combined Slice");
|
||||
$("#description").text("Multiple slices less than a given percentage (5% in this case) of the pie can be combined into a single, larger slice.");
|
||||
|
||||
$.plot(placeholder, data, {
|
||||
series: {
|
||||
pie: {
|
||||
show: true,
|
||||
combine: {
|
||||
color: "#999",
|
||||
threshold: 0.05
|
||||
}
|
||||
}
|
||||
},
|
||||
legend: {
|
||||
show: false
|
||||
}
|
||||
});
|
||||
|
||||
setCode([
|
||||
"$.plot('#placeholder', data, {",
|
||||
" series: {",
|
||||
" pie: {",
|
||||
" show: true,",
|
||||
" combine: {",
|
||||
" color: '#999',",
|
||||
" threshold: 0.1",
|
||||
" }",
|
||||
" }",
|
||||
" },",
|
||||
" legend: {",
|
||||
" show: false",
|
||||
" }",
|
||||
"});"
|
||||
]);
|
||||
});
|
||||
|
||||
$("#example-9").click(function() {
|
||||
|
||||
placeholder.unbind();
|
||||
|
||||
$("#title").text("Rectangular Pie");
|
||||
$("#description").text("The radius can also be set to a specific size (even larger than the container itself).");
|
||||
|
||||
$.plot(placeholder, data, {
|
||||
series: {
|
||||
pie: {
|
||||
show: true,
|
||||
radius: 500,
|
||||
label: {
|
||||
show: true,
|
||||
formatter: labelFormatter,
|
||||
threshold: 0.1
|
||||
}
|
||||
}
|
||||
},
|
||||
legend: {
|
||||
show: false
|
||||
}
|
||||
});
|
||||
|
||||
setCode([
|
||||
"$.plot('#placeholder', data, {",
|
||||
" series: {",
|
||||
" pie: {",
|
||||
" show: true,",
|
||||
" radius: 500,",
|
||||
" label: {",
|
||||
" show: true,",
|
||||
" formatter: labelFormatter,",
|
||||
" threshold: 0.1",
|
||||
" }",
|
||||
" }",
|
||||
" },",
|
||||
" legend: {",
|
||||
" show: false",
|
||||
" }",
|
||||
"});"
|
||||
]);
|
||||
});
|
||||
|
||||
$("#example-10").click(function() {
|
||||
|
||||
placeholder.unbind();
|
||||
|
||||
$("#title").text("Tilted Pie");
|
||||
$("#description").text("The pie can be tilted at an angle.");
|
||||
|
||||
$.plot(placeholder, data, {
|
||||
series: {
|
||||
pie: {
|
||||
show: true,
|
||||
radius: 1,
|
||||
tilt: 0.5,
|
||||
label: {
|
||||
show: true,
|
||||
radius: 1,
|
||||
formatter: labelFormatter,
|
||||
background: {
|
||||
opacity: 0.8
|
||||
}
|
||||
},
|
||||
combine: {
|
||||
color: "#999",
|
||||
threshold: 0.1
|
||||
}
|
||||
}
|
||||
},
|
||||
legend: {
|
||||
show: false
|
||||
}
|
||||
});
|
||||
|
||||
setCode([
|
||||
"$.plot('#placeholder', data, {",
|
||||
" series: {",
|
||||
" pie: {",
|
||||
" show: true,",
|
||||
" radius: 1,",
|
||||
" tilt: 0.5,",
|
||||
" label: {",
|
||||
" show: true,",
|
||||
" radius: 1,",
|
||||
" formatter: labelFormatter,",
|
||||
" background: {",
|
||||
" opacity: 0.8",
|
||||
" }",
|
||||
" },",
|
||||
" combine: {",
|
||||
" color: '#999',",
|
||||
" threshold: 0.1",
|
||||
" }",
|
||||
" }",
|
||||
" },",
|
||||
" legend: {",
|
||||
" show: false",
|
||||
" }",
|
||||
"});",
|
||||
]);
|
||||
});
|
||||
|
||||
$("#example-11").click(function() {
|
||||
|
||||
placeholder.unbind();
|
||||
|
||||
$("#title").text("Donut Hole");
|
||||
$("#description").text("A donut hole can be added.");
|
||||
|
||||
$.plot(placeholder, data, {
|
||||
series: {
|
||||
pie: {
|
||||
innerRadius: 0.5,
|
||||
show: true
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
setCode([
|
||||
"$.plot('#placeholder', data, {",
|
||||
" series: {",
|
||||
" pie: {",
|
||||
" innerRadius: 0.5,",
|
||||
" show: true",
|
||||
" }",
|
||||
" }",
|
||||
"});"
|
||||
]);
|
||||
});
|
||||
|
||||
$("#example-12").click(function() {
|
||||
|
||||
placeholder.unbind();
|
||||
|
||||
$("#title").text("Interactivity");
|
||||
$("#description").text("The pie can be made interactive with hover and click events.");
|
||||
|
||||
$.plot(placeholder, data, {
|
||||
series: {
|
||||
pie: {
|
||||
show: true
|
||||
}
|
||||
},
|
||||
grid: {
|
||||
hoverable: true,
|
||||
clickable: true
|
||||
}
|
||||
});
|
||||
|
||||
setCode([
|
||||
"$.plot('#placeholder', data, {",
|
||||
" series: {",
|
||||
" pie: {",
|
||||
" show: true",
|
||||
" }",
|
||||
" },",
|
||||
" grid: {",
|
||||
" hoverable: true,",
|
||||
" clickable: true",
|
||||
" }",
|
||||
"});"
|
||||
]);
|
||||
|
||||
placeholder.bind("plothover", function(event, pos, obj) {
|
||||
|
||||
if (!obj) {
|
||||
return;
|
||||
}
|
||||
|
||||
var percent = parseFloat(obj.series.percent).toFixed(2);
|
||||
$("#hover").html("<span style='font-weight:bold; color:" + obj.series.color + "'>" + obj.series.label + " (" + percent + "%)</span>");
|
||||
});
|
||||
|
||||
placeholder.bind("plotclick", function(event, pos, obj) {
|
||||
|
||||
if (!obj) {
|
||||
return;
|
||||
}
|
||||
|
||||
percent = parseFloat(obj.series.percent).toFixed(2);
|
||||
alert("" + obj.series.label + ": " + percent + "%");
|
||||
});
|
||||
});
|
||||
|
||||
// Show the initial default chart
|
||||
|
||||
$("#example-1").click();
|
||||
|
||||
// Add the Flot version string to the footer
|
||||
|
||||
$("#footer").prepend("Flot " + $.plot.version + " – ");
|
||||
});
|
||||
|
||||
// A custom label formatter used by several of the plots
|
||||
|
||||
function labelFormatter(label, series) {
|
||||
return "<div style='font-size:8pt; text-align:center; padding:2px; color:white;'>" + label + "<br/>" + Math.round(series.percent) + "%</div>";
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
function setCode(lines) {
|
||||
$("#code").text(lines.join("\n"));
|
||||
}
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header">
|
||||
<h2>Pie Charts</h2>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<h3 id="title"></h3>
|
||||
<div class="demo-container">
|
||||
<div id="placeholder" class="demo-placeholder"></div>
|
||||
<div id="menu">
|
||||
<button id="example-1">Default Options</button>
|
||||
<button id="example-2">Without Legend</button>
|
||||
<button id="example-3">Label Formatter</button>
|
||||
<button id="example-4">Label Radius</button>
|
||||
<button id="example-5">Label Styles #1</button>
|
||||
<button id="example-6">Label Styles #2</button>
|
||||
<button id="example-7">Hidden Labels</button>
|
||||
<button id="example-8">Combined Slice</button>
|
||||
<button id="example-9">Rectangular Pie</button>
|
||||
<button id="example-10">Tilted Pie</button>
|
||||
<button id="example-11">Donut Hole</button>
|
||||
<button id="example-12">Interactivity</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p id="description"></p>
|
||||
|
||||
<h3>Source Code</h3>
|
||||
<pre><code id="code"></code></pre>
|
||||
|
||||
<br/>
|
||||
|
||||
<h2>Pie Options</h2>
|
||||
|
||||
<ul class="options">
|
||||
<li style="border-bottom: 1px dotted #ccc;"><b>option:</b> <i>default value</i> - Description of option</li>
|
||||
<li><b>show:</b> <i>false</i> - Enable the plugin and draw as a pie.</li>
|
||||
<li><b>radius:</b> <i>'auto'</i> - Sets the radius of the pie. If value is between 0 and 1 (inclusive) then it will use that as a percentage of the available space (size of the container), otherwise it will use the value as a direct pixel length. If set to 'auto', it will be set to 1 if the legend is enabled and 3/4 if not.</li>
|
||||
<li><b>innerRadius:</b> <i>0</i> - Sets the radius of the donut hole. If value is between 0 and 1 (inclusive) then it will use that as a percentage of the radius, otherwise it will use the value as a direct pixel length.</li>
|
||||
<li><b>startAngle:</b> <i>3/2</i> - Factor of PI used for the starting angle (in radians) It can range between 0 and 2 (where 0 and 2 have the same result).</li>
|
||||
<li><b>tilt:</b> <i>1</i> - Percentage of tilt ranging from 0 and 1, where 1 has no change (fully vertical) and 0 is completely flat (fully horizontal -- in which case nothing actually gets drawn).</li>
|
||||
<li><b>shadow:</b> <ul>
|
||||
<li><b>top:</b> <i>5</i> - Vertical distance in pixel of the tilted pie shadow.</li>
|
||||
<li><b>left:</b> <i>15</i> - Horizontal distance in pixel of the tilted pie shadow.</li>
|
||||
<li><b>alpha:</b> <i>0.02</i> - Alpha value of the tilted pie shadow.</li>
|
||||
</ul>
|
||||
<li><b>offset:</b> <ul>
|
||||
<li><b>top:</b> <i>0</i> - Pixel distance to move the pie up and down (relative to the center).</li>
|
||||
<li><b>left:</b> <i>'auto'</i> - Pixel distance to move the pie left and right (relative to the center).</li>
|
||||
</ul>
|
||||
<li><b>stroke:</b> <ul>
|
||||
<li><b>color:</b> <i>'#FFF'</i> - Color of the border of each slice. Hexadecimal color definitions are prefered (other formats may or may not work).</li>
|
||||
<li><b>width:</b> <i>1</i> - Pixel width of the border of each slice.</li>
|
||||
</ul>
|
||||
<li><b>label:</b> <ul>
|
||||
<li><b>show:</b> <i>'auto'</i> - Enable/Disable the labels. This can be set to true, false, or 'auto'. When set to 'auto', it will be set to false if the legend is enabled and true if not.</li>
|
||||
<li><b>radius:</b> <i>1</i> - Sets the radius at which to place the labels. If value is between 0 and 1 (inclusive) then it will use that as a percentage of the available space (size of the container), otherwise it will use the value as a direct pixel length.</li>
|
||||
<li><b>threshold:</b> <i>0</i> - Hides the labels of any pie slice that is smaller than the specified percentage (ranging from 0 to 1) i.e. a value of '0.03' will hide all slices 3% or less of the total.</li>
|
||||
<li><b>formatter:</b> <i>[function]</i> - This function specifies how the positioned labels should be formatted, and is applied after the legend's labelFormatter function. The labels can also still be styled using the class "pieLabel" (i.e. ".pieLabel" or "#graph1 .pieLabel").</li>
|
||||
<li><b>radius:</b> <i>1</i> - Sets the radius at which to place the labels. If value is between 0 and 1 (inclusive) then it will use that as a percentage of the available space (size of the container), otherwise it will use the value as a direct pixel length.</li>
|
||||
<li><b>background:</b> <ul>
|
||||
<li><b>color:</b> <i>null</i> - Backgound color of the positioned labels. If null, the plugin will automatically use the color of the slice.</li>
|
||||
<li><b>opacity:</b> <i>0</i> - Opacity of the background for the positioned labels. Acceptable values range from 0 to 1, where 0 is completely transparent and 1 is completely opaque.</li>
|
||||
</ul>
|
||||
</ul>
|
||||
<li><b>combine:</b> <ul>
|
||||
<li><b>threshold:</b> <i>0</i> - Combines all slices that are smaller than the specified percentage (ranging from 0 to 1) i.e. a value of '0.03' will combine all slices 3% or less into one slice).</li>
|
||||
<li><b>color:</b> <i>null</i> - Backgound color of the positioned labels. If null, the plugin will automatically use the color of the first slice to be combined.</li>
|
||||
<li><b>label:</b> <i>'Other'</i> - Label text for the combined slice.</li>
|
||||
</ul>
|
||||
<li><b>highlight:</b> <ul>
|
||||
<li><b>opacity:</b> <i>0.5</i> - Opacity of the highlight overlay on top of the current pie slice. Currently this just uses a white overlay, but support for changing the color of the overlay will also be added at a later date.
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<h2>Changes/Features</h2>
|
||||
<ul>
|
||||
<li style="list-style: none;"><i>v1.0 - November 20th, 2009 - Brian Medendorp</i></li>
|
||||
<li>The pie plug-in is now part of the Flot repository! This should make it a lot easier to deal with.</li>
|
||||
<li>Added a new option (innerRadius) to add a "donut hole" to the center of the pie, based on comtributions from Anthony Aragues. I was a little reluctant to add this feature because it doesn't work very well with the shadow created for the tilted pie, but figured it was worthwhile for non-tilted pies. Also, excanvas apparently doesn't support compositing, so it will fall back to using the stroke color to fill in the center (but I recommend setting the stroke color to the background color anyway).</li>
|
||||
<li>Changed the lineJoin for the border of the pie slices to use the 'round' option. This should make the center of the pie look better, particularly when there are numerous thin slices.</li>
|
||||
<li>Included a bug fix submitted by btburnett3 to display a slightly smaller slice in the event that the slice is 100% and being rendered with Internet Explorer. I haven't experienced this bug myself, but it doesn't seem to hurt anything so I've included it.</li>
|
||||
<li>The tilt value is now used when calculating the maximum radius of the pie in relation to the height of the container. This should prevent the pie from being smaller than it needed to in some cases, as well as reducing the amount of extra white space generated above and below the pie.</li>
|
||||
<li><b>Hover and Click functionality are now availabe!</b><ul>
|
||||
<li>Thanks to btburnett3 for the original hover functionality and Anthony Aragues for the modification that makes it compatable with excanvas, this was a huge help!</li>
|
||||
<li>Added a new option (highlight opacity) to modify the highlight created when mousing over a slice. Currently this just uses a white overlay, but an option to change the hightlight color will be added when the appropriate functionality becomes available.
|
||||
<li>I had a major setback that required me to practically rebuild the hover/click events from scratch one piece at a time (I discovered that it only worked with a single pie on a page at a time), but the end result ended up being virtually identical to the original, so I'm not quite sure what exactly made it work.</li>
|
||||
<li><span style="color: red;">Warning:</span> There are some minor issues with using this functionality in conjuction with some of the other more advanced features (tilt and donut). When using a donut hole, the inner portion still triggers the events even though that portion of the pie is no longer visible. When tilted, the interactive portions still use the original, untilted version of the pie when determining mouse position (this is because the isPointInPath function apparently doesn't work with transformations), however hover and click both work this way, so the appropriate slice is still highlighted when clicking, and it isn't as noticable of a problem.</li>
|
||||
</ul></li>
|
||||
<li>Included a bug fix submitted by Xavi Ivars to fix array issues when other javascript libraries are included in addition to jQuery</li>
|
||||
<br/>
|
||||
<li style="list-style: none;"><i>v0.4 - July 1st, 2009 - Brian Medendorp</i></li>
|
||||
<li>Each series will now be shown in the legend, even if it's value is zero. The series will not get a positioned label because it will overlap with the other labels present and often makes them unreadable.</li>
|
||||
<li>Data can now be passed in using the standard Flot method using an array of datapoints, the pie plugin will simply use the first y-value that it finds for each series in this case. The plugin uses this datastructure internally, but you can still use the old method of passing in a single numerical value for each series (the plugin will convert it as necessary). This should make it easier to transition from other types of graphs (such as a stacked bar graph) to a pie.</li>
|
||||
<li>The pie can now be tilted at an angle with a new "tilt" option. Acceptable values range from 0-1, where 1 has no change (fully vertical) and 0 is completely flat (fully horizontal -- in which case nothing actually gets drawn). If the plugin determines that it will fit within the canvas, a drop shadow will be drawn under the tilted pie (this also requires a tilt value of 0.8 or less).</li>
|
||||
<br/>
|
||||
<li style="list-style: none;"><i>v0.3.2 - June 25th, 2009 - Brian Medendorp</i></li>
|
||||
<li>Fixed a bug that was causing the pie to be shifted too far left or right when the legend is showing in some cases.</li>
|
||||
<br/>
|
||||
<li style="list-style: none;"><i>v0.3.1 - June 24th, 2009 - Brian Medendorp</i></li>
|
||||
<li>Fixed a bug that was causing nothing to be drawn and generating a javascript error if any of the data values were set to zero.</li>
|
||||
<br/>
|
||||
<li style="list-style: none;"><i>v0.3 - June 23rd, 2009 - Brian Medendorp</i></li>
|
||||
<li>The legend now works without any modifications! Because of changes made to flot and the plugin system (thanks Ole Laursen!) I was able to simplify a number of things and am now able to use the legend without the direct access hack that was required in the previous version.</li>
|
||||
<br/>
|
||||
<li style="list-style: none;"><i>v0.2 - June 22nd, 2009 - Brian Medendorp</i></li>
|
||||
<li>The legend now works but only if you make the necessary changes to jquery.flot.js. Because of this, I changed the default values for pie.radius and pie.label.show to new 'auto' settings that change the default behavior of the size and labels depending on whether the legend functionality is available or not.</li>
|
||||
<br/>
|
||||
<li style="list-style: none;"><i>v0.1 - June 18th, 2009 - Brian Medendorp</i></li>
|
||||
<li>Rewrote the entire pie code into a flot plugin (since that is now an option), so it should be much easier to use and the code is cleaned up a bit. However, the (standard flot) legend is no longer available because the only way to prevent the grid lines from being displayed also prevents the legend from being displayed. Hopefully this can be fixed at a later date.</li>
|
||||
<li>Restructured and combined some of the options. It should be much easier to deal with now.</li>
|
||||
<li>Added the ability to change the starting point of the pie (still defaults to the top).</li>
|
||||
<li>Modified the default options to show the labels to compensate for the lack of a legend.</li>
|
||||
<li>Modified this page to use a random dataset. <span style="color: red">Note: you may need to refresh the page to see the effects of some of the examples.</span></li>
|
||||
<br/>
|
||||
<li style="list-style: none;"><i>May 21st, 2009 - Brian Medendorp</i></li>
|
||||
<li>Merged original pie modifications by Sergey Nosenko into the latest SVN version <i>(as of May 15th, 2009)</i> so that it will work with ie8.</li>
|
||||
<li>Pie graph will now be centered in the canvas unless moved because of the legend or manually via the options. Additionally it prevents the pie from being moved beyond the edge of the canvas.</li>
|
||||
<li>Modified the code related to the labelFormatter option to apply flot's legend labelFormatter first. This is so that the labels will be consistent, but still provide extra formatting for the positioned labels (such as adding the percentage value).</li>
|
||||
<li>Positioned labels now have their backgrounds applied as a seperate element (much like the legend background) so that the opacity value can be set independently from the label itself (foreground). Additionally, the background color defaults to that of the matching slice.</li>
|
||||
<li>As long as the labelOffset and radiusLimit are not set to hard values, the pie will be shrunk if the labels will extend outside the edge of the canvas</li>
|
||||
<li>Added new options "radiusLimitFactor" and "radiusLimit" which limits how large the (visual) radius of the pie is in relation to the full radius (as calculated from the canvas dimensions) or a hard-pixel value (respectively). This allows for pushing the labels "outside" the pie.</li>
|
||||
<li>Added a new option "labelHidePercent" that does not show the positioned labels of slices smaller than the specified percentage. This is to help prevent a bunch of overlapping labels from small slices.</li>
|
||||
<li>Added a new option "sliceCombinePercent" that combines all slices smaller than the specified percentage into one larger slice. This is to help make the pie more attractive when there are a number of tiny slices. The options "sliceCombineColor" and "sliceCombineLabel" have also been added to change the color and name of the new slice if desired.</li>
|
||||
<li>Tested in Firefox (3.0.10, 3.5b4), Internet Explorer (6.0.2900, 7.0.5730, 8.0.6001), Chrome (1.0.154), Opera (9.64), and Safari (3.1.1, 4 beta 5528.16).
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
Copyright © 2007 - 2014 IOLA and Ole Laursen
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
121
bower_components/Flot/examples/series-toggle/index.html
vendored
Normal file
@@ -0,0 +1,121 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Flot Examples: Toggling Series</title>
|
||||
<link href="../examples.css" rel="stylesheet" type="text/css">
|
||||
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../../excanvas.min.js"></script><![endif]-->
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(function() {
|
||||
|
||||
var datasets = {
|
||||
"usa": {
|
||||
label: "USA",
|
||||
data: [[1988, 483994], [1989, 479060], [1990, 457648], [1991, 401949], [1992, 424705], [1993, 402375], [1994, 377867], [1995, 357382], [1996, 337946], [1997, 336185], [1998, 328611], [1999, 329421], [2000, 342172], [2001, 344932], [2002, 387303], [2003, 440813], [2004, 480451], [2005, 504638], [2006, 528692]]
|
||||
},
|
||||
"russia": {
|
||||
label: "Russia",
|
||||
data: [[1988, 218000], [1989, 203000], [1990, 171000], [1992, 42500], [1993, 37600], [1994, 36600], [1995, 21700], [1996, 19200], [1997, 21300], [1998, 13600], [1999, 14000], [2000, 19100], [2001, 21300], [2002, 23600], [2003, 25100], [2004, 26100], [2005, 31100], [2006, 34700]]
|
||||
},
|
||||
"uk": {
|
||||
label: "UK",
|
||||
data: [[1988, 62982], [1989, 62027], [1990, 60696], [1991, 62348], [1992, 58560], [1993, 56393], [1994, 54579], [1995, 50818], [1996, 50554], [1997, 48276], [1998, 47691], [1999, 47529], [2000, 47778], [2001, 48760], [2002, 50949], [2003, 57452], [2004, 60234], [2005, 60076], [2006, 59213]]
|
||||
},
|
||||
"germany": {
|
||||
label: "Germany",
|
||||
data: [[1988, 55627], [1989, 55475], [1990, 58464], [1991, 55134], [1992, 52436], [1993, 47139], [1994, 43962], [1995, 43238], [1996, 42395], [1997, 40854], [1998, 40993], [1999, 41822], [2000, 41147], [2001, 40474], [2002, 40604], [2003, 40044], [2004, 38816], [2005, 38060], [2006, 36984]]
|
||||
},
|
||||
"denmark": {
|
||||
label: "Denmark",
|
||||
data: [[1988, 3813], [1989, 3719], [1990, 3722], [1991, 3789], [1992, 3720], [1993, 3730], [1994, 3636], [1995, 3598], [1996, 3610], [1997, 3655], [1998, 3695], [1999, 3673], [2000, 3553], [2001, 3774], [2002, 3728], [2003, 3618], [2004, 3638], [2005, 3467], [2006, 3770]]
|
||||
},
|
||||
"sweden": {
|
||||
label: "Sweden",
|
||||
data: [[1988, 6402], [1989, 6474], [1990, 6605], [1991, 6209], [1992, 6035], [1993, 6020], [1994, 6000], [1995, 6018], [1996, 3958], [1997, 5780], [1998, 5954], [1999, 6178], [2000, 6411], [2001, 5993], [2002, 5833], [2003, 5791], [2004, 5450], [2005, 5521], [2006, 5271]]
|
||||
},
|
||||
"norway": {
|
||||
label: "Norway",
|
||||
data: [[1988, 4382], [1989, 4498], [1990, 4535], [1991, 4398], [1992, 4766], [1993, 4441], [1994, 4670], [1995, 4217], [1996, 4275], [1997, 4203], [1998, 4482], [1999, 4506], [2000, 4358], [2001, 4385], [2002, 5269], [2003, 5066], [2004, 5194], [2005, 4887], [2006, 4891]]
|
||||
}
|
||||
};
|
||||
|
||||
// hard-code color indices to prevent them from shifting as
|
||||
// countries are turned on/off
|
||||
|
||||
var i = 0;
|
||||
$.each(datasets, function(key, val) {
|
||||
val.color = i;
|
||||
++i;
|
||||
});
|
||||
|
||||
// insert checkboxes
|
||||
var choiceContainer = $("#choices");
|
||||
$.each(datasets, function(key, val) {
|
||||
choiceContainer.append("<br/><input type='checkbox' name='" + key +
|
||||
"' checked='checked' id='id" + key + "'></input>" +
|
||||
"<label for='id" + key + "'>"
|
||||
+ val.label + "</label>");
|
||||
});
|
||||
|
||||
choiceContainer.find("input").click(plotAccordingToChoices);
|
||||
|
||||
function plotAccordingToChoices() {
|
||||
|
||||
var data = [];
|
||||
|
||||
choiceContainer.find("input:checked").each(function () {
|
||||
var key = $(this).attr("name");
|
||||
if (key && datasets[key]) {
|
||||
data.push(datasets[key]);
|
||||
}
|
||||
});
|
||||
|
||||
if (data.length > 0) {
|
||||
$.plot("#placeholder", data, {
|
||||
yaxis: {
|
||||
min: 0
|
||||
},
|
||||
xaxis: {
|
||||
tickDecimals: 0
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
plotAccordingToChoices();
|
||||
|
||||
// Add the Flot version string to the footer
|
||||
|
||||
$("#footer").prepend("Flot " + $.plot.version + " – ");
|
||||
});
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header">
|
||||
<h2>Toggling Series</h2>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<div class="demo-container">
|
||||
<div id="placeholder" class="demo-placeholder" style="float:left; width:675px;"></div>
|
||||
<p id="choices" style="float:right; width:135px;"></p>
|
||||
</div>
|
||||
|
||||
<p>This example shows military budgets for various countries in constant (2005) million US dollars (source: <a href="http://www.sipri.org/">SIPRI</a>).</p>
|
||||
|
||||
<p>Since all data is available client-side, it's pretty easy to make the plot interactive. Try turning countries on and off with the checkboxes next to the plot.</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
Copyright © 2007 - 2014 IOLA and Ole Laursen
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
90
bower_components/Flot/examples/series-types/index.html
vendored
Normal file
@@ -0,0 +1,90 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Flot Examples: Series Types</title>
|
||||
<link href="../examples.css" rel="stylesheet" type="text/css">
|
||||
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../../excanvas.min.js"></script><![endif]-->
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(function() {
|
||||
|
||||
var d1 = [];
|
||||
for (var i = 0; i < 14; i += 0.5) {
|
||||
d1.push([i, Math.sin(i)]);
|
||||
}
|
||||
|
||||
var d2 = [[0, 3], [4, 8], [8, 5], [9, 13]];
|
||||
|
||||
var d3 = [];
|
||||
for (var i = 0; i < 14; i += 0.5) {
|
||||
d3.push([i, Math.cos(i)]);
|
||||
}
|
||||
|
||||
var d4 = [];
|
||||
for (var i = 0; i < 14; i += 0.1) {
|
||||
d4.push([i, Math.sqrt(i * 10)]);
|
||||
}
|
||||
|
||||
var d5 = [];
|
||||
for (var i = 0; i < 14; i += 0.5) {
|
||||
d5.push([i, Math.sqrt(i)]);
|
||||
}
|
||||
|
||||
var d6 = [];
|
||||
for (var i = 0; i < 14; i += 0.5 + Math.random()) {
|
||||
d6.push([i, Math.sqrt(2*i + Math.sin(i) + 5)]);
|
||||
}
|
||||
|
||||
$.plot("#placeholder", [{
|
||||
data: d1,
|
||||
lines: { show: true, fill: true }
|
||||
}, {
|
||||
data: d2,
|
||||
bars: { show: true }
|
||||
}, {
|
||||
data: d3,
|
||||
points: { show: true }
|
||||
}, {
|
||||
data: d4,
|
||||
lines: { show: true }
|
||||
}, {
|
||||
data: d5,
|
||||
lines: { show: true },
|
||||
points: { show: true }
|
||||
}, {
|
||||
data: d6,
|
||||
lines: { show: true, steps: true }
|
||||
}]);
|
||||
|
||||
// Add the Flot version string to the footer
|
||||
|
||||
$("#footer").prepend("Flot " + $.plot.version + " – ");
|
||||
});
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header">
|
||||
<h2>Series Types</h2>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<div class="demo-container">
|
||||
<div id="placeholder" class="demo-placeholder"></div>
|
||||
</div>
|
||||
|
||||
<p>Flot supports lines, points, filled areas, bars and any combinations of these, in the same plot and even on the same data series.</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
Copyright © 2007 - 2014 IOLA and Ole Laursen
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
107
bower_components/Flot/examples/stacking/index.html
vendored
Normal file
@@ -0,0 +1,107 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Flot Examples: Stacking</title>
|
||||
<link href="../examples.css" rel="stylesheet" type="text/css">
|
||||
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../../excanvas.min.js"></script><![endif]-->
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.stack.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(function() {
|
||||
|
||||
var d1 = [];
|
||||
for (var i = 0; i <= 10; i += 1) {
|
||||
d1.push([i, parseInt(Math.random() * 30)]);
|
||||
}
|
||||
|
||||
var d2 = [];
|
||||
for (var i = 0; i <= 10; i += 1) {
|
||||
d2.push([i, parseInt(Math.random() * 30)]);
|
||||
}
|
||||
|
||||
var d3 = [];
|
||||
for (var i = 0; i <= 10; i += 1) {
|
||||
d3.push([i, parseInt(Math.random() * 30)]);
|
||||
}
|
||||
|
||||
var stack = 0,
|
||||
bars = true,
|
||||
lines = false,
|
||||
steps = false;
|
||||
|
||||
function plotWithOptions() {
|
||||
$.plot("#placeholder", [ d1, d2, d3 ], {
|
||||
series: {
|
||||
stack: stack,
|
||||
lines: {
|
||||
show: lines,
|
||||
fill: true,
|
||||
steps: steps
|
||||
},
|
||||
bars: {
|
||||
show: bars,
|
||||
barWidth: 0.6
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
plotWithOptions();
|
||||
|
||||
$(".stackControls button").click(function (e) {
|
||||
e.preventDefault();
|
||||
stack = $(this).text() == "With stacking" ? true : null;
|
||||
plotWithOptions();
|
||||
});
|
||||
|
||||
$(".graphControls button").click(function (e) {
|
||||
e.preventDefault();
|
||||
bars = $(this).text().indexOf("Bars") != -1;
|
||||
lines = $(this).text().indexOf("Lines") != -1;
|
||||
steps = $(this).text().indexOf("steps") != -1;
|
||||
plotWithOptions();
|
||||
});
|
||||
|
||||
// Add the Flot version string to the footer
|
||||
|
||||
$("#footer").prepend("Flot " + $.plot.version + " – ");
|
||||
});
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header">
|
||||
<h2>Stacking</h2>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<div class="demo-container">
|
||||
<div id="placeholder" class="demo-placeholder"></div>
|
||||
</div>
|
||||
|
||||
<p>With the stack plugin, you can have Flot stack the series. This is useful if you wish to display both a total and the constituents it is made of. The only requirement is that you provide the input sorted on x.</p>
|
||||
|
||||
<p class="stackControls">
|
||||
<button>With stacking</button>
|
||||
<button>Without stacking</button>
|
||||
</p>
|
||||
|
||||
<p class="graphControls">
|
||||
<button>Bars</button>
|
||||
<button>Lines</button>
|
||||
<button>Lines with steps</button>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
Copyright © 2007 - 2014 IOLA and Ole Laursen
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
76
bower_components/Flot/examples/symbols/index.html
vendored
Normal file
@@ -0,0 +1,76 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Flot Examples: Symbols</title>
|
||||
<link href="../examples.css" rel="stylesheet" type="text/css">
|
||||
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../../excanvas.min.js"></script><![endif]-->
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.symbol.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(function() {
|
||||
|
||||
function generate(offset, amplitude) {
|
||||
|
||||
var res = [];
|
||||
var start = 0, end = 10;
|
||||
|
||||
for (var i = 0; i <= 50; ++i) {
|
||||
var x = start + i / 50 * (end - start);
|
||||
res.push([x, amplitude * Math.sin(x + offset)]);
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
var data = [
|
||||
{ data: generate(2, 1.8), points: { symbol: "circle" } },
|
||||
{ data: generate(3, 1.5), points: { symbol: "square" } },
|
||||
{ data: generate(4, 0.9), points: { symbol: "diamond" } },
|
||||
{ data: generate(6, 1.4), points: { symbol: "triangle" } },
|
||||
{ data: generate(7, 1.1), points: { symbol: "cross" } }
|
||||
];
|
||||
|
||||
$.plot("#placeholder", data, {
|
||||
series: {
|
||||
points: {
|
||||
show: true,
|
||||
radius: 3
|
||||
}
|
||||
},
|
||||
grid: {
|
||||
hoverable: true
|
||||
}
|
||||
});
|
||||
|
||||
// Add the Flot version string to the footer
|
||||
|
||||
$("#footer").prepend("Flot " + $.plot.version + " – ");
|
||||
});
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header">
|
||||
<h2>Symbols</h2>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<div class="demo-container">
|
||||
<div id="placeholder" class="demo-placeholder"></div>
|
||||
</div>
|
||||
|
||||
<p>Points can be marked in several ways, with circles being the built-in default. For other point types, you can define a callback function to draw the symbol. Some common symbols are available in the symbol plugin.</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
Copyright © 2007 - 2014 IOLA and Ole Laursen
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
76
bower_components/Flot/examples/threshold/index.html
vendored
Normal file
@@ -0,0 +1,76 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Flot Examples: Thresholds</title>
|
||||
<link href="../examples.css" rel="stylesheet" type="text/css">
|
||||
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../../excanvas.min.js"></script><![endif]-->
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.threshold.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(function() {
|
||||
|
||||
var d1 = [];
|
||||
for (var i = 0; i <= 60; i += 1) {
|
||||
d1.push([i, parseInt(Math.random() * 30 - 10)]);
|
||||
}
|
||||
|
||||
function plotWithOptions(t) {
|
||||
$.plot("#placeholder", [{
|
||||
data: d1,
|
||||
color: "rgb(30, 180, 20)",
|
||||
threshold: {
|
||||
below: t,
|
||||
color: "rgb(200, 20, 30)"
|
||||
},
|
||||
lines: {
|
||||
steps: true
|
||||
}
|
||||
}]);
|
||||
}
|
||||
|
||||
plotWithOptions(0);
|
||||
|
||||
$(".controls button").click(function (e) {
|
||||
e.preventDefault();
|
||||
var t = parseFloat($(this).text().replace("Threshold at ", ""));
|
||||
plotWithOptions(t);
|
||||
});
|
||||
|
||||
// Add the Flot version string to the footer
|
||||
|
||||
$("#footer").prepend("Flot " + $.plot.version + " – ");
|
||||
});
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header">
|
||||
<h2>Thresholds</h2>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<div class="demo-container">
|
||||
<div id="placeholder" class="demo-placeholder"></div>
|
||||
</div>
|
||||
|
||||
<p>With the threshold plugin, you can apply a specific color to the part of a data series below a threshold. This is can be useful for highlighting negative values, e.g. when displaying net results or what's in stock.</p>
|
||||
|
||||
<p class="controls">
|
||||
<button>Threshold at 5</button>
|
||||
<button>Threshold at 0</button>
|
||||
<button>Threshold at -2.5</button>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
Copyright © 2007 - 2014 IOLA and Ole Laursen
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
135
bower_components/Flot/examples/tracking/index.html
vendored
Normal file
@@ -0,0 +1,135 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Flot Examples: Tracking</title>
|
||||
<link href="../examples.css" rel="stylesheet" type="text/css">
|
||||
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../../excanvas.min.js"></script><![endif]-->
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.crosshair.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(function() {
|
||||
|
||||
var sin = [], cos = [];
|
||||
for (var i = 0; i < 14; i += 0.1) {
|
||||
sin.push([i, Math.sin(i)]);
|
||||
cos.push([i, Math.cos(i)]);
|
||||
}
|
||||
|
||||
plot = $.plot("#placeholder", [
|
||||
{ data: sin, label: "sin(x) = -0.00"},
|
||||
{ data: cos, label: "cos(x) = -0.00" }
|
||||
], {
|
||||
series: {
|
||||
lines: {
|
||||
show: true
|
||||
}
|
||||
},
|
||||
crosshair: {
|
||||
mode: "x"
|
||||
},
|
||||
grid: {
|
||||
hoverable: true,
|
||||
autoHighlight: false
|
||||
},
|
||||
yaxis: {
|
||||
min: -1.2,
|
||||
max: 1.2
|
||||
}
|
||||
});
|
||||
|
||||
var legends = $("#placeholder .legendLabel");
|
||||
|
||||
legends.each(function () {
|
||||
// fix the widths so they don't jump around
|
||||
$(this).css('width', $(this).width());
|
||||
});
|
||||
|
||||
var updateLegendTimeout = null;
|
||||
var latestPosition = null;
|
||||
|
||||
function updateLegend() {
|
||||
|
||||
updateLegendTimeout = null;
|
||||
|
||||
var pos = latestPosition;
|
||||
|
||||
var axes = plot.getAxes();
|
||||
if (pos.x < axes.xaxis.min || pos.x > axes.xaxis.max ||
|
||||
pos.y < axes.yaxis.min || pos.y > axes.yaxis.max) {
|
||||
return;
|
||||
}
|
||||
|
||||
var i, j, dataset = plot.getData();
|
||||
for (i = 0; i < dataset.length; ++i) {
|
||||
|
||||
var series = dataset[i];
|
||||
|
||||
// Find the nearest points, x-wise
|
||||
|
||||
for (j = 0; j < series.data.length; ++j) {
|
||||
if (series.data[j][0] > pos.x) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Now Interpolate
|
||||
|
||||
var y,
|
||||
p1 = series.data[j - 1],
|
||||
p2 = series.data[j];
|
||||
|
||||
if (p1 == null) {
|
||||
y = p2[1];
|
||||
} else if (p2 == null) {
|
||||
y = p1[1];
|
||||
} else {
|
||||
y = p1[1] + (p2[1] - p1[1]) * (pos.x - p1[0]) / (p2[0] - p1[0]);
|
||||
}
|
||||
|
||||
legends.eq(i).text(series.label.replace(/=.*/, "= " + y.toFixed(2)));
|
||||
}
|
||||
}
|
||||
|
||||
$("#placeholder").bind("plothover", function (event, pos, item) {
|
||||
latestPosition = pos;
|
||||
if (!updateLegendTimeout) {
|
||||
updateLegendTimeout = setTimeout(updateLegend, 50);
|
||||
}
|
||||
});
|
||||
|
||||
// Add the Flot version string to the footer
|
||||
|
||||
$("#footer").prepend("Flot " + $.plot.version + " – ");
|
||||
});
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header">
|
||||
<h2>Tracking</h2>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<div class="demo-container">
|
||||
<div id="placeholder" class="demo-placeholder"></div>
|
||||
</div>
|
||||
|
||||
<p>You can add crosshairs that'll track the mouse position, either on both axes or as here on only one.</p>
|
||||
|
||||
<p>If you combine it with listening on hover events, you can use it to track the intersection on the curves by interpolating the data points (look at the legend).</p>
|
||||
|
||||
<p id="hoverdata"></p>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
Copyright © 2007 - 2014 IOLA and Ole Laursen
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
147
bower_components/Flot/examples/visitors/index.html
vendored
Normal file
@@ -0,0 +1,147 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Flot Examples: Visitors</title>
|
||||
<link href="../examples.css" rel="stylesheet" type="text/css">
|
||||
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../../excanvas.min.js"></script><![endif]-->
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.time.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.selection.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(function() {
|
||||
|
||||
var d = [[1196463600000, 0], [1196550000000, 0], [1196636400000, 0], [1196722800000, 77], [1196809200000, 3636], [1196895600000, 3575], [1196982000000, 2736], [1197068400000, 1086], [1197154800000, 676], [1197241200000, 1205], [1197327600000, 906], [1197414000000, 710], [1197500400000, 639], [1197586800000, 540], [1197673200000, 435], [1197759600000, 301], [1197846000000, 575], [1197932400000, 481], [1198018800000, 591], [1198105200000, 608], [1198191600000, 459], [1198278000000, 234], [1198364400000, 1352], [1198450800000, 686], [1198537200000, 279], [1198623600000, 449], [1198710000000, 468], [1198796400000, 392], [1198882800000, 282], [1198969200000, 208], [1199055600000, 229], [1199142000000, 177], [1199228400000, 374], [1199314800000, 436], [1199401200000, 404], [1199487600000, 253], [1199574000000, 218], [1199660400000, 476], [1199746800000, 462], [1199833200000, 448], [1199919600000, 442], [1200006000000, 403], [1200092400000, 204], [1200178800000, 194], [1200265200000, 327], [1200351600000, 374], [1200438000000, 507], [1200524400000, 546], [1200610800000, 482], [1200697200000, 283], [1200783600000, 221], [1200870000000, 483], [1200956400000, 523], [1201042800000, 528], [1201129200000, 483], [1201215600000, 452], [1201302000000, 270], [1201388400000, 222], [1201474800000, 439], [1201561200000, 559], [1201647600000, 521], [1201734000000, 477], [1201820400000, 442], [1201906800000, 252], [1201993200000, 236], [1202079600000, 525], [1202166000000, 477], [1202252400000, 386], [1202338800000, 409], [1202425200000, 408], [1202511600000, 237], [1202598000000, 193], [1202684400000, 357], [1202770800000, 414], [1202857200000, 393], [1202943600000, 353], [1203030000000, 364], [1203116400000, 215], [1203202800000, 214], [1203289200000, 356], [1203375600000, 399], [1203462000000, 334], [1203548400000, 348], [1203634800000, 243], [1203721200000, 126], [1203807600000, 157], [1203894000000, 288]];
|
||||
|
||||
// first correct the timestamps - they are recorded as the daily
|
||||
// midnights in UTC+0100, but Flot always displays dates in UTC
|
||||
// so we have to add one hour to hit the midnights in the plot
|
||||
|
||||
for (var i = 0; i < d.length; ++i) {
|
||||
d[i][0] += 60 * 60 * 1000;
|
||||
}
|
||||
|
||||
// helper for returning the weekends in a period
|
||||
|
||||
function weekendAreas(axes) {
|
||||
|
||||
var markings = [],
|
||||
d = new Date(axes.xaxis.min);
|
||||
|
||||
// go to the first Saturday
|
||||
|
||||
d.setUTCDate(d.getUTCDate() - ((d.getUTCDay() + 1) % 7))
|
||||
d.setUTCSeconds(0);
|
||||
d.setUTCMinutes(0);
|
||||
d.setUTCHours(0);
|
||||
|
||||
var i = d.getTime();
|
||||
|
||||
// when we don't set yaxis, the rectangle automatically
|
||||
// extends to infinity upwards and downwards
|
||||
|
||||
do {
|
||||
markings.push({ xaxis: { from: i, to: i + 2 * 24 * 60 * 60 * 1000 } });
|
||||
i += 7 * 24 * 60 * 60 * 1000;
|
||||
} while (i < axes.xaxis.max);
|
||||
|
||||
return markings;
|
||||
}
|
||||
|
||||
var options = {
|
||||
xaxis: {
|
||||
mode: "time",
|
||||
tickLength: 5
|
||||
},
|
||||
selection: {
|
||||
mode: "x"
|
||||
},
|
||||
grid: {
|
||||
markings: weekendAreas
|
||||
}
|
||||
};
|
||||
|
||||
var plot = $.plot("#placeholder", [d], options);
|
||||
|
||||
var overview = $.plot("#overview", [d], {
|
||||
series: {
|
||||
lines: {
|
||||
show: true,
|
||||
lineWidth: 1
|
||||
},
|
||||
shadowSize: 0
|
||||
},
|
||||
xaxis: {
|
||||
ticks: [],
|
||||
mode: "time"
|
||||
},
|
||||
yaxis: {
|
||||
ticks: [],
|
||||
min: 0,
|
||||
autoscaleMargin: 0.1
|
||||
},
|
||||
selection: {
|
||||
mode: "x"
|
||||
}
|
||||
});
|
||||
|
||||
// now connect the two
|
||||
|
||||
$("#placeholder").bind("plotselected", function (event, ranges) {
|
||||
|
||||
// do the zooming
|
||||
$.each(plot.getXAxes(), function(_, axis) {
|
||||
var opts = axis.options;
|
||||
opts.min = ranges.xaxis.from;
|
||||
opts.max = ranges.xaxis.to;
|
||||
});
|
||||
plot.setupGrid();
|
||||
plot.draw();
|
||||
plot.clearSelection();
|
||||
|
||||
// don't fire event on the overview to prevent eternal loop
|
||||
|
||||
overview.setSelection(ranges, true);
|
||||
});
|
||||
|
||||
$("#overview").bind("plotselected", function (event, ranges) {
|
||||
plot.setSelection(ranges);
|
||||
});
|
||||
|
||||
// Add the Flot version string to the footer
|
||||
|
||||
$("#footer").prepend("Flot " + $.plot.version + " – ");
|
||||
});
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header">
|
||||
<h2>Visitors</h2>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<div class="demo-container">
|
||||
<div id="placeholder" class="demo-placeholder"></div>
|
||||
</div>
|
||||
|
||||
<div class="demo-container" style="height:150px;">
|
||||
<div id="overview" class="demo-placeholder"></div>
|
||||
</div>
|
||||
|
||||
<p>This plot shows visitors per day to the Flot homepage, with weekends colored.</p>
|
||||
|
||||
<p>The smaller plot is linked to the main plot, so it acts as an overview. Try dragging a selection on either plot, and watch the behavior of the other.</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
Copyright © 2007 - 2014 IOLA and Ole Laursen
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
144
bower_components/Flot/examples/zooming/index.html
vendored
Normal file
@@ -0,0 +1,144 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Flot Examples: Selection and zooming</title>
|
||||
<link href="../examples.css" rel="stylesheet" type="text/css">
|
||||
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../../excanvas.min.js"></script><![endif]-->
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../jquery.flot.selection.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(function() {
|
||||
|
||||
// setup plot
|
||||
|
||||
function getData(x1, x2) {
|
||||
|
||||
var d = [];
|
||||
for (var i = 0; i <= 100; ++i) {
|
||||
var x = x1 + i * (x2 - x1) / 100;
|
||||
d.push([x, Math.sin(x * Math.sin(x))]);
|
||||
}
|
||||
|
||||
return [
|
||||
{ label: "sin(x sin(x))", data: d }
|
||||
];
|
||||
}
|
||||
|
||||
var options = {
|
||||
legend: {
|
||||
show: false
|
||||
},
|
||||
series: {
|
||||
lines: {
|
||||
show: true
|
||||
},
|
||||
points: {
|
||||
show: true
|
||||
}
|
||||
},
|
||||
yaxis: {
|
||||
ticks: 10
|
||||
},
|
||||
selection: {
|
||||
mode: "xy"
|
||||
}
|
||||
};
|
||||
|
||||
var startData = getData(0, 3 * Math.PI);
|
||||
|
||||
var plot = $.plot("#placeholder", startData, options);
|
||||
|
||||
// Create the overview plot
|
||||
|
||||
var overview = $.plot("#overview", startData, {
|
||||
legend: {
|
||||
show: false
|
||||
},
|
||||
series: {
|
||||
lines: {
|
||||
show: true,
|
||||
lineWidth: 1
|
||||
},
|
||||
shadowSize: 0
|
||||
},
|
||||
xaxis: {
|
||||
ticks: 4
|
||||
},
|
||||
yaxis: {
|
||||
ticks: 3,
|
||||
min: -2,
|
||||
max: 2
|
||||
},
|
||||
grid: {
|
||||
color: "#999"
|
||||
},
|
||||
selection: {
|
||||
mode: "xy"
|
||||
}
|
||||
});
|
||||
|
||||
// now connect the two
|
||||
|
||||
$("#placeholder").bind("plotselected", function (event, ranges) {
|
||||
|
||||
// clamp the zooming to prevent eternal zoom
|
||||
|
||||
if (ranges.xaxis.to - ranges.xaxis.from < 0.00001) {
|
||||
ranges.xaxis.to = ranges.xaxis.from + 0.00001;
|
||||
}
|
||||
|
||||
if (ranges.yaxis.to - ranges.yaxis.from < 0.00001) {
|
||||
ranges.yaxis.to = ranges.yaxis.from + 0.00001;
|
||||
}
|
||||
|
||||
// do the zooming
|
||||
|
||||
plot = $.plot("#placeholder", getData(ranges.xaxis.from, ranges.xaxis.to),
|
||||
$.extend(true, {}, options, {
|
||||
xaxis: { min: ranges.xaxis.from, max: ranges.xaxis.to },
|
||||
yaxis: { min: ranges.yaxis.from, max: ranges.yaxis.to }
|
||||
})
|
||||
);
|
||||
|
||||
// don't fire event on the overview to prevent eternal loop
|
||||
|
||||
overview.setSelection(ranges, true);
|
||||
});
|
||||
|
||||
$("#overview").bind("plotselected", function (event, ranges) {
|
||||
plot.setSelection(ranges);
|
||||
});
|
||||
|
||||
// Add the Flot version string to the footer
|
||||
|
||||
$("#footer").prepend("Flot " + $.plot.version + " – ");
|
||||
});
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header">
|
||||
<h2>Selection and zooming</h2>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<div class="demo-container">
|
||||
<div id="placeholder" class="demo-placeholder" style="float:left; width:650px;"></div>
|
||||
<div id="overview" class="demo-placeholder" style="float:right;width:160px; height:125px;"></div>
|
||||
</div>
|
||||
|
||||
<p>Selection support makes it easy to construct flexible zooming schemes. With a few lines of code, the small overview plot to the right has been connected to the large plot. Try selecting a rectangle on either of them.</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
Copyright © 2007 - 2014 IOLA and Ole Laursen
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
27
bower_components/Flot/flot.jquery.json
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"name": "flot",
|
||||
"version": "0.8.3",
|
||||
"title": "Flot",
|
||||
"author": {
|
||||
"name": "Ole Laursen",
|
||||
"url": "https://github.com/OleLaursen"
|
||||
},
|
||||
"licenses": [{
|
||||
"type": "MIT",
|
||||
"url": "http://github.com/flot/flot/blob/master/LICENSE.txt"
|
||||
}],
|
||||
"dependencies": {
|
||||
"jquery": ">=1.2.6"
|
||||
},
|
||||
"description": "Flot is a pure JavaScript plotting library for jQuery, with a focus on simple usage, attractive looks and interactive features.",
|
||||
"keywords": ["plot", "chart", "graph", "visualization", "canvas", "graphics"],
|
||||
"homepage": "http://www.flotcharts.org",
|
||||
"docs": "http://github.com/flot/flot/blob/master/API.md",
|
||||
"demo": "http://www.flotcharts.org/flot/examples/",
|
||||
"bugs": "http://github.com/flot/flot/issues",
|
||||
"maintainers": [{
|
||||
"name": "David Schnur",
|
||||
"email": "dnschnur@gmail.com",
|
||||
"url": "http://github.com/dnschnur"
|
||||
}]
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
/* Flot plugin for drawing all elements of a plot on the canvas.
|
||||
|
||||
Copyright (c) 2007-2013 IOLA and Ole Laursen.
|
||||
Copyright (c) 2007-2014 IOLA and Ole Laursen.
|
||||
Licensed under the MIT license.
|
||||
|
||||
Flot normally produces certain elements, like axis labels and the legend, using
|
||||
@@ -1,6 +1,6 @@
|
||||
/* Flot plugin for plotting textual data or categories.
|
||||
|
||||
Copyright (c) 2007-2013 IOLA and Ole Laursen.
|
||||
Copyright (c) 2007-2014 IOLA and Ole Laursen.
|
||||
Licensed under the MIT license.
|
||||
|
||||
Consider a dataset like [["February", 34], ["March", 20], ...]. This plugin
|
||||
@@ -1,6 +1,6 @@
|
||||
/* Flot plugin for showing crosshairs when the mouse hovers over the plot.
|
||||
|
||||
Copyright (c) 2007-2013 IOLA and Ole Laursen.
|
||||
Copyright (c) 2007-2014 IOLA and Ole Laursen.
|
||||
Licensed under the MIT license.
|
||||
|
||||
The plugin supports these options:
|
||||
@@ -139,7 +139,7 @@ The plugin also adds four public methods:
|
||||
ctx.translate(plotOffset.left, plotOffset.top);
|
||||
|
||||
if (crosshair.x != -1) {
|
||||
var adj = plot.getOptions().crosshair.lineWidth % 2 === 0 ? 0 : 0.5;
|
||||
var adj = plot.getOptions().crosshair.lineWidth % 2 ? 0.5 : 0;
|
||||
|
||||
ctx.strokeStyle = c.color;
|
||||
ctx.lineWidth = c.lineWidth;
|
||||
@@ -147,12 +147,12 @@ The plugin also adds four public methods:
|
||||
|
||||
ctx.beginPath();
|
||||
if (c.mode.indexOf("x") != -1) {
|
||||
var drawX = Math.round(crosshair.x) + adj;
|
||||
var drawX = Math.floor(crosshair.x) + adj;
|
||||
ctx.moveTo(drawX, 0);
|
||||
ctx.lineTo(drawX, plot.height());
|
||||
}
|
||||
if (c.mode.indexOf("y") != -1) {
|
||||
var drawY = Math.round(crosshair.y) + adj;
|
||||
var drawY = Math.floor(crosshair.y) + adj;
|
||||
ctx.moveTo(0, drawY);
|
||||
ctx.lineTo(plot.width(), drawY);
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
/* Flot plugin for plotting error bars.
|
||||
|
||||
Copyright (c) 2007-2013 IOLA and Ole Laursen.
|
||||
Copyright (c) 2007-2014 IOLA and Ole Laursen.
|
||||
Licensed under the MIT license.
|
||||
|
||||
Error bars are used to show standard deviation and other statistical
|
||||
@@ -1,6 +1,6 @@
|
||||
/* Flot plugin for computing bottoms for filled line and bar charts.
|
||||
|
||||
Copyright (c) 2007-2013 IOLA and Ole Laursen.
|
||||
Copyright (c) 2007-2014 IOLA and Ole Laursen.
|
||||
Licensed under the MIT license.
|
||||
|
||||
The case: you've got two series that you want to fill the area between. In Flot
|
||||
@@ -1,6 +1,6 @@
|
||||
/* Flot plugin for plotting images.
|
||||
|
||||
Copyright (c) 2007-2013 IOLA and Ole Laursen.
|
||||
Copyright (c) 2007-2014 IOLA and Ole Laursen.
|
||||
Licensed under the MIT license.
|
||||
|
||||
The data syntax is [ [ image, x1, y1, x2, y2 ], ... ] where (x1, y1) and
|
||||
@@ -1,6 +1,6 @@
|
||||
/* Javascript plotting library for jQuery, version 0.8.2.
|
||||
/* Javascript plotting library for jQuery, version 0.8.3.
|
||||
|
||||
Copyright (c) 2007-2013 IOLA and Ole Laursen.
|
||||
Copyright (c) 2007-2014 IOLA and Ole Laursen.
|
||||
Licensed under the MIT license.
|
||||
|
||||
*/
|
||||
@@ -38,6 +38,22 @@ Licensed under the MIT license.
|
||||
|
||||
var hasOwnProperty = Object.prototype.hasOwnProperty;
|
||||
|
||||
// A shim to provide 'detach' to jQuery versions prior to 1.4. Using a DOM
|
||||
// operation produces the same effect as detach, i.e. removing the element
|
||||
// without touching its jQuery data.
|
||||
|
||||
// Do not merge this into Flot 0.9, since it requires jQuery 1.4.4+.
|
||||
|
||||
if (!$.fn.detach) {
|
||||
$.fn.detach = function() {
|
||||
return this.each(function() {
|
||||
if (this.parentNode) {
|
||||
this.parentNode.removeChild( this );
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// The Canvas object is a wrapper around an HTML5 <canvas> tag.
|
||||
//
|
||||
@@ -814,10 +830,24 @@ Licensed under the MIT license.
|
||||
if (options.x2axis) {
|
||||
options.xaxes[1] = $.extend(true, {}, options.xaxis, options.x2axis);
|
||||
options.xaxes[1].position = "top";
|
||||
// Override the inherit to allow the axis to auto-scale
|
||||
if (options.x2axis.min == null) {
|
||||
options.xaxes[1].min = null;
|
||||
}
|
||||
if (options.x2axis.max == null) {
|
||||
options.xaxes[1].max = null;
|
||||
}
|
||||
}
|
||||
if (options.y2axis) {
|
||||
options.yaxes[1] = $.extend(true, {}, options.yaxis, options.y2axis);
|
||||
options.yaxes[1].position = "right";
|
||||
// Override the inherit to allow the axis to auto-scale
|
||||
if (options.y2axis.min == null) {
|
||||
options.yaxes[1].min = null;
|
||||
}
|
||||
if (options.y2axis.max == null) {
|
||||
options.yaxes[1].max = null;
|
||||
}
|
||||
}
|
||||
if (options.grid.coloredAreas)
|
||||
options.grid.markings = options.grid.coloredAreas;
|
||||
@@ -1416,7 +1446,7 @@ Licensed under the MIT license.
|
||||
// Determine the axis's position in its direction and on its side
|
||||
|
||||
$.each(isXAxis ? xaxes : yaxes, function(i, a) {
|
||||
if (a && a.reserveSpace) {
|
||||
if (a && (a.show || a.reserveSpace)) {
|
||||
if (a === axis) {
|
||||
found = true;
|
||||
} else if (a.options.position === pos) {
|
||||
@@ -1520,17 +1550,12 @@ Licensed under the MIT license.
|
||||
// jump as much around with replots
|
||||
$.each(allAxes(), function (_, axis) {
|
||||
if (axis.reserveSpace && axis.ticks && axis.ticks.length) {
|
||||
var lastTick = axis.ticks[axis.ticks.length - 1];
|
||||
if (axis.direction === "x") {
|
||||
margins.left = Math.max(margins.left, axis.labelWidth / 2);
|
||||
if (lastTick.v <= axis.max) {
|
||||
margins.right = Math.max(margins.right, axis.labelWidth / 2);
|
||||
}
|
||||
margins.right = Math.max(margins.right, axis.labelWidth / 2);
|
||||
} else {
|
||||
margins.bottom = Math.max(margins.bottom, axis.labelHeight / 2);
|
||||
if (lastTick.v <= axis.max) {
|
||||
margins.top = Math.max(margins.top, axis.labelHeight / 2);
|
||||
}
|
||||
margins.top = Math.max(margins.top, axis.labelHeight / 2);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -1564,20 +1589,18 @@ Licensed under the MIT license.
|
||||
}
|
||||
}
|
||||
|
||||
// init axes
|
||||
$.each(axes, function (_, axis) {
|
||||
axis.show = axis.options.show;
|
||||
if (axis.show == null)
|
||||
axis.show = axis.used; // by default an axis is visible if it's got data
|
||||
|
||||
axis.reserveSpace = axis.show || axis.options.reserveSpace;
|
||||
|
||||
var axisOpts = axis.options;
|
||||
axis.show = axisOpts.show == null ? axis.used : axisOpts.show;
|
||||
axis.reserveSpace = axisOpts.reserveSpace == null ? axis.show : axisOpts.reserveSpace;
|
||||
setRange(axis);
|
||||
});
|
||||
|
||||
if (showGrid) {
|
||||
|
||||
var allocatedAxes = $.grep(axes, function (axis) { return axis.reserveSpace; });
|
||||
var allocatedAxes = $.grep(axes, function (axis) {
|
||||
return axis.show || axis.reserveSpace;
|
||||
});
|
||||
|
||||
$.each(allocatedAxes, function (_, axis) {
|
||||
// make the ticks
|
||||
@@ -1706,8 +1729,8 @@ Licensed under the MIT license.
|
||||
axis.tickDecimals = Math.max(0, maxDec != null ? maxDec : dec);
|
||||
axis.tickSize = opts.tickSize || size;
|
||||
|
||||
// Time mode was moved to a plug-in in 0.8, but since so many people use this
|
||||
// we'll add an especially friendly make sure they remembered to include it.
|
||||
// Time mode was moved to a plug-in in 0.8, and since so many people use it
|
||||
// we'll add an especially friendly reminder to make sure they included it.
|
||||
|
||||
if (opts.mode == "time" && !axis.tickGenerator) {
|
||||
throw new Error("Time mode requires the flot.time plugin.");
|
||||
@@ -1963,26 +1986,34 @@ Licensed under the MIT license.
|
||||
yrange.from = Math.max(yrange.from, yrange.axis.min);
|
||||
yrange.to = Math.min(yrange.to, yrange.axis.max);
|
||||
|
||||
if (xrange.from == xrange.to && yrange.from == yrange.to)
|
||||
var xequal = xrange.from === xrange.to,
|
||||
yequal = yrange.from === yrange.to;
|
||||
|
||||
if (xequal && yequal) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// then draw
|
||||
xrange.from = xrange.axis.p2c(xrange.from);
|
||||
xrange.to = xrange.axis.p2c(xrange.to);
|
||||
yrange.from = yrange.axis.p2c(yrange.from);
|
||||
yrange.to = yrange.axis.p2c(yrange.to);
|
||||
xrange.from = Math.floor(xrange.axis.p2c(xrange.from));
|
||||
xrange.to = Math.floor(xrange.axis.p2c(xrange.to));
|
||||
yrange.from = Math.floor(yrange.axis.p2c(yrange.from));
|
||||
yrange.to = Math.floor(yrange.axis.p2c(yrange.to));
|
||||
|
||||
if (xrange.from == xrange.to || yrange.from == yrange.to) {
|
||||
// draw line
|
||||
if (xequal || yequal) {
|
||||
var lineWidth = m.lineWidth || options.grid.markingsLineWidth,
|
||||
subPixel = lineWidth % 2 ? 0.5 : 0;
|
||||
ctx.beginPath();
|
||||
ctx.strokeStyle = m.color || options.grid.markingsColor;
|
||||
ctx.lineWidth = m.lineWidth || options.grid.markingsLineWidth;
|
||||
ctx.moveTo(xrange.from, yrange.from);
|
||||
ctx.lineTo(xrange.to, yrange.to);
|
||||
ctx.lineWidth = lineWidth;
|
||||
if (xequal) {
|
||||
ctx.moveTo(xrange.to + subPixel, yrange.from);
|
||||
ctx.lineTo(xrange.to + subPixel, yrange.to);
|
||||
} else {
|
||||
ctx.moveTo(xrange.from, yrange.to + subPixel);
|
||||
ctx.lineTo(xrange.to, yrange.to + subPixel);
|
||||
}
|
||||
ctx.stroke();
|
||||
}
|
||||
else {
|
||||
// fill area
|
||||
} else {
|
||||
ctx.fillStyle = m.color || options.grid.markingsColor;
|
||||
ctx.fillRect(xrange.from, yrange.to,
|
||||
xrange.to - xrange.from,
|
||||
@@ -3117,7 +3148,7 @@ Licensed under the MIT license.
|
||||
return plot;
|
||||
};
|
||||
|
||||
$.plot.version = "0.8.2";
|
||||
$.plot.version = "0.8.3";
|
||||
|
||||
$.plot.plugins = [];
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* Flot plugin for adding the ability to pan and zoom the plot.
|
||||
|
||||
Copyright (c) 2007-2013 IOLA and Ole Laursen.
|
||||
Copyright (c) 2007-2014 IOLA and Ole Laursen.
|
||||
Licensed under the MIT license.
|
||||
|
||||
The default behaviour is double click and scrollwheel up/down to zoom in, drag
|
||||
@@ -260,8 +260,8 @@ Licensed under the MIT License ~ http://threedubmedia.googlecode.com/files/MIT-L
|
||||
|
||||
var range = max - min;
|
||||
if (zr &&
|
||||
((zr[0] != null && range < zr[0]) ||
|
||||
(zr[1] != null && range > zr[1])))
|
||||
((zr[0] != null && range < zr[0] && amount >1) ||
|
||||
(zr[1] != null && range > zr[1] && amount <1)))
|
||||
return;
|
||||
|
||||
opts.min = min;
|
||||
@@ -1,6 +1,6 @@
|
||||
/* Flot plugin for rendering pie charts.
|
||||
|
||||
Copyright (c) 2007-2013 IOLA and Ole Laursen.
|
||||
Copyright (c) 2007-2014 IOLA and Ole Laursen.
|
||||
Licensed under the MIT license.
|
||||
|
||||
The plugin assumes that each series has a single data value, and that each
|
||||
@@ -224,13 +224,16 @@ More detail and specific examples can be found in the included HTML file.
|
||||
for (var i = 0; i < data.length; ++i) {
|
||||
var value = data[i].data[0][1];
|
||||
if (numCombined < 2 || value / total > options.series.pie.combine.threshold) {
|
||||
newdata.push({
|
||||
data: [[1, value]],
|
||||
color: data[i].color,
|
||||
label: data[i].label,
|
||||
angle: value * Math.PI * 2 / total,
|
||||
percent: value / (total / 100)
|
||||
});
|
||||
newdata.push(
|
||||
$.extend(data[i], { /* extend to allow keeping all other original data values
|
||||
and using them e.g. in labelFormatter. */
|
||||
data: [[1, value]],
|
||||
color: data[i].color,
|
||||
label: data[i].label,
|
||||
angle: value * Math.PI * 2 / total,
|
||||
percent: value / (total / 100)
|
||||
})
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
59
bower_components/Flot/jquery.flot.resize.js
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
/* Flot plugin for automatically redrawing plots as the placeholder resizes.
|
||||
|
||||
Copyright (c) 2007-2014 IOLA and Ole Laursen.
|
||||
Licensed under the MIT license.
|
||||
|
||||
It works by listening for changes on the placeholder div (through the jQuery
|
||||
resize event plugin) - if the size changes, it will redraw the plot.
|
||||
|
||||
There are no options. If you need to disable the plugin for some plots, you
|
||||
can just fix the size of their placeholders.
|
||||
|
||||
*/
|
||||
|
||||
/* Inline dependency:
|
||||
* jQuery resize event - v1.1 - 3/14/2010
|
||||
* http://benalman.com/projects/jquery-resize-plugin/
|
||||
*
|
||||
* Copyright (c) 2010 "Cowboy" Ben Alman
|
||||
* Dual licensed under the MIT and GPL licenses.
|
||||
* http://benalman.com/about/license/
|
||||
*/
|
||||
(function($,e,t){"$:nomunge";var i=[],n=$.resize=$.extend($.resize,{}),a,r=false,s="setTimeout",u="resize",m=u+"-special-event",o="pendingDelay",l="activeDelay",f="throttleWindow";n[o]=200;n[l]=20;n[f]=true;$.event.special[u]={setup:function(){if(!n[f]&&this[s]){return false}var e=$(this);i.push(this);e.data(m,{w:e.width(),h:e.height()});if(i.length===1){a=t;h()}},teardown:function(){if(!n[f]&&this[s]){return false}var e=$(this);for(var t=i.length-1;t>=0;t--){if(i[t]==this){i.splice(t,1);break}}e.removeData(m);if(!i.length){if(r){cancelAnimationFrame(a)}else{clearTimeout(a)}a=null}},add:function(e){if(!n[f]&&this[s]){return false}var i;function a(e,n,a){var r=$(this),s=r.data(m)||{};s.w=n!==t?n:r.width();s.h=a!==t?a:r.height();i.apply(this,arguments)}if($.isFunction(e)){i=e;return a}else{i=e.handler;e.handler=a}}};function h(t){if(r===true){r=t||1}for(var s=i.length-1;s>=0;s--){var l=$(i[s]);if(l[0]==e||l.is(":visible")){var f=l.width(),c=l.height(),d=l.data(m);if(d&&(f!==d.w||c!==d.h)){l.trigger(u,[d.w=f,d.h=c]);r=t||true}}else{d=l.data(m);d.w=0;d.h=0}}if(a!==null){if(r&&(t==null||t-r<1e3)){a=e.requestAnimationFrame(h)}else{a=setTimeout(h,n[o]);r=false}}}if(!e.requestAnimationFrame){e.requestAnimationFrame=function(){return e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame||e.msRequestAnimationFrame||function(t,i){return e.setTimeout(function(){t((new Date).getTime())},n[l])}}()}if(!e.cancelAnimationFrame){e.cancelAnimationFrame=function(){return e.webkitCancelRequestAnimationFrame||e.mozCancelRequestAnimationFrame||e.oCancelRequestAnimationFrame||e.msCancelRequestAnimationFrame||clearTimeout}()}})(jQuery,this);
|
||||
|
||||
(function ($) {
|
||||
var options = { }; // no options
|
||||
|
||||
function init(plot) {
|
||||
function onResize() {
|
||||
var placeholder = plot.getPlaceholder();
|
||||
|
||||
// somebody might have hidden us and we can't plot
|
||||
// when we don't have the dimensions
|
||||
if (placeholder.width() == 0 || placeholder.height() == 0)
|
||||
return;
|
||||
|
||||
plot.resize();
|
||||
plot.setupGrid();
|
||||
plot.draw();
|
||||
}
|
||||
|
||||
function bindEvents(plot, eventHolder) {
|
||||
plot.getPlaceholder().resize(onResize);
|
||||
}
|
||||
|
||||
function shutdown(plot, eventHolder) {
|
||||
plot.getPlaceholder().unbind("resize", onResize);
|
||||
}
|
||||
|
||||
plot.hooks.bindEvents.push(bindEvents);
|
||||
plot.hooks.shutdown.push(shutdown);
|
||||
}
|
||||
|
||||
$.plot.plugins.push({
|
||||
init: init,
|
||||
options: options,
|
||||
name: 'resize',
|
||||
version: '1.0'
|
||||
});
|
||||
})(jQuery);
|
||||
@@ -1,6 +1,6 @@
|
||||
/* Flot plugin for selecting regions of a plot.
|
||||
|
||||
Copyright (c) 2007-2013 IOLA and Ole Laursen.
|
||||
Copyright (c) 2007-2014 IOLA and Ole Laursen.
|
||||
Licensed under the MIT license.
|
||||
|
||||
The plugin supports these options:
|
||||
@@ -1,6 +1,6 @@
|
||||
/* Flot plugin for stacking data sets rather than overlyaing them.
|
||||
|
||||
Copyright (c) 2007-2013 IOLA and Ole Laursen.
|
||||
Copyright (c) 2007-2014 IOLA and Ole Laursen.
|
||||
Licensed under the MIT license.
|
||||
|
||||
The plugin assumes the data is sorted on x (or y if stacking horizontally).
|
||||