bootstrap3_autocomplete_input 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (299) hide show
  1. checksums.yaml +4 -4
  2. data/MIT-LICENSE +20 -20
  3. data/Rakefile +32 -32
  4. data/app/inputs/autocomplete_input.rb +76 -76
  5. data/lib/assets/javascripts/bootstrap3-autocomplete-input.js +137 -137
  6. data/lib/assets/javascripts/bootstrap3-typeahead.js +476 -476
  7. data/lib/bootstrap3_autocomplete_input.rb +23 -23
  8. data/lib/bootstrap3_autocomplete_input/controllers/autocomplete.rb +73 -73
  9. data/lib/bootstrap3_autocomplete_input/orm.rb +6 -6
  10. data/lib/bootstrap3_autocomplete_input/orm/active_record.rb +90 -62
  11. data/lib/bootstrap3_autocomplete_input/orm/mongo_mapper.rb +30 -30
  12. data/lib/bootstrap3_autocomplete_input/orm/mongoid.rb +44 -44
  13. data/lib/bootstrap3_autocomplete_input/rails/engine.rb +15 -15
  14. data/lib/bootstrap3_autocomplete_input/simple_form_inputs.rb +77 -77
  15. data/lib/bootstrap3_autocomplete_input/version.rb +3 -3
  16. data/lib/tasks/bootstrap3_autocomplete_input_tasks.rake +4 -4
  17. data/test/bootstrap3_autocomplete_input_test.rb +7 -7
  18. data/test/dummy/README.rdoc +28 -28
  19. data/test/dummy/Rakefile +6 -6
  20. data/test/dummy/app/assets/javascripts/application.js +18 -18
  21. data/test/dummy/app/assets/stylesheets/application.css.scss +3 -3
  22. data/test/dummy/app/controllers/application_controller.rb +5 -5
  23. data/test/dummy/app/controllers/clients_controller.rb +66 -66
  24. data/test/dummy/app/controllers/orders_controller.rb +62 -62
  25. data/test/dummy/app/helpers/application_helper.rb +2 -2
  26. data/test/dummy/app/helpers/clients_helper.rb +2 -2
  27. data/test/dummy/app/helpers/orders_helper.rb +2 -2
  28. data/test/dummy/app/models/client.rb +3 -3
  29. data/test/dummy/app/models/order.rb +3 -3
  30. data/test/dummy/app/views/clients/_form.html.erb +18 -18
  31. data/test/dummy/app/views/clients/edit.html.erb +6 -6
  32. data/test/dummy/app/views/clients/index.html.erb +24 -24
  33. data/test/dummy/app/views/clients/new.html.erb +5 -5
  34. data/test/dummy/app/views/clients/show.html.erb +4 -4
  35. data/test/dummy/app/views/layouts/application.html.erb +14 -14
  36. data/test/dummy/app/views/orders/_form.html.erb +58 -58
  37. data/test/dummy/app/views/orders/edit.html.erb +6 -6
  38. data/test/dummy/app/views/orders/index.html.erb +23 -23
  39. data/test/dummy/app/views/orders/new.html.erb +5 -5
  40. data/test/dummy/app/views/orders/show.html.erb +4 -4
  41. data/test/dummy/bin/bundle +3 -3
  42. data/test/dummy/bin/rails +4 -4
  43. data/test/dummy/bin/rake +4 -4
  44. data/test/dummy/config.ru +4 -4
  45. data/test/dummy/config/application.rb +25 -25
  46. data/test/dummy/config/boot.rb +5 -5
  47. data/test/dummy/config/database.yml +25 -25
  48. data/test/dummy/config/environment.rb +5 -5
  49. data/test/dummy/config/environments/development.rb +37 -37
  50. data/test/dummy/config/environments/production.rb +78 -78
  51. data/test/dummy/config/environments/test.rb +39 -39
  52. data/test/dummy/config/initializers/assets.rb +8 -8
  53. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -7
  54. data/test/dummy/config/initializers/cookies_serializer.rb +2 -2
  55. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -4
  56. data/test/dummy/config/initializers/inflections.rb +16 -16
  57. data/test/dummy/config/initializers/mime_types.rb +4 -4
  58. data/test/dummy/config/initializers/session_store.rb +3 -3
  59. data/test/dummy/config/initializers/simple_form.rb +166 -166
  60. data/test/dummy/config/initializers/simple_form_bootstrap.rb +136 -136
  61. data/test/dummy/config/initializers/wrap_parameters.rb +14 -14
  62. data/test/dummy/config/locales/en.yml +23 -23
  63. data/test/dummy/config/locales/simple_form.en.yml +31 -31
  64. data/test/dummy/config/routes.rb +67 -67
  65. data/test/dummy/config/secrets.yml +22 -22
  66. data/test/dummy/db/migrate/20141224031843_create_clients.rb +10 -10
  67. data/test/dummy/db/migrate/20141224031854_create_orders.rb +12 -12
  68. data/test/dummy/db/migrate/20141224032000_add_client_to_order.rb +6 -6
  69. data/test/dummy/db/schema.rb +30 -30
  70. data/test/dummy/public/404.html +67 -67
  71. data/test/dummy/public/422.html +67 -67
  72. data/test/dummy/public/500.html +66 -66
  73. data/test/dummy/test/controllers/clients_controller_test.rb +49 -49
  74. data/test/dummy/test/controllers/orders_controller_test.rb +49 -49
  75. data/test/dummy/test/fixtures/clients.yml +11 -11
  76. data/test/dummy/test/fixtures/orders.yml +11 -11
  77. data/test/dummy/test/helpers/clients_helper_test.rb +4 -4
  78. data/test/dummy/test/helpers/orders_helper_test.rb +4 -4
  79. data/test/dummy/test/models/client_test.rb +7 -7
  80. data/test/dummy/test/models/order_test.rb +7 -7
  81. data/test/test_helper.rb +16 -16
  82. metadata +52 -486
  83. data/test/dummy/db/development.sqlite3 +0 -0
  84. data/test/dummy/log/development.log +0 -2627
  85. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/-mg3cfVFSDhBqP-XzMLP8Dwo1RHblXwbdIZm4HAoTuc.cache +0 -1
  86. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/082UVi_1sOVWVqPnygarA-XSDB6cV7NP4oDu9J-uhxM.cache +0 -2
  87. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/0Wm9sjUP5phpz-bcSyYtDJ8OUlF3Er7bzLsUH9luI0k.cache +0 -0
  88. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/1OJ54PWRkRuZLp9BRvEbP46vrnFr3ir1wvQcLc8ftcI.cache +0 -3
  89. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/1XGjOrpumIescxwYl95_qyLE0lT0f2Aqd9hzf3X2Ph0.cache +0 -2
  90. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/2Vvymvw-ArKlWEE9eCR8soxug0U32pBrce9x0et-S0E.cache +0 -0
  91. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/3TuMmRZUa3QpRehDpPSWdLOGr4p_22o3G6QYfOjVcks.cache +0 -0
  92. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/3_UhoV9-saSaapW3bvqBystOFh1ML5l6gwsGNxyzZZQ.cache +0 -0
  93. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/5VlpCU8VdVcyFp0w3VC2TJTsVZtqlKCk2BoET2fT1Fs.cache +0 -0
  94. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/5jl9-TjIonU1XabC4NkgFRCvjf6P-3SZAswo9jeE23w.cache +0 -0
  95. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/6pSco-V92AQ--GbyX6wt6FTmW1Rojz3vDGnDoVW3xVc.cache +0 -0
  96. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/6vjN9xjdZSKSsXUskAPP9R7UrmT1wzmGmN0Idlm1gp8.cache +0 -0
  97. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/7RUyWORZuXmYQjgt32wLwDWbijKL0mA9pewx4fBA9rY.cache +0 -0
  98. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/7f6Qq4TzdvRxyc5ckM66Mwle9V0p7Aies1N2uQ8z3iQ.cache +0 -2
  99. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/7trESZUdYEuU92IT9rt7G8FN-DH77gsFw7kU3HeURNc.cache +0 -1
  100. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/87aFyQL4cOOlhdxFzvmLFnDF3LNIj1N8Ks16rexpctc.cache +0 -2
  101. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/8FTEaiMwyiIYNrhFe4y-Spu31L1d07Yi9e9uvRU0QpA.cache +0 -1
  102. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/8RapAgTzItOMZ9TolQUY0M8kb4nTyhzZjlHaFHil8Q4.cache +0 -0
  103. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/8YGvwclY8pAsgGkVLJeB9XhQH5Zv1Yeg1o7cg0mEjdo.cache +0 -2
  104. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/8zUcnPDeXuFxmKiRTQgvOurUYRiQ4gRO4YPcyHyVTLs.cache +0 -0
  105. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/90DsKBtMsI5D_C1JMj_bP3H8lvca52ZplB6KF23dRbg.cache +0 -1
  106. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/A0_Xr2l3r9_Oz82aHePa3hcqFOkoGVXGtnrb07dwd3s.cache +0 -1
  107. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/AsBUMdWWGdh5lJqDWKcHniKyJk3722WbF2iM2XL6QmE.cache +0 -1
  108. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/B3WeCR_rV2iTTqEZ6_2eXhBzxbWJInsIZHXpqfk6Y_M.cache +0 -1
  109. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Bjhopp-9PvELN3upkFHAI0Uv9rP8AJDRi0yqDv_IwTc.cache +0 -1
  110. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/C32CVY13oEp0mPJVRa5kaLmTI7QloaZ6vCNu62IZ-gY.cache +0 -0
  111. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/CxSWaEO-QN1FmFJBC_hQHxMegmhik32Mqantfzl6JIs.cache +0 -0
  112. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/D4yP3bLk-x0IlcoUyFzwiNBzq_jAkPH49_8IfkptI7o.cache +0 -0
  113. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/DIzGmQDCNsDRSIRFVSk4kFublL0D8LeaNFMvgCpNVIU.cache +0 -1
  114. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/DPkilqzfaA3umf0MXBcYPywQRXd3rfJxMx8GhcRc7vU.cache +0 -0
  115. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/DeEMv0tVVEn7zD45CKh11V3LklKoGIvPuLE91yOGXOg.cache +0 -2
  116. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/EAmyjUi3KjRROjuP0SSp0KiXMYWnMF9WDN3nAbY1BSQ.cache +0 -0
  117. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ECw8oXwisAngKBewE5LglwfywaX1ZswIulGcEkKFGhY.cache +0 -1
  118. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/EyGjwWjMj6igPpxdMpcG0vEpffIdSEmrx2RLmOUfli8.cache +0 -1
  119. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/FEPuoQ0IPdwhbqb3PQkxqxbRV0LVK9ZmBzBGoxa_I00.cache +0 -0
  120. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/FoGWpRX7afmu67Jq7r4sf609l79Ntt6CW0d9Ay6gX2U.cache +0 -1
  121. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/GBO9pYH-F7fXbaJzq47ogLfLjw5bAnr0f8u-H5KWXFw.cache +0 -1
  122. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/GZv7pkbus2LMXx4jrsZRKBJzHNau83xU3EgqNJWDlFA.cache +0 -1
  123. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Gu6_xrJohm7qV8PJyGk0Oxxa16MKGICo8OxIUB56-FE.cache +0 -1
  124. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/HxvtLGuzmwxsz89M7vQtB5qTILHWnRpPAQE-IJ3nH0c.cache +0 -0
  125. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/HzyjhR0DQBOd2PaLK1cKafo3QR2tBxWFfRp0KYttDQY.cache +0 -0
  126. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/IIa5NJ3b54gqjXm_r7azOhqQdcJxYpFxEl__yy3R1zY.cache +0 -1
  127. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ILrKhSF0jB_k9rahZdSFyfUGxwHg1MPOqPnU7MQDWhc.cache +0 -1
  128. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/IYF5Xr-DDYbL4UVJuO8qta_9-qKMMGDBAkQ94rBIlkQ.cache +0 -0
  129. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/IvZubCuP04pQISsRTpbhkF9pXpkzgstJu9N3nk4flfk.cache +0 -0
  130. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/J8E2XbtdYRFzyGGw20KtQ0qLtgg-ymD8PR6dyyPZ21w.cache +0 -0
  131. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/JR3sf0ki9amnEgEj1Mokt6SZd41-J7LcZTofu5oUaHI.cache +0 -0
  132. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/JSVBjAIvli26KJW3oQWyQpBuv80uoUG7ZXx94c6HPR0.cache +0 -1
  133. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/JSfhfWhM1DxhGsiJWJUe5QQkMuWoAcaQCcjxCKLJuSI.cache +0 -0
  134. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/JYzvA33zPy65KMWhoYzvXg2BMBZu8nCtFuXAPk93aBI.cache +0 -1
  135. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/J_Yyw2ATOsNj-XkBW10o2l1q4WvJhcUz0MVfOBRfIBY.cache +0 -1
  136. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/J_g-Ctv30oacCpYIXEnspJVj5nhwcc1G5gKL8fV5kak.cache +0 -0
  137. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Jd4Iit9GGGNMuaK3o5d4Y_oZqUA3B61LPjTIpZmcjzw.cache +0 -1
  138. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/JyWZW92KT7tmNNKXhLWT3qobZsQhRaT2bs-rbcbArYM.cache +0 -0
  139. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/KC0_UN2KcaGc-NR459hIk2QX1iZWkgRDzhzRz3kI1Xk.cache +0 -3
  140. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/KItyyjW6QVzn7sxcSs2XLvRaPOtS-iBifPqN4OCS0GY.cache +0 -0
  141. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/KZsf2MPGz94sY7B4BiaVKNCA5W4sQCGFVT5qjwTXgN4.cache +0 -2
  142. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/LN_0nSezQWSIdU_Uz5kVG91Ym9JhOlQkQHp6zYctnuY.cache +0 -0
  143. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/LWeTLQ8VjhwXeVMQoIp9U_CIEpAL1PdvN_pU33cjJdk.cache +0 -1
  144. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/LfdhM5RArodRURrLBHQSiOnzt_vMxWvKmeghn6n9vQw.cache +0 -1
  145. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/LrWZNKEUGOCnMSAn6NkLbomPeA5EhjgHO7WXn8Ulxpg.cache +0 -0
  146. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/MMGcng9AbTQMzwlxa1UgG8B8aI9pZI4n9JxUiVNL1U8.cache +0 -1
  147. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/MZqvis7D-2gKkdUIU5yp_IJO-D2CWo7Nrd45cY2JNSY.cache +0 -2
  148. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/MzEV6fJSpdy62ogdE9ikujeScuKDPU2E78ERuNF4xKo.cache +0 -0
  149. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/N-JqiFyTPzJTn5hjIL7Ahc7dW2TPHrxhEvANMn5AHhY.cache +0 -0
  150. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/N8L3WZ9ANXrOtFrb_MoORsu6CErBJm-tCdFgnFHBwbg.cache +0 -0
  151. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/NEX1JAF9guTFiVP3YP31jbddxlzkUs0xgpQi2SyoDBc.cache +0 -1
  152. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/NgogLyEBrvYGv_tH7utcr_9OSfs_OyLOyfV76RwwRXo.cache +0 -1
  153. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/OhVftbcKbSB5zhog5-bu7jcN9wFao3VU98M322u7wqI.cache +0 -2
  154. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/OhidgkgVFzwIoiMGWF1B9tRi4Ies9O_vpiD4v7jSxdY.cache +0 -1
  155. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Orn1Yj7AVRbJPKvuBJqXVFnTTv9LKtNwzapG5T34jAw.cache +0 -1
  156. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Os04_CMTZ6F_GmaIG2z5p7yTUvHkl3uZZjIimOAZiY0.cache +0 -1
  157. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/OvaolF2YxXFT-gqECgnmB0LiW2i-t6nOY9oTeirHNzQ.cache +0 -1
  158. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/P2V-Ovyqm4T0JzasUMA9pCnlsb1Ij4ywZr7UisdC2jw.cache +0 -0
  159. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/P2Zq5nKOLCy7FHa0CJ-2v4smLn__DVMlUSqrbWsCZ2g.cache +0 -0
  160. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/P6_dsNeHAHAQUsMliBsdafiKgtnFzDmruwAK3Q38pEs.cache +0 -0
  161. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/P6neqKcrEsu8ukITrwMd6IKqV-hdBstjb4YXfN1A5RU.cache +0 -0
  162. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/PYXQf7HcioPGLdg-FkvFwb9H4M7dpnqxiCxcH6GEEoo.cache +0 -0
  163. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/QJZnPy0B78GDW8AHjsmH5Z1kolbJx9M520qO3H1MqFE.cache +0 -0
  164. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/QjeHRInHgH27aKMBz0aChi-sEzwVHxI1Wye66eyDSM0.cache +0 -0
  165. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/R-htS2rUHlwXbZsOkR_0MDyt_p1AeDZ7M5hthwOTIy0.cache +0 -1
  166. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/R2eKuma6r5T-JYK5aTaUEiQz3bWFarruvXVLzTwW6NM.cache +0 -0
  167. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/REHqXpycn1OKJ0O8Vmmoy54oykoAI3anI5sx644MSYQ.cache +0 -1
  168. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/RGDkSsDYa4ramOeJ_xYoXXOWqzPTRPXhbMp-cild_hk.cache +0 -1
  169. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/RVPuML7pT8VmCwQJfokwaI4zVfywzNZmDaIbUZKDee4.cache +0 -1
  170. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/S13J0Ops4qBWriffiNoRVqjqVmNp3QOGgkGBmas8Wgs.cache +0 -1
  171. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/SYiemk-M5wpk6kxMFaA-dpt6LntbGwlHB1lN100WOkk.cache +0 -1
  172. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/SctZ-y_jn60jeJnI5AlkhB3UPkqSJolpZBD7glUL1SI.cache +0 -0
  173. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/T9AKQ6uCfcFEigmg-D-wdaVUSZQxbW9TR9XJR_BenEI.cache +0 -0
  174. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/TDb22JK3GENwB0yF60qoEAyp5DIXdIpJcqcwuIxlg9o.cache +0 -0
  175. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/TEVe4-EpoZMDiUI1Fu0tCWhe-DrRVBfExtz_AO7hmtc.cache +0 -0
  176. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/TYSYRZ6Z5910GOa35MabybbWLGsVPhvpKMZGqnNyd_8.cache +0 -0
  177. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/TlJqmu6aAbgHwvXfbj2gBLArpK7GY7omM80Cati3T3c.cache +0 -2
  178. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/UFJ4N180Ot1RILZFOe56MhmOZSJy8nbMVSsTsb8_CVU.cache +0 -1
  179. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/UNkTv1FylEh8fw3-k3uJg0YaMQXHTdd6A1UEF4si9X8.cache +0 -0
  180. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/UuI2Gce5G0Ww5Dp7hPSOCHHoRQjospt-pS9pwloQnYQ.cache +0 -1
  181. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/V25Gpa1WB6ADmMXtf7IsMUV2IU9w0GgMj-5UbvHXoxc.cache +0 -1
  182. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/VOp0pIv_pTt1jyD5JQn5Ee721CyQFQTGdnz4ODw38i4.cache +0 -0
  183. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/VUjcp-qjg_eSBSj28ZD45AGXVVNPPtZodEd3PQrdXbM.cache +0 -0
  184. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/VZIT-kF6ym-iLPU_pztoFEZet62g8F8J1lf_h3RdPP8.cache +0 -0
  185. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/VxLb9zk1LVSL6c3-w5Pyu8He1E2tOUk0ZoC7jUOgt_s.cache +0 -0
  186. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/WOec0Og8roHMzmakL0zgx2qYUokH4lQjfarxNkmDr0Q.cache +0 -1
  187. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/WhN3OwAW2K4ws8-nLRP-3nrzIF9k8by6CuchA3yt7W4.cache +0 -1
  188. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/WtVmBMzLLmV3cexGM5_fxt72pPmeRyKsyLRzTvZAVyE.cache +0 -1
  189. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/XNS-blhVgxl3ACd11rN_B_pZa3ZcADOQalh9tKd_11o.cache +0 -0
  190. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Y4QAv-xWe9eQSr_F9CYHygNR_2YM_eQ0KtJosGGh8Fk.cache +0 -1
  191. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/YHcpExBZ8Zq0_J5bgNr7QMZ5qD8jWUBRCID56H2bwSg.cache +0 -0
  192. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ZDCEwTTs3nQrR7_jdywpWmuLAiDtEY5QseYHAhmKhoM.cache +0 -0
  193. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ZHpAXVoZdZeK39MIrikrGN5quZzpFJKvD3d0acEhCJ8.cache +0 -0
  194. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ZKRR7Austip-cnR-FRsJl7d9vuPnKS72rhD28vcDzM0.cache +0 -1
  195. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Zd5NkPUfggpcIZ_fNmKieLC_EQdg9LDxnoL091WrO4g.cache +0 -1
  196. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/_ebQSkgdU7qSefmDH1VQlcdNskETX_Sg8EXW9q1LceE.cache +0 -0
  197. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/_oTf_eXfNZrpsHw18Vm63FFItRTs4xEfbOVPefWOhZ8.cache +0 -1
  198. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/aJiK_3TkkLIeUmhbLvKn0nYbfNtL1DIR8XcQNRKA_5E.cache +0 -0
  199. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/aRB5sfveCnELcQsQDQNsZof-Sk5pSWO9pDKjFux7Oq0.cache +0 -1
  200. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/bKIG8vYV989yh8qLSqDNcPnK8QkJDs2p_siUsUdqMi0.cache +0 -0
  201. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/bPqmxYqgFbdAFSzKQvJDY4IQ4T6N3mBSwO3anpDc7pc.cache +0 -1
  202. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/c38Ct4xwkFRaFTtshlrAqDUpfvF3nvsSYT9SCDc5l0w.cache +0 -1
  203. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/cKUNNkuaHgU4GPC0tnKxWZHoWP3Y41f226dFcumeGgg.cache +0 -0
  204. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/cXV4XFi7Fdq2Wcfu228XjiYWU2zSIaVnG7qdigLQiP8.cache +0 -0
  205. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/d2y5yaFNfFXIAK-MdSpmxwjS8rtxEJmmu4SRrCLu024.cache +0 -2
  206. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/dAGLlyIO5_WkACHWq888mr7lRxAhbtJBaBQdeaD8osI.cache +0 -2
  207. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/dPiBjlGXffCeZgyh_-MEhe6ls_jD2DwRgg99-wvSPbI.cache +0 -2
  208. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/e9W2mtZbewWcQvned6WhRk0vyAN0G214B_YhNbgetfU.cache +0 -0
  209. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/encDkuyjTN2ynLUIuEo0QmxTmqj---nu-farRYams_o.cache +0 -0
  210. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/f991mNctvTDwoAEV0n5rs-FSpg7JNuRSPGgUYp4vXbs.cache +0 -0
  211. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/fE7AiWk5ok17an4SOitj3MAX7QqgQHdjs6s0tVZhk8o.cache +0 -1
  212. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/fe8eGGCQQR5uiCpw2bx7s5RsSWb9f_V-KC4WKTWjfBo.cache +0 -0
  213. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/fhGKBaZLb5ntRCA2Sz7MEpnkzVsnbZ6SUQqDJ2bGTjY.cache +0 -1
  214. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/fkojyc_IoxwXmFmmqaonisRO3pEk62lThpeqXZnwZS0.cache +0 -1
  215. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/fo9Av-3dEhaG96b0clmWHk-YmTzxnUjEOEEnE48iTPw.cache +0 -0
  216. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/fxxwVBnrGbn4UkXXP4WnuEHFZta-yb1nYtqqGkv67dw.cache +0 -1
  217. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/g3bqmsWAx47hbF9GuGpkKwkD_wV4_sDnXSwczgv_VvY.cache +0 -1
  218. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/g3i-jmc4ZlWPfOlFYPoxuxT3TOViO06iAKkqj1eoB18.cache +0 -2
  219. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/gRI-pcFrPsEpwuEPpmvGNVc7-OuQ5uDq0TMtaDp84II.cache +0 -1
  220. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/gRYAmqUkkNzzPNApj2TKQECWlU2WIavwO2HpA4CaSSg.cache +0 -2
  221. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/gfawGFrAFwNjKdml-B2K1XLsPcflqJMY1hPKulcEDH4.cache +0 -0
  222. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/gguGKFbZ33ujIAd60uBzLXT8zfh8uzvhww75n9CNWes.cache +0 -0
  223. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/gqMCKsEmDOFbKbq6J9tlppjvMjRbljn5qiwywfEaC68.cache +0 -0
  224. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/hzpC-lkPG3h5g3d3gqd4hAXpmmK3bLg_FOAXNYPcEXI.cache +0 -1
  225. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/iBDA_8qTARjY-sLzGKQ0IpdK6VZryiy1v8akmXXl6Qs.cache +0 -0
  226. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/iBEZOY291Pf3KFBRLScEoUMw27Q4_V7-ydNUJcdAlCk.cache +0 -0
  227. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/iCW6TjgfeLPI7IjVwbI7GtD0QFXlzMLtPzA8EOtlVJc.cache +0 -1
  228. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/igKeTb6HRrsLCjVMF3TZ1XFeXzgL67knSwMs6fzCQs4.cache +0 -1
  229. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/j0gO2KugZ-oSi3EoJHmQac1dzSNqZ6Ovm_laQaDINXc.cache +0 -0
  230. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/jLU80UXQ0ID0T2wuQzgTpeiz66a-mX51ut7gKpXHhkY.cache +0 -2
  231. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/jUFu99w0h91M-He0NmmHxyVxS2NhzIge_LMXAX3Cv68.cache +0 -1
  232. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/jUtvD4pGbNMtwpJMzluLvDskTPoioE73ED3zBiSSXh0.cache +0 -0
  233. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/jeM8vKKoogFV14R2GCf85YYWgwxds-1CqhQE-7lMKtc.cache +0 -1
  234. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/jrzFg7pc95kxRo2lb43_oaVewpNnV-KSgajlXErKSEk.cache +0 -1
  235. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/kKm32HSrKMZlMtbTkoMrnKhLhyIm0gxAairQ2gx2O2g.cache +0 -1
  236. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/kMi-8icN6HhEfPwsT0M7Dw-jG1-UufNVL529kynEBRo.cache +0 -0
  237. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/kQUK-_C_L3ym9vNQMTpE4YIPrneID5wcTIbqypcTPko.cache +0 -1
  238. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/kkSYXaKZZhAPmXpFX2AmSLz_k89oPQGrg0gpAEXUzJ8.cache +0 -1
  239. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/kwN5L5AIOz-2MqVh33NySA7fbnGZzs5ytUkqErBtSjc.cache +0 -0
  240. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/kzjV1XvHvZn0w8OYa3ZCP0CO8QUKAUVpT8XJ-d4GBWc.cache +0 -1
  241. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/lN-7mRUOKKfxPL9N43WtaVS5J_ok7iPAEjWGDOCua-E.cache +0 -0
  242. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/mGBRBidXLSMOB1ECqghR43QY3muC73O5NE5ggxFNyiU.cache +0 -0
  243. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/mN-fmL62gvfyR766IjSDaugwGQoZZdScSQRx0nRYxzk.cache +0 -4
  244. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/mPN2zlPa22thNd0_hmtUT2YCnIiZvcm0Wnlzl0BlUjY.cache +0 -1
  245. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/mbwg-wWpR9gQsd9PMZQSpXcG8uEZg5e3QoDhy8Q9yyA.cache +0 -1
  246. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/mg_fszp08FvNbPqxWRRiiWONLIAPqF38R-ZyXRjOffs.cache +0 -1
  247. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/mo-0aZm-MLAcjfJeQ01doJA5V6haHU4f-cC8VU9_Zc0.cache +0 -0
  248. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/mqnOoCPu6BrD5flXXy6FkE9ECzP3kg4g8a2I0riB20s.cache +0 -0
  249. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/mxXsZxabboq4ohMmoFSD-1PgVNn7Cxa6-6rVZ7622_g.cache +0 -1
  250. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/naKpfJHUaJSupQTtV2K7bed6bZljGnZ0Da9mb5ydDD0.cache +0 -0
  251. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/nd3citvFqw15DSZpdwdeSTguzMDOenY9R8hweLsxXSA.cache +0 -2
  252. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/njLHBH3_532cv2IMh0qWWPRYeIq8B_KujYNnX-zWFJ8.cache +0 -2
  253. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/nvxibNFg_1dDx_QtrnoaPgfrO967FeR4deVFsuPbe2A.cache +0 -1
  254. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/o1U02RMHohFvUciIY8uSoUK7jb4ilBLRq48pm5go_sg.cache +0 -0
  255. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/o33DRl1ube1OwMxdViNL2iNq29PR9atm3k-TkldNOxI.cache +0 -1
  256. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/o3EpD_zRCyOuW5uLOL7ndtcQl5lg-D6rJVMicSsvRM8.cache +0 -0
  257. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/o59RQXR_Q6wkXOei6_mADKbVWO0HOSv7_msyobA4PUw.cache +0 -1
  258. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/oDZ7evIiYVrxr9GQ5ZkUf8ygBhb2exFWUWB5pkhucvs.cache +0 -1
  259. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/oF-LMVaeaRSCbbEuogQWFERrOJ8q8bSI8gsztTolGTc.cache +0 -0
  260. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/oJkixKWJPnSYNL4pJE1ExR9PCXYXxLK_7Tbp2oxKdRs.cache +0 -2
  261. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ogYJfSgIhrTf0EMors1fbPA8zaMprsnmSGqtV9xJOoY.cache +0 -0
  262. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/oiUWZkreLvzxXe8Ibq1U-fFSnPNujZlCtbnQ-rM8I_0.cache +0 -1
  263. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/pgTDnkWEnfqH2_PHkgFWNGfuUlMs0vcpZ4TTUWj7DjY.cache +0 -0
  264. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/q4TyphGjKkbMsiXlQEBP3YF3r2uGT_5D78ECjXUTJlI.cache +0 -1
  265. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/qMen-Bi1pRTeeOVkDpTApSJS0Mb7vZ2qG_WilqgYUw4.cache +0 -1
  266. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/qhk95qwwNyqnkFfB9anGeJIar3pb_Ok3C-phv-NKe14.cache +0 -2
  267. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/sGrNk6qzBilD1Q-ngkYNdnkRiWSOFtdocAXZfx9EDOo.cache +0 -1
  268. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/sIoAXkxhOt4OwdazvsrPd936PTLZ6rfn-CLwnivSyRE.cache +0 -3
  269. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/sQtjxYVOSd1JLGnBLlFZktvAcSI2vUHunWBo2Drs3Wc.cache +0 -0
  270. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/sR_hownN-0xn3moKv7Ajqlm9TBeFqebDJNx4_KyJg4w.cache +0 -0
  271. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/sdgsM-FMyiDyMNvs1AGO3c1lXEOHwaalyUre27HF6Wc.cache +0 -1
  272. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/szWM3KymL9_pjYcYDrMxwaEsOGQRv1JGrkjL111_ld8.cache +0 -0
  273. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/t4kK--pnTBvUaG_EaxE0QdcAYUDvz2J44YoZ31g6aiI.cache +0 -0
  274. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/tT7qP_uNs0yqy6epcQ3rZFKYE31XrkLNHHksm7SRa1Y.cache +0 -1
  275. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/tcp07gfL0NfjUNXz9l5OzMCTSEPIXYtQqvSpYN23NEc.cache +0 -0
  276. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/tzfJL7zpstdTx8sIaC4kBIn5fVh4an7nA6JRjUvsWlc.cache +0 -2
  277. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/u31I5hOPxqIwdaZFMHD5MK8tRoDxSLqUGmmuJee1AB8.cache +0 -0
  278. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/uH2U3XBL74ClJKjZfMg0Z-XUymFPHz_nw874z1o8cgQ.cache +0 -1
  279. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/uTCCczdwuSgJn3cGZTsW1hO5AfzhDXR4k05fXEtTqJ4.cache +0 -1
  280. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/vKq2zNINduXwzoU7ypwQ7HhWIBMpsm6bWG-TrdLQwx8.cache +0 -1
  281. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/vr-3q4bFqTLVghBsGCuaYwWsu9neaC6CxXyGcbMgJXI.cache +0 -1
  282. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/vsrOJ__Jw6wO4wIfI78s4vj724cWjRHPuLYikSchZgw.cache +0 -1
  283. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/wIdE_LyLeMJJMRDp5_ra6M6p80RVJ8wRoyup3qcPr5s.cache +0 -0
  284. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/wL-zyJ9le1RGsZS2ilR_MEL2SP5k608occXFA3APVk0.cache +0 -2
  285. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/wRf10s6x3FdwceR-Wec1OEJojYT4-nx_W5TmBRfnqxo.cache +0 -0
  286. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/wgMNEhYIa_7_eZ8nRG3HBGmWxeU4g20Gy3mZTxBmO58.cache +0 -0
  287. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/wxZEvcAOQzIpOM1UX7WnhNGzTaGTqN-X5iEBAo79sTY.cache +0 -1
  288. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/x2xVoqg_b8pzh_5jm69qnLGNo0bs2qiGyJTTVyK5hSg.cache +0 -0
  289. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/xCy2bvUq7IOGhue2JKzz441TmN1oRJyX1_UR9jyKh_c.cache +0 -0
  290. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/xbGJdKwoHlq_Omotd1zzs_DpFQU0ZqaJu3jMDkZkcG4.cache +0 -1
  291. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/xfmHJQRraf8PBicsrclptW92VcsmKnv0C1-li34kR5A.cache +0 -0
  292. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/xkTm2fggBx_ia7SaQwRTaiYlGPB3xLb9RrVtRPlGXkw.cache +0 -1
  293. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/yJd0DjweiOabfW7NYj2RVQn7Hg2uMxQb0-e7GVK14BM.cache +0 -0
  294. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/yMv1yc3IXm2Gx5J6wNgr5h3rye40ceHEO9KYXVefWT8.cache +0 -0
  295. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ykrOthCWx4A_BeWEpAMuno7chYkPOgs2zlUCAsZTmw4.cache +0 -0
  296. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/z_9E1SAZEAZrN1_FpaWv6MmCe7PNGUoXMmSIf3urF2E.cache +0 -1
  297. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/zaoWZ05WuQUJ2E5tl6m_ztvSiFCt09hG5WnDe2dgDvU.cache +0 -1
  298. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/zvo2j3jd6NQvnulBEL9d6-WMJ67wNdmTRQj7B-W5qYo.cache +0 -0
  299. data/test/dummy/tmp/pids/server.pid +0 -1
@@ -1,476 +1,476 @@
1
- /* =============================================================
2
- * bootstrap3-typeahead.js v3.1.0
3
- * https://github.com/bassjobsen/Bootstrap-3-Typeahead
4
- * =============================================================
5
- * Original written by @mdo and @fat
6
- * =============================================================
7
- * Copyright 2014 Bass Jobsen @bassjobsen
8
- *
9
- * Licensed under the Apache License, Version 2.0 (the 'License');
10
- * you may not use this file except in compliance with the License.
11
- * You may obtain a copy of the License at
12
- *
13
- * http://www.apache.org/licenses/LICENSE-2.0
14
- *
15
- * Unless required by applicable law or agreed to in writing, software
16
- * distributed under the License is distributed on an 'AS IS' BASIS,
17
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
- * See the License for the specific language governing permissions and
19
- * limitations under the License.
20
- * ============================================================ */
21
-
22
-
23
- (function (root, factory) {
24
-
25
- 'use strict';
26
-
27
- // CommonJS module is defined
28
- if (typeof module !== 'undefined' && module.exports) {
29
- module.exports = factory(require('jquery'));
30
- }
31
- // AMD module is defined
32
- else if (typeof define === 'function' && define.amd) {
33
- define(['jquery'], function ($) {
34
- return factory ($);
35
- });
36
- } else {
37
- factory(root.jQuery);
38
- }
39
-
40
- }(this, function ($) {
41
-
42
- 'use strict';
43
- // jshint laxcomma: true
44
-
45
-
46
- /* TYPEAHEAD PUBLIC CLASS DEFINITION
47
- * ================================= */
48
-
49
- var Typeahead = function (element, options) {
50
- this.$element = $(element);
51
- this.options = $.extend({}, $.fn.typeahead.defaults, options);
52
- this.matcher = this.options.matcher || this.matcher;
53
- this.sorter = this.options.sorter || this.sorter;
54
- this.select = this.options.select || this.select;
55
- this.autoSelect = typeof this.options.autoSelect == 'boolean' ? this.options.autoSelect : true;
56
- this.highlighter = this.options.highlighter || this.highlighter;
57
- this.render = this.options.render || this.render;
58
- this.updater = this.options.updater || this.updater;
59
- this.displayText = this.options.displayText || this.displayText;
60
- this.source = this.options.source;
61
- this.delay = this.options.delay;
62
- this.$menu = $(this.options.menu);
63
- this.$appendTo = this.options.appendTo ? $(this.options.appendTo) : null;
64
- this.shown = false;
65
- this.listen();
66
- this.showHintOnFocus = typeof this.options.showHintOnFocus == 'boolean' ? this.options.showHintOnFocus : false;
67
- this.afterSelect = this.options.afterSelect;
68
- this.addItem = false;
69
- };
70
-
71
- Typeahead.prototype = {
72
-
73
- constructor: Typeahead,
74
-
75
- select: function () {
76
- var val = this.$menu.find('.active').data('value');
77
- this.$element.data('active', val);
78
- if(this.autoSelect || val) {
79
- var newVal = this.updater(val);
80
- this.$element
81
- .val(this.displayText(newVal) || newVal)
82
- .change();
83
- this.afterSelect(newVal);
84
- }
85
- return this.hide();
86
- },
87
-
88
- updater: function (item) {
89
- return item;
90
- },
91
-
92
- setSource: function (source) {
93
- this.source = source;
94
- },
95
-
96
- show: function () {
97
- var pos = $.extend({}, this.$element.position(), {
98
- height: this.$element[0].offsetHeight
99
- }), scrollHeight;
100
-
101
- scrollHeight = typeof this.options.scrollHeight == 'function' ?
102
- this.options.scrollHeight.call() :
103
- this.options.scrollHeight;
104
-
105
- (this.$appendTo ? this.$menu.appendTo(this.$appendTo) : this.$menu.insertAfter(this.$element))
106
- .css({
107
- top: pos.top + pos.height + scrollHeight
108
- , left: pos.left
109
- })
110
- .show();
111
-
112
- this.shown = true;
113
- return this;
114
- },
115
-
116
- hide: function () {
117
- this.$menu.hide();
118
- this.shown = false;
119
- return this;
120
- },
121
-
122
- lookup: function (query) {
123
- var items;
124
- if (typeof(query) != 'undefined' && query !== null) {
125
- this.query = query;
126
- } else {
127
- this.query = this.$element.val() || '';
128
- }
129
-
130
- if (this.query.length < this.options.minLength) {
131
- return this.shown ? this.hide() : this;
132
- }
133
-
134
- var worker = $.proxy(function() {
135
-
136
- if($.isFunction(this.source)) this.source(this.query, $.proxy(this.process, this));
137
- else if (this.source) {
138
- this.process(this.source);
139
- }
140
- }, this);
141
-
142
- clearTimeout(this.lookupWorker);
143
- this.lookupWorker = setTimeout(worker, this.delay);
144
- },
145
-
146
- process: function (items) {
147
- var that = this;
148
-
149
- items = $.grep(items, function (item) {
150
- return that.matcher(item);
151
- });
152
-
153
- items = this.sorter(items);
154
-
155
- if (!items.length && !this.options.addItem) {
156
- return this.shown ? this.hide() : this;
157
- }
158
-
159
- if (items.length > 0) {
160
- this.$element.data('active', items[0]);
161
- } else {
162
- this.$element.data('active', null);
163
- }
164
-
165
- // Add item
166
- if (this.options.addItem){
167
- items.push(this.options.addItem);
168
- }
169
-
170
- if (this.options.items == 'all') {
171
- return this.render(items).show();
172
- } else {
173
- return this.render(items.slice(0, this.options.items)).show();
174
- }
175
- },
176
-
177
- matcher: function (item) {
178
- var it = this.displayText(item);
179
- return ~it.toLowerCase().indexOf(this.query.toLowerCase());
180
- },
181
-
182
- sorter: function (items) {
183
- var beginswith = []
184
- , caseSensitive = []
185
- , caseInsensitive = []
186
- , item;
187
-
188
- while ((item = items.shift())) {
189
- var it = this.displayText(item);
190
- if (!it.toLowerCase().indexOf(this.query.toLowerCase())) beginswith.push(item);
191
- else if (~it.indexOf(this.query)) caseSensitive.push(item);
192
- else caseInsensitive.push(item);
193
- }
194
-
195
- return beginswith.concat(caseSensitive, caseInsensitive);
196
- },
197
-
198
- highlighter: function (item) {
199
- var html = $('<div></div>');
200
- var query = this.query;
201
- var i = item.toLowerCase().indexOf(query.toLowerCase());
202
- var len, leftPart, middlePart, rightPart, strong;
203
- len = query.length;
204
- if(len === 0){
205
- return html.text(item).html();
206
- }
207
- while (i > -1) {
208
- leftPart = item.substr(0, i);
209
- middlePart = item.substr(i, len);
210
- rightPart = item.substr(i + len);
211
- strong = $('<strong></strong>').text(middlePart);
212
- html
213
- .append(document.createTextNode(leftPart))
214
- .append(strong);
215
- item = rightPart;
216
- i = item.toLowerCase().indexOf(query.toLowerCase());
217
- }
218
- return html.append(document.createTextNode(item)).html();
219
- },
220
-
221
- render: function (items) {
222
- var that = this;
223
- var self = this;
224
- var activeFound = false;
225
- items = $(items).map(function (i, item) {
226
- var text = self.displayText(item);
227
- i = $(that.options.item).data('value', item);
228
- i.find('a').html(that.highlighter(text));
229
- if (text == self.$element.val()) {
230
- i.addClass('active');
231
- self.$element.data('active', item);
232
- activeFound = true;
233
- }
234
- return i[0];
235
- });
236
-
237
- if (this.autoSelect && !activeFound) {
238
- items.first().addClass('active');
239
- this.$element.data('active', items.first().data('value'));
240
- }
241
- this.$menu.html(items);
242
- return this;
243
- },
244
-
245
- displayText: function(item) {
246
- return item.name || item;
247
- },
248
-
249
- next: function (event) {
250
- var active = this.$menu.find('.active').removeClass('active')
251
- , next = active.next();
252
-
253
- if (!next.length) {
254
- next = $(this.$menu.find('li')[0]);
255
- }
256
-
257
- next.addClass('active');
258
- },
259
-
260
- prev: function (event) {
261
- var active = this.$menu.find('.active').removeClass('active')
262
- , prev = active.prev();
263
-
264
- if (!prev.length) {
265
- prev = this.$menu.find('li').last();
266
- }
267
-
268
- prev.addClass('active');
269
- },
270
-
271
- listen: function () {
272
- this.$element
273
- .on('focus', $.proxy(this.focus, this))
274
- .on('blur', $.proxy(this.blur, this))
275
- .on('keypress', $.proxy(this.keypress, this))
276
- .on('keyup', $.proxy(this.keyup, this));
277
-
278
- if (this.eventSupported('keydown')) {
279
- this.$element.on('keydown', $.proxy(this.keydown, this));
280
- }
281
-
282
- this.$menu
283
- .on('click', $.proxy(this.click, this))
284
- .on('mouseenter', 'li', $.proxy(this.mouseenter, this))
285
- .on('mouseleave', 'li', $.proxy(this.mouseleave, this));
286
- },
287
-
288
- destroy : function () {
289
- this.$element.data('typeahead',null);
290
- this.$element.data('active',null);
291
- this.$element
292
- .off('focus')
293
- .off('blur')
294
- .off('keypress')
295
- .off('keyup');
296
-
297
- if (this.eventSupported('keydown')) {
298
- this.$element.off('keydown');
299
- }
300
-
301
- this.$menu.remove();
302
- },
303
-
304
- eventSupported: function(eventName) {
305
- var isSupported = eventName in this.$element;
306
- if (!isSupported) {
307
- this.$element.setAttribute(eventName, 'return;');
308
- isSupported = typeof this.$element[eventName] === 'function';
309
- }
310
- return isSupported;
311
- },
312
-
313
- move: function (e) {
314
- if (!this.shown) return;
315
-
316
- switch(e.keyCode) {
317
- case 9: // tab
318
- case 13: // enter
319
- case 27: // escape
320
- e.preventDefault();
321
- break;
322
-
323
- case 38: // up arrow
324
- // with the shiftKey (this is actually the left parenthesis)
325
- if (e.shiftKey) return;
326
- e.preventDefault();
327
- this.prev();
328
- break;
329
-
330
- case 40: // down arrow
331
- // with the shiftKey (this is actually the right parenthesis)
332
- if (e.shiftKey) return;
333
- e.preventDefault();
334
- this.next();
335
- break;
336
- }
337
-
338
- e.stopPropagation();
339
- },
340
-
341
- keydown: function (e) {
342
- this.suppressKeyPressRepeat = ~$.inArray(e.keyCode, [40,38,9,13,27]);
343
- if (!this.shown && e.keyCode == 40) {
344
- this.lookup();
345
- } else {
346
- this.move(e);
347
- }
348
- },
349
-
350
- keypress: function (e) {
351
- if (this.suppressKeyPressRepeat) return;
352
- this.move(e);
353
- },
354
-
355
- keyup: function (e) {
356
- switch(e.keyCode) {
357
- case 40: // down arrow
358
- case 38: // up arrow
359
- case 16: // shift
360
- case 17: // ctrl
361
- case 18: // alt
362
- break;
363
-
364
- case 9: // tab
365
- case 13: // enter
366
- if (!this.shown) return;
367
- this.select();
368
- break;
369
-
370
- case 27: // escape
371
- if (!this.shown) return;
372
- this.hide();
373
- break;
374
- default:
375
- this.lookup();
376
- }
377
-
378
- e.stopPropagation();
379
- e.preventDefault();
380
- },
381
-
382
- focus: function (e) {
383
- if (!this.focused) {
384
- this.focused = true;
385
- if (this.options.showHintOnFocus) {
386
- this.lookup('');
387
- }
388
- }
389
- },
390
-
391
- blur: function (e) {
392
- this.focused = false;
393
- if (!this.mousedover && this.shown) this.hide();
394
- },
395
-
396
- click: function (e) {
397
- e.stopPropagation();
398
- e.preventDefault();
399
- this.select();
400
- this.$element.focus();
401
- },
402
-
403
- mouseenter: function (e) {
404
- this.mousedover = true;
405
- this.$menu.find('.active').removeClass('active');
406
- $(e.currentTarget).addClass('active');
407
- },
408
-
409
- mouseleave: function (e) {
410
- this.mousedover = false;
411
- if (!this.focused && this.shown) this.hide();
412
- }
413
-
414
- };
415
-
416
-
417
- /* TYPEAHEAD PLUGIN DEFINITION
418
- * =========================== */
419
-
420
- var old = $.fn.typeahead;
421
-
422
- $.fn.typeahead = function (option) {
423
- var arg = arguments;
424
- if (typeof option == 'string' && option == 'getActive') {
425
- return this.data('active');
426
- }
427
- return this.each(function () {
428
- var $this = $(this)
429
- , data = $this.data('typeahead')
430
- , options = typeof option == 'object' && option;
431
- if (!data) $this.data('typeahead', (data = new Typeahead(this, options)));
432
- if (typeof option == 'string') {
433
- if (arg.length > 1) {
434
- data[option].apply(data, Array.prototype.slice.call(arg ,1));
435
- } else {
436
- data[option]();
437
- }
438
- }
439
- });
440
- };
441
-
442
- $.fn.typeahead.defaults = {
443
- source: []
444
- , items: 8
445
- , menu: '<ul class="typeahead dropdown-menu" role="listbox"></ul>'
446
- , item: '<li><a href="#" role="option"></a></li>'
447
- , minLength: 1
448
- , scrollHeight: 0
449
- , autoSelect: true
450
- , afterSelect: $.noop
451
- , addItem: false
452
- , delay: 0
453
- };
454
-
455
- $.fn.typeahead.Constructor = Typeahead;
456
-
457
-
458
- /* TYPEAHEAD NO CONFLICT
459
- * =================== */
460
-
461
- $.fn.typeahead.noConflict = function () {
462
- $.fn.typeahead = old;
463
- return this;
464
- };
465
-
466
-
467
- /* TYPEAHEAD DATA-API
468
- * ================== */
469
-
470
- $(document).on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) {
471
- var $this = $(this);
472
- if ($this.data('typeahead')) return;
473
- $this.typeahead($this.data());
474
- });
475
-
476
- }));
1
+ /* =============================================================
2
+ * bootstrap3-typeahead.js v3.1.0
3
+ * https://github.com/bassjobsen/Bootstrap-3-Typeahead
4
+ * =============================================================
5
+ * Original written by @mdo and @fat
6
+ * =============================================================
7
+ * Copyright 2014 Bass Jobsen @bassjobsen
8
+ *
9
+ * Licensed under the Apache License, Version 2.0 (the 'License');
10
+ * you may not use this file except in compliance with the License.
11
+ * You may obtain a copy of the License at
12
+ *
13
+ * http://www.apache.org/licenses/LICENSE-2.0
14
+ *
15
+ * Unless required by applicable law or agreed to in writing, software
16
+ * distributed under the License is distributed on an 'AS IS' BASIS,
17
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
+ * See the License for the specific language governing permissions and
19
+ * limitations under the License.
20
+ * ============================================================ */
21
+
22
+
23
+ (function (root, factory) {
24
+
25
+ 'use strict';
26
+
27
+ // CommonJS module is defined
28
+ if (typeof module !== 'undefined' && module.exports) {
29
+ module.exports = factory(require('jquery'));
30
+ }
31
+ // AMD module is defined
32
+ else if (typeof define === 'function' && define.amd) {
33
+ define(['jquery'], function ($) {
34
+ return factory ($);
35
+ });
36
+ } else {
37
+ factory(root.jQuery);
38
+ }
39
+
40
+ }(this, function ($) {
41
+
42
+ 'use strict';
43
+ // jshint laxcomma: true
44
+
45
+
46
+ /* TYPEAHEAD PUBLIC CLASS DEFINITION
47
+ * ================================= */
48
+
49
+ var Typeahead = function (element, options) {
50
+ this.$element = $(element);
51
+ this.options = $.extend({}, $.fn.typeahead.defaults, options);
52
+ this.matcher = this.options.matcher || this.matcher;
53
+ this.sorter = this.options.sorter || this.sorter;
54
+ this.select = this.options.select || this.select;
55
+ this.autoSelect = typeof this.options.autoSelect == 'boolean' ? this.options.autoSelect : true;
56
+ this.highlighter = this.options.highlighter || this.highlighter;
57
+ this.render = this.options.render || this.render;
58
+ this.updater = this.options.updater || this.updater;
59
+ this.displayText = this.options.displayText || this.displayText;
60
+ this.source = this.options.source;
61
+ this.delay = this.options.delay;
62
+ this.$menu = $(this.options.menu);
63
+ this.$appendTo = this.options.appendTo ? $(this.options.appendTo) : null;
64
+ this.shown = false;
65
+ this.listen();
66
+ this.showHintOnFocus = typeof this.options.showHintOnFocus == 'boolean' ? this.options.showHintOnFocus : false;
67
+ this.afterSelect = this.options.afterSelect;
68
+ this.addItem = false;
69
+ };
70
+
71
+ Typeahead.prototype = {
72
+
73
+ constructor: Typeahead,
74
+
75
+ select: function () {
76
+ var val = this.$menu.find('.active').data('value');
77
+ this.$element.data('active', val);
78
+ if(this.autoSelect || val) {
79
+ var newVal = this.updater(val);
80
+ this.$element
81
+ .val(this.displayText(newVal) || newVal)
82
+ .change();
83
+ this.afterSelect(newVal);
84
+ }
85
+ return this.hide();
86
+ },
87
+
88
+ updater: function (item) {
89
+ return item;
90
+ },
91
+
92
+ setSource: function (source) {
93
+ this.source = source;
94
+ },
95
+
96
+ show: function () {
97
+ var pos = $.extend({}, this.$element.position(), {
98
+ height: this.$element[0].offsetHeight
99
+ }), scrollHeight;
100
+
101
+ scrollHeight = typeof this.options.scrollHeight == 'function' ?
102
+ this.options.scrollHeight.call() :
103
+ this.options.scrollHeight;
104
+
105
+ (this.$appendTo ? this.$menu.appendTo(this.$appendTo) : this.$menu.insertAfter(this.$element))
106
+ .css({
107
+ top: pos.top + pos.height + scrollHeight
108
+ , left: pos.left
109
+ })
110
+ .show();
111
+
112
+ this.shown = true;
113
+ return this;
114
+ },
115
+
116
+ hide: function () {
117
+ this.$menu.hide();
118
+ this.shown = false;
119
+ return this;
120
+ },
121
+
122
+ lookup: function (query) {
123
+ var items;
124
+ if (typeof(query) != 'undefined' && query !== null) {
125
+ this.query = query;
126
+ } else {
127
+ this.query = this.$element.val() || '';
128
+ }
129
+
130
+ if (this.query.length < this.options.minLength) {
131
+ return this.shown ? this.hide() : this;
132
+ }
133
+
134
+ var worker = $.proxy(function() {
135
+
136
+ if($.isFunction(this.source)) this.source(this.query, $.proxy(this.process, this));
137
+ else if (this.source) {
138
+ this.process(this.source);
139
+ }
140
+ }, this);
141
+
142
+ clearTimeout(this.lookupWorker);
143
+ this.lookupWorker = setTimeout(worker, this.delay);
144
+ },
145
+
146
+ process: function (items) {
147
+ var that = this;
148
+
149
+ items = $.grep(items, function (item) {
150
+ return that.matcher(item);
151
+ });
152
+
153
+ items = this.sorter(items);
154
+
155
+ if (!items.length && !this.options.addItem) {
156
+ return this.shown ? this.hide() : this;
157
+ }
158
+
159
+ if (items.length > 0) {
160
+ this.$element.data('active', items[0]);
161
+ } else {
162
+ this.$element.data('active', null);
163
+ }
164
+
165
+ // Add item
166
+ if (this.options.addItem){
167
+ items.push(this.options.addItem);
168
+ }
169
+
170
+ if (this.options.items == 'all') {
171
+ return this.render(items).show();
172
+ } else {
173
+ return this.render(items.slice(0, this.options.items)).show();
174
+ }
175
+ },
176
+
177
+ matcher: function (item) {
178
+ var it = this.displayText(item);
179
+ return ~it.toLowerCase().indexOf(this.query.toLowerCase());
180
+ },
181
+
182
+ sorter: function (items) {
183
+ var beginswith = []
184
+ , caseSensitive = []
185
+ , caseInsensitive = []
186
+ , item;
187
+
188
+ while ((item = items.shift())) {
189
+ var it = this.displayText(item);
190
+ if (!it.toLowerCase().indexOf(this.query.toLowerCase())) beginswith.push(item);
191
+ else if (~it.indexOf(this.query)) caseSensitive.push(item);
192
+ else caseInsensitive.push(item);
193
+ }
194
+
195
+ return beginswith.concat(caseSensitive, caseInsensitive);
196
+ },
197
+
198
+ highlighter: function (item) {
199
+ var html = $('<div></div>');
200
+ var query = this.query;
201
+ var i = item.toLowerCase().indexOf(query.toLowerCase());
202
+ var len, leftPart, middlePart, rightPart, strong;
203
+ len = query.length;
204
+ if(len === 0){
205
+ return html.text(item).html();
206
+ }
207
+ while (i > -1) {
208
+ leftPart = item.substr(0, i);
209
+ middlePart = item.substr(i, len);
210
+ rightPart = item.substr(i + len);
211
+ strong = $('<strong></strong>').text(middlePart);
212
+ html
213
+ .append(document.createTextNode(leftPart))
214
+ .append(strong);
215
+ item = rightPart;
216
+ i = item.toLowerCase().indexOf(query.toLowerCase());
217
+ }
218
+ return html.append(document.createTextNode(item)).html();
219
+ },
220
+
221
+ render: function (items) {
222
+ var that = this;
223
+ var self = this;
224
+ var activeFound = false;
225
+ items = $(items).map(function (i, item) {
226
+ var text = self.displayText(item);
227
+ i = $(that.options.item).data('value', item);
228
+ i.find('a').html(that.highlighter(text));
229
+ if (text == self.$element.val()) {
230
+ i.addClass('active');
231
+ self.$element.data('active', item);
232
+ activeFound = true;
233
+ }
234
+ return i[0];
235
+ });
236
+
237
+ if (this.autoSelect && !activeFound) {
238
+ items.first().addClass('active');
239
+ this.$element.data('active', items.first().data('value'));
240
+ }
241
+ this.$menu.html(items);
242
+ return this;
243
+ },
244
+
245
+ displayText: function(item) {
246
+ return item.name || item;
247
+ },
248
+
249
+ next: function (event) {
250
+ var active = this.$menu.find('.active').removeClass('active')
251
+ , next = active.next();
252
+
253
+ if (!next.length) {
254
+ next = $(this.$menu.find('li')[0]);
255
+ }
256
+
257
+ next.addClass('active');
258
+ },
259
+
260
+ prev: function (event) {
261
+ var active = this.$menu.find('.active').removeClass('active')
262
+ , prev = active.prev();
263
+
264
+ if (!prev.length) {
265
+ prev = this.$menu.find('li').last();
266
+ }
267
+
268
+ prev.addClass('active');
269
+ },
270
+
271
+ listen: function () {
272
+ this.$element
273
+ .on('focus', $.proxy(this.focus, this))
274
+ .on('blur', $.proxy(this.blur, this))
275
+ .on('keypress', $.proxy(this.keypress, this))
276
+ .on('keyup', $.proxy(this.keyup, this));
277
+
278
+ if (this.eventSupported('keydown')) {
279
+ this.$element.on('keydown', $.proxy(this.keydown, this));
280
+ }
281
+
282
+ this.$menu
283
+ .on('click', $.proxy(this.click, this))
284
+ .on('mouseenter', 'li', $.proxy(this.mouseenter, this))
285
+ .on('mouseleave', 'li', $.proxy(this.mouseleave, this));
286
+ },
287
+
288
+ destroy : function () {
289
+ this.$element.data('typeahead',null);
290
+ this.$element.data('active',null);
291
+ this.$element
292
+ .off('focus')
293
+ .off('blur')
294
+ .off('keypress')
295
+ .off('keyup');
296
+
297
+ if (this.eventSupported('keydown')) {
298
+ this.$element.off('keydown');
299
+ }
300
+
301
+ this.$menu.remove();
302
+ },
303
+
304
+ eventSupported: function(eventName) {
305
+ var isSupported = eventName in this.$element;
306
+ if (!isSupported) {
307
+ this.$element.setAttribute(eventName, 'return;');
308
+ isSupported = typeof this.$element[eventName] === 'function';
309
+ }
310
+ return isSupported;
311
+ },
312
+
313
+ move: function (e) {
314
+ if (!this.shown) return;
315
+
316
+ switch(e.keyCode) {
317
+ case 9: // tab
318
+ case 13: // enter
319
+ case 27: // escape
320
+ e.preventDefault();
321
+ break;
322
+
323
+ case 38: // up arrow
324
+ // with the shiftKey (this is actually the left parenthesis)
325
+ if (e.shiftKey) return;
326
+ e.preventDefault();
327
+ this.prev();
328
+ break;
329
+
330
+ case 40: // down arrow
331
+ // with the shiftKey (this is actually the right parenthesis)
332
+ if (e.shiftKey) return;
333
+ e.preventDefault();
334
+ this.next();
335
+ break;
336
+ }
337
+
338
+ e.stopPropagation();
339
+ },
340
+
341
+ keydown: function (e) {
342
+ this.suppressKeyPressRepeat = ~$.inArray(e.keyCode, [40,38,9,13,27]);
343
+ if (!this.shown && e.keyCode == 40) {
344
+ this.lookup();
345
+ } else {
346
+ this.move(e);
347
+ }
348
+ },
349
+
350
+ keypress: function (e) {
351
+ if (this.suppressKeyPressRepeat) return;
352
+ this.move(e);
353
+ },
354
+
355
+ keyup: function (e) {
356
+ switch(e.keyCode) {
357
+ case 40: // down arrow
358
+ case 38: // up arrow
359
+ case 16: // shift
360
+ case 17: // ctrl
361
+ case 18: // alt
362
+ break;
363
+
364
+ case 9: // tab
365
+ case 13: // enter
366
+ if (!this.shown) return;
367
+ this.select();
368
+ break;
369
+
370
+ case 27: // escape
371
+ if (!this.shown) return;
372
+ this.hide();
373
+ break;
374
+ default:
375
+ this.lookup();
376
+ }
377
+
378
+ e.stopPropagation();
379
+ e.preventDefault();
380
+ },
381
+
382
+ focus: function (e) {
383
+ if (!this.focused) {
384
+ this.focused = true;
385
+ if (this.options.showHintOnFocus) {
386
+ this.lookup('');
387
+ }
388
+ }
389
+ },
390
+
391
+ blur: function (e) {
392
+ this.focused = false;
393
+ if (!this.mousedover && this.shown) this.hide();
394
+ },
395
+
396
+ click: function (e) {
397
+ e.stopPropagation();
398
+ e.preventDefault();
399
+ this.select();
400
+ this.$element.focus();
401
+ },
402
+
403
+ mouseenter: function (e) {
404
+ this.mousedover = true;
405
+ this.$menu.find('.active').removeClass('active');
406
+ $(e.currentTarget).addClass('active');
407
+ },
408
+
409
+ mouseleave: function (e) {
410
+ this.mousedover = false;
411
+ if (!this.focused && this.shown) this.hide();
412
+ }
413
+
414
+ };
415
+
416
+
417
+ /* TYPEAHEAD PLUGIN DEFINITION
418
+ * =========================== */
419
+
420
+ var old = $.fn.typeahead;
421
+
422
+ $.fn.typeahead = function (option) {
423
+ var arg = arguments;
424
+ if (typeof option == 'string' && option == 'getActive') {
425
+ return this.data('active');
426
+ }
427
+ return this.each(function () {
428
+ var $this = $(this)
429
+ , data = $this.data('typeahead')
430
+ , options = typeof option == 'object' && option;
431
+ if (!data) $this.data('typeahead', (data = new Typeahead(this, options)));
432
+ if (typeof option == 'string') {
433
+ if (arg.length > 1) {
434
+ data[option].apply(data, Array.prototype.slice.call(arg ,1));
435
+ } else {
436
+ data[option]();
437
+ }
438
+ }
439
+ });
440
+ };
441
+
442
+ $.fn.typeahead.defaults = {
443
+ source: []
444
+ , items: 8
445
+ , menu: '<ul class="typeahead dropdown-menu" role="listbox"></ul>'
446
+ , item: '<li><a href="#" role="option"></a></li>'
447
+ , minLength: 1
448
+ , scrollHeight: 0
449
+ , autoSelect: true
450
+ , afterSelect: $.noop
451
+ , addItem: false
452
+ , delay: 0
453
+ };
454
+
455
+ $.fn.typeahead.Constructor = Typeahead;
456
+
457
+
458
+ /* TYPEAHEAD NO CONFLICT
459
+ * =================== */
460
+
461
+ $.fn.typeahead.noConflict = function () {
462
+ $.fn.typeahead = old;
463
+ return this;
464
+ };
465
+
466
+
467
+ /* TYPEAHEAD DATA-API
468
+ * ================== */
469
+
470
+ $(document).on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) {
471
+ var $this = $(this);
472
+ if ($this.data('typeahead')) return;
473
+ $this.typeahead($this.data());
474
+ });
475
+
476
+ }));