bootstrap-rails-engine 2.3.2.0 → 3.0.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8b3e5930a264da0b755bdd96750df35bdc4195d3
4
- data.tar.gz: aac00c04582af3e8452f1a70ce314ae6784a3624
3
+ metadata.gz: 8538d9ef41c6b159d6bac8fb5fe37cddc1dc68e4
4
+ data.tar.gz: 2817c5435fbc8ac279c5db99d424fadeab9a14ba
5
5
  SHA512:
6
- metadata.gz: 13fc0ac3c7253795a9e1b3232db627210f379fd6866b4a3899a28625ba4db6934767324aef6d28625769ff4f6c9267a9bad5721a8a9ad6d569c88085853caacd
7
- data.tar.gz: 231e61b5e6c9a52af19996c4265e6f892475a31aa5874af707f56f93dcc6135337f95ffa2293c085a4d7f80887ad9397ca30b0757e6f73c8dddf4043b5f2aca0
6
+ metadata.gz: 797794db77a3826bde20eefb0a5b74e980306d311018a496791f720da7d164cc04e8244dc29f93cc82721c4dc6a240e3a81d196b1498d578444424a7a6a72a40
7
+ data.tar.gz: 2e21ee7ef5b835bf79b7d91f38fd95a6a8302a3c534f20e9de0e1868449c24a3d30b5535ee83afae1dc104623df6a0b319585e1fae3ba94cc9b06b523f3faaf8
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
@@ -1,3 +1,3 @@
1
- R���Aˊ��Fӑ��9�z�����ݯL�G5o7��f�{�S<\�S���Zs�{F1�
2
- kK5Sϣ���^O�� �1�,^��mr��\fu�F�����#��
3
- |f���Y,%���-�o�%V�<t��8��>Xy�����tE���L�!T �!�C�<� �Vz�ȯ�tE ī���^������"��w�����[�Oq�ykH��F����ɚAށ�N������7W��0k������>
1
+ ���R����$�B��,%-<�h���!��h����j��y���g��
2
+ jvU�y`��%��>A�ѡ��R{"�;����;�N䃣2���Ky��䓎��
3
+ ��ge�.�(0����5!�M���(��Q5F]�KR�qɞ`�3� /��]&��|��-���BZ�(����a=�,�!����]��\���J�b9Ľo���|0!��tE���u�zYn%s�r�M\G=mFJ���/��䍆����
data/README.md CHANGED
@@ -2,8 +2,12 @@
2
2
  Make [Twitter Bootstrap](http://twitter.github.com/bootstrap) into Rails Engine. [Bootstrap-datepicker](https://github.com/eternicode/bootstrap-datepicker) is also included.
3
3
 
4
4
  ## Version
5
- Bootstrap 2.3.2
6
- Bootstrap-datepicker 1.1.2
5
+ * Bootstrap 3.0.0rc1
6
+ * Bootstrap-datepicker 1.1.3
7
+
8
+ ### Older Versions
9
+
10
+ For Bootstrap 2.3.x, try [2.3 branch](https://github.com/yjchen/bootstrap-rails-engine/tree/2.3) or gem version around 2.3.x.x.
7
11
 
8
12
  ## Rails 3.1 or later
9
13
  Include Gemfile,
@@ -0,0 +1,175 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <metadata></metadata>
5
+ <defs>
6
+ <font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
7
+ <font-face units-per-em="1200" ascent="960" descent="-240" />
8
+ <missing-glyph horiz-adv-x="500" />
9
+ <glyph />
10
+ <glyph />
11
+ <glyph unicode="&#xd;" />
12
+ <glyph unicode=" " />
13
+ <glyph unicode="*" d="M100 500v200h259l-183 183l141 141l183 -183v259h200v-259l183 183l141 -141l-183 -183h259v-200h-259l183 -183l-141 -141l-183 183v-259h-200v259l-183 -183l-141 141l183 183h-259z" />
14
+ <glyph unicode="+" d="M0 400v300h400v400h300v-400h400v-300h-400v-400h-300v400h-400z" />
15
+ <glyph unicode="&#x20ac;" d="M100 500l100 100h113q0 47 5 100h-218l100 100h135q37 167 112 257q117 141 297 141q242 0 354 -189q60 -103 66 -209h-181q0 55 -25.5 99t-63.5 68t-75 36.5t-67 12.5q-24 0 -52.5 -10t-63 -32t-65.5 -67t-50 -107h379l-100 -100h-300q-6 -46 -6 -100h406l-100 -100 h-300q9 -74 33 -132t52.5 -91t62 -54.5t59 -29t46.5 -7.5q29 0 66 13t75 37t63.5 67.5t25.5 96.5h174q-31 -172 -128 -278q-107 -117 -274 -117q-207 0 -324 158q-36 46 -69 131.5t-45 205.5h-217z" />
16
+ <glyph unicode="&#x2212;" d="M200 400h900v300h-900v-300z" />
17
+ <glyph unicode="&#x2709;" d="M0 100l400 400l200 -200l200 200l400 -400h-1200zM0 300v600l300 -300zM0 1100l600 -603l600 603h-1200zM900 600l300 300v-600z" />
18
+ <glyph unicode="&#x270f;" d="M-13 -13l333 112l-223 223zM187 403l214 -214l614 614l-214 214zM887 1103l214 -214l99 92q13 13 13 32.5t-13 33.5l-153 153q-15 13 -33 13t-33 -13z" />
19
+ <glyph unicode="&#xe000;" horiz-adv-x="500" d="M0 0z" />
20
+ <glyph unicode="&#xe001;" d="M0 1200h1200l-500 -550v-550h300v-100h-800v100h300v550z" />
21
+ <glyph unicode="&#xe002;" d="M14 84q18 -55 86 -75.5t147 5.5q65 21 109 69t44 90v606l600 155v-521q-64 16 -138 -7q-79 -26 -122.5 -83t-25.5 -111q18 -55 86 -75.5t147 4.5q70 23 111.5 63.5t41.5 95.5v881q0 10 -7 15.5t-17 2.5l-752 -193q-10 -3 -17 -12.5t-7 -19.5v-689q-64 17 -138 -7 q-79 -25 -122.5 -82t-25.5 -112z" />
22
+ <glyph unicode="&#xe003;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233z" />
23
+ <glyph unicode="&#xe005;" d="M100 784q0 64 28 123t73 100.5t104.5 64t119 20.5t120 -38.5t104.5 -104.5q48 69 109.5 105t121.5 38t118.5 -20.5t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-149.5 152.5t-126.5 127.5 t-94 124.5t-33.5 117.5z" />
24
+ <glyph unicode="&#xe006;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447z" />
25
+ <glyph unicode="&#xe007;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM237 700l196 -142l-73 -226l192 140l195 -141l-74 229l193 140h-235l-77 211l-78 -211h-239z" />
26
+ <glyph unicode="&#xe008;" d="M0 0v143l400 257v100q-37 0 -68.5 74.5t-31.5 125.5v200q0 124 88 212t212 88t212 -88t88 -212v-200q0 -51 -31.5 -125.5t-68.5 -74.5v-100l400 -257v-143h-1200z" />
27
+ <glyph unicode="&#xe009;" d="M0 0v1100h1200v-1100h-1200zM100 100h100v100h-100v-100zM100 300h100v100h-100v-100zM100 500h100v100h-100v-100zM100 700h100v100h-100v-100zM100 900h100v100h-100v-100zM300 100h600v400h-600v-400zM300 600h600v400h-600v-400zM1000 100h100v100h-100v-100z M1000 300h100v100h-100v-100zM1000 500h100v100h-100v-100zM1000 700h100v100h-100v-100zM1000 900h100v100h-100v-100z" />
28
+ <glyph unicode="&#xe010;" d="M0 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM0 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5zM600 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM600 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5z" />
29
+ <glyph unicode="&#xe011;" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 450v200q0 21 14.5 35.5t35.5 14.5h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5z" />
30
+ <glyph unicode="&#xe012;" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v200q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5 t-14.5 -35.5v-200zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5z" />
31
+ <glyph unicode="&#xe013;" d="M29 454l419 -420l818 820l-212 212l-607 -607l-206 207z" />
32
+ <glyph unicode="&#xe014;" d="M106 318l282 282l-282 282l212 212l282 -282l282 282l212 -212l-282 -282l282 -282l-212 -212l-282 282l-282 -282z" />
33
+ <glyph unicode="&#xe015;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233zM300 600v200h100v100h200v-100h100v-200h-100v-100h-200v100h-100z" />
34
+ <glyph unicode="&#xe016;" d="M23 694q0 200 142 342t342 142t342 -142t142 -342q0 -141 -78 -262l300 -299q7 -7 7 -18t-7 -18l-109 -109q-8 -8 -18 -8t-18 8l-300 299q-120 -77 -261 -77q-200 0 -342 142t-142 342zM176 694q0 -136 97 -233t234 -97t233.5 97t96.5 233t-96.5 233t-233.5 97t-234 -97 t-97 -233zM300 601h400v200h-400v-200z" />
35
+ <glyph unicode="&#xe017;" d="M23 600q0 183 105 331t272 210v-166q-103 -55 -165 -155t-62 -220q0 -177 125 -302t302 -125t302 125t125 302q0 120 -62 220t-165 155v166q167 -62 272 -210t105 -331q0 -118 -45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5 zM500 750q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v400q0 21 -14.5 35.5t-35.5 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-400z" />
36
+ <glyph unicode="&#xe018;" d="M100 1h200v300h-200v-300zM400 1v500h200v-500h-200zM700 1v800h200v-800h-200zM1000 1v1200h200v-1200h-200z" />
37
+ <glyph unicode="&#xe019;" d="M26 601q0 -33 6 -74l151 -38l2 -6q14 -49 38 -93l3 -5l-80 -134q45 -59 105 -105l133 81l5 -3q45 -26 94 -39l5 -2l38 -151q40 -5 74 -5q27 0 74 5l38 151l6 2q46 13 93 39l5 3l134 -81q56 44 104 105l-80 134l3 5q24 44 39 93l1 6l152 38q5 40 5 74q0 28 -5 73l-152 38 l-1 6q-16 51 -39 93l-3 5l80 134q-44 58 -104 105l-134 -81l-5 3q-45 25 -93 39l-6 1l-38 152q-40 5 -74 5q-27 0 -74 -5l-38 -152l-5 -1q-50 -14 -94 -39l-5 -3l-133 81q-59 -47 -105 -105l80 -134l-3 -5q-25 -47 -38 -93l-2 -6l-151 -38q-6 -48 -6 -73zM385 601 q0 88 63 151t152 63t152 -63t63 -151q0 -89 -63 -152t-152 -63t-152 63t-63 152z" />
38
+ <glyph unicode="&#xe020;" d="M100 1025v50q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-50q0 -11 -7 -18t-18 -7h-1050q-11 0 -18 7t-7 18zM200 100v800h900v-800q0 -41 -29.5 -71t-70.5 -30h-700q-41 0 -70.5 30 t-29.5 71zM300 100h100v700h-100v-700zM500 100h100v700h-100v-700zM500 1100h300v100h-300v-100zM700 100h100v700h-100v-700zM900 100h100v700h-100v-700z" />
39
+ <glyph unicode="&#xe021;" d="M1 601l656 644l644 -644h-200v-600h-300v400h-300v-400h-300v600h-200z" />
40
+ <glyph unicode="&#xe022;" d="M100 25v1150q0 11 7 18t18 7h475v-500h400v-675q0 -11 -7 -18t-18 -7h-850q-11 0 -18 7t-7 18zM700 800v300l300 -300h-300z" />
41
+ <glyph unicode="&#xe023;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM173 600q0 -176 125 -301.5t302 -125.5t302 125.5t125 301.5 q0 177 -125 302t-302 125t-302 -125t-125 -302zM500 500v400h100v-300h200v-100h-300z" />
42
+ <glyph unicode="&#xe024;" d="M-100 0l431 1200h209l-21 -300h162l-20 300h208l431 -1200h-538l-41 400h-242l-40 -400h-539zM488 500h224l-27 300h-170z" />
43
+ <glyph unicode="&#xe025;" d="M0 0v400h490l-290 300h200v500h300v-500h200l-290 -300h490v-400h-1100zM813 200h175v100h-175v-100z" />
44
+ <glyph unicode="&#xe026;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM173 600q0 -176 125 -301.5t302 -125.5t302 125.5t125 301.5 q0 177 -125 302t-302 125t-302 -125t-125 -302zM350 600h150v300h200v-300h150l-250 -300z" />
45
+ <glyph unicode="&#xe027;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM173 600q0 -176 125 -301.5t302 -125.5t302 125.5t125 301.5 q0 177 -125 302t-302 125t-302 -125t-125 -302zM350 600h150v-300h200v300h150l-250 300z" />
46
+ <glyph unicode="&#xe028;" d="M0 25v475l200 700h800q199 -700 200 -700v-475q0 -11 -7 -18t-18 -7h-1150q-11 0 -18 7t-7 18zM200 500h200l50 -200h300l50 200h200l-97 500h-606z" />
47
+ <glyph unicode="&#xe029;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM173 601q0 -176 125 -301.5t302 -125.5t302 125.5t125 301.5 q0 177 -125 302t-302 125t-302 -125t-125 -302zM500 397v401l297 -200z" />
48
+ <glyph unicode="&#xe030;" d="M23 600q0 -118 45.5 -224.5t123 -184t184 -123t224.5 -45.5t224.5 45.5t184 123t123 184t45.5 224.5h-150q0 -177 -125 -302t-302 -125t-302 125t-125 302t125 302t302 125q136 0 246 -81l-146 -146h400v400l-145 -145q-157 122 -355 122q-118 0 -224.5 -45.5t-184 -123 t-123 -184t-45.5 -224.5z" />
49
+ <glyph unicode="&#xe031;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5q198 0 355 -122l145 145v-400h-400l147 147q-112 80 -247 80q-177 0 -302 -125t-125 -302h-150zM100 0v400h400l-147 -147q112 -80 247 -80q177 0 302 125t125 302h150q0 -118 -45.5 -224.5t-123 -184t-184 -123 t-224.5 -45.5q-198 0 -355 122z" />
50
+ <glyph unicode="&#xe032;" d="M100 0h1100v1200h-1100v-1200zM200 100v900h900v-900h-900zM300 200v100h100v-100h-100zM300 400v100h100v-100h-100zM300 600v100h100v-100h-100zM300 800v100h100v-100h-100zM500 200h500v100h-500v-100zM500 400v100h500v-100h-500zM500 600v100h500v-100h-500z M500 800v100h500v-100h-500z" />
51
+ <glyph unicode="&#xe033;" d="M0 100v600q0 41 29.5 70.5t70.5 29.5h100v200q0 82 59 141t141 59h300q82 0 141 -59t59 -141v-200h100q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-900q-41 0 -70.5 29.5t-29.5 70.5zM400 800h300v150q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-150z" />
52
+ <glyph unicode="&#xe034;" d="M100 0v1100h100v-1100h-100zM300 400q60 60 127.5 84t127.5 17.5t122 -23t119 -30t110 -11t103 42t91 120.5v500q-40 -81 -101.5 -115.5t-127.5 -29.5t-138 25t-139.5 40t-125.5 25t-103 -29.5t-65 -115.5v-500z" />
53
+ <glyph unicode="&#xe035;" d="M0 275q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 127 70.5 231.5t184.5 161.5t245 57t245 -57t184.5 -161.5t70.5 -231.5v-300q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v275v25q0 116 -49.5 227t-131 192.5t-192.5 131t-227 49.5t-227 -49.5t-192.5 -131t-131 -192.5 t-49.5 -227v-300zM200 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14zM800 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14z" />
54
+ <glyph unicode="&#xe036;" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM688 459l141 141l-141 141l71 71l141 -141l141 141l71 -71l-141 -141l141 -141l-71 -71l-141 141l-141 -141z" />
55
+ <glyph unicode="&#xe037;" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM700 857l69 53q111 -135 111 -310q0 -169 -106 -302l-67 54q86 110 86 248q0 146 -93 257z" />
56
+ <glyph unicode="&#xe038;" d="M0 401v400h300l300 200v-800l-300 200h-300zM702 858l69 53q111 -135 111 -310q0 -170 -106 -303l-67 55q86 108 86 248q0 145 -93 257zM889 951l7 -8q123 -151 123 -344q0 -189 -119 -339l-7 -8l81 -66l6 8q142 178 142 405q0 230 -144 408l-6 8z" />
57
+ <glyph unicode="&#xe039;" d="M0 0h500v500h-200v100h-100v-100h-200v-500zM0 600h100v100h400v100h100v100h-100v300h-500v-600zM100 100v300h300v-300h-300zM100 800v300h300v-300h-300zM200 200v100h100v-100h-100zM200 900h100v100h-100v-100zM500 500v100h300v-300h200v-100h-100v-100h-200v100 h-100v100h100v200h-200zM600 0v100h100v-100h-100zM600 1000h100v-300h200v-300h300v200h-200v100h200v500h-600v-200zM800 800v300h300v-300h-300zM900 0v100h300v-100h-300zM900 900v100h100v-100h-100zM1100 200v100h100v-100h-100z" />
58
+ <glyph unicode="&#xe040;" d="M0 200h100v1000h-100v-1000zM100 0v100h300v-100h-300zM200 200v1000h100v-1000h-100zM500 0v91h100v-91h-100zM500 200v1000h200v-1000h-200zM700 0v91h100v-91h-100zM800 200v1000h100v-1000h-100zM900 0v91h200v-91h-200zM1000 200v1000h200v-1000h-200z" />
59
+ <glyph unicode="&#xe041;" d="M1 700v475q0 10 7.5 17.5t17.5 7.5h474l700 -700l-500 -500zM148 953q0 -42 29 -71q30 -30 71.5 -30t71.5 30q29 29 29 71t-29 71q-30 30 -71.5 30t-71.5 -30q-29 -29 -29 -71z" />
60
+ <glyph unicode="&#xe042;" d="M2 700v475q0 11 7 18t18 7h474l700 -700l-500 -500zM148 953q0 -42 30 -71q29 -30 71 -30t71 30q30 29 30 71t-30 71q-29 30 -71 30t-71 -30q-30 -29 -30 -71zM701 1200h100l700 -700l-500 -500l-50 50l450 450z" />
61
+ <glyph unicode="&#xe043;" d="M100 0v1025l175 175h925v-1000l-100 -100v1000h-750l-100 -100h750v-1000h-900z" />
62
+ <glyph unicode="&#xe044;" d="M200 0l450 444l450 -443v1150q0 20 -14.5 35t-35.5 15h-800q-21 0 -35.5 -15t-14.5 -35v-1151z" />
63
+ <glyph unicode="&#xe045;" d="M0 100v700h200l100 -200h600l100 200h200v-700h-200v200h-800v-200h-200zM253 829l40 -124h592l62 124l-94 346q-2 11 -10 18t-18 7h-450q-10 0 -18 -7t-10 -18zM281 24l38 152q2 10 11.5 17t19.5 7h500q10 0 19.5 -7t11.5 -17l38 -152q2 -10 -3.5 -17t-15.5 -7h-600 q-10 0 -15.5 7t-3.5 17z" />
64
+ <glyph unicode="&#xe046;" d="M0 200q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-150q-4 8 -11.5 21.5t-33 48t-53 61t-69 48t-83.5 21.5h-200q-41 0 -82 -20.5t-70 -50t-52 -59t-34 -50.5l-12 -20h-150q-41 0 -70.5 -29.5t-29.5 -70.5v-600z M356 500q0 100 72 172t172 72t172 -72t72 -172t-72 -172t-172 -72t-172 72t-72 172zM494 500q0 -44 31 -75t75 -31t75 31t31 75t-31 75t-75 31t-75 -31t-31 -75zM900 700v100h100v-100h-100z" />
65
+ <glyph unicode="&#xe047;" d="M53 0h365v66q-41 0 -72 11t-49 38t1 71l92 234h391q67 -181 82 -222q16 -45 -5.5 -88.5t-74.5 -43.5v-66h417v66q-34 1 -74 43q-18 19 -33 42t-21 37l-6 13l-385 998h-93l-399 -1006q-24 -48 -52 -75q-12 -12 -33 -25t-36 -20l-15 -7v-66zM416 521l178 457l46 -140 l116 -317h-340z" />
66
+ <glyph unicode="&#xe048;" d="M100 0v89q41 7 70.5 32.5t29.5 65.5v827q0 28 -1 39.5t-5.5 26t-15.5 21t-29 13.5t-49 14v71h471q76 0 145.5 -37.5t115 -111.5t45.5 -167q0 -55 -11.5 -101.5t-28 -74t-33.5 -47.5t-28 -28l-12 -7q8 -3 21.5 -9t48 -31.5t60.5 -58t47.5 -91.5t21.5 -129 q0 -84 -59 -156.5t-142 -111t-162 -38.5h-500zM400 200h161q89 0 153 48.5t64 132.5q0 90 -62.5 154.5t-156.5 64.5h-159v-400zM400 700h139q76 0 130 61.5t54 138.5q0 82 -84 130.5t-239 48.5v-379z" />
67
+ <glyph unicode="&#xe049;" d="M200 0v57q77 7 134.5 40.5t65.5 80.5l173 849q10 56 -10 74t-91 37q-6 1 -10.5 2.5t-9.5 2.5v57h425l2 -57q-33 -8 -62 -25.5t-46 -37t-29.5 -38t-17.5 -30.5l-5 -12l-128 -825q-10 -52 14 -82t95 -36v-57h-500z" />
68
+ <glyph unicode="&#xe050;" d="M-75 200h75v800h-75l125 167l125 -167h-75v-800h75l-125 -167zM300 900v300h150h700h150v-300h-50q0 29 -8 48.5t-18.5 30t-33.5 15t-39.5 5.5t-50.5 1h-200v-850l100 -50v-100h-400v100l100 50v850h-200q-34 0 -50.5 -1t-40 -5.5t-33.5 -15t-18.5 -30t-8.5 -48.5h-49z " />
69
+ <glyph unicode="&#xe051;" d="M33 51l167 125v-75h800v75l167 -125l-167 -125v75h-800v-75zM100 901v300h150h700h150v-300h-50q0 29 -8 48.5t-18 30t-33.5 15t-40 5.5t-50.5 1h-200v-650l100 -50v-100h-400v100l100 50v650h-200q-34 0 -50.5 -1t-39.5 -5.5t-33.5 -15t-18.5 -30t-8 -48.5h-50z" />
70
+ <glyph unicode="&#xe052;" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 350q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM0 650q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1000q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 950q0 -20 14.5 -35t35.5 -15h600q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-600q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
71
+ <glyph unicode="&#xe053;" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 650q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM200 350q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM200 950q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
72
+ <glyph unicode="&#xe054;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1000q-21 0 -35.5 15 t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-600 q-21 0 -35.5 15t-14.5 35z" />
73
+ <glyph unicode="&#xe055;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100 q-21 0 -35.5 15t-14.5 35z" />
74
+ <glyph unicode="&#xe056;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM300 50v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800 q-21 0 -35.5 15t-14.5 35zM300 650v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 950v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15 h-800q-21 0 -35.5 15t-14.5 35z" />
75
+ <glyph unicode="&#xe057;" d="M-101 500v100h201v75l166 -125l-166 -125v75h-201zM300 0h100v1100h-100v-1100zM500 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35 v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 650q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100 q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100z" />
76
+ <glyph unicode="&#xe058;" d="M1 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 650 q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM801 0v1100h100v-1100 h-100zM934 550l167 -125v75h200v100h-200v75z" />
77
+ <glyph unicode="&#xe059;" d="M0 275v650q0 31 22 53t53 22h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53zM900 600l300 300v-600z" />
78
+ <glyph unicode="&#xe060;" d="M0 44v1012q0 18 13 31t31 13h1112q19 0 31.5 -13t12.5 -31v-1012q0 -18 -12.5 -31t-31.5 -13h-1112q-18 0 -31 13t-13 31zM100 263l247 182l298 -131l-74 156l293 318l236 -288v500h-1000v-737zM208 750q0 56 39 95t95 39t95 -39t39 -95t-39 -95t-95 -39t-95 39t-39 95z " />
79
+ <glyph unicode="&#xe062;" d="M219 725q0 -116 60 -249q65 -114 158.5 -231.5t154.5 -178.5l61 -61q22 25 59.5 69t132 167t163.5 231q70 142 70 258q0 117 -57.5 218.5t-156.5 161t-216 59.5q-116 0 -215 -61t-156.5 -163.5t-57.5 -219.5zM431 752q0 92 64.5 157t156.5 65t157 -65t65 -157t-65 -156.5 t-157 -64.5t-156.5 64.5t-64.5 156.5z" />
80
+ <glyph unicode="&#xe063;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM173 600q0 -176 125 -301.5t302 -125.5v854q-177 0 -302 -125t-125 -302z " />
81
+ <glyph unicode="&#xe064;" d="M117 406q0 94 34 186t88.5 172.5t112 159t115 177t87.5 194.5q21 -71 57.5 -142.5t76 -130.5t83 -118.5t82 -117t70 -116t50 -125.5t18.5 -136q0 -89 -39 -165.5t-102 -126.5t-140 -79.5t-156 -33.5q-114 6 -211.5 53t-161.5 138.5t-64 210.5zM243 414q14 -82 59.5 -136 t136.5 -80l16 98q-7 6 -18 17t-34 48t-33 77q-15 73 -14 143.5t10 122.5l9 51q-92 -110 -119.5 -185t-12.5 -156z" />
82
+ <glyph unicode="&#xe065;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5q366 -6 397 -14l-186 -186h-311q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v125l200 200v-225q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM436 341l161 50l412 412l-114 113l-405 -405zM994 1015l114 -113l113 113l-21 85l-92 28z" />
83
+ <glyph unicode="&#xe066;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h261l2 -80q-133 -32 -218 -120h-145q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-53q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5 zM423 524q30 38 81.5 64t103 35.5t99 14t77.5 3.5l29 -1v-209l360 324l-359 318v-216q-7 0 -19 -1t-48 -8t-69.5 -18.5t-76.5 -37t-76.5 -59t-62 -88t-39.5 -121.5z" />
84
+ <glyph unicode="&#xe067;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-169q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM342 632l283 -284l566 567l-136 137l-430 -431l-147 147z" />
85
+ <glyph unicode="&#xe068;" d="M0 603l300 296v-198h200v200h-200l300 300l295 -300h-195v-200h200v198l300 -296l-300 -300v198h-200v-200h195l-295 -300l-300 300h200v200h-200v-198z" />
86
+ <glyph unicode="&#xe069;" d="M200 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-1100l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
87
+ <glyph unicode="&#xe070;" d="M0 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-487l500 487v-1100l-500 488v-488l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
88
+ <glyph unicode="&#xe071;" d="M136 550l564 550v-487l500 487v-1100l-500 488v-488z" />
89
+ <glyph unicode="&#xe072;" d="M200 0l900 550l-900 550v-1100z" />
90
+ <glyph unicode="&#xe073;" d="M200 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-800zM600 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
91
+ <glyph unicode="&#xe074;" d="M200 150q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v800q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
92
+ <glyph unicode="&#xe075;" d="M0 0v1100l500 -487v487l564 -550l-564 -550v488z" />
93
+ <glyph unicode="&#xe076;" d="M0 0v1100l500 -487v487l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-500 -488v488z" />
94
+ <glyph unicode="&#xe077;" d="M300 0v1100l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438z" />
95
+ <glyph unicode="&#xe078;" d="M100 250v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5zM100 500h1100l-550 564z" />
96
+ <glyph unicode="&#xe079;" d="M136 550v1l551 550l198 -197l-352 -353l352 -353l-198 -198z" />
97
+ <glyph unicode="&#xe080;" d="M315 198l198 -198l552 550l-1 1l-551 550l-198 -197l353 -353z" />
98
+ <glyph unicode="&#xe081;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM300 500h200v-200h200v200h200v200h-200v200h-200v-200h-200v-200z" />
99
+ <glyph unicode="&#xe082;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM300 500h600v200h-600v-200z" />
100
+ <glyph unicode="&#xe083;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM247 459l212 -212l141 141l141 -141l213 212l-142 141l142 142l-213 212 l-141 -142l-141 142l-212 -212l141 -142z" />
101
+ <glyph unicode="&#xe084;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM270 551l276 -277l411 411l-175 174l-236 -236l-102 102z" />
102
+ <glyph unicode="&#xe085;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM364 700h143q4 0 11.5 -1t11 -0.5t6.5 3t3 8.5t1 11t3.5 8.5t3.5 6t5.5 4 t6.5 2.5t9 1.5t9 0.5h11.5h12.5q19 0 30 -10t11 -26q0 -21 -4.5 -27.5t-26.5 -21.5q-5 -1 -12.5 -3.5t-27 -13.5t-34 -27t-26.5 -46.5t-11 -68.5h200q5 3 14 8t31.5 25.5t39.5 46t31 69t14 93.5q0 51 -17.5 89t-42 58t-58.5 32t-58.5 15t-51.5 3q-50 0 -90.5 -12t-75 -38.5 t-53.5 -74.5t-19 -114zM500 300h200v100h-200v-100z" />
103
+ <glyph unicode="&#xe086;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM400 300h400v100h-100v300h-300v-100h100v-200h-100v-100zM500 800h200 v100h-200v-100z" />
104
+ <glyph unicode="&#xe087;" d="M0 500v200h194q15 60 36 104.5t55.5 86t88 69t126.5 40.5v200h200v-200q54 -20 113 -60t112.5 -105.5t71.5 -134.5h6h165h32v-200h-203q-25 -102 -116.5 -186t-180.5 -117v-197h-200v197q-140 27 -208 102.5t-98 200.5h-194zM290 500q24 -73 79.5 -127.5t130.5 -78.5v206 h200v-206q149 48 201 206h-201v200h200q-25 74 -76 127.5t-124 76.5v-204h-200v203q-75 -24 -130 -77.5t-79 -125.5h209v-200h-210z" />
105
+ <glyph unicode="&#xe088;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM173 600q0 -176 125 -301.5t302 -125.5t302 125.5t125 301.5 q0 177 -125 302t-302 125t-302 -125t-125 -302zM384 465l135 135l-135 135l81 81l135 -135l135 135l81 -81l-135 -135l135 -135l-81 -81l-135 136l-135 -136z" />
106
+ <glyph unicode="&#xe089;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM173 600q0 -176 125 -301.5t302 -125.5t302 125.5t125 301.5 q0 177 -125 302t-302 125t-302 -125t-125 -302zM350 537l113 113l87 -87l204 204l113 -113l-317 -317z" />
107
+ <glyph unicode="&#xe090;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM173 600q0 -119 66 -225l586 587q-105 65 -225 65q-177 0 -302 -125 t-125 -302zM381 235q104 -62 219 -62q177 0 302 125.5t125 301.5q0 117 -62 219z" />
108
+ <glyph unicode="&#xe091;" d="M0 547l600 453v-300h600v-300h-600v-301z" />
109
+ <glyph unicode="&#xe092;" d="M0 400v300h600v300l600 -453l-600 -448v301h-600z" />
110
+ <glyph unicode="&#xe093;" d="M204 600l450 600l444 -600h-298v-600h-300v600h-296z" />
111
+ <glyph unicode="&#xe094;" d="M104 600h296v600h300v-600h298l-449 -600z" />
112
+ <glyph unicode="&#xe095;" d="M0 200q5 105 27 193t68 167t113 135t166.5 91.5t225.5 42.5v271l600 -453l-600 -448v301q-94 -2 -182.5 -20t-170.5 -52.5t-147 -92.5t-100 -135z" />
113
+ <glyph unicode="&#xe096;" d="M0 0v400l129 -129l294 294l142 -142l-294 -294l129 -129h-400zM635 777l142 -142l294 294l129 -129v400h-400l129 -129z" />
114
+ <glyph unicode="&#xe097;" d="M34 176l295 295l-129 129h400v-400l-129 130l-295 -295zM600 600v400l129 -129l295 295l142 -142l-295 -294l129 -130h-400z" />
115
+ <glyph unicode="&#xe101;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM456 851l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5 t21.5 34.5l58 302q4 20 -8 34.5t-33 14.5h-207q-20 0 -32 -14.5t-8 -34.5zM500 300h200v100h-200v-100z" />
116
+ <glyph unicode="&#xe102;" d="M0 800h100v-200h400v300h200v-300h400v200h100v100h-111v6t-1 15t-3 18l-34 172q-11 39 -41.5 63t-69.5 24q-32 0 -61 -17l-239 -144q-22 -13 -40 -35q-19 24 -40 36l-238 144q-33 18 -62 18q-39 0 -69.5 -23t-40.5 -61l-35 -177q-2 -8 -3 -18t-1 -15v-6h-111v-100z M100 0h400v400h-400v-400zM200 900q-3 0 14 48t35 96l18 47l214 -191h-281zM700 0v400h400v-400h-400zM731 900l202 197q5 -12 12 -32.5t23 -64t25 -72t7 -28.5h-269z" />
117
+ <glyph unicode="&#xe103;" d="M0 -22v143l216 193q-9 53 -13 83t-5.5 94t9 113t38.5 114t74 124q47 60 99.5 102.5t103 68t127.5 48t145.5 37.5t184.5 43.5t220 58.5q0 -189 -22 -343t-59 -258t-89 -181.5t-108.5 -120t-122 -68t-125.5 -30t-121.5 -1.5t-107.5 12.5t-87.5 17t-56.5 7.5l-99 -55z M238.5 300.5q19.5 -6.5 86.5 76.5q55 66 367 234q70 38 118.5 69.5t102 79t99 111.5t86.5 148q22 50 24 60t-6 19q-7 5 -17 5t-26.5 -14.5t-33.5 -39.5q-35 -51 -113.5 -108.5t-139.5 -89.5l-61 -32q-369 -197 -458 -401q-48 -111 -28.5 -117.5z" />
118
+ <glyph unicode="&#xe104;" d="M111 408q0 -33 5 -63q9 -56 44 -119.5t105 -108.5q31 -21 64 -16t62 23.5t57 49.5t48 61.5t35 60.5q32 66 39 184.5t-13 157.5q79 -80 122 -164t26 -184q-4 -23 -14 -51.5t-20 -49t-24 -49.5q-10 -19 -14.5 -29t-12 -26t-9 -23.5t-3 -19t2.5 -15.5t11 -9.5t19.5 -5 t30.5 2.5t42 8q57 20 91 34t87.5 44.5t87 64t65.5 88.5t47 122q38 172 -44.5 341.5t-246.5 278.5q22 -44 43 -129q39 -159 -32 -154q-15 2 -33 9q-79 33 -120.5 100t-44 175.5t48.5 257.5q-13 -8 -34 -23.5t-72.5 -66.5t-88.5 -105.5t-60 -138t-8 -166.5q2 -12 8 -41.5 t8 -43t6 -39.5t3.5 -39.5t-1 -33.5t-6 -31.5t-13.5 -24t-21 -20.5t-31 -12q-38 -10 -67 13t-40.5 61.5t-15 81.5t10.5 75q-52 -46 -83.5 -101t-39 -107t-7.5 -85z" />
119
+ <glyph unicode="&#xe105;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5t145.5 -23.5t132.5 -59t116.5 -83.5t97 -90t74.5 -85.5t49 -63.5t20 -30l26 -40l-26 -40q-6 -10 -20 -30t-49 -63.5t-74.5 -85.5t-97 -90t-116.5 -83.5t-132.5 -59t-145.5 -23.5 t-145.5 23.5t-132.5 59t-116.5 83.5t-97 90t-74.5 85.5t-49 63.5t-20 30zM120 600q7 -10 40.5 -58t56 -78.5t68 -77.5t87.5 -75t103 -49.5t125 -21.5t123.5 20t100.5 45.5t85.5 71.5t66.5 75.5t58 81.5t47 66q-1 1 -28.5 37.5t-42 55t-43.5 53t-57.5 63.5t-58.5 54 q49 -74 49 -163q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l105 105q-37 24 -75 72t-57 84l-20 36z" />
120
+ <glyph unicode="&#xe106;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5q61 0 121 -17l37 142h148l-314 -1200h-148l37 143q-82 21 -165 71.5t-140 102t-109.5 112t-72 88.5t-29.5 43zM119 600q37 -48 65.5 -82.5t84 -93t118.5 -100t126 -60.5l37 141 q-107 18 -178.5 101.5t-71.5 193.5q0 85 46 158q-97 -83 -227 -258zM377 656q49 -124 154 -191l47 47l23 87q-30 28 -59.5 69t-43.5 68l-15 26zM780 161l38 145q22 15 45 34t45.5 43.5t40.5 44.5t40.5 49.5t34 44.5t32 44t24.5 34q-83 113 -139 175l38 146 q68 -54 132.5 -125.5t87.5 -103.5t36 -52l26 -40l-26 -40q-7 -12 -25.5 -38t-63.5 -79.5t-95.5 -102.5t-124 -100t-146.5 -79z" />
121
+ <glyph unicode="&#xe107;" d="M-97.5 34q13.5 -34 50.5 -34h1294q37 0 50.5 35.5t-7.5 67.5l-642 1056q-20 33 -48 36t-48 -29l-642 -1066q-21 -32 -7.5 -66zM155 200l445 723l445 -723h-345v100h-200v-100h-345zM500 600l100 -300l100 300v100h-200v-100z" />
122
+ <glyph unicode="&#xe108;" d="M100 262v41q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44t106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -91 100 -113v-64q0 -20 -13 -28.5t-32 0.5l-94 78h-222l-94 -78q-19 -9 -32 -0.5t-13 28.5 v64q0 22 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5z" />
123
+ <glyph unicode="&#xe109;" d="M0 50q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v750h-1100v-750zM0 900h1100v150q0 21 -14.5 35.5t-35.5 14.5h-150v100h-100v-100h-500v100h-100v-100h-150q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 100v100h100v-100h-100zM100 300v100h100v-100h-100z M100 500v100h100v-100h-100zM300 100v100h100v-100h-100zM300 300v100h100v-100h-100zM300 500v100h100v-100h-100zM500 100v100h100v-100h-100zM500 300v100h100v-100h-100zM500 500v100h100v-100h-100zM700 100v100h100v-100h-100zM700 300v100h100v-100h-100zM700 500 v100h100v-100h-100zM900 100v100h100v-100h-100zM900 300v100h100v-100h-100zM900 500v100h100v-100h-100z" />
124
+ <glyph unicode="&#xe110;" d="M0 200v200h259l600 600h241v198l300 -295l-300 -300v197h-159l-600 -600h-341zM0 800h259l122 -122l141 142l-181 180h-341v-200zM678 381l141 142l122 -123h159v198l300 -295l-300 -300v197h-241z" />
125
+ <glyph unicode="&#xe111;" d="M0 400v600q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5z" />
126
+ <glyph unicode="&#xe112;" d="M100 600v200h300v-250v-26v-55.5t3.5 -50t11 -47.5t22 -37t35.5 -31.5t53.5 -18t74.5 -7.5t74.5 8t53.5 18.5t35.5 32t22 38t11 48t3.5 49.5v54v25v250h300v-200q0 -42 -3 -83t-15 -104t-31.5 -116t-58 -109.5t-89 -96.5t-129 -65.5t-174.5 -25.5t-174.5 25.5t-129 65.5 t-89 96.5t-58 109.5t-31.5 116t-15 104t-3 83zM100 900v300h300v-300h-300zM800 900v300h300v-300h-300z" />
127
+ <glyph unicode="&#xe113;" d="M-1 410l198 -198l353 353l353 -353l198 198l-550 552z" />
128
+ <glyph unicode="&#xe114;" d="M99 797l551 -551l550 551l-198 198l-353 -352l-352 352z" />
129
+ <glyph unicode="&#xe115;" d="M-198 700l299 283l300 -283h-203v-400h385l215 -200h-800v600h-196zM402 1000l215 -200h381v-400h-199l300 -283l299 283h-200v600h-796z" />
130
+ <glyph unicode="&#xe116;" d="M18 939q-5 24 10 42q14 19 39 19h896l38 162q5 17 18.5 27.5t30.5 10.5h94q20 0 35 -14.5t15 -35.5t-15 -35.5t-35 -14.5h-54l-201 -961q-2 -4 -6 -10.5t-19 -17.5t-33 -11h-31v-50q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-300v-50q0 -21 -14.5 -35.5 t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h535l48 200h-633q-32 0 -54.5 21t-27.5 43z" />
131
+ <glyph unicode="&#xe117;" d="M0 0v800h1200v-800h-1200zM0 900v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-100h-1200z" />
132
+ <glyph unicode="&#xe118;" d="M1 0l300 700h1200l-300 -700h-1200zM1 400v600h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-200h-1000z" />
133
+ <glyph unicode="&#xe119;" d="M302 300h198v600h-198l298 300l298 -300h-198v-600h198l-298 -300z" />
134
+ <glyph unicode="&#xe120;" d="M0 600l300 298v-198h600v198l300 -298l-300 -297v197h-600v-197z" />
135
+ <glyph unicode="&#xe121;" d="M0 100v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM31 400l172 739q5 22 23 41.5t38 19.5h672q19 0 37.5 -22.5t23.5 -45.5l172 -732h-1138zM800 100h100v100h-100v-100z M1000 100h100v100h-100v-100z" />
136
+ <glyph unicode="&#xe122;" d="M-101 600v50q0 24 25 49t50 38l25 13v-250l-11 5.5t-24 14t-30 21.5t-24 27.5t-11 31.5zM100 500v250v8v8v7t0.5 7t1.5 5.5t2 5t3 4t4.5 3.5t6 1.5t7.5 0.5h200l675 250v-850l-675 200h-38l47 -276q2 -12 -3 -17.5t-11 -6t-21 -0.5h-8h-83q-20 0 -34.5 14t-18.5 35 q-55 337 -55 351zM1100 200v850q0 21 14.5 35.5t35.5 14.5q20 0 35 -14.5t15 -35.5v-850q0 -20 -15 -35t-35 -15q-21 0 -35.5 15t-14.5 35z" />
137
+ <glyph unicode="&#xe123;" d="M74 350q0 21 13.5 35.5t33.5 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3 32t29 13h94q20 0 29 -10.5t3 -29.5q-18 -36 -18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q20 0 33.5 -14.5t13.5 -35.5q0 -20 -13 -40t-31 -27q-22 -9 -63 -23 t-167.5 -37t-251.5 -23t-245.5 20.5t-178.5 41.5l-58 20q-18 7 -31 27.5t-13 40.5zM497 110q12 -49 40 -79.5t63 -30.5t63 30.5t39 79.5q-48 -6 -102 -6t-103 6z" />
138
+ <glyph unicode="&#xe124;" d="M21 445l233 -45l-78 -224l224 78l45 -233l155 179l155 -179l45 233l224 -78l-78 224l234 45l-180 155l180 156l-234 44l78 225l-224 -78l-45 233l-155 -180l-155 180l-45 -233l-224 78l78 -225l-233 -44l179 -156z" />
139
+ <glyph unicode="&#xe125;" d="M0 200v600h200v-600h-200zM300 275v400q0 37 20 63l145 196l96 198q14 28 38 48t51 20h50q39 0 69.5 -40.5t30.5 -84.5v-150l-28 -125h328q39 0 69.5 -40.5t30.5 -84.5v-100q0 -43 -29 -74l-238 -344q-37 -57 -83 -57h-250q-7 0 -41.5 25t-66.5 50l-31 25h-61 q-100 0 -100 75z" />
140
+ <glyph unicode="&#xe126;" d="M0 400v600h200v-600h-200zM300 525v400q0 75 100 75h61q123 100 139 100h250q46 0 83 -57l238 -344q29 -31 29 -74v-100q0 -44 -30.5 -84.5t-69.5 -40.5h-328q28 -118 28 -125v-150q0 -44 -30.5 -84.5t-69.5 -40.5h-50q-27 0 -51 20t-38 48l-96 198l-145 196 q-20 26 -20 63z" />
141
+ <glyph unicode="&#xe127;" d="M8 200v600h200v-600h-200zM308 275q0 -13 83 -94t90 -81h341q15 0 28.5 19.5t20.5 41.5l130 339h107q84 0 138.5 39t54.5 111t-53.5 110t-138.5 38h-302l85 121q11 15 10.5 34t-13.5 32l-110 112q-22 22 -53 6l-362 -230q-6 -4 -15.5 -10.5t-25 -26t-15.5 -36.5v-525z M408 289v503l339 236l86 -83l-147 -183q-17 -23 -5 -47q2 -3 4 -5.5t4 -4t5.5 -2.5t5 -1.5t6 -1t6.5 -0.5h7.5h6.5h457q22 0 30.5 -25t-0.5 -50t-30 -25h-203q-15 0 -28.5 -20t-19.5 -41l-131 -339h-293z" />
142
+ <glyph unicode="&#xe128;" d="M-101 651q0 -72 55 -111t139 -39h107l130 -339q6 -21 19.5 -41t29.5 -20h341q8 0 94 80.5t86 93.5v526q0 17 -15 35.5t-30 27.5l-15 10l-365 230q-32 14 -54 -6l-109 -113q-13 -13 -13.5 -32t10.5 -34l85 -121q-101 1 -302 1q-85 0 -139 -38t-54 -110zM-1 601v100h476 h6.5h7.5t6.5 0.5t6.5 1t5.5 1.5t5 2.5l4 4t3.5 5.5q13 24 -5 46l-145 184l87 83l343 -237v-502l-107 -89h-293l-131 339q-6 20 -19.5 40.5t-28.5 20.5h-222zM1000 201v600h200v-600h-200z" />
143
+ <glyph unicode="&#xe129;" d="M97 719l230 -363q4 -6 10.5 -15.5t26 -25t36.5 -15.5h525q13 0 94 83t81 90v342q0 15 -20 28.5t-41 19.5l-339 131v106q0 84 -39 139t-111 55t-110 -53.5t-38 -138.5v-302l-121 84q-15 12 -33.5 11.5t-32.5 -13.5l-112 -110q-22 -22 -6 -53zM172 739l83 86l183 -146 q22 -18 47 -5q3 1 5.5 3.5l4 4t2.5 5t1.5 5.5t1 6.5t0.5 6v7.5v7v456q0 22 25 31t50 -0.5t25 -30.5v-203q0 -15 20 -28.5t41 -19.5l339 -131v-293l-89 -100h-503zM400 0v200h600v-200h-600z" />
144
+ <glyph unicode="&#xe130;" d="M1 585q-15 -31 7 -53l112 -110q13 -13 32 -13.5t34 10.5l121 85q0 -51 -0.5 -153.5t-0.5 -148.5q0 -84 38.5 -138t110.5 -54t111 55t39 139v106l339 131q20 6 40.5 19.5t20.5 28.5v342q0 7 -81 90t-94 83h-525q-17 0 -35.5 -14t-28.5 -28l-10 -15zM76 565l237 339h503 l89 -100v-294l-340 -130q-21 -7 -40.5 -20.5t-19.5 -28.5v-202q0 -22 -25 -31t-50 0t-25 31v456v14.5t-1.5 11.5t-5 12t-9.5 7q-24 13 -46 -5l-184 -146zM305 1104v200h600v-200h-600z" />
145
+ <glyph unicode="&#xe131;" d="M22 600q0 157 77.5 290.5t210.5 210.5t290 77t290 -77t210.5 -210.5t77.5 -290.5t-77.5 -290t-210.5 -210.5t-290 -77.5t-290 77.5t-210.5 210.5t-77.5 290zM298 500h300v-194l402 294l-402 299v-198h-300v-201z" />
146
+ <glyph unicode="&#xe132;" d="M22 600q0 157 77.5 290.5t210.5 210.5t290 77t290 -77t210.5 -210.5t77.5 -290.5t-77.5 -290t-210.5 -210.5t-290 -77.5t-290 77.5t-210.5 210.5t-77.5 290zM200 600l400 -294v194h300v201h-298v198z" />
147
+ <glyph unicode="&#xe133;" d="M22 600q0 157 77.5 290.5t210.5 210.5t290 77t290 -77t210.5 -210.5t77.5 -290.5t-77.5 -290t-210.5 -210.5t-290 -77.5t-290 77.5t-210.5 210.5t-77.5 290zM302 599h197v-300h201v300h194l-294 401z" />
148
+ <glyph unicode="&#xe134;" d="M22 600q0 157 77.5 290.5t210.5 210.5t290 77t290 -77t210.5 -210.5t77.5 -290.5t-77.5 -290t-210.5 -210.5t-290 -77.5t-290 77.5t-210.5 210.5t-77.5 290zM306 602l294 -402l298 402h-197v300h-201v-300h-194z" />
149
+ <glyph unicode="&#xe135;" d="M24 600q0 154 78 287t211 211t287 78t287 -78t211 -211t78 -287t-78 -287t-211 -211t-287 -78t-287 78t-211 211t-78 287zM254 780q-8 -33 5.5 -92.5t7.5 -87.5q0 -9 17 -44t16 -60q12 0 23 -5.5t23 -15t20 -13.5q16 -8 34 -15t40 -14.5t34 -12.5q22 -8 53 -31.5 t59.5 -38.5t57.5 -11q8 -18 -15 -55t-20 -57q42 -71 87 -80q0 -6 -3 -15.5t-3.5 -14.5t4.5 -17q104 -3 221 112q30 29 47 47t34.5 49.5t20.5 62.5q-14 9 -37.5 9t-35.5 7q-14 8 -49 15.5t-52 18.5q-9 0 -39.5 -0.5t-46.5 -1.5t-39 -6.5t-39 -16.5q-50 -35 -66 -12 q-4 2 -3.5 25.5t0.5 25.5q-6 13 -26.5 17t-24.5 7q2 22 -2 41t-16.5 28t-38.5 -20q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q12 -19 32 -37.5t34 -27.5l14 -8q0 3 9.5 39.5t5.5 57.5q-4 23 14.5 44.5t22.5 31.5q5 14 10 35t8.5 31t15.5 22.5 t34 22.5q-6 17 10 36q8 0 23.5 -1.5t24.5 -1.5t20.5 4.5t20.5 15.5q-10 23 -30.5 42.5t-38 30t-49 26.5t-43.5 23q11 41 1 44q31 -13 58.5 -14.5t39.5 3.5l11 4q6 36 -17 53.5t-64 28.5t-56 23q-20 -3 -37 1q-16 -13 -37.5 -21.5t-34 -12t-44 -8.5t-38.5 -6 q-15 -3 -45.5 0.5t-45.5 -2.5q-22 -8 -52.5 -27t-33.5 -34q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -90.5t-29.5 -79.5zM518 916q3 12 16 30t16 25q10 -10 18.5 -10t14 6t14.5 14.5t16 12.5q0 -17 8 -41.5t16.5 -44.5t9.5 -24q-9 2 -39.5 6t-52 10t-37.5 16z" />
150
+ <glyph unicode="&#xe136;" d="M0 164.5q0 21.5 15 37.5l600 599q-33 101 6 201.5t135 154.5q164 92 306 -9l-259 -138l145 -232l251 126q13 -175 -151 -267q-123 -70 -253 -23l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5z" />
151
+ <glyph unicode="&#xe137;" horiz-adv-x="1220" d="M0 196v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 596v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5zM0 996v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM600 596h500v100h-500v-100zM800 196h300v100h-300v-100zM900 996h200v100h-200v-100z" />
152
+ <glyph unicode="&#xe138;" d="M100 1100v100h1000v-100h-1000zM150 1000h900l-350 -500v-300l-200 -200v500z" />
153
+ <glyph unicode="&#xe139;" d="M0 200v200h1200v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500z M500 1000h200v100h-200v-100z" />
154
+ <glyph unicode="&#xe140;" d="M0 0v400l129 -129l200 200l142 -142l-200 -200l129 -129h-400zM0 800l129 129l200 -200l142 142l-200 200l129 129h-400v-400zM729 329l142 142l200 -200l129 129v-400h-400l129 129zM729 871l200 200l-129 129h400v-400l-129 129l-200 -200z" />
155
+ <glyph unicode="&#xe141;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM173 600q0 -176 125.5 -301.5t301.5 -125.5q177 0 302 125.5t125 301.5 q0 177 -125 302t-302 125q-176 0 -301.5 -125t-125.5 -302zM291 655q0 23 16 39t38 16q23 0 39 -16t16 -39t-16 -39t-39 -16q-22 0 -38 16t-16 39zM400 850q0 22 16 38.5t39 16.5q22 0 38 -16t16 -39t-16 -39t-38 -16q-23 0 -39 16.5t-16 38.5zM513 609q0 32 21 56.5 t52 29.5l122 126l1 1q-9 14 -9 28q0 22 16 38.5t39 16.5q22 0 38 -16t16 -39t-16 -39t-38 -16q-16 0 -29 10l-55 -145q17 -22 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-62 25.5t-26 61.5zM800 655q0 23 16 39t39 16q22 0 38 -16t16 -39t-16 -39t-38 -16q-23 0 -39 16t-16 39z " />
156
+ <glyph unicode="&#xe142;" d="M-40 375q-13 -95 35 -173q35 -57 94 -89t129 -32q63 0 119 28q33 16 65 40.5t52.5 45.5t59.5 64q40 44 57 61l394 394q35 35 47 84t-3 96q-27 87 -117 104q-20 2 -29 2q-46 0 -79.5 -17t-67.5 -51l-388 -396l-7 -7l69 -67l377 373q20 22 39 38q23 23 50 23q38 0 53 -36 q16 -39 -20 -75l-547 -547q-52 -52 -125 -52q-55 0 -100 33t-54 96q-5 35 2.5 66t31.5 63t42 50t56 54q24 21 44 41l348 348q52 52 82.5 79.5t84 54t107.5 26.5q25 0 48 -4q95 -17 154 -94.5t51 -175.5q-7 -101 -98 -192l-252 -249l-253 -256l7 -7l69 -60l517 511 q67 67 95 157t11 183q-16 87 -67 154t-130 103q-69 33 -152 33q-107 0 -197 -55q-39 -23 -111 -95l-512 -512q-68 -68 -81 -163z" />
157
+ <glyph unicode="&#xe143;" d="M99 785q0 64 28 122.5t73 100t104.5 64t119 20.5t120 -38.5t105.5 -104.5q48 69 109.5 105t121.5 38t118.5 -20.5t102.5 -64t71 -100t27 -122.5q0 -70 -55.5 -151.5t-129.5 -151t-182.5 -181t-182.5 -212.5q-62 85 -145.5 174t-150 152.5t-127 127t-94 124.5t-33.5 118z M229 785q0 -31 29.5 -75t64.5 -80.5t97 -97.5q17 -16 25 -24q101 -98 204 -217q85 97 209 219q127 125 163 171q48 62 48 104q0 78 -53.5 132.5t-120.5 54.5q-85 0 -147 -91l-102 -147l-97 150q-58 88 -141 88q-68 0 -123.5 -55.5t-55.5 -131.5z" />
158
+ <glyph unicode="&#xe144;" d="M57 353q0 -95 66 -159l141 -142q66 -66 159 -66t159 66l283 283q66 66 66 159t-66 159l-141 141q-3 4 -19 17l-105 -105l212 -212l-389 -389l-247 248l95 95l-18 18q-46 45 -75 101l-55 -55q-66 -66 -66 -159zM269 706q0 -93 66 -159l141 -141q3 -3 9.5 -9t8.5 -8 l106 105l-212 212l389 389l247 -247l-95 -96l17 -17q47 -47 78 -100l29 29q35 35 62.5 88t27.5 96q0 93 -66 159l-141 141q-66 66 -159 66q-95 0 -159 -66l-283 -283q-66 -64 -66 -159z" />
159
+ <glyph unicode="&#xe145;" d="M200 100v953q0 21 30 46t81 48t129 38t163 15t162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5zM300 300h600v700h-600v-700zM496 150q0 -43 30.5 -73.5t73.5 -30.5t73.5 30.5t30.5 73.5t-30.5 73.5t-73.5 30.5 t-73.5 -30.5t-30.5 -73.5z" />
160
+ <glyph unicode="&#xe146;" d="M0 0l303 380l207 208l-210 212h300l267 279l-35 36q-15 14 -15 35t15 35q14 15 35 15t35 -15l283 -282q15 -15 15 -36t-15 -35q-14 -15 -35 -15t-35 15l-36 35l-279 -267v-300l-212 210l-208 -207z" />
161
+ <glyph unicode="&#xe148;" d="M295 433h139q5 -77 48.5 -126.5t117.5 -64.5v335q-6 1 -15.5 4t-11.5 3q-46 14 -79 26.5t-72 36t-62.5 52t-40 72.5t-16.5 99q0 92 44 159.5t109 101t144 40.5v78h100v-79q38 -4 72.5 -13.5t75.5 -31.5t71 -53.5t51.5 -84t24.5 -118.5h-159q-8 72 -35 109.5t-101 50.5 v-307l64 -14q34 -7 64 -16.5t70 -31.5t67.5 -52t47.5 -80.5t20 -112.5q0 -139 -89 -224t-244 -96v-77h-100v78q-152 17 -237 104q-40 40 -52.5 93.5t-15.5 139.5zM466 889q0 -36 9 -60t31 -38t36 -19.5t47 -13.5q7 -2 11 -3v274q-61 -8 -97.5 -37.5t-36.5 -102.5zM700 237 q170 18 170 151q0 64 -44 99.5t-126 60.5v-311z" />
162
+ <glyph unicode="&#xe149;" d="M100 600v100h166q-24 49 -44 104q-10 26 -14.5 55.5t-3 72.5t25 90t68.5 87q97 88 263 88q129 0 230 -89t101 -208h-153q0 52 -34 89.5t-74 51.5t-76 14q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -28 16.5 -69.5t28 -62.5t41.5 -72h241v-100h-197q8 -50 -2.5 -115 t-31.5 -94q-41 -59 -99 -113q35 11 84 18t70 7q32 1 102 -16t104 -17q76 0 136 30l50 -147q-41 -25 -80.5 -36.5t-59 -13t-61.5 -1.5q-23 0 -128 33t-155 29q-39 -4 -82 -17t-66 -25l-24 -11l-55 145l16.5 11t15.5 10t13.5 9.5t14.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221z" />
163
+ <glyph unicode="&#xe150;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM602 900l298 300l298 -300h-198v-900h-200v900h-198z" />
164
+ <glyph unicode="&#xe151;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v200h100v-100h200v-100h-300zM700 400v100h300v-200h-99v-100h-100v100h99v100h-200zM700 700v500h300v-500h-100v100h-100v-100h-100zM801 900h100v200h-100v-200z" />
165
+ <glyph unicode="&#xe152;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v500h300v-500h-100v100h-100v-100h-100zM700 700v200h100v-100h200v-100h-300zM700 1100v100h300v-200h-99v-100h-100v100h99v100h-200zM801 200h100v200h-100v-200z" />
166
+ <glyph unicode="&#xe153;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 100v400h300v-500h-100v100h-200zM800 1100v100h200v-500h-100v400h-100zM901 200h100v200h-100v-200z" />
167
+ <glyph unicode="&#xe154;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 400v100h200v-500h-100v400h-100zM800 800v400h300v-500h-100v100h-200zM901 900h100v200h-100v-200z" />
168
+ <glyph unicode="&#xe155;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h500v-200h-500zM700 400v200h400v-200h-400zM700 700v200h300v-200h-300zM700 1000v200h200v-200h-200z" />
169
+ <glyph unicode="&#xe156;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h200v-200h-200zM700 400v200h300v-200h-300zM700 700v200h400v-200h-400zM700 1000v200h500v-200h-500z" />
170
+ <glyph unicode="&#xe157;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q162 0 281 -118.5t119 -281.5v-300q0 -165 -118.5 -282.5t-281.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500z" />
171
+ <glyph unicode="&#xe158;" d="M0 400v300q0 163 119 281.5t281 118.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-163 0 -281.5 117.5t-118.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM400 300l333 250l-333 250v-500z" />
172
+ <glyph unicode="&#xe159;" d="M0 400v300q0 163 117.5 281.5t282.5 118.5h300q163 0 281.5 -119t118.5 -281v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 700l250 -333l250 333h-500z" />
173
+ <glyph unicode="&#xe160;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -162 -118.5 -281t-281.5 -119h-300q-165 0 -282.5 118.5t-117.5 281.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 400h500l-250 333z" />
174
+ </font>
175
+ </defs></svg>
@@ -18,7 +18,7 @@
18
18
  * limitations under the License.
19
19
  * ========================================================= */
20
20
 
21
- !function( $ ) {
21
+ (function( $ ) {
22
22
 
23
23
  function UTCDate(){
24
24
  return new Date(Date.UTC.apply(Date, arguments));
@@ -36,7 +36,6 @@
36
36
  this._process_options(options);
37
37
 
38
38
  this.element = $(element);
39
- this.format = DPGlobal.parseFormat(this.o.format);
40
39
  this.isInline = false;
41
40
  this.isInput = this.element.is('input');
42
41
  this.component = this.element.is('.date') ? this.element.find('.add-on, .btn') : false;
@@ -247,10 +246,8 @@
247
246
  type: event,
248
247
  date: local_date,
249
248
  format: $.proxy(function(altformat){
250
- var format = this.format;
251
- if (altformat)
252
- format = DPGlobal.parseFormat(altformat);
253
- return DPGlobal.formatDate(date, format, this.language);
249
+ var format = altformat || this.o.format;
250
+ return DPGlobal.formatDate(date, format, this.o.language);
254
251
  }, this)
255
252
  });
256
253
  },
@@ -329,7 +326,7 @@
329
326
 
330
327
  getFormattedDate: function(format) {
331
328
  if (format === undefined)
332
- format = this.format;
329
+ format = this.o.format;
333
330
  return DPGlobal.formatDate(this.date, format, this.o.language);
334
331
  },
335
332
 
@@ -378,7 +375,7 @@
378
375
  delete this.element.data().date;
379
376
  }
380
377
 
381
- this.date = DPGlobal.parseDate(date, this.format, this.o.language);
378
+ this.date = DPGlobal.parseDate(date, this.o.format, this.o.language);
382
379
 
383
380
  if(fromArgs) this.setValue();
384
381
 
@@ -636,10 +633,14 @@
636
633
  this._setDate(date, which);
637
634
  break;
638
635
  case 'clear':
636
+ var element;
639
637
  if (this.isInput)
640
- this.element.val("");
641
- else
642
- this.element.find('input').val("");
638
+ element = this.element;
639
+ else if (this.component)
640
+ element = this.element.find('input');
641
+ if (element)
642
+ element.val("").change();
643
+ this._trigger('changeDate');
643
644
  this.update();
644
645
  if (this.o.autoclose)
645
646
  this.hide();
@@ -1069,6 +1070,8 @@
1069
1070
  },
1070
1071
  parseDate: function(date, format, language) {
1071
1072
  if (date instanceof Date) return date;
1073
+ if (typeof format === 'string')
1074
+ format = DPGlobal.parseFormat(format);
1072
1075
  if (/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/.test(date)) {
1073
1076
  var part_re = /([\-+]\d+)([dmwy])/,
1074
1077
  parts = date.match(/([\-+]\d+)([dmwy])/g),
@@ -1159,6 +1162,8 @@
1159
1162
  return date;
1160
1163
  },
1161
1164
  formatDate: function(date, format, language){
1165
+ if (typeof format === 'string')
1166
+ format = DPGlobal.parseFormat(format);
1162
1167
  var val = {
1163
1168
  d: date.getUTCDate(),
1164
1169
  D: dates[language].daysShort[date.getUTCDay()],
@@ -1244,4 +1249,4 @@
1244
1249
  $('[data-provide="datepicker-inline"]').datepicker();
1245
1250
  });
1246
1251
 
1247
- }( window.jQuery );
1252
+ }( window.jQuery ));
@@ -0,0 +1,4 @@
1
+ /* bootstrap-datepicker.js 1.1.3
2
+ * http://www.eyecon.ro/bootstrap-datepicker
3
+ */
4
+ !function(t){function e(){return new Date(Date.UTC.apply(Date,arguments))}function a(e,a){var i,s=t(e).data(),n={},h=new RegExp("^"+a.toLowerCase()+"([A-Z])"),a=new RegExp("^"+a.toLowerCase());for(var r in s)a.test(r)&&(i=r.replace(h,function(t,e){return e.toLowerCase()}),n[i]=s[r]);return n}function i(e){var a={};if(r[e]||(e=e.split("-")[0],r[e])){var i=r[e];return t.each(t.fn.datepicker.locale_opts,function(t,e){e in i&&(a[e]=i[e])}),a}}var s=function(e,a){this._process_options(a),this.element=t(e),this.isInline=!1,this.isInput=this.element.is("input"),this.component=this.element.is(".date")?this.element.find(".add-on, .btn"):!1,this.hasInput=this.component&&this.element.find("input").length,this.component&&0===this.component.length&&(this.component=!1),this.picker=t(o.template),this._buildEvents(),this._attachEvents(),this.isInline?this.picker.addClass("datepicker-inline").appendTo(this.element):this.picker.addClass("datepicker-dropdown dropdown-menu"),this.o.rtl&&(this.picker.addClass("datepicker-rtl"),this.picker.find(".prev i, .next i").toggleClass("icon-arrow-left icon-arrow-right")),this.viewMode=this.o.startView,this.o.calendarWeeks&&this.picker.find("tfoot th.today").attr("colspan",function(t,e){return parseInt(e)+1}),this._allow_update=!1,this.setStartDate(this.o.startDate),this.setEndDate(this.o.endDate),this.setDaysOfWeekDisabled(this.o.daysOfWeekDisabled),this.fillDow(),this.fillMonths(),this._allow_update=!0,this.update(),this.showMode(),this.isInline&&this.show()};s.prototype={constructor:s,_process_options:function(e){this._o=t.extend({},this._o,e);var a=this.o=t.extend({},this._o),i=a.language;switch(r[i]||(i=i.split("-")[0],r[i]||(i=t.fn.datepicker.defaults.language)),a.language=i,a.startView){case 2:case"decade":a.startView=2;break;case 1:case"year":a.startView=1;break;default:a.startView=0}switch(a.minViewMode){case 1:case"months":a.minViewMode=1;break;case 2:case"years":a.minViewMode=2;break;default:a.minViewMode=0}a.startView=Math.max(a.startView,a.minViewMode),a.weekStart%=7,a.weekEnd=(a.weekStart+6)%7;var s=o.parseFormat(a.format);a.startDate!==-1/0&&(a.startDate=o.parseDate(a.startDate,s,a.language)),1/0!==a.endDate&&(a.endDate=o.parseDate(a.endDate,s,a.language)),a.daysOfWeekDisabled=a.daysOfWeekDisabled||[],t.isArray(a.daysOfWeekDisabled)||(a.daysOfWeekDisabled=a.daysOfWeekDisabled.split(/[,\s]*/)),a.daysOfWeekDisabled=t.map(a.daysOfWeekDisabled,function(t){return parseInt(t,10)})},_events:[],_secondaryEvents:[],_applyEvents:function(t){for(var e,a,i=0;i<t.length;i++)e=t[i][0],a=t[i][1],e.on(a)},_unapplyEvents:function(t){for(var e,a,i=0;i<t.length;i++)e=t[i][0],a=t[i][1],e.off(a)},_buildEvents:function(){this.isInput?this._events=[[this.element,{focus:t.proxy(this.show,this),keyup:t.proxy(this.update,this),keydown:t.proxy(this.keydown,this)}]]:this.component&&this.hasInput?this._events=[[this.element.find("input"),{focus:t.proxy(this.show,this),keyup:t.proxy(this.update,this),keydown:t.proxy(this.keydown,this)}],[this.component,{click:t.proxy(this.show,this)}]]:this.element.is("div")?this.isInline=!0:this._events=[[this.element,{click:t.proxy(this.show,this)}]],this._secondaryEvents=[[this.picker,{click:t.proxy(this.click,this)}],[t(window),{resize:t.proxy(this.place,this)}],[t(document),{mousedown:t.proxy(function(t){this.element.is(t.target)||this.element.find(t.target).size()||this.picker.is(t.target)||this.picker.find(t.target).size()||this.hide()},this)}]]},_attachEvents:function(){this._detachEvents(),this._applyEvents(this._events)},_detachEvents:function(){this._unapplyEvents(this._events)},_attachSecondaryEvents:function(){this._detachSecondaryEvents(),this._applyEvents(this._secondaryEvents)},_detachSecondaryEvents:function(){this._unapplyEvents(this._secondaryEvents)},_trigger:function(e,a){var i=a||this.date,s=new Date(i.getTime()+6e4*i.getTimezoneOffset());this.element.trigger({type:e,date:s,format:t.proxy(function(t){var e=t||this.o.format;return o.formatDate(i,e,this.o.language)},this)})},show:function(t){this.isInline||this.picker.appendTo("body"),this.picker.show(),this.height=this.component?this.component.outerHeight():this.element.outerHeight(),this.place(),this._attachSecondaryEvents(),t&&t.preventDefault(),this._trigger("show")},hide:function(){this.isInline||this.picker.is(":visible")&&(this.picker.hide().detach(),this._detachSecondaryEvents(),this.viewMode=this.o.startView,this.showMode(),this.o.forceParse&&(this.isInput&&this.element.val()||this.hasInput&&this.element.find("input").val())&&this.setValue(),this._trigger("hide"))},remove:function(){this.hide(),this._detachEvents(),this._detachSecondaryEvents(),this.picker.remove(),delete this.element.data().datepicker,this.isInput||delete this.element.data().date},getDate:function(){var t=this.getUTCDate();return new Date(t.getTime()+6e4*t.getTimezoneOffset())},getUTCDate:function(){return this.date},setDate:function(t){this.setUTCDate(new Date(t.getTime()-6e4*t.getTimezoneOffset()))},setUTCDate:function(t){this.date=t,this.setValue()},setValue:function(){var t=this.getFormattedDate();this.isInput?this.element.val(t):this.component&&this.element.find("input").val(t)},getFormattedDate:function(t){return void 0===t&&(t=this.o.format),o.formatDate(this.date,t,this.o.language)},setStartDate:function(t){this._process_options({startDate:t}),this.update(),this.updateNavArrows()},setEndDate:function(t){this._process_options({endDate:t}),this.update(),this.updateNavArrows()},setDaysOfWeekDisabled:function(t){this._process_options({daysOfWeekDisabled:t}),this.update(),this.updateNavArrows()},place:function(){if(!this.isInline){var e=parseInt(this.element.parents().filter(function(){return"auto"!=t(this).css("z-index")}).first().css("z-index"))+10,a=this.component?this.component.parent().offset():this.element.offset(),i=this.component?this.component.outerHeight(!0):this.element.outerHeight(!0);this.picker.css({top:a.top+i,left:a.left,zIndex:e})}},_allow_update:!0,update:function(){if(this._allow_update){var t,e=!1;arguments&&arguments.length&&("string"==typeof arguments[0]||arguments[0]instanceof Date)?(t=arguments[0],e=!0):(t=this.isInput?this.element.val():this.element.data("date")||this.element.find("input").val(),delete this.element.data().date),this.date=o.parseDate(t,this.o.format,this.o.language),e&&this.setValue(),this.viewDate=this.date<this.o.startDate?new Date(this.o.startDate):this.date>this.o.endDate?new Date(this.o.endDate):new Date(this.date),this.fill()}},fillDow:function(){var t=this.o.weekStart,e="<tr>";if(this.o.calendarWeeks){var a='<th class="cw">&nbsp;</th>';e+=a,this.picker.find(".datepicker-days thead tr:first-child").prepend(a)}for(;t<this.o.weekStart+7;)e+='<th class="dow">'+r[this.o.language].daysMin[t++%7]+"</th>";e+="</tr>",this.picker.find(".datepicker-days thead").append(e)},fillMonths:function(){for(var t="",e=0;12>e;)t+='<span class="month">'+r[this.o.language].monthsShort[e++]+"</span>";this.picker.find(".datepicker-months td").html(t)},setRange:function(e){e&&e.length?this.range=t.map(e,function(t){return t.valueOf()}):delete this.range,this.fill()},getClassNames:function(e){var a=[],i=this.viewDate.getUTCFullYear(),s=this.viewDate.getUTCMonth(),n=this.date.valueOf(),h=new Date;return e.getUTCFullYear()<i||e.getUTCFullYear()==i&&e.getUTCMonth()<s?a.push("old"):(e.getUTCFullYear()>i||e.getUTCFullYear()==i&&e.getUTCMonth()>s)&&a.push("new"),this.o.todayHighlight&&e.getUTCFullYear()==h.getFullYear()&&e.getUTCMonth()==h.getMonth()&&e.getUTCDate()==h.getDate()&&a.push("today"),n&&e.valueOf()==n&&a.push("active"),(e.valueOf()<this.o.startDate||e.valueOf()>this.o.endDate||-1!==t.inArray(e.getUTCDay(),this.o.daysOfWeekDisabled))&&a.push("disabled"),this.range&&(e>this.range[0]&&e<this.range[this.range.length-1]&&a.push("range"),-1!=t.inArray(e.valueOf(),this.range)&&a.push("selected")),a},fill:function(){var a,i=new Date(this.viewDate),s=i.getUTCFullYear(),n=i.getUTCMonth(),h=this.o.startDate!==-1/0?this.o.startDate.getUTCFullYear():-1/0,d=this.o.startDate!==-1/0?this.o.startDate.getUTCMonth():-1/0,l=1/0!==this.o.endDate?this.o.endDate.getUTCFullYear():1/0,c=1/0!==this.o.endDate?this.o.endDate.getUTCMonth():1/0;this.date&&this.date.valueOf(),this.picker.find(".datepicker-days thead th.datepicker-switch").text(r[this.o.language].months[n]+" "+s),this.picker.find("tfoot th.today").text(r[this.o.language].today).toggle(this.o.todayBtn!==!1),this.picker.find("tfoot th.clear").text(r[this.o.language].clear).toggle(this.o.clearBtn!==!1),this.updateNavArrows(),this.fillMonths();var p=e(s,n-1,28,0,0,0,0),u=o.getDaysInMonth(p.getUTCFullYear(),p.getUTCMonth());p.setUTCDate(u),p.setUTCDate(u-(p.getUTCDay()-this.o.weekStart+7)%7);var f=new Date(p);f.setUTCDate(f.getUTCDate()+42),f=f.valueOf();for(var v,g=[];p.valueOf()<f;){if(p.getUTCDay()==this.o.weekStart&&(g.push("<tr>"),this.o.calendarWeeks)){var D=new Date(+p+864e5*((this.o.weekStart-p.getUTCDay()-7)%7)),m=new Date(+D+864e5*((11-D.getUTCDay())%7)),y=new Date(+(y=e(m.getUTCFullYear(),0,1))+864e5*((11-y.getUTCDay())%7)),w=(m-y)/864e5/7+1;g.push('<td class="cw">'+w+"</td>")}v=this.getClassNames(p),v.push("day");var k=this.o.beforeShowDay(p);void 0===k?k={}:"boolean"==typeof k?k={enabled:k}:"string"==typeof k&&(k={classes:k}),k.enabled===!1&&v.push("disabled"),k.classes&&(v=v.concat(k.classes.split(/\s+/))),k.tooltip&&(a=k.tooltip),v=t.unique(v),g.push('<td class="'+v.join(" ")+'"'+(a?' title="'+a+'"':"")+">"+p.getUTCDate()+"</td>"),p.getUTCDay()==this.o.weekEnd&&g.push("</tr>"),p.setUTCDate(p.getUTCDate()+1)}this.picker.find(".datepicker-days tbody").empty().append(g.join(""));var T=this.date&&this.date.getUTCFullYear(),C=this.picker.find(".datepicker-months").find("th:eq(1)").text(s).end().find("span").removeClass("active");T&&T==s&&C.eq(this.date.getUTCMonth()).addClass("active"),(h>s||s>l)&&C.addClass("disabled"),s==h&&C.slice(0,d).addClass("disabled"),s==l&&C.slice(c+1).addClass("disabled"),g="",s=10*parseInt(s/10,10);var U=this.picker.find(".datepicker-years").find("th:eq(1)").text(s+"-"+(s+9)).end().find("td");s-=1;for(var M=-1;11>M;M++)g+='<span class="year'+(-1==M?" old":10==M?" new":"")+(T==s?" active":"")+(h>s||s>l?" disabled":"")+'">'+s+"</span>",s+=1;U.html(g)},updateNavArrows:function(){if(this._allow_update){var t=new Date(this.viewDate),e=t.getUTCFullYear(),a=t.getUTCMonth();switch(this.viewMode){case 0:this.o.startDate!==-1/0&&e<=this.o.startDate.getUTCFullYear()&&a<=this.o.startDate.getUTCMonth()?this.picker.find(".prev").css({visibility:"hidden"}):this.picker.find(".prev").css({visibility:"visible"}),1/0!==this.o.endDate&&e>=this.o.endDate.getUTCFullYear()&&a>=this.o.endDate.getUTCMonth()?this.picker.find(".next").css({visibility:"hidden"}):this.picker.find(".next").css({visibility:"visible"});break;case 1:case 2:this.o.startDate!==-1/0&&e<=this.o.startDate.getUTCFullYear()?this.picker.find(".prev").css({visibility:"hidden"}):this.picker.find(".prev").css({visibility:"visible"}),1/0!==this.o.endDate&&e>=this.o.endDate.getUTCFullYear()?this.picker.find(".next").css({visibility:"hidden"}):this.picker.find(".next").css({visibility:"visible"})}}},click:function(a){a.preventDefault();var i=t(a.target).closest("span, td, th");if(1==i.length)switch(i[0].nodeName.toLowerCase()){case"th":switch(i[0].className){case"datepicker-switch":this.showMode(1);break;case"prev":case"next":var s=o.modes[this.viewMode].navStep*("prev"==i[0].className?-1:1);switch(this.viewMode){case 0:this.viewDate=this.moveMonth(this.viewDate,s);break;case 1:case 2:this.viewDate=this.moveYear(this.viewDate,s)}this.fill();break;case"today":var n=new Date;n=e(n.getFullYear(),n.getMonth(),n.getDate(),0,0,0),this.showMode(-2);var h="linked"==this.o.todayBtn?null:"view";this._setDate(n,h);break;case"clear":var r;this.isInput?r=this.element:this.component&&(r=this.element.find("input")),r&&r.val("").change(),this._trigger("changeDate"),this.update(),this.o.autoclose&&this.hide()}break;case"span":if(!i.is(".disabled")){if(this.viewDate.setUTCDate(1),i.is(".month")){var d=1,l=i.parent().find("span").index(i),c=this.viewDate.getUTCFullYear();this.viewDate.setUTCMonth(l),this._trigger("changeMonth",this.viewDate),1===this.o.minViewMode&&this._setDate(e(c,l,d,0,0,0,0))}else{var c=parseInt(i.text(),10)||0,d=1,l=0;this.viewDate.setUTCFullYear(c),this._trigger("changeYear",this.viewDate),2===this.o.minViewMode&&this._setDate(e(c,l,d,0,0,0,0))}this.showMode(-1),this.fill()}break;case"td":if(i.is(".day")&&!i.is(".disabled")){var d=parseInt(i.text(),10)||1,c=this.viewDate.getUTCFullYear(),l=this.viewDate.getUTCMonth();i.is(".old")?0===l?(l=11,c-=1):l-=1:i.is(".new")&&(11==l?(l=0,c+=1):l+=1),this._setDate(e(c,l,d,0,0,0,0))}}},_setDate:function(t,e){e&&"date"!=e||(this.date=new Date(t)),e&&"view"!=e||(this.viewDate=new Date(t)),this.fill(),this.setValue(),this._trigger("changeDate");var a;this.isInput?a=this.element:this.component&&(a=this.element.find("input")),a&&(a.change(),!this.o.autoclose||e&&"date"!=e||this.hide())},moveMonth:function(t,e){if(!e)return t;var a,i,s=new Date(t.valueOf()),n=s.getUTCDate(),h=s.getUTCMonth(),r=Math.abs(e);if(e=e>0?1:-1,1==r)i=-1==e?function(){return s.getUTCMonth()==h}:function(){return s.getUTCMonth()!=a},a=h+e,s.setUTCMonth(a),(0>a||a>11)&&(a=(a+12)%12);else{for(var o=0;r>o;o++)s=this.moveMonth(s,e);a=s.getUTCMonth(),s.setUTCDate(n),i=function(){return a!=s.getUTCMonth()}}for(;i();)s.setUTCDate(--n),s.setUTCMonth(a);return s},moveYear:function(t,e){return this.moveMonth(t,12*e)},dateWithinRange:function(t){return t>=this.o.startDate&&t<=this.o.endDate},keydown:function(t){if(this.picker.is(":not(:visible)"))return 27==t.keyCode&&this.show(),void 0;var e,a,i,s=!1;switch(t.keyCode){case 27:this.hide(),t.preventDefault();break;case 37:case 39:if(!this.o.keyboardNavigation)break;e=37==t.keyCode?-1:1,t.ctrlKey?(a=this.moveYear(this.date,e),i=this.moveYear(this.viewDate,e)):t.shiftKey?(a=this.moveMonth(this.date,e),i=this.moveMonth(this.viewDate,e)):(a=new Date(this.date),a.setUTCDate(this.date.getUTCDate()+e),i=new Date(this.viewDate),i.setUTCDate(this.viewDate.getUTCDate()+e)),this.dateWithinRange(a)&&(this.date=a,this.viewDate=i,this.setValue(),this.update(),t.preventDefault(),s=!0);break;case 38:case 40:if(!this.o.keyboardNavigation)break;e=38==t.keyCode?-1:1,t.ctrlKey?(a=this.moveYear(this.date,e),i=this.moveYear(this.viewDate,e)):t.shiftKey?(a=this.moveMonth(this.date,e),i=this.moveMonth(this.viewDate,e)):(a=new Date(this.date),a.setUTCDate(this.date.getUTCDate()+7*e),i=new Date(this.viewDate),i.setUTCDate(this.viewDate.getUTCDate()+7*e)),this.dateWithinRange(a)&&(this.date=a,this.viewDate=i,this.setValue(),this.update(),t.preventDefault(),s=!0);break;case 13:this.hide(),t.preventDefault();break;case 9:this.hide()}if(s){this._trigger("changeDate");var n;this.isInput?n=this.element:this.component&&(n=this.element.find("input")),n&&n.change()}},showMode:function(t){t&&(this.viewMode=Math.max(this.o.minViewMode,Math.min(2,this.viewMode+t))),this.picker.find(">div").hide().filter(".datepicker-"+o.modes[this.viewMode].clsName).css("display","block"),this.updateNavArrows()}};var n=function(e,a){this.element=t(e),this.inputs=t.map(a.inputs,function(t){return t.jquery?t[0]:t}),delete a.inputs,t(this.inputs).datepicker(a).bind("changeDate",t.proxy(this.dateUpdated,this)),this.pickers=t.map(this.inputs,function(e){return t(e).data("datepicker")}),this.updateDates()};n.prototype={updateDates:function(){this.dates=t.map(this.pickers,function(t){return t.date}),this.updateRanges()},updateRanges:function(){var e=t.map(this.dates,function(t){return t.valueOf()});t.each(this.pickers,function(t,a){a.setRange(e)})},dateUpdated:function(e){var a=t(e.target).data("datepicker"),i=a.getUTCDate(),s=t.inArray(e.target,this.inputs),n=this.inputs.length;if(-1!=s){if(i<this.dates[s])for(;s>=0&&i<this.dates[s];)this.pickers[s--].setUTCDate(i);else if(i>this.dates[s])for(;n>s&&i>this.dates[s];)this.pickers[s++].setUTCDate(i);this.updateDates()}},remove:function(){t.map(this.pickers,function(t){t.remove()}),delete this.element.data().datepicker}};var h=t.fn.datepicker;t.fn.datepicker=function(e){var h=Array.apply(null,arguments);h.shift();var r;return this.each(function(){var o=t(this),d=o.data("datepicker"),l="object"==typeof e&&e;if(!d){var c=a(this,"date"),p=t.extend({},t.fn.datepicker.defaults,c,l),u=i(p.language),f=t.extend({},t.fn.datepicker.defaults,u,c,l);if(o.is(".input-daterange")||f.inputs){var v={inputs:f.inputs||o.find("input").toArray()};o.data("datepicker",d=new n(this,t.extend(f,v)))}else o.data("datepicker",d=new s(this,f))}return"string"==typeof e&&"function"==typeof d[e]&&(r=d[e].apply(d,h),void 0!==r)?!1:void 0}),void 0!==r?r:this},t.fn.datepicker.defaults={autoclose:!1,beforeShowDay:t.noop,calendarWeeks:!1,clearBtn:!1,daysOfWeekDisabled:[],endDate:1/0,forceParse:!0,format:"mm/dd/yyyy",keyboardNavigation:!0,language:"en",minViewMode:0,rtl:!1,startDate:-1/0,startView:0,todayBtn:!1,todayHighlight:!1,weekStart:0},t.fn.datepicker.locale_opts=["format","rtl","weekStart"],t.fn.datepicker.Constructor=s;var r=t.fn.datepicker.dates={en:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sun"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa","Su"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",clear:"Clear"}},o={modes:[{clsName:"days",navFnc:"Month",navStep:1},{clsName:"months",navFnc:"FullYear",navStep:1},{clsName:"years",navFnc:"FullYear",navStep:10}],isLeapYear:function(t){return 0===t%4&&0!==t%100||0===t%400},getDaysInMonth:function(t,e){return[31,o.isLeapYear(t)?29:28,31,30,31,30,31,31,30,31,30,31][e]},validParts:/dd?|DD?|mm?|MM?|yy(?:yy)?/g,nonpunctuation:/[^ -\/:-@\[\u3400-\u9fff-`{-~\t\n\r]+/g,parseFormat:function(t){var e=t.replace(this.validParts,"\0").split("\0"),a=t.match(this.validParts);if(!e||!e.length||!a||0===a.length)throw new Error("Invalid date format.");return{separators:e,parts:a}},parseDate:function(a,i,n){if(a instanceof Date)return a;if("string"==typeof i&&(i=o.parseFormat(i)),/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/.test(a)){var h,d,l=/([\-+]\d+)([dmwy])/,c=a.match(/([\-+]\d+)([dmwy])/g);a=new Date;for(var p=0;p<c.length;p++)switch(h=l.exec(c[p]),d=parseInt(h[1]),h[2]){case"d":a.setUTCDate(a.getUTCDate()+d);break;case"m":a=s.prototype.moveMonth.call(s.prototype,a,d);break;case"w":a.setUTCDate(a.getUTCDate()+7*d);break;case"y":a=s.prototype.moveYear.call(s.prototype,a,d)}return e(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate(),0,0,0)}var u,f,h,c=a&&a.match(this.nonpunctuation)||[],a=new Date,v={},g=["yyyy","yy","M","MM","m","mm","d","dd"],D={yyyy:function(t,e){return t.setUTCFullYear(e)},yy:function(t,e){return t.setUTCFullYear(2e3+e)},m:function(t,e){for(e-=1;0>e;)e+=12;for(e%=12,t.setUTCMonth(e);t.getUTCMonth()!=e;)t.setUTCDate(t.getUTCDate()-1);return t},d:function(t,e){return t.setUTCDate(e)}};D.M=D.MM=D.mm=D.m,D.dd=D.d,a=e(a.getFullYear(),a.getMonth(),a.getDate(),0,0,0);var m=i.parts.slice();if(c.length!=m.length&&(m=t(m).filter(function(e,a){return-1!==t.inArray(a,g)}).toArray()),c.length==m.length){for(var p=0,y=m.length;y>p;p++){if(u=parseInt(c[p],10),h=m[p],isNaN(u))switch(h){case"MM":f=t(r[n].months).filter(function(){var t=this.slice(0,c[p].length),e=c[p].slice(0,t.length);return t==e}),u=t.inArray(f[0],r[n].months)+1;break;case"M":f=t(r[n].monthsShort).filter(function(){var t=this.slice(0,c[p].length),e=c[p].slice(0,t.length);return t==e}),u=t.inArray(f[0],r[n].monthsShort)+1}v[h]=u}for(var w,p=0;p<g.length;p++)w=g[p],w in v&&!isNaN(v[w])&&D[w](a,v[w])}return a},formatDate:function(e,a,i){"string"==typeof a&&(a=o.parseFormat(a));var s={d:e.getUTCDate(),D:r[i].daysShort[e.getUTCDay()],DD:r[i].days[e.getUTCDay()],m:e.getUTCMonth()+1,M:r[i].monthsShort[e.getUTCMonth()],MM:r[i].months[e.getUTCMonth()],yy:e.getUTCFullYear().toString().substring(2),yyyy:e.getUTCFullYear()};s.dd=(s.d<10?"0":"")+s.d,s.mm=(s.m<10?"0":"")+s.m;for(var e=[],n=t.extend([],a.separators),h=0,d=a.parts.length;d>=h;h++)n.length&&e.push(n.shift()),e.push(s[a.parts[h]]);return e.join("")},headTemplate:'<thead><tr><th class="prev"><i class="icon-arrow-left"/></th><th colspan="5" class="datepicker-switch"></th><th class="next"><i class="icon-arrow-right"/></th></tr></thead>',contTemplate:'<tbody><tr><td colspan="7"></td></tr></tbody>',footTemplate:'<tfoot><tr><th colspan="7" class="today"></th></tr><tr><th colspan="7" class="clear"></th></tr></tfoot>'};o.template='<div class="datepicker"><div class="datepicker-days"><table class=" table-condensed">'+o.headTemplate+"<tbody></tbody>"+o.footTemplate+"</table>"+"</div>"+'<div class="datepicker-months">'+'<table class="table-condensed">'+o.headTemplate+o.contTemplate+o.footTemplate+"</table>"+"</div>"+'<div class="datepicker-years">'+'<table class="table-condensed">'+o.headTemplate+o.contTemplate+o.footTemplate+"</table>"+"</div>"+"</div>",t.fn.datepicker.DPGlobal=o,t.fn.datepicker.noConflict=function(){return t.fn.datepicker=h,this},t(document).on("focus.datepicker.data-api click.datepicker.data-api",'[data-provide="datepicker"]',function(e){var a=t(this);a.data("datepicker")||(e.preventDefault(),a.datepicker("show"))}),t(function(){t('[data-provide="datepicker-inline"]').datepicker()})}(window.jQuery);
@@ -1,8 +1,15 @@
1
- /* ===================================================
2
- * bootstrap-transition.js v2.3.2
3
- * http://twitter.github.com/bootstrap/javascript.html#transitions
4
- * ===================================================
5
- * Copyright 2012 Twitter, Inc.
1
+ /**
2
+ * bootstrap.js v3.0.0 by @fat and @mdo
3
+ * Copyright 2013 Twitter Inc.
4
+ * http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
7
+
8
+ /* ========================================================================
9
+ * Bootstrap: transition.js v3.0.0
10
+ * http://twbs.github.com/bootstrap/javascript.html#transitions
11
+ * ========================================================================
12
+ * Copyright 2013 Twitter, Inc.
6
13
  *
7
14
  * Licensed under the Apache License, Version 2.0 (the "License");
8
15
  * you may not use this file except in compliance with the License.
@@ -15,53 +22,51 @@
15
22
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
23
  * See the License for the specific language governing permissions and
17
24
  * limitations under the License.
18
- * ========================================================== */
19
-
20
-
21
- !function ($) {
22
-
23
- "use strict"; // jshint ;_;
24
-
25
-
26
- /* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
27
- * ======================================================= */
28
-
29
- $(function () {
25
+ * ======================================================================== */
30
26
 
31
- $.support.transition = (function () {
32
27
 
33
- var transitionEnd = (function () {
28
+ +function ($) { "use strict";
34
29
 
35
- var el = document.createElement('bootstrap')
36
- , transEndEventNames = {
37
- 'WebkitTransition' : 'webkitTransitionEnd'
38
- , 'MozTransition' : 'transitionend'
39
- , 'OTransition' : 'oTransitionEnd otransitionend'
40
- , 'transition' : 'transitionend'
41
- }
42
- , name
30
+ // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
31
+ // ============================================================
43
32
 
44
- for (name in transEndEventNames){
45
- if (el.style[name] !== undefined) {
46
- return transEndEventNames[name]
47
- }
48
- }
33
+ function transitionEnd() {
34
+ var el = document.createElement('bootstrap')
49
35
 
50
- }())
36
+ var transEndEventNames = {
37
+ 'WebkitTransition' : 'webkitTransitionEnd'
38
+ , 'MozTransition' : 'transitionend'
39
+ , 'OTransition' : 'oTransitionEnd otransitionend'
40
+ , 'transition' : 'transitionend'
41
+ }
51
42
 
52
- return transitionEnd && {
53
- end: transitionEnd
43
+ for (var name in transEndEventNames) {
44
+ if (el.style[name] !== undefined) {
45
+ return { end: transEndEventNames[name] }
54
46
  }
47
+ }
48
+ }
55
49
 
56
- })()
50
+ // http://blog.alexmaccaw.com/css-transitions
51
+ $.fn.emulateTransitionEnd = function (duration) {
52
+ var called = false, $el = this
53
+ $(this).one('webkitTransitionEnd', function () { called = true })
54
+ var callback = function () { if (!called) $($el).trigger('webkitTransitionEnd') }
55
+ setTimeout(callback, duration)
56
+ return this
57
+ }
57
58
 
59
+ $(function () {
60
+ $.support.transition = transitionEnd()
58
61
  })
59
62
 
60
- }(window.jQuery);/* ==========================================================
61
- * bootstrap-alert.js v2.3.2
62
- * http://twitter.github.com/bootstrap/javascript.html#alerts
63
- * ==========================================================
64
- * Copyright 2012 Twitter, Inc.
63
+ }(window.jQuery);
64
+
65
+ /* ========================================================================
66
+ * Bootstrap: alert.js v3.0.0
67
+ * http://twbs.github.com/bootstrap/javascript.html#alerts
68
+ * ========================================================================
69
+ * Copyright 2013 Twitter, Inc.
65
70
  *
66
71
  * Licensed under the Apache License, Version 2.0 (the "License");
67
72
  * you may not use this file except in compliance with the License.
@@ -74,66 +79,65 @@
74
79
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
75
80
  * See the License for the specific language governing permissions and
76
81
  * limitations under the License.
77
- * ========================================================== */
78
-
79
-
80
- !function ($) {
82
+ * ======================================================================== */
81
83
 
82
- "use strict"; // jshint ;_;
83
84
 
85
+ +function ($) { "use strict";
84
86
 
85
- /* ALERT CLASS DEFINITION
86
- * ====================== */
87
+ // ALERT CLASS DEFINITION
88
+ // ======================
87
89
 
88
90
  var dismiss = '[data-dismiss="alert"]'
89
- , Alert = function (el) {
90
- $(el).on('click', dismiss, this.close)
91
- }
91
+ var Alert = function (el) {
92
+ $(el).on('click', dismiss, this.close)
93
+ }
92
94
 
93
95
  Alert.prototype.close = function (e) {
94
- var $this = $(this)
95
- , selector = $this.attr('data-target')
96
- , $parent
96
+ var $this = $(this)
97
+ var selector = $this.attr('data-target')
97
98
 
98
99
  if (!selector) {
99
100
  selector = $this.attr('href')
100
- selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
101
+ selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
101
102
  }
102
103
 
103
- $parent = $(selector)
104
+ var $parent = $(selector)
104
105
 
105
- e && e.preventDefault()
106
+ if (e) e.preventDefault()
106
107
 
107
- $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent())
108
+ if (!$parent.length) {
109
+ $parent = $this.hasClass('alert') ? $this : $this.parent()
110
+ }
108
111
 
109
- $parent.trigger(e = $.Event('close'))
112
+ $parent.trigger(e = $.Event('close.bs.alert'))
110
113
 
111
114
  if (e.isDefaultPrevented()) return
112
115
 
113
116
  $parent.removeClass('in')
114
117
 
115
118
  function removeElement() {
116
- $parent
117
- .trigger('closed')
118
- .remove()
119
+ $parent.trigger('closed.bs.alert').remove()
119
120
  }
120
121
 
121
122
  $.support.transition && $parent.hasClass('fade') ?
122
- $parent.on($.support.transition.end, removeElement) :
123
+ $parent
124
+ .one($.support.transition.end, removeElement)
125
+ .emulateTransitionEnd(150) :
123
126
  removeElement()
124
127
  }
125
128
 
126
129
 
127
- /* ALERT PLUGIN DEFINITION
128
- * ======================= */
130
+ // ALERT PLUGIN DEFINITION
131
+ // =======================
129
132
 
130
133
  var old = $.fn.alert
131
134
 
132
135
  $.fn.alert = function (option) {
133
136
  return this.each(function () {
134
137
  var $this = $(this)
135
- , data = $this.data('alert')
136
- if (!data) $this.data('alert', (data = new Alert(this)))
138
+ var data = $this.data('bs.alert')
139
+
140
+ if (!data) $this.data('bs.alert', (data = new Alert(this)))
137
141
  if (typeof option == 'string') data[option].call($this)
138
142
  })
139
143
  }
@@ -141,8 +145,8 @@
141
145
  $.fn.alert.Constructor = Alert
142
146
 
143
147
 
144
- /* ALERT NO CONFLICT
145
- * ================= */
148
+ // ALERT NO CONFLICT
149
+ // =================
146
150
 
147
151
  $.fn.alert.noConflict = function () {
148
152
  $.fn.alert = old
@@ -150,16 +154,18 @@
150
154
  }
151
155
 
152
156
 
153
- /* ALERT DATA-API
154
- * ============== */
157
+ // ALERT DATA-API
158
+ // ==============
155
159
 
156
- $(document).on('click.alert.data-api', dismiss, Alert.prototype.close)
160
+ $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)
157
161
 
158
- }(window.jQuery);/* ============================================================
159
- * bootstrap-button.js v2.3.2
160
- * http://twitter.github.com/bootstrap/javascript.html#buttons
161
- * ============================================================
162
- * Copyright 2012 Twitter, Inc.
162
+ }(window.jQuery);
163
+
164
+ /* ========================================================================
165
+ * Bootstrap: button.js v3.0.0
166
+ * http://twbs.github.com/bootstrap/javascript.html#buttons
167
+ * ========================================================================
168
+ * Copyright 2013 Twitter, Inc.
163
169
  *
164
170
  * Licensed under the Apache License, Version 2.0 (the "License");
165
171
  * you may not use this file except in compliance with the License.
@@ -172,30 +178,32 @@
172
178
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
173
179
  * See the License for the specific language governing permissions and
174
180
  * limitations under the License.
175
- * ============================================================ */
181
+ * ======================================================================== */
176
182
 
177
183
 
178
- !function ($) {
184
+ +function ($) { "use strict";
179
185
 
180
- "use strict"; // jshint ;_;
181
-
182
-
183
- /* BUTTON PUBLIC CLASS DEFINITION
184
- * ============================== */
186
+ // BUTTON PUBLIC CLASS DEFINITION
187
+ // ==============================
185
188
 
186
189
  var Button = function (element, options) {
187
190
  this.$element = $(element)
188
- this.options = $.extend({}, $.fn.button.defaults, options)
191
+ this.options = $.extend({}, Button.DEFAULTS, options)
192
+ }
193
+
194
+ Button.DEFAULTS = {
195
+ loadingText: 'loading...'
189
196
  }
190
197
 
191
198
  Button.prototype.setState = function (state) {
192
- var d = 'disabled'
193
- , $el = this.$element
194
- , data = $el.data()
195
- , val = $el.is('input') ? 'val' : 'html'
199
+ var d = 'disabled'
200
+ var $el = this.$element
201
+ var val = $el.is('input') ? 'val' : 'html'
202
+ var data = $el.data()
196
203
 
197
204
  state = state + 'Text'
198
- data.resetText || $el.data('resetText', $el[val]())
205
+
206
+ if (!data.resetText) $el.data('resetText', $el[val]())
199
207
 
200
208
  $el[val](data[state] || this.options[state])
201
209
 
@@ -203,46 +211,45 @@
203
211
  setTimeout(function () {
204
212
  state == 'loadingText' ?
205
213
  $el.addClass(d).attr(d, d) :
206
- $el.removeClass(d).removeAttr(d)
214
+ $el.removeClass(d).removeAttr(d);
207
215
  }, 0)
208
216
  }
209
217
 
210
218
  Button.prototype.toggle = function () {
211
- var $parent = this.$element.closest('[data-toggle="buttons-radio"]')
219
+ var $parent = this.$element.closest('[data-toggle="buttons"]')
212
220
 
213
- $parent && $parent
214
- .find('.active')
215
- .removeClass('active')
221
+ if ($parent.length) {
222
+ var $input = this.$element.find('input').prop('checked', !this.$element.hasClass('active'))
223
+ if ($input.prop('type') === 'radio') $parent.find('.active').removeClass('active')
224
+ }
216
225
 
217
226
  this.$element.toggleClass('active')
218
227
  }
219
228
 
220
229
 
221
- /* BUTTON PLUGIN DEFINITION
222
- * ======================== */
230
+ // BUTTON PLUGIN DEFINITION
231
+ // ========================
223
232
 
224
233
  var old = $.fn.button
225
234
 
226
235
  $.fn.button = function (option) {
227
236
  return this.each(function () {
228
- var $this = $(this)
229
- , data = $this.data('button')
230
- , options = typeof option == 'object' && option
231
- if (!data) $this.data('button', (data = new Button(this, options)))
237
+ var $this = $(this)
238
+ var data = $this.data('button')
239
+ var options = typeof option == 'object' && option
240
+
241
+ if (!data) $this.data('bs.button', (data = new Button(this, options)))
242
+
232
243
  if (option == 'toggle') data.toggle()
233
244
  else if (option) data.setState(option)
234
245
  })
235
246
  }
236
247
 
237
- $.fn.button.defaults = {
238
- loadingText: 'loading...'
239
- }
240
-
241
248
  $.fn.button.Constructor = Button
242
249
 
243
250
 
244
- /* BUTTON NO CONFLICT
245
- * ================== */
251
+ // BUTTON NO CONFLICT
252
+ // ==================
246
253
 
247
254
  $.fn.button.noConflict = function () {
248
255
  $.fn.button = old
@@ -250,19 +257,22 @@
250
257
  }
251
258
 
252
259
 
253
- /* BUTTON DATA-API
254
- * =============== */
260
+ // BUTTON DATA-API
261
+ // ===============
255
262
 
256
- $(document).on('click.button.data-api', '[data-toggle^=button]', function (e) {
263
+ $(document).on('click.bs.button.data-api', '[data-toggle^=button]', function (e) {
257
264
  var $btn = $(e.target)
258
265
  if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
259
266
  $btn.button('toggle')
267
+ e.preventDefault()
260
268
  })
261
269
 
262
- }(window.jQuery);/* ==========================================================
263
- * bootstrap-carousel.js v2.3.2
264
- * http://twitter.github.com/bootstrap/javascript.html#carousel
265
- * ==========================================================
270
+ }(window.jQuery);
271
+
272
+ /* ========================================================================
273
+ * Bootstrap: carousel.js v3.0.0
274
+ * http://twbs.github.com/bootstrap/javascript.html#carousel
275
+ * ========================================================================
266
276
  * Copyright 2012 Twitter, Inc.
267
277
  *
268
278
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -276,199 +286,207 @@
276
286
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
277
287
  * See the License for the specific language governing permissions and
278
288
  * limitations under the License.
279
- * ========================================================== */
280
-
289
+ * ======================================================================== */
281
290
 
282
- !function ($) {
283
291
 
284
- "use strict"; // jshint ;_;
292
+ +function ($) { "use strict";
285
293
 
286
-
287
- /* CAROUSEL CLASS DEFINITION
288
- * ========================= */
294
+ // CAROUSEL CLASS DEFINITION
295
+ // =========================
289
296
 
290
297
  var Carousel = function (element, options) {
291
- this.$element = $(element)
298
+ this.$element = $(element)
292
299
  this.$indicators = this.$element.find('.carousel-indicators')
293
- this.options = options
300
+ this.options = options
301
+ this.paused =
302
+ this.sliding =
303
+ this.interval =
304
+ this.$active =
305
+ this.$items = null
306
+
294
307
  this.options.pause == 'hover' && this.$element
295
308
  .on('mouseenter', $.proxy(this.pause, this))
296
309
  .on('mouseleave', $.proxy(this.cycle, this))
297
310
  }
298
311
 
299
- Carousel.prototype = {
312
+ Carousel.DEFAULTS = {
313
+ interval: 5000
314
+ , pause: 'hover'
315
+ }
300
316
 
301
- cycle: function (e) {
302
- if (!e) this.paused = false
303
- if (this.interval) clearInterval(this.interval);
304
- this.options.interval
305
- && !this.paused
306
- && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
307
- return this
308
- }
317
+ Carousel.prototype.cycle = function (e) {
318
+ e || (this.paused = false)
309
319
 
310
- , getActiveIndex: function () {
311
- this.$active = this.$element.find('.item.active')
312
- this.$items = this.$active.parent().children()
313
- return this.$items.index(this.$active)
314
- }
320
+ this.interval && clearInterval(this.interval)
315
321
 
316
- , to: function (pos) {
317
- var activeIndex = this.getActiveIndex()
318
- , that = this
322
+ this.options.interval
323
+ && !this.paused
324
+ && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
319
325
 
320
- if (pos > (this.$items.length - 1) || pos < 0) return
326
+ return this
327
+ }
321
328
 
322
- if (this.sliding) {
323
- return this.$element.one('slid', function () {
324
- that.to(pos)
325
- })
326
- }
329
+ Carousel.prototype.getActiveIndex = function () {
330
+ this.$active = this.$element.find('.item.active')
331
+ this.$items = this.$active.parent().children()
327
332
 
328
- if (activeIndex == pos) {
329
- return this.pause().cycle()
330
- }
333
+ return this.$items.index(this.$active)
334
+ }
331
335
 
332
- return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
333
- }
336
+ Carousel.prototype.to = function (pos) {
337
+ var that = this
338
+ var activeIndex = this.getActiveIndex()
334
339
 
335
- , pause: function (e) {
336
- if (!e) this.paused = true
337
- if (this.$element.find('.next, .prev').length && $.support.transition.end) {
338
- this.$element.trigger($.support.transition.end)
339
- this.cycle(true)
340
- }
341
- clearInterval(this.interval)
342
- this.interval = null
343
- return this
344
- }
340
+ if (pos > (this.$items.length - 1) || pos < 0) return
345
341
 
346
- , next: function () {
347
- if (this.sliding) return
348
- return this.slide('next')
349
- }
342
+ if (this.sliding) return this.$element.one('slid', function () { that.to(pos) })
343
+ if (activeIndex == pos) return this.pause().cycle()
350
344
 
351
- , prev: function () {
352
- if (this.sliding) return
353
- return this.slide('prev')
345
+ return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
346
+ }
347
+
348
+ Carousel.prototype.pause = function (e) {
349
+ e || (this.paused = true)
350
+
351
+ if (this.$element.find('.next, .prev').length && $.support.transition.end) {
352
+ this.$element.trigger($.support.transition.end)
353
+ this.cycle(true)
354
354
  }
355
355
 
356
- , slide: function (type, next) {
357
- var $active = this.$element.find('.item.active')
358
- , $next = next || $active[type]()
359
- , isCycling = this.interval
360
- , direction = type == 'next' ? 'left' : 'right'
361
- , fallback = type == 'next' ? 'first' : 'last'
362
- , that = this
363
- , e
356
+ this.interval = clearInterval(this.interval)
357
+
358
+ return this
359
+ }
360
+
361
+ Carousel.prototype.next = function () {
362
+ if (this.sliding) return
363
+ return this.slide('next')
364
+ }
364
365
 
365
- this.sliding = true
366
+ Carousel.prototype.prev = function () {
367
+ if (this.sliding) return
368
+ return this.slide('prev')
369
+ }
366
370
 
367
- isCycling && this.pause()
371
+ Carousel.prototype.slide = function (type, next) {
372
+ var $active = this.$element.find('.item.active')
373
+ var $next = next || $active[type]()
374
+ var isCycling = this.interval
375
+ var direction = type == 'next' ? 'left' : 'right'
376
+ var fallback = type == 'next' ? 'first' : 'last'
377
+ var that = this
368
378
 
369
- $next = $next.length ? $next : this.$element.find('.item')[fallback]()
379
+ this.sliding = true
370
380
 
371
- e = $.Event('slide', {
372
- relatedTarget: $next[0]
373
- , direction: direction
374
- })
381
+ isCycling && this.pause()
375
382
 
376
- if ($next.hasClass('active')) return
383
+ $next = $next.length ? $next : this.$element.find('.item')[fallback]()
377
384
 
378
- if (this.$indicators.length) {
379
- this.$indicators.find('.active').removeClass('active')
380
- this.$element.one('slid', function () {
381
- var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
382
- $nextIndicator && $nextIndicator.addClass('active')
383
- })
384
- }
385
+ var e = $.Event('slide.bs.carousel', { relatedTarget: $next[0], direction: direction })
385
386
 
386
- if ($.support.transition && this.$element.hasClass('slide')) {
387
- this.$element.trigger(e)
388
- if (e.isDefaultPrevented()) return
389
- $next.addClass(type)
390
- $next[0].offsetWidth // force reflow
391
- $active.addClass(direction)
392
- $next.addClass(direction)
393
- this.$element.one($.support.transition.end, function () {
387
+ if ($next.hasClass('active')) return
388
+
389
+ if (this.$indicators.length) {
390
+ this.$indicators.find('.active').removeClass('active')
391
+ this.$element.one('slid', function () {
392
+ var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
393
+ $nextIndicator && $nextIndicator.addClass('active')
394
+ })
395
+ }
396
+
397
+ if ($.support.transition && this.$element.hasClass('slide')) {
398
+ this.$element.trigger(e)
399
+ if (e.isDefaultPrevented()) return
400
+ $next.addClass(type)
401
+ $next[0].offsetWidth // force reflow
402
+ $active.addClass(direction)
403
+ $next.addClass(direction)
404
+ $active
405
+ .one($.support.transition.end, function () {
394
406
  $next.removeClass([type, direction].join(' ')).addClass('active')
395
407
  $active.removeClass(['active', direction].join(' '))
396
408
  that.sliding = false
397
409
  setTimeout(function () { that.$element.trigger('slid') }, 0)
398
410
  })
399
- } else {
400
- this.$element.trigger(e)
401
- if (e.isDefaultPrevented()) return
402
- $active.removeClass('active')
403
- $next.addClass('active')
404
- this.sliding = false
405
- this.$element.trigger('slid')
406
- }
407
-
408
- isCycling && this.cycle()
409
-
410
- return this
411
+ .emulateTransitionEnd(600)
412
+ } else {
413
+ this.$element.trigger(e)
414
+ if (e.isDefaultPrevented()) return
415
+ $active.removeClass('active')
416
+ $next.addClass('active')
417
+ this.sliding = false
418
+ this.$element.trigger('slid')
411
419
  }
412
420
 
421
+ isCycling && this.cycle()
422
+
423
+ return this
413
424
  }
414
425
 
415
426
 
416
- /* CAROUSEL PLUGIN DEFINITION
417
- * ========================== */
427
+ // CAROUSEL PLUGIN DEFINITION
428
+ // ==========================
418
429
 
419
430
  var old = $.fn.carousel
420
431
 
421
432
  $.fn.carousel = function (option) {
422
433
  return this.each(function () {
423
- var $this = $(this)
424
- , data = $this.data('carousel')
425
- , options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option)
426
- , action = typeof option == 'string' ? option : options.slide
427
- if (!data) $this.data('carousel', (data = new Carousel(this, options)))
434
+ var $this = $(this)
435
+ var data = $this.data('bs.carousel')
436
+ var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)
437
+ var action = typeof option == 'string' ? option : options.slide
438
+
439
+ if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))
428
440
  if (typeof option == 'number') data.to(option)
429
441
  else if (action) data[action]()
430
442
  else if (options.interval) data.pause().cycle()
431
443
  })
432
444
  }
433
445
 
434
- $.fn.carousel.defaults = {
435
- interval: 5000
436
- , pause: 'hover'
437
- }
438
-
439
446
  $.fn.carousel.Constructor = Carousel
440
447
 
441
448
 
442
- /* CAROUSEL NO CONFLICT
443
- * ==================== */
449
+ // CAROUSEL NO CONFLICT
450
+ // ====================
444
451
 
445
452
  $.fn.carousel.noConflict = function () {
446
453
  $.fn.carousel = old
447
454
  return this
448
455
  }
449
456
 
450
- /* CAROUSEL DATA-API
451
- * ================= */
452
457
 
453
- $(document).on('click.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
454
- var $this = $(this), href
455
- , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
456
- , options = $.extend({}, $target.data(), $this.data())
457
- , slideIndex
458
+ // CAROUSEL DATA-API
459
+ // =================
460
+
461
+ $(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
462
+ var $this = $(this), href
463
+ var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
464
+ var options = $.extend({}, $target.data(), $this.data())
465
+ var slideIndex = $this.attr('data-slide-to')
466
+ if (slideIndex) options.interval = false
458
467
 
459
468
  $target.carousel(options)
460
469
 
461
470
  if (slideIndex = $this.attr('data-slide-to')) {
462
- $target.data('carousel').pause().to(slideIndex).cycle()
471
+ $target.data('bs.carousel').to(slideIndex)
463
472
  }
464
473
 
465
474
  e.preventDefault()
466
475
  })
467
476
 
468
- }(window.jQuery);/* =============================================================
469
- * bootstrap-collapse.js v2.3.2
470
- * http://twitter.github.com/bootstrap/javascript.html#collapse
471
- * =============================================================
477
+ $(window).on('load', function () {
478
+ $('[data-ride="carousel"]').each(function () {
479
+ var $carousel = $(this)
480
+ $carousel.carousel($carousel.data())
481
+ })
482
+ })
483
+
484
+ }(window.jQuery);
485
+
486
+ /* ========================================================================
487
+ * Bootstrap: collapse.js v3.0.0
488
+ * http://twbs.github.com/bootstrap/javascript.html#collapse
489
+ * ========================================================================
472
490
  * Copyright 2012 Twitter, Inc.
473
491
  *
474
492
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -482,135 +500,138 @@
482
500
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
483
501
  * See the License for the specific language governing permissions and
484
502
  * limitations under the License.
485
- * ============================================================ */
486
-
503
+ * ======================================================================== */
487
504
 
488
- !function ($) {
489
505
 
490
- "use strict"; // jshint ;_;
506
+ +function ($) { "use strict";
491
507
 
492
-
493
- /* COLLAPSE PUBLIC CLASS DEFINITION
494
- * ================================ */
508
+ // COLLAPSE PUBLIC CLASS DEFINITION
509
+ // ================================
495
510
 
496
511
  var Collapse = function (element, options) {
497
- this.$element = $(element)
498
- this.options = $.extend({}, $.fn.collapse.defaults, options)
512
+ this.$element = $(element)
513
+ this.options = $.extend({}, Collapse.DEFAULTS, options)
514
+ this.transitioning = null
499
515
 
500
- if (this.options.parent) {
501
- this.$parent = $(this.options.parent)
502
- }
516
+ if (this.options.parent) this.$parent = $(this.options.parent)
517
+ if (this.options.toggle) this.toggle()
518
+ }
503
519
 
504
- this.options.toggle && this.toggle()
520
+ Collapse.DEFAULTS = {
521
+ toggle: true
505
522
  }
506
523
 
507
- Collapse.prototype = {
524
+ Collapse.prototype.dimension = function () {
525
+ var hasWidth = this.$element.hasClass('width')
526
+ return hasWidth ? 'width' : 'height'
527
+ }
508
528
 
509
- constructor: Collapse
529
+ Collapse.prototype.show = function () {
530
+ if (this.transitioning || this.$element.hasClass('in')) return
510
531
 
511
- , dimension: function () {
512
- var hasWidth = this.$element.hasClass('width')
513
- return hasWidth ? 'width' : 'height'
514
- }
532
+ var startEvent = $.Event('show.bs.collapse')
533
+ this.$element.trigger(startEvent)
534
+ if (startEvent.isDefaultPrevented()) return
515
535
 
516
- , show: function () {
517
- var dimension
518
- , scroll
519
- , actives
520
- , hasData
536
+ var actives = this.$parent && this.$parent.find('> .accordion-group > .in')
521
537
 
522
- if (this.transitioning || this.$element.hasClass('in')) return
538
+ if (actives && actives.length) {
539
+ var hasData = actives.data('bs.collapse')
540
+ if (hasData && hasData.transitioning) return
541
+ actives.collapse('hide')
542
+ hasData || actives.data('bs.collapse', null)
543
+ }
523
544
 
524
- dimension = this.dimension()
525
- scroll = $.camelCase(['scroll', dimension].join('-'))
526
- actives = this.$parent && this.$parent.find('> .accordion-group > .in')
545
+ var dimension = this.dimension()
527
546
 
528
- if (actives && actives.length) {
529
- hasData = actives.data('collapse')
530
- if (hasData && hasData.transitioning) return
531
- actives.collapse('hide')
532
- hasData || actives.data('collapse', null)
533
- }
547
+ this.$element
548
+ .removeClass('collapse')
549
+ .addClass('collapsing')
550
+ [dimension](0)
534
551
 
535
- this.$element[dimension](0)
536
- this.transition('addClass', $.Event('show'), 'shown')
537
- $.support.transition && this.$element[dimension](this.$element[0][scroll])
538
- }
552
+ this.transitioning = 1
539
553
 
540
- , hide: function () {
541
- var dimension
542
- if (this.transitioning || !this.$element.hasClass('in')) return
543
- dimension = this.dimension()
544
- this.reset(this.$element[dimension]())
545
- this.transition('removeClass', $.Event('hide'), 'hidden')
546
- this.$element[dimension](0)
554
+ var complete = function () {
555
+ this.$element
556
+ .removeClass('collapsing')
557
+ .addClass('in')
558
+ [dimension]('auto')
559
+ this.transitioning = 0
560
+ this.$element.trigger('shown.bs.collapse')
547
561
  }
548
562
 
549
- , reset: function (size) {
550
- var dimension = this.dimension()
563
+ if (!$.support.transition) return complete.call(this)
551
564
 
552
- this.$element
553
- .removeClass('collapse')
554
- [dimension](size || 'auto')
555
- [0].offsetWidth
565
+ var scrollSize = $.camelCase(['scroll', dimension].join('-'))
556
566
 
557
- this.$element[size !== null ? 'addClass' : 'removeClass']('collapse')
567
+ this.$element
568
+ .one($.support.transition.end, $.proxy(complete, this))
569
+ .emulateTransitionEnd(350)
570
+ [dimension](this.$element[0][scrollSize])
571
+ }
558
572
 
559
- return this
560
- }
573
+ Collapse.prototype.hide = function () {
574
+ if (this.transitioning || !this.$element.hasClass('in')) return
561
575
 
562
- , transition: function (method, startEvent, completeEvent) {
563
- var that = this
564
- , complete = function () {
565
- if (startEvent.type == 'show') that.reset()
566
- that.transitioning = 0
567
- that.$element.trigger(completeEvent)
568
- }
576
+ var startEvent = $.Event('hide.bs.collapse')
577
+ this.$element.trigger(startEvent)
578
+ if (startEvent.isDefaultPrevented()) return
569
579
 
570
- this.$element.trigger(startEvent)
580
+ var dimension = this.dimension()
571
581
 
572
- if (startEvent.isDefaultPrevented()) return
582
+ this.$element
583
+ [dimension](this.$element[dimension]())
584
+ [0].offsetHeight
573
585
 
574
- this.transitioning = 1
586
+ this.$element
587
+ .addClass('collapsing')
588
+ .removeClass('collapse')
589
+ .removeClass('in')
575
590
 
576
- this.$element[method]('in')
591
+ this.transitioning = 1
577
592
 
578
- $.support.transition && this.$element.hasClass('collapse') ?
579
- this.$element.one($.support.transition.end, complete) :
580
- complete()
593
+ var complete = function () {
594
+ this.transitioning = 0
595
+ this.$element
596
+ .trigger('hidden.bs.collapse')
597
+ .removeClass('collapsing')
598
+ .addClass('collapse')
581
599
  }
582
600
 
583
- , toggle: function () {
584
- this[this.$element.hasClass('in') ? 'hide' : 'show']()
585
- }
601
+ if (!$.support.transition) return complete.call(this)
602
+
603
+ this.$element
604
+ [dimension](0)
605
+ .one($.support.transition.end, $.proxy(complete, this))
606
+ .emulateTransitionEnd(350)
607
+ }
586
608
 
609
+ Collapse.prototype.toggle = function () {
610
+ this[this.$element.hasClass('in') ? 'hide' : 'show']()
587
611
  }
588
612
 
589
613
 
590
- /* COLLAPSE PLUGIN DEFINITION
591
- * ========================== */
614
+ // COLLAPSE PLUGIN DEFINITION
615
+ // ==========================
592
616
 
593
617
  var old = $.fn.collapse
594
618
 
595
619
  $.fn.collapse = function (option) {
596
620
  return this.each(function () {
597
- var $this = $(this)
598
- , data = $this.data('collapse')
599
- , options = $.extend({}, $.fn.collapse.defaults, $this.data(), typeof option == 'object' && option)
600
- if (!data) $this.data('collapse', (data = new Collapse(this, options)))
621
+ var $this = $(this)
622
+ var data = $this.data('bs.collapse')
623
+ var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
624
+
625
+ if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
601
626
  if (typeof option == 'string') data[option]()
602
627
  })
603
628
  }
604
629
 
605
- $.fn.collapse.defaults = {
606
- toggle: true
607
- }
608
-
609
630
  $.fn.collapse.Constructor = Collapse
610
631
 
611
632
 
612
- /* COLLAPSE NO CONFLICT
613
- * ==================== */
633
+ // COLLAPSE NO CONFLICT
634
+ // ====================
614
635
 
615
636
  $.fn.collapse.noConflict = function () {
616
637
  $.fn.collapse = old
@@ -618,23 +639,34 @@
618
639
  }
619
640
 
620
641
 
621
- /* COLLAPSE DATA-API
622
- * ================= */
642
+ // COLLAPSE DATA-API
643
+ // =================
623
644
 
624
- $(document).on('click.collapse.data-api', '[data-toggle=collapse]', function (e) {
625
- var $this = $(this), href
626
- , target = $this.attr('data-target')
645
+ $(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function (e) {
646
+ var $this = $(this), href
647
+ var target = $this.attr('data-target')
627
648
  || e.preventDefault()
628
649
  || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
629
- , option = $(target).data('collapse') ? 'toggle' : $this.data()
630
- $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
631
- $(target).collapse(option)
650
+ var $target = $(target)
651
+ var data = $target.data('bs.collapse')
652
+ var option = data ? 'toggle' : $this.data()
653
+ var parent = $this.attr('data-parent')
654
+ var $parent = parent && $(parent)
655
+
656
+ if (!data || !data.transitioning) {
657
+ if ($parent) $parent.find('[data-toggle=collapse][data-parent=' + parent + ']').not($this).addClass('collapsed')
658
+ $this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
659
+ }
660
+
661
+ $target.collapse(option)
632
662
  })
633
663
 
634
- }(window.jQuery);/* ============================================================
635
- * bootstrap-dropdown.js v2.3.2
636
- * http://twitter.github.com/bootstrap/javascript.html#dropdowns
637
- * ============================================================
664
+ }(window.jQuery);
665
+
666
+ /* ========================================================================
667
+ * Bootstrap: dropdown.js v3.0.0
668
+ * http://twbs.github.com/bootstrap/javascript.html#dropdowns
669
+ * ========================================================================
638
670
  * Copyright 2012 Twitter, Inc.
639
671
  *
640
672
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -648,131 +680,116 @@
648
680
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
649
681
  * See the License for the specific language governing permissions and
650
682
  * limitations under the License.
651
- * ============================================================ */
652
-
653
-
654
- !function ($) {
655
-
656
- "use strict"; // jshint ;_;
683
+ * ======================================================================== */
657
684
 
658
685
 
659
- /* DROPDOWN CLASS DEFINITION
660
- * ========================= */
661
-
662
- var toggle = '[data-toggle=dropdown]'
663
- , Dropdown = function (element) {
664
- var $el = $(element).on('click.dropdown.data-api', this.toggle)
665
- $('html').on('click.dropdown.data-api', function () {
666
- $el.parent().removeClass('open')
667
- })
668
- }
669
-
670
- Dropdown.prototype = {
686
+ +function ($) { "use strict";
671
687
 
672
- constructor: Dropdown
688
+ // DROPDOWN CLASS DEFINITION
689
+ // =========================
673
690
 
674
- , toggle: function (e) {
675
- var $this = $(this)
676
- , $parent
677
- , isActive
691
+ var backdrop = '.dropdown-backdrop'
692
+ var toggle = '[data-toggle=dropdown]'
693
+ var Dropdown = function (element) {
694
+ var $el = $(element).on('click.bs.dropdown', this.toggle)
695
+ }
678
696
 
679
- if ($this.is('.disabled, :disabled')) return
697
+ Dropdown.prototype.toggle = function (e) {
698
+ var $this = $(this)
680
699
 
681
- $parent = getParent($this)
700
+ if ($this.is('.disabled, :disabled')) return
682
701
 
683
- isActive = $parent.hasClass('open')
702
+ var $parent = getParent($this)
703
+ var isActive = $parent.hasClass('open')
684
704
 
685
- clearMenus()
705
+ clearMenus()
686
706
 
687
- if (!isActive) {
688
- if ('ontouchstart' in document.documentElement) {
689
- // if mobile we we use a backdrop because click events don't delegate
690
- $('<div class="dropdown-backdrop"/>').insertBefore($(this)).on('click', clearMenus)
691
- }
692
- $parent.toggleClass('open')
707
+ if (!isActive) {
708
+ if ('ontouchstart' in document.documentElement) {
709
+ // if mobile we we use a backdrop because click events don't delegate
710
+ $('<div class="dropdown-backdrop"/>').insertAfter($(this)).on('click', clearMenus)
693
711
  }
694
712
 
695
- $this.focus()
713
+ $parent.trigger(e = $.Event('show.bs.dropdown'))
696
714
 
697
- return false
698
- }
715
+ if (e.isDefaultPrevented()) return
699
716
 
700
- , keydown: function (e) {
701
- var $this
702
- , $items
703
- , $active
704
- , $parent
705
- , isActive
706
- , index
717
+ $parent
718
+ .toggleClass('open')
719
+ .trigger('shown.bs.dropdown')
720
+ }
707
721
 
708
- if (!/(38|40|27)/.test(e.keyCode)) return
722
+ $this.focus()
709
723
 
710
- $this = $(this)
724
+ return false
725
+ }
711
726
 
712
- e.preventDefault()
713
- e.stopPropagation()
727
+ Dropdown.prototype.keydown = function (e) {
728
+ if (!/(38|40|27)/.test(e.keyCode)) return
714
729
 
715
- if ($this.is('.disabled, :disabled')) return
730
+ var $this = $(this)
716
731
 
717
- $parent = getParent($this)
732
+ e.preventDefault()
733
+ e.stopPropagation()
718
734
 
719
- isActive = $parent.hasClass('open')
735
+ if ($this.is('.disabled, :disabled')) return
720
736
 
721
- if (!isActive || (isActive && e.keyCode == 27)) {
722
- if (e.which == 27) $parent.find(toggle).focus()
723
- return $this.click()
724
- }
737
+ var $parent = getParent($this)
738
+ var isActive = $parent.hasClass('open')
725
739
 
726
- $items = $('[role=menu] li:not(.divider):visible a', $parent)
740
+ if (!isActive || (isActive && e.keyCode == 27)) {
741
+ if (e.which == 27) $parent.find(toggle).focus()
742
+ return $this.click()
743
+ }
727
744
 
728
- if (!$items.length) return
745
+ var $items = $('[role=menu] li:not(.divider):visible a', $parent)
729
746
 
730
- index = $items.index($items.filter(':focus'))
747
+ if (!$items.length) return
731
748
 
732
- if (e.keyCode == 38 && index > 0) index-- // up
733
- if (e.keyCode == 40 && index < $items.length - 1) index++ // down
734
- if (!~index) index = 0
749
+ var index = $items.index($items.filter(':focus'))
735
750
 
736
- $items
737
- .eq(index)
738
- .focus()
739
- }
751
+ if (e.keyCode == 38 && index > 0) index-- // up
752
+ if (e.keyCode == 40 && index < $items.length - 1) index++ // down
753
+ if (!~index) index=0
740
754
 
755
+ $items.eq(index).focus()
741
756
  }
742
757
 
743
758
  function clearMenus() {
744
- $('.dropdown-backdrop').remove()
745
- $(toggle).each(function () {
746
- getParent($(this)).removeClass('open')
759
+ $(backdrop).remove()
760
+ $(toggle).each(function (e) {
761
+ var $parent = getParent($(this))
762
+ if (!$parent.hasClass('open')) return
763
+ $parent.trigger(e = $.Event('hide.bs.dropdown'))
764
+ if (e.isDefaultPrevented()) return
765
+ $parent.removeClass('open').trigger('hidden.bs.dropdown')
747
766
  })
748
767
  }
749
768
 
750
769
  function getParent($this) {
751
770
  var selector = $this.attr('data-target')
752
- , $parent
753
771
 
754
772
  if (!selector) {
755
773
  selector = $this.attr('href')
756
774
  selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
757
775
  }
758
776
 
759
- $parent = selector && $(selector)
760
-
761
- if (!$parent || !$parent.length) $parent = $this.parent()
777
+ var $parent = selector && $(selector)
762
778
 
763
- return $parent
779
+ return $parent && $parent.length ? $parent : $this.parent()
764
780
  }
765
781
 
766
782
 
767
- /* DROPDOWN PLUGIN DEFINITION
768
- * ========================== */
783
+ // DROPDOWN PLUGIN DEFINITION
784
+ // ==========================
769
785
 
770
786
  var old = $.fn.dropdown
771
787
 
772
788
  $.fn.dropdown = function (option) {
773
789
  return this.each(function () {
774
790
  var $this = $(this)
775
- , data = $this.data('dropdown')
791
+ var data = $this.data('dropdown')
792
+
776
793
  if (!data) $this.data('dropdown', (data = new Dropdown(this)))
777
794
  if (typeof option == 'string') data[option].call($this)
778
795
  })
@@ -781,8 +798,8 @@
781
798
  $.fn.dropdown.Constructor = Dropdown
782
799
 
783
800
 
784
- /* DROPDOWN NO CONFLICT
785
- * ==================== */
801
+ // DROPDOWN NO CONFLICT
802
+ // ====================
786
803
 
787
804
  $.fn.dropdown.noConflict = function () {
788
805
  $.fn.dropdown = old
@@ -790,20 +807,21 @@
790
807
  }
791
808
 
792
809
 
793
- /* APPLY TO STANDARD DROPDOWN ELEMENTS
794
- * =================================== */
810
+ // APPLY TO STANDARD DROPDOWN ELEMENTS
811
+ // ===================================
795
812
 
796
813
  $(document)
797
- .on('click.dropdown.data-api', clearMenus)
798
- .on('click.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
799
- .on('click.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
800
- .on('keydown.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
814
+ .on('click.bs.dropdown.data-api', clearMenus)
815
+ .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
816
+ .on('click.bs.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
817
+ .on('keydown.bs.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
801
818
 
802
819
  }(window.jQuery);
803
- /* =========================================================
804
- * bootstrap-modal.js v2.3.2
805
- * http://twitter.github.com/bootstrap/javascript.html#modals
806
- * =========================================================
820
+
821
+ /* ========================================================================
822
+ * Bootstrap: modal.js v3.0.0
823
+ * http://twbs.github.com/bootstrap/javascript.html#modals
824
+ * ========================================================================
807
825
  * Copyright 2012 Twitter, Inc.
808
826
  *
809
827
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -817,210 +835,200 @@
817
835
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
818
836
  * See the License for the specific language governing permissions and
819
837
  * limitations under the License.
820
- * ========================================================= */
821
-
822
-
823
- !function ($) {
838
+ * ======================================================================== */
824
839
 
825
- "use strict"; // jshint ;_;
826
840
 
841
+ +function ($) { "use strict";
827
842
 
828
- /* MODAL CLASS DEFINITION
829
- * ====================== */
843
+ // MODAL CLASS DEFINITION
844
+ // ======================
830
845
 
831
846
  var Modal = function (element, options) {
832
- this.options = options
833
- this.$element = $(element)
834
- .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
835
- this.options.remote && this.$element.find('.modal-body').load(this.options.remote)
836
- }
837
-
838
- Modal.prototype = {
839
-
840
- constructor: Modal
847
+ this.options = options
848
+ this.$element = $(element).on('click.dismiss.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
849
+ this.$backdrop =
850
+ this.isShown = null
841
851
 
842
- , toggle: function () {
843
- return this[!this.isShown ? 'show' : 'hide']()
844
- }
845
-
846
- , show: function () {
847
- var that = this
848
- , e = $.Event('show')
849
-
850
- this.$element.trigger(e)
852
+ if (this.options.remote) this.$element.find('.modal-body').load(this.options.remote)
853
+ }
851
854
 
852
- if (this.isShown || e.isDefaultPrevented()) return
855
+ Modal.DEFAULTS = {
856
+ backdrop: true
857
+ , keyboard: true
858
+ , show: true
859
+ }
853
860
 
854
- this.isShown = true
861
+ Modal.prototype.toggle = function () {
862
+ return this[!this.isShown ? 'show' : 'hide']()
863
+ }
855
864
 
856
- this.escape()
865
+ Modal.prototype.show = function () {
866
+ var that = this
867
+ var e = $.Event('show.bs.modal')
857
868
 
858
- this.backdrop(function () {
859
- var transition = $.support.transition && that.$element.hasClass('fade')
869
+ this.$element.trigger(e)
860
870
 
861
- if (!that.$element.parent().length) {
862
- that.$element.appendTo(document.body) //don't move modals dom position
863
- }
871
+ if (this.isShown || e.isDefaultPrevented()) return
864
872
 
865
- that.$element.show()
873
+ this.isShown = true
866
874
 
867
- if (transition) {
868
- that.$element[0].offsetWidth // force reflow
869
- }
875
+ this.escape()
870
876
 
871
- that.$element
872
- .addClass('in')
873
- .attr('aria-hidden', false)
877
+ this.backdrop(function () {
878
+ var transition = $.support.transition && that.$element.hasClass('fade')
874
879
 
875
- that.enforceFocus()
880
+ if (!that.$element.parent().length) {
881
+ that.$element.appendTo(document.body) // don't move modals dom position
882
+ }
876
883
 
877
- transition ?
878
- that.$element.one($.support.transition.end, function () { that.$element.focus().trigger('shown') }) :
879
- that.$element.focus().trigger('shown')
884
+ that.$element.show()
880
885
 
881
- })
886
+ if (transition) {
887
+ that.$element[0].offsetWidth // force reflow
882
888
  }
883
889
 
884
- , hide: function (e) {
885
- e && e.preventDefault()
890
+ that.$element
891
+ .addClass('in')
892
+ .attr('aria-hidden', false)
886
893
 
887
- var that = this
894
+ that.enforceFocus()
888
895
 
889
- e = $.Event('hide')
896
+ transition ?
897
+ that.$element
898
+ .one($.support.transition.end, function () {
899
+ that.$element.focus().trigger('shown.bs.modal')
900
+ })
901
+ .emulateTransitionEnd(300) :
902
+ that.$element.focus().trigger('shown.bs.modal')
903
+ })
904
+ }
890
905
 
891
- this.$element.trigger(e)
906
+ Modal.prototype.hide = function (e) {
907
+ if (e) e.preventDefault()
892
908
 
893
- if (!this.isShown || e.isDefaultPrevented()) return
909
+ e = $.Event('hide.bs.modal')
894
910
 
895
- this.isShown = false
911
+ this.$element.trigger(e)
896
912
 
897
- this.escape()
913
+ if (!this.isShown || e.isDefaultPrevented()) return
898
914
 
899
- $(document).off('focusin.modal')
915
+ this.isShown = false
900
916
 
901
- this.$element
902
- .removeClass('in')
903
- .attr('aria-hidden', true)
917
+ this.escape()
904
918
 
905
- $.support.transition && this.$element.hasClass('fade') ?
906
- this.hideWithTransition() :
907
- this.hideModal()
908
- }
919
+ $(document).off('focusin.bs.modal')
909
920
 
910
- , enforceFocus: function () {
911
- var that = this
912
- $(document).on('focusin.modal', function (e) {
913
- if (that.$element[0] !== e.target && !that.$element.has(e.target).length) {
914
- that.$element.focus()
915
- }
916
- })
917
- }
921
+ this.$element
922
+ .removeClass('in')
923
+ .attr('aria-hidden', true)
918
924
 
919
- , escape: function () {
920
- var that = this
921
- if (this.isShown && this.options.keyboard) {
922
- this.$element.on('keyup.dismiss.modal', function ( e ) {
923
- e.which == 27 && that.hide()
924
- })
925
- } else if (!this.isShown) {
926
- this.$element.off('keyup.dismiss.modal')
927
- }
928
- }
925
+ $.support.transition && this.$element.hasClass('fade') ?
926
+ this.$element
927
+ .one($.support.transition.end, $.proxy(this.hideModal, this))
928
+ .emulateTransitionEnd(300) :
929
+ this.hideModal()
930
+ }
929
931
 
930
- , hideWithTransition: function () {
931
- var that = this
932
- , timeout = setTimeout(function () {
933
- that.$element.off($.support.transition.end)
934
- that.hideModal()
935
- }, 500)
932
+ Modal.prototype.enforceFocus = function () {
933
+ $(document)
934
+ .off('focusin.bs.modal') // guard against infinite focus loop
935
+ .on('focusin.bs.modal', $.proxy(function (e) {
936
+ if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
937
+ this.$element.focus()
938
+ }
939
+ }, this))
940
+ }
936
941
 
937
- this.$element.one($.support.transition.end, function () {
938
- clearTimeout(timeout)
939
- that.hideModal()
940
- })
941
- }
942
+ Modal.prototype.escape = function () {
943
+ if (this.isShown && this.options.keyboard) {
944
+ this.$element.on('keyup.dismiss.bs.modal', $.proxy(function (e) {
945
+ e.which == 27 && this.hide()
946
+ }, this))
947
+ } else if (!this.isShown) {
948
+ this.$element.off('keyup.dismiss.bs.modal')
949
+ }
950
+ }
942
951
 
943
- , hideModal: function () {
944
- var that = this
945
- this.$element.hide()
946
- this.backdrop(function () {
947
- that.removeBackdrop()
948
- that.$element.trigger('hidden')
949
- })
950
- }
952
+ Modal.prototype.hideModal = function () {
953
+ var that = this
954
+ this.$element.hide()
955
+ this.backdrop(function () {
956
+ that.removeBackdrop()
957
+ that.$element.trigger('hidden.bs.modal')
958
+ })
959
+ }
951
960
 
952
- , removeBackdrop: function () {
953
- this.$backdrop && this.$backdrop.remove()
954
- this.$backdrop = null
955
- }
961
+ Modal.prototype.removeBackdrop = function () {
962
+ this.$backdrop && this.$backdrop.remove()
963
+ this.$backdrop = null
964
+ }
956
965
 
957
- , backdrop: function (callback) {
958
- var that = this
959
- , animate = this.$element.hasClass('fade') ? 'fade' : ''
966
+ Modal.prototype.backdrop = function (callback) {
967
+ var that = this
968
+ var animate = this.$element.hasClass('fade') ? 'fade' : ''
960
969
 
961
- if (this.isShown && this.options.backdrop) {
962
- var doAnimate = $.support.transition && animate
970
+ if (this.isShown && this.options.backdrop) {
971
+ var doAnimate = $.support.transition && animate
963
972
 
964
- this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
965
- .appendTo(document.body)
973
+ this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
974
+ .appendTo(document.body)
966
975
 
967
- this.$backdrop.click(
968
- this.options.backdrop == 'static' ?
969
- $.proxy(this.$element[0].focus, this.$element[0])
970
- : $.proxy(this.hide, this)
971
- )
976
+ this.$element.on('click', $.proxy(function (e) {
977
+ if (e.target !== e.currentTarget) return
978
+ this.options.backdrop == 'static'
979
+ ? this.$element[0].focus.call(this.$element[0])
980
+ : this.hide.call(this)
981
+ }, this))
972
982
 
973
- if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
983
+ if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
974
984
 
975
- this.$backdrop.addClass('in')
985
+ this.$backdrop.addClass('in')
976
986
 
977
- if (!callback) return
987
+ if (!callback) return
978
988
 
979
- doAnimate ?
980
- this.$backdrop.one($.support.transition.end, callback) :
981
- callback()
989
+ doAnimate ?
990
+ this.$backdrop
991
+ .one($.support.transition.end, callback)
992
+ .emulateTransitionEnd(150) :
993
+ callback()
982
994
 
983
- } else if (!this.isShown && this.$backdrop) {
984
- this.$backdrop.removeClass('in')
995
+ } else if (!this.isShown && this.$backdrop) {
996
+ this.$backdrop.removeClass('in')
985
997
 
986
- $.support.transition && this.$element.hasClass('fade')?
987
- this.$backdrop.one($.support.transition.end, callback) :
988
- callback()
998
+ $.support.transition && this.$element.hasClass('fade')?
999
+ this.$backdrop
1000
+ .one($.support.transition.end, callback)
1001
+ .emulateTransitionEnd(150) :
1002
+ callback()
989
1003
 
990
- } else if (callback) {
991
- callback()
992
- }
993
- }
1004
+ } else if (callback) {
1005
+ callback()
1006
+ }
994
1007
  }
995
1008
 
996
1009
 
997
- /* MODAL PLUGIN DEFINITION
998
- * ======================= */
1010
+ // MODAL PLUGIN DEFINITION
1011
+ // =======================
999
1012
 
1000
1013
  var old = $.fn.modal
1001
1014
 
1002
1015
  $.fn.modal = function (option) {
1003
1016
  return this.each(function () {
1004
- var $this = $(this)
1005
- , data = $this.data('modal')
1006
- , options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option)
1007
- if (!data) $this.data('modal', (data = new Modal(this, options)))
1017
+ var $this = $(this)
1018
+ var data = $this.data('bs.modal')
1019
+ var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
1020
+
1021
+ if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
1008
1022
  if (typeof option == 'string') data[option]()
1009
1023
  else if (options.show) data.show()
1010
1024
  })
1011
1025
  }
1012
1026
 
1013
- $.fn.modal.defaults = {
1014
- backdrop: true
1015
- , keyboard: true
1016
- , show: true
1017
- }
1018
-
1019
1027
  $.fn.modal.Constructor = Modal
1020
1028
 
1021
1029
 
1022
- /* MODAL NO CONFLICT
1023
- * ================= */
1030
+ // MODAL NO CONFLICT
1031
+ // =================
1024
1032
 
1025
1033
  $.fn.modal.noConflict = function () {
1026
1034
  $.fn.modal = old
@@ -1028,30 +1036,35 @@
1028
1036
  }
1029
1037
 
1030
1038
 
1031
- /* MODAL DATA-API
1032
- * ============== */
1039
+ // MODAL DATA-API
1040
+ // ==============
1033
1041
 
1034
- $(document).on('click.modal.data-api', '[data-toggle="modal"]', function (e) {
1035
- var $this = $(this)
1036
- , href = $this.attr('href')
1037
- , $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
1038
- , option = $target.data('modal') ? 'toggle' : $.extend({ remote:!/#/.test(href) && href }, $target.data(), $this.data())
1042
+ $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
1043
+ var $this = $(this)
1044
+ var href = $this.attr('href')
1045
+ var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
1046
+ var option = $target.data('modal') ? 'toggle' : $.extend({ remote:!/#/.test(href) && href }, $target.data(), $this.data())
1039
1047
 
1040
1048
  e.preventDefault()
1041
1049
 
1042
1050
  $target
1043
1051
  .modal(option)
1044
1052
  .one('hide', function () {
1045
- $this.focus()
1053
+ $this.is(':visible') && $this.focus()
1046
1054
  })
1047
1055
  })
1048
1056
 
1057
+ var $body = $(document.body)
1058
+ .on('shown.bs.modal', '.modal', function () { $body.addClass('modal-open') })
1059
+ .on('hidden.bs.modal', '.modal', function () { $body.removeClass('modal-open') })
1060
+
1049
1061
  }(window.jQuery);
1050
- /* ===========================================================
1051
- * bootstrap-tooltip.js v2.3.2
1052
- * http://twitter.github.com/bootstrap/javascript.html#tooltips
1062
+
1063
+ /* ========================================================================
1064
+ * Bootstrap: tooltip.js v3.0.0
1065
+ * http://twbs.github.com/bootstrap/javascript.html#affix
1053
1066
  * Inspired by the original jQuery.tipsy by Jason Frame
1054
- * ===========================================================
1067
+ * ========================================================================
1055
1068
  * Copyright 2012 Twitter, Inc.
1056
1069
  *
1057
1070
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -1065,342 +1078,345 @@
1065
1078
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1066
1079
  * See the License for the specific language governing permissions and
1067
1080
  * limitations under the License.
1068
- * ========================================================== */
1069
-
1081
+ * ======================================================================== */
1070
1082
 
1071
- !function ($) {
1072
1083
 
1073
- "use strict"; // jshint ;_;
1084
+ +function ($) { "use strict";
1074
1085
 
1075
-
1076
- /* TOOLTIP PUBLIC CLASS DEFINITION
1077
- * =============================== */
1086
+ // TOOLTIP PUBLIC CLASS DEFINITION
1087
+ // ===============================
1078
1088
 
1079
1089
  var Tooltip = function (element, options) {
1090
+ this.type =
1091
+ this.options =
1092
+ this.enabled =
1093
+ this.timeout =
1094
+ this.hoverState =
1095
+ this.$element = null
1096
+
1080
1097
  this.init('tooltip', element, options)
1081
1098
  }
1082
1099
 
1083
- Tooltip.prototype = {
1100
+ Tooltip.DEFAULTS = {
1101
+ animation: true
1102
+ , placement: 'top'
1103
+ , selector: false
1104
+ , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
1105
+ , trigger: 'hover focus'
1106
+ , title: ''
1107
+ , delay: 0
1108
+ , html: false
1109
+ , container: false
1110
+ }
1084
1111
 
1085
- constructor: Tooltip
1112
+ Tooltip.prototype.init = function (type, element, options) {
1113
+ this.enabled = true
1114
+ this.type = type
1115
+ this.$element = $(element)
1116
+ this.options = this.getOptions(options)
1086
1117
 
1087
- , init: function (type, element, options) {
1088
- var eventIn
1089
- , eventOut
1090
- , triggers
1091
- , trigger
1092
- , i
1118
+ var triggers = this.options.trigger.split(' ')
1093
1119
 
1094
- this.type = type
1095
- this.$element = $(element)
1096
- this.options = this.getOptions(options)
1097
- this.enabled = true
1120
+ for (var i = triggers.length; i--;) {
1121
+ var trigger = triggers[i]
1098
1122
 
1099
- triggers = this.options.trigger.split(' ')
1123
+ if (trigger == 'click') {
1124
+ this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
1125
+ } else if (trigger != 'manual') {
1126
+ var eventIn = trigger == 'hover' ? 'mouseenter' : 'focus'
1127
+ var eventOut = trigger == 'hover' ? 'mouseleave' : 'blur'
1100
1128
 
1101
- for (i = triggers.length; i--;) {
1102
- trigger = triggers[i]
1103
- if (trigger == 'click') {
1104
- this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
1105
- } else if (trigger != 'manual') {
1106
- eventIn = trigger == 'hover' ? 'mouseenter' : 'focus'
1107
- eventOut = trigger == 'hover' ? 'mouseleave' : 'blur'
1108
- this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
1109
- this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
1110
- }
1129
+ this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
1130
+ this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
1111
1131
  }
1112
-
1113
- this.options.selector ?
1114
- (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
1115
- this.fixTitle()
1116
1132
  }
1117
1133
 
1118
- , getOptions: function (options) {
1119
- options = $.extend({}, $.fn[this.type].defaults, this.$element.data(), options)
1134
+ this.options.selector ?
1135
+ (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
1136
+ this.fixTitle()
1137
+ }
1120
1138
 
1121
- if (options.delay && typeof options.delay == 'number') {
1122
- options.delay = {
1123
- show: options.delay
1124
- , hide: options.delay
1125
- }
1126
- }
1139
+ Tooltip.prototype.getDefaults = function () {
1140
+ return Tooltip.DEFAULTS
1141
+ }
1142
+
1143
+ Tooltip.prototype.getOptions = function (options) {
1144
+ options = $.extend({}, this.getDefaults(), this.$element.data(), options)
1127
1145
 
1128
- return options
1146
+ if (options.delay && typeof options.delay == 'number') {
1147
+ options.delay = {
1148
+ show: options.delay
1149
+ , hide: options.delay
1150
+ }
1129
1151
  }
1130
1152
 
1131
- , enter: function (e) {
1132
- var defaults = $.fn[this.type].defaults
1133
- , options = {}
1134
- , self
1153
+ return options
1154
+ }
1135
1155
 
1136
- this._options && $.each(this._options, function (key, value) {
1137
- if (defaults[key] != value) options[key] = value
1138
- }, this)
1156
+ Tooltip.prototype.enter = function (obj) {
1157
+ var defaults = this.getDefaults()
1158
+ var options = {}
1139
1159
 
1140
- self = $(e.currentTarget)[this.type](options).data(this.type)
1160
+ this._options && $.each(this._options, function (key, value) {
1161
+ if (defaults[key] != value) options[key] = value
1162
+ })
1141
1163
 
1142
- if (!self.options.delay || !self.options.delay.show) return self.show()
1164
+ var self = obj instanceof this.constructor ?
1165
+ obj : $(obj.currentTarget)[this.type](options).data('bs.' + this.type)
1143
1166
 
1144
- clearTimeout(this.timeout)
1145
- self.hoverState = 'in'
1146
- this.timeout = setTimeout(function() {
1147
- if (self.hoverState == 'in') self.show()
1148
- }, self.options.delay.show)
1149
- }
1167
+ clearTimeout(self.timeout)
1150
1168
 
1151
- , leave: function (e) {
1152
- var self = $(e.currentTarget)[this.type](this._options).data(this.type)
1169
+ if (!self.options.delay || !self.options.delay.show) return self.show()
1153
1170
 
1154
- if (this.timeout) clearTimeout(this.timeout)
1155
- if (!self.options.delay || !self.options.delay.hide) return self.hide()
1171
+ self.hoverState = 'in'
1172
+ self.timeout = setTimeout(function () {
1173
+ if (self.hoverState == 'in') self.show()
1174
+ }, self.options.delay.show)
1175
+ }
1156
1176
 
1157
- self.hoverState = 'out'
1158
- this.timeout = setTimeout(function() {
1159
- if (self.hoverState == 'out') self.hide()
1160
- }, self.options.delay.hide)
1161
- }
1177
+ Tooltip.prototype.leave = function (obj) {
1178
+ var self = obj instanceof this.constructor ?
1179
+ obj : $(obj.currentTarget)[this.type](this._options).data('bs.' + this.type)
1162
1180
 
1163
- , show: function () {
1164
- var $tip
1165
- , pos
1166
- , actualWidth
1167
- , actualHeight
1168
- , placement
1169
- , tp
1170
- , e = $.Event('show')
1171
-
1172
- if (this.hasContent() && this.enabled) {
1173
- this.$element.trigger(e)
1174
- if (e.isDefaultPrevented()) return
1175
- $tip = this.tip()
1176
- this.setContent()
1177
-
1178
- if (this.options.animation) {
1179
- $tip.addClass('fade')
1180
- }
1181
+ clearTimeout(self.timeout)
1181
1182
 
1182
- placement = typeof this.options.placement == 'function' ?
1183
- this.options.placement.call(this, $tip[0], this.$element[0]) :
1184
- this.options.placement
1183
+ if (!self.options.delay || !self.options.delay.hide) return self.hide()
1185
1184
 
1186
- $tip
1187
- .detach()
1188
- .css({ top: 0, left: 0, display: 'block' })
1185
+ self.hoverState = 'out'
1186
+ self.timeout = setTimeout(function () {
1187
+ if (self.hoverState == 'out') self.hide()
1188
+ }, self.options.delay.hide)
1189
+ }
1189
1190
 
1190
- this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
1191
+ Tooltip.prototype.show = function () {
1192
+ var e = $.Event('show.bs.'+ this.type)
1191
1193
 
1192
- pos = this.getPosition()
1194
+ if (this.hasContent() && this.enabled) {
1195
+ this.$element.trigger(e)
1193
1196
 
1194
- actualWidth = $tip[0].offsetWidth
1195
- actualHeight = $tip[0].offsetHeight
1197
+ if (e.isDefaultPrevented()) return
1196
1198
 
1197
- switch (placement) {
1198
- case 'bottom':
1199
- tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}
1200
- break
1201
- case 'top':
1202
- tp = {top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2}
1203
- break
1204
- case 'left':
1205
- tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth}
1206
- break
1207
- case 'right':
1208
- tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width}
1209
- break
1210
- }
1199
+ var $tip = this.tip()
1211
1200
 
1212
- this.applyPlacement(tp, placement)
1213
- this.$element.trigger('shown')
1214
- }
1215
- }
1201
+ this.setContent()
1216
1202
 
1217
- , applyPlacement: function(offset, placement){
1218
- var $tip = this.tip()
1219
- , width = $tip[0].offsetWidth
1220
- , height = $tip[0].offsetHeight
1221
- , actualWidth
1222
- , actualHeight
1223
- , delta
1224
- , replace
1203
+ if (this.options.animation) $tip.addClass('fade')
1225
1204
 
1226
- $tip
1227
- .offset(offset)
1205
+ var placement = typeof this.options.placement == 'function' ?
1206
+ this.options.placement.call(this, $tip[0], this.$element[0]) :
1207
+ this.options.placement
1208
+
1209
+ var autoToken = /\s?auto?\s?/i
1210
+ var autoPlace = autoToken.test(placement)
1211
+ if (autoPlace) placement = placement.replace(autoToken, '') || 'top'
1212
+
1213
+ $tip
1214
+ .detach()
1215
+ .css({ top: 0, left: 0, display: 'block' })
1228
1216
  .addClass(placement)
1229
- .addClass('in')
1230
1217
 
1231
- actualWidth = $tip[0].offsetWidth
1232
- actualHeight = $tip[0].offsetHeight
1218
+ this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
1233
1219
 
1234
- if (placement == 'top' && actualHeight != height) {
1235
- offset.top = offset.top + height - actualHeight
1236
- replace = true
1237
- }
1220
+ var pos = this.getPosition()
1221
+ var actualWidth = $tip[0].offsetWidth
1222
+ var actualHeight = $tip[0].offsetHeight
1238
1223
 
1239
- if (placement == 'bottom' || placement == 'top') {
1240
- delta = 0
1224
+ if (autoPlace) {
1225
+ var $parent = this.$element.parent()
1241
1226
 
1242
- if (offset.left < 0){
1243
- delta = offset.left * -2
1244
- offset.left = 0
1245
- $tip.offset(offset)
1246
- actualWidth = $tip[0].offsetWidth
1247
- actualHeight = $tip[0].offsetHeight
1248
- }
1227
+ var orgPlacement = placement
1228
+ var docScroll = document.documentElement.scrollTop || document.body.scrollTop
1229
+ var parentWidth = this.options.container == 'body' ? window.innerWidth : $parent.outerWidth()
1230
+ var parentHeight = this.options.container == 'body' ? window.innerHeight : $parent.outerHeight()
1231
+ var parentLeft = this.options.container == 'body' ? 0 : $parent.offset().left
1249
1232
 
1250
- this.replaceArrow(delta - width + actualWidth, actualWidth, 'left')
1251
- } else {
1252
- this.replaceArrow(actualHeight - height, actualHeight, 'top')
1233
+ placement = placement == 'bottom' && pos.top + pos.height + actualHeight - docScroll > parentHeight ? 'top' :
1234
+ placement == 'top' && pos.top - docScroll - actualHeight < 0 ? 'bottom' :
1235
+ placement == 'right' && pos.right + actualWidth > parentWidth ? 'left' :
1236
+ placement == 'left' && pos.left - actualWidth < parentLeft ? 'right' :
1237
+ placement
1238
+
1239
+ $tip
1240
+ .removeClass(orgPlacement)
1241
+ .addClass(placement)
1253
1242
  }
1254
1243
 
1255
- if (replace) $tip.offset(offset)
1244
+ var tp = placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :
1245
+ placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
1246
+ placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
1247
+ /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
1248
+
1249
+ this.applyPlacement(tp, placement)
1250
+ this.$element.trigger('shown.bs.' + this.type)
1256
1251
  }
1252
+ }
1253
+
1254
+ Tooltip.prototype.applyPlacement = function(offset, placement) {
1255
+ var replace
1256
+ var $tip = this.tip()
1257
+ var width = $tip[0].offsetWidth
1258
+ var height = $tip[0].offsetHeight
1259
+
1260
+ // manually read margins because getBoundingClientRect includes difference
1261
+ offset.top = offset.top + parseInt($tip.css('margin-top'), 10)
1262
+ offset.left = offset.left + parseInt($tip.css('margin-left'), 10)
1263
+
1264
+ $tip
1265
+ .offset(offset)
1266
+ .addClass('in')
1267
+
1268
+ var actualWidth = $tip[0].offsetWidth
1269
+ var actualHeight = $tip[0].offsetHeight
1257
1270
 
1258
- , replaceArrow: function(delta, dimension, position){
1259
- this
1260
- .arrow()
1261
- .css(position, delta ? (50 * (1 - delta / dimension) + "%") : '')
1271
+ if (placement == 'top' && actualHeight != height) {
1272
+ replace = true
1273
+ offset.top = offset.top + height - actualHeight
1262
1274
  }
1263
1275
 
1264
- , setContent: function () {
1265
- var $tip = this.tip()
1266
- , title = this.getTitle()
1276
+ if (placement == 'bottom' || placement == 'top') {
1277
+ var delta = 0
1278
+
1279
+ if (offset.left < 0){
1280
+ delta = offset.left * -2
1281
+ offset.left = 0
1282
+
1283
+ $tip.offset(offset)
1267
1284
 
1268
- $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
1269
- $tip.removeClass('fade in top bottom left right')
1285
+ actualWidth = $tip[0].offsetWidth
1286
+ actualHeight = $tip[0].offsetHeight
1287
+ }
1288
+
1289
+ this.replaceArrow(delta - width + actualWidth, actualWidth, 'left')
1290
+ } else {
1291
+ this.replaceArrow(actualHeight - height, actualHeight, 'top')
1270
1292
  }
1271
1293
 
1272
- , hide: function () {
1273
- var that = this
1274
- , $tip = this.tip()
1275
- , e = $.Event('hide')
1294
+ if (replace) $tip.offset(offset)
1295
+ }
1276
1296
 
1277
- this.$element.trigger(e)
1278
- if (e.isDefaultPrevented()) return
1297
+ Tooltip.prototype.replaceArrow = function(delta, dimension, position) {
1298
+ this.arrow().css(position, delta ? (50 * (1 - delta / dimension) + "%") : '')
1299
+ }
1279
1300
 
1280
- $tip.removeClass('in')
1301
+ Tooltip.prototype.setContent = function () {
1302
+ var $tip = this.tip()
1303
+ var title = this.getTitle()
1281
1304
 
1282
- function removeWithAnimation() {
1283
- var timeout = setTimeout(function () {
1284
- $tip.off($.support.transition.end).detach()
1285
- }, 500)
1305
+ $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
1306
+ $tip.removeClass('fade in top bottom left right')
1307
+ }
1286
1308
 
1287
- $tip.one($.support.transition.end, function () {
1288
- clearTimeout(timeout)
1289
- $tip.detach()
1290
- })
1291
- }
1309
+ Tooltip.prototype.hide = function () {
1310
+ var that = this
1311
+ var $tip = this.tip()
1312
+ var e = $.Event('hide.bs.' + this.type)
1292
1313
 
1293
- $.support.transition && this.$tip.hasClass('fade') ?
1294
- removeWithAnimation() :
1295
- $tip.detach()
1314
+ this.$element.trigger(e)
1296
1315
 
1297
- this.$element.trigger('hidden')
1316
+ if (e.isDefaultPrevented()) return
1298
1317
 
1299
- return this
1300
- }
1318
+ $tip.removeClass('in')
1301
1319
 
1302
- , fixTitle: function () {
1303
- var $e = this.$element
1304
- if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') {
1305
- $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
1306
- }
1307
- }
1320
+ $.support.transition && this.$tip.hasClass('fade') ?
1321
+ $tip
1322
+ .one($.support.transition.end, $tip.detach)
1323
+ .emulateTransitionEnd(150) :
1324
+ $tip.detach()
1308
1325
 
1309
- , hasContent: function () {
1310
- return this.getTitle()
1311
- }
1326
+ this.$element.trigger('hidden.bs.' + this.type)
1312
1327
 
1313
- , getPosition: function () {
1314
- var el = this.$element[0]
1315
- return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : {
1316
- width: el.offsetWidth
1317
- , height: el.offsetHeight
1318
- }, this.$element.offset())
1328
+ return this
1329
+ }
1330
+
1331
+ Tooltip.prototype.fixTitle = function () {
1332
+ var $e = this.$element
1333
+ if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') {
1334
+ $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
1319
1335
  }
1336
+ }
1320
1337
 
1321
- , getTitle: function () {
1322
- var title
1323
- , $e = this.$element
1324
- , o = this.options
1338
+ Tooltip.prototype.hasContent = function () {
1339
+ return this.getTitle()
1340
+ }
1325
1341
 
1326
- title = $e.attr('data-original-title')
1327
- || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
1342
+ Tooltip.prototype.getPosition = function () {
1343
+ var el = this.$element[0]
1344
+ return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : {
1345
+ width: el.offsetWidth
1346
+ , height: el.offsetHeight
1347
+ }, this.$element.offset())
1348
+ }
1328
1349
 
1329
- return title
1330
- }
1350
+ Tooltip.prototype.getTitle = function () {
1351
+ var title
1352
+ var $e = this.$element
1353
+ var o = this.options
1331
1354
 
1332
- , tip: function () {
1333
- return this.$tip = this.$tip || $(this.options.template)
1334
- }
1355
+ title = $e.attr('data-original-title')
1356
+ || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
1335
1357
 
1336
- , arrow: function(){
1337
- return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")
1338
- }
1358
+ return title
1359
+ }
1339
1360
 
1340
- , validate: function () {
1341
- if (!this.$element[0].parentNode) {
1342
- this.hide()
1343
- this.$element = null
1344
- this.options = null
1345
- }
1346
- }
1361
+ Tooltip.prototype.tip = function () {
1362
+ return this.$tip = this.$tip || $(this.options.template)
1363
+ }
1347
1364
 
1348
- , enable: function () {
1349
- this.enabled = true
1350
- }
1365
+ Tooltip.prototype.arrow =function(){
1366
+ return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")
1367
+ }
1351
1368
 
1352
- , disable: function () {
1353
- this.enabled = false
1369
+ Tooltip.prototype.validate = function () {
1370
+ if (!this.$element[0].parentNode) {
1371
+ this.hide()
1372
+ this.$element = null
1373
+ this.options = null
1354
1374
  }
1375
+ }
1355
1376
 
1356
- , toggleEnabled: function () {
1357
- this.enabled = !this.enabled
1358
- }
1377
+ Tooltip.prototype.enable = function () {
1378
+ this.enabled = true
1379
+ }
1359
1380
 
1360
- , toggle: function (e) {
1361
- var self = e ? $(e.currentTarget)[this.type](this._options).data(this.type) : this
1362
- self.tip().hasClass('in') ? self.hide() : self.show()
1363
- }
1381
+ Tooltip.prototype.disable = function () {
1382
+ this.enabled = false
1383
+ }
1364
1384
 
1365
- , destroy: function () {
1366
- this.hide().$element.off('.' + this.type).removeData(this.type)
1367
- }
1385
+ Tooltip.prototype.toggleEnabled = function () {
1386
+ this.enabled = !this.enabled
1387
+ }
1388
+
1389
+ Tooltip.prototype.toggle = function (e) {
1390
+ var self = e ? $(e.currentTarget)[this.type](this._options).data('bs.' + this.type) : this
1391
+ self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
1392
+ }
1368
1393
 
1394
+ Tooltip.prototype.destroy = function () {
1395
+ this.hide().$element.off('.' + this.type).removeData('bs.' + this.type)
1369
1396
  }
1370
1397
 
1371
1398
 
1372
- /* TOOLTIP PLUGIN DEFINITION
1373
- * ========================= */
1399
+ // TOOLTIP PLUGIN DEFINITION
1400
+ // =========================
1374
1401
 
1375
1402
  var old = $.fn.tooltip
1376
1403
 
1377
- $.fn.tooltip = function ( option ) {
1404
+ $.fn.tooltip = function (option) {
1378
1405
  return this.each(function () {
1379
- var $this = $(this)
1380
- , data = $this.data('tooltip')
1381
- , options = typeof option == 'object' && option
1382
- if (!data) $this.data('tooltip', (data = new Tooltip(this, options)))
1406
+ var $this = $(this)
1407
+ var data = $this.data('bs.tooltip')
1408
+ var options = typeof option == 'object' && option
1409
+
1410
+ if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
1383
1411
  if (typeof option == 'string') data[option]()
1384
1412
  })
1385
1413
  }
1386
1414
 
1387
1415
  $.fn.tooltip.Constructor = Tooltip
1388
1416
 
1389
- $.fn.tooltip.defaults = {
1390
- animation: true
1391
- , placement: 'top'
1392
- , selector: false
1393
- , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
1394
- , trigger: 'hover focus'
1395
- , title: ''
1396
- , delay: 0
1397
- , html: false
1398
- , container: false
1399
- }
1400
-
1401
1417
 
1402
- /* TOOLTIP NO CONFLICT
1403
- * =================== */
1418
+ // TOOLTIP NO CONFLICT
1419
+ // ===================
1404
1420
 
1405
1421
  $.fn.tooltip.noConflict = function () {
1406
1422
  $.fn.tooltip = old
@@ -1408,10 +1424,11 @@
1408
1424
  }
1409
1425
 
1410
1426
  }(window.jQuery);
1411
- /* ===========================================================
1412
- * bootstrap-popover.js v2.3.2
1413
- * http://twitter.github.com/bootstrap/javascript.html#popovers
1414
- * ===========================================================
1427
+
1428
+ /* ========================================================================
1429
+ * Bootstrap: popover.js v3.0.0
1430
+ * http://twbs.github.com/bootstrap/javascript.html#popovers
1431
+ * ========================================================================
1415
1432
  * Copyright 2012 Twitter, Inc.
1416
1433
  *
1417
1434
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -1425,96 +1442,97 @@
1425
1442
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1426
1443
  * See the License for the specific language governing permissions and
1427
1444
  * limitations under the License.
1428
- * =========================================================== */
1429
-
1445
+ * ======================================================================== */
1430
1446
 
1431
- !function ($) {
1432
1447
 
1433
- "use strict"; // jshint ;_;
1448
+ +function ($) { "use strict";
1434
1449
 
1435
-
1436
- /* POPOVER PUBLIC CLASS DEFINITION
1437
- * =============================== */
1450
+ // POPOVER PUBLIC CLASS DEFINITION
1451
+ // ===============================
1438
1452
 
1439
1453
  var Popover = function (element, options) {
1440
1454
  this.init('popover', element, options)
1441
1455
  }
1442
1456
 
1457
+ if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
1458
+
1459
+ Popover.DEFAULTS = $.extend({} , $.fn.tooltip.Constructor.DEFAULTS, {
1460
+ placement: 'right'
1461
+ , trigger: 'click'
1462
+ , content: ''
1463
+ , template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
1464
+ })
1465
+
1443
1466
 
1444
- /* NOTE: POPOVER EXTENDS BOOTSTRAP-TOOLTIP.js
1445
- ========================================== */
1467
+ // NOTE: POPOVER EXTENDS tooltip.js
1468
+ // ================================
1446
1469
 
1447
- Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype, {
1470
+ Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)
1448
1471
 
1449
- constructor: Popover
1472
+ Popover.prototype.constructor = Popover
1450
1473
 
1451
- , setContent: function () {
1452
- var $tip = this.tip()
1453
- , title = this.getTitle()
1454
- , content = this.getContent()
1474
+ Popover.prototype.getDefaults = function () {
1475
+ return Popover.DEFAULTS
1476
+ }
1455
1477
 
1456
- $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
1457
- $tip.find('.popover-content')[this.options.html ? 'html' : 'text'](content)
1478
+ Popover.prototype.setContent = function () {
1479
+ var $tip = this.tip()
1480
+ var title = this.getTitle()
1481
+ var content = this.getContent()
1458
1482
 
1459
- $tip.removeClass('fade top bottom left right in')
1460
- }
1483
+ $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
1484
+ $tip.find('.popover-content')[this.options.html ? 'html' : 'text'](content)
1461
1485
 
1462
- , hasContent: function () {
1463
- return this.getTitle() || this.getContent()
1464
- }
1486
+ $tip.removeClass('fade top bottom left right in')
1465
1487
 
1466
- , getContent: function () {
1467
- var content
1468
- , $e = this.$element
1469
- , o = this.options
1488
+ $tip.find('.popover-title:empty').hide()
1489
+ }
1470
1490
 
1471
- content = (typeof o.content == 'function' ? o.content.call($e[0]) : o.content)
1472
- || $e.attr('data-content')
1491
+ Popover.prototype.hasContent = function () {
1492
+ return this.getTitle() || this.getContent()
1493
+ }
1473
1494
 
1474
- return content
1475
- }
1495
+ Popover.prototype.getContent = function () {
1496
+ var $e = this.$element
1497
+ var o = this.options
1476
1498
 
1477
- , tip: function () {
1478
- if (!this.$tip) {
1479
- this.$tip = $(this.options.template)
1480
- }
1481
- return this.$tip
1482
- }
1499
+ return $e.attr('data-content')
1500
+ || (typeof o.content == 'function' ?
1501
+ o.content.call($e[0]) :
1502
+ o.content)
1503
+ }
1483
1504
 
1484
- , destroy: function () {
1485
- this.hide().$element.off('.' + this.type).removeData(this.type)
1486
- }
1505
+ Popover.prototype.tip = function () {
1506
+ if (!this.$tip) this.$tip = $(this.options.template)
1507
+ return this.$tip
1508
+ }
1487
1509
 
1488
- })
1510
+ Popover.prototype.destroy = function () {
1511
+ this.hide().$element.off('.' + this.type).removeData(this.type)
1512
+ }
1489
1513
 
1490
1514
 
1491
- /* POPOVER PLUGIN DEFINITION
1492
- * ======================= */
1515
+ // POPOVER PLUGIN DEFINITION
1516
+ // =========================
1493
1517
 
1494
1518
  var old = $.fn.popover
1495
1519
 
1496
1520
  $.fn.popover = function (option) {
1497
1521
  return this.each(function () {
1498
- var $this = $(this)
1499
- , data = $this.data('popover')
1500
- , options = typeof option == 'object' && option
1501
- if (!data) $this.data('popover', (data = new Popover(this, options)))
1522
+ var $this = $(this)
1523
+ var data = $this.data('bs.popover')
1524
+ var options = typeof option == 'object' && option
1525
+
1526
+ if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
1502
1527
  if (typeof option == 'string') data[option]()
1503
1528
  })
1504
1529
  }
1505
1530
 
1506
1531
  $.fn.popover.Constructor = Popover
1507
1532
 
1508
- $.fn.popover.defaults = $.extend({} , $.fn.tooltip.defaults, {
1509
- placement: 'right'
1510
- , trigger: 'click'
1511
- , content: ''
1512
- , template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
1513
- })
1514
1533
 
1515
-
1516
- /* POPOVER NO CONFLICT
1517
- * =================== */
1534
+ // POPOVER NO CONFLICT
1535
+ // ===================
1518
1536
 
1519
1537
  $.fn.popover.noConflict = function () {
1520
1538
  $.fn.popover = old
@@ -1522,10 +1540,11 @@
1522
1540
  }
1523
1541
 
1524
1542
  }(window.jQuery);
1525
- /* =============================================================
1526
- * bootstrap-scrollspy.js v2.3.2
1527
- * http://twitter.github.com/bootstrap/javascript.html#scrollspy
1528
- * =============================================================
1543
+
1544
+ /* ========================================================================
1545
+ * Bootstrap: scrollspy.js v3.0.0
1546
+ * http://twbs.github.com/bootstrap/javascript.html#scrollspy
1547
+ * ========================================================================
1529
1548
  * Copyright 2012 Twitter, Inc.
1530
1549
  *
1531
1550
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -1539,133 +1558,129 @@
1539
1558
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1540
1559
  * See the License for the specific language governing permissions and
1541
1560
  * limitations under the License.
1542
- * ============================================================== */
1543
-
1561
+ * ======================================================================== */
1544
1562
 
1545
- !function ($) {
1546
1563
 
1547
- "use strict"; // jshint ;_;
1564
+ +function ($) { "use strict";
1548
1565
 
1549
-
1550
- /* SCROLLSPY CLASS DEFINITION
1551
- * ========================== */
1566
+ // SCROLLSPY CLASS DEFINITION
1567
+ // ==========================
1552
1568
 
1553
1569
  function ScrollSpy(element, options) {
1554
- var process = $.proxy(this.process, this)
1555
- , $element = $(element).is('body') ? $(window) : $(element)
1556
- , href
1557
- this.options = $.extend({}, $.fn.scrollspy.defaults, options)
1558
- this.$scrollElement = $element.on('scroll.scroll-spy.data-api', process)
1559
- this.selector = (this.options.target
1570
+ var href
1571
+ var process = $.proxy(this.process, this)
1572
+
1573
+ this.$element = $(element).is('body') ? $(window) : $(element)
1574
+ this.$body = $('body')
1575
+ this.$scrollElement = this.$element.on('scroll.bs.scroll-spy.data-api', process)
1576
+ this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
1577
+ this.selector = (this.options.target
1560
1578
  || ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
1561
1579
  || '') + ' .nav li > a'
1562
- this.$body = $('body')
1580
+ this.offsets = $([])
1581
+ this.targets = $([])
1582
+ this.activeTarget = null
1583
+
1563
1584
  this.refresh()
1564
1585
  this.process()
1565
1586
  }
1566
1587
 
1567
- ScrollSpy.prototype = {
1588
+ ScrollSpy.DEFAULTS = {
1589
+ offset: 10
1590
+ }
1568
1591
 
1569
- constructor: ScrollSpy
1592
+ ScrollSpy.prototype.refresh = function () {
1593
+ var offsetMethod = this.$element[0] == window ? 'offset' : 'position'
1570
1594
 
1571
- , refresh: function () {
1572
- var self = this
1573
- , $targets
1595
+ this.offsets = $([])
1596
+ this.targets = $([])
1574
1597
 
1575
- this.offsets = $([])
1576
- this.targets = $([])
1598
+ var self = this
1599
+ var $targets = this.$body
1600
+ .find(this.selector)
1601
+ .map(function () {
1602
+ var $el = $(this)
1603
+ var href = $el.data('target') || $el.attr('href')
1604
+ var $href = /^#\w/.test(href) && $(href)
1577
1605
 
1578
- $targets = this.$body
1579
- .find(this.selector)
1580
- .map(function () {
1581
- var $el = $(this)
1582
- , href = $el.data('target') || $el.attr('href')
1583
- , $href = /^#\w/.test(href) && $(href)
1584
- return ( $href
1585
- && $href.length
1586
- && [[ $href.position().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]] ) || null
1587
- })
1588
- .sort(function (a, b) { return a[0] - b[0] })
1589
- .each(function () {
1590
- self.offsets.push(this[0])
1591
- self.targets.push(this[1])
1592
- })
1593
- }
1594
-
1595
- , process: function () {
1596
- var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
1597
- , scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight
1598
- , maxScroll = scrollHeight - this.$scrollElement.height()
1599
- , offsets = this.offsets
1600
- , targets = this.targets
1601
- , activeTarget = this.activeTarget
1602
- , i
1603
-
1604
- if (scrollTop >= maxScroll) {
1605
- return activeTarget != (i = targets.last()[0])
1606
- && this.activate ( i )
1607
- }
1606
+ return ($href
1607
+ && $href.length
1608
+ && [[ $href[offsetMethod]().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]]) || null
1609
+ })
1610
+ .sort(function (a, b) { return a[0] - b[0] })
1611
+ .each(function () {
1612
+ self.offsets.push(this[0])
1613
+ self.targets.push(this[1])
1614
+ })
1615
+ }
1608
1616
 
1609
- for (i = offsets.length; i--;) {
1610
- activeTarget != targets[i]
1611
- && scrollTop >= offsets[i]
1612
- && (!offsets[i + 1] || scrollTop <= offsets[i + 1])
1613
- && this.activate( targets[i] )
1614
- }
1615
- }
1617
+ ScrollSpy.prototype.process = function () {
1618
+ var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
1619
+ var scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight
1620
+ var maxScroll = scrollHeight - this.$scrollElement.height()
1621
+ var offsets = this.offsets
1622
+ var targets = this.targets
1623
+ var activeTarget = this.activeTarget
1624
+ var i
1616
1625
 
1617
- , activate: function (target) {
1618
- var active
1619
- , selector
1626
+ if (scrollTop >= maxScroll) {
1627
+ return activeTarget != (i = targets.last()[0]) && this.activate(i)
1628
+ }
1620
1629
 
1621
- this.activeTarget = target
1630
+ for (i = offsets.length; i--;) {
1631
+ activeTarget != targets[i]
1632
+ && scrollTop >= offsets[i]
1633
+ && (!offsets[i + 1] || scrollTop <= offsets[i + 1])
1634
+ && this.activate( targets[i] )
1635
+ }
1636
+ }
1622
1637
 
1623
- $(this.selector)
1624
- .parent('.active')
1625
- .removeClass('active')
1638
+ ScrollSpy.prototype.activate = function (target) {
1639
+ this.activeTarget = target
1626
1640
 
1627
- selector = this.selector
1628
- + '[data-target="' + target + '"],'
1629
- + this.selector + '[href="' + target + '"]'
1641
+ $(this.selector)
1642
+ .parents('.active')
1643
+ .removeClass('active')
1630
1644
 
1631
- active = $(selector)
1632
- .parent('li')
1633
- .addClass('active')
1645
+ var selector = this.selector
1646
+ + '[data-target="' + target + '"],'
1647
+ + this.selector + '[href="' + target + '"]'
1634
1648
 
1635
- if (active.parent('.dropdown-menu').length) {
1636
- active = active.closest('li.dropdown').addClass('active')
1637
- }
1649
+ var active = $(selector)
1650
+ .parents('li')
1651
+ .addClass('active')
1638
1652
 
1639
- active.trigger('activate')
1640
- }
1653
+ if (active.parent('.dropdown-menu').length) {
1654
+ active = active
1655
+ .closest('li.dropdown')
1656
+ .addClass('active')
1657
+ }
1641
1658
 
1659
+ active.trigger('activate')
1642
1660
  }
1643
1661
 
1644
1662
 
1645
- /* SCROLLSPY PLUGIN DEFINITION
1646
- * =========================== */
1663
+ // SCROLLSPY PLUGIN DEFINITION
1664
+ // ===========================
1647
1665
 
1648
1666
  var old = $.fn.scrollspy
1649
1667
 
1650
1668
  $.fn.scrollspy = function (option) {
1651
1669
  return this.each(function () {
1652
- var $this = $(this)
1653
- , data = $this.data('scrollspy')
1654
- , options = typeof option == 'object' && option
1655
- if (!data) $this.data('scrollspy', (data = new ScrollSpy(this, options)))
1670
+ var $this = $(this)
1671
+ var data = $this.data('bs.scrollspy')
1672
+ var options = typeof option == 'object' && option
1673
+
1674
+ if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))
1656
1675
  if (typeof option == 'string') data[option]()
1657
1676
  })
1658
1677
  }
1659
1678
 
1660
1679
  $.fn.scrollspy.Constructor = ScrollSpy
1661
1680
 
1662
- $.fn.scrollspy.defaults = {
1663
- offset: 10
1664
- }
1665
-
1666
1681
 
1667
- /* SCROLLSPY NO CONFLICT
1668
- * ===================== */
1682
+ // SCROLLSPY NO CONFLICT
1683
+ // =====================
1669
1684
 
1670
1685
  $.fn.scrollspy.noConflict = function () {
1671
1686
  $.fn.scrollspy = old
@@ -1673,8 +1688,8 @@
1673
1688
  }
1674
1689
 
1675
1690
 
1676
- /* SCROLLSPY DATA-API
1677
- * ================== */
1691
+ // SCROLLSPY DATA-API
1692
+ // ==================
1678
1693
 
1679
1694
  $(window).on('load', function () {
1680
1695
  $('[data-spy="scroll"]').each(function () {
@@ -1683,10 +1698,12 @@
1683
1698
  })
1684
1699
  })
1685
1700
 
1686
- }(window.jQuery);/* ========================================================
1687
- * bootstrap-tab.js v2.3.2
1688
- * http://twitter.github.com/bootstrap/javascript.html#tabs
1689
- * ========================================================
1701
+ }(window.jQuery);
1702
+
1703
+ /* ========================================================================
1704
+ * Bootstrap: tab.js v3.0.0
1705
+ * http://twbs.github.com/bootstrap/javascript.html#tabs
1706
+ * ========================================================================
1690
1707
  * Copyright 2012 Twitter, Inc.
1691
1708
  *
1692
1709
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -1700,108 +1717,99 @@
1700
1717
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1701
1718
  * See the License for the specific language governing permissions and
1702
1719
  * limitations under the License.
1703
- * ======================================================== */
1704
-
1705
-
1706
- !function ($) {
1720
+ * ======================================================================== */
1707
1721
 
1708
- "use strict"; // jshint ;_;
1709
1722
 
1723
+ +function ($) { "use strict";
1710
1724
 
1711
- /* TAB CLASS DEFINITION
1712
- * ==================== */
1725
+ // TAB CLASS DEFINITION
1726
+ // ====================
1713
1727
 
1714
1728
  var Tab = function (element) {
1715
1729
  this.element = $(element)
1716
1730
  }
1717
1731
 
1718
- Tab.prototype = {
1719
-
1720
- constructor: Tab
1721
-
1722
- , show: function () {
1723
- var $this = this.element
1724
- , $ul = $this.closest('ul:not(.dropdown-menu)')
1725
- , selector = $this.attr('data-target')
1726
- , previous
1727
- , $target
1728
- , e
1729
-
1730
- if (!selector) {
1731
- selector = $this.attr('href')
1732
- selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
1733
- }
1732
+ Tab.prototype.show = function () {
1733
+ var $this = this.element
1734
+ var $ul = $this.closest('ul:not(.dropdown-menu)')
1735
+ var selector = $this.attr('data-target')
1734
1736
 
1735
- if ( $this.parent('li').hasClass('active') ) return
1737
+ if (!selector) {
1738
+ selector = $this.attr('href')
1739
+ selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
1740
+ }
1736
1741
 
1737
- previous = $ul.find('.active:last a')[0]
1742
+ if ($this.parent('li').hasClass('active')) return
1738
1743
 
1739
- e = $.Event('show', {
1740
- relatedTarget: previous
1741
- })
1744
+ var previous = $ul.find('.active:last a')[0]
1745
+ var e = $.Event('show.bs.tab', {
1746
+ relatedTarget: previous
1747
+ })
1742
1748
 
1743
- $this.trigger(e)
1749
+ $this.trigger(e)
1744
1750
 
1745
- if (e.isDefaultPrevented()) return
1751
+ if (e.isDefaultPrevented()) return
1746
1752
 
1747
- $target = $(selector)
1753
+ var $target = $(selector)
1748
1754
 
1749
- this.activate($this.parent('li'), $ul)
1750
- this.activate($target, $target.parent(), function () {
1751
- $this.trigger({
1752
- type: 'shown'
1753
- , relatedTarget: previous
1754
- })
1755
+ this.activate($this.parent('li'), $ul)
1756
+ this.activate($target, $target.parent(), function () {
1757
+ $this.trigger({
1758
+ type: 'shown.bs.tab'
1759
+ , relatedTarget: previous
1755
1760
  })
1756
- }
1761
+ })
1762
+ }
1757
1763
 
1758
- , activate: function ( element, container, callback) {
1759
- var $active = container.find('> .active')
1760
- , transition = callback
1761
- && $.support.transition
1762
- && $active.hasClass('fade')
1763
-
1764
- function next() {
1765
- $active
1766
- .removeClass('active')
1767
- .find('> .dropdown-menu > .active')
1768
- .removeClass('active')
1769
-
1770
- element.addClass('active')
1771
-
1772
- if (transition) {
1773
- element[0].offsetWidth // reflow for transition
1774
- element.addClass('in')
1775
- } else {
1776
- element.removeClass('fade')
1777
- }
1764
+ Tab.prototype.activate = function (element, container, callback) {
1765
+ var $active = container.find('> .active')
1766
+ var transition = callback
1767
+ && $.support.transition
1768
+ && $active.hasClass('fade')
1778
1769
 
1779
- if ( element.parent('.dropdown-menu') ) {
1780
- element.closest('li.dropdown').addClass('active')
1781
- }
1770
+ function next() {
1771
+ $active
1772
+ .removeClass('active')
1773
+ .find('> .dropdown-menu > .active')
1774
+ .removeClass('active')
1782
1775
 
1783
- callback && callback()
1776
+ element.addClass('active')
1777
+
1778
+ if (transition) {
1779
+ element[0].offsetWidth // reflow for transition
1780
+ element.addClass('in')
1781
+ } else {
1782
+ element.removeClass('fade')
1784
1783
  }
1785
1784
 
1786
- transition ?
1787
- $active.one($.support.transition.end, next) :
1788
- next()
1785
+ if (element.parent('.dropdown-menu')) {
1786
+ element.closest('li.dropdown').addClass('active')
1787
+ }
1789
1788
 
1790
- $active.removeClass('in')
1789
+ callback && callback()
1791
1790
  }
1791
+
1792
+ transition ?
1793
+ $active
1794
+ .one($.support.transition.end, next)
1795
+ .emulateTransitionEnd(150) :
1796
+ next()
1797
+
1798
+ $active.removeClass('in')
1792
1799
  }
1793
1800
 
1794
1801
 
1795
- /* TAB PLUGIN DEFINITION
1796
- * ===================== */
1802
+ // TAB PLUGIN DEFINITION
1803
+ // =====================
1797
1804
 
1798
1805
  var old = $.fn.tab
1799
1806
 
1800
1807
  $.fn.tab = function ( option ) {
1801
1808
  return this.each(function () {
1802
1809
  var $this = $(this)
1803
- , data = $this.data('tab')
1804
- if (!data) $this.data('tab', (data = new Tab(this)))
1810
+ var data = $this.data('bs.tab')
1811
+
1812
+ if (!data) $this.data('bs.tab', (data = new Tab(this)))
1805
1813
  if (typeof option == 'string') data[option]()
1806
1814
  })
1807
1815
  }
@@ -1809,8 +1817,8 @@
1809
1817
  $.fn.tab.Constructor = Tab
1810
1818
 
1811
1819
 
1812
- /* TAB NO CONFLICT
1813
- * =============== */
1820
+ // TAB NO CONFLICT
1821
+ // ===============
1814
1822
 
1815
1823
  $.fn.tab.noConflict = function () {
1816
1824
  $.fn.tab = old
@@ -1818,18 +1826,20 @@
1818
1826
  }
1819
1827
 
1820
1828
 
1821
- /* TAB DATA-API
1822
- * ============ */
1829
+ // TAB DATA-API
1830
+ // ============
1823
1831
 
1824
- $(document).on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
1832
+ $(document).on('click.bs.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
1825
1833
  e.preventDefault()
1826
1834
  $(this).tab('show')
1827
1835
  })
1828
1836
 
1829
- }(window.jQuery);/* =============================================================
1830
- * bootstrap-typeahead.js v2.3.2
1831
- * http://twitter.github.com/bootstrap/javascript.html#typeahead
1832
- * =============================================================
1837
+ }(window.jQuery);
1838
+
1839
+ /* ========================================================================
1840
+ * Bootstrap: affix.js v3.0.0
1841
+ * http://twbs.github.com/bootstrap/javascript.html#affix
1842
+ * ========================================================================
1833
1843
  * Copyright 2012 Twitter, Inc.
1834
1844
  *
1835
1845
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -1843,415 +1853,90 @@
1843
1853
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1844
1854
  * See the License for the specific language governing permissions and
1845
1855
  * limitations under the License.
1846
- * ============================================================ */
1847
-
1856
+ * ======================================================================== */
1848
1857
 
1849
- !function($){
1850
1858
 
1851
- "use strict"; // jshint ;_;
1859
+ +function ($) { "use strict";
1852
1860
 
1861
+ // AFFIX CLASS DEFINITION
1862
+ // ======================
1853
1863
 
1854
- /* TYPEAHEAD PUBLIC CLASS DEFINITION
1855
- * ================================= */
1864
+ var Affix = function (element, options) {
1865
+ this.options = $.extend({}, Affix.DEFAULTS, options)
1866
+ this.$window = $(window)
1867
+ .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
1868
+ .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
1856
1869
 
1857
- var Typeahead = function (element, options) {
1858
1870
  this.$element = $(element)
1859
- this.options = $.extend({}, $.fn.typeahead.defaults, options)
1860
- this.matcher = this.options.matcher || this.matcher
1861
- this.sorter = this.options.sorter || this.sorter
1862
- this.highlighter = this.options.highlighter || this.highlighter
1863
- this.updater = this.options.updater || this.updater
1864
- this.source = this.options.source
1865
- this.$menu = $(this.options.menu)
1866
- this.shown = false
1867
- this.listen()
1868
- }
1869
-
1870
- Typeahead.prototype = {
1871
-
1872
- constructor: Typeahead
1873
-
1874
- , select: function () {
1875
- var val = this.$menu.find('.active').attr('data-value')
1876
- this.$element
1877
- .val(this.updater(val))
1878
- .change()
1879
- return this.hide()
1880
- }
1881
-
1882
- , updater: function (item) {
1883
- return item
1884
- }
1885
-
1886
- , show: function () {
1887
- var pos = $.extend({}, this.$element.position(), {
1888
- height: this.$element[0].offsetHeight
1889
- })
1890
-
1891
- this.$menu
1892
- .insertAfter(this.$element)
1893
- .css({
1894
- top: pos.top + pos.height
1895
- , left: pos.left
1896
- })
1897
- .show()
1898
-
1899
- this.shown = true
1900
- return this
1901
- }
1902
-
1903
- , hide: function () {
1904
- this.$menu.hide()
1905
- this.shown = false
1906
- return this
1907
- }
1908
-
1909
- , lookup: function (event) {
1910
- var items
1911
-
1912
- this.query = this.$element.val()
1913
-
1914
- if (!this.query || this.query.length < this.options.minLength) {
1915
- return this.shown ? this.hide() : this
1916
- }
1917
-
1918
- items = $.isFunction(this.source) ? this.source(this.query, $.proxy(this.process, this)) : this.source
1919
-
1920
- return items ? this.process(items) : this
1921
- }
1922
-
1923
- , process: function (items) {
1924
- var that = this
1925
-
1926
- items = $.grep(items, function (item) {
1927
- return that.matcher(item)
1928
- })
1929
-
1930
- items = this.sorter(items)
1931
-
1932
- if (!items.length) {
1933
- return this.shown ? this.hide() : this
1934
- }
1935
-
1936
- return this.render(items.slice(0, this.options.items)).show()
1937
- }
1938
-
1939
- , matcher: function (item) {
1940
- return ~item.toLowerCase().indexOf(this.query.toLowerCase())
1941
- }
1942
-
1943
- , sorter: function (items) {
1944
- var beginswith = []
1945
- , caseSensitive = []
1946
- , caseInsensitive = []
1947
- , item
1948
-
1949
- while (item = items.shift()) {
1950
- if (!item.toLowerCase().indexOf(this.query.toLowerCase())) beginswith.push(item)
1951
- else if (~item.indexOf(this.query)) caseSensitive.push(item)
1952
- else caseInsensitive.push(item)
1953
- }
1954
-
1955
- return beginswith.concat(caseSensitive, caseInsensitive)
1956
- }
1957
-
1958
- , highlighter: function (item) {
1959
- var query = this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, '\\$&')
1960
- return item.replace(new RegExp('(' + query + ')', 'ig'), function ($1, match) {
1961
- return '<strong>' + match + '</strong>'
1962
- })
1963
- }
1964
-
1965
- , render: function (items) {
1966
- var that = this
1967
-
1968
- items = $(items).map(function (i, item) {
1969
- i = $(that.options.item).attr('data-value', item)
1970
- i.find('a').html(that.highlighter(item))
1971
- return i[0]
1972
- })
1973
-
1974
- items.first().addClass('active')
1975
- this.$menu.html(items)
1976
- return this
1977
- }
1978
-
1979
- , next: function (event) {
1980
- var active = this.$menu.find('.active').removeClass('active')
1981
- , next = active.next()
1982
-
1983
- if (!next.length) {
1984
- next = $(this.$menu.find('li')[0])
1985
- }
1986
-
1987
- next.addClass('active')
1988
- }
1989
-
1990
- , prev: function (event) {
1991
- var active = this.$menu.find('.active').removeClass('active')
1992
- , prev = active.prev()
1993
-
1994
- if (!prev.length) {
1995
- prev = this.$menu.find('li').last()
1996
- }
1997
-
1998
- prev.addClass('active')
1999
- }
2000
-
2001
- , listen: function () {
2002
- this.$element
2003
- .on('focus', $.proxy(this.focus, this))
2004
- .on('blur', $.proxy(this.blur, this))
2005
- .on('keypress', $.proxy(this.keypress, this))
2006
- .on('keyup', $.proxy(this.keyup, this))
2007
-
2008
- if (this.eventSupported('keydown')) {
2009
- this.$element.on('keydown', $.proxy(this.keydown, this))
2010
- }
2011
-
2012
- this.$menu
2013
- .on('click', $.proxy(this.click, this))
2014
- .on('mouseenter', 'li', $.proxy(this.mouseenter, this))
2015
- .on('mouseleave', 'li', $.proxy(this.mouseleave, this))
2016
- }
2017
-
2018
- , eventSupported: function(eventName) {
2019
- var isSupported = eventName in this.$element
2020
- if (!isSupported) {
2021
- this.$element.setAttribute(eventName, 'return;')
2022
- isSupported = typeof this.$element[eventName] === 'function'
2023
- }
2024
- return isSupported
2025
- }
1871
+ this.affixed =
1872
+ this.unpin = null
2026
1873
 
2027
- , move: function (e) {
2028
- if (!this.shown) return
2029
-
2030
- switch(e.keyCode) {
2031
- case 9: // tab
2032
- case 13: // enter
2033
- case 27: // escape
2034
- e.preventDefault()
2035
- break
2036
-
2037
- case 38: // up arrow
2038
- e.preventDefault()
2039
- this.prev()
2040
- break
2041
-
2042
- case 40: // down arrow
2043
- e.preventDefault()
2044
- this.next()
2045
- break
2046
- }
2047
-
2048
- e.stopPropagation()
2049
- }
2050
-
2051
- , keydown: function (e) {
2052
- this.suppressKeyPressRepeat = ~$.inArray(e.keyCode, [40,38,9,13,27])
2053
- this.move(e)
2054
- }
2055
-
2056
- , keypress: function (e) {
2057
- if (this.suppressKeyPressRepeat) return
2058
- this.move(e)
2059
- }
2060
-
2061
- , keyup: function (e) {
2062
- switch(e.keyCode) {
2063
- case 40: // down arrow
2064
- case 38: // up arrow
2065
- case 16: // shift
2066
- case 17: // ctrl
2067
- case 18: // alt
2068
- break
2069
-
2070
- case 9: // tab
2071
- case 13: // enter
2072
- if (!this.shown) return
2073
- this.select()
2074
- break
2075
-
2076
- case 27: // escape
2077
- if (!this.shown) return
2078
- this.hide()
2079
- break
2080
-
2081
- default:
2082
- this.lookup()
2083
- }
2084
-
2085
- e.stopPropagation()
2086
- e.preventDefault()
2087
- }
2088
-
2089
- , focus: function (e) {
2090
- this.focused = true
2091
- }
2092
-
2093
- , blur: function (e) {
2094
- this.focused = false
2095
- if (!this.mousedover && this.shown) this.hide()
2096
- }
2097
-
2098
- , click: function (e) {
2099
- e.stopPropagation()
2100
- e.preventDefault()
2101
- this.select()
2102
- this.$element.focus()
2103
- }
2104
-
2105
- , mouseenter: function (e) {
2106
- this.mousedover = true
2107
- this.$menu.find('.active').removeClass('active')
2108
- $(e.currentTarget).addClass('active')
2109
- }
2110
-
2111
- , mouseleave: function (e) {
2112
- this.mousedover = false
2113
- if (!this.focused && this.shown) this.hide()
2114
- }
2115
-
2116
- }
2117
-
2118
-
2119
- /* TYPEAHEAD PLUGIN DEFINITION
2120
- * =========================== */
2121
-
2122
- var old = $.fn.typeahead
2123
-
2124
- $.fn.typeahead = function (option) {
2125
- return this.each(function () {
2126
- var $this = $(this)
2127
- , data = $this.data('typeahead')
2128
- , options = typeof option == 'object' && option
2129
- if (!data) $this.data('typeahead', (data = new Typeahead(this, options)))
2130
- if (typeof option == 'string') data[option]()
2131
- })
2132
- }
2133
-
2134
- $.fn.typeahead.defaults = {
2135
- source: []
2136
- , items: 8
2137
- , menu: '<ul class="typeahead dropdown-menu"></ul>'
2138
- , item: '<li><a href="#"></a></li>'
2139
- , minLength: 1
1874
+ this.checkPosition()
2140
1875
  }
2141
1876
 
2142
- $.fn.typeahead.Constructor = Typeahead
1877
+ Affix.RESET = 'affix affix-top affix-bottom'
2143
1878
 
2144
-
2145
- /* TYPEAHEAD NO CONFLICT
2146
- * =================== */
2147
-
2148
- $.fn.typeahead.noConflict = function () {
2149
- $.fn.typeahead = old
2150
- return this
1879
+ Affix.DEFAULTS = {
1880
+ offset: 0
2151
1881
  }
2152
1882
 
2153
-
2154
- /* TYPEAHEAD DATA-API
2155
- * ================== */
2156
-
2157
- $(document).on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) {
2158
- var $this = $(this)
2159
- if ($this.data('typeahead')) return
2160
- $this.typeahead($this.data())
2161
- })
2162
-
2163
- }(window.jQuery);
2164
- /* ==========================================================
2165
- * bootstrap-affix.js v2.3.2
2166
- * http://twitter.github.com/bootstrap/javascript.html#affix
2167
- * ==========================================================
2168
- * Copyright 2012 Twitter, Inc.
2169
- *
2170
- * Licensed under the Apache License, Version 2.0 (the "License");
2171
- * you may not use this file except in compliance with the License.
2172
- * You may obtain a copy of the License at
2173
- *
2174
- * http://www.apache.org/licenses/LICENSE-2.0
2175
- *
2176
- * Unless required by applicable law or agreed to in writing, software
2177
- * distributed under the License is distributed on an "AS IS" BASIS,
2178
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2179
- * See the License for the specific language governing permissions and
2180
- * limitations under the License.
2181
- * ========================================================== */
2182
-
2183
-
2184
- !function ($) {
2185
-
2186
- "use strict"; // jshint ;_;
2187
-
2188
-
2189
- /* AFFIX CLASS DEFINITION
2190
- * ====================== */
2191
-
2192
- var Affix = function (element, options) {
2193
- this.options = $.extend({}, $.fn.affix.defaults, options)
2194
- this.$window = $(window)
2195
- .on('scroll.affix.data-api', $.proxy(this.checkPosition, this))
2196
- .on('click.affix.data-api', $.proxy(function () { setTimeout($.proxy(this.checkPosition, this), 1) }, this))
2197
- this.$element = $(element)
2198
- this.checkPosition()
1883
+ Affix.prototype.checkPositionWithEventLoop = function () {
1884
+ setTimeout($.proxy(this.checkPosition, this), 1)
2199
1885
  }
2200
1886
 
2201
1887
  Affix.prototype.checkPosition = function () {
2202
1888
  if (!this.$element.is(':visible')) return
2203
1889
 
2204
1890
  var scrollHeight = $(document).height()
2205
- , scrollTop = this.$window.scrollTop()
2206
- , position = this.$element.offset()
2207
- , offset = this.options.offset
2208
- , offsetBottom = offset.bottom
2209
- , offsetTop = offset.top
2210
- , reset = 'affix affix-top affix-bottom'
2211
- , affix
2212
-
2213
- if (typeof offset != 'object') offsetBottom = offsetTop = offset
2214
- if (typeof offsetTop == 'function') offsetTop = offset.top()
1891
+ var scrollTop = this.$window.scrollTop()
1892
+ var position = this.$element.offset()
1893
+ var offset = this.options.offset
1894
+ var offsetTop = offset.top
1895
+ var offsetBottom = offset.bottom
1896
+
1897
+ if (typeof offset != 'object') offsetBottom = offsetTop = offset
1898
+ if (typeof offsetTop == 'function') offsetTop = offset.top()
2215
1899
  if (typeof offsetBottom == 'function') offsetBottom = offset.bottom()
2216
1900
 
2217
- affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ?
2218
- false : offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ?
2219
- 'bottom' : offsetTop != null && scrollTop <= offsetTop ?
2220
- 'top' : false
1901
+ var affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ? false :
1902
+ offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ? 'bottom' :
1903
+ offsetTop != null && (scrollTop <= offsetTop) ? 'top' : false
2221
1904
 
2222
1905
  if (this.affixed === affix) return
1906
+ if (this.unpin) this.$element.css('top', '')
2223
1907
 
2224
1908
  this.affixed = affix
2225
- this.unpin = affix == 'bottom' ? position.top - scrollTop : null
1909
+ this.unpin = affix == 'bottom' ? position.top - scrollTop : null
2226
1910
 
2227
- this.$element.removeClass(reset).addClass('affix' + (affix ? '-' + affix : ''))
1911
+ this.$element.removeClass(Affix.RESET).addClass('affix' + (affix ? '-' + affix : ''))
1912
+
1913
+ if (affix == 'bottom') {
1914
+ this.$element.offset({ top: document.body.offsetHeight - offsetBottom - this.$element.height() })
1915
+ }
2228
1916
  }
2229
1917
 
2230
1918
 
2231
- /* AFFIX PLUGIN DEFINITION
2232
- * ======================= */
1919
+ // AFFIX PLUGIN DEFINITION
1920
+ // =======================
2233
1921
 
2234
1922
  var old = $.fn.affix
2235
1923
 
2236
1924
  $.fn.affix = function (option) {
2237
1925
  return this.each(function () {
2238
- var $this = $(this)
2239
- , data = $this.data('affix')
2240
- , options = typeof option == 'object' && option
2241
- if (!data) $this.data('affix', (data = new Affix(this, options)))
1926
+ var $this = $(this)
1927
+ var data = $this.data('bs.affix')
1928
+ var options = typeof option == 'object' && option
1929
+
1930
+ if (!data) $this.data('bs.affix', (data = new Affix(this, options)))
2242
1931
  if (typeof option == 'string') data[option]()
2243
1932
  })
2244
1933
  }
2245
1934
 
2246
1935
  $.fn.affix.Constructor = Affix
2247
1936
 
2248
- $.fn.affix.defaults = {
2249
- offset: 0
2250
- }
2251
-
2252
1937
 
2253
- /* AFFIX NO CONFLICT
2254
- * ================= */
1938
+ // AFFIX NO CONFLICT
1939
+ // =================
2255
1940
 
2256
1941
  $.fn.affix.noConflict = function () {
2257
1942
  $.fn.affix = old
@@ -2259,22 +1944,21 @@
2259
1944
  }
2260
1945
 
2261
1946
 
2262
- /* AFFIX DATA-API
2263
- * ============== */
1947
+ // AFFIX DATA-API
1948
+ // ==============
2264
1949
 
2265
1950
  $(window).on('load', function () {
2266
1951
  $('[data-spy="affix"]').each(function () {
2267
1952
  var $spy = $(this)
2268
- , data = $spy.data()
1953
+ var data = $spy.data()
2269
1954
 
2270
1955
  data.offset = data.offset || {}
2271
1956
 
2272
- data.offsetBottom && (data.offset.bottom = data.offsetBottom)
2273
- data.offsetTop && (data.offset.top = data.offsetTop)
1957
+ if (data.offsetBottom) data.offset.bottom = data.offsetBottom
1958
+ if (data.offsetTop) data.offset.top = data.offsetTop
2274
1959
 
2275
1960
  $spy.affix(data)
2276
1961
  })
2277
1962
  })
2278
1963
 
2279
-
2280
- }(window.jQuery);
1964
+ }(window.jQuery);