bootstrap-rails-engine 2.3.2.0 → 3.0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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);