Comparar commits
1562 Commits
| Autor | SHA1 | Data | |
|---|---|---|---|
| b4c4072679 | |||
| 04b00365da | |||
| 92fd785e97 | |||
| aadc76694d | |||
| 4be4e8ec35 | |||
| 14c1e926a6 | |||
| 87e2f0bbc5 | |||
| 573b3f4415 | |||
| 7d59745955 | |||
| b8238b6efb | |||
| 0822cc5458 | |||
| f0de5ad2ac | |||
| 790cb187f1 | |||
| d991ef2ab1 | |||
| 514ea6ea76 | |||
| beca8a6b74 | |||
| de683e9003 | |||
| 60b202de32 | |||
| d9b502dfb8 | |||
| c9789f7515 | |||
| b9bd82b496 | |||
| 37d0a30589 | |||
| 1c7fe5d887 | |||
| eb24718add | |||
| 6b2a010357 | |||
| 839b0c893f | |||
| 0992a85932 | |||
| 3469339068 | |||
| cec434a4c3 | |||
| 2f27d9851c | |||
| a61322c2fb | |||
| 01e0f8c653 | |||
| cf998040ec | |||
| ef80765726 | |||
| 40b7a909a6 | |||
| 16111a5e45 | |||
| e6a6fd2585 | |||
| 8c7f9c66a7 | |||
| c4d47fb1ea | |||
| 30fd4be093 | |||
| 501aabf572 | |||
| 366e1e0a6d | |||
| 1bf070b4ce | |||
| d8a7a380bc | |||
| e3f3542d0b | |||
| c8874ff285 | |||
| 60c9ff4364 | |||
| beb60309d1 | |||
| 2fa77bf197 | |||
| 3b56227553 | |||
| 4814281540 | |||
| accfdaafdb | |||
| 0fe9148b91 | |||
| 5e4db94c24 | |||
| 6a9cd513c0 | |||
| 042bb9b515 | |||
| 1629df8008 | |||
| a4b31d39a2 | |||
| a866a51a2e | |||
| ee91afba63 | |||
| 566380b257 | |||
| c25e8182ba | |||
| 45656fc7fc | |||
| 31fdb2e25e | |||
| c97d304c0c | |||
| 9443eb6e21 | |||
| 15c7e73abd | |||
| 31b9240dd0 | |||
| cb0fed6693 | |||
| db8a78fae6 | |||
| 4b86a91e53 | |||
| 7ec817ea46 | |||
| d6048031ed | |||
| b1f1d7871f | |||
| 1fe4ed8823 | |||
| dbe8aed76e | |||
| 6b9bb547bf | |||
| 0bfbf1446d | |||
| 8f0bc9e79b | |||
| d2ea2cdedd | |||
| f328ebbc73 | |||
| b7b2e4f8a1 | |||
| 7d655c3549 | |||
| 2f44d8d2da | |||
| 6014e63054 | |||
| ed2cf5b3e3 | |||
| e38d08d4c0 | |||
| baadc33c88 | |||
| 135e834bf4 | |||
| 3cc65cb86c | |||
| dd4ce35ddc | |||
| a5fc3e0667 | |||
| 3b6b8e9f41 | |||
| f20c3368e4 | |||
| c4eea3abde | |||
| b7764d8a33 | |||
| ab0c055bc6 | |||
| d6e3b6b5a4 | |||
| ee71fb492f | |||
| 5b0f956a60 | |||
| d9a0abaa06 | |||
| db9ec13ce4 | |||
| e5be883bb9 | |||
| 929598784f | |||
| 6803ff70f9 | |||
| 6afb1055e3 | |||
| 2428904b4b | |||
| 22f1cc44ca | |||
| f3268db4b4 | |||
| 01b465928e | |||
| bbb3c0a0e6 | |||
| 650c77ddb9 | |||
| b80bf2c138 | |||
| 38c5c13d38 | |||
| 598e9e6f13 | |||
| 60bb95e611 | |||
| 1da1994ba4 | |||
| a67c86e40f | |||
| c34ef69100 | |||
| c55329085e | |||
| 370fa45fbe | |||
| 4503ad7808 | |||
| 337741fc9a | |||
| f9ee99cf6f | |||
| 5ae1df617f | |||
| a23eb06536 | |||
| ecc24953a5 | |||
| 98aeb0acf1 | |||
| fdd1daeae1 | |||
| 4b34f4947a | |||
| 6f275c6148 | |||
| a809daf284 | |||
| 77c68e4bc2 | |||
| a7231854c9 | |||
| 8a16746542 | |||
| e195457728 | |||
| aaf80d410a | |||
| 19e2ad0eb6 | |||
| 6f894c62a5 | |||
| 42efd9f730 | |||
| 4de3a77a64 | |||
| 88e816956a | |||
| b242ff7851 | |||
| 767a293b4d | |||
| 56a24027c3 | |||
| d3b3b4c48f | |||
| d7c93fc647 | |||
| 53f9e25150 | |||
| 649d8c985e | |||
| 839f83c610 | |||
| 6e5a2fedaa | |||
| cf852c1f62 | |||
| 9fdc9887cf | |||
| edfc0bf8b3 | |||
| 1eb6a1d8c8 | |||
| 5eff3cdd5d | |||
| 1d87bcc9f5 | |||
| 976b4ea263 | |||
| ccf4c2fbe3 | |||
| 2c2a847e75 | |||
| aeb0e85151 | |||
| b5ad50686c | |||
| bf3dea668f | |||
| 684c9d8d05 | |||
| 848ca6e315 | |||
| 1c0e4fc7bb | |||
| f69d12af3d | |||
| 6f8e315b1d | |||
| 3096a377a2 | |||
| aa997e274e | |||
| 330b143b40 | |||
| 9749d6afc2 | |||
| b9c7f29134 | |||
| 340d90138c | |||
| 2a5fde272c | |||
| 9835549faf | |||
| e867ae7b60 | |||
| 90cdef8dfe | |||
| 0a7c840173 | |||
| dfbac13ad1 | |||
| 5da8b315c0 | |||
| da0217405f | |||
| f152dead92 | |||
| 68ff08cc91 | |||
| b6960d8cf9 | |||
| d594d6377a | |||
| defe85bb51 | |||
| 7a3a88acc6 | |||
| 48211ad9f5 | |||
| 0834bd51ec | |||
| f74990d898 | |||
| d09b46fe37 | |||
| effba9e55c | |||
| 2c0ed072b0 | |||
| 4d195222d4 | |||
| a9e661a2b5 | |||
| fad0fb683b | |||
| e2434fefbd | |||
| f59bf47081 | |||
| ddd59f22c7 | |||
| 24a36df9f6 | |||
| 7f7039321d | |||
| a55605ca57 | |||
| 442012f0f5 | |||
| 5a2966a2c2 | |||
| d23006a6bd | |||
| ccafc8a010 | |||
| 558bc52432 | |||
| 818c56f078 | |||
| 82a758344d | |||
| e194c3e4f4 | |||
| 5da30ee5fb | |||
| d5345f806c | |||
| dc32555f5b | |||
| 704dfb2f1d | |||
| a27bf30f0d | |||
| c1e82732cf | |||
| a24e47b5b8 | |||
| 43d130762b | |||
| 5e4f663e69 | |||
| b6575cc72e | |||
| a6705246d0 | |||
| e21b6459ad | |||
| 30d8eb3ed5 | |||
| 0a1434b23b | |||
| 3f493f0d0d | |||
| f706acb11c | |||
| 5abe33f5d8 | |||
| 6b67a83631 | |||
| 2c9f43f685 | |||
| c00f29e4d4 | |||
| 9726fded1c | |||
| 5d776bcfd2 | |||
| bbe4625672 | |||
| 7f9ff0ba5b | |||
| e9eff0cbff | |||
| 96e5fa6143 | |||
| 7c456c8554 | |||
| 219d275ae6 | |||
| dc4e80a655 | |||
| 5bd8cdca91 | |||
| dc6142751f | |||
| 529ecc5a77 | |||
| cddca18f12 | |||
| 9d985978a3 | |||
| 847b632577 | |||
| e324a1beb0 | |||
| 83a6a55d2c | |||
| 165729254b | |||
| ab5d7f863c | |||
| 9f29785783 | |||
| c105906780 | |||
| 18adc44171 | |||
| 070c125cec | |||
| 68d1d7fc83 | |||
| b5ceca14db | |||
| 9376a7c221 | |||
| cacc213762 | |||
| b9292ff90c | |||
| 3bd9a26c01 | |||
| 820a3b27b6 | |||
| 1747caf19d | |||
| 437654030a | |||
| 10e72e158d | |||
| 91fbadad5b | |||
| c362e72660 | |||
| 66b70016d0 | |||
| 2526c3fdbe | |||
| a7eb9c294a | |||
| 1c5b8e967e | |||
| be45a821bb | |||
| 1413f976ae | |||
| cc6fda2262 | |||
| 2c7ab23d7a | |||
| 2877f84579 | |||
| f4466dd9c7 | |||
| 81679981c5 | |||
| 306c1b4914 | |||
| ed74992853 | |||
| 12916b06aa | |||
| e31c7fb8a5 | |||
| 8b959cacbc | |||
| 0f2a423b8d | |||
| 15a4399015 | |||
| 869b69c66c | |||
| 06582edb2a | |||
| d470fb72da | |||
| 68cbba347b | |||
| eca23e9b0f | |||
| f514c87d6b | |||
| 30d6a71ccd | |||
| 439ff09701 | |||
| c8862d91bc | |||
| 0dece7a71f | |||
| 139f1be49d | |||
| ea61cdb740 | |||
| 32d425967a | |||
| 85c57c6ba8 | |||
| e8b3c36068 | |||
| dbb244cb97 | |||
| fbec803b55 | |||
| bca3ff4ed6 | |||
| f087b3428c | |||
| fe7b6decb1 | |||
| 322a56354f | |||
| 721b568303 | |||
| c5173cdb92 | |||
| 52e669d619 | |||
| 38c546c785 | |||
| 12aa060efd | |||
| e9c32fdf6d | |||
| acc037de15 | |||
| ddd154481b | |||
| fa6a6dbb92 | |||
| 78390d12af | |||
| cb69aa976f | |||
| fe8df5022b | |||
| f1349a2450 | |||
| 8fb36cb3dd | |||
| 296b838405 | |||
| bf3a5df371 | |||
| 783120dffa | |||
| 014d3cedf5 | |||
| bfc97fdaf6 | |||
| 693fd0db2a | |||
| fda5bb135e | |||
| 74f51105e9 | |||
| 942f9c5df4 | |||
| 02097700e8 | |||
| dc10e6bbf8 | |||
| e6e4d93d5e | |||
| 701f871e7d | |||
| e0d0190803 | |||
| 5d1b4206b1 | |||
| 8df2811d49 | |||
| 8b417c39e7 | |||
| ace6dc0c25 | |||
| a10d68f291 | |||
| a367fd4938 | |||
| 88c2497368 | |||
| 5702e1be6e | |||
| 4d593618e0 | |||
| 05655ff4ff | |||
| 1700e48e7f | |||
| 0df0b5f1f5 | |||
| cd1f72f484 | |||
| 303767350c | |||
| 6ec7c72e5b | |||
| 41889f74d0 | |||
| c8856eeff3 | |||
| 54486de88c | |||
| f2bbee2075 | |||
| ddf5ceccce | |||
| cf7d7a7b5d | |||
| 02c0b788cd | |||
| 0a1d296e19 | |||
| 79b7017227 | |||
| d38bda1480 | |||
| 62c78e46f8 | |||
| 91bcccd9a8 | |||
| ebed09ec01 | |||
| f3b3814606 | |||
| 823b5accd3 | |||
| 7e6cc0bf7e | |||
| 76f9c9128e | |||
| 51f293ba4c | |||
| 075e320a83 | |||
| 21957a3d9e | |||
| 953dc3a6f2 | |||
| fb51efcbd4 | |||
| 2320a09898 | |||
| 22d1506d23 | |||
| 28da31218f | |||
| 68f26d959f | |||
| e4866c4b3c | |||
| 5d6cf2ee19 | |||
| 2c93190283 | |||
| a8b9342aea | |||
| c9dbd2d601 | |||
| 72e2d4bb77 | |||
| 7ea343d570 | |||
| ead5dbeba5 | |||
| 2f39f86bd7 | |||
| 381d967ec8 | |||
| 46b5e0cbc6 | |||
| fc42ac6a56 | |||
| 46d38b10b8 | |||
| d0c75bbc83 | |||
| d350f577e9 | |||
| 46347fff01 | |||
| be03a53086 | |||
| 14b941744c | |||
| bf48c31406 | |||
| 64326322b4 | |||
| d5697fcf6b | |||
| 3b3dd3ac3c | |||
| 404e4d9e9a | |||
| cbf1dace2f | |||
| b5af762ef5 | |||
| 68cfedb34a | |||
| f1136228a7 | |||
| bf10a43ed9 | |||
| 5bb6c42405 | |||
| a6968c4934 | |||
| 9352fe1750 | |||
| f595e146d6 | |||
| 31c1eba51b | |||
| 92e7f166e7 | |||
| 81c3c1c68c | |||
| 41ad16fe40 | |||
| 233e050adf | |||
| c33169a6ba | |||
| ba2a99e7c4 | |||
| 45046544a6 | |||
| 0b9d4e78ad | |||
| 7f3b94c453 | |||
| d6ac499ca8 | |||
| 280d4aeb30 | |||
| 7426ced0fb | |||
| 24b5e6cb14 | |||
| a2fc01444e | |||
| edc3eee5ea | |||
| 21f29a7682 | |||
| 8e6697f2b2 | |||
| ac6625de5f | |||
| 0a3e034891 | |||
| 97bf02d787 | |||
| 3074737d90 | |||
| e0a007b929 | |||
| b06724a1a4 | |||
| 709870aa3e | |||
| 57eb2a8018 | |||
| 0ac50d28b5 | |||
| 78f7ad95f4 | |||
| bf78333531 | |||
| 463eae25b0 | |||
| e24b46b7f3 | |||
| ae0ba0686e | |||
| cd55963930 | |||
| 432eaff29c | |||
| 0048446db9 | |||
| 6b017b9bea | |||
| fda641fb6c | |||
| ed5c5994a7 | |||
| d19ca23f8f | |||
| fa778792c5 | |||
| df9a1c29f4 | |||
| 31007c01d8 | |||
| 5af5c2ed36 | |||
| b18c009051 | |||
| 48a8dd2a23 | |||
| 4702e75410 | |||
| ec8394cb6e | |||
| 7e534ce98a | |||
| e4f522990e | |||
| 6203535d2f | |||
| d76c305cbb | |||
| 7d649c9d4a | |||
| 3726ce24bb | |||
| 11ee1633b4 | |||
| dd8b745b88 | |||
| e73cd15fc8 | |||
| 630a88d3ce | |||
| a2369021ce | |||
| 1bd4723038 | |||
| b892a37320 | |||
| 7c9597f4e7 | |||
| 1b814458c9 | |||
| 7763cab608 | |||
| 5cf7c803e2 | |||
| d36e37214b | |||
| 86d5ed6f4f | |||
| fd1e9b1498 | |||
| f8ac403d8b | |||
| bc4f5d565e | |||
| 5035592988 | |||
| c6c1ada600 | |||
| a90334eebb | |||
| 239ce24f92 | |||
| 085d6d185d | |||
| 32181816f7 | |||
| c77d4266c0 | |||
| 46764a7165 | |||
| da43c7c27c | |||
| 40a8a93b22 | |||
| d49dd766c8 | |||
| a4a6244eb7 | |||
| 82715ae96d | |||
| a2690c6d86 | |||
| 57f8dbe25c | |||
| f8374a754d | |||
| 8ecffcb32f | |||
| e1f6458e36 | |||
| 0944e036ae | |||
| ecbb0ed4df | |||
| e9a648cd39 | |||
| 474471b831 | |||
| 24e277b85a | |||
| 498a28b4cd | |||
| b29d947477 | |||
| 0540b63ab0 | |||
| aec8b08930 | |||
| 88b1e44dd6 | |||
| 4a2443901f | |||
| bda3d57a00 | |||
| 003fcccceb | |||
| f4d3d7da2e | |||
| a4bf6ef0a0 | |||
| af871d57c9 | |||
| c3ea955661 | |||
| a419e70a42 | |||
| ebf94c53a5 | |||
| 1716b0fdb5 | |||
| fe38d12f12 | |||
| 667179f406 | |||
| c92a75999f | |||
| 532ee08213 | |||
| 443c43f6c4 | |||
| 67585bd34e | |||
| 6c3cd6fd9d | |||
| a6206c98d5 | |||
| 2d90c816ac | |||
| 2769241aeb | |||
| 37460e58d3 | |||
| cc3de8bd6e | |||
| 13be8b2031 | |||
| c15877445c | |||
| 78992bbf42 | |||
| 2a20761f07 | |||
| 3b3def4898 | |||
| 239e6a7d21 | |||
| cedb3c7c56 | |||
| 783f4885ab | |||
| 26ca131a95 | |||
| 143fef9f95 | |||
| 917b46a343 | |||
| caa79ed594 | |||
| 6881c193ca | |||
| 03a406d920 | |||
| f69e244a60 | |||
| cd876fb659 | |||
| 6f3bef195a | |||
| 1ea09b751e | |||
| 6e25aacc91 | |||
| 6aa15eb01f | |||
| 6c4b276cd4 | |||
| 7857089065 | |||
| 0bcbcf69ec | |||
| e4e2e37c5c | |||
| 5aa1018496 | |||
| faa760f563 | |||
| 2ead9a5bc3 | |||
| 5331fe39df | |||
| 595e1a189c | |||
| a40ab1cd66 | |||
| 15bb78ce80 | |||
| e1deba30aa | |||
| 537c5cc33d | |||
| 65d322958c | |||
| 38303dd997 | |||
| bbadd429a8 | |||
| 2c8eff0eec | |||
| 0489c708c7 | |||
| 39791a8ea8 | |||
| cd2b12f788 | |||
| 10faf28aef | |||
| 76e42edb29 | |||
| f29f98501c | |||
| 1f8e2d2617 | |||
| 61332d727e | |||
| f2bd7d9f27 | |||
| 6c5c3c81ec | |||
| 7a0f5c6c00 | |||
| cc4f8b9f6c | |||
| 501a2d69e1 | |||
| 7762a77c21 | |||
| 138b5a8c05 | |||
| d4a16d35eb | |||
| 3fa4ca2d87 | |||
| dfb3175d4b | |||
| 08b8571cb8 | |||
| 5ff5d351bf | |||
| c52368d3c5 | |||
| df8e3c6ee3 | |||
| bc4ecd9984 | |||
| 9341bb756b | |||
| 9d890a8412 | |||
| 7e4629fbbe | |||
| 73ef263d5f | |||
| bf590d8c81 | |||
| a1d2ee6542 | |||
| de36456f5d | |||
| 1f0043a7f5 | |||
| acf2a64016 | |||
| 8cda830eaf | |||
| f25129361b | |||
| f46813a8c8 | |||
| 9d5f9eca85 | |||
| 69d4c3f9a1 | |||
| 3737904859 | |||
| 209852c805 | |||
| 02f6bd65f5 | |||
| e8c5b3c9a5 | |||
| b1bdca0fdb | |||
| 00d6f26270 | |||
| 0f85e8b7f8 | |||
| beb0b64096 | |||
| afd931262c | |||
| 2da2169a56 | |||
| 2137cd65fb | |||
| 010a5dd84d | |||
| 8878facc67 | |||
| a976a1583c | |||
| e27b1355b5 | |||
| b5373d8561 | |||
| 66ad3d62c6 | |||
| 545edf5459 | |||
| 609142eee2 | |||
| 3568146b28 | |||
| 215d92bacd | |||
| 4751a0a274 | |||
| 7d412b1e14 | |||
| 55982664d0 | |||
| 1eaf1cf418 | |||
| 601e252074 | |||
| d797a5fbd7 | |||
| 17d8c78e52 | |||
| 438f745ea2 | |||
| b5a8c0a45e | |||
| 2719ac3e9b | |||
| 67eae2a503 | |||
| 96a1797af1 | |||
| 1b7a3ca416 | |||
| 303a33f15c | |||
| 3b67ece2d1 | |||
| 4674945fa8 | |||
| b444582ccd | |||
| 8610fd9b2b | |||
| 85dcbd0b34 | |||
| cf9334bd7d | |||
| 22c4f3d058 | |||
| 15317419f4 | |||
| 8a5dde556b | |||
| 1c9d5c43b0 | |||
| a2b9a5e1fe | |||
| fcd08fce8f | |||
| 54e3a26dda | |||
| 96542f14ab | |||
| 12d5c88c20 | |||
| bdc3ff99f3 | |||
| 72f176d1f5 | |||
| 1b8f4f5bc5 | |||
| f15eb7b499 | |||
| cfa039d2e0 | |||
| eb8aad85b8 | |||
| f744ad57fc | |||
| ec6b320003 | |||
| bb9d1af1ca | |||
| aa07523e69 | |||
| d9593e217d | |||
| 0682780cd8 | |||
| d9fe9af966 | |||
| 5cbb826961 | |||
| 019d9bf0f3 | |||
| be64955e25 | |||
| 3424df22ee | |||
| ac4420237c | |||
| 4775bc910c | |||
| 5da217b96e | |||
| 582b178723 | |||
| 535dfc2153 | |||
| 6160667b19 | |||
| 5f97e04aa3 | |||
| 115c7b82c4 | |||
| a9764c34a7 | |||
| 361889def9 | |||
| 5d41742f17 | |||
| 8d00fe4c03 | |||
| 1973c64342 | |||
| 46c10c8b58 | |||
| 190d3c9c3e | |||
| e2ecd2df6c | |||
| 45978b6674 | |||
| b1c93c2700 | |||
| 6e7ba4e24a | |||
| 311c00a29b | |||
| 13199c0020 | |||
| 6dc13573bf | |||
| 1c134d9a7f | |||
| b52d29095a | |||
| 4f918ce52c | |||
| 94f9f9de73 | |||
| e5060b8d92 | |||
| 8a2b9f4a5f | |||
| 099cec1ca7 | |||
| 06c718b1d3 | |||
| 55facf1f2e | |||
| 6477ad1acf | |||
| 5fc5d26917 | |||
| fe3ed433e4 | |||
| 320b75de63 | |||
| 9e0d87a4dd | |||
| 471d913ab6 | |||
| cbc7873bb4 | |||
| 2b5e09038a | |||
| 5d63e8e2a8 | |||
| aa2cec6f2f | |||
| 01572f00bb | |||
| 58dd1f20ae | |||
| 6cf3752b9b | |||
| 78cb09b440 | |||
| ed13ec50f8 | |||
| e59642838f | |||
| 2fda6a45aa | |||
| 47697c5f35 | |||
| afaee0ca13 | |||
| 73cf9c4db8 | |||
| a1951ed7c0 | |||
| e510306196 | |||
| a12c19b3c8 | |||
| a667fd93ab | |||
| 4e979f084d | |||
| e4d4ef43b0 | |||
| e71e2b4be2 | |||
| 94ba211c40 | |||
| b745b7768a | |||
| 887f11d47f | |||
| 47cf3cc62f | |||
| bb85bbc657 | |||
| 7ed82c1223 | |||
| 8e271d664b | |||
| c531a75ff0 | |||
| 1e190d8036 | |||
| c9cef741f6 | |||
| 45dddc59a1 | |||
| 44e35e9dfa | |||
| 937cfa6a88 | |||
| 1166b39630 | |||
| e79eb75e09 | |||
| e6e0e2ac9b | |||
| 4d2f584fdd | |||
| 9ae137aede | |||
| 80ced60778 | |||
| 50638530e6 | |||
| dda951d1e1 | |||
| ae275dccb8 | |||
| b7233a49dd | |||
| 3f12c746e5 | |||
| 2327d30ef5 | |||
| 8b763286df | |||
| d71efb855b | |||
| 97247a157c | |||
| d8eb75d6e8 | |||
| f1854a3cec | |||
| 2ab0c8de1a | |||
| 04a20fb402 | |||
| 7b7a02542b | |||
| 41253fb073 | |||
| a3c474c404 | |||
| f4f6783cc0 | |||
| 263ed4e239 | |||
| f37d4b0918 | |||
| 01dadc05f4 | |||
| 663fd4ff62 | |||
| a8b18b6f54 | |||
| 25f8ef3260 | |||
| c8b8d914b8 | |||
| 7f5aa177f5 | |||
| 0c24f51d2a | |||
| 05571db109 | |||
| 1ae194597c | |||
| 256a25f25c | |||
| 5b947b8a2f | |||
| f9deb8017a | |||
| 2b22c0c56e | |||
| 9e6322dbab | |||
| 077577c7f3 | |||
| b86e1fb62a | |||
| b8715ddfd0 | |||
| 79e05d0c0e | |||
| 51b43acf20 | |||
| 39f779b5d3 | |||
| ded21ebc91 | |||
| bb61175eba | |||
| 54c645e33d | |||
| fd509cb370 | |||
| ada5589184 | |||
| 74bda55d4c | |||
| 48f5626499 | |||
| 27e9214e05 | |||
| ddefdbf31f | |||
| 6bfa58ea4d | |||
| 6a1521327b | |||
| b0437bef76 | |||
| ff38c14948 | |||
| ae9a2bd93a | |||
| dee57462e2 | |||
| e1659b2c4e | |||
| 2ee035403d | |||
| 61a8ef2feb | |||
| 9c72246d49 | |||
| f3479a3953 | |||
| f933a41c7b | |||
| 780636d955 | |||
| b14d946afb | |||
| 41093a328e | |||
| a80dafbb18 | |||
| 5144c77b27 | |||
| 50df524ba1 | |||
| dbcd87331d | |||
| 662fface3b | |||
| 0b0d7f104c | |||
| 2a6deb92b1 | |||
| 75e5279e01 | |||
| f6ac297903 | |||
| e9b04acb92 | |||
| 57ea6fea76 | |||
| 2df0a0fdeb | |||
| 4bf93a2d76 | |||
| 97a23ef2e6 | |||
| d684607976 | |||
| 0040a78058 | |||
| 41f4c60a91 | |||
| cf33664b0c | |||
| d96047f45f | |||
| a74457a203 | |||
| cf4fd1abbe | |||
| e31f06b857 | |||
| 9f8ce77751 | |||
| 5df1e2c00a | |||
| e06c257e6b | |||
| f6c7ac51f2 | |||
| 08e4475f00 | |||
| 3c89f7bb5f | |||
| 85f1f2257b | |||
| 03eee23952 | |||
| 4eee78e051 | |||
| a525a6fe33 | |||
| 8ed77c41f0 | |||
| 0cb3ba6b23 | |||
| aeed751a7f | |||
| 80a645b52a | |||
| 3823d29c04 | |||
| f61dd7239b | |||
| 25c6175311 | |||
| fa38ab573b | |||
| 88deb08ff2 | |||
| 2b2b3303e1 | |||
| 33c6ab9b20 | |||
| d27dcf3b07 | |||
| 1482030679 | |||
| 1e2edaef48 | |||
| fc7ecd78c8 | |||
| 4a84145c43 | |||
| 86a577d76b | |||
| 48546c2735 | |||
| 7ec1778103 | |||
| 6977d35eed | |||
| 225d0e0af3 | |||
| 1bb7c0e669 | |||
| 3c742fc08b | |||
| 72323051c3 | |||
| c2e899f2a0 | |||
| fe93b926b4 | |||
| fbc053692d | |||
| b979cd9e67 | |||
| 7aaf141371 | |||
| e8fd7e6c96 | |||
| 735001cb26 | |||
| 5637c6fb70 | |||
| fab1a80dcb | |||
| 060e216712 | |||
| 6905dbe98d | |||
| 1f70dd71c8 | |||
| 31b30ab88e | |||
| e191964ff8 | |||
| 9795e9bbe6 | |||
| 196fb1d86a | |||
| 59eba9afbc | |||
| 0e62011da0 | |||
| 364dbb7931 | |||
| be8d5243f4 | |||
| a9bf1e6e35 | |||
| 1f30faac73 | |||
| b2ebd5c46c | |||
| 7fa99fb1fe | |||
| 178397ae5e | |||
| 6bf661aceb | |||
| 04164e4367 | |||
| b63543181a | |||
| cfac4bb59d | |||
| 84a9c74efd | |||
| 22a9a83656 | |||
| d63ebe3f3c | |||
| 87ce3489d3 | |||
| 761429d88a | |||
| 134d11b528 | |||
| e56a700849 | |||
| 5184da39f4 | |||
| a30045daef | |||
| fe6a4b0b54 | |||
| 16b4ac0d8f | |||
| 9d5c431223 | |||
| 1e9b450619 | |||
| 6474190746 | |||
| 79067721b1 | |||
| 4bb2a13776 | |||
| f75277e62d | |||
| 880bdbc4dd | |||
| c10a357bb3 | |||
| fa6a131eb6 | |||
| b7b4fd5c82 | |||
| 7590e65f6f | |||
| e2fc202df2 | |||
| c98b75c979 | |||
| 394922a1bf | |||
| 87aa61001e | |||
| c37aa99e28 | |||
| 4912dd441d | |||
| e38fa4b1f4 | |||
| 5b2f2ed821 | |||
| 4ea7c47235 | |||
| 7ce048bccd | |||
| cd441e082f | |||
| 6245886b26 | |||
| 802ced9ca5 | |||
| f085dbadd1 | |||
| 2a0cf0f131 | |||
| 0dda2c4659 | |||
| 614d52bd7f | |||
| 5247b15411 | |||
| 685785d2c2 | |||
| 5b8838aeac | |||
| b05fc00d59 | |||
| 76cfe17002 | |||
| e25bcb93fc | |||
| dcf75697ec | |||
| cf70fb629f | |||
| fa1e1e34df | |||
| fae6c36874 | |||
| 48fc0ad569 | |||
| d76c899142 | |||
| e9f374f041 | |||
| 5b8ff7061b | |||
| 393f4a7b42 | |||
| 8281a9023a | |||
| 77dea2c5eb | |||
| 6c2fa9430c | |||
| b9105b98f9 | |||
| ee750bbce1 | |||
| 117f65d431 | |||
| 1d4660beea | |||
| 3c1a0fbda4 | |||
| 89d7ec5290 | |||
| 6c23fff4d6 | |||
| c8fa2600f2 | |||
| aac3736eea | |||
| cb1a59caa0 | |||
| ba90d0fc5e | |||
| 326b665065 | |||
| a8316c780d | |||
| 39f8996d6a | |||
| 51c9fa1697 | |||
| 6a663081a7 | |||
| a1ad6d124a | |||
| 62f6368344 | |||
| 25bc298aff | |||
| 4008d666a5 | |||
| 16fa610ea4 | |||
| 478396fd4e | |||
| 2ee9b2717b | |||
| 426e7d9fbd | |||
| 9581cbfe32 | |||
| 40ab928315 | |||
| e20d2dfe9d | |||
| 750badabf7 | |||
| 74b167b86d | |||
| 463de252a9 | |||
| 6e622ee763 | |||
| 93b1519017 | |||
| 5cb116beb8 | |||
| 2d4f5eb5a4 | |||
| fae691c3d9 | |||
| f22b06097a | |||
| f36060dab5 | |||
| 9343e1e933 | |||
| a12f0e551f | |||
| 549d61fc28 | |||
| 7d324ee35b | |||
| 3c775f2432 | |||
| 280dfda6ed | |||
| c884d6eaa6 | |||
| 338c7ef2b6 | |||
| 5b5352c92d | |||
| f0ed383e51 | |||
| 713105774f | |||
| a750551fee | |||
| 5d8e78e0fa | |||
| 83846ba0d6 | |||
| 75d952ffd8 | |||
| 0ca210395c | |||
| 3ea309568f | |||
| c74dddd02e | |||
| 6f8226a393 | |||
| 64e87a85f5 | |||
| f4877c2369 | |||
| 148e5a3d89 | |||
| f495a8d0cc | |||
| 413c05a09d | |||
| 93be608bf0 | |||
| dbea3e2784 | |||
| 646c87c151 | |||
| 7800fee7e0 | |||
| 07f80e6fd8 | |||
| 50a945e084 | |||
| 25d0b341a9 | |||
| 9887d3cf4a | |||
| 410decafad | |||
| 16cf6b30cd | |||
| 8b696ad0b5 | |||
| db9925510b | |||
| 20676ddd4d | |||
| 5f861ef517 | |||
| 7d1c8c2a0c | |||
| 3f2f96b0d7 | |||
| e2b777d9a3 | |||
| 7cc916d137 | |||
| c7f6499235 | |||
| e2336ef02a | |||
| 6d447079a4 | |||
| 7ff1b074ea | |||
| dc6eaafb00 | |||
| 19ea4668e5 | |||
| 3d770ab7bd | |||
| 095e052606 | |||
| cd6915cdb4 | |||
| 68146db004 | |||
| 3c07eaa251 | |||
| c6ee96c025 | |||
| a645664e50 | |||
| 62c386259b | |||
| b4125748b0 | |||
| 4d6434a2c7 | |||
| 26dad5f56d | |||
| 3ad52ca632 | |||
| 70e81e6f55 | |||
| fb29075926 | |||
| cd2d82150c | |||
| 98ebd54800 | |||
| 6f4360c47b | |||
| c31a4e5131 | |||
| c09e8473e2 | |||
| a683497dbc | |||
| 2e3306d5dd | |||
| b77ed4a3a3 | |||
| 244a9ab79d | |||
| 3761d50c5a | |||
| a85499749a | |||
| e7e183e55d | |||
| d65e815a48 | |||
| 94a3d4eb14 | |||
| 8c2db7d7d6 | |||
| 78849cf52e | |||
| cd466f1d0b | |||
| 27845e4492 | |||
| 508a93d9e3 | |||
| 6662f62236 | |||
| 87af5d3bbe | |||
| 71669dda63 | |||
| e80f37b600 | |||
| 160fe7ca59 | |||
| 59153205b3 | |||
| 3875a9f31b | |||
| b353565d4e | |||
| f2dadecbf3 | |||
| 7301931a6d | |||
| f5a2d82a3a | |||
| 83e46b8df9 | |||
| 5bd9217f9b | |||
| 1e717991e8 | |||
| eb62c977cd | |||
| 3a5b4cc7df | |||
| b2b000b750 | |||
| 089f42a07f | |||
| d704d6f0ed | |||
| ce140662a0 | |||
| 9df832b4bb | |||
| 40298ddbf1 | |||
| ff92344f0d | |||
| b54264cde0 | |||
| 64ba423b6d | |||
| d14f06fc4e | |||
| 143b6ae2de | |||
| 9aa5a6db12 | |||
| af88f54e5d | |||
| 47e0647086 | |||
| 6a974f9ff7 | |||
| bae3cfd183 | |||
| 3add79c071 | |||
| 36e78bd7ac | |||
| 626b45d691 | |||
| fb31cdba9c | |||
| b1cb556503 | |||
| 7b726f974f | |||
| cda48d41ba | |||
| 3ead14a1e0 | |||
| 2cbff258b9 | |||
| 1db72f8d77 | |||
| 2e6d4e9439 | |||
| bf875d9e36 | |||
| c7ffe6edc8 | |||
| f453909f39 | |||
| 5dd47f1196 | |||
| 7ed02b461b | |||
| 97cbefa72f | |||
| bd19b42c15 | |||
| 681b601561 | |||
| a0cd886c56 | |||
| c90c66e61f | |||
| 081a07c168 | |||
| 017b7cb804 | |||
| 0c817bf5e2 | |||
| 3985379cca | |||
| f2e39233f5 | |||
| 4a907709ba | |||
| 5ef2b6561a | |||
| fc2481b8e5 | |||
| c65006601e | |||
| ca63ea2f26 | |||
| aff3694f28 | |||
| 550e375af0 | |||
| c028e33358 | |||
| 269ce715f1 | |||
| 97c7a83a8f | |||
| bba0b34c36 | |||
| c1c7528dd9 | |||
| df869f1eb0 | |||
| c3f5d7c62d | |||
| f8d68002dc | |||
| ff6dd0cf56 | |||
| 860a96939a | |||
| f109be4e8a | |||
| 857b8fb8be | |||
| a1aa2b188a | |||
| 2ecbd36cbf | |||
| 10d68406fe | |||
| 2c5ac562d2 | |||
| 5a614fb86d | |||
| 09ec0b843e | |||
| 8ee0679522 | |||
| 53cec198c0 | |||
| 22918f8f92 | |||
| dd127611e1 | |||
| 094e65eb9d | |||
| de53f62a04 | |||
| 47e2c43401 | |||
| b8d8704f90 | |||
| 446f9199c6 | |||
| f0ff20ec40 | |||
| 257890f839 | |||
| 060100cf3a | |||
| 094e12f68d | |||
| c44bd1edf4 | |||
| 632c6d22a2 | |||
| eef87c96af | |||
| 348668ec13 | |||
| 589242604f | |||
| b79c100967 | |||
| c56eb0962a | |||
| 8df906e641 | |||
| 9cceb0bba7 | |||
| 5563b8448e | |||
| 8eb1488861 | |||
| 37ba0eba02 | |||
| eb3a4b8f75 | |||
| 82ea5847a7 | |||
| 041b8bdfd3 | |||
| 31e8a358c3 | |||
| ad9bfeef7a | |||
| 9a4ee790e1 | |||
| 9a3a297a47 | |||
| 2d3a0babd2 | |||
| 4a276b1620 | |||
| af14f6db5d | |||
| 91a7274a43 | |||
| a38bc90b48 | |||
| ebc1fe907d | |||
| 3a751a63d4 | |||
| 555a3b0478 | |||
| 0b827965d3 | |||
| 354f99f0bd | |||
| b8a8927b0c | |||
| 4ca1cba3f8 | |||
| b07b869b26 | |||
| 806a82ef83 | |||
| 037107480d | |||
| f836473129 | |||
| fc96bc8bba | |||
| 5b401a8c16 | |||
| 5e5965ca6f | |||
| ebc6935663 | |||
| 5657ab46c5 | |||
| 4eaeea81fd | |||
| bcd5097c02 | |||
| 7875e4833c | |||
| f53a038088 | |||
| 6fc5674466 | |||
| 9699e1d707 | |||
| 241cbd478d | |||
| a85c8fe74e | |||
| 8a06339501 | |||
| 287086758b | |||
| cc8b260ed8 | |||
| a7529e158b | |||
| 7dbcd0be9a | |||
| aaf1825b49 | |||
| fe30bd6055 | |||
| 76ee212343 | |||
| c1c679b644 | |||
| 7fa9f605d6 | |||
| 72e3b3beb3 | |||
| 34e5bc5f1d | |||
| 19489496c1 | |||
| 5d27fbb32d | |||
| 3b6b6eb242 | |||
| 642f75141d | |||
| 8dda83906d | |||
| e388a5e475 | |||
| faf2866f96 | |||
| 78790da03c | |||
| e5187e12c4 | |||
| 1dbf4c92ce | |||
| b1d7c34086 | |||
| 9889948f58 | |||
| a7b49a7d92 | |||
| 10c6db4b14 | |||
| 4b53778150 | |||
| a404ac33bb | |||
| 5ecab6112c | |||
| e009ed23fc | |||
| 67f81a2ed5 | |||
| 0679f24606 | |||
| 3a27b4e6f6 | |||
| 6be09df1bf | |||
| a9d4b667ff | |||
| 532569fe59 | |||
| ecf84bdac5 | |||
| 87f6e426b3 | |||
| c8cafa5d5a | |||
| e28efd7da0 | |||
| a0809ceebe | |||
| 33061a8e0b | |||
| 1b537c6f9c | |||
| e9a7d26d06 | |||
| 826a8714e2 | |||
| ea15660973 | |||
| 332d2a7384 | |||
| a2fb9ed42f | |||
| c02c3c60c9 | |||
| 8f44245850 | |||
| 23401e811f | |||
| 1a8561d084 | |||
| 7de65e0a62 | |||
| d09db29039 | |||
| 6f61c96f02 | |||
| 6a89659727 | |||
| 3a21891824 | |||
| 526d77af61 | |||
| 839ec86ac7 | |||
| 20eae67147 | |||
| 452d8c1df0 | |||
| ca369c4b2a | |||
| dcc89e7400 | |||
| 5ffb6d6706 | |||
| ef368f0076 | |||
| b6b354ceaa | |||
| 51153766f5 | |||
| 59ec4c7154 | |||
| c204bc66d6 | |||
| 6e9756ebb6 | |||
| ad46b0980c | |||
| ec56940c51 | |||
| bf9d8fcc07 | |||
| ab178060be | |||
| b261f9781b | |||
| ffb4d9025b | |||
| fc509e14b2 | |||
| a29e5a9dd6 | |||
| 99c3b7810b | |||
| aaabe2a46c | |||
| 3aa89ded21 | |||
| 4fbb400754 | |||
| 66ac6e14db | |||
| 7b282798a3 | |||
| 5be84ad0b7 | |||
| f9744ff522 | |||
| e659dc7e1b | |||
| 839ef3a030 | |||
| 79d7092a39 | |||
| d8aaf50798 | |||
| fc871a4821 | |||
| 73453c7f79 | |||
| 1c2db11d58 | |||
| 805ca03457 | |||
| 7f6f3ff462 | |||
| f805a6080c | |||
| 419e50e339 | |||
| b8b1ffde05 | |||
| c408d8961b | |||
| c896a182e1 | |||
| 091a97c01c | |||
| 176e0b1169 | |||
| 99a916d5eb | |||
| 192cb575da | |||
| f5fd5e7523 | |||
| f84882122e | |||
| 03f78f7a60 | |||
| 1160935446 | |||
| de9271bfd1 | |||
| c99dcd2e93 | |||
| fd009597b6 | |||
| f89394b8ef | |||
| edb52a82d8 | |||
| bc07e2adae | |||
| b627898919 | |||
| 8f98c4fbf6 | |||
| 47b6e6bd80 | |||
| 62a0f5fdcb | |||
| 178a9f3b51 | |||
| 48e6d88889 | |||
| c09602d172 | |||
| f3cf4cbaae | |||
| ba202d77ba | |||
| 031fa47f68 | |||
| d5a95315eb | |||
| 8e8b1ad03d | |||
| 2881269e16 | |||
| a3ec868ac2 | |||
| 457859feba | |||
| 498b7d984a | |||
| 5fa0fcc888 | |||
| 41b695b8cd | |||
| a184806538 | |||
| 6cf9906a60 | |||
| 5c5310dc87 | |||
| b67a2d8a59 | |||
| d374fe92e5 | |||
| 6506ede632 | |||
| 0b8042656f | |||
| 13e4d1d5ac | |||
| cad8f2b43a | |||
| e985681758 | |||
| 2a6894d834 | |||
| 6c221d65e3 | |||
| a4c2332eb1 | |||
| c262ead6ed | |||
| be0efcfcfc | |||
| 1ca1ef94ee | |||
| 9e9be2dc0d | |||
| cf4924764c | |||
| 19469aa52c | |||
| b14455b03a | |||
| 2dbce887df | |||
| a6f27ebed4 | |||
| c7dc4cc573 | |||
| 8dc1a0eade | |||
| ce94442104 | |||
| d65f7f204a | |||
| 490eb1bd16 | |||
| 3bc7553f66 | |||
| 16855b920e | |||
| fc7ae48c95 | |||
| def7ae7798 | |||
| 4bcb89946b | |||
| d8acc062c1 | |||
| 2486033754 | |||
| 82267d48ff | |||
| 34132f0e89 | |||
| ce30d19c15 | |||
| dbde2dc9e4 | |||
| 3408064d00 | |||
| d5063e5dc8 | |||
| 81a296d06a | |||
| c291e4d786 | |||
| 575f18aaf4 | |||
| 8575a45294 | |||
| a7d8145a32 | |||
| c710f03995 | |||
| 0e6f12af86 | |||
| 5b85ed181a | |||
| 48063afb3a | |||
| 0b2d23d443 | |||
| 28c4ed824e | |||
| 5bc601d9a8 | |||
| 08fee005a8 | |||
| 11064c4d34 | |||
| a20cd66ba4 | |||
| 3ecf109835 | |||
| 1d30225e2c | |||
| 0a71f171bc | |||
| f563b1db43 | |||
| 5591a9b966 | |||
| 798363eda7 | |||
| 10ff5f16a6 | |||
| 4b81c0dff3 | |||
| fedce0cec7 | |||
| 4953629ccd | |||
| 83febb3452 | |||
| 4bd611884a | |||
| ff57f59562 | |||
| 2ea437f353 | |||
| 4462f24753 | |||
| 2988de6377 | |||
| 030265eaec | |||
| 7bf4c8e76e | |||
| 574592cba5 | |||
| 647f1c98ed | |||
| fe05f9aeb2 | |||
| 33fa705c7f | |||
| d652af1097 | |||
| 452ddc0f0d | |||
| f37d9aeaef | |||
| 2355fd224d | |||
| 56ecc6ba96 | |||
| 37745cd899 | |||
| 2f4810e72f | |||
| 2dc979a202 | |||
| 0665c3ebf7 | |||
| 422d04cb2b | |||
| 30b3f47e31 | |||
| 8ea8c312ea | |||
| 6564afbe73 | |||
| 2bbc9a1cb2 | |||
| a9f9949b3e | |||
| 04baa07547 | |||
| feccc6e705 | |||
| 3308d1968f | |||
| d6680a50b9 | |||
| 369ca13c75 | |||
| 66743676ce | |||
| 93d42ca80e | |||
| e41584afb5 | |||
| 2165ab2620 | |||
| 0fe68de1a4 | |||
| 5b3268317c | |||
| d27fc24aa0 | |||
| 155a7c1067 | |||
| 5d2062a3cc | |||
| 917f11e679 | |||
| d4914f47c3 | |||
| cffadd8c71 | |||
| 4449c4e9e0 | |||
| 473e5714f7 | |||
| ea437351ed | |||
| 4893928310 | |||
| 825227474b | |||
| 3e2e111b17 | |||
| 519384fae8 | |||
| 95c2877ffc | |||
| 998c8a6e3d | |||
| 8d52e6d458 | |||
| 4c3e7690ba | |||
| cbd77d0aeb | |||
| d0526e31fa | |||
| c0f28d81b0 | |||
| a62810918f | |||
| a5552a1d70 | |||
| b81a082cd1 | |||
| 6c5c29ada2 | |||
| a7b8e52f8e | |||
| d1864b3608 | |||
| 1837b8ef2c | |||
| 223c8358ce | |||
| 3e7920820a | |||
| 0dfff052cb | |||
| f02d017ffa | |||
| 6dc59a9c3e | |||
| bccc2cb719 | |||
| ef5ac02b69 | |||
| de0aaff433 | |||
| f9f03d8976 | |||
| c7afe382a2 | |||
| f87e4c60e9 | |||
| 035b85eeba | |||
| a57554222f | |||
| 0b41984920 | |||
| eb4f708b91 | |||
| 5179df1928 | |||
| de7aee2465 | |||
| 622b8fa3f0 | |||
| e84161076b | |||
| f330de0b5c | |||
| 281e058ef2 | |||
| ee3fc11add | |||
| 2729d15742 | |||
| b8d8ab1aad | |||
| 81f31d95c8 | |||
| a28fa20018 | |||
| c4fb703269 | |||
| 7ea34ae0ef | |||
| 7376eef378 | |||
| 303ba1326b | |||
| ac64d9405b | |||
| 50b2245be5 | |||
| 20da2c8ea0 | |||
| ab068f6fda | |||
| bdf8a6966b | |||
| dbadac183d | |||
| 1852d077bf | |||
| b011daf67f | |||
| 254bb40f00 | |||
| edca6f28f0 | |||
| b7b84c7a0d | |||
| ceab161324 | |||
| 1a6a1828bf | |||
| 42f636032c | |||
| e0c85fb69c | |||
| 78e37e7d21 | |||
| 89ea238c32 | |||
| b59cb505f8 | |||
| fa1b3bdda4 | |||
| 0e73a0e94b | |||
| d839bf961b | |||
| d7af2714c6 | |||
| 239c178b68 | |||
| cfce34e300 | |||
| 0f57bdab75 | |||
| d335adf644 | |||
| b3bf223617 | |||
| 20e085723b | |||
| 706ee46b73 | |||
| 94b24aaa47 | |||
| 22963d7346 | |||
| d5fb653914 | |||
| 2f06366399 | |||
| 02a67ea59e | |||
| a0203bc8e0 | |||
| cb8dcfcebf | |||
| 663e41d74f | |||
| 63bd7cb478 | |||
| bce33bbb09 | |||
| 630ff4ff7d | |||
| 07d23b927e | |||
| 384a082e8d | |||
| 05e0d5f3d9 | |||
| 67f199678c | |||
| 83a7a69893 | |||
| bf59220b87 | |||
| 5a2c7eb50a | |||
| d115d169b7 | |||
| cdd158c571 | |||
| 4c0905c5f2 | |||
| 527fb87dad | |||
| 2c4230e2d3 | |||
| 99e96f64f7 | |||
| bf09c979ca | |||
| 51f37cbb81 | |||
| 1a1cab2d06 | |||
| d3873b0fc7 | |||
| 8e0afbeaa4 | |||
| 6a61e81b7a | |||
| ffa0d2f180 |
@@ -6,6 +6,7 @@
|
||||
*.rej
|
||||
*.swo
|
||||
*.swp
|
||||
*.zip
|
||||
*.vi
|
||||
*~
|
||||
*.sass-cache
|
||||
@@ -31,4 +32,6 @@ nbproject
|
||||
.hg
|
||||
.svn
|
||||
.CVS
|
||||
.idea
|
||||
.idea
|
||||
node_modules
|
||||
dist
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
language: node_js
|
||||
node_js:
|
||||
- 0.6
|
||||
@@ -0,0 +1,368 @@
|
||||
## 2.3.2 re-release (July 26, 2013)
|
||||
|
||||
Patch to update jQuery in Bower and bump Recess to 1.1.9.
|
||||
|
||||
## 2.3.2 (May 17, 2013)
|
||||
|
||||
Fix dropdown for firefox (middleclick) and mobile.
|
||||
|
||||
## 2.3.1 (February 28, 2013)
|
||||
|
||||
Patch release for @fat's n00bery
|
||||
|
||||
- fix missing event type in dropdown
|
||||
- fix delegated data-attrs for popover/tooltip
|
||||
- make carousel actually pause when you click cycle
|
||||
- fix jshint ref in makefile
|
||||
- fix trying to remove backdrop when no backdrop
|
||||
|
||||
## 2.3.0 (February 7, 2013)
|
||||
|
||||
Minor release to add carousel indicators, improve tooltips, improve dev setup, and fix hella bugs.
|
||||
|
||||
- **Repository changes:**
|
||||
- **Local instead of global dependencies** for our makefile and install process. Now getting started is way easier—just run `npm install`.
|
||||
- Upgraded to jQuery 1.9. No changes were needed, but we did upgrade the included jQuery file to the latest release.
|
||||
- Moved changelog to be within the repo instead of as a wiki page.
|
||||
- **New and improved features:**
|
||||
- **Added carousel indicators!** Add the HTML and it automagically works.
|
||||
- **Added `container` option to tooltips.** The default option is still `insertAfter`, but now you may specify where to insert tooltips (and by extension, popovers) with the optional container parameter.
|
||||
- Improved popovers now utilize `max-width` instead of `width`, have been widened from 240px to 280px, and will automatically hide the title if one has not been set via CSS `:empty` selector.
|
||||
- Improved tooltip alignment on edges with [#6713](https://github.com/twbs/bootstrap/pull/6713).
|
||||
- **Improved accessibility for links in all components.** After merging [#6441](https://github.com/twbs/bootstrap/pull/6441), link hover states now apply to the `:focus` state as well. This goes for basic `<a>` tags, as well as buttons, navs, dropdowns, and more.
|
||||
- Added print utility classes to show and hide content between `screen` and `print` via CSS.
|
||||
- Updated input groups to make them behave more like default form controls. Added `display: inline-block;`, increased `margin-bottom`, and added `vertical-align: middle;` to match `<input>` styles.
|
||||
- Added `.horizontal-three-colors()` gradient mixin (with example in the CSS tests file).
|
||||
- Added `.text-left`, `.text-center`, and `.text-right` utility classes for easy typographic alignment.
|
||||
- Added `@ms-viewport` so IE10 can use responsive CSS when in split-screen mode.
|
||||
- **Docs changes:**
|
||||
- Added [new justified navigation example](https://f.cloud.github.com/assets/98681/25869/5e2f812c-4afa-11e2-9293-501cd689232d.png).
|
||||
- Added sticky footer with fixed navbar example.
|
||||
|
||||
See more on the [2.3.0 pull request](https://github.com/twbs/bootstrap/pull/6346).
|
||||
|
||||
|
||||
## 2.2.2 (December 8, 2012)
|
||||
|
||||
Bugfix release addressing docs, CSS, and some JavaScript issues. Key changes include:
|
||||
|
||||
- **Docs:**
|
||||
- Assets (illustrations and examples) are now retina-ready.
|
||||
- Replaced [Placehold.it](http://placehold.it) with [Holder.js](http://imsky.github.com/holder/), a client-side and retina-ready placeholder image tool.
|
||||
- **Dropdowns:** Temporary fix added for dropdowns on mobile to prevent them from closing early.
|
||||
- **Popovers:**
|
||||
- No longer inherits `font-size: 0;` when placed in button groups.
|
||||
- Arrows refactored to work in IE8, and use less code.
|
||||
- Plugin no longer inserts popover content into a `<p>`, but rather directly into `.popover-content`.
|
||||
- **Labels and badges:** Now [automatically collapse](https://github.com/twbs/bootstrap/commit/ead5dbeba5cd7acfa560bfb353f5e7c4f4a19256) if they have no content.
|
||||
- **Tables:** Nesting support with `.table-bordered` and `.table-striped` greatly improved.
|
||||
- **Typeahead:**
|
||||
- Now [inserts dropdown menu after the input](https://github.com/twbs/bootstrap/commit/1747caf19d59cad7fdc90ae56a00e0e2849f95f4) instead of at the close of the document.
|
||||
- Hitting escape will place focus back on the `<input>`.
|
||||
- Print styles, from HTML5 Boilerplate, have been added.
|
||||
|
||||
See more on the [2.2.2 milestone](https://github.com/twbs/bootstrap/issues?milestone=17&state=closed).
|
||||
|
||||
|
||||
## 2.2.1 (October 30, 2012)
|
||||
|
||||
Hotfix release to address the carousel bug reports.
|
||||
|
||||
|
||||
## 2.2.0 (October 29, 2012)
|
||||
|
||||
### tl;dr
|
||||
|
||||
2.1.2 is now 2.2.0: four new example templates, added media component, new typographic scale, fixed that box-shadow mixin bug, fixed z-index issues, and [more](https://github.com/twbs/bootstrap/issues?milestone=15&page=1&state=closed).
|
||||
|
||||
### Highlights
|
||||
|
||||
- **Added four new example templates** to the docs, including a narrow marketing page, sign in form, sticky footer, and a fancy carousel (created for an upcoming .net magazine article).
|
||||
- **Added the media component**, to create larger common components like comments, Tweets, etc.
|
||||
- **New variable-driven typographic scale** based on `@baseFontSize` and `@baseLineHeight`.
|
||||
- Revamped mini, small, and large padding via new variables for inputs and buttons so everything is the same size.
|
||||
- Reverted 2.1.1's `.box-shadow();` mixin change that caused compiler errors.
|
||||
- Improved dropdown submenus to support dropups and left-aligned submenus.
|
||||
- Fixed z-index issues with tooltips and popovers in modals.
|
||||
- Hero unit now sets basic type styles for the entire component, rather than on `.hero-unit p { ... }`.
|
||||
- Updated JavaScript plugins and docs to jQuery 1.8.1.
|
||||
- Added Contributing.md file.
|
||||
- Added support for installing Bootstrap via [Bower](http://twitter.github.com/bower).
|
||||
- Miscellaneous variable improvements across the board.
|
||||
- Miscellaneous documentation typos fixed.
|
||||
|
||||
For the full list of issues included in this release, visit the [2.2.0 milestone on GitHub](https://github.com/twbs/bootstrap/issues?milestone=15&page=1&state=closed)
|
||||
|
||||
|
||||
|
||||
## 2.1.1 (September 4, 2012)
|
||||
|
||||
* New feature: alert text. We documented these new classes, like `.text-success`, at the bottom of the [Typography section](http://twbs.github.com/bootstrap/base-css.html#typography) along with the long undocumented `.muted`.
|
||||
* Fixed a lot of typos in the docs. Spelling is hard.
|
||||
* Made the `.box-shadow()` mixin more durable. It no longer requires escaping for multiple shadows, meaning you can easily use variables and functions in them once again.
|
||||
* Widened `.dl-horizontal dt` and `.horizontal-form .control-group` to better handle the increased font-size.
|
||||
* Dropdown submenus improved: now you only see the next level, not all levels, on hover of the submenu toggle.
|
||||
* Clarified jQuery and Bootstrap template requirements in Getting Started section.
|
||||
* `select` now utilizes `@inputBorder`.
|
||||
* `.lead` now scales up from `@baseFontSize` instead of being a fixed font-size and line-height.
|
||||
* Fixed the vertical three color gradient in latest Firefox.
|
||||
* Reordered some variables that caused errors in certain Less compilers.
|
||||
|
||||
View all closed issues on the [2.1.1 milestone](https://github.com/twbs/bootstrap/issues?milestone=14&state=closed).
|
||||
|
||||
|
||||
## 2.1.0 (August 20, 2012)
|
||||
|
||||
### Key changes
|
||||
|
||||
* Submenu support on dropdowns
|
||||
* Affix JavaScript plugin
|
||||
* Block level buttons
|
||||
* State classes on table rows
|
||||
* Improved disabled states on navs and dropdowns
|
||||
* The navbar component is now white by default, with an optional class to darken it
|
||||
* Improved prepended and appended inputs
|
||||
* New base font-size and line-height
|
||||
* Added variable for navbar collapse trigger point
|
||||
* Fluid grid offsets
|
||||
* Fluid grid system variables are no longer fixed percentages
|
||||
* Removed LESS docs page
|
||||
|
||||
For full set of changes, see the completed milestone: https://github.com/twbs/bootstrap/issues?milestone=7&page=1&state=closed
|
||||
|
||||
## 2.0.4 (June 1, 2012)
|
||||
|
||||
|
||||
### Docs
|
||||
|
||||
- Added `type="button"` to all dismiss buttons in alerts and modals to avoid a bug in which they prevent their parent's `form` from properly submitting.
|
||||
- Added simple documentation to Base CSS for `.lead`.
|
||||
- Added new CSS test to illustrate how the navbar, static and fixed, behaves.
|
||||
- Clarified grid sizing copy to include mention of responsive variations.
|
||||
- Reformatted the LESS docs page to prevent terrible table displays at smaller grid sizes.
|
||||
- Miscellaneous typos and tweaks.
|
||||
|
||||
### CSS
|
||||
|
||||
- Refactored forms.less to make our selectors more specific for fewer overrides and less code. Instead of a generic `input` selector and various resets, we target each type of input like `input[type="text"]`, `input[type="password"]`, etc.
|
||||
- Form field state (e.g., success or error) now applies to checkbox and radio labels.
|
||||
- Removed redundant CSS on `<p>` for `font-family`, `font-size`, and `line-height`.
|
||||
- Removed redundant `color` declaration from the `<label>` element.
|
||||
- Added variables for dropdown dividers border colors.
|
||||
- `legend` and `.form-actions` share the same `border-color`, `#e5e5e5`.
|
||||
- Fixed some responsive issues with input-prepend and -append, notably with the fluid grid.
|
||||
- Added special CSS to prevent `max-width: 100%;` on images from messing up Google Maps rendering.
|
||||
- Scope opened dropdowns to only immediate children to avoid unintended cascade.
|
||||
- Similarly, scope floated-right dropdowns to immediate children with `.pull-right > .dropdown-menu`.
|
||||
- Updated `.placeholder()` mixin to use `&` operator in Less for proper output when compiling.
|
||||
- Added `-ms-input-placeholder` to `.placeholder()` mixin.
|
||||
- Added CSS3 hyphens mixin.
|
||||
- Fixed a bug in IE7/8 where certain form controls would not show text if the parent had a filter opacity set.
|
||||
|
||||
|
||||
## 2.0.3 (April 24, 2012)
|
||||
|
||||
Running makefile now require JSHint and Recess.
|
||||
|
||||
### HTML and CSS
|
||||
|
||||
- Overhauled the responsive utility classes to simplify required CSS, add `!important` to all declarations, and use `display: inherit` in place of `display: block` to account for different types of elements.
|
||||
- Removed `>` from fluid grid column selectors, meaning every element with a `.span*` class within a `.row-fluid` will use percentage widths instead of fixed-pixels.
|
||||
- Fixed regression in responsive images support as of 2.0.1. We've re-added `max-width: 100%;` to images by default. We removed it in our last release since we had folks complaining about Google Maps integration and other projects, but we're taking a different stance now on these things and will require developers to make these tweaks on their end.
|
||||
- Added variable `@navbarBrandColor` for the brand element in navbars, which defaults to `@navbarLinkColor`.
|
||||
- Font-family mixins now use variables for their stacks.
|
||||
- Fixed an unescaped `filter` on the `.reset-filter()` mixin that was causing some errors depending on your compiler.
|
||||
- Fixed regression in `.form-actions` background, which was too dark, by adding a new variable `@formActionsBackground` and changing the color to `#f5f5f5` instead of `#eee`.
|
||||
- Fixed an issue on button group dropdowns where the background color was not using the button's darker color when the dropdown is open.
|
||||
- Generalized and simplified the open dropdown classes while adding smarter defaults. Instead of `.dropdown.open`, we now use just `.open`. On the defaults side, all dropdown menus now have rounded corners to start.
|
||||
- Improved active `.dropdown-toggle` styles (for dropdown buttons) by darkening the background and sharpening the inset shadow to match the active state of buttons.
|
||||
- Direction of animation on progress bars reversed.
|
||||
- Fixed input-prepend/append issue with uneditable inputs: `.uneditable-input` was being floated and a missing comma meant its `border-radius` for the append option wasn't being applied properly.
|
||||
- Removed `height: auto;` from `img` since it was overriding dimensions set via HTML attributes.
|
||||
- Fixed an issue of double borders on the top of tables with captions or colgroups.
|
||||
- Fixed issue with anchor buttons in the `.navbar-text`. Instead of a general styling on all anchors within an element with that class, we now have a new class to specifically apply appropriate link color.
|
||||
- Added support for `@navbarHeight` on the brand/project name and nav links for complete navbar height customization.
|
||||
- Fixed the black borders on buttons problem in IE7 by removing the border, increasing the line-height, and providing darker background colors.
|
||||
- Removed excess padding on `.search-query` inputs in IE7 since it doesn't have border-radius.
|
||||
- Updated alert messages in Components to use `button` elements as close icons instead of `a`. Both can be used, but an `a` will require `href="#"` for dismissal on iOS devices.
|
||||
- Fixed an issue with prepended/appended inputs in Firefox where `select` elements required two clicks to toggle the dropdown. Resolved by moving the `position: relative` to the `select` by default instead of on `:focus`.
|
||||
- Added a new mixin, `.backface-visibility`, to help refine CSS 3D tranforms. Examples and explanation of usage can be found on [CSS Tricks](http://css-tricks.com/almanac/properties/b/backface-visibility/).
|
||||
- Changed specificity of grid classes in responsive layouts under 767px to accurately target `input`, `select`, and `textarea` elements that use `.span*` classes.
|
||||
- Horizontal description lists, `.dl-horizontal`, now truncate terms that are too long to fit in their fixed-width column. In the < 767px responsive layout, they change to their default stacked layout.
|
||||
- Changed tabbable tabs to prevent issues in left and right aligned tabs. `.tab-content` would not growing to its parent's full width due to `display: table`. We removed that and the `width: 100%` and instead just set `overflow: auto` to clear the left and right aligned tabs.
|
||||
- Updated thumbnails to support fluid grid column sizing.
|
||||
- Added `>` to most of the button group selectors
|
||||
- Added new variable, `@inputBorderRadius`, to all form controls that previously made use of the static `3px` value everywhere.
|
||||
- Changed the way we do `border-radius` for tables. Instead of the regular mixin that zeros out all other corners, we specify one corner only so they can be combined for use on single column table headers.
|
||||
- Updated Glyphicons Halflings from 1.5 to 1.6, introducing 20 new icons.
|
||||
- Added an `offset` paramater to the `.makeColumn`.
|
||||
- Increased the specificity of all tabbable nav selectors to include `.nav-collapse` to appropriately scope the responsive navbar behavior.
|
||||
- Fixed uneditable inputs: text now cuts off and does not wrap, making it behave just like a default `input`.
|
||||
- Labels and badges are now `vertical-align: baseline;` so they line up with surrounding text.
|
||||
|
||||
### Javascript
|
||||
|
||||
- Add jshint support
|
||||
- Add travis-ci support w/ headless phantom integration
|
||||
- Replace UA sniffing in bootstrap-transitions.js
|
||||
- Add MSTransitionEnd event to transition plugin
|
||||
- Fix pause method in carousel (shouldn't restart when hovering over controls)
|
||||
- Fix crazy opera bug #1776
|
||||
- Don't open dropdown if target element is disabled
|
||||
- Always select last item in scrollspy if you've reached the bottom of the document or element
|
||||
- Typeahead should escape regexp special chars
|
||||
- If interval is false on carousel, do not auto-cycle
|
||||
- Add preventDefault support for all initial event types (show, close, hide, etc.)
|
||||
- Fix collapse bug in ie7+ for initial collapse in
|
||||
- Fix nested collapse bug
|
||||
- If transitioning collapse, don't start new transition
|
||||
- Try to autodetect when to use html/text method in tooltip/popovers to help prevent xss
|
||||
- Add bootstrap + bootstrap.min.js to gh-pages for @remy and jsbin support
|
||||
|
||||
### Documentation and repo
|
||||
|
||||
- Combined badges and labels into a single LESS file, labels-badges.less, to reduce repeated CSS.
|
||||
- Separated responsive features into multiple files. We now have a file for each grouping of media queries (tablets and down, tablets to desktops, and large desktops). Additionally, the visible/hidden utility classes and the responsive navbar are in their own files. The output is the same in the compiled CSS, but this should give folks a bit more flexibility.
|
||||
- Added a new CSS Tests page in the docs (not in the top nav) for better testing of edge cases and extending the use of standard components.
|
||||
- Removed the bootstrap.zip file from the repo and the make process for faster building and a lighter repo. From now on, the zip will only be in the documentation branch.
|
||||
- Fixed incorrect use of class instead of ID for tabs example and added documentation for multiple ways of toggling tabs.
|
||||
- Fixed required markup listed for the specialized navbar search field.
|
||||
- Removed all mention of `@siteWidth`, a variable no longer in use.
|
||||
- Removed mentions of unused `@buttonPrimaryBackground` variable, which is no longer in use.
|
||||
- Updated LESS docs page to include all the new variables we added in previous releases.
|
||||
- Removed broken "dropup" menus from tabs and pills examples (shouldn't have been there in the first place).
|
||||
- Replaced `.badge-error` with `.badge-important`. The error option is not a valid class and was a typo in the docs.
|
||||
- Fixed mention of how to add plain text to the navbar. Previously the docs stated you only needed a `p` tag, but the required HTML is any element with class `.navbar-text`.
|
||||
- Clarified the use of `.tabbable` for tabs. The wrapping class is only required for left and right tabs to clear their floats. Also added mention of `.fade` to fade in tabs.
|
||||
- Updated forms documentation:
|
||||
- Remove unnecessary duplicate help text in first example
|
||||
- Added mention of required `input` class, `.search-query`, for the search form variation
|
||||
- Removed incorrect mention of form fields being `display: block;` to start as fields are `inline-block` to start.
|
||||
- Added mention of `data-target` attribute for the dropdowns javascript plugin to show how to keep custom URLs intact on links with `.dropdown-toggle` class.
|
||||
- Updated the Kippt screenshot on the homepage to reflect their recent responsive redesign and upgrade to 2.0.2.
|
||||
|
||||
|
||||
## 2.0.2 (March 12, 2012)
|
||||
|
||||
Overview of docs changes, bugfixes, and new features.
|
||||
|
||||
### Documentation updates
|
||||
|
||||
- All docs pages now have distinct titles, such as <em>Scaffolding · Twitter Bootstrap</em>.
|
||||
- Updated the Apple touch icons (now black on black instead of the blue grid) and fixed the links to them in the docs.
|
||||
- Added new global styles docs section to the Scaffolding page.
|
||||
- Required use of HTML5 doctype
|
||||
- Overview of global typographic and links details
|
||||
- Mention of our embedded CSS reset via [Normalize.css](http://necolas.github.com/normalize.css/)
|
||||
- Added version number to the download button on the docs homepage.
|
||||
- Updated progress bars section to simplify how the classes stack and more clearly indicate the available optional classes and styles.
|
||||
- Added a new example, [SoundReady.fm](http://soundready.fm), to the homepage
|
||||
- Added various sizes to the docs for button groups
|
||||
|
||||
### Resolved bugs
|
||||
|
||||
- Removed all IE7 hacks and floats from `.input-prepend` and `.input-append`, however, this requires you to **ensure there is no whitespace in your code** between `.add-on` and the `input`.
|
||||
- In `.input-prepend` and `.input-append`, added ability to use add-ons on both sides when you chain the selectors.
|
||||
- Updated lingering `.btn-dark` reference to `.btn-inverse`.
|
||||
- Fixed issue with content being cut off in `.tab-content` for tabbable sections.
|
||||
- Updated `.navbar .container` to use `width: auto;` to start and then reset the fixed widths via the `#gridSystem` mixin (it's a little dirty, but required to avoid adding another class).
|
||||
- Modal footer buttons are now aligned by their parent via `text-align: right;` instead of `float: right` on the button level. This was changed to allow the use of `.pull-left` and `.pull-right` to align buttons easily. Double check your button order with this change!
|
||||
- Fixed problem where default striped progress bar was green instead of blue.
|
||||
- Fixed CSS selector used for `input` and `textarea` grid sizes to properly apply the CSS (was `input > .span*` and now is `input.span*`).
|
||||
|
||||
### New features
|
||||
|
||||
- Horizontal dividers support added to nav lists
|
||||
- Added basic version of badges
|
||||
- Added visible/hidden classes for devices
|
||||
- Added support for buttons in input-prepend/append component
|
||||
- Added .navbar-fixed-bottom support
|
||||
- Added .dropup support for dropdown menus to pop them upward instead of downward (this is automatically done for the newly added fixed bottom navbar).
|
||||
- Added mixin for [new image replacement technique](http://www.zeldman.com/2012/03/01/replacing-the-9999px-hack-new-image-replacement/)
|
||||
- Added pause on hover for the carousel
|
||||
- Added tons of new variables for typography, buttons, forms, dropdowns, navbar, and more for the LESS pros out there. These variables have also been reflected on the Customize page.
|
||||
- Added new horizontal description list variation
|
||||
- Added `.disabled` class support to the pager component (also added a mention of this to the docs)
|
||||
- Added `.well-large` and `.well-small` classes for extending the well component
|
||||
|
||||
For a full issue-by-issue rundown of the release, check out the now closed [2.0.2 milestone on GitHub](https://github.com/twbs/bootstrap/issues?sort=created&direction=desc&state=closed&page=1&milestone=9)
|
||||
|
||||
## v2.0.1 (February 17, 2012)
|
||||
|
||||
Overview of changes:
|
||||
|
||||
- Previously the docs called for use of `.control-label` in the examples, but the CSS didn't make clear use of it. This class is required for horizontal forms and has been reflected in the CSS.
|
||||
- We've tried our best to improve rendering of buttons and icons across all browsers. Some issues remain; Firefox throws an `!important`on `line-height` for inputs, so that's the big one.
|
||||
- We refined the label component style to move away from uppercase.
|
||||
- Added the black button option, `.btn-inverse`.
|
||||
- Added a mini button class, `.btn-mini`.
|
||||
- We had to re-add the protocol, `http:` to the HTML5 schim because IE7-8 wouldn't recognize it, dropping some HTML5 support for those browsers and introducing major performance issues.
|
||||
- Resolved some issues with responsive layouts where media queries would overlap at 768px and 980px.
|
||||
- Rearranged Scaffolding docs page to split fixed and fluid grid systems.
|
||||
- Tons of docs updates for typos and language changes.
|
||||
|
||||
For full list of changes, see the now closed [v2.0.1 milestone](https://github.com/twbs/bootstrap/issues?milestone=8&state=closed).
|
||||
|
||||
## v2.0.0 (January 28, 2012)
|
||||
Complete rewrite of the library. For full details, head to the upgrading doc at http://twbs.github.com/bootstrap/upgrading.html.
|
||||
|
||||
## v1.4.0
|
||||
### Key bug fixes and changes
|
||||
- **Updated tables** to make no border the default and add options for condensed and bordered versions
|
||||
- **Updated form states** to expand on error styles and provide warning and success variations
|
||||
- New javascript plugin for button states
|
||||
- Switched to strict mode for Javascript plugins
|
||||
- Added more data attribute controls to our plugins
|
||||
- Full list of 25+ issues fixed: https://github.com/twbs/bootstrap/issues?milestone=6&state=closed
|
||||
|
||||
## v1.3.0
|
||||
### New features
|
||||
- **Javascript plugins** for modals, alerts, dropdowns, scrollspy, tabs, tooltips, and popovers that work with jQuery and Ender
|
||||
- **Massively updated docs** for both the main page and for the new javascript plugins
|
||||
- **Inline labels** for marking inline content with key visual flags
|
||||
- Media thumbnails
|
||||
- Breadcrumbs
|
||||
|
||||
### Updated docs
|
||||
- Added complete javascript page with detailed documentation for how to use plugins
|
||||
- Three complete example pages of using Bootstrap, linked from main docs page with thumbnails
|
||||
- Added section for compiling Less, for guidelines on how to recompile Bootstrap with Less
|
||||
- Added section for customizing grid variables in Less to roll your own grid system
|
||||
- Added section for code for using pre and code tags
|
||||
- Added section for form field sizes that match grid column sizes
|
||||
|
||||
### Key bug fixes and changes
|
||||
- Updated table styles to be just a tad bit more refined
|
||||
- Added new form input sizes based on the Bootstrap grid system (meaning now you can do `input.span5` for a 280px-wide input)
|
||||
- Removed `:focus` states from `:active` links in Firefox
|
||||
- Fixed unqualified `.clearfix` in forms.less that added bottom margin to all containers
|
||||
- Updated `.container()` mixing to be `.fixed-container()` to prevent conflicts when compiling
|
||||
- Added focus states (either `box-shadow` or `outline` on `:focus`) to all buttons, links, and inputs
|
||||
- No longer require `h3` in topbar, but still support for backwards compatibility
|
||||
|
||||
## v1.2.0
|
||||
- **Dropdowns refactored** to be extensible (now work in ul.tabs)
|
||||
- **Added HTML5 form support** by generalizing the form selectors (e.g., input instead of input[type=text|password])
|
||||
- **Gradients back in IE**, but removed rounded corners in IE9 to prevent background bleed on buttons and alert messages
|
||||
- **Simplified the grid CSS** by removing the static .span1-16 classes in favor of CSS-style regex for column styles in the grid
|
||||
- **Added .one-third and .two-thirds columns** to the grid system
|
||||
- Fixed bug in disabled buttons where they received :active styles
|
||||
- Bug fixes
|
||||
|
||||
## v1.1.1
|
||||
- **Redesigned alerts** to be more readable
|
||||
- **Refactored buttons and alerts CSS** to be simpler
|
||||
- Updated grid system to be more specific and not require .column or columns
|
||||
- Improved on specificity of CSS selectors by removing unnecessary tag and parent selectors
|
||||
- Miscellaneous updates to docs
|
||||
- Bug fixes
|
||||
|
||||
## v1.1.0
|
||||
- **Added support for IE7 and IE8**
|
||||
- Added examples directory with first example usage of Bootstrap for a simple website
|
||||
- Syntax fixes for gradients and color-stops
|
||||
- Miscellaneous updates to docs
|
||||
- Bug fixes
|
||||
|
||||
## v1.0.0
|
||||
- **Initial release**
|
||||
@@ -0,0 +1,75 @@
|
||||
# Contributing to Bootstrap
|
||||
|
||||
Looking to contribute something to Bootstrap? **Here's how you can help.**
|
||||
|
||||
|
||||
|
||||
## Reporting issues
|
||||
|
||||
We only accept issues that are bug reports or feature requests. Bugs must be isolated and reproducible problems that we can fix within the Bootstrap core. Please read the following guidelines before opening any issue.
|
||||
|
||||
1. **Search for existing issues.** We get a lot of duplicate issues, and you'd help us out a lot by first checking if someone else has reported the same issue. Moreover, the issue may have already been resolved with a fix available.
|
||||
2. **Create an isolated and reproducible test case.** Be sure the problem exists in Bootstrap's code with a [reduced test case](http://css-tricks.com/reduced-test-cases/) that should be included in each bug report.
|
||||
3. **Include a live example.** Make use of jsFiddle or jsBin to share your isolated test cases.
|
||||
4. **Share as much information as possible.** Include operating system and version, browser and version, version of Bootstrap, customized or vanilla build, etc. where appropriate. Also include steps to reproduce the bug.
|
||||
|
||||
|
||||
|
||||
## Key branches
|
||||
|
||||
- `master` is the latest, deployed version.
|
||||
- `gh-pages` is the hosted docs (not to be used for pull requests).
|
||||
- `*-wip` is the official work in progress branch for the next release.
|
||||
|
||||
|
||||
|
||||
## Notes on the repo
|
||||
|
||||
As of v2.0.0, Bootstrap's documentation is powered by Mustache templates and built via `make` before each commit and release. This was done to enable internationalization (translation) in a future release by uploading our strings to the [Twitter Translation Center](http://translate.twttr.com/). Any edits to the docs should be first done in the Mustache files and then recompiled into the HTML.
|
||||
|
||||
|
||||
|
||||
## Pull requests
|
||||
|
||||
- Try to submit pull requests against the latest `*-wip` branch for easier merging
|
||||
- Any changes to the docs must be made to the Mustache templates, not just the compiled HTML pages
|
||||
- CSS changes must be done in .less files first, never just the compiled files
|
||||
- If modifying the .less files, always recompile and commit the compiled files bootstrap.css and bootstrap.min.css
|
||||
- Try not to pollute your pull request with unintended changes--keep them simple and small
|
||||
- Try to share which browsers your code has been tested in before submitting a pull request
|
||||
|
||||
|
||||
|
||||
## Coding standards: HTML
|
||||
|
||||
- Two spaces for indentation, never tabs
|
||||
- Double quotes only, never single quotes
|
||||
- Always use proper indentation
|
||||
- Use tags and elements appropriate for an HTML5 doctype (e.g., self-closing tags)
|
||||
|
||||
|
||||
|
||||
## Coding standards: CSS
|
||||
|
||||
- Adhere to the [Recess CSS property order](http://markdotto.com/2011/11/29/css-property-order/)
|
||||
- Multiple-line approach (one property and value per line)
|
||||
- Always a space after a property's colon (.e.g, `display: block;` and not `display:block;`)
|
||||
- End all lines with a semi-colon
|
||||
- For multiple, comma-separated selectors, place each selector on it's own line
|
||||
- Attribute selectors, like `input[type="text"]` should always wrap the attribute's value in double quotes, for consistency and safety (see this [blog post on unquoted attribute values](http://mathiasbynens.be/notes/unquoted-attribute-values) that can lead to XSS attacks).
|
||||
|
||||
|
||||
|
||||
## Coding standards: JS
|
||||
|
||||
- No semicolons
|
||||
- Comma first
|
||||
- 2 spaces (no tabs)
|
||||
- strict mode
|
||||
- "Attractive"
|
||||
|
||||
|
||||
|
||||
## License
|
||||
|
||||
By contributing your code, you agree to license your contribution under the terms of the APLv2: https://github.com/twbs/bootstrap/blob/master/LICENSE
|
||||
@@ -1,13 +1,176 @@
|
||||
Copyright 2012 Twitter, Inc.
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
1. Definitions.
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
@@ -2,49 +2,114 @@ BOOTSTRAP = ./docs/assets/css/bootstrap.css
|
||||
BOOTSTRAP_LESS = ./less/bootstrap.less
|
||||
BOOTSTRAP_RESPONSIVE = ./docs/assets/css/bootstrap-responsive.css
|
||||
BOOTSTRAP_RESPONSIVE_LESS = ./less/responsive.less
|
||||
LESS_COMPRESSOR ?= `which lessc`
|
||||
WATCHR ?= `which watchr`
|
||||
DATE=$(shell date +%I:%M%p)
|
||||
CHECK=\033[32m✔\033[39m
|
||||
HR=\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#
|
||||
|
||||
|
||||
#
|
||||
# BUILD DOCS
|
||||
#
|
||||
|
||||
docs: bootstrap
|
||||
rm docs/assets/bootstrap.zip
|
||||
zip -r docs/assets/bootstrap.zip bootstrap
|
||||
build:
|
||||
@echo "\n${HR}"
|
||||
@echo "Building Bootstrap..."
|
||||
@echo "${HR}\n"
|
||||
@./node_modules/.bin/jshint js/*.js --config js/.jshintrc
|
||||
@./node_modules/.bin/jshint js/tests/unit/*.js --config js/.jshintrc
|
||||
@echo "Running JSHint on javascript... ${CHECK} Done"
|
||||
@./node_modules/.bin/recess --compile ${BOOTSTRAP_LESS} > ${BOOTSTRAP}
|
||||
@./node_modules/.bin/recess --compile ${BOOTSTRAP_RESPONSIVE_LESS} > ${BOOTSTRAP_RESPONSIVE}
|
||||
@echo "Compiling LESS with Recess... ${CHECK} Done"
|
||||
@node docs/build
|
||||
@cp img/* docs/assets/img/
|
||||
@cp js/*.js docs/assets/js/
|
||||
@cp js/tests/vendor/jquery.js docs/assets/js/
|
||||
@echo "Compiling documentation... ${CHECK} Done"
|
||||
@cat js/bootstrap-transition.js js/bootstrap-alert.js js/bootstrap-button.js js/bootstrap-carousel.js js/bootstrap-collapse.js js/bootstrap-dropdown.js js/bootstrap-modal.js js/bootstrap-tooltip.js js/bootstrap-popover.js js/bootstrap-scrollspy.js js/bootstrap-tab.js js/bootstrap-typeahead.js js/bootstrap-affix.js > docs/assets/js/bootstrap.js
|
||||
@./node_modules/.bin/uglifyjs -nc docs/assets/js/bootstrap.js > docs/assets/js/bootstrap.min.tmp.js
|
||||
@echo "/**\n* Bootstrap.js v2.3.2 by @fat & @mdo\n* Copyright 2013 Twitter, Inc.\n* http://www.apache.org/licenses/LICENSE-2.0.txt\n*/" > docs/assets/js/copyright.js
|
||||
@cat docs/assets/js/copyright.js docs/assets/js/bootstrap.min.tmp.js > docs/assets/js/bootstrap.min.js
|
||||
@rm docs/assets/js/copyright.js docs/assets/js/bootstrap.min.tmp.js
|
||||
@echo "Compiling and minifying javascript... ${CHECK} Done"
|
||||
@echo "\n${HR}"
|
||||
@echo "Bootstrap successfully built at ${DATE}."
|
||||
@echo "${HR}\n"
|
||||
@echo "Thanks for using Bootstrap,"
|
||||
@echo "<3 @mdo and @fat\n"
|
||||
|
||||
#
|
||||
# RUN JSHINT & QUNIT TESTS IN PHANTOMJS
|
||||
#
|
||||
|
||||
test:
|
||||
./node_modules/.bin/jshint js/*.js --config js/.jshintrc
|
||||
./node_modules/.bin/jshint js/tests/unit/*.js --config js/.jshintrc
|
||||
node js/tests/server.js &
|
||||
phantomjs js/tests/phantom.js "http://localhost:3000/js/tests"
|
||||
kill -9 `cat js/tests/pid.txt`
|
||||
rm js/tests/pid.txt
|
||||
|
||||
#
|
||||
# CLEANS THE ROOT DIRECTORY OF PRIOR BUILDS
|
||||
#
|
||||
|
||||
clean:
|
||||
rm -r bootstrap
|
||||
lessc ${BOOTSTRAP_LESS} > ${BOOTSTRAP}
|
||||
lessc ${BOOTSTRAP_RESPONSIVE_LESS} > ${BOOTSTRAP_RESPONSIVE}
|
||||
node docs/build
|
||||
cp img/* docs/assets/img/
|
||||
cp js/*.js docs/assets/js/
|
||||
cp js/tests/vendor/jquery.js docs/assets/js/
|
||||
|
||||
#
|
||||
# BUILD SIMPLE BOOTSTRAP DIRECTORY
|
||||
# lessc & uglifyjs are required
|
||||
# recess & uglifyjs are required
|
||||
#
|
||||
|
||||
bootstrap:
|
||||
mkdir -p bootstrap/img
|
||||
mkdir -p bootstrap/css
|
||||
bootstrap: bootstrap-img bootstrap-css bootstrap-js
|
||||
|
||||
|
||||
#
|
||||
# JS COMPILE
|
||||
#
|
||||
bootstrap-js: bootstrap/js/*.js
|
||||
|
||||
bootstrap/js/*.js: js/*.js
|
||||
mkdir -p bootstrap/js
|
||||
cp img/* bootstrap/img/
|
||||
lessc ${BOOTSTRAP_LESS} > bootstrap/css/bootstrap.css
|
||||
lessc --compress ${BOOTSTRAP_LESS} > bootstrap/css/bootstrap.min.css
|
||||
lessc ${BOOTSTRAP_RESPONSIVE_LESS} > bootstrap/css/bootstrap-responsive.css
|
||||
lessc --compress ${BOOTSTRAP_RESPONSIVE_LESS} > bootstrap/css/bootstrap-responsive.min.css
|
||||
cat js/bootstrap-transition.js js/bootstrap-alert.js js/bootstrap-button.js js/bootstrap-carousel.js js/bootstrap-collapse.js js/bootstrap-dropdown.js js/bootstrap-modal.js js/bootstrap-tooltip.js js/bootstrap-popover.js js/bootstrap-scrollspy.js js/bootstrap-tab.js js/bootstrap-typeahead.js > bootstrap/js/bootstrap.js
|
||||
uglifyjs -nc bootstrap/js/bootstrap.js > bootstrap/js/bootstrap.min.tmp.js
|
||||
echo "/**\n* Bootstrap.js by @fat & @mdo\n* Copyright 2012 Twitter, Inc.\n* http://www.apache.org/licenses/LICENSE-2.0.txt\n*/" > bootstrap/js/copyright.js
|
||||
cat js/bootstrap-transition.js js/bootstrap-alert.js js/bootstrap-button.js js/bootstrap-carousel.js js/bootstrap-collapse.js js/bootstrap-dropdown.js js/bootstrap-modal.js js/bootstrap-tooltip.js js/bootstrap-popover.js js/bootstrap-scrollspy.js js/bootstrap-tab.js js/bootstrap-typeahead.js js/bootstrap-affix.js > bootstrap/js/bootstrap.js
|
||||
./node_modules/.bin/uglifyjs -nc bootstrap/js/bootstrap.js > bootstrap/js/bootstrap.min.tmp.js
|
||||
echo "/*!\n* Bootstrap.js by @fat & @mdo\n* Copyright 2013 Twitter, Inc.\n* http://www.apache.org/licenses/LICENSE-2.0.txt\n*/" > bootstrap/js/copyright.js
|
||||
cat bootstrap/js/copyright.js bootstrap/js/bootstrap.min.tmp.js > bootstrap/js/bootstrap.min.js
|
||||
rm bootstrap/js/copyright.js bootstrap/js/bootstrap.min.tmp.js
|
||||
|
||||
#
|
||||
# CSS COMPLILE
|
||||
#
|
||||
|
||||
bootstrap-css: bootstrap/css/*.css
|
||||
|
||||
bootstrap/css/*.css: less/*.less
|
||||
mkdir -p bootstrap/css
|
||||
./node_modules/.bin/recess --compile ${BOOTSTRAP_LESS} > bootstrap/css/bootstrap.css
|
||||
./node_modules/.bin/recess --compress ${BOOTSTRAP_LESS} > bootstrap/css/bootstrap.min.css
|
||||
./node_modules/.bin/recess --compile ${BOOTSTRAP_RESPONSIVE_LESS} > bootstrap/css/bootstrap-responsive.css
|
||||
./node_modules/.bin/recess --compress ${BOOTSTRAP_RESPONSIVE_LESS} > bootstrap/css/bootstrap-responsive.min.css
|
||||
|
||||
#
|
||||
# IMAGES
|
||||
#
|
||||
|
||||
bootstrap-img: bootstrap/img/*
|
||||
|
||||
bootstrap/img/*: img/*
|
||||
mkdir -p bootstrap/img
|
||||
cp img/* bootstrap/img/
|
||||
|
||||
|
||||
#
|
||||
# MAKE FOR GH-PAGES 4 FAT & MDO ONLY (O_O )
|
||||
#
|
||||
|
||||
gh-pages: docs
|
||||
gh-pages: bootstrap docs
|
||||
rm -f docs/assets/bootstrap.zip
|
||||
zip -r docs/assets/bootstrap.zip bootstrap
|
||||
rm -r bootstrap
|
||||
rm -f ../bootstrap-gh-pages/assets/bootstrap.zip
|
||||
node docs/build production
|
||||
cp -r docs/* ../bootstrap-gh-pages
|
||||
@@ -58,4 +123,4 @@ watch:
|
||||
watchr -e "watch('less/.*\.less') { system 'make' }"
|
||||
|
||||
|
||||
.PHONY: docs watch gh-pages
|
||||
.PHONY: docs watch gh-pages bootstrap-img bootstrap-css bootstrap-js
|
||||
@@ -1,104 +1,102 @@
|
||||
[Twitter Bootstrap](http://twitter.github.com/bootstrap)
|
||||
=================
|
||||
# [Bootstrap v2.3.2](http://twbs.github.com/bootstrap) [](http://travis-ci.org/twbs/bootstrap)
|
||||
|
||||
Bootstrap provides simple and flexible HTML, CSS, and Javascript for popular user interface components and interactions. In other words, it's a front-end toolkit for faster, more beautiful web development. It's created and maintained by [Mark Otto](http://twitter.com/mdo) and [Jacob Thornton](http://twitter.com/fat) at Twitter.
|
||||
Bootstrap is a sleek, intuitive, and powerful front-end framework for faster and easier web development, created and maintained by [Mark Otto](http://twitter.com/mdo) and [Jacob Thornton](http://twitter.com/fat).
|
||||
|
||||
To get started, checkout http://twitter.github.com/bootstrap!
|
||||
To get started, checkout [http://getbootstrap.com](http://getbootstrap.com)!
|
||||
|
||||
|
||||
|
||||
Quick start
|
||||
-----------
|
||||
## Quick start
|
||||
|
||||
Clone the repo, `git clone git@github.com:twitter/bootstrap.git`, or [download the latest release](https://github.com/twitter/bootstrap/zipball/master).
|
||||
Three quick start options are available:
|
||||
|
||||
* [Download the latest release](https://github.com/twbs/bootstrap/zipball/master).
|
||||
* Clone the repo: `git clone git://github.com/twbs/bootstrap.git`.
|
||||
* Install with Twitter's [Bower](http://bower.io): `bower install bootstrap`.
|
||||
|
||||
|
||||
|
||||
Versioning
|
||||
----------
|
||||
## Versioning
|
||||
|
||||
For transparency and insight into our release cycle, and for striving to maintain backward compatibility, Bootstrap will be maintained under the Semantic Versioning guidelines as much as possible.
|
||||
|
||||
Releases will be numbered with the follow format:
|
||||
Releases will be numbered with the following format:
|
||||
|
||||
`<major>.<minor>.<patch>`
|
||||
|
||||
And constructed with the following guidelines:
|
||||
|
||||
* Breaking backward compatibility bumps the major
|
||||
* New additions without breaking backward compatibility bumps the minor
|
||||
* Bug fixes and misc changes bump the patch
|
||||
* Breaking backward compatibility bumps the major (and resets the minor and patch)
|
||||
* New additions without breaking backward compatibility bumps the minor (and resets the patch)
|
||||
* Bug fixes and misc changes bumps the patch
|
||||
|
||||
For more information on SemVer, please visit http://semver.org/.
|
||||
For more information on SemVer, please visit [http://semver.org/](http://semver.org/).
|
||||
|
||||
|
||||
|
||||
Bug tracker
|
||||
-----------
|
||||
## Bug tracker
|
||||
|
||||
Have a bug? Please create an issue here on GitHub!
|
||||
|
||||
https://github.com/twitter/bootstrap/issues
|
||||
Have a bug or a feature request? [Please open a new issue](https://github.com/twbs/bootstrap/issues). Before opening any issue, please search for existing issues and read the [Issue Guidelines](https://github.com/necolas/issue-guidelines), written by [Nicolas Gallagher](https://github.com/necolas/).
|
||||
|
||||
|
||||
|
||||
Twitter account
|
||||
---------------
|
||||
## Community
|
||||
|
||||
Keep up to date on announcements and more by following Bootstrap on Twitter, [@TwBootstrap](http://twitter.com/TwBootstrap).
|
||||
Keep track of development and community news.
|
||||
|
||||
* Follow [@twbootstrap on Twitter](http://twitter.com/twbootstrap).
|
||||
* Read and subscribe to the [The Official Twitter Bootstrap Blog](http://blog.getbootstrap.com).
|
||||
* Have a question that's not a feature request or bug report? [Ask on the mailing list.](http://groups.google.com/group/twitter-bootstrap)
|
||||
* Chat with fellow Bootstrappers in IRC. On the `irc.freenode.net` server, in the `##twitter-bootstrap` channel.
|
||||
|
||||
|
||||
|
||||
Mailing list
|
||||
------------
|
||||
## Compiling CSS and JavaScript
|
||||
|
||||
Have a question? Ask on our mailing list!
|
||||
Bootstrap includes a [makefile](Makefile) with convenient methods for working with the framework. Before getting started, be sure to install [the necessary local dependencies](package.json):
|
||||
|
||||
twitter-bootstrap@googlegroups.com
|
||||
```
|
||||
$ npm install
|
||||
```
|
||||
|
||||
http://groups.google.com/group/twitter-bootstrap
|
||||
When completed, you'll be able to run the various make commands provided:
|
||||
|
||||
#### build - `make`
|
||||
Runs the recess compiler to rebuild the `/less` files and compiles the docs. Requires recess and uglify-js.
|
||||
|
||||
#### test - `make test`
|
||||
Runs jshint and qunit tests headlessly in [phantomjs](http://code.google.com/p/phantomjs/) (used for ci). Depends on having phantomjs installed.
|
||||
|
||||
IRC
|
||||
---
|
||||
|
||||
Server: irc.freenode.net
|
||||
|
||||
Channel: ##twitter-bootstrap (the double ## is not a typo)
|
||||
|
||||
|
||||
|
||||
Developers
|
||||
----------
|
||||
|
||||
We have included a makefile with convenience methods for working with the Bootstrap library.
|
||||
|
||||
+ **build** - `make`
|
||||
Runs the LESS compiler to rebuild the `/less` files and compiles the docs pages. Requires lessc and uglify-js. <a href="http://twitter.github.com/bootstrap/less.html#compiling">Read more in our docs »</a>
|
||||
|
||||
+ **watch** - `make watch`
|
||||
#### watch - `make watch`
|
||||
This is a convenience method for watching just Less files and automatically building them whenever you save. Requires the Watchr gem.
|
||||
|
||||
Should you encounter problems with installing dependencies or running the makefile commands, be sure to first uninstall any previous versions (global and local) you may have installed, and then rerun `npm install`.
|
||||
|
||||
|
||||
Authors
|
||||
-------
|
||||
|
||||
## Contributing
|
||||
|
||||
Please submit all pull requests against *-wip branches. If your pull request contains JavaScript patches or features, you must include relevant unit tests. All HTML and CSS should conform to the [Code Guide](http://github.com/mdo/code-guide), maintained by [Mark Otto](http://github.com/mdo).
|
||||
|
||||
Thanks!
|
||||
|
||||
|
||||
|
||||
## Authors
|
||||
|
||||
**Mark Otto**
|
||||
|
||||
+ http://twitter.com/mdo
|
||||
+ http://github.com/markdotto
|
||||
+ [http://twitter.com/mdo](http://twitter.com/mdo)
|
||||
+ [http://github.com/mdo](http://github.com/mdo)
|
||||
|
||||
**Jacob Thornton**
|
||||
|
||||
+ http://twitter.com/fat
|
||||
+ http://github.com/fat
|
||||
+ [http://twitter.com/fat](http://twitter.com/fat)
|
||||
+ [http://github.com/fat](http://github.com/fat)
|
||||
|
||||
|
||||
|
||||
Copyright and license
|
||||
---------------------
|
||||
## Copyright and license
|
||||
|
||||
Copyright 2012 Twitter, Inc.
|
||||
|
||||
@@ -106,7 +104,7 @@ Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this work except in compliance with the License.
|
||||
You may obtain a copy of the License in the LICENSE file, or at:
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
[http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"name": "bootstrap",
|
||||
"version": "2.3.2",
|
||||
"main": ["./docs/assets/js/bootstrap.js", "./docs/assets/css/bootstrap.css"],
|
||||
"dependencies": {
|
||||
"jquery": ">=1.8.0 <2.1.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "twbs/bootstrap"
|
||||
, "description": "Sleek, intuitive, and powerful front-end framework for faster and easier web development."
|
||||
, "keywords": ["bootstrap", "css"]
|
||||
, "homepage": "http://twbs.github.com/bootstrap/"
|
||||
, "author": "Twitter Inc."
|
||||
, "license": "Apache-2.0"
|
||||
|
||||
}
|
||||
|
Antes Largura: | Altura: | Tamanho: 5.9 KiB Depois Largura: | Altura: | Tamanho: 11 KiB |
|
Depois Largura: | Altura: | Tamanho: 16 KiB |
|
Antes Largura: | Altura: | Tamanho: 2.2 KiB Depois Largura: | Altura: | Tamanho: 3.9 KiB |
|
Antes Largura: | Altura: | Tamanho: 3.1 KiB Depois Largura: | Altura: | Tamanho: 5.5 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.1 KiB Depois Largura: | Altura: | Tamanho: 1.1 KiB |
|
Depois Largura: | Altura: | Tamanho: 2.6 KiB |
|
Antes Largura: | Altura: | Tamanho: 3.0 KiB |
|
Depois Largura: | Altura: | Tamanho: 30 KiB |
|
Antes Largura: | Altura: | Tamanho: 128 KiB Depois Largura: | Altura: | Tamanho: 122 KiB |
|
Antes Largura: | Altura: | Tamanho: 82 KiB Depois Largura: | Altura: | Tamanho: 79 KiB |
|
Antes Largura: | Altura: | Tamanho: 50 KiB Depois Largura: | Altura: | Tamanho: 48 KiB |
|
Antes Largura: | Altura: | Tamanho: 19 KiB |
|
Depois Largura: | Altura: | Tamanho: 11 KiB |
|
Depois Largura: | Altura: | Tamanho: 6.3 KiB |
|
Depois Largura: | Altura: | Tamanho: 10 KiB |
|
Depois Largura: | Altura: | Tamanho: 30 KiB |
|
Depois Largura: | Altura: | Tamanho: 61 KiB |
|
Depois Largura: | Altura: | Tamanho: 133 KiB |
|
Depois Largura: | Altura: | Tamanho: 71 KiB |
|
Depois Largura: | Altura: | Tamanho: 75 KiB |
|
Antes Largura: | Altura: | Tamanho: 49 KiB Depois Largura: | Altura: | Tamanho: 47 KiB |
|
Antes Largura: | Altura: | Tamanho: 53 KiB Depois Largura: | Altura: | Tamanho: 49 KiB |
|
Depois Largura: | Altura: | Tamanho: 332 KiB |
|
Antes Largura: | Altura: | Tamanho: 25 KiB |
|
Depois Largura: | Altura: | Tamanho: 204 KiB |
|
Antes Largura: | Altura: | Tamanho: 22 KiB |
|
Depois Largura: | Altura: | Tamanho: 133 KiB |
|
Depois Largura: | Altura: | Tamanho: 115 KiB |
|
Depois Largura: | Altura: | Tamanho: 131 KiB |
|
Depois Largura: | Altura: | Tamanho: 22 KiB |
|
Antes Largura: | Altura: | Tamanho: 7.0 KiB |
|
Depois Largura: | Altura: | Tamanho: 35 KiB |
|
Depois Largura: | Altura: | Tamanho: 30 KiB |
|
Depois Largura: | Altura: | Tamanho: 54 KiB |
|
Depois Largura: | Altura: | Tamanho: 172 KiB |
|
Depois Largura: | Altura: | Tamanho: 205 KiB |
|
Depois Largura: | Altura: | Tamanho: 81 KiB |
|
Depois Largura: | Altura: | Tamanho: 134 KiB |
|
Depois Largura: | Altura: | Tamanho: 134 KiB |
|
Antes Largura: | Altura: | Tamanho: 398 B |
|
Antes Largura: | Altura: | Tamanho: 4.3 KiB Depois Largura: | Altura: | Tamanho: 8.6 KiB |
|
Antes Largura: | Altura: | Tamanho: 4.3 KiB Depois Largura: | Altura: | Tamanho: 12 KiB |
|
Antes Largura: | Altura: | Tamanho: 316 B |
|
Antes Largura: | Altura: | Tamanho: 305 B |
|
Antes Largura: | Altura: | Tamanho: 213 B |
|
Antes Largura: | Altura: | Tamanho: 345 B |
|
Antes Largura: | Altura: | Tamanho: 117 B |
|
Antes Largura: | Altura: | Tamanho: 172 B |
|
Antes Largura: | Altura: | Tamanho: 301 B |
|
Antes Largura: | Altura: | Tamanho: 292 B |
|
Antes Largura: | Altura: | Tamanho: 405 B |
|
Depois Largura: | Altura: | Tamanho: 84 B |
|
Antes Largura: | Altura: | Tamanho: 370 B |
|
Antes Largura: | Altura: | Tamanho: 312 B |
|
Antes Largura: | Altura: | Tamanho: 452 B |
|
Antes Largura: | Altura: | Tamanho: 264 B |
|
Antes Largura: | Altura: | Tamanho: 13 KiB Depois Largura: | Altura: | Tamanho: 12 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.2 KiB |
|
Antes Largura: | Altura: | Tamanho: 1.1 KiB Depois Largura: | Altura: | Tamanho: 1008 B |
@@ -17,7 +17,7 @@ To target a specific plugin, just include the plugins name as a namespace along
|
||||
|
||||
---
|
||||
|
||||
### PROGRAMATIC API
|
||||
### PROGRAMMATIC API
|
||||
|
||||
We also believe you should be able to use all plugins provided by Bootstrap purely through the JS API.
|
||||
|
||||
|
||||
@@ -6,11 +6,23 @@
|
||||
|
||||
$(function(){
|
||||
|
||||
var $window = $(window)
|
||||
|
||||
// Disable certain links in docs
|
||||
$('section [href^=#]').click(function (e) {
|
||||
e.preventDefault()
|
||||
})
|
||||
|
||||
// side bar
|
||||
setTimeout(function () {
|
||||
$('.bs-docs-sidenav').affix({
|
||||
offset: {
|
||||
top: function () { return $window.width() <= 980 ? 290 : 210 }
|
||||
, bottom: 270
|
||||
}
|
||||
})
|
||||
}, 100)
|
||||
|
||||
// make code pretty
|
||||
window.prettyPrint && prettyPrint()
|
||||
|
||||
@@ -21,59 +33,24 @@
|
||||
$(this).parents('.add-on')[method]('active')
|
||||
})
|
||||
|
||||
// position static twipsies for components page
|
||||
if ($(".twipsies a").length) {
|
||||
$(window).on('load resize', function () {
|
||||
$(".twipsies a").each(function () {
|
||||
$(this)
|
||||
.tooltip({
|
||||
placement: $(this).attr('title')
|
||||
, trigger: 'manual'
|
||||
})
|
||||
.tooltip('show')
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
// add tipsies to grid for scaffolding
|
||||
if ($('#grid-system').length) {
|
||||
$('#grid-system').tooltip({
|
||||
selector: '.show-grid > div'
|
||||
if ($('#gridSystem').length) {
|
||||
$('#gridSystem').tooltip({
|
||||
selector: '.show-grid > [class*="span"]'
|
||||
, title: function () { return $(this).width() + 'px' }
|
||||
})
|
||||
}
|
||||
|
||||
// fix sub nav on scroll
|
||||
var $win = $(window)
|
||||
, $nav = $('.subnav')
|
||||
, navTop = $('.subnav').length && $('.subnav').offset().top - 40
|
||||
, isFixed = 0
|
||||
|
||||
processScroll()
|
||||
|
||||
$win.on('scroll', processScroll)
|
||||
|
||||
function processScroll() {
|
||||
var i, scrollTop = $win.scrollTop()
|
||||
if (scrollTop >= navTop && !isFixed) {
|
||||
isFixed = 1
|
||||
$nav.addClass('subnav-fixed')
|
||||
} else if (scrollTop <= navTop && isFixed) {
|
||||
isFixed = 0
|
||||
$nav.removeClass('subnav-fixed')
|
||||
}
|
||||
}
|
||||
|
||||
// tooltip demo
|
||||
$('.tooltip-demo.well').tooltip({
|
||||
selector: "a[rel=tooltip]"
|
||||
$('.tooltip-demo').tooltip({
|
||||
selector: "a[data-toggle=tooltip]"
|
||||
})
|
||||
|
||||
$('.tooltip-test').tooltip()
|
||||
$('.popover-test').popover()
|
||||
|
||||
// popover demo
|
||||
$("a[rel=popover]")
|
||||
$("a[data-toggle=popover]")
|
||||
.popover()
|
||||
.click(function(e) {
|
||||
e.preventDefault()
|
||||
@@ -114,7 +91,7 @@
|
||||
})
|
||||
|
||||
// request built javascript
|
||||
$('.download-btn').on('click', function () {
|
||||
$('.download-btn .btn').on('click', function () {
|
||||
|
||||
var css = $("#components.download input:checked")
|
||||
.map(function () { return this.value })
|
||||
@@ -132,7 +109,7 @@
|
||||
|
||||
$.ajax({
|
||||
type: 'POST'
|
||||
, url: 'http://bootstrap.herokuapp.com'
|
||||
, url: /\?dev/.test(window.location) ? 'http://localhost:3000' : 'http://bootstrap.herokuapp.com'
|
||||
, dataType: 'jsonpi'
|
||||
, params: {
|
||||
js: js
|
||||
@@ -142,7 +119,6 @@
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
// Modified from the original jsonpi https://github.com/benvinegar/jquery-jsonpi
|
||||
@@ -177,4 +153,4 @@ $.ajaxTransport('jsonpi', function(opts, originalOptions, jqXHR) {
|
||||
}
|
||||
})
|
||||
|
||||
}(window.jQuery)
|
||||
}(window.jQuery)
|
||||
|
||||
@@ -0,0 +1,117 @@
|
||||
/* ==========================================================
|
||||
* bootstrap-affix.js v2.3.2
|
||||
* http://twbs.github.com/bootstrap/javascript.html#affix
|
||||
* ==========================================================
|
||||
* Copyright 2013 Twitter, Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
* ========================================================== */
|
||||
|
||||
|
||||
!function ($) {
|
||||
|
||||
"use strict"; // jshint ;_;
|
||||
|
||||
|
||||
/* AFFIX CLASS DEFINITION
|
||||
* ====================== */
|
||||
|
||||
var Affix = function (element, options) {
|
||||
this.options = $.extend({}, $.fn.affix.defaults, options)
|
||||
this.$window = $(window)
|
||||
.on('scroll.affix.data-api', $.proxy(this.checkPosition, this))
|
||||
.on('click.affix.data-api', $.proxy(function () { setTimeout($.proxy(this.checkPosition, this), 1) }, this))
|
||||
this.$element = $(element)
|
||||
this.checkPosition()
|
||||
}
|
||||
|
||||
Affix.prototype.checkPosition = function () {
|
||||
if (!this.$element.is(':visible')) return
|
||||
|
||||
var scrollHeight = $(document).height()
|
||||
, scrollTop = this.$window.scrollTop()
|
||||
, position = this.$element.offset()
|
||||
, offset = this.options.offset
|
||||
, offsetBottom = offset.bottom
|
||||
, offsetTop = offset.top
|
||||
, reset = 'affix affix-top affix-bottom'
|
||||
, affix
|
||||
|
||||
if (typeof offset != 'object') offsetBottom = offsetTop = offset
|
||||
if (typeof offsetTop == 'function') offsetTop = offset.top()
|
||||
if (typeof offsetBottom == 'function') offsetBottom = offset.bottom()
|
||||
|
||||
affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ?
|
||||
false : offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ?
|
||||
'bottom' : offsetTop != null && scrollTop <= offsetTop ?
|
||||
'top' : false
|
||||
|
||||
if (this.affixed === affix) return
|
||||
|
||||
this.affixed = affix
|
||||
this.unpin = affix == 'bottom' ? position.top - scrollTop : null
|
||||
|
||||
this.$element.removeClass(reset).addClass('affix' + (affix ? '-' + affix : ''))
|
||||
}
|
||||
|
||||
|
||||
/* AFFIX PLUGIN DEFINITION
|
||||
* ======================= */
|
||||
|
||||
var old = $.fn.affix
|
||||
|
||||
$.fn.affix = function (option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
, data = $this.data('affix')
|
||||
, options = typeof option == 'object' && option
|
||||
if (!data) $this.data('affix', (data = new Affix(this, options)))
|
||||
if (typeof option == 'string') data[option]()
|
||||
})
|
||||
}
|
||||
|
||||
$.fn.affix.Constructor = Affix
|
||||
|
||||
$.fn.affix.defaults = {
|
||||
offset: 0
|
||||
}
|
||||
|
||||
|
||||
/* AFFIX NO CONFLICT
|
||||
* ================= */
|
||||
|
||||
$.fn.affix.noConflict = function () {
|
||||
$.fn.affix = old
|
||||
return this
|
||||
}
|
||||
|
||||
|
||||
/* AFFIX DATA-API
|
||||
* ============== */
|
||||
|
||||
$(window).on('load', function () {
|
||||
$('[data-spy="affix"]').each(function () {
|
||||
var $spy = $(this)
|
||||
, data = $spy.data()
|
||||
|
||||
data.offset = data.offset || {}
|
||||
|
||||
data.offsetBottom && (data.offset.bottom = data.offsetBottom)
|
||||
data.offsetTop && (data.offset.top = data.offsetTop)
|
||||
|
||||
$spy.affix(data)
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
}(window.jQuery);
|
||||
@@ -1,8 +1,8 @@
|
||||
/* ==========================================================
|
||||
* bootstrap-alert.js v2.0.2
|
||||
* http://twitter.github.com/bootstrap/javascript.html#alerts
|
||||
* bootstrap-alert.js v2.3.2
|
||||
* http://twbs.github.com/bootstrap/javascript.html#alerts
|
||||
* ==========================================================
|
||||
* Copyright 2012 Twitter, Inc.
|
||||
* Copyright 2013 Twitter, Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -18,61 +18,59 @@
|
||||
* ========================================================== */
|
||||
|
||||
|
||||
!function( $ ){
|
||||
!function ($) {
|
||||
|
||||
"use strict"; // jshint ;_;
|
||||
|
||||
"use strict"
|
||||
|
||||
/* ALERT CLASS DEFINITION
|
||||
* ====================== */
|
||||
|
||||
var dismiss = '[data-dismiss="alert"]'
|
||||
, Alert = function ( el ) {
|
||||
, Alert = function (el) {
|
||||
$(el).on('click', dismiss, this.close)
|
||||
}
|
||||
|
||||
Alert.prototype = {
|
||||
Alert.prototype.close = function (e) {
|
||||
var $this = $(this)
|
||||
, selector = $this.attr('data-target')
|
||||
, $parent
|
||||
|
||||
constructor: Alert
|
||||
|
||||
, close: function ( e ) {
|
||||
var $this = $(this)
|
||||
, selector = $this.attr('data-target')
|
||||
, $parent
|
||||
|
||||
if (!selector) {
|
||||
selector = $this.attr('href')
|
||||
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
||||
}
|
||||
|
||||
$parent = $(selector)
|
||||
$parent.trigger('close')
|
||||
|
||||
e && e.preventDefault()
|
||||
|
||||
$parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent())
|
||||
|
||||
$parent
|
||||
.trigger('close')
|
||||
.removeClass('in')
|
||||
|
||||
function removeElement() {
|
||||
$parent
|
||||
.trigger('closed')
|
||||
.remove()
|
||||
}
|
||||
|
||||
$.support.transition && $parent.hasClass('fade') ?
|
||||
$parent.on($.support.transition.end, removeElement) :
|
||||
removeElement()
|
||||
if (!selector) {
|
||||
selector = $this.attr('href')
|
||||
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
||||
}
|
||||
|
||||
$parent = $(selector)
|
||||
|
||||
e && e.preventDefault()
|
||||
|
||||
$parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent())
|
||||
|
||||
$parent.trigger(e = $.Event('close'))
|
||||
|
||||
if (e.isDefaultPrevented()) return
|
||||
|
||||
$parent.removeClass('in')
|
||||
|
||||
function removeElement() {
|
||||
$parent
|
||||
.trigger('closed')
|
||||
.remove()
|
||||
}
|
||||
|
||||
$.support.transition && $parent.hasClass('fade') ?
|
||||
$parent.on($.support.transition.end, removeElement) :
|
||||
removeElement()
|
||||
}
|
||||
|
||||
|
||||
/* ALERT PLUGIN DEFINITION
|
||||
* ======================= */
|
||||
|
||||
$.fn.alert = function ( option ) {
|
||||
var old = $.fn.alert
|
||||
|
||||
$.fn.alert = function (option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
, data = $this.data('alert')
|
||||
@@ -84,11 +82,18 @@
|
||||
$.fn.alert.Constructor = Alert
|
||||
|
||||
|
||||
/* ALERT NO CONFLICT
|
||||
* ================= */
|
||||
|
||||
$.fn.alert.noConflict = function () {
|
||||
$.fn.alert = old
|
||||
return this
|
||||
}
|
||||
|
||||
|
||||
/* ALERT DATA-API
|
||||
* ============== */
|
||||
|
||||
$(function () {
|
||||
$('body').on('click.alert.data-api', dismiss, Alert.prototype.close)
|
||||
})
|
||||
$(document).on('click.alert.data-api', dismiss, Alert.prototype.close)
|
||||
|
||||
}( window.jQuery );
|
||||
}(window.jQuery);
|
||||
@@ -1,8 +1,8 @@
|
||||
/* ============================================================
|
||||
* bootstrap-button.js v2.0.2
|
||||
* http://twitter.github.com/bootstrap/javascript.html#buttons
|
||||
* bootstrap-button.js v2.3.2
|
||||
* http://twbs.github.com/bootstrap/javascript.html#buttons
|
||||
* ============================================================
|
||||
* Copyright 2012 Twitter, Inc.
|
||||
* Copyright 2013 Twitter, Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -17,58 +17,56 @@
|
||||
* limitations under the License.
|
||||
* ============================================================ */
|
||||
|
||||
!function( $ ){
|
||||
|
||||
"use strict"
|
||||
!function ($) {
|
||||
|
||||
"use strict"; // jshint ;_;
|
||||
|
||||
|
||||
/* BUTTON PUBLIC CLASS DEFINITION
|
||||
* ============================== */
|
||||
|
||||
var Button = function ( element, options ) {
|
||||
var Button = function (element, options) {
|
||||
this.$element = $(element)
|
||||
this.options = $.extend({}, $.fn.button.defaults, options)
|
||||
}
|
||||
|
||||
Button.prototype = {
|
||||
Button.prototype.setState = function (state) {
|
||||
var d = 'disabled'
|
||||
, $el = this.$element
|
||||
, data = $el.data()
|
||||
, val = $el.is('input') ? 'val' : 'html'
|
||||
|
||||
constructor: Button
|
||||
state = state + 'Text'
|
||||
data.resetText || $el.data('resetText', $el[val]())
|
||||
|
||||
, setState: function ( state ) {
|
||||
var d = 'disabled'
|
||||
, $el = this.$element
|
||||
, data = $el.data()
|
||||
, val = $el.is('input') ? 'val' : 'html'
|
||||
$el[val](data[state] || this.options[state])
|
||||
|
||||
state = state + 'Text'
|
||||
data.resetText || $el.data('resetText', $el[val]())
|
||||
// push to event loop to allow forms to submit
|
||||
setTimeout(function () {
|
||||
state == 'loadingText' ?
|
||||
$el.addClass(d).attr(d, d) :
|
||||
$el.removeClass(d).removeAttr(d)
|
||||
}, 0)
|
||||
}
|
||||
|
||||
$el[val](data[state] || this.options[state])
|
||||
Button.prototype.toggle = function () {
|
||||
var $parent = this.$element.closest('[data-toggle="buttons-radio"]')
|
||||
|
||||
// push to event loop to allow forms to submit
|
||||
setTimeout(function () {
|
||||
state == 'loadingText' ?
|
||||
$el.addClass(d).attr(d, d) :
|
||||
$el.removeClass(d).removeAttr(d)
|
||||
}, 0)
|
||||
}
|
||||
|
||||
, toggle: function () {
|
||||
var $parent = this.$element.parent('[data-toggle="buttons-radio"]')
|
||||
|
||||
$parent && $parent
|
||||
.find('.active')
|
||||
.removeClass('active')
|
||||
|
||||
this.$element.toggleClass('active')
|
||||
}
|
||||
$parent && $parent
|
||||
.find('.active')
|
||||
.removeClass('active')
|
||||
|
||||
this.$element.toggleClass('active')
|
||||
}
|
||||
|
||||
|
||||
/* BUTTON PLUGIN DEFINITION
|
||||
* ======================== */
|
||||
|
||||
$.fn.button = function ( option ) {
|
||||
var old = $.fn.button
|
||||
|
||||
$.fn.button = function (option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
, data = $this.data('button')
|
||||
@@ -86,15 +84,22 @@
|
||||
$.fn.button.Constructor = Button
|
||||
|
||||
|
||||
/* BUTTON NO CONFLICT
|
||||
* ================== */
|
||||
|
||||
$.fn.button.noConflict = function () {
|
||||
$.fn.button = old
|
||||
return this
|
||||
}
|
||||
|
||||
|
||||
/* BUTTON DATA-API
|
||||
* =============== */
|
||||
|
||||
$(function () {
|
||||
$('body').on('click.button.data-api', '[data-toggle^=button]', function ( e ) {
|
||||
var $btn = $(e.target)
|
||||
if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
|
||||
$btn.button('toggle')
|
||||
})
|
||||
$(document).on('click.button.data-api', '[data-toggle^=button]', function (e) {
|
||||
var $btn = $(e.target)
|
||||
if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
|
||||
$btn.button('toggle')
|
||||
})
|
||||
|
||||
}( window.jQuery );
|
||||
}(window.jQuery);
|
||||
@@ -1,8 +1,8 @@
|
||||
/* ==========================================================
|
||||
* bootstrap-carousel.js v2.0.2
|
||||
* http://twitter.github.com/bootstrap/javascript.html#carousel
|
||||
* bootstrap-carousel.js v2.3.2
|
||||
* http://twbs.github.com/bootstrap/javascript.html#carousel
|
||||
* ==========================================================
|
||||
* Copyright 2012 Twitter, Inc.
|
||||
* Copyright 2013 Twitter, Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -18,17 +18,18 @@
|
||||
* ========================================================== */
|
||||
|
||||
|
||||
!function( $ ){
|
||||
!function ($) {
|
||||
|
||||
"use strict"; // jshint ;_;
|
||||
|
||||
"use strict"
|
||||
|
||||
/* CAROUSEL CLASS DEFINITION
|
||||
* ========================= */
|
||||
|
||||
var Carousel = function (element, options) {
|
||||
this.$element = $(element)
|
||||
this.options = $.extend({}, $.fn.carousel.defaults, options)
|
||||
this.options.slide && this.slide(this.options.slide)
|
||||
this.$indicators = this.$element.find('.carousel-indicators')
|
||||
this.options = options
|
||||
this.options.pause == 'hover' && this.$element
|
||||
.on('mouseenter', $.proxy(this.pause, this))
|
||||
.on('mouseleave', $.proxy(this.cycle, this))
|
||||
@@ -36,18 +37,26 @@
|
||||
|
||||
Carousel.prototype = {
|
||||
|
||||
cycle: function () {
|
||||
this.interval = setInterval($.proxy(this.next, this), this.options.interval)
|
||||
cycle: function (e) {
|
||||
if (!e) this.paused = false
|
||||
if (this.interval) clearInterval(this.interval);
|
||||
this.options.interval
|
||||
&& !this.paused
|
||||
&& (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
|
||||
return this
|
||||
}
|
||||
|
||||
, getActiveIndex: function () {
|
||||
this.$active = this.$element.find('.item.active')
|
||||
this.$items = this.$active.parent().children()
|
||||
return this.$items.index(this.$active)
|
||||
}
|
||||
|
||||
, to: function (pos) {
|
||||
var $active = this.$element.find('.active')
|
||||
, children = $active.parent().children()
|
||||
, activePos = children.index($active)
|
||||
var activeIndex = this.getActiveIndex()
|
||||
, that = this
|
||||
|
||||
if (pos > (children.length - 1) || pos < 0) return
|
||||
if (pos > (this.$items.length - 1) || pos < 0) return
|
||||
|
||||
if (this.sliding) {
|
||||
return this.$element.one('slid', function () {
|
||||
@@ -55,14 +64,19 @@
|
||||
})
|
||||
}
|
||||
|
||||
if (activePos == pos) {
|
||||
if (activeIndex == pos) {
|
||||
return this.pause().cycle()
|
||||
}
|
||||
|
||||
return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos]))
|
||||
return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
|
||||
}
|
||||
|
||||
, pause: function () {
|
||||
, pause: function (e) {
|
||||
if (!e) this.paused = true
|
||||
if (this.$element.find('.next, .prev').length && $.support.transition.end) {
|
||||
this.$element.trigger($.support.transition.end)
|
||||
this.cycle(true)
|
||||
}
|
||||
clearInterval(this.interval)
|
||||
this.interval = null
|
||||
return this
|
||||
@@ -79,12 +93,13 @@
|
||||
}
|
||||
|
||||
, slide: function (type, next) {
|
||||
var $active = this.$element.find('.active')
|
||||
var $active = this.$element.find('.item.active')
|
||||
, $next = next || $active[type]()
|
||||
, isCycling = this.interval
|
||||
, direction = type == 'next' ? 'left' : 'right'
|
||||
, fallback = type == 'next' ? 'first' : 'last'
|
||||
, that = this
|
||||
, e
|
||||
|
||||
this.sliding = true
|
||||
|
||||
@@ -92,26 +107,41 @@
|
||||
|
||||
$next = $next.length ? $next : this.$element.find('.item')[fallback]()
|
||||
|
||||
e = $.Event('slide', {
|
||||
relatedTarget: $next[0]
|
||||
, direction: direction
|
||||
})
|
||||
|
||||
if ($next.hasClass('active')) return
|
||||
|
||||
if (!$.support.transition && this.$element.hasClass('slide')) {
|
||||
this.$element.trigger('slide')
|
||||
$active.removeClass('active')
|
||||
$next.addClass('active')
|
||||
this.sliding = false
|
||||
this.$element.trigger('slid')
|
||||
} else {
|
||||
if (this.$indicators.length) {
|
||||
this.$indicators.find('.active').removeClass('active')
|
||||
this.$element.one('slid', function () {
|
||||
var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
|
||||
$nextIndicator && $nextIndicator.addClass('active')
|
||||
})
|
||||
}
|
||||
|
||||
if ($.support.transition && this.$element.hasClass('slide')) {
|
||||
this.$element.trigger(e)
|
||||
if (e.isDefaultPrevented()) return
|
||||
$next.addClass(type)
|
||||
$next[0].offsetWidth // force reflow
|
||||
$active.addClass(direction)
|
||||
$next.addClass(direction)
|
||||
this.$element.trigger('slide')
|
||||
this.$element.one($.support.transition.end, function () {
|
||||
$next.removeClass([type, direction].join(' ')).addClass('active')
|
||||
$active.removeClass(['active', direction].join(' '))
|
||||
that.sliding = false
|
||||
setTimeout(function () { that.$element.trigger('slid') }, 0)
|
||||
})
|
||||
} else {
|
||||
this.$element.trigger(e)
|
||||
if (e.isDefaultPrevented()) return
|
||||
$active.removeClass('active')
|
||||
$next.addClass('active')
|
||||
this.sliding = false
|
||||
this.$element.trigger('slid')
|
||||
}
|
||||
|
||||
isCycling && this.cycle()
|
||||
@@ -125,15 +155,18 @@
|
||||
/* CAROUSEL PLUGIN DEFINITION
|
||||
* ========================== */
|
||||
|
||||
$.fn.carousel = function ( option ) {
|
||||
var old = $.fn.carousel
|
||||
|
||||
$.fn.carousel = function (option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
, data = $this.data('carousel')
|
||||
, options = typeof option == 'object' && option
|
||||
, options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option)
|
||||
, action = typeof option == 'string' ? option : options.slide
|
||||
if (!data) $this.data('carousel', (data = new Carousel(this, options)))
|
||||
if (typeof option == 'number') data.to(option)
|
||||
else if (typeof option == 'string' || (option = options.slide)) data[option]()
|
||||
else data.cycle()
|
||||
else if (action) data[action]()
|
||||
else if (options.interval) data.pause().cycle()
|
||||
})
|
||||
}
|
||||
|
||||
@@ -145,17 +178,30 @@
|
||||
$.fn.carousel.Constructor = Carousel
|
||||
|
||||
|
||||
/* CAROUSEL NO CONFLICT
|
||||
* ==================== */
|
||||
|
||||
$.fn.carousel.noConflict = function () {
|
||||
$.fn.carousel = old
|
||||
return this
|
||||
}
|
||||
|
||||
/* CAROUSEL DATA-API
|
||||
* ================= */
|
||||
|
||||
$(function () {
|
||||
$('body').on('click.carousel.data-api', '[data-slide]', function ( e ) {
|
||||
var $this = $(this), href
|
||||
, $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
|
||||
, options = !$target.data('modal') && $.extend({}, $target.data(), $this.data())
|
||||
$target.carousel(options)
|
||||
e.preventDefault()
|
||||
})
|
||||
$(document).on('click.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
|
||||
var $this = $(this), href
|
||||
, $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
|
||||
, options = $.extend({}, $target.data(), $this.data())
|
||||
, slideIndex
|
||||
|
||||
$target.carousel(options)
|
||||
|
||||
if (slideIndex = $this.attr('data-slide-to')) {
|
||||
$target.data('carousel').pause().to(slideIndex).cycle()
|
||||
}
|
||||
|
||||
e.preventDefault()
|
||||
})
|
||||
|
||||
}( window.jQuery );
|
||||
}(window.jQuery);
|
||||
@@ -1,8 +1,8 @@
|
||||
/* =============================================================
|
||||
* bootstrap-collapse.js v2.0.2
|
||||
* http://twitter.github.com/bootstrap/javascript.html#collapse
|
||||
* bootstrap-collapse.js v2.3.2
|
||||
* http://twbs.github.com/bootstrap/javascript.html#collapse
|
||||
* =============================================================
|
||||
* Copyright 2012 Twitter, Inc.
|
||||
* Copyright 2013 Twitter, Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -17,16 +17,21 @@
|
||||
* limitations under the License.
|
||||
* ============================================================ */
|
||||
|
||||
!function( $ ){
|
||||
|
||||
"use strict"
|
||||
!function ($) {
|
||||
|
||||
var Collapse = function ( element, options ) {
|
||||
this.$element = $(element)
|
||||
"use strict"; // jshint ;_;
|
||||
|
||||
|
||||
/* COLLAPSE PUBLIC CLASS DEFINITION
|
||||
* ================================ */
|
||||
|
||||
var Collapse = function (element, options) {
|
||||
this.$element = $(element)
|
||||
this.options = $.extend({}, $.fn.collapse.defaults, options)
|
||||
|
||||
if (this.options["parent"]) {
|
||||
this.$parent = $(this.options["parent"])
|
||||
if (this.options.parent) {
|
||||
this.$parent = $(this.options.parent)
|
||||
}
|
||||
|
||||
this.options.toggle && this.toggle()
|
||||
@@ -42,31 +47,39 @@
|
||||
}
|
||||
|
||||
, show: function () {
|
||||
var dimension = this.dimension()
|
||||
, scroll = $.camelCase(['scroll', dimension].join('-'))
|
||||
, actives = this.$parent && this.$parent.find('.in')
|
||||
var dimension
|
||||
, scroll
|
||||
, actives
|
||||
, hasData
|
||||
|
||||
if (this.transitioning || this.$element.hasClass('in')) return
|
||||
|
||||
dimension = this.dimension()
|
||||
scroll = $.camelCase(['scroll', dimension].join('-'))
|
||||
actives = this.$parent && this.$parent.find('> .accordion-group > .in')
|
||||
|
||||
if (actives && actives.length) {
|
||||
hasData = actives.data('collapse')
|
||||
if (hasData && hasData.transitioning) return
|
||||
actives.collapse('hide')
|
||||
hasData || actives.data('collapse', null)
|
||||
}
|
||||
|
||||
this.$element[dimension](0)
|
||||
this.transition('addClass', 'show', 'shown')
|
||||
this.$element[dimension](this.$element[0][scroll])
|
||||
|
||||
this.transition('addClass', $.Event('show'), 'shown')
|
||||
$.support.transition && this.$element[dimension](this.$element[0][scroll])
|
||||
}
|
||||
|
||||
, hide: function () {
|
||||
var dimension = this.dimension()
|
||||
var dimension
|
||||
if (this.transitioning || !this.$element.hasClass('in')) return
|
||||
dimension = this.dimension()
|
||||
this.reset(this.$element[dimension]())
|
||||
this.transition('removeClass', 'hide', 'hidden')
|
||||
this.transition('removeClass', $.Event('hide'), 'hidden')
|
||||
this.$element[dimension](0)
|
||||
}
|
||||
|
||||
, reset: function ( size ) {
|
||||
, reset: function (size) {
|
||||
var dimension = this.dimension()
|
||||
|
||||
this.$element
|
||||
@@ -74,41 +87,49 @@
|
||||
[dimension](size || 'auto')
|
||||
[0].offsetWidth
|
||||
|
||||
this.$element[size ? 'addClass' : 'removeClass']('collapse')
|
||||
this.$element[size !== null ? 'addClass' : 'removeClass']('collapse')
|
||||
|
||||
return this
|
||||
}
|
||||
|
||||
, transition: function ( method, startEvent, completeEvent ) {
|
||||
, transition: function (method, startEvent, completeEvent) {
|
||||
var that = this
|
||||
, complete = function () {
|
||||
if (startEvent == 'show') that.reset()
|
||||
if (startEvent.type == 'show') that.reset()
|
||||
that.transitioning = 0
|
||||
that.$element.trigger(completeEvent)
|
||||
}
|
||||
|
||||
this.$element
|
||||
.trigger(startEvent)
|
||||
[method]('in')
|
||||
this.$element.trigger(startEvent)
|
||||
|
||||
if (startEvent.isDefaultPrevented()) return
|
||||
|
||||
this.transitioning = 1
|
||||
|
||||
this.$element[method]('in')
|
||||
|
||||
$.support.transition && this.$element.hasClass('collapse') ?
|
||||
this.$element.one($.support.transition.end, complete) :
|
||||
complete()
|
||||
}
|
||||
}
|
||||
|
||||
, toggle: function () {
|
||||
this[this.$element.hasClass('in') ? 'hide' : 'show']()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* COLLAPSIBLE PLUGIN DEFINITION
|
||||
* ============================== */
|
||||
|
||||
$.fn.collapse = function ( option ) {
|
||||
/* COLLAPSE PLUGIN DEFINITION
|
||||
* ========================== */
|
||||
|
||||
var old = $.fn.collapse
|
||||
|
||||
$.fn.collapse = function (option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
, data = $this.data('collapse')
|
||||
, options = typeof option == 'object' && option
|
||||
, options = $.extend({}, $.fn.collapse.defaults, $this.data(), typeof option == 'object' && option)
|
||||
if (!data) $this.data('collapse', (data = new Collapse(this, options)))
|
||||
if (typeof option == 'string') data[option]()
|
||||
})
|
||||
@@ -121,18 +142,26 @@
|
||||
$.fn.collapse.Constructor = Collapse
|
||||
|
||||
|
||||
/* COLLAPSIBLE DATA-API
|
||||
/* COLLAPSE NO CONFLICT
|
||||
* ==================== */
|
||||
|
||||
$(function () {
|
||||
$('body').on('click.collapse.data-api', '[data-toggle=collapse]', function ( e ) {
|
||||
var $this = $(this), href
|
||||
, target = $this.attr('data-target')
|
||||
|| e.preventDefault()
|
||||
|| (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
|
||||
, option = $(target).data('collapse') ? 'toggle' : $this.data()
|
||||
$(target).collapse(option)
|
||||
})
|
||||
$.fn.collapse.noConflict = function () {
|
||||
$.fn.collapse = old
|
||||
return this
|
||||
}
|
||||
|
||||
|
||||
/* COLLAPSE DATA-API
|
||||
* ================= */
|
||||
|
||||
$(document).on('click.collapse.data-api', '[data-toggle=collapse]', function (e) {
|
||||
var $this = $(this), href
|
||||
, target = $this.attr('data-target')
|
||||
|| e.preventDefault()
|
||||
|| (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
|
||||
, option = $(target).data('collapse') ? 'toggle' : $this.data()
|
||||
$this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
|
||||
$(target).collapse(option)
|
||||
})
|
||||
|
||||
}( window.jQuery );
|
||||
}(window.jQuery);
|
||||
@@ -1,8 +1,8 @@
|
||||
/* ============================================================
|
||||
* bootstrap-dropdown.js v2.0.2
|
||||
* http://twitter.github.com/bootstrap/javascript.html#dropdowns
|
||||
* bootstrap-dropdown.js v2.3.2
|
||||
* http://twbs.github.com/bootstrap/javascript.html#dropdowns
|
||||
* ============================================================
|
||||
* Copyright 2012 Twitter, Inc.
|
||||
* Copyright 2013 Twitter, Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -18,15 +18,16 @@
|
||||
* ============================================================ */
|
||||
|
||||
|
||||
!function( $ ){
|
||||
!function ($) {
|
||||
|
||||
"use strict"; // jshint ;_;
|
||||
|
||||
"use strict"
|
||||
|
||||
/* DROPDOWN CLASS DEFINITION
|
||||
* ========================= */
|
||||
|
||||
var toggle = '[data-toggle="dropdown"]'
|
||||
, Dropdown = function ( element ) {
|
||||
var toggle = '[data-toggle=dropdown]'
|
||||
, Dropdown = function (element) {
|
||||
var $el = $(element).on('click.dropdown.data-api', this.toggle)
|
||||
$('html').on('click.dropdown.data-api', function () {
|
||||
$el.parent().removeClass('open')
|
||||
@@ -37,39 +38,105 @@
|
||||
|
||||
constructor: Dropdown
|
||||
|
||||
, toggle: function ( e ) {
|
||||
, toggle: function (e) {
|
||||
var $this = $(this)
|
||||
, selector = $this.attr('data-target')
|
||||
, $parent
|
||||
, isActive
|
||||
|
||||
if (!selector) {
|
||||
selector = $this.attr('href')
|
||||
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
||||
}
|
||||
if ($this.is('.disabled, :disabled')) return
|
||||
|
||||
$parent = $(selector)
|
||||
$parent.length || ($parent = $this.parent())
|
||||
$parent = getParent($this)
|
||||
|
||||
isActive = $parent.hasClass('open')
|
||||
|
||||
clearMenus()
|
||||
!isActive && $parent.toggleClass('open')
|
||||
|
||||
if (!isActive) {
|
||||
if ('ontouchstart' in document.documentElement) {
|
||||
// if mobile we we use a backdrop because click events don't delegate
|
||||
$('<div class="dropdown-backdrop"/>').insertBefore($(this)).on('click', clearMenus)
|
||||
}
|
||||
$parent.toggleClass('open')
|
||||
}
|
||||
|
||||
$this.focus()
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
, keydown: function (e) {
|
||||
var $this
|
||||
, $items
|
||||
, $active
|
||||
, $parent
|
||||
, isActive
|
||||
, index
|
||||
|
||||
if (!/(38|40|27)/.test(e.keyCode)) return
|
||||
|
||||
$this = $(this)
|
||||
|
||||
e.preventDefault()
|
||||
e.stopPropagation()
|
||||
|
||||
if ($this.is('.disabled, :disabled')) return
|
||||
|
||||
$parent = getParent($this)
|
||||
|
||||
isActive = $parent.hasClass('open')
|
||||
|
||||
if (!isActive || (isActive && e.keyCode == 27)) {
|
||||
if (e.which == 27) $parent.find(toggle).focus()
|
||||
return $this.click()
|
||||
}
|
||||
|
||||
$items = $('[role=menu] li:not(.divider):visible a', $parent)
|
||||
|
||||
if (!$items.length) return
|
||||
|
||||
index = $items.index($items.filter(':focus'))
|
||||
|
||||
if (e.keyCode == 38 && index > 0) index-- // up
|
||||
if (e.keyCode == 40 && index < $items.length - 1) index++ // down
|
||||
if (!~index) index = 0
|
||||
|
||||
$items
|
||||
.eq(index)
|
||||
.focus()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function clearMenus() {
|
||||
$(toggle).parent().removeClass('open')
|
||||
$('.dropdown-backdrop').remove()
|
||||
$(toggle).each(function () {
|
||||
getParent($(this)).removeClass('open')
|
||||
})
|
||||
}
|
||||
|
||||
function getParent($this) {
|
||||
var selector = $this.attr('data-target')
|
||||
, $parent
|
||||
|
||||
if (!selector) {
|
||||
selector = $this.attr('href')
|
||||
selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
||||
}
|
||||
|
||||
$parent = selector && $(selector)
|
||||
|
||||
if (!$parent || !$parent.length) $parent = $this.parent()
|
||||
|
||||
return $parent
|
||||
}
|
||||
|
||||
|
||||
/* DROPDOWN PLUGIN DEFINITION
|
||||
* ========================== */
|
||||
|
||||
$.fn.dropdown = function ( option ) {
|
||||
var old = $.fn.dropdown
|
||||
|
||||
$.fn.dropdown = function (option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
, data = $this.data('dropdown')
|
||||
@@ -81,12 +148,22 @@
|
||||
$.fn.dropdown.Constructor = Dropdown
|
||||
|
||||
|
||||
/* DROPDOWN NO CONFLICT
|
||||
* ==================== */
|
||||
|
||||
$.fn.dropdown.noConflict = function () {
|
||||
$.fn.dropdown = old
|
||||
return this
|
||||
}
|
||||
|
||||
|
||||
/* APPLY TO STANDARD DROPDOWN ELEMENTS
|
||||
* =================================== */
|
||||
|
||||
$(function () {
|
||||
$('html').on('click.dropdown.data-api', clearMenus)
|
||||
$('body').on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle)
|
||||
})
|
||||
$(document)
|
||||
.on('click.dropdown.data-api', clearMenus)
|
||||
.on('click.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
|
||||
.on('click.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
|
||||
.on('keydown.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
|
||||
|
||||
}( window.jQuery );
|
||||
}(window.jQuery);
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/* =========================================================
|
||||
* bootstrap-modal.js v2.0.2
|
||||
* http://twitter.github.com/bootstrap/javascript.html#modals
|
||||
* bootstrap-modal.js v2.3.2
|
||||
* http://twbs.github.com/bootstrap/javascript.html#modals
|
||||
* =========================================================
|
||||
* Copyright 2012 Twitter, Inc.
|
||||
* Copyright 2013 Twitter, Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -18,17 +18,19 @@
|
||||
* ========================================================= */
|
||||
|
||||
|
||||
!function( $ ){
|
||||
!function ($) {
|
||||
|
||||
"use strict"; // jshint ;_;
|
||||
|
||||
"use strict"
|
||||
|
||||
/* MODAL CLASS DEFINITION
|
||||
* ====================== */
|
||||
|
||||
var Modal = function ( content, options ) {
|
||||
var Modal = function (element, options) {
|
||||
this.options = options
|
||||
this.$element = $(content)
|
||||
this.$element = $(element)
|
||||
.delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
|
||||
this.options.remote && this.$element.find('.modal-body').load(this.options.remote)
|
||||
}
|
||||
|
||||
Modal.prototype = {
|
||||
@@ -41,139 +43,161 @@
|
||||
|
||||
, show: function () {
|
||||
var that = this
|
||||
, e = $.Event('show')
|
||||
|
||||
if (this.isShown) return
|
||||
this.$element.trigger(e)
|
||||
|
||||
$('body').addClass('modal-open')
|
||||
if (this.isShown || e.isDefaultPrevented()) return
|
||||
|
||||
this.isShown = true
|
||||
this.$element.trigger('show')
|
||||
|
||||
escape.call(this)
|
||||
backdrop.call(this, function () {
|
||||
this.escape()
|
||||
|
||||
this.backdrop(function () {
|
||||
var transition = $.support.transition && that.$element.hasClass('fade')
|
||||
|
||||
!that.$element.parent().length && that.$element.appendTo(document.body) //don't move modals dom position
|
||||
if (!that.$element.parent().length) {
|
||||
that.$element.appendTo(document.body) //don't move modals dom position
|
||||
}
|
||||
|
||||
that.$element
|
||||
.show()
|
||||
that.$element.show()
|
||||
|
||||
if (transition) {
|
||||
that.$element[0].offsetWidth // force reflow
|
||||
}
|
||||
|
||||
that.$element.addClass('in')
|
||||
that.$element
|
||||
.addClass('in')
|
||||
.attr('aria-hidden', false)
|
||||
|
||||
that.enforceFocus()
|
||||
|
||||
transition ?
|
||||
that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) :
|
||||
that.$element.trigger('shown')
|
||||
that.$element.one($.support.transition.end, function () { that.$element.focus().trigger('shown') }) :
|
||||
that.$element.focus().trigger('shown')
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
, hide: function ( e ) {
|
||||
, hide: function (e) {
|
||||
e && e.preventDefault()
|
||||
|
||||
if (!this.isShown) return
|
||||
|
||||
var that = this
|
||||
|
||||
e = $.Event('hide')
|
||||
|
||||
this.$element.trigger(e)
|
||||
|
||||
if (!this.isShown || e.isDefaultPrevented()) return
|
||||
|
||||
this.isShown = false
|
||||
|
||||
$('body').removeClass('modal-open')
|
||||
this.escape()
|
||||
|
||||
escape.call(this)
|
||||
$(document).off('focusin.modal')
|
||||
|
||||
this.$element
|
||||
.trigger('hide')
|
||||
.removeClass('in')
|
||||
.attr('aria-hidden', true)
|
||||
|
||||
$.support.transition && this.$element.hasClass('fade') ?
|
||||
hideWithTransition.call(this) :
|
||||
hideModal.call(this)
|
||||
this.hideWithTransition() :
|
||||
this.hideModal()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* MODAL PRIVATE METHODS
|
||||
* ===================== */
|
||||
|
||||
function hideWithTransition() {
|
||||
var that = this
|
||||
, timeout = setTimeout(function () {
|
||||
that.$element.off($.support.transition.end)
|
||||
hideModal.call(that)
|
||||
}, 500)
|
||||
|
||||
this.$element.one($.support.transition.end, function () {
|
||||
clearTimeout(timeout)
|
||||
hideModal.call(that)
|
||||
})
|
||||
}
|
||||
|
||||
function hideModal( that ) {
|
||||
this.$element
|
||||
.hide()
|
||||
.trigger('hidden')
|
||||
|
||||
backdrop.call(this)
|
||||
}
|
||||
|
||||
function backdrop( callback ) {
|
||||
var that = this
|
||||
, animate = this.$element.hasClass('fade') ? 'fade' : ''
|
||||
|
||||
if (this.isShown && this.options.backdrop) {
|
||||
var doAnimate = $.support.transition && animate
|
||||
|
||||
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
|
||||
.appendTo(document.body)
|
||||
|
||||
if (this.options.backdrop != 'static') {
|
||||
this.$backdrop.click($.proxy(this.hide, this))
|
||||
, enforceFocus: function () {
|
||||
var that = this
|
||||
$(document).on('focusin.modal', function (e) {
|
||||
if (that.$element[0] !== e.target && !that.$element.has(e.target).length) {
|
||||
that.$element.focus()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
|
||||
, escape: function () {
|
||||
var that = this
|
||||
if (this.isShown && this.options.keyboard) {
|
||||
this.$element.on('keyup.dismiss.modal', function ( e ) {
|
||||
e.which == 27 && that.hide()
|
||||
})
|
||||
} else if (!this.isShown) {
|
||||
this.$element.off('keyup.dismiss.modal')
|
||||
}
|
||||
}
|
||||
|
||||
this.$backdrop.addClass('in')
|
||||
, hideWithTransition: function () {
|
||||
var that = this
|
||||
, timeout = setTimeout(function () {
|
||||
that.$element.off($.support.transition.end)
|
||||
that.hideModal()
|
||||
}, 500)
|
||||
|
||||
doAnimate ?
|
||||
this.$backdrop.one($.support.transition.end, callback) :
|
||||
callback()
|
||||
this.$element.one($.support.transition.end, function () {
|
||||
clearTimeout(timeout)
|
||||
that.hideModal()
|
||||
})
|
||||
}
|
||||
|
||||
} else if (!this.isShown && this.$backdrop) {
|
||||
this.$backdrop.removeClass('in')
|
||||
, hideModal: function () {
|
||||
var that = this
|
||||
this.$element.hide()
|
||||
this.backdrop(function () {
|
||||
that.removeBackdrop()
|
||||
that.$element.trigger('hidden')
|
||||
})
|
||||
}
|
||||
|
||||
$.support.transition && this.$element.hasClass('fade')?
|
||||
this.$backdrop.one($.support.transition.end, $.proxy(removeBackdrop, this)) :
|
||||
removeBackdrop.call(this)
|
||||
, removeBackdrop: function () {
|
||||
this.$backdrop && this.$backdrop.remove()
|
||||
this.$backdrop = null
|
||||
}
|
||||
|
||||
} else if (callback) {
|
||||
callback()
|
||||
}
|
||||
}
|
||||
, backdrop: function (callback) {
|
||||
var that = this
|
||||
, animate = this.$element.hasClass('fade') ? 'fade' : ''
|
||||
|
||||
function removeBackdrop() {
|
||||
this.$backdrop.remove()
|
||||
this.$backdrop = null
|
||||
}
|
||||
if (this.isShown && this.options.backdrop) {
|
||||
var doAnimate = $.support.transition && animate
|
||||
|
||||
function escape() {
|
||||
var that = this
|
||||
if (this.isShown && this.options.keyboard) {
|
||||
$(document).on('keyup.dismiss.modal', function ( e ) {
|
||||
e.which == 27 && that.hide()
|
||||
})
|
||||
} else if (!this.isShown) {
|
||||
$(document).off('keyup.dismiss.modal')
|
||||
}
|
||||
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
|
||||
.appendTo(document.body)
|
||||
|
||||
this.$backdrop.click(
|
||||
this.options.backdrop == 'static' ?
|
||||
$.proxy(this.$element[0].focus, this.$element[0])
|
||||
: $.proxy(this.hide, this)
|
||||
)
|
||||
|
||||
if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
|
||||
|
||||
this.$backdrop.addClass('in')
|
||||
|
||||
if (!callback) return
|
||||
|
||||
doAnimate ?
|
||||
this.$backdrop.one($.support.transition.end, callback) :
|
||||
callback()
|
||||
|
||||
} else if (!this.isShown && this.$backdrop) {
|
||||
this.$backdrop.removeClass('in')
|
||||
|
||||
$.support.transition && this.$element.hasClass('fade')?
|
||||
this.$backdrop.one($.support.transition.end, callback) :
|
||||
callback()
|
||||
|
||||
} else if (callback) {
|
||||
callback()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* MODAL PLUGIN DEFINITION
|
||||
* ======================= */
|
||||
|
||||
$.fn.modal = function ( option ) {
|
||||
var old = $.fn.modal
|
||||
|
||||
$.fn.modal = function (option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
, data = $this.data('modal')
|
||||
@@ -193,18 +217,31 @@
|
||||
$.fn.modal.Constructor = Modal
|
||||
|
||||
|
||||
/* MODAL NO CONFLICT
|
||||
* ================= */
|
||||
|
||||
$.fn.modal.noConflict = function () {
|
||||
$.fn.modal = old
|
||||
return this
|
||||
}
|
||||
|
||||
|
||||
/* MODAL DATA-API
|
||||
* ============== */
|
||||
|
||||
$(function () {
|
||||
$('body').on('click.modal.data-api', '[data-toggle="modal"]', function ( e ) {
|
||||
var $this = $(this), href
|
||||
, $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
|
||||
, option = $target.data('modal') ? 'toggle' : $.extend({}, $target.data(), $this.data())
|
||||
$(document).on('click.modal.data-api', '[data-toggle="modal"]', function (e) {
|
||||
var $this = $(this)
|
||||
, href = $this.attr('href')
|
||||
, $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
|
||||
, option = $target.data('modal') ? 'toggle' : $.extend({ remote:!/#/.test(href) && href }, $target.data(), $this.data())
|
||||
|
||||
e.preventDefault()
|
||||
$target.modal(option)
|
||||
})
|
||||
e.preventDefault()
|
||||
|
||||
$target
|
||||
.modal(option)
|
||||
.one('hide', function () {
|
||||
$this.focus()
|
||||
})
|
||||
})
|
||||
|
||||
}( window.jQuery );
|
||||
}(window.jQuery);
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/* ===========================================================
|
||||
* bootstrap-popover.js v2.0.2
|
||||
* http://twitter.github.com/bootstrap/javascript.html#popovers
|
||||
* bootstrap-popover.js v2.3.2
|
||||
* http://twbs.github.com/bootstrap/javascript.html#popovers
|
||||
* ===========================================================
|
||||
* Copyright 2012 Twitter, Inc.
|
||||
* Copyright 2013 Twitter, Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -18,14 +18,19 @@
|
||||
* =========================================================== */
|
||||
|
||||
|
||||
!function( $ ) {
|
||||
!function ($) {
|
||||
|
||||
"use strict"
|
||||
"use strict"; // jshint ;_;
|
||||
|
||||
var Popover = function ( element, options ) {
|
||||
|
||||
/* POPOVER PUBLIC CLASS DEFINITION
|
||||
* =============================== */
|
||||
|
||||
var Popover = function (element, options) {
|
||||
this.init('popover', element, options)
|
||||
}
|
||||
|
||||
|
||||
/* NOTE: POPOVER EXTENDS BOOTSTRAP-TOOLTIP.js
|
||||
========================================== */
|
||||
|
||||
@@ -38,8 +43,8 @@
|
||||
, title = this.getTitle()
|
||||
, content = this.getContent()
|
||||
|
||||
$tip.find('.popover-title')[ $.type(title) == 'object' ? 'append' : 'html' ](title)
|
||||
$tip.find('.popover-content > *')[ $.type(content) == 'object' ? 'append' : 'html' ](content)
|
||||
$tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
|
||||
$tip.find('.popover-content')[this.options.html ? 'html' : 'text'](content)
|
||||
|
||||
$tip.removeClass('fade top bottom left right in')
|
||||
}
|
||||
@@ -53,28 +58,32 @@
|
||||
, $e = this.$element
|
||||
, o = this.options
|
||||
|
||||
content = $e.attr('data-content')
|
||||
|| (typeof o.content == 'function' ? o.content.call($e[0]) : o.content)
|
||||
|
||||
content = content.toString().replace(/(^\s*|\s*$)/, "")
|
||||
content = (typeof o.content == 'function' ? o.content.call($e[0]) : o.content)
|
||||
|| $e.attr('data-content')
|
||||
|
||||
return content
|
||||
}
|
||||
|
||||
, tip: function() {
|
||||
, tip: function () {
|
||||
if (!this.$tip) {
|
||||
this.$tip = $(this.options.template)
|
||||
}
|
||||
return this.$tip
|
||||
}
|
||||
|
||||
, destroy: function () {
|
||||
this.hide().$element.off('.' + this.type).removeData(this.type)
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
|
||||
/* POPOVER PLUGIN DEFINITION
|
||||
* ======================= */
|
||||
|
||||
$.fn.popover = function ( option ) {
|
||||
var old = $.fn.popover
|
||||
|
||||
$.fn.popover = function (option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
, data = $this.data('popover')
|
||||
@@ -88,8 +97,18 @@
|
||||
|
||||
$.fn.popover.defaults = $.extend({} , $.fn.tooltip.defaults, {
|
||||
placement: 'right'
|
||||
, trigger: 'click'
|
||||
, content: ''
|
||||
, template: '<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>'
|
||||
, template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
|
||||
})
|
||||
|
||||
}( window.jQuery );
|
||||
|
||||
/* POPOVER NO CONFLICT
|
||||
* =================== */
|
||||
|
||||
$.fn.popover.noConflict = function () {
|
||||
$.fn.popover = old
|
||||
return this
|
||||
}
|
||||
|
||||
}(window.jQuery);
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/* =============================================================
|
||||
* bootstrap-scrollspy.js v2.0.2
|
||||
* http://twitter.github.com/bootstrap/javascript.html#scrollspy
|
||||
* bootstrap-scrollspy.js v2.3.2
|
||||
* http://twbs.github.com/bootstrap/javascript.html#scrollspy
|
||||
* =============================================================
|
||||
* Copyright 2012 Twitter, Inc.
|
||||
* Copyright 2013 Twitter, Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -17,23 +17,25 @@
|
||||
* limitations under the License.
|
||||
* ============================================================== */
|
||||
|
||||
!function ( $ ) {
|
||||
|
||||
"use strict"
|
||||
!function ($) {
|
||||
|
||||
/* SCROLLSPY CLASS DEFINITION
|
||||
* ========================== */
|
||||
"use strict"; // jshint ;_;
|
||||
|
||||
function ScrollSpy( element, options) {
|
||||
|
||||
/* SCROLLSPY CLASS DEFINITION
|
||||
* ========================== */
|
||||
|
||||
function ScrollSpy(element, options) {
|
||||
var process = $.proxy(this.process, this)
|
||||
, $element = $(element).is('body') ? $(window) : $(element)
|
||||
, href
|
||||
this.options = $.extend({}, $.fn.scrollspy.defaults, options)
|
||||
this.$scrollElement = $element.on('scroll.scroll.data-api', process)
|
||||
this.$scrollElement = $element.on('scroll.scroll-spy.data-api', process)
|
||||
this.selector = (this.options.target
|
||||
|| ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
|
||||
|| '') + ' .nav li > a'
|
||||
this.$body = $('body').on('click.scroll.data-api', this.selector, process)
|
||||
this.$body = $('body')
|
||||
this.refresh()
|
||||
this.process()
|
||||
}
|
||||
@@ -43,25 +45,43 @@
|
||||
constructor: ScrollSpy
|
||||
|
||||
, refresh: function () {
|
||||
this.targets = this.$body
|
||||
var self = this
|
||||
, $targets
|
||||
|
||||
this.offsets = $([])
|
||||
this.targets = $([])
|
||||
|
||||
$targets = this.$body
|
||||
.find(this.selector)
|
||||
.map(function () {
|
||||
var href = $(this).attr('href')
|
||||
return /^#\w/.test(href) && $(href).length ? href : null
|
||||
var $el = $(this)
|
||||
, href = $el.data('target') || $el.attr('href')
|
||||
, $href = /^#\w/.test(href) && $(href)
|
||||
return ( $href
|
||||
&& $href.length
|
||||
&& [[ $href.position().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]] ) || null
|
||||
})
|
||||
.sort(function (a, b) { return a[0] - b[0] })
|
||||
.each(function () {
|
||||
self.offsets.push(this[0])
|
||||
self.targets.push(this[1])
|
||||
})
|
||||
|
||||
this.offsets = $.map(this.targets, function (id) {
|
||||
return $(id).position().top
|
||||
})
|
||||
}
|
||||
|
||||
, process: function () {
|
||||
var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
|
||||
, scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight
|
||||
, maxScroll = scrollHeight - this.$scrollElement.height()
|
||||
, offsets = this.offsets
|
||||
, targets = this.targets
|
||||
, activeTarget = this.activeTarget
|
||||
, i
|
||||
|
||||
if (scrollTop >= maxScroll) {
|
||||
return activeTarget != (i = targets.last()[0])
|
||||
&& this.activate ( i )
|
||||
}
|
||||
|
||||
for (i = offsets.length; i--;) {
|
||||
activeTarget != targets[i]
|
||||
&& scrollTop >= offsets[i]
|
||||
@@ -72,21 +92,27 @@
|
||||
|
||||
, activate: function (target) {
|
||||
var active
|
||||
, selector
|
||||
|
||||
this.activeTarget = target
|
||||
|
||||
this.$body
|
||||
.find(this.selector).parent('.active')
|
||||
$(this.selector)
|
||||
.parent('.active')
|
||||
.removeClass('active')
|
||||
|
||||
active = this.$body
|
||||
.find(this.selector + '[href="' + target + '"]')
|
||||
selector = this.selector
|
||||
+ '[data-target="' + target + '"],'
|
||||
+ this.selector + '[href="' + target + '"]'
|
||||
|
||||
active = $(selector)
|
||||
.parent('li')
|
||||
.addClass('active')
|
||||
|
||||
if ( active.parent('.dropdown-menu') ) {
|
||||
active.closest('li.dropdown').addClass('active')
|
||||
if (active.parent('.dropdown-menu').length) {
|
||||
active = active.closest('li.dropdown').addClass('active')
|
||||
}
|
||||
|
||||
active.trigger('activate')
|
||||
}
|
||||
|
||||
}
|
||||
@@ -95,7 +121,9 @@
|
||||
/* SCROLLSPY PLUGIN DEFINITION
|
||||
* =========================== */
|
||||
|
||||
$.fn.scrollspy = function ( option ) {
|
||||
var old = $.fn.scrollspy
|
||||
|
||||
$.fn.scrollspy = function (option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
, data = $this.data('scrollspy')
|
||||
@@ -112,14 +140,23 @@
|
||||
}
|
||||
|
||||
|
||||
/* SCROLLSPY NO CONFLICT
|
||||
* ===================== */
|
||||
|
||||
$.fn.scrollspy.noConflict = function () {
|
||||
$.fn.scrollspy = old
|
||||
return this
|
||||
}
|
||||
|
||||
|
||||
/* SCROLLSPY DATA-API
|
||||
* ================== */
|
||||
|
||||
$(function () {
|
||||
$(window).on('load', function () {
|
||||
$('[data-spy="scroll"]').each(function () {
|
||||
var $spy = $(this)
|
||||
$spy.scrollspy($spy.data())
|
||||
})
|
||||
})
|
||||
|
||||
}( window.jQuery );
|
||||
}(window.jQuery);
|
||||
@@ -1,8 +1,8 @@
|
||||
/* ========================================================
|
||||
* bootstrap-tab.js v2.0.2
|
||||
* http://twitter.github.com/bootstrap/javascript.html#tabs
|
||||
* bootstrap-tab.js v2.3.2
|
||||
* http://twbs.github.com/bootstrap/javascript.html#tabs
|
||||
* ========================================================
|
||||
* Copyright 2012 Twitter, Inc.
|
||||
* Copyright 2013 Twitter, Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -18,14 +18,15 @@
|
||||
* ======================================================== */
|
||||
|
||||
|
||||
!function( $ ){
|
||||
!function ($) {
|
||||
|
||||
"use strict"; // jshint ;_;
|
||||
|
||||
"use strict"
|
||||
|
||||
/* TAB CLASS DEFINITION
|
||||
* ==================== */
|
||||
|
||||
var Tab = function ( element ) {
|
||||
var Tab = function (element) {
|
||||
this.element = $(element)
|
||||
}
|
||||
|
||||
@@ -39,6 +40,7 @@
|
||||
, selector = $this.attr('data-target')
|
||||
, previous
|
||||
, $target
|
||||
, e
|
||||
|
||||
if (!selector) {
|
||||
selector = $this.attr('href')
|
||||
@@ -47,13 +49,16 @@
|
||||
|
||||
if ( $this.parent('li').hasClass('active') ) return
|
||||
|
||||
previous = $ul.find('.active a').last()[0]
|
||||
previous = $ul.find('.active:last a')[0]
|
||||
|
||||
$this.trigger({
|
||||
type: 'show'
|
||||
, relatedTarget: previous
|
||||
e = $.Event('show', {
|
||||
relatedTarget: previous
|
||||
})
|
||||
|
||||
$this.trigger(e)
|
||||
|
||||
if (e.isDefaultPrevented()) return
|
||||
|
||||
$target = $(selector)
|
||||
|
||||
this.activate($this.parent('li'), $ul)
|
||||
@@ -105,6 +110,8 @@
|
||||
/* TAB PLUGIN DEFINITION
|
||||
* ===================== */
|
||||
|
||||
var old = $.fn.tab
|
||||
|
||||
$.fn.tab = function ( option ) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
@@ -117,14 +124,21 @@
|
||||
$.fn.tab.Constructor = Tab
|
||||
|
||||
|
||||
/* TAB NO CONFLICT
|
||||
* =============== */
|
||||
|
||||
$.fn.tab.noConflict = function () {
|
||||
$.fn.tab = old
|
||||
return this
|
||||
}
|
||||
|
||||
|
||||
/* TAB DATA-API
|
||||
* ============ */
|
||||
|
||||
$(function () {
|
||||
$('body').on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
|
||||
e.preventDefault()
|
||||
$(this).tab('show')
|
||||
})
|
||||
$(document).on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
|
||||
e.preventDefault()
|
||||
$(this).tab('show')
|
||||
})
|
||||
|
||||
}( window.jQuery );
|
||||
}(window.jQuery);
|
||||
@@ -1,9 +1,9 @@
|
||||
/* ===========================================================
|
||||
* bootstrap-tooltip.js v2.0.2
|
||||
* http://twitter.github.com/bootstrap/javascript.html#tooltips
|
||||
* bootstrap-tooltip.js v2.3.2
|
||||
* http://twbs.github.com/bootstrap/javascript.html#tooltips
|
||||
* Inspired by the original jQuery.tipsy by Jason Frame
|
||||
* ===========================================================
|
||||
* Copyright 2012 Twitter, Inc.
|
||||
* Copyright 2013 Twitter, Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -18,14 +18,16 @@
|
||||
* limitations under the License.
|
||||
* ========================================================== */
|
||||
|
||||
!function( $ ) {
|
||||
|
||||
"use strict"
|
||||
!function ($) {
|
||||
|
||||
"use strict"; // jshint ;_;
|
||||
|
||||
|
||||
/* TOOLTIP PUBLIC CLASS DEFINITION
|
||||
* =============================== */
|
||||
|
||||
var Tooltip = function ( element, options ) {
|
||||
var Tooltip = function (element, options) {
|
||||
this.init('tooltip', element, options)
|
||||
}
|
||||
|
||||
@@ -33,20 +35,30 @@
|
||||
|
||||
constructor: Tooltip
|
||||
|
||||
, init: function ( type, element, options ) {
|
||||
, init: function (type, element, options) {
|
||||
var eventIn
|
||||
, eventOut
|
||||
, triggers
|
||||
, trigger
|
||||
, i
|
||||
|
||||
this.type = type
|
||||
this.$element = $(element)
|
||||
this.options = this.getOptions(options)
|
||||
this.enabled = true
|
||||
|
||||
if (this.options.trigger != 'manual') {
|
||||
eventIn = this.options.trigger == 'hover' ? 'mouseenter' : 'focus'
|
||||
eventOut = this.options.trigger == 'hover' ? 'mouseleave' : 'blur'
|
||||
this.$element.on(eventIn, this.options.selector, $.proxy(this.enter, this))
|
||||
this.$element.on(eventOut, this.options.selector, $.proxy(this.leave, this))
|
||||
triggers = this.options.trigger.split(' ')
|
||||
|
||||
for (i = triggers.length; i--;) {
|
||||
trigger = triggers[i]
|
||||
if (trigger == 'click') {
|
||||
this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
|
||||
} else if (trigger != 'manual') {
|
||||
eventIn = trigger == 'hover' ? 'mouseenter' : 'focus'
|
||||
eventOut = trigger == 'hover' ? 'mouseleave' : 'blur'
|
||||
this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
|
||||
this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
|
||||
}
|
||||
}
|
||||
|
||||
this.options.selector ?
|
||||
@@ -54,8 +66,8 @@
|
||||
this.fixTitle()
|
||||
}
|
||||
|
||||
, getOptions: function ( options ) {
|
||||
options = $.extend({}, $.fn[this.type].defaults, options, this.$element.data())
|
||||
, getOptions: function (options) {
|
||||
options = $.extend({}, $.fn[this.type].defaults, this.$element.data(), options)
|
||||
|
||||
if (options.delay && typeof options.delay == 'number') {
|
||||
options.delay = {
|
||||
@@ -67,46 +79,50 @@
|
||||
return options
|
||||
}
|
||||
|
||||
, enter: function ( e ) {
|
||||
var self = $(e.currentTarget)[this.type](this._options).data(this.type)
|
||||
, enter: function (e) {
|
||||
var defaults = $.fn[this.type].defaults
|
||||
, options = {}
|
||||
, self
|
||||
|
||||
if (!self.options.delay || !self.options.delay.show) {
|
||||
self.show()
|
||||
} else {
|
||||
self.hoverState = 'in'
|
||||
setTimeout(function() {
|
||||
if (self.hoverState == 'in') {
|
||||
self.show()
|
||||
}
|
||||
}, self.options.delay.show)
|
||||
}
|
||||
this._options && $.each(this._options, function (key, value) {
|
||||
if (defaults[key] != value) options[key] = value
|
||||
}, this)
|
||||
|
||||
self = $(e.currentTarget)[this.type](options).data(this.type)
|
||||
|
||||
if (!self.options.delay || !self.options.delay.show) return self.show()
|
||||
|
||||
clearTimeout(this.timeout)
|
||||
self.hoverState = 'in'
|
||||
this.timeout = setTimeout(function() {
|
||||
if (self.hoverState == 'in') self.show()
|
||||
}, self.options.delay.show)
|
||||
}
|
||||
|
||||
, leave: function ( e ) {
|
||||
, leave: function (e) {
|
||||
var self = $(e.currentTarget)[this.type](this._options).data(this.type)
|
||||
|
||||
if (!self.options.delay || !self.options.delay.hide) {
|
||||
self.hide()
|
||||
} else {
|
||||
self.hoverState = 'out'
|
||||
setTimeout(function() {
|
||||
if (self.hoverState == 'out') {
|
||||
self.hide()
|
||||
}
|
||||
}, self.options.delay.hide)
|
||||
}
|
||||
if (this.timeout) clearTimeout(this.timeout)
|
||||
if (!self.options.delay || !self.options.delay.hide) return self.hide()
|
||||
|
||||
self.hoverState = 'out'
|
||||
this.timeout = setTimeout(function() {
|
||||
if (self.hoverState == 'out') self.hide()
|
||||
}, self.options.delay.hide)
|
||||
}
|
||||
|
||||
, show: function () {
|
||||
var $tip
|
||||
, inside
|
||||
, pos
|
||||
, actualWidth
|
||||
, actualHeight
|
||||
, placement
|
||||
, tp
|
||||
, e = $.Event('show')
|
||||
|
||||
if (this.hasContent() && this.enabled) {
|
||||
this.$element.trigger(e)
|
||||
if (e.isDefaultPrevented()) return
|
||||
$tip = this.tip()
|
||||
this.setContent()
|
||||
|
||||
@@ -118,19 +134,18 @@
|
||||
this.options.placement.call(this, $tip[0], this.$element[0]) :
|
||||
this.options.placement
|
||||
|
||||
inside = /in/.test(placement)
|
||||
|
||||
$tip
|
||||
.remove()
|
||||
.detach()
|
||||
.css({ top: 0, left: 0, display: 'block' })
|
||||
.appendTo(inside ? this.$element : document.body)
|
||||
|
||||
pos = this.getPosition(inside)
|
||||
this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
|
||||
|
||||
pos = this.getPosition()
|
||||
|
||||
actualWidth = $tip[0].offsetWidth
|
||||
actualHeight = $tip[0].offsetHeight
|
||||
|
||||
switch (inside ? placement.split(' ')[1] : placement) {
|
||||
switch (placement) {
|
||||
case 'bottom':
|
||||
tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}
|
||||
break
|
||||
@@ -145,45 +160,100 @@
|
||||
break
|
||||
}
|
||||
|
||||
$tip
|
||||
.css(tp)
|
||||
.addClass(placement)
|
||||
.addClass('in')
|
||||
this.applyPlacement(tp, placement)
|
||||
this.$element.trigger('shown')
|
||||
}
|
||||
}
|
||||
|
||||
, applyPlacement: function(offset, placement){
|
||||
var $tip = this.tip()
|
||||
, width = $tip[0].offsetWidth
|
||||
, height = $tip[0].offsetHeight
|
||||
, actualWidth
|
||||
, actualHeight
|
||||
, delta
|
||||
, replace
|
||||
|
||||
$tip
|
||||
.offset(offset)
|
||||
.addClass(placement)
|
||||
.addClass('in')
|
||||
|
||||
actualWidth = $tip[0].offsetWidth
|
||||
actualHeight = $tip[0].offsetHeight
|
||||
|
||||
if (placement == 'top' && actualHeight != height) {
|
||||
offset.top = offset.top + height - actualHeight
|
||||
replace = true
|
||||
}
|
||||
|
||||
if (placement == 'bottom' || placement == 'top') {
|
||||
delta = 0
|
||||
|
||||
if (offset.left < 0){
|
||||
delta = offset.left * -2
|
||||
offset.left = 0
|
||||
$tip.offset(offset)
|
||||
actualWidth = $tip[0].offsetWidth
|
||||
actualHeight = $tip[0].offsetHeight
|
||||
}
|
||||
|
||||
this.replaceArrow(delta - width + actualWidth, actualWidth, 'left')
|
||||
} else {
|
||||
this.replaceArrow(actualHeight - height, actualHeight, 'top')
|
||||
}
|
||||
|
||||
if (replace) $tip.offset(offset)
|
||||
}
|
||||
|
||||
, replaceArrow: function(delta, dimension, position){
|
||||
this
|
||||
.arrow()
|
||||
.css(position, delta ? (50 * (1 - delta / dimension) + "%") : '')
|
||||
}
|
||||
|
||||
, setContent: function () {
|
||||
var $tip = this.tip()
|
||||
$tip.find('.tooltip-inner').html(this.getTitle())
|
||||
, title = this.getTitle()
|
||||
|
||||
$tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
|
||||
$tip.removeClass('fade in top bottom left right')
|
||||
}
|
||||
|
||||
, hide: function () {
|
||||
var that = this
|
||||
, $tip = this.tip()
|
||||
, e = $.Event('hide')
|
||||
|
||||
this.$element.trigger(e)
|
||||
if (e.isDefaultPrevented()) return
|
||||
|
||||
$tip.removeClass('in')
|
||||
|
||||
function removeWithAnimation() {
|
||||
var timeout = setTimeout(function () {
|
||||
$tip.off($.support.transition.end).remove()
|
||||
$tip.off($.support.transition.end).detach()
|
||||
}, 500)
|
||||
|
||||
$tip.one($.support.transition.end, function () {
|
||||
clearTimeout(timeout)
|
||||
$tip.remove()
|
||||
$tip.detach()
|
||||
})
|
||||
}
|
||||
|
||||
$.support.transition && this.$tip.hasClass('fade') ?
|
||||
removeWithAnimation() :
|
||||
$tip.remove()
|
||||
$tip.detach()
|
||||
|
||||
this.$element.trigger('hidden')
|
||||
|
||||
return this
|
||||
}
|
||||
|
||||
, fixTitle: function () {
|
||||
var $e = this.$element
|
||||
if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') {
|
||||
$e.attr('data-original-title', $e.attr('title') || '').removeAttr('title')
|
||||
$e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
|
||||
}
|
||||
}
|
||||
|
||||
@@ -191,11 +261,12 @@
|
||||
return this.getTitle()
|
||||
}
|
||||
|
||||
, getPosition: function (inside) {
|
||||
return $.extend({}, (inside ? {top: 0, left: 0} : this.$element.offset()), {
|
||||
width: this.$element[0].offsetWidth
|
||||
, height: this.$element[0].offsetHeight
|
||||
})
|
||||
, getPosition: function () {
|
||||
var el = this.$element[0]
|
||||
return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : {
|
||||
width: el.offsetWidth
|
||||
, height: el.offsetHeight
|
||||
}, this.$element.offset())
|
||||
}
|
||||
|
||||
, getTitle: function () {
|
||||
@@ -206,8 +277,6 @@
|
||||
title = $e.attr('data-original-title')
|
||||
|| (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
|
||||
|
||||
title = (title || '').toString().replace(/(^\s*|\s*$)/, "")
|
||||
|
||||
return title
|
||||
}
|
||||
|
||||
@@ -215,6 +284,10 @@
|
||||
return this.$tip = this.$tip || $(this.options.template)
|
||||
}
|
||||
|
||||
, arrow: function(){
|
||||
return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")
|
||||
}
|
||||
|
||||
, validate: function () {
|
||||
if (!this.$element[0].parentNode) {
|
||||
this.hide()
|
||||
@@ -235,8 +308,13 @@
|
||||
this.enabled = !this.enabled
|
||||
}
|
||||
|
||||
, toggle: function () {
|
||||
this[this.tip().hasClass('in') ? 'hide' : 'show']()
|
||||
, toggle: function (e) {
|
||||
var self = e ? $(e.currentTarget)[this.type](this._options).data(this.type) : this
|
||||
self.tip().hasClass('in') ? self.hide() : self.show()
|
||||
}
|
||||
|
||||
, destroy: function () {
|
||||
this.hide().$element.off('.' + this.type).removeData(this.type)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -245,6 +323,8 @@
|
||||
/* TOOLTIP PLUGIN DEFINITION
|
||||
* ========================= */
|
||||
|
||||
var old = $.fn.tooltip
|
||||
|
||||
$.fn.tooltip = function ( option ) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
@@ -259,12 +339,23 @@
|
||||
|
||||
$.fn.tooltip.defaults = {
|
||||
animation: true
|
||||
, delay: 0
|
||||
, selector: false
|
||||
, placement: 'top'
|
||||
, trigger: 'hover'
|
||||
, title: ''
|
||||
, selector: false
|
||||
, template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
|
||||
, trigger: 'hover focus'
|
||||
, title: ''
|
||||
, delay: 0
|
||||
, html: false
|
||||
, container: false
|
||||
}
|
||||
|
||||
}( window.jQuery );
|
||||
|
||||
/* TOOLTIP NO CONFLICT
|
||||
* =================== */
|
||||
|
||||
$.fn.tooltip.noConflict = function () {
|
||||
$.fn.tooltip = old
|
||||
return this
|
||||
}
|
||||
|
||||
}(window.jQuery);
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/* ===================================================
|
||||
* bootstrap-transition.js v2.0.2
|
||||
* http://twitter.github.com/bootstrap/javascript.html#transitions
|
||||
* bootstrap-transition.js v2.3.2
|
||||
* http://twbs.github.com/bootstrap/javascript.html#transitions
|
||||
* ===================================================
|
||||
* Copyright 2012 Twitter, Inc.
|
||||
* Copyright 2013 Twitter, Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -17,35 +17,44 @@
|
||||
* limitations under the License.
|
||||
* ========================================================== */
|
||||
|
||||
!function( $ ) {
|
||||
|
||||
!function ($) {
|
||||
|
||||
"use strict"; // jshint ;_;
|
||||
|
||||
|
||||
/* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
|
||||
* ======================================================= */
|
||||
|
||||
$(function () {
|
||||
|
||||
"use strict"
|
||||
|
||||
/* CSS TRANSITION SUPPORT (https://gist.github.com/373874)
|
||||
* ======================================================= */
|
||||
|
||||
$.support.transition = (function () {
|
||||
var thisBody = document.body || document.documentElement
|
||||
, thisStyle = thisBody.style
|
||||
, support = thisStyle.transition !== undefined || thisStyle.WebkitTransition !== undefined || thisStyle.MozTransition !== undefined || thisStyle.MsTransition !== undefined || thisStyle.OTransition !== undefined
|
||||
|
||||
return support && {
|
||||
end: (function () {
|
||||
var transitionEnd = "TransitionEnd"
|
||||
if ( $.browser.webkit ) {
|
||||
transitionEnd = "webkitTransitionEnd"
|
||||
} else if ( $.browser.mozilla ) {
|
||||
transitionEnd = "transitionend"
|
||||
} else if ( $.browser.opera ) {
|
||||
transitionEnd = "oTransitionEnd"
|
||||
var transitionEnd = (function () {
|
||||
|
||||
var el = document.createElement('bootstrap')
|
||||
, transEndEventNames = {
|
||||
'WebkitTransition' : 'webkitTransitionEnd'
|
||||
, 'MozTransition' : 'transitionend'
|
||||
, 'OTransition' : 'oTransitionEnd otransitionend'
|
||||
, 'transition' : 'transitionend'
|
||||
}
|
||||
, name
|
||||
|
||||
for (name in transEndEventNames){
|
||||
if (el.style[name] !== undefined) {
|
||||
return transEndEventNames[name]
|
||||
}
|
||||
return transitionEnd
|
||||
}())
|
||||
}
|
||||
|
||||
}())
|
||||
|
||||
return transitionEnd && {
|
||||
end: transitionEnd
|
||||
}
|
||||
|
||||
})()
|
||||
|
||||
})
|
||||
|
||||
}( window.jQuery );
|
||||
}(window.jQuery);
|
||||
@@ -1,8 +1,8 @@
|
||||
/* =============================================================
|
||||
* bootstrap-typeahead.js v2.0.2
|
||||
* http://twitter.github.com/bootstrap/javascript.html#typeahead
|
||||
* bootstrap-typeahead.js v2.3.2
|
||||
* http://twbs.github.com/bootstrap/javascript.html#typeahead
|
||||
* =============================================================
|
||||
* Copyright 2012 Twitter, Inc.
|
||||
* Copyright 2013 Twitter, Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -17,18 +17,24 @@
|
||||
* limitations under the License.
|
||||
* ============================================================ */
|
||||
|
||||
!function( $ ){
|
||||
|
||||
"use strict"
|
||||
!function($){
|
||||
|
||||
var Typeahead = function ( element, options ) {
|
||||
"use strict"; // jshint ;_;
|
||||
|
||||
|
||||
/* TYPEAHEAD PUBLIC CLASS DEFINITION
|
||||
* ================================= */
|
||||
|
||||
var Typeahead = function (element, options) {
|
||||
this.$element = $(element)
|
||||
this.options = $.extend({}, $.fn.typeahead.defaults, options)
|
||||
this.matcher = this.options.matcher || this.matcher
|
||||
this.sorter = this.options.sorter || this.sorter
|
||||
this.highlighter = this.options.highlighter || this.highlighter
|
||||
this.$menu = $(this.options.menu).appendTo('body')
|
||||
this.updater = this.options.updater || this.updater
|
||||
this.source = this.options.source
|
||||
this.$menu = $(this.options.menu)
|
||||
this.shown = false
|
||||
this.listen()
|
||||
}
|
||||
@@ -39,22 +45,29 @@
|
||||
|
||||
, select: function () {
|
||||
var val = this.$menu.find('.active').attr('data-value')
|
||||
this.$element.val(val)
|
||||
this.$element.change();
|
||||
this.$element
|
||||
.val(this.updater(val))
|
||||
.change()
|
||||
return this.hide()
|
||||
}
|
||||
|
||||
, updater: function (item) {
|
||||
return item
|
||||
}
|
||||
|
||||
, show: function () {
|
||||
var pos = $.extend({}, this.$element.offset(), {
|
||||
var pos = $.extend({}, this.$element.position(), {
|
||||
height: this.$element[0].offsetHeight
|
||||
})
|
||||
|
||||
this.$menu.css({
|
||||
top: pos.top + pos.height
|
||||
, left: pos.left
|
||||
})
|
||||
this.$menu
|
||||
.insertAfter(this.$element)
|
||||
.css({
|
||||
top: pos.top + pos.height
|
||||
, left: pos.left
|
||||
})
|
||||
.show()
|
||||
|
||||
this.$menu.show()
|
||||
this.shown = true
|
||||
return this
|
||||
}
|
||||
@@ -66,18 +79,24 @@
|
||||
}
|
||||
|
||||
, lookup: function (event) {
|
||||
var that = this
|
||||
, items
|
||||
, q
|
||||
var items
|
||||
|
||||
this.query = this.$element.val()
|
||||
|
||||
if (!this.query) {
|
||||
if (!this.query || this.query.length < this.options.minLength) {
|
||||
return this.shown ? this.hide() : this
|
||||
}
|
||||
|
||||
items = $.grep(this.source, function (item) {
|
||||
if (that.matcher(item)) return item
|
||||
items = $.isFunction(this.source) ? this.source(this.query, $.proxy(this.process, this)) : this.source
|
||||
|
||||
return items ? this.process(items) : this
|
||||
}
|
||||
|
||||
, process: function (items) {
|
||||
var that = this
|
||||
|
||||
items = $.grep(items, function (item) {
|
||||
return that.matcher(item)
|
||||
})
|
||||
|
||||
items = this.sorter(items)
|
||||
@@ -109,7 +128,8 @@
|
||||
}
|
||||
|
||||
, highlighter: function (item) {
|
||||
return item.replace(new RegExp('(' + this.query + ')', 'ig'), function ($1, match) {
|
||||
var query = this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, '\\$&')
|
||||
return item.replace(new RegExp('(' + query + ')', 'ig'), function ($1, match) {
|
||||
return '<strong>' + match + '</strong>'
|
||||
})
|
||||
}
|
||||
@@ -152,45 +172,31 @@
|
||||
|
||||
, listen: function () {
|
||||
this.$element
|
||||
.on('focus', $.proxy(this.focus, this))
|
||||
.on('blur', $.proxy(this.blur, this))
|
||||
.on('keypress', $.proxy(this.keypress, this))
|
||||
.on('keyup', $.proxy(this.keyup, this))
|
||||
|
||||
if ($.browser.webkit || $.browser.msie) {
|
||||
this.$element.on('keydown', $.proxy(this.keypress, this))
|
||||
if (this.eventSupported('keydown')) {
|
||||
this.$element.on('keydown', $.proxy(this.keydown, this))
|
||||
}
|
||||
|
||||
this.$menu
|
||||
.on('click', $.proxy(this.click, this))
|
||||
.on('mouseenter', 'li', $.proxy(this.mouseenter, this))
|
||||
.on('mouseleave', 'li', $.proxy(this.mouseleave, this))
|
||||
}
|
||||
|
||||
, keyup: function (e) {
|
||||
switch(e.keyCode) {
|
||||
case 40: // down arrow
|
||||
case 38: // up arrow
|
||||
break
|
||||
|
||||
case 9: // tab
|
||||
case 13: // enter
|
||||
if (!this.shown) return
|
||||
this.select()
|
||||
break
|
||||
|
||||
case 27: // escape
|
||||
if (!this.shown) return
|
||||
this.hide()
|
||||
break
|
||||
|
||||
default:
|
||||
this.lookup()
|
||||
, eventSupported: function(eventName) {
|
||||
var isSupported = eventName in this.$element
|
||||
if (!isSupported) {
|
||||
this.$element.setAttribute(eventName, 'return;')
|
||||
isSupported = typeof this.$element[eventName] === 'function'
|
||||
}
|
||||
return isSupported
|
||||
}
|
||||
|
||||
e.stopPropagation()
|
||||
e.preventDefault()
|
||||
}
|
||||
|
||||
, keypress: function (e) {
|
||||
, move: function (e) {
|
||||
if (!this.shown) return
|
||||
|
||||
switch(e.keyCode) {
|
||||
@@ -214,29 +220,80 @@
|
||||
e.stopPropagation()
|
||||
}
|
||||
|
||||
, keydown: function (e) {
|
||||
this.suppressKeyPressRepeat = ~$.inArray(e.keyCode, [40,38,9,13,27])
|
||||
this.move(e)
|
||||
}
|
||||
|
||||
, keypress: function (e) {
|
||||
if (this.suppressKeyPressRepeat) return
|
||||
this.move(e)
|
||||
}
|
||||
|
||||
, keyup: function (e) {
|
||||
switch(e.keyCode) {
|
||||
case 40: // down arrow
|
||||
case 38: // up arrow
|
||||
case 16: // shift
|
||||
case 17: // ctrl
|
||||
case 18: // alt
|
||||
break
|
||||
|
||||
case 9: // tab
|
||||
case 13: // enter
|
||||
if (!this.shown) return
|
||||
this.select()
|
||||
break
|
||||
|
||||
case 27: // escape
|
||||
if (!this.shown) return
|
||||
this.hide()
|
||||
break
|
||||
|
||||
default:
|
||||
this.lookup()
|
||||
}
|
||||
|
||||
e.stopPropagation()
|
||||
e.preventDefault()
|
||||
}
|
||||
|
||||
, focus: function (e) {
|
||||
this.focused = true
|
||||
}
|
||||
|
||||
, blur: function (e) {
|
||||
var that = this
|
||||
setTimeout(function () { that.hide() }, 150)
|
||||
this.focused = false
|
||||
if (!this.mousedover && this.shown) this.hide()
|
||||
}
|
||||
|
||||
, click: function (e) {
|
||||
e.stopPropagation()
|
||||
e.preventDefault()
|
||||
this.select()
|
||||
this.$element.focus()
|
||||
}
|
||||
|
||||
, mouseenter: function (e) {
|
||||
this.mousedover = true
|
||||
this.$menu.find('.active').removeClass('active')
|
||||
$(e.currentTarget).addClass('active')
|
||||
}
|
||||
|
||||
, mouseleave: function (e) {
|
||||
this.mousedover = false
|
||||
if (!this.focused && this.shown) this.hide()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* TYPEAHEAD PLUGIN DEFINITION
|
||||
* =========================== */
|
||||
|
||||
$.fn.typeahead = function ( option ) {
|
||||
var old = $.fn.typeahead
|
||||
|
||||
$.fn.typeahead = function (option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
, data = $this.data('typeahead')
|
||||
@@ -251,21 +308,28 @@
|
||||
, items: 8
|
||||
, menu: '<ul class="typeahead dropdown-menu"></ul>'
|
||||
, item: '<li><a href="#"></a></li>'
|
||||
, minLength: 1
|
||||
}
|
||||
|
||||
$.fn.typeahead.Constructor = Typeahead
|
||||
|
||||
|
||||
/* TYPEAHEAD NO CONFLICT
|
||||
* =================== */
|
||||
|
||||
$.fn.typeahead.noConflict = function () {
|
||||
$.fn.typeahead = old
|
||||
return this
|
||||
}
|
||||
|
||||
|
||||
/* TYPEAHEAD DATA-API
|
||||
* ================== */
|
||||
|
||||
$(function () {
|
||||
$('body').on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) {
|
||||
var $this = $(this)
|
||||
if ($this.data('typeahead')) return
|
||||
e.preventDefault()
|
||||
$this.typeahead($this.data())
|
||||
})
|
||||
$(document).on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) {
|
||||
var $this = $(this)
|
||||
if ($this.data('typeahead')) return
|
||||
$this.typeahead($this.data())
|
||||
})
|
||||
|
||||
}( window.jQuery );
|
||||
}(window.jQuery);
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
.pun, .opn, .clo { color: #93a1a1; }
|
||||
.fun { color: #dc322f; }
|
||||
.str, .atv { color: #D14; }
|
||||
.kwd, .linenums .tag { color: #1e347b; }
|
||||
.kwd, .prettyprint .tag { color: #1e347b; }
|
||||
.typ, .atn, .dec, .var { color: teal; }
|
||||
.pln { color: #48484c; }
|
||||
|
||||
@@ -21,10 +21,10 @@
|
||||
/* Specify class=linenums on a pre to get line numbering */
|
||||
ol.linenums {
|
||||
margin: 0 0 0 33px; /* IE indents via margin-left */
|
||||
}
|
||||
}
|
||||
ol.linenums li {
|
||||
padding-left: 12px;
|
||||
color: #bebec5;
|
||||
line-height: 18px;
|
||||
line-height: 20px;
|
||||
text-shadow: 0 1px 0 #fff;
|
||||
}
|
||||
@@ -0,0 +1,401 @@
|
||||
/*
|
||||
|
||||
Holder - 1.9 - client side image placeholders
|
||||
(c) 2012-2013 Ivan Malopinsky / http://imsky.co
|
||||
|
||||
Provided under the Apache 2.0 License: http://www.apache.org/licenses/LICENSE-2.0
|
||||
Commercial use requires attribution.
|
||||
|
||||
*/
|
||||
|
||||
var Holder = Holder || {};
|
||||
(function (app, win) {
|
||||
|
||||
var preempted = false,
|
||||
fallback = false,
|
||||
canvas = document.createElement('canvas');
|
||||
|
||||
//getElementsByClassName polyfill
|
||||
document.getElementsByClassName||(document.getElementsByClassName=function(e){var t=document,n,r,i,s=[];if(t.querySelectorAll)return t.querySelectorAll("."+e);if(t.evaluate){r=".//*[contains(concat(' ', @class, ' '), ' "+e+" ')]",n=t.evaluate(r,t,null,0,null);while(i=n.iterateNext())s.push(i)}else{n=t.getElementsByTagName("*"),r=new RegExp("(^|\\s)"+e+"(\\s|$)");for(i=0;i<n.length;i++)r.test(n[i].className)&&s.push(n[i])}return s})
|
||||
|
||||
//getComputedStyle polyfill
|
||||
window.getComputedStyle||(window.getComputedStyle=function(e,t){return this.el=e,this.getPropertyValue=function(t){var n=/(\-([a-z]){1})/g;return t=="float"&&(t="styleFloat"),n.test(t)&&(t=t.replace(n,function(){return arguments[2].toUpperCase()})),e.currentStyle[t]?e.currentStyle[t]:null},this})
|
||||
|
||||
//http://javascript.nwbox.com/ContentLoaded by Diego Perini with modifications
|
||||
function contentLoaded(n,t){var l="complete",s="readystatechange",u=!1,h=u,c=!0,i=n.document,a=i.documentElement,e=i.addEventListener?"addEventListener":"attachEvent",v=i.addEventListener?"removeEventListener":"detachEvent",f=i.addEventListener?"":"on",r=function(e){(e.type!=s||i.readyState==l)&&((e.type=="load"?n:i)[v](f+e.type,r,u),!h&&(h=!0)&&t.call(n,null))},o=function(){try{a.doScroll("left")}catch(n){setTimeout(o,50);return}r("poll")};if(i.readyState==l)t.call(n,"lazy");else{if(i.createEventObject&&a.doScroll){try{c=!n.frameElement}catch(y){}c&&o()}i[e](f+"DOMContentLoaded",r,u),i[e](f+s,r,u),n[e](f+"load",r,u)}};
|
||||
|
||||
//https://gist.github.com/991057 by Jed Schmidt with modifications
|
||||
function selector(a){
|
||||
a=a.match(/^(\W)?(.*)/);var b=document["getElement"+(a[1]?a[1]=="#"?"ById":"sByClassName":"sByTagName")](a[2]);
|
||||
var ret=[]; b!=null&&(b.length?ret=b:b.length==0?ret=b:ret=[b]); return ret;
|
||||
}
|
||||
|
||||
//shallow object property extend
|
||||
function extend(a,b){var c={};for(var d in a)c[d]=a[d];for(var e in b)c[e]=b[e];return c}
|
||||
|
||||
//hasOwnProperty polyfill
|
||||
if (!Object.prototype.hasOwnProperty)
|
||||
Object.prototype.hasOwnProperty = function(prop) {
|
||||
var proto = this.__proto__ || this.constructor.prototype;
|
||||
return (prop in this) && (!(prop in proto) || proto[prop] !== this[prop]);
|
||||
}
|
||||
|
||||
function text_size(width, height, template) {
|
||||
var dimension_arr = [height, width].sort();
|
||||
var maxFactor = Math.round(dimension_arr[1] / 16),
|
||||
minFactor = Math.round(dimension_arr[0] / 16);
|
||||
var text_height = Math.max(template.size, maxFactor);
|
||||
return {
|
||||
height: text_height
|
||||
}
|
||||
}
|
||||
|
||||
function draw(ctx, dimensions, template, ratio) {
|
||||
var ts = text_size(dimensions.width, dimensions.height, template);
|
||||
var text_height = ts.height;
|
||||
var width = dimensions.width * ratio, height = dimensions.height * ratio;
|
||||
var font = template.font ? template.font : "sans-serif";
|
||||
canvas.width = width;
|
||||
canvas.height = height;
|
||||
ctx.textAlign = "center";
|
||||
ctx.textBaseline = "middle";
|
||||
ctx.fillStyle = template.background;
|
||||
ctx.fillRect(0, 0, width, height);
|
||||
ctx.fillStyle = template.foreground;
|
||||
ctx.font = "bold " + text_height + "px "+font;
|
||||
var text = template.text ? template.text : (dimensions.width + "x" + dimensions.height);
|
||||
if (ctx.measureText(text).width / width > 1) {
|
||||
text_height = template.size / (ctx.measureText(text).width / width);
|
||||
}
|
||||
//Resetting font size if necessary
|
||||
ctx.font = "bold " + (text_height * ratio) + "px "+font;
|
||||
ctx.fillText(text, (width / 2), (height / 2), width);
|
||||
return canvas.toDataURL("image/png");
|
||||
}
|
||||
|
||||
function render(mode, el, holder, src) {
|
||||
var dimensions = holder.dimensions,
|
||||
theme = holder.theme,
|
||||
text = holder.text ? decodeURIComponent(holder.text) : holder.text;
|
||||
var dimensions_caption = dimensions.width + "x" + dimensions.height;
|
||||
theme = (text ? extend(theme, { text: text }) : theme);
|
||||
theme = (holder.font ? extend(theme, {font: holder.font}) : theme);
|
||||
|
||||
var ratio = 1;
|
||||
if(window.devicePixelRatio && window.devicePixelRatio > 1){
|
||||
ratio = window.devicePixelRatio;
|
||||
}
|
||||
|
||||
if (mode == "image") {
|
||||
el.setAttribute("data-src", src);
|
||||
el.setAttribute("alt", text ? text : theme.text ? theme.text + " [" + dimensions_caption + "]" : dimensions_caption);
|
||||
|
||||
if(fallback || !holder.auto){
|
||||
el.style.width = dimensions.width + "px";
|
||||
el.style.height = dimensions.height + "px";
|
||||
}
|
||||
|
||||
if (fallback) {
|
||||
el.style.backgroundColor = theme.background;
|
||||
|
||||
}
|
||||
else{
|
||||
el.setAttribute("src", draw(ctx, dimensions, theme, ratio));
|
||||
}
|
||||
} else {
|
||||
if (!fallback) {
|
||||
el.style.backgroundImage = "url(" + draw(ctx, dimensions, theme, ratio) + ")";
|
||||
el.style.backgroundSize = dimensions.width+"px "+dimensions.height+"px";
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function fluid(el, holder, src) {
|
||||
var dimensions = holder.dimensions,
|
||||
theme = holder.theme,
|
||||
text = holder.text;
|
||||
var dimensions_caption = dimensions.width + "x" + dimensions.height;
|
||||
theme = (text ? extend(theme, {
|
||||
text: text
|
||||
}) : theme);
|
||||
|
||||
var fluid = document.createElement("div");
|
||||
|
||||
fluid.style.backgroundColor = theme.background;
|
||||
fluid.style.color = theme.foreground;
|
||||
fluid.className = el.className + " holderjs-fluid";
|
||||
fluid.style.width = holder.dimensions.width + (holder.dimensions.width.indexOf("%")>0?"":"px");
|
||||
fluid.style.height = holder.dimensions.height + (holder.dimensions.height.indexOf("%")>0?"":"px");
|
||||
fluid.id = el.id;
|
||||
|
||||
el.style.width=0;
|
||||
el.style.height=0;
|
||||
|
||||
if (theme.text) {
|
||||
fluid.appendChild(document.createTextNode(theme.text))
|
||||
} else {
|
||||
fluid.appendChild(document.createTextNode(dimensions_caption))
|
||||
fluid_images.push(fluid);
|
||||
setTimeout(fluid_update, 0);
|
||||
}
|
||||
|
||||
el.parentNode.insertBefore(fluid, el.nextSibling)
|
||||
|
||||
if(window.jQuery){
|
||||
jQuery(function($){
|
||||
$(el).on("load", function(){
|
||||
el.style.width = fluid.style.width;
|
||||
el.style.height = fluid.style.height;
|
||||
$(el).show();
|
||||
$(fluid).remove();
|
||||
});
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
function fluid_update() {
|
||||
for (i in fluid_images) {
|
||||
if(!fluid_images.hasOwnProperty(i)) continue;
|
||||
var el = fluid_images[i],
|
||||
label = el.firstChild;
|
||||
|
||||
el.style.lineHeight = el.offsetHeight+"px";
|
||||
label.data = el.offsetWidth + "x" + el.offsetHeight;
|
||||
}
|
||||
}
|
||||
|
||||
function parse_flags(flags, options) {
|
||||
|
||||
var ret = {
|
||||
theme: settings.themes.gray
|
||||
}, render = false;
|
||||
|
||||
for (sl = flags.length, j = 0; j < sl; j++) {
|
||||
var flag = flags[j];
|
||||
if (app.flags.dimensions.match(flag)) {
|
||||
render = true;
|
||||
ret.dimensions = app.flags.dimensions.output(flag);
|
||||
} else if (app.flags.fluid.match(flag)) {
|
||||
render = true;
|
||||
ret.dimensions = app.flags.fluid.output(flag);
|
||||
ret.fluid = true;
|
||||
} else if (app.flags.colors.match(flag)) {
|
||||
ret.theme = app.flags.colors.output(flag);
|
||||
} else if (options.themes[flag]) {
|
||||
//If a theme is specified, it will override custom colors
|
||||
ret.theme = options.themes[flag];
|
||||
} else if (app.flags.text.match(flag)) {
|
||||
ret.text = app.flags.text.output(flag);
|
||||
} else if(app.flags.font.match(flag)){
|
||||
ret.font = app.flags.font.output(flag);
|
||||
}
|
||||
else if(app.flags.auto.match(flag)){
|
||||
ret.auto = true;
|
||||
}
|
||||
}
|
||||
|
||||
return render ? ret : false;
|
||||
|
||||
};
|
||||
|
||||
if (!canvas.getContext) {
|
||||
fallback = true;
|
||||
} else {
|
||||
if (canvas.toDataURL("image/png")
|
||||
.indexOf("data:image/png") < 0) {
|
||||
//Android doesn't support data URI
|
||||
fallback = true;
|
||||
} else {
|
||||
var ctx = canvas.getContext("2d");
|
||||
}
|
||||
}
|
||||
|
||||
var fluid_images = [];
|
||||
|
||||
var settings = {
|
||||
domain: "holder.js",
|
||||
images: "img",
|
||||
bgnodes: ".holderjs",
|
||||
themes: {
|
||||
"gray": {
|
||||
background: "#eee",
|
||||
foreground: "#aaa",
|
||||
size: 12
|
||||
},
|
||||
"social": {
|
||||
background: "#3a5a97",
|
||||
foreground: "#fff",
|
||||
size: 12
|
||||
},
|
||||
"industrial": {
|
||||
background: "#434A52",
|
||||
foreground: "#C2F200",
|
||||
size: 12
|
||||
}
|
||||
},
|
||||
stylesheet: ".holderjs-fluid {font-size:16px;font-weight:bold;text-align:center;font-family:sans-serif;margin:0}"
|
||||
};
|
||||
|
||||
|
||||
app.flags = {
|
||||
dimensions: {
|
||||
regex: /^(\d+)x(\d+)$/,
|
||||
output: function (val) {
|
||||
var exec = this.regex.exec(val);
|
||||
return {
|
||||
width: +exec[1],
|
||||
height: +exec[2]
|
||||
}
|
||||
}
|
||||
},
|
||||
fluid: {
|
||||
regex: /^([0-9%]+)x([0-9%]+)$/,
|
||||
output: function (val) {
|
||||
var exec = this.regex.exec(val);
|
||||
return {
|
||||
width: exec[1],
|
||||
height: exec[2]
|
||||
}
|
||||
}
|
||||
},
|
||||
colors: {
|
||||
regex: /#([0-9a-f]{3,})\:#([0-9a-f]{3,})/i,
|
||||
output: function (val) {
|
||||
var exec = this.regex.exec(val);
|
||||
return {
|
||||
size: settings.themes.gray.size,
|
||||
foreground: "#" + exec[2],
|
||||
background: "#" + exec[1]
|
||||
}
|
||||
}
|
||||
},
|
||||
text: {
|
||||
regex: /text\:(.*)/,
|
||||
output: function (val) {
|
||||
return this.regex.exec(val)[1];
|
||||
}
|
||||
},
|
||||
font: {
|
||||
regex: /font\:(.*)/,
|
||||
output: function(val){
|
||||
return this.regex.exec(val)[1];
|
||||
}
|
||||
},
|
||||
auto: {
|
||||
regex: /^auto$/
|
||||
}
|
||||
}
|
||||
|
||||
for (var flag in app.flags) {
|
||||
if(!app.flags.hasOwnProperty(flag)) continue;
|
||||
app.flags[flag].match = function (val) {
|
||||
return val.match(this.regex)
|
||||
}
|
||||
}
|
||||
|
||||
app.add_theme = function (name, theme) {
|
||||
name != null && theme != null && (settings.themes[name] = theme);
|
||||
return app;
|
||||
};
|
||||
|
||||
app.add_image = function (src, el) {
|
||||
var node = selector(el);
|
||||
if (node.length) {
|
||||
for (var i = 0, l = node.length; i < l; i++) {
|
||||
var img = document.createElement("img")
|
||||
img.setAttribute("data-src", src);
|
||||
node[i].appendChild(img);
|
||||
}
|
||||
}
|
||||
return app;
|
||||
};
|
||||
|
||||
app.run = function (o) {
|
||||
var options = extend(settings, o), images = [];
|
||||
|
||||
if(options.images instanceof window.NodeList){
|
||||
imageNodes = options.images;
|
||||
}
|
||||
else if(options.images instanceof window.Node){
|
||||
imageNodes = [options.images];
|
||||
}
|
||||
else{
|
||||
imageNodes = selector(options.images);
|
||||
}
|
||||
|
||||
if(options.elements instanceof window.NodeList){
|
||||
bgnodes = options.bgnodes;
|
||||
}
|
||||
else if(options.bgnodes instanceof window.Node){
|
||||
bgnodes = [options.bgnodes];
|
||||
}
|
||||
else{
|
||||
bgnodes = selector(options.bgnodes);
|
||||
}
|
||||
|
||||
preempted = true;
|
||||
|
||||
for (i = 0, l = imageNodes.length; i < l; i++) images.push(imageNodes[i]);
|
||||
|
||||
var holdercss = document.getElementById("holderjs-style");
|
||||
|
||||
if(!holdercss){
|
||||
holdercss = document.createElement("style");
|
||||
holdercss.setAttribute("id", "holderjs-style");
|
||||
holdercss.type = "text/css";
|
||||
document.getElementsByTagName("head")[0].appendChild(holdercss);
|
||||
}
|
||||
|
||||
if(holdercss.styleSheet){
|
||||
holdercss.styleSheet += options.stylesheet;
|
||||
}
|
||||
else{
|
||||
holdercss.textContent+= options.stylesheet;
|
||||
}
|
||||
|
||||
var cssregex = new RegExp(options.domain + "\/(.*?)\"?\\)");
|
||||
|
||||
for (var l = bgnodes.length, i = 0; i < l; i++) {
|
||||
var src = window.getComputedStyle(bgnodes[i], null)
|
||||
.getPropertyValue("background-image");
|
||||
var flags = src.match(cssregex);
|
||||
if (flags) {
|
||||
var holder = parse_flags(flags[1].split("/"), options);
|
||||
if (holder) {
|
||||
render("background", bgnodes[i], holder, src);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (var l = images.length, i = 0; i < l; i++) {
|
||||
var src = images[i].getAttribute("src") || images[i].getAttribute("data-src");
|
||||
if (src != null && src.indexOf(options.domain) >= 0) {
|
||||
var holder = parse_flags(src.substr(src.lastIndexOf(options.domain) + options.domain.length + 1)
|
||||
.split("/"), options);
|
||||
if (holder) {
|
||||
if (holder.fluid) {
|
||||
fluid(images[i], holder, src);
|
||||
} else {
|
||||
render("image", images[i], holder, src);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return app;
|
||||
};
|
||||
|
||||
contentLoaded(win, function () {
|
||||
if (window.addEventListener) {
|
||||
window.addEventListener("resize", fluid_update, false);
|
||||
window.addEventListener("orientationchange", fluid_update, false);
|
||||
} else {
|
||||
window.attachEvent("onresize", fluid_update)
|
||||
}
|
||||
preempted || app.run();
|
||||
});
|
||||
|
||||
if ( typeof define === "function" && define.amd ) {
|
||||
define( "Holder", [], function () { return app; } );
|
||||
}
|
||||
|
||||
})(Holder, window);
|
||||
@@ -0,0 +1,8 @@
|
||||
/*
|
||||
HTML5 Shiv v3.6.2pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
|
||||
*/
|
||||
(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag();
|
||||
a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x<style>article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}</style>";
|
||||
c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="<xyz></xyz>";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode||
|
||||
"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",version:"3.6.2pre",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);if(g)return a.createDocumentFragment();
|
||||
for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d<h;d++)c.createElement(e[d]);return c}};l.html5=e;q(f)})(this,document);
|
||||
@@ -2,7 +2,7 @@
|
||||
var hogan = require('hogan.js')
|
||||
, fs = require('fs')
|
||||
, prod = process.argv[2] == 'production'
|
||||
, title = 'Twitter Bootstrap'
|
||||
, title = 'Bootstrap'
|
||||
|
||||
var layout, pages
|
||||
|
||||
|
||||
|
Antes Largura: | Altura: | Tamanho: 3.3 KiB Depois Largura: | Altura: | Tamanho: 2.2 KiB |
|
Antes Largura: | Altura: | Tamanho: 10 KiB Depois Largura: | Altura: | Tamanho: 4.5 KiB |
|
Antes Largura: | Altura: | Tamanho: 472 B Depois Largura: | Altura: | Tamanho: 365 B |
|
Antes Largura: | Altura: | Tamanho: 115 B Depois Largura: | Altura: | Tamanho: 81 B |