ndr_ui 1.8.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (759) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +127 -0
  4. data/Rakefile +34 -0
  5. data/app/assets/javascripts/ndr_ui/datepicker.js +1 -0
  6. data/app/assets/javascripts/ndr_ui/index.js +3 -0
  7. data/app/assets/javascripts/ndr_ui/timeago.js +5 -0
  8. data/app/assets/stylesheets/ndr_ui/datepicker.scss +6 -0
  9. data/app/assets/stylesheets/ndr_ui/index.scss +11 -0
  10. data/app/builders/ndr_ui/bootstrap/datepicker.rb +57 -0
  11. data/app/builders/ndr_ui/bootstrap/form_control_class.rb +50 -0
  12. data/app/builders/ndr_ui/bootstrap/inline_errors_and_warnings.rb +64 -0
  13. data/app/builders/ndr_ui/bootstrap/readonly.rb +87 -0
  14. data/app/builders/ndr_ui/bootstrap_builder.rb +111 -0
  15. data/app/helpers/ndr_ui/bootstrap/accordion.rb +102 -0
  16. data/app/helpers/ndr_ui/bootstrap/dropdown_helper.rb +65 -0
  17. data/app/helpers/ndr_ui/bootstrap/modal_helper.rb +77 -0
  18. data/app/helpers/ndr_ui/bootstrap/panel_helper.rb +87 -0
  19. data/app/helpers/ndr_ui/bootstrap_helper.rb +465 -0
  20. data/app/helpers/ndr_ui/css_helper.rb +17 -0
  21. data/app/helpers/ndr_ui/timeago_helper.rb +34 -0
  22. data/config/routes.rb +2 -0
  23. data/lib/ndr_ui/engine.rb +24 -0
  24. data/lib/ndr_ui/version.rb +6 -0
  25. data/lib/ndr_ui.rb +6 -0
  26. data/lib/tasks/ndr_ui_tasks.rake +4 -0
  27. data/lib/templates/erb/scaffold/_form.html.erb +32 -0
  28. data/lib/templates/erb/scaffold/index.html.erb +32 -0
  29. data/test/builders/ndr_ui/bootstrap_builder/datepicker_test.rb +66 -0
  30. data/test/builders/ndr_ui/bootstrap_builder/inline_errors_and_warnings_test.rb +70 -0
  31. data/test/builders/ndr_ui/bootstrap_builder/readonly_test.rb +73 -0
  32. data/test/builders/ndr_ui/bootstrap_builder_test.rb +193 -0
  33. data/test/controllers/posts_controller_test.rb +8 -0
  34. data/test/dummy/README.rdoc +28 -0
  35. data/test/dummy/Rakefile +6 -0
  36. data/test/dummy/app/assets/javascripts/application.js +13 -0
  37. data/test/dummy/app/assets/stylesheets/application.css +14 -0
  38. data/test/dummy/app/controllers/application_controller.rb +7 -0
  39. data/test/dummy/app/controllers/posts_controller.rb +5 -0
  40. data/test/dummy/app/helpers/application_helper.rb +2 -0
  41. data/test/dummy/app/models/post.rb +5 -0
  42. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  43. data/test/dummy/bin/bundle +3 -0
  44. data/test/dummy/bin/rails +4 -0
  45. data/test/dummy/bin/rake +4 -0
  46. data/test/dummy/bin/setup +29 -0
  47. data/test/dummy/config/application.rb +22 -0
  48. data/test/dummy/config/boot.rb +5 -0
  49. data/test/dummy/config/database.yml +25 -0
  50. data/test/dummy/config/environment.rb +5 -0
  51. data/test/dummy/config/environments/test.rb +47 -0
  52. data/test/dummy/config/initializers/assets.rb +11 -0
  53. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  54. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  55. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  56. data/test/dummy/config/initializers/inflections.rb +16 -0
  57. data/test/dummy/config/initializers/mime_types.rb +4 -0
  58. data/test/dummy/config/initializers/session_store.rb +3 -0
  59. data/test/dummy/config/initializers/wrap_parameters.rb +9 -0
  60. data/test/dummy/config/locales/en.yml +23 -0
  61. data/test/dummy/config/routes.rb +57 -0
  62. data/test/dummy/config/secrets.yml +22 -0
  63. data/test/dummy/config.ru +4 -0
  64. data/test/dummy/db/migrate/20160223091350_create_posts.rb +7 -0
  65. data/test/dummy/db/schema.rb +21 -0
  66. data/test/dummy/db/test.sqlite3 +0 -0
  67. data/test/dummy/log/development.log +1276 -0
  68. data/test/dummy/log/test.log +82441 -0
  69. data/test/dummy/public/404.html +67 -0
  70. data/test/dummy/public/422.html +67 -0
  71. data/test/dummy/public/500.html +66 -0
  72. data/test/dummy/public/favicon.ico +0 -0
  73. data/test/dummy/tmp/cache/assets/sprockets/v3.0/-0/-0db0QKpxpW6Dyh-qOZpws4GT26vjBNZ4yzY5eiKhqs.cache +1 -0
  74. data/test/dummy/tmp/cache/assets/sprockets/v3.0/-5ZhweXnlSMoSEwcLK_6pgg941dIt-j8kU6o3Ve5sdk.cache +1 -0
  75. data/test/dummy/tmp/cache/assets/sprockets/v3.0/-8UgnRNyot0jpqpiobCYRC3WLamZNajXrBOlvecOSlI.cache +1 -0
  76. data/test/dummy/tmp/cache/assets/sprockets/v3.0/-8wnH5whTWSF4DreYJtwr9CG_hwWT54mKMWTK4fMbow.cache +0 -0
  77. data/test/dummy/tmp/cache/assets/sprockets/v3.0/-LEckHkTP7xDo5g18j_Enr2_6gwUGqWGnsbCnoVmmjc.cache +0 -0
  78. data/test/dummy/tmp/cache/assets/sprockets/v3.0/-M/-M-FHz1DA6Z1skXVGGbZFUmktjpsjW-bhguiQlO1NkQ.cache +1 -0
  79. data/test/dummy/tmp/cache/assets/sprockets/v3.0/-SYmeX5HdDGwBwDAOnhq9DagO2az_OI1ifmun_aNe5Q.cache +0 -0
  80. data/test/dummy/tmp/cache/assets/sprockets/v3.0/-WZFNxcxinpFTDhRVDfmejmnWnrxx8NACrNrt1updtE.cache +1 -0
  81. data/test/dummy/tmp/cache/assets/sprockets/v3.0/-aew6gpgzszesSijWNfshodngEQWZWTjxcdBX21f0H0.cache +0 -0
  82. data/test/dummy/tmp/cache/assets/sprockets/v3.0/-b/-bSxc62FNgchhiBEygLgK9IfE8FxXR740i7DstyH1ms.cache +1 -0
  83. data/test/dummy/tmp/cache/assets/sprockets/v3.0/-rPuqLHiW3gRNd-WSiSQJCwfalB2xXIX5xkSogys5jI.cache +0 -0
  84. data/test/dummy/tmp/cache/assets/sprockets/v3.0/-tXumWbzyfHzV8FrL4ycjbBcZQCrkDtaGiULA7iwubg.cache +1 -0
  85. data/test/dummy/tmp/cache/assets/sprockets/v3.0/0-O6WGCilmzCwXXZRtXOL1r31x6U0sI5uYuYCly9Bk8.cache +1 -0
  86. data/test/dummy/tmp/cache/assets/sprockets/v3.0/04Sr7Ie-ETKV7ZfnHR_GaFrk1KRXi-5UROnqxyBbHfg.cache +0 -0
  87. data/test/dummy/tmp/cache/assets/sprockets/v3.0/0N/0N9xAG9-FJGlwYnesMSTYwj7jt5XtbV_70kixorWrVI.cache +0 -0
  88. data/test/dummy/tmp/cache/assets/sprockets/v3.0/0XisKRkiKSX4p7lTXjsG-hNWWSgYuAiXLCNkFhnGY-4.cache +1 -0
  89. data/test/dummy/tmp/cache/assets/sprockets/v3.0/0q/0qPONBBj7F_flJQe-WRV0iomMTTMflqfgyNN4ldW6uc.cache +1 -0
  90. data/test/dummy/tmp/cache/assets/sprockets/v3.0/0u/0U0fuQ0ENuvsvN3oP6NsVJ94DGIyMQt89FRVWfgk6iw.cache +0 -0
  91. data/test/dummy/tmp/cache/assets/sprockets/v3.0/0u/0up3KczteuMqz5DMoXg6NtaLDnHwr9ExQNV8TfmH3eM.cache +1 -0
  92. data/test/dummy/tmp/cache/assets/sprockets/v3.0/0zLxAR6UZecwvElbqT3eC0pjhQOEus1w5DqAs1XEjkg.cache +0 -0
  93. data/test/dummy/tmp/cache/assets/sprockets/v3.0/13/13HuI0hXWLF0k6V4bxMUbVYz-xn0_uf0pvubzdP3X7Y.cache +0 -0
  94. data/test/dummy/tmp/cache/assets/sprockets/v3.0/1N/1NqDd4HXJNZ90LsxuwVG0_DkEhoF6KtYeG7HN2bnrCU.cache +0 -0
  95. data/test/dummy/tmp/cache/assets/sprockets/v3.0/1O/1O4WpCNSH_wOoAp-eYFFaZIurtal2l22oUxsDsM-RGc.cache +0 -0
  96. data/test/dummy/tmp/cache/assets/sprockets/v3.0/1g/1gnn_OFjvN4uBcW8VJ-FyvrkigwIshRx_KS42HEGT3E.cache +1 -0
  97. data/test/dummy/tmp/cache/assets/sprockets/v3.0/20xHevNrdUKyepNHPVkDZiVczJ40m2y2FaabJkYmnrE.cache +1 -0
  98. data/test/dummy/tmp/cache/assets/sprockets/v3.0/24/24WShpiMXd30HSu2WyjH0-_woKN1r1QSsVuDoNm7mX4.cache +1 -0
  99. data/test/dummy/tmp/cache/assets/sprockets/v3.0/29/29Jj3qS6-sSvS48AvkvtC-W3Kh2t2cbeu6C1jEtZi4E.cache +0 -0
  100. data/test/dummy/tmp/cache/assets/sprockets/v3.0/2AeZJWiG8l9xmflPQBbJ_RX09pMFaH58phuf3pORtSM.cache +3 -0
  101. data/test/dummy/tmp/cache/assets/sprockets/v3.0/2Y/2YVxn5vDvwFL0ymYW9kSzgfGcjmB-P8_wHHeReNfqhE.cache +1 -0
  102. data/test/dummy/tmp/cache/assets/sprockets/v3.0/2mcqO8BrBaqHX_0l3Qdp80upZnArnwFMG0RSS_vRT_4.cache +1 -0
  103. data/test/dummy/tmp/cache/assets/sprockets/v3.0/2t/2tKCCNXQR3VQ1yIaIiDr82znZgrol_RH8BVWq7j3-V0.cache +0 -0
  104. data/test/dummy/tmp/cache/assets/sprockets/v3.0/2x/2xRXgVW3qzMfXGqSKEjKq4b_LCUsN-QRCRj5oqrPGfU.cache +1 -0
  105. data/test/dummy/tmp/cache/assets/sprockets/v3.0/3Otj4VqbpLjM5fYFL6kYDn9eKxHVSrJsdBF4kp-GTew.cache +1 -0
  106. data/test/dummy/tmp/cache/assets/sprockets/v3.0/3T/3TTFmUQakEw6EeN-wx7aXn8c4ALbwCpsqEwZ7Zh6Nhk.cache +1 -0
  107. data/test/dummy/tmp/cache/assets/sprockets/v3.0/3T/3Ty4m-xdOt7Uy2zWKiIQSelCHAnnyKEU7jG-36rIuZE.cache +0 -0
  108. data/test/dummy/tmp/cache/assets/sprockets/v3.0/3lqdeZy57Wu3CK9j6CjPTDO3qkD0B1PRLe_FKBuCMeU.cache +1 -0
  109. data/test/dummy/tmp/cache/assets/sprockets/v3.0/41W90yNdjMJpB4_z7_xA-FCAxVcNdkJ-XzJd1GdkNVo.cache +1 -0
  110. data/test/dummy/tmp/cache/assets/sprockets/v3.0/42/42B2oat9nxQEtTFt5hvY6bKSjrEOdv4wMwJj8H9gu8U.cache +1 -0
  111. data/test/dummy/tmp/cache/assets/sprockets/v3.0/48-5mGYbfzYLmvJ2RRhHLYoc4_PaTL70i0vibK8niPE.cache +1 -0
  112. data/test/dummy/tmp/cache/assets/sprockets/v3.0/4F/4FDfdGjJ-B-PMuKqIDv0Y-HMrGB6mFXAzNm8aD_hXCM.cache +0 -0
  113. data/test/dummy/tmp/cache/assets/sprockets/v3.0/4SgtIO3Pcvs3ttOVsj_a-a9ZReKpYpPxBj_Al5TDFxA.cache +0 -0
  114. data/test/dummy/tmp/cache/assets/sprockets/v3.0/4T/4T1GZWk3GCj3JWj112QRXPSbWSdSuGouufkKDDVf9W4.cache +1 -0
  115. data/test/dummy/tmp/cache/assets/sprockets/v3.0/4cMYBmcqaNowglgikpkRMq3CnScmjuBc72MwISm3wmU.cache +0 -0
  116. data/test/dummy/tmp/cache/assets/sprockets/v3.0/4mzyWwL5bTcn8lPzR9vlyEycAR8YBn5TF0Drw-sOp38.cache +3 -0
  117. data/test/dummy/tmp/cache/assets/sprockets/v3.0/4n/4nyQcPaKnzP50uwn4BbqGyA-g1rVicgb6Q08DX1nQjI.cache +0 -0
  118. data/test/dummy/tmp/cache/assets/sprockets/v3.0/4z/4z5k3LaeWTQ1s3VN16QDpnmSJEbySSkIthD8ICwcXck.cache +0 -0
  119. data/test/dummy/tmp/cache/assets/sprockets/v3.0/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache +2 -0
  120. data/test/dummy/tmp/cache/assets/sprockets/v3.0/5M/5MLFjtLMEjiiKQoAl3FICRJl81M4QrTe06Qbh4EbRiM.cache +1 -0
  121. data/test/dummy/tmp/cache/assets/sprockets/v3.0/5R/5RlA6rhFZz_vvnQSD2XTvlsSRL2nCxJthCxbFHpmNKE.cache +3 -0
  122. data/test/dummy/tmp/cache/assets/sprockets/v3.0/5ZtGV6PJ3sISutPwG0OpueMyZgTm3nNYV3G0xA1-vZE.cache +1 -0
  123. data/test/dummy/tmp/cache/assets/sprockets/v3.0/5g/5g97C8vTAF3FxQCKajPeHrPevVqmHq3SSE2zuSG0yGw.cache +0 -0
  124. data/test/dummy/tmp/cache/assets/sprockets/v3.0/5n/5nA7qA2V9z7YXbPYg--hsLD8xScJ21cIZSGL9E3xLv4.cache +1 -0
  125. data/test/dummy/tmp/cache/assets/sprockets/v3.0/5u/5u_NSLq2Px0kJSXnAxoCqEGRDl5kN3jBb1nf5B1Df0c.cache +3 -0
  126. data/test/dummy/tmp/cache/assets/sprockets/v3.0/5yfgvOyJr-OESQK3jzowCtdztySrjY-t5c52_S1zDLs.cache +1 -0
  127. data/test/dummy/tmp/cache/assets/sprockets/v3.0/5z/5zTRNzEia7p2GlimYQWbcP_ETjKlW_SPoFst03CYnu8.cache +1 -0
  128. data/test/dummy/tmp/cache/assets/sprockets/v3.0/6T/6T0Nb9Y_lwg1hDNLbBLR8mvT_v-jUl5XzKleTXs2lMk.cache +1 -0
  129. data/test/dummy/tmp/cache/assets/sprockets/v3.0/6_H2dnmQQezzSLpq62Vu4BMuqhjN9tVvrVUMgqal3zA.cache +1 -0
  130. data/test/dummy/tmp/cache/assets/sprockets/v3.0/6c/6cuWCItA8ObAvX1oa32c0SPTqHimtPHVyzaIM1riLdo.cache +1 -0
  131. data/test/dummy/tmp/cache/assets/sprockets/v3.0/6g/6gnUjliw1ymVyoMMSz-xcdJ_7GhzqE10LHe-ofq8swg.cache +0 -0
  132. data/test/dummy/tmp/cache/assets/sprockets/v3.0/6i/6iBbFTrMT-IHSFfqc_lOI1bmjGjgnb9RRTODdVHuyCM.cache +2 -0
  133. data/test/dummy/tmp/cache/assets/sprockets/v3.0/6kDJCIzm6TUDPjOpTPsjtsdmfqHKzpGFKxJg1M7-dMQ.cache +0 -0
  134. data/test/dummy/tmp/cache/assets/sprockets/v3.0/6tKPee5C_xFydSF9Wkpo8vo9D-OYjJiQopNg5P7ZhTk.cache +0 -0
  135. data/test/dummy/tmp/cache/assets/sprockets/v3.0/7FEiawcWW8c4hP2bkYNMMoOcsH2TJNjaMtOAEvyxVpU.cache +0 -0
  136. data/test/dummy/tmp/cache/assets/sprockets/v3.0/7JAlTjsVzhQccxSUp8aKyyJq9UKQuixugcVWVknpRzQ.cache +0 -0
  137. data/test/dummy/tmp/cache/assets/sprockets/v3.0/7Pagp0K2l2SEilebIagKaN5a6pinDjRqJ4H96kt2ikM.cache +0 -0
  138. data/test/dummy/tmp/cache/assets/sprockets/v3.0/7Y42CfsAsu8YVXGNunJE9FfUBUSB4I9atgRJzhJxH9A.cache +0 -0
  139. data/test/dummy/tmp/cache/assets/sprockets/v3.0/7aMi_yvVD6r0VqzCWD1uDIo-I9FIcdPkkmU8mBtNGUM.cache +1 -0
  140. data/test/dummy/tmp/cache/assets/sprockets/v3.0/80QHxI5dC_BzT-6ib5ZYYVFAwNMXWlu-mCAuwM48k2k.cache +0 -0
  141. data/test/dummy/tmp/cache/assets/sprockets/v3.0/84/84L4Dhq0m_yhCXgfKYnDwAbqtJM5JVQpesYbJQDT3wU.cache +0 -0
  142. data/test/dummy/tmp/cache/assets/sprockets/v3.0/89w6r4iDZTGqhLjz4HIzT2SnW4zxapiE_YHTtCnVCo0.cache +1 -0
  143. data/test/dummy/tmp/cache/assets/sprockets/v3.0/8DgS7Lx6htgH29JCdJSw724q8ZLfTk5Adi4QEmUHRoU.cache +1 -0
  144. data/test/dummy/tmp/cache/assets/sprockets/v3.0/8IEhZfKit5PvBBoFoxVjD0-HF_SLc8sp-ed0JmtNdZ8.cache +0 -0
  145. data/test/dummy/tmp/cache/assets/sprockets/v3.0/8K/8KfyFcYc6bsVd7m-fGUPT0Y-CM_WC5M-tIQ7MeGYGb0.cache +0 -0
  146. data/test/dummy/tmp/cache/assets/sprockets/v3.0/8MkDXk2EmPeGZyH6p7y-W6lFdDH8I5q61kZfM-7ga-Q.cache +1 -0
  147. data/test/dummy/tmp/cache/assets/sprockets/v3.0/8Q/8QkY0EVrdhYt4PSeD-6fyZwl1XiQadGmSrv_IzjWayQ.cache +1 -0
  148. data/test/dummy/tmp/cache/assets/sprockets/v3.0/8VFPbGJ7czBkR1Ia9UIPpV_n5prKx_vPDsK_YbkVJJw.cache +1 -0
  149. data/test/dummy/tmp/cache/assets/sprockets/v3.0/8a/8a4wVjv4tXC6-4m7xgTdEZgx1nY79OXqTJGoGDKkQxg.cache +0 -0
  150. data/test/dummy/tmp/cache/assets/sprockets/v3.0/8k0GhD57XwqK60EVDbU3mQFHtzD0niD958u2ILm93Hc.cache +1 -0
  151. data/test/dummy/tmp/cache/assets/sprockets/v3.0/8qqx0HPklZ75cSFr7CHyEu3uQ93aZqjGygL55nPaAjc.cache +0 -0
  152. data/test/dummy/tmp/cache/assets/sprockets/v3.0/9-/9-wSpsdf6UNhvAE9im8YyEKB3zbqpV4wICr3wrl77HQ.cache +0 -0
  153. data/test/dummy/tmp/cache/assets/sprockets/v3.0/92/92IgCf9eW9m_NyBPDrq5bPcPOe-IAUcWogUma5Gl5EY.cache +1 -0
  154. data/test/dummy/tmp/cache/assets/sprockets/v3.0/94/94VY9XHk0xSCJPzWdWZeBJwtn_D2m3ap_zUPr0je578.cache +1 -0
  155. data/test/dummy/tmp/cache/assets/sprockets/v3.0/94sOo3MWvmKkd7rIEAQXrUbbtdI61YUGycgPaYV-zjs.cache +0 -0
  156. data/test/dummy/tmp/cache/assets/sprockets/v3.0/9M/9M8R2JfhriptdSmVJguEqFkBxpXyFl6VS4jIs8ferkE.cache +0 -0
  157. data/test/dummy/tmp/cache/assets/sprockets/v3.0/9R/9RI8IC_eaG1_l611LfQfVxigYEe75ubW0IpCiE0IBfc.cache +0 -0
  158. data/test/dummy/tmp/cache/assets/sprockets/v3.0/9R/9r9nk4F4hk6KOt-TrsOtZsZ5AHHITeYbxVmKseSH7BE.cache +1 -0
  159. data/test/dummy/tmp/cache/assets/sprockets/v3.0/9V/9VLwz9aLVB2Om9X1yw-nv4TIQyWsIzjTddpnWgy16pU.cache +3 -0
  160. data/test/dummy/tmp/cache/assets/sprockets/v3.0/9Z/9ZHChLpOQ5tB8aQ2ykrT4Jd983AfrWq4aiK-iLOdHh4.cache +0 -0
  161. data/test/dummy/tmp/cache/assets/sprockets/v3.0/9Z/9ZWXcCQC6bU6DXPuaQqIZ3Dg-HvFECj2I9VUuYy7f20.cache +1 -0
  162. data/test/dummy/tmp/cache/assets/sprockets/v3.0/9a/9aovV3xjPCiuheCHDTzVZy1cScfD7ocr3kW7NMM-gvo.cache +0 -0
  163. data/test/dummy/tmp/cache/assets/sprockets/v3.0/9eWPb_i2eEbr_fpVuLk4ixy1Kz8zB8HMsj5UCbw85TQ.cache +0 -0
  164. data/test/dummy/tmp/cache/assets/sprockets/v3.0/9frbdjxwfnQYMokp_WYT4J3m0QwG0x24BguobssruUs.cache +0 -0
  165. data/test/dummy/tmp/cache/assets/sprockets/v3.0/9u735sYrzGH9fUM6XpVj8x6qhd4Qv_p1cEcFTHSjZZs.cache +2 -0
  166. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ADOj20YSUKeJyXh8_58UT5iCC1fL9msoMGqO7g0-W4c.cache +2 -0
  167. data/test/dummy/tmp/cache/assets/sprockets/v3.0/AKJStHXAs9drW0YhF-djIrN7z-fWiefhSjousyCnvJY.cache +0 -0
  168. data/test/dummy/tmp/cache/assets/sprockets/v3.0/AL/ALzX8jqSHRfmM71ElT3XzStBVqyoofYe_MwYBT6mjzk.cache +1 -0
  169. data/test/dummy/tmp/cache/assets/sprockets/v3.0/AYd5_EgaFKzCinzt6kGPLCRubch4CsOF81f0yren0Mw.cache +1 -0
  170. data/test/dummy/tmp/cache/assets/sprockets/v3.0/AtL13MZg9Tb1ZSm02MzH-nSIwG9zXaz9G7EsekpDiF0.cache +0 -0
  171. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ax8r_OtGe7LW5x1Iz3qs82AW9uEawnsI57KmtsrIRoo.cache +1 -0
  172. data/test/dummy/tmp/cache/assets/sprockets/v3.0/B-/B-TI6sYz5djs_BBgoMKs-Pr6vj7aHoVZTF8R0wlVxe0.cache +0 -0
  173. data/test/dummy/tmp/cache/assets/sprockets/v3.0/BE4ORArzz6Am5pWZtZWAcMkVmxi1o37D_U_i_BKzSxY.cache +0 -0
  174. data/test/dummy/tmp/cache/assets/sprockets/v3.0/BMpakEnNTQ0hdwjuSb5vQ61g80K_5k-KDnaMc69djbQ.cache +0 -0
  175. data/test/dummy/tmp/cache/assets/sprockets/v3.0/BPfJV-hXKwH1HxfzCMMW0AlS8py51p2EmA7KdTH6_cU.cache +1 -0
  176. data/test/dummy/tmp/cache/assets/sprockets/v3.0/BYMyCnK3B1NKKnTkY6ZRL3KdyAzLjgvPF9529CfKZsE.cache +1 -0
  177. data/test/dummy/tmp/cache/assets/sprockets/v3.0/B_/B_8EheBuZEkLrvSX3qhvnQ-la2zkk2jy9kcJymk7kXo.cache +0 -0
  178. data/test/dummy/tmp/cache/assets/sprockets/v3.0/BfxCA8IIlmmDYQcilCl5C2P8pbY-JYNzQjK4alL5NMk.cache +0 -0
  179. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Bq/Bqr_eKUGHfiEuGSyZNncUEtOX6k-h5fdS-LBk4HCtf8.cache +0 -0
  180. data/test/dummy/tmp/cache/assets/sprockets/v3.0/C0GaAi8naI0uF7cGBJDidYdy1Xj7UMcx8nMxQCs8NwQ.cache +1 -0
  181. data/test/dummy/tmp/cache/assets/sprockets/v3.0/C17U7uAxGTgXN6n0RDdE_wXR95H7fJ7Nz3sTGl_As0E.cache +1 -0
  182. data/test/dummy/tmp/cache/assets/sprockets/v3.0/C8/C847C30Tp8-X_oJfHJEYzcmEshH1roEahsUvPSEkkpo.cache +1 -0
  183. data/test/dummy/tmp/cache/assets/sprockets/v3.0/CCtOb3umzrsZbAnR-9SAZWfjv9Hxhzls4qgn5uOfCRI.cache +0 -0
  184. data/test/dummy/tmp/cache/assets/sprockets/v3.0/CP/CPJ8YNMxyikGQ-INyJ9IPQ-Q-BRqyahxwerHJbw9Ugw.cache +0 -0
  185. data/test/dummy/tmp/cache/assets/sprockets/v3.0/CW/CW7Gw1lHoE5kyH9eK0vKJew-m9d1_PmbQve69z5nwOY.cache +0 -0
  186. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Cbw555uZXSgh0OMZWFtJNpud7Q61GYlYF8s0bwrUAJE.cache +2 -0
  187. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Cf/CfppHphOskm2ABXygwr4kqInId0iGBvVZK1WqPM-N2o.cache +1 -0
  188. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Cl/Clgi1uWibKqjHr0hqiq5Yh_YbED0l1geGbLvwDxf3Tk.cache +0 -0
  189. data/test/dummy/tmp/cache/assets/sprockets/v3.0/D6sMJtIl8m6SF5nGNt4VjlvEdfBimA_6jI7IMQDn-aU.cache +1 -0
  190. data/test/dummy/tmp/cache/assets/sprockets/v3.0/DD1Wul7IRIO9UlT1UpnP6m3tKRqc7kipYBJg7CMXxQs.cache +1 -0
  191. data/test/dummy/tmp/cache/assets/sprockets/v3.0/DFqraIXX-lwbeS6OPHu3Q5fXea4w2dfl_4XI821R3ak.cache +1 -0
  192. data/test/dummy/tmp/cache/assets/sprockets/v3.0/DREtEDJ_HVFtvrcusXWMso_crzigUUyjxaR7sNxUa7Y.cache +0 -0
  193. data/test/dummy/tmp/cache/assets/sprockets/v3.0/DSOLSc6A5RVSmvM415eEWAWG_AgOvZcLZOXQjsXyWQA.cache +2 -0
  194. data/test/dummy/tmp/cache/assets/sprockets/v3.0/DUDjEp7iPKHOQCNIsRvUGnJtQnMBnmhL30flscd25zM.cache +1 -0
  195. data/test/dummy/tmp/cache/assets/sprockets/v3.0/DdnUm0ihepcI_FeAzakF-nF8BNZDU9g7b9YUrvRDq60.cache +1 -0
  196. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Du/DujDYV8beIJoZVRDLv0txxWSbXgzWMBigBG-baYTqfM.cache +1 -0
  197. data/test/dummy/tmp/cache/assets/sprockets/v3.0/E1mbNCTKQWISkQQdUpelm-yYh4hNJTWFXsNefluvnxo.cache +0 -0
  198. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ECrg7V5k-hgXzsJvEZlZqTS7m3Ae1xf5aWj5sYqRanM.cache +0 -0
  199. data/test/dummy/tmp/cache/assets/sprockets/v3.0/EF/EF1GG09wPa7nmVCifDu486ZWU-bIiehzb2jtYMXvEgg.cache +0 -0
  200. data/test/dummy/tmp/cache/assets/sprockets/v3.0/EJbHvvjRox5MG4v8GOtMU4D0-2njl8daXoM3yrWiAjQ.cache +1 -0
  201. data/test/dummy/tmp/cache/assets/sprockets/v3.0/EU/EUZ5_Y43f_gFm0pBRs46gDO2rMuRnqQ0jGqGzL7w4DA.cache +0 -0
  202. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ElQfm25qB-AFTMpo-CXQlxQUx9WDG7vws94ZKHxQlls.cache +1 -0
  203. data/test/dummy/tmp/cache/assets/sprockets/v3.0/EnrF15OnbPF2mWGz93Q7eGEkJ5H4oxFZ8o4FmJuiDoM.cache +0 -0
  204. data/test/dummy/tmp/cache/assets/sprockets/v3.0/F1/F1E-LsKyMqZreFy1QWG4WLThvIlnFi9GISHqZXngowQ.cache +1 -0
  205. data/test/dummy/tmp/cache/assets/sprockets/v3.0/F3OmbKQRwlG_b9w_nlBx9SsSLpOgY0W4TJFQmF9qa3M.cache +0 -0
  206. data/test/dummy/tmp/cache/assets/sprockets/v3.0/FB/FBituOtVo0M_fbplzh1DJyzyNda21ZpT3KPkhETpgRg.cache +0 -0
  207. data/test/dummy/tmp/cache/assets/sprockets/v3.0/FNFBxJTS5VtNg-OERhdmVnYctPeelAIGQdCaPe9xtaI.cache +1 -0
  208. data/test/dummy/tmp/cache/assets/sprockets/v3.0/FV/FVbBj_bVCp_y9ifXfyRaDFGqUAQ0FTOj718SakeKgao.cache +1 -0
  209. data/test/dummy/tmp/cache/assets/sprockets/v3.0/FWIcipXswtqSMXoQsvlV6-H6DtNTnjVUsxS8vxbH4FE.cache +1 -0
  210. data/test/dummy/tmp/cache/assets/sprockets/v3.0/FeQ360BRYhAuJoFm1vdPydAGrOWLUpqtkmCD0qwECSs.cache +0 -0
  211. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Fi0L7_-l_QHhLijuHfJH8jaKefdVAm_B-gGS0nFnTjY.cache +0 -0
  212. data/test/dummy/tmp/cache/assets/sprockets/v3.0/GfPjTCVHoU_tIKNYfGsFFc1WZLgx8j8_PhcX79sW2GI.cache +1 -0
  213. data/test/dummy/tmp/cache/assets/sprockets/v3.0/GhU5JQDb7FgxHFkpZQVfFnMhG_4GiS8HMuYNPNEDY2s.cache +3 -0
  214. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Gr_RVsz-O3FCxjkfKABbO8xLyL00IyywqJJ9geA8M3c.cache +1 -0
  215. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Gz/GzngZrn7rAvB3UjJEnSYxJQ8HjRWA1vvyg23yLBVR5k.cache +1 -0
  216. data/test/dummy/tmp/cache/assets/sprockets/v3.0/H2/H2DgBFOQsgaRZQsWqL0Du2yRlPG_hpcFltneoBG9keA.cache +0 -0
  217. data/test/dummy/tmp/cache/assets/sprockets/v3.0/H3rHoZGbPajta6PIcdfpKMdylZrN_6KrD5HCyfHKIy4.cache +1 -0
  218. data/test/dummy/tmp/cache/assets/sprockets/v3.0/HZEzRom7zDbcwTFmw7_0Fx2KSzXXylbPYMJ80UwRucg.cache +0 -0
  219. data/test/dummy/tmp/cache/assets/sprockets/v3.0/HZulSNYMZVCAMmsyqpLSHG1MWfkGb7BM3yycUvXIbko.cache +1 -0
  220. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Hm/HmqzMkpOTFBQeMkSgwwClDgvZaquG9VFuJq2oqcUYO4.cache +0 -0
  221. data/test/dummy/tmp/cache/assets/sprockets/v3.0/I6cGPUDXdTVZGSjSGT36UwxLVQQcIBUB-mvHBi3CqUg.cache +2 -0
  222. data/test/dummy/tmp/cache/assets/sprockets/v3.0/I8Rudd-M3ZncqDCMeSo1UjcZtMEg2SaKk5CECgMPQDE.cache +0 -0
  223. data/test/dummy/tmp/cache/assets/sprockets/v3.0/IlF3sMFPX188gnyJvCQ0SCl-krx6wfsmg9owjW1NTl8.cache +0 -0
  224. data/test/dummy/tmp/cache/assets/sprockets/v3.0/In5zNCNHC81Vdra5-_QuXFmUOhTS5a4zYwxnA1-XYzE.cache +0 -0
  225. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Io/Io3snf7KXIh5g6qHBgra_ke7HzDWmQG7kG4gPYmXF6w.cache +0 -0
  226. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ip/IpsexTVr4bTUavsLIrEFIIapp78gdrAC2EGoGnPzOXI.cache +4 -0
  227. data/test/dummy/tmp/cache/assets/sprockets/v3.0/IsKDlL2vq8c9CSZr1tGYVAylD50ZEPxa7HZaWgmffiw.cache +0 -0
  228. data/test/dummy/tmp/cache/assets/sprockets/v3.0/IsgK1dRZxI-3Jvx4a5udTP3HM94B3lyydKZkBDMnejs.cache +0 -0
  229. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Iw/Iwh1zYj-Mv0XwKe0dyHq8PJOYR74I6KetRO8sCkzc9Q.cache +2 -0
  230. data/test/dummy/tmp/cache/assets/sprockets/v3.0/J8/J8NSRnnI5rR5sg7hmkfQL3pIg85IDd531wGqJWmMcmU.cache +0 -0
  231. data/test/dummy/tmp/cache/assets/sprockets/v3.0/JK/JKxvGpwjXS_A0llWh86IuRQGHzo4vBn0QfbtllT7tDY.cache +0 -0
  232. data/test/dummy/tmp/cache/assets/sprockets/v3.0/JMZFXq6rb3f9aXkZnvu9lTpnzJ0sp3rg5oJ3eeJEY3I.cache +1 -0
  233. data/test/dummy/tmp/cache/assets/sprockets/v3.0/JaCR15WROaW9D--FeQEVYVG3mBQmMf_bbdrX5TZaDXE.cache +0 -0
  234. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Jr/JrGS2KJ0NjpIXjYt4-ZXCA9PC0AMkdaUXZF14YXrN3g.cache +0 -0
  235. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Jw9pOdUQvEIm1t8s0j3bFScEcvKH6t9sTcXaVoVZIJQ.cache +0 -0
  236. data/test/dummy/tmp/cache/assets/sprockets/v3.0/K1/K1srzefpbHFi9YKamby0TGtrw1l48djgSAbCkzvU5oE.cache +0 -0
  237. data/test/dummy/tmp/cache/assets/sprockets/v3.0/K4jtXnpVrwcV_AYHE0yrrPTRJOYfB3rgVwNuBSBsIj0.cache +0 -0
  238. data/test/dummy/tmp/cache/assets/sprockets/v3.0/KVVfQyAJP1SGMcpsyMRs9ICDHYuymYs_pZs2NKi48FM.cache +0 -0
  239. data/test/dummy/tmp/cache/assets/sprockets/v3.0/KZ/KZH9ofSmbdGLpdMSQMjCyIXR0daVXsm_c_guiavE7ag.cache +0 -0
  240. data/test/dummy/tmp/cache/assets/sprockets/v3.0/KeIV3kfIImlCDpOzHpbickAnk6wE-8MTc13lGWiB4mg.cache +3 -0
  241. data/test/dummy/tmp/cache/assets/sprockets/v3.0/KkjE-Z0GrGmfQKpHScFfqUPIyb3avY72X_NmfBqHRfQ.cache +0 -0
  242. data/test/dummy/tmp/cache/assets/sprockets/v3.0/L-l4CP7tLCT0wXB5wfhlLNjI_3FM_ReAfTisYwrZHMo.cache +2 -0
  243. data/test/dummy/tmp/cache/assets/sprockets/v3.0/L0J3Na2C0hwxtx0hFFOML5ACaHpQ0YbEVliYyVrDlL4.cache +0 -0
  244. data/test/dummy/tmp/cache/assets/sprockets/v3.0/LIIaw2mVYsQWEJgQcnm_ZoQkTS-pGhhywrwgxogj4i8.cache +1 -0
  245. data/test/dummy/tmp/cache/assets/sprockets/v3.0/LMnf8H3UR8DJHz8jmP05JOMnWRzrYeT5ilXyJ6O_xJ8.cache +1 -0
  246. data/test/dummy/tmp/cache/assets/sprockets/v3.0/LPYogY-G7zzcP01d1Ah4imS2QmcdiDEYO4ycO2_D5-k.cache +0 -0
  247. data/test/dummy/tmp/cache/assets/sprockets/v3.0/LQ/LQLx5vAt0Ihl-wUOhN7Wd3QYBOubeWCwJL8yeWRInTU.cache +1 -0
  248. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Lc/Lca541Tm_aNsK7SELg5Np-gMBYih3bbj0blfDlYonCk.cache +1 -0
  249. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Lm/LmIdyxzne65ZOimd0Aieqh280xfRa9eCqO70Mf2CzZU.cache +0 -0
  250. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Lm/lmhJPHHsxPXyizTxki4L9aiOeVNNAAZqSSbxCYl5jLU.cache +1 -0
  251. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Lr/LrHEApagmYLvpjRgyzSMq0yWUDTSQX7yR62nEXu8Mqk.cache +1 -0
  252. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ly/Ly7psjf4wP_MhWSCjzePtYck6EgTsbf62FNPndWZdfQ.cache +0 -0
  253. data/test/dummy/tmp/cache/assets/sprockets/v3.0/MGhkl4VQXdp3HIcGZDTUquPmZa2wNL49x1AmHcpk_R0.cache +0 -0
  254. data/test/dummy/tmp/cache/assets/sprockets/v3.0/MGuNkjEOjpM4S4OuLJ-tuRaHgNsLoAmiAJDuXR5MMRg.cache +0 -0
  255. data/test/dummy/tmp/cache/assets/sprockets/v3.0/MVbiG1jwbHA35bzH8edl1Kb2hMXtzseug2FApASdm1o.cache +3 -0
  256. data/test/dummy/tmp/cache/assets/sprockets/v3.0/MW/MWMyH0buQsbd39n5nYxFvsz8-bZvQdktITpb-uS2T58.cache +0 -0
  257. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Mb9gIO-cvWc3WViqf7Ya04J8_BafOYcLPkPytWQPeRo.cache +1 -0
  258. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ml/MlBrvcWk1r1fzkI6ceutvJQ8u1jjfEY8AbvEcSd7Kxw.cache +0 -0
  259. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Mq/MqsT76edHzC5W1K2TH6wpWPp-FUrFtbRtHVth1kTZcE.cache +1 -0
  260. data/test/dummy/tmp/cache/assets/sprockets/v3.0/N-DDejM2SptU5VDDlhs4p9ABXmBmccjofDsGjOPEtDU.cache +1 -0
  261. data/test/dummy/tmp/cache/assets/sprockets/v3.0/NKkW-8Fey6tbf9phqmOaUS6zSiMayg5kRlZbmEdLTh0.cache +1 -0
  262. data/test/dummy/tmp/cache/assets/sprockets/v3.0/NZWUi8S_YUhhQ0EY_FtK9vW3IC1Q622IFiZOLsoUql0.cache +0 -0
  263. data/test/dummy/tmp/cache/assets/sprockets/v3.0/NailX19sgwas_3UhmYB31SoIh4B_XwLenSivbmKcjbM.cache +1 -0
  264. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Nc/NcjwXWkHredycvyrrk7qzBrNH0LUl7DxrNa4B4n7AGo.cache +1 -0
  265. data/test/dummy/tmp/cache/assets/sprockets/v3.0/NtgvgStn9PQr1VIL4MpiaRhWthd1VsSn_WDAPUbfTWg.cache +1 -0
  266. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Nx/NxnQTZckPwp34ecHE_rh5dMx6_Sraeh13iJ8FnCCw-o.cache +1 -0
  267. data/test/dummy/tmp/cache/assets/sprockets/v3.0/NznELvwn0zeA3arTLaW_z3RSEetcWGnkVha5_T_8XuY.cache +1 -0
  268. data/test/dummy/tmp/cache/assets/sprockets/v3.0/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache +3 -0
  269. data/test/dummy/tmp/cache/assets/sprockets/v3.0/OK/OKEGn9XZN4hOZeC1mqVqNyn_lHPBe-3nGFUWp7KqN2c.cache +0 -0
  270. data/test/dummy/tmp/cache/assets/sprockets/v3.0/OMahwot5YYirzUm4qF1LtBNMgeK5vtZXJxGTdTFxPhE.cache +1 -0
  271. data/test/dummy/tmp/cache/assets/sprockets/v3.0/OP/OPLAZ4TdG4hpKwpOq184PbRkYFMo9D7ndbfPO93thnk.cache +0 -0
  272. data/test/dummy/tmp/cache/assets/sprockets/v3.0/OS/OSDw7JnHpY-poDVG-fF_KdsQgss9ZV1yVFJVl6pz0Zg.cache +1 -0
  273. data/test/dummy/tmp/cache/assets/sprockets/v3.0/OYRmpEQuRBsok25lo4k-5gW9bt9hZwxlSmIk7QnHF5w.cache +3 -0
  274. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ob/ObgLmnjbSQbrMWFt8Iuk9js-9a48viwTfUQdiqxwQJA.cache +4 -0
  275. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Old7wW1qBddgOFV36L_bmiiyu7PBfbRR8Ar2ABTB3YY.cache +0 -0
  276. data/test/dummy/tmp/cache/assets/sprockets/v3.0/OsjpzLiJmp6JksuedeMshd5GUCXwzLcFGSFx0ywwTJE.cache +1 -0
  277. data/test/dummy/tmp/cache/assets/sprockets/v3.0/PC9QmlKwq_fToklf1xWUE64_zJ6yCDZ-srmwPf1P2r4.cache +1 -0
  278. data/test/dummy/tmp/cache/assets/sprockets/v3.0/PLJjAv2WPioFJqWkJpW969LweO40tu3e9-IZSwajQXA.cache +0 -0
  279. data/test/dummy/tmp/cache/assets/sprockets/v3.0/PSmRiqnBmRbM3NC2ZT8diDsF8XADZRaMr3ft4g2esaA.cache +1 -0
  280. data/test/dummy/tmp/cache/assets/sprockets/v3.0/PUKQ2gcWPN3dJgM0weQwA5jengXqyfRy8obFoFpIsPE.cache +0 -0
  281. data/test/dummy/tmp/cache/assets/sprockets/v3.0/PbIVNJojc3YTbmBu--YpZjbaJiyVbNlftrmOQ-9HWSU.cache +1 -0
  282. data/test/dummy/tmp/cache/assets/sprockets/v3.0/PgoINB4cTEoY_sDpnwH4Jme41HUaD4qxKrQt_hDThVE.cache +1 -0
  283. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Pm1sNRGcaZiDO0le5ljbvYDlLW5Qb6AtvXR8HHGawO4.cache +0 -0
  284. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ps/Ps-z9S4zPgRQ03luRgV5ckY6FWg-Y011mNaHRxlLd1w.cache +0 -0
  285. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Q0/Q0I0H8H56WpfZuotrkR2wnAw845OvMyUF7fbZcovmmk.cache +5 -0
  286. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Q6KG40xo2Y-14VESv7Sg7jVsymwW7BFD8QhGT5jzkVM.cache +1 -0
  287. data/test/dummy/tmp/cache/assets/sprockets/v3.0/QP/QPukONnPsEx8L_baHuEkhHVg2cnhj7DvFYafOeMWLyA.cache +1 -0
  288. data/test/dummy/tmp/cache/assets/sprockets/v3.0/QZ/QZQU_f99yorlAy9BiiismyiZuYH8hw5O6yAgJwin1bY.cache +0 -0
  289. data/test/dummy/tmp/cache/assets/sprockets/v3.0/QhcYbsDvXkAldxtfK8MbFghm9Ys39k9Z5gNAe6Pk6eo.cache +0 -0
  290. data/test/dummy/tmp/cache/assets/sprockets/v3.0/QuOsD_jSQmHShlZby4XG7LrYqt7qF9RokRzxDESbO2M.cache +1 -0
  291. data/test/dummy/tmp/cache/assets/sprockets/v3.0/R17rO9oCfDMN9jMajqBWljvsYm6pQ6pLBqzVuPLd1zw.cache +1 -0
  292. data/test/dummy/tmp/cache/assets/sprockets/v3.0/R3IHHb_FtoMgMx-sdSe7inkiI9i4Aiadv1EzF3K4-Kw.cache +0 -0
  293. data/test/dummy/tmp/cache/assets/sprockets/v3.0/R4/R4xXASpyceQzJA8t5wMchjCmGK2oAJlnMtTHtKn3GBQ.cache +1 -0
  294. data/test/dummy/tmp/cache/assets/sprockets/v3.0/R5/R5DSZNXU-1-xPPxPxJ72LxFJkdOlxU-pScAsz2_N9vA.cache +1 -0
  295. data/test/dummy/tmp/cache/assets/sprockets/v3.0/RISxZEtfavL-RGue_pGZntb6o3gWz1XOiQpbqpFNq_w.cache +0 -0
  296. data/test/dummy/tmp/cache/assets/sprockets/v3.0/RYuo4zc9_3Sr9xBJknPDo-WoKcIBXveEIx91LEhp4G8.cache +1 -0
  297. data/test/dummy/tmp/cache/assets/sprockets/v3.0/RalobruFXDeA4A76X0e7bIfKr3f1lTaSi1EHb5rAKBQ.cache +2 -0
  298. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Rq/RqnX3DDx7dU-FVTna-2QDn0wP_AwMy5d5mq29HbMBwU.cache +1 -0
  299. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Rr_quLaRFkplF8Yd7SPhX4Pp6ZYIfMHor-FY7zVi4pg.cache +2 -0
  300. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ry/Ryb0XSWaDDlW3YYidoa6DjZ75NzdqLb9rD6MFznbWYc.cache +1 -0
  301. data/test/dummy/tmp/cache/assets/sprockets/v3.0/S8Zp-KDBggs7vKBKWaxeVSfEns6CbzExgxA-pwZ5xMQ.cache +0 -0
  302. data/test/dummy/tmp/cache/assets/sprockets/v3.0/SIsTpt5sgj7MC6UjddPFtA7Pbke5lF31NIDv3_kyVxI.cache +1 -0
  303. data/test/dummy/tmp/cache/assets/sprockets/v3.0/SJZqwR04qXR4e1KzyaE3585YUkGf_C9iu2iga2UoVN4.cache +0 -0
  304. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ST/ST59z43-8pIl4LUMr7YPE8DwUsNgTKxcFIhQnfldLDM.cache +3 -0
  305. data/test/dummy/tmp/cache/assets/sprockets/v3.0/SgK9SPU46nLYzD301pTSpdLsw9hxulO3fPkss6u9CIg.cache +1 -0
  306. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Sh/ShlPpF0q4-3SdbwOSwzPMWiNKHrhM-dydaMh4iQgul0.cache +1 -0
  307. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Su/SuBjoao59PlGFv-GqVgTNw1mgTZtgqDaRkuUP2dczUU.cache +0 -0
  308. data/test/dummy/tmp/cache/assets/sprockets/v3.0/SyiOhch8hSDm2XJxmf7Zu7H303H6fRNVQIiW-ioi2o0.cache +0 -0
  309. data/test/dummy/tmp/cache/assets/sprockets/v3.0/TC/TCN_JL1ogug14CRpKpkkKLi26Ym0MmlZiATeXSYE5Vk.cache +1 -0
  310. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Tn/TnG676HX4rclKG_ksvu7WtgXkww4uuA5J8lsj42EAy4.cache +0 -0
  311. data/test/dummy/tmp/cache/assets/sprockets/v3.0/TqRggMTyqtcI6WuWrGovvw9YsibQhY3rUrRpL3GxwWU.cache +0 -0
  312. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ty/Ty0rQnC1W827fO6VzMHuPXc6NwHIy3og8499pt8jK6w.cache +1 -0
  313. data/test/dummy/tmp/cache/assets/sprockets/v3.0/U-1oZo0SkNjOtPDn4-7lMSp_3IplLtVuchSDZkDT_NY.cache +0 -0
  314. data/test/dummy/tmp/cache/assets/sprockets/v3.0/U3/U3HdVqy9NXtjMbFVf_Sxt0gzcTbZ9cwKu1d4ZsIbV2Q.cache +1 -0
  315. data/test/dummy/tmp/cache/assets/sprockets/v3.0/URbb4kfxNedILwNy99NOKzBYHUiZNZVMXVsfl3tH674.cache +0 -0
  316. data/test/dummy/tmp/cache/assets/sprockets/v3.0/UYGx6UpZ5xPMxZb_mD_0UGTTaWzgBj2frVe5Q2mljug.cache +0 -0
  317. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ucpi8GZUrd425D4CmhFeRRMchSu3k9TIwoM86LBDl6Q.cache +3 -0
  318. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Uf8o_dpN9lsBe7TyC3T2gcJ82CMpcBGrfwmgXyGa1rA.cache +2 -0
  319. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Um395rQgNh9KGOXZyGzvLVyORDQf65lYVntlEaBi-AA.cache +4 -0
  320. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ur/UrdbmG_DMbUvoePA130SRv0WKvP1TSHEp_7UjvGZVRM.cache +1 -0
  321. data/test/dummy/tmp/cache/assets/sprockets/v3.0/VGdwiFS9gvsyUm1TqEqXFF5tPfCPLAJ8-zIbQZGh0HE.cache +2 -0
  322. data/test/dummy/tmp/cache/assets/sprockets/v3.0/VI/VI7kBD9eZ5mV87XwJWVRFbiPBJehrCXM96NQ5C1wEKo.cache +1 -0
  323. data/test/dummy/tmp/cache/assets/sprockets/v3.0/VI/VIE3TzXi6g-Ld2I-3CEiKVxXpBxxCZe45yBSvRQWG1U.cache +1 -0
  324. data/test/dummy/tmp/cache/assets/sprockets/v3.0/VI/VioK0uIKLVA1M9hYfWbon82cMQCqQDoz2zZavKVCmhA.cache +1 -0
  325. data/test/dummy/tmp/cache/assets/sprockets/v3.0/VJ6e3VnBYwWYDebqyuyFTA7EboB2D5vAK_B2IT3csGY.cache +0 -0
  326. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ve/VenUUoIq7_Gpwxmn9LdzSQisf1FusBcFY58-22rS7UE.cache +1 -0
  327. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Vi8EgAX9ywIno1g8aXyZFne7fOTZAbhU4lQfm7nBAj0.cache +0 -0
  328. data/test/dummy/tmp/cache/assets/sprockets/v3.0/VixJsh87cQdpPo_DR7P6pdOyddF7qp8zACd_W0RDSDE.cache +1 -0
  329. data/test/dummy/tmp/cache/assets/sprockets/v3.0/VmLRk7DVsTPjyA92QYaZnhSSHQLvKsYSutMbPnsJwqs.cache +1 -0
  330. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Vs/Vsj6IY54bZwmFv5Pz-8J-Whv8WUQ7-FHqRl32YmaSpk.cache +0 -0
  331. data/test/dummy/tmp/cache/assets/sprockets/v3.0/W5/W5AOaEwbW-T29z6OuIKeAj_uX5wNAFYZcCNo3OtP-ho.cache +0 -0
  332. data/test/dummy/tmp/cache/assets/sprockets/v3.0/W7/W7DsMkVYvpycoxvyZgNj94pivokWy8JCOU-Nh0WTjQo.cache +2 -0
  333. data/test/dummy/tmp/cache/assets/sprockets/v3.0/W7/W7pFdQ530SSAKJfgOzRBbGSw5biZctxgceksLv8je1Q.cache +0 -0
  334. data/test/dummy/tmp/cache/assets/sprockets/v3.0/WE/WE1FaRkigOWZpmooyoSxM6ZMX0ykIbRSgxP9NNefeHw.cache +1 -0
  335. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Wc/WcHbJ3qmTYMc8X-3l4y81byDHvu89DMZ6UtIPjmu8do.cache +1 -0
  336. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Wc/wC9hGv-bs9bCdUENWKFRcXqEaDMhVi86W3k9rM8TD9Y.cache +2 -0
  337. data/test/dummy/tmp/cache/assets/sprockets/v3.0/We5lyjIGLLHOfgDJbBrUNUBRbNshDbxpWX7lT5mgnI4.cache +0 -0
  338. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Wm/WmG6U6cljZxv5tvx4-xmjB7J7GAumiogoZXovNC0o_k.cache +0 -0
  339. data/test/dummy/tmp/cache/assets/sprockets/v3.0/WnRq-Lte2tmJz57dLjwKdhSA7Bj_ZagRjSSO729axSw.cache +1 -0
  340. data/test/dummy/tmp/cache/assets/sprockets/v3.0/WtMovMNQL7SMGR23tQFHlwFhG7_W6ft0Bu4oj47wYfQ.cache +0 -0
  341. data/test/dummy/tmp/cache/assets/sprockets/v3.0/WvA_Z1bH5j6tbtUF4v-9j7lP-4WPIdQk_tuchLZEwpE.cache +1 -0
  342. data/test/dummy/tmp/cache/assets/sprockets/v3.0/X7/X7aW-6iMqBpcEZnDxvS3VWk4kddBO5wvBLySefr_ud8.cache +1 -0
  343. data/test/dummy/tmp/cache/assets/sprockets/v3.0/X9/X9mBiRt_M5dum045vQNkF8fL4najFcP166VSQJWCXf0.cache +0 -0
  344. data/test/dummy/tmp/cache/assets/sprockets/v3.0/XMUdd3JohmHK3kXVUzR9mzrsWxl05lNEumn7ZJ_7xEc.cache +1 -0
  345. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Xb/Xb8mDfi2XJY6gDVfVm7JDH-gT4soNq8hTXdik3gSaBY.cache +1 -0
  346. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Xc/Xc-sxQ7rq0BHRlQsut7zjgWatFjEnl9buWysqwM5Zbk.cache +0 -0
  347. data/test/dummy/tmp/cache/assets/sprockets/v3.0/XclvD5MqlP_uFO6MtRQLnF0hZjzM8y1tqNwskfhXNiw.cache +1 -0
  348. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Xg5AC_2W3V1doe2HjuiCEVtpHN9yw4ZqB7m-Fg_zMXY.cache +0 -0
  349. data/test/dummy/tmp/cache/assets/sprockets/v3.0/YL/YL3sEPBr0QudhQAC1VFE8GgQGiuc2o4XM2yqGTb0II0.cache +1 -0
  350. data/test/dummy/tmp/cache/assets/sprockets/v3.0/YQ/YQ3_P-7IhnbkKNEEbe3jdzfjqYepy4Si5wdREYzNiZY.cache +1 -0
  351. data/test/dummy/tmp/cache/assets/sprockets/v3.0/YkGapzUbEb0hCSO4AvaN2TZKY7WI2o7PHy2OGQarU6c.cache +1 -0
  352. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Yr/YrYsvLXTO_3UfNjQonf2OZLe_MRlYSMhuJJuqa9KtWA.cache +2 -0
  353. data/test/dummy/tmp/cache/assets/sprockets/v3.0/YtZFcSeQwSs1GLtW46M3OaDphGqFpIhYYDomzv3zsb8.cache +3 -0
  354. data/test/dummy/tmp/cache/assets/sprockets/v3.0/YvfMaUcc0QAYbr7C5p6jf2F-JLeKtoirYZSPikhKbnM.cache +1 -0
  355. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Yz/YzVd8ikyBo4aU8570tvm1jGviPbsz1IFgsdV6_vKMXE.cache +1 -0
  356. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Z-/Z-9TPsJ50jGq0f_Sm5SNNwITy0KGXURcGKbrSICrF_Y.cache +0 -0
  357. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Z7DNjmOwpPqBSB9ZC-I_fFGi5ncjnVQEVM7o2G6crhg.cache +1 -0
  358. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Z7KnfoylJGt7S2nfIcQuzCVtaYlUoyXF1Rn-MZq2kMU.cache +1 -0
  359. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Z8DzDTZzMfiGQj46A5EOnxhGFGodpIOQUYxAy5Q_nn8.cache +0 -0
  360. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ZB/ZB_OipRBXOSN2JUsn_X3zDN2v0QRGfpRkg7tFhnFXMI.cache +1 -0
  361. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ZCS-UyOWdcqsRH83RSQYNwVT9WMKnEcFalunezUWID0.cache +1 -0
  362. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ZWbPXwnczXpednk5cKQfr_-0K_xO6X46y37LiKsH-xY.cache +1 -0
  363. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Zg/ZgnILkbOh7aGKwuX3_cMsi1k5E-lRS5-mvBMEzX_RDk.cache +4 -0
  364. data/test/dummy/tmp/cache/assets/sprockets/v3.0/_AMOakl2JFb-O99YRzGdk9gvT3WZELMG_6a6N-qxRsY.cache +2 -0
  365. data/test/dummy/tmp/cache/assets/sprockets/v3.0/_P/_PCpjsH5OH-lSwXkzXzY7KqGZ7XXKToN6E-dvJittJ4.cache +1 -0
  366. data/test/dummy/tmp/cache/assets/sprockets/v3.0/_d2E5HdrP6BtCEWKxAKxiaz7McDuORYJiUuWR5kpzS0.cache +1 -0
  367. data/test/dummy/tmp/cache/assets/sprockets/v3.0/_k_qI4Na37XayWp0kdbFSVyczPMSsR1jkcKutZiqr44.cache +1 -0
  368. data/test/dummy/tmp/cache/assets/sprockets/v3.0/_u/_u2zCNs9J2s6fIwiN9A-KSb9uU3ebSz7GCgWvl6ippk.cache +2 -0
  369. data/test/dummy/tmp/cache/assets/sprockets/v3.0/a5/a5lvHuoMzOiznmY6XJNzRzFWQZkuHkHYCwQ5nWMhEgM.cache +0 -0
  370. data/test/dummy/tmp/cache/assets/sprockets/v3.0/aC_VJf5r-AOqtBZXclS2g4N56w_1Wi9v3oFGVXq6IUM.cache +0 -0
  371. data/test/dummy/tmp/cache/assets/sprockets/v3.0/aIM0qaANWrND-Tbbf6ovERI8NPiGv-Rr917TR3xC2uQ.cache +2 -0
  372. data/test/dummy/tmp/cache/assets/sprockets/v3.0/aRVzC0KWlQ9-bAXpQ04FQacVbB3Jwfu_HlNhLvX_hFw.cache +0 -0
  373. data/test/dummy/tmp/cache/assets/sprockets/v3.0/aRds6QuQFL3BNAmuOUsf__h1MFIoLhuhxasL8F_MRoQ.cache +0 -0
  374. data/test/dummy/tmp/cache/assets/sprockets/v3.0/aT/aTW9NofM2dub6bJlvG2frUeKUe23iMh13vhpcdmiURY.cache +0 -0
  375. data/test/dummy/tmp/cache/assets/sprockets/v3.0/akOf2z5EgurkOmyUBjo9np3py6dQwGGllYIhDBHiuUg.cache +1 -0
  376. data/test/dummy/tmp/cache/assets/sprockets/v3.0/aq/aqYy9p3amhcuGE73MC6pX5SFWvmCvd2WRD1kvxxNwo8.cache +0 -0
  377. data/test/dummy/tmp/cache/assets/sprockets/v3.0/audQOgSyTkaGoMOfqOu2LBsV9oEGH2_DbYqIH_HguMY.cache +0 -0
  378. data/test/dummy/tmp/cache/assets/sprockets/v3.0/aw/awGLsfGUq6_SlEpgZdkYaBFv8jkN4pWbrrPmKudqFT4.cache +1 -0
  379. data/test/dummy/tmp/cache/assets/sprockets/v3.0/bBIUvB9tzGlzT-o7fiio80JXQUB30Ech2kvG_3Y5iZs.cache +4 -0
  380. data/test/dummy/tmp/cache/assets/sprockets/v3.0/bJX7Jf37F2Bug8hIqm8r0gP3z7BGYcctZlKjChtv6cQ.cache +1 -0
  381. data/test/dummy/tmp/cache/assets/sprockets/v3.0/bP/bPtbmKlAvU4G_28-NQqQ2MAKMAMh8lhhGZZYDhdEoqQ.cache +1 -0
  382. data/test/dummy/tmp/cache/assets/sprockets/v3.0/bX/bX5Mjih7xZQZ11QUgK9_U0U-rjUroYpMp9BhzG40GW8.cache +0 -0
  383. data/test/dummy/tmp/cache/assets/sprockets/v3.0/bXxY82nI48RkgtoS4_syd21yEnhZQwvMcn-BoXodnQ0.cache +1 -0
  384. data/test/dummy/tmp/cache/assets/sprockets/v3.0/bXyCTjtKDm0vB7iY9B-yLSvBcyfU-htuafQKKGBpJ0k.cache +0 -0
  385. data/test/dummy/tmp/cache/assets/sprockets/v3.0/bZ/Bzo-p8868ccRLz6E_JbqYB1lvZMTKmm4DDcer7HUSSo.cache +1 -0
  386. data/test/dummy/tmp/cache/assets/sprockets/v3.0/bZ/bZY3Uy9HS1pF2TZKI1JhksXi3o2PF4qtAmsYo25ssg0.cache +0 -0
  387. data/test/dummy/tmp/cache/assets/sprockets/v3.0/bakqc6kaHcCPQyMBifkl9wEx6eOSfw1ufnkRWSqHUBA.cache +1 -0
  388. data/test/dummy/tmp/cache/assets/sprockets/v3.0/bfgyClezYZq8phpVsSvX3WlEIWddQoLvSWBswnfo9xs.cache +0 -0
  389. data/test/dummy/tmp/cache/assets/sprockets/v3.0/bl/bls0Xf6ZCURMaP99-2gR6RxlpocBk6n6Osqs3hUQfww.cache +0 -0
  390. data/test/dummy/tmp/cache/assets/sprockets/v3.0/bukPGWRYwAKWxcuwXJtOvK70hDOhAnxuE_sC6g8MrQM.cache +1 -0
  391. data/test/dummy/tmp/cache/assets/sprockets/v3.0/c30ruy2f7Vj0la_1e19bvaI_QU7R6trTWsgyBeukTsU.cache +0 -0
  392. data/test/dummy/tmp/cache/assets/sprockets/v3.0/cAOH6U5tvq60ErBW4jG5PQtde28V8pZcwzRAXLVlfhY.cache +0 -0
  393. data/test/dummy/tmp/cache/assets/sprockets/v3.0/cCcR9fdpbjRdwfk9heG7ptYvykmVAqIaIoGgD1a_Zqg.cache +1 -0
  394. data/test/dummy/tmp/cache/assets/sprockets/v3.0/cKsXB3rUGIi3Ozt4GueDizkPUZEBKZSE3PMhqCTPfD0.cache +1 -0
  395. data/test/dummy/tmp/cache/assets/sprockets/v3.0/cPqNv1He2mMHmsx2LhpKEVEaio2C0yfrAsoDZp-iQAA.cache +1 -0
  396. data/test/dummy/tmp/cache/assets/sprockets/v3.0/cd/cdSOoSUc9u5sJGTfXkuwoQt3b_Q5iuS-BDrZ9AKCrnA.cache +1 -0
  397. data/test/dummy/tmp/cache/assets/sprockets/v3.0/cj/cjE-6pVIjkOOMRPK0JV3RQB96dvs0erVbK8ZrCAlBW4.cache +0 -0
  398. data/test/dummy/tmp/cache/assets/sprockets/v3.0/d7ZvdvpacQv62QANPv75XU_n-1JoDMLFQUli6S2sZik.cache +2 -0
  399. data/test/dummy/tmp/cache/assets/sprockets/v3.0/dC8-6scofTOlk8yoA0NPbdHDm34KNXAjvcpOakSqMWY.cache +0 -0
  400. data/test/dummy/tmp/cache/assets/sprockets/v3.0/dE/dELVQs1frXZrpLcoBwOh6f9QAszd-R3MSuHT_Y6guvo.cache +1 -0
  401. data/test/dummy/tmp/cache/assets/sprockets/v3.0/da/daOFfzHrkhg0g2uw1EZOQMikrUxoDx8V0kmLuGMPSAM.cache +1 -0
  402. data/test/dummy/tmp/cache/assets/sprockets/v3.0/dez8e34FS2XjF66nTgORVkhhJQL-ylzIuKEx2Ho_c7o.cache +1 -0
  403. data/test/dummy/tmp/cache/assets/sprockets/v3.0/dfaTv2QSbyl5mkYIUvgRnaHbzlf3BKGboaquZnyDbUA.cache +0 -0
  404. data/test/dummy/tmp/cache/assets/sprockets/v3.0/e1/e1dVlu37l6Qnc7JEL0mA_cyuvE3cT4ryxToku9H2NVM.cache +1 -0
  405. data/test/dummy/tmp/cache/assets/sprockets/v3.0/eBOsExtSF1-lb6bgeJ-oyBZh7S_BqoyC6NHwgc9CZXI.cache +0 -0
  406. data/test/dummy/tmp/cache/assets/sprockets/v3.0/eH/eHy0PMYEpOJwyA0HTZQZNFENlUjxUhFSY3KLu6CSoTU.cache +0 -0
  407. data/test/dummy/tmp/cache/assets/sprockets/v3.0/eI/eIA8TTY3ucwkyRvxw2HNCLY4CxoWScC1aMLyvglanIA.cache +1 -0
  408. data/test/dummy/tmp/cache/assets/sprockets/v3.0/eI/eIq2LD6L3-d-vd-DChR12rykM9vWZzRjSsvjKAmvvXE.cache +0 -0
  409. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ej/ejriCIrHe7d1y_mHFKcJu9CjjAEyrh9wJoi44RaoXI0.cache +1 -0
  410. data/test/dummy/tmp/cache/assets/sprockets/v3.0/f7QTuu89OA48Ern19A2P0cKiraoeaitT2LlvnJFCHQs.cache +3 -0
  411. data/test/dummy/tmp/cache/assets/sprockets/v3.0/fJ/fJeTemB69-cSDl7vvN4OMMso88K7DqFF4FwYdW1cRxc.cache +0 -0
  412. data/test/dummy/tmp/cache/assets/sprockets/v3.0/fUpXWPvGWvhBnlxlaFZcUpKynsAxiWzlfabFhOWqr-Q.cache +1 -0
  413. data/test/dummy/tmp/cache/assets/sprockets/v3.0/faYD1uI13Q_nxM5OEBNvp4Leo6MLu-QeQuuLRDssWW0.cache +0 -0
  414. data/test/dummy/tmp/cache/assets/sprockets/v3.0/g1/g1OFsFjQuq9Ns5mxBy4--pGUqAi1YzmQJ07UtI1ATI8.cache +1 -0
  415. data/test/dummy/tmp/cache/assets/sprockets/v3.0/g5/g54MbBl3WebjoxiRfGf0Nm9ISFj1jhO7VqvwYnV30kg.cache +0 -0
  416. data/test/dummy/tmp/cache/assets/sprockets/v3.0/gC0y0zEIHumhnKBUne1mw4dDc5IZw5BSDTrAyeUgTEc.cache +0 -0
  417. data/test/dummy/tmp/cache/assets/sprockets/v3.0/gDd6wQK2z9tWNP2OSy1iraj3uG10EqBenRnjX-r6HD8.cache +0 -0
  418. data/test/dummy/tmp/cache/assets/sprockets/v3.0/gM/gMddRapJ9uydpPRA6quFkntHb5nLYVuc17gT76xsxvM.cache +1 -0
  419. data/test/dummy/tmp/cache/assets/sprockets/v3.0/gTb0lKWVIIdgE2R1I_1ThicV_3-HmhyL0v-iVe6oXAk.cache +1 -0
  420. data/test/dummy/tmp/cache/assets/sprockets/v3.0/gW/gWuVFRDyXK0khN6AU2w_f2KYhNCTjibnOxz_rHkeX-0.cache +1 -0
  421. data/test/dummy/tmp/cache/assets/sprockets/v3.0/gZp3uXMHuYQC4hzCr7bQfetKNdJAtbQmg3so2KpW1Dw.cache +2 -0
  422. data/test/dummy/tmp/cache/assets/sprockets/v3.0/g_/g_XBO9m5zbIZZwbgsNRaBznmtFByPopx59QAQqg1Dys.cache +1 -0
  423. data/test/dummy/tmp/cache/assets/sprockets/v3.0/gjXq3JMKUZ9QkVjzApxV8x1RcZLefYeFd7vIt9A4xRI.cache +1 -0
  424. data/test/dummy/tmp/cache/assets/sprockets/v3.0/gqF9AXzUn2TDzJI9gHGT2UwG5br2omlEIs-kYZe9FDM.cache +1 -0
  425. data/test/dummy/tmp/cache/assets/sprockets/v3.0/gwHhvL1gpIYRAqMh3ingYdx5bOQBz9rsm_DCXtDrz5k.cache +1 -0
  426. data/test/dummy/tmp/cache/assets/sprockets/v3.0/h0/h002RBgJYA2X_634bWk4maymx0RIyoCqV7WWjF2QATQ.cache +1 -0
  427. data/test/dummy/tmp/cache/assets/sprockets/v3.0/h4xCfSutabLie_MK-CPWj12kgtcRDxo6_CNtyi0K_Ok.cache +1 -0
  428. data/test/dummy/tmp/cache/assets/sprockets/v3.0/h6zhNKxwvtQNsdsBMqF5fQdVg6Ql4aw4Q-HFSZLmEmA.cache +0 -0
  429. data/test/dummy/tmp/cache/assets/sprockets/v3.0/hNLzrjwgYXODJuUndlo9Ub_U8JIe6qfjI3sy1juJUGo.cache +0 -0
  430. data/test/dummy/tmp/cache/assets/sprockets/v3.0/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache +3 -0
  431. data/test/dummy/tmp/cache/assets/sprockets/v3.0/hk/hkRZ4kbJx2RB08ChPbyXscvZ3R2SfwHtou_PPA7lHBI.cache +0 -0
  432. data/test/dummy/tmp/cache/assets/sprockets/v3.0/hmlmMEtFfRgztcsIdJ6VEHdkb9b4NgWsb9CBMw7oTzc.cache +1 -0
  433. data/test/dummy/tmp/cache/assets/sprockets/v3.0/i7Lb2AETmohBV1vt_o9CT0YDJm8nOmZB20reFQddk2g.cache +0 -0
  434. data/test/dummy/tmp/cache/assets/sprockets/v3.0/iD0ZyuWyz2y2jNPEf0iM7fTIusaGiGHjdLBndhQUBQM.cache +0 -0
  435. data/test/dummy/tmp/cache/assets/sprockets/v3.0/iJ/iJPL_4Dw5oUWOBYkRMNjnvg01Z6AyUJ81cCdChufUrY.cache +2 -0
  436. data/test/dummy/tmp/cache/assets/sprockets/v3.0/iiWQTHgUza4uZ6rVT9sDHKLMP_2b8-Ic8KFW94YTIeY.cache +0 -0
  437. data/test/dummy/tmp/cache/assets/sprockets/v3.0/is/isvxhUe_l4I82TEp8LEReBlyEVtd3krqfMMmA09-12o.cache +0 -0
  438. data/test/dummy/tmp/cache/assets/sprockets/v3.0/j1/j1czGhSxC29VBZeoqommliVvHueeBL1QfDfAZtAobXI.cache +1 -0
  439. data/test/dummy/tmp/cache/assets/sprockets/v3.0/j5/j5I4SFk4zjixlr0qT_bAT8Ba8fcGqRxxrqjBRbKQy8o.cache +1 -0
  440. data/test/dummy/tmp/cache/assets/sprockets/v3.0/jAHe6wgzT1StINx-P2dFKmRqEs5-Z0DXfGOX9POUrIE.cache +1 -0
  441. data/test/dummy/tmp/cache/assets/sprockets/v3.0/jF/jF75Sv1lV35lZoZysyMKHJQu22y2xDo59X1khUQC6Jc.cache +0 -0
  442. data/test/dummy/tmp/cache/assets/sprockets/v3.0/jl/jlixUghQOKo3Ikz9o3iqbLkeZYDMzTOoeU39IRYxJYg.cache +1 -0
  443. data/test/dummy/tmp/cache/assets/sprockets/v3.0/jp7_RQyYyTMSkMrxpX2IX35yUaGU6ibtq5ZrP6VjGqs.cache +1 -0
  444. data/test/dummy/tmp/cache/assets/sprockets/v3.0/kC_IF_dSXyjJAoO6PTuvxR3IHwYSTuoOOHtG-nPSPuU.cache +0 -0
  445. data/test/dummy/tmp/cache/assets/sprockets/v3.0/kFOBMz70YStmV9tLT2Q9w_MmAv96Aykw__iRn3Ul-u4.cache +2 -0
  446. data/test/dummy/tmp/cache/assets/sprockets/v3.0/kX6h1hYv1sKo7TlBjlQW51FUIqmMQ9Oe4gUkDFFNWhw.cache +1 -0
  447. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ki36eJ-2sDBxOltm5h_0EapyNY_TPerKNXNV-yi_9DQ.cache +0 -0
  448. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ko/koVa3A1TJeawAY5cwPPSo6gPaNKmZFEJyqmjZgKExfw.cache +3 -0
  449. data/test/dummy/tmp/cache/assets/sprockets/v3.0/l1FI9ADT5YfolsTT0a8hbgZDYXb8ok-_LAJ1SQCiTKs.cache +1 -0
  450. data/test/dummy/tmp/cache/assets/sprockets/v3.0/l3LJWtg-7O8xYqvsoBiS8Zi1FSQJhdnJJ5pm53NhIA4.cache +1 -0
  451. data/test/dummy/tmp/cache/assets/sprockets/v3.0/lCT7VIp6MjhiTtvqZgrjvVnNx4Kvd7H5wIXWqNZrtOo.cache +1 -0
  452. data/test/dummy/tmp/cache/assets/sprockets/v3.0/lH/lHqDwyzvXjifEdNW5Ki7ykxTBG87VOWxaMRzKimBevo.cache +0 -0
  453. data/test/dummy/tmp/cache/assets/sprockets/v3.0/lHqDwyzvXjifEdNW5Ki7ykxTBG87VOWxaMRzKimBevo.cache +0 -0
  454. data/test/dummy/tmp/cache/assets/sprockets/v3.0/lTtzgwlWdoWTa3glmYWBlNR3mKFWQ-4SysgmOOWKrHM.cache +0 -0
  455. data/test/dummy/tmp/cache/assets/sprockets/v3.0/mHEMwTv_aNKOWAr6rs0BijMA3qa3lSpt-ln8B_1YO2I.cache +1 -0
  456. data/test/dummy/tmp/cache/assets/sprockets/v3.0/mJ/mJa0QpsYllaiBf_9rml5TJ4f2oyN4xC6a_Tolug0bC8.cache +3 -0
  457. data/test/dummy/tmp/cache/assets/sprockets/v3.0/mM/mMkxSKZ-0_Q6FfITNBOcp6Q-ivjin3gcBTgAvwhWJZc.cache +1 -0
  458. data/test/dummy/tmp/cache/assets/sprockets/v3.0/mMYgjM82KZo2_dDUAHLl7iF1RsMlW0Ylnj2YYwsgymY.cache +0 -0
  459. data/test/dummy/tmp/cache/assets/sprockets/v3.0/mO17elDUqef_QK_Yh-UODu_ayEGRJg_mo4VN635_j5s.cache +0 -0
  460. data/test/dummy/tmp/cache/assets/sprockets/v3.0/mR/MreibgixuG8q2shXc21gAtZnO4yHHyQA1oom_llgiww.cache +0 -0
  461. data/test/dummy/tmp/cache/assets/sprockets/v3.0/mR/mRIXIXim5QkBSfSsXxEVFRA_sRzUql9UQjnQ4BtjES8.cache +1 -0
  462. data/test/dummy/tmp/cache/assets/sprockets/v3.0/mi/miS7Vv31iHJBdWocd4zC1UszzDG8zCx0EKPwkkmtMwI.cache +1 -0
  463. data/test/dummy/tmp/cache/assets/sprockets/v3.0/moS3693sVt-ekxv0zgRCO_x0rTFo5FYY69O5h_Pq1M8.cache +0 -0
  464. data/test/dummy/tmp/cache/assets/sprockets/v3.0/mrZiKj_XMcUZA0cLyvTfUYD9418gWyhbPZyqln2QsTQ.cache +1 -0
  465. data/test/dummy/tmp/cache/assets/sprockets/v3.0/mynB9mjQX0wCPRPZS2M0xbkczvxQzs6gwFFotOLEKqs.cache +1 -0
  466. data/test/dummy/tmp/cache/assets/sprockets/v3.0/n1daEUHNXq2bWlYq7ajyYHW0blU9ECaNAb9bjdGAOx0.cache +0 -0
  467. data/test/dummy/tmp/cache/assets/sprockets/v3.0/n3_-SxGYH80oMKPp9Vfu5_PijUjRYcWqqD_mcFNz4tw.cache +1 -0
  468. data/test/dummy/tmp/cache/assets/sprockets/v3.0/n7tNh7txAL48CefcUp2w1QXK50MGfSmgkUzzspg1zzs.cache +0 -0
  469. data/test/dummy/tmp/cache/assets/sprockets/v3.0/n9/n96QllN7W6YO0sv_l5xLwalDcGdAzOrCAdvEc2-zOZU.cache +2 -0
  470. data/test/dummy/tmp/cache/assets/sprockets/v3.0/nLSXgOVo92sCUH9DIawVaya27SsK0LphIPg-hZl9IS4.cache +1 -0
  471. data/test/dummy/tmp/cache/assets/sprockets/v3.0/nLqhYsvmE3J1_sCMW4RmnasxDlY6RhQkNDKTEp1oaoA.cache +0 -0
  472. data/test/dummy/tmp/cache/assets/sprockets/v3.0/nU/nU6xltemxB5snfPx2D9pDluGKSFE4c1NxwNtaPxpVWo.cache +2 -0
  473. data/test/dummy/tmp/cache/assets/sprockets/v3.0/nj/njmpdub-j6lJHsQOr831-i4bU2hWMmc9G9NrfkpbPo8.cache +1 -0
  474. data/test/dummy/tmp/cache/assets/sprockets/v3.0/nm/nmy3oeiotuXPRs-lgA2EO79ZItMzyDmisMhuzduen9E.cache +1 -0
  475. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ns/nsa0tHt612z6QpQnNiBMahJxkhq4HgGXifvXBOPPrW0.cache +1 -0
  476. data/test/dummy/tmp/cache/assets/sprockets/v3.0/nzG1H_nKHL0pDVFEzX0Dvr9-LfsVQ-HiYmItNqkf70c.cache +0 -0
  477. data/test/dummy/tmp/cache/assets/sprockets/v3.0/o-/o-FVe5lXO38zcuVUWDTreHGSzLwEHgSCK8izsFWsxX0.cache +1 -0
  478. data/test/dummy/tmp/cache/assets/sprockets/v3.0/o-/o-LERBz6pvn8ZRnBebH4cfexX_LDOq-ceU0WxXMFlik.cache +1 -0
  479. data/test/dummy/tmp/cache/assets/sprockets/v3.0/oA/oA830tTxS-u1HeOCqD0pqUWGs6D1S_zPrk8eQwg_Dn4.cache +0 -0
  480. data/test/dummy/tmp/cache/assets/sprockets/v3.0/oA/oayaFCp0P-RAGywCGGQ-poesRmuDDyH03GI3t2AQllk.cache +0 -0
  481. data/test/dummy/tmp/cache/assets/sprockets/v3.0/oD/oDLapKu1V8s_ykaNAks3EguNLsF_iVTUG_5EnCjDjak.cache +2 -0
  482. data/test/dummy/tmp/cache/assets/sprockets/v3.0/oDLapKu1V8s_ykaNAks3EguNLsF_iVTUG_5EnCjDjak.cache +0 -0
  483. data/test/dummy/tmp/cache/assets/sprockets/v3.0/oLuthsXDdM8iWpqRjdaY2tA4Y_lLaylVV8kdyDZDxc8.cache +1 -0
  484. data/test/dummy/tmp/cache/assets/sprockets/v3.0/oS3szy4db2brBHwBcNyIrN21CsS2rbl2USYefynemXs.cache +1 -0
  485. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ocGpRkA3zEZKDQu0AUat7RMQ0yXtdQZGlhmXzbT4CwE.cache +0 -0
  486. data/test/dummy/tmp/cache/assets/sprockets/v3.0/oibyVZch2nQ8aiG90SGj1MOVwuu_jGlJaHz4XkSxeSA.cache +1 -0
  487. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ox/oxW3u4AbSt78bxxNW_YKUCaZJqR82SdeYZzDlmsxP8Q.cache +0 -0
  488. data/test/dummy/tmp/cache/assets/sprockets/v3.0/oxxiJcpFQJhMeKlsnz0OuoZY6-0IHvS0cgE0HuJxuwQ.cache +0 -0
  489. data/test/dummy/tmp/cache/assets/sprockets/v3.0/oy/oyFKL-gYUn0ulVxqA23WcrwcqzrvKy9TAbpvkkIUvbg.cache +2 -0
  490. data/test/dummy/tmp/cache/assets/sprockets/v3.0/oyFKL-gYUn0ulVxqA23WcrwcqzrvKy9TAbpvkkIUvbg.cache +0 -0
  491. data/test/dummy/tmp/cache/assets/sprockets/v3.0/p0/p0lvyAPUGEYfav7ZV5okrelmK9Q05ZdhiNvBq-nKlVA.cache +0 -0
  492. data/test/dummy/tmp/cache/assets/sprockets/v3.0/p7/p7DyxPXVaxs5R-B0q60r1qlHdmaBCUavfJopG50co7w.cache +0 -0
  493. data/test/dummy/tmp/cache/assets/sprockets/v3.0/pEhaat2KBd5SrT7szC_8R1_6hK17FTpvoRFkmCRSD3M.cache +2 -0
  494. data/test/dummy/tmp/cache/assets/sprockets/v3.0/pO9zL3oDockYuYFXzZKGh15NkqX9Ee1YZ7N9ZvwqTjU.cache +2 -0
  495. data/test/dummy/tmp/cache/assets/sprockets/v3.0/pTOWF_qS_Be4Uu7FN_2lq2ILQBlQnZuLpLq4SflQjEk.cache +1 -0
  496. data/test/dummy/tmp/cache/assets/sprockets/v3.0/p_kAWkzZfVCWj_SMcwf9uU0DxOWkIRisV52j98ZtCn4.cache +0 -0
  497. data/test/dummy/tmp/cache/assets/sprockets/v3.0/pm/pm1wBgwP2NZcrbul9JGdfVADokh21d-tvSV8u6bEHoA.cache +1 -0
  498. data/test/dummy/tmp/cache/assets/sprockets/v3.0/po/pO9zL3oDockYuYFXzZKGh15NkqX9Ee1YZ7N9ZvwqTjU.cache +0 -0
  499. data/test/dummy/tmp/cache/assets/sprockets/v3.0/po/poyPQV3hn3o0e_V2rqgWiJDlZj3_6EJqNcRw9LJ3MyY.cache +1 -0
  500. data/test/dummy/tmp/cache/assets/sprockets/v3.0/powk2AILNr6tMuBZw4ZaY_Uf_wEB6rj0X9NAqoR6mVc.cache +0 -0
  501. data/test/dummy/tmp/cache/assets/sprockets/v3.0/pp/ppwoqm-DeLOTW6b1kalSyTzIj2k1_Qr9ZuuErUItS00.cache +1 -0
  502. data/test/dummy/tmp/cache/assets/sprockets/v3.0/q1rvkxmSateTGEC8MonHDkDtUzt5cPYXLe3cxVqIkwU.cache +0 -0
  503. data/test/dummy/tmp/cache/assets/sprockets/v3.0/qASJItZJJp8NSH34u5ndjROCKSyMI8sTJZirPwPW87E.cache +1 -0
  504. data/test/dummy/tmp/cache/assets/sprockets/v3.0/qEujKI3FS9nkSTk05zr_lIexpceYn4CyBmOn-BAi0v0.cache +0 -0
  505. data/test/dummy/tmp/cache/assets/sprockets/v3.0/qI/qIscryib07hE2uL8Lk0OPmp02KD1nYkO2DGrf9C8Zi4.cache +1 -0
  506. data/test/dummy/tmp/cache/assets/sprockets/v3.0/qN/qN4cuQgY023caAoaGatM6iPyV80JfXylGEJnNdjaeXg.cache +1 -0
  507. data/test/dummy/tmp/cache/assets/sprockets/v3.0/qOSf038w4_iZq2_JicB3LTuE3FNznht8xWFy7MZ2Ldo.cache +1 -0
  508. data/test/dummy/tmp/cache/assets/sprockets/v3.0/qZvMhYHg81cuJ5GQ5_P3GlTGKrZR27nkjtH1aQeQ_W4.cache +0 -0
  509. data/test/dummy/tmp/cache/assets/sprockets/v3.0/qg/qgPMbq-jLLkOOU6v_bha2-gennxABmzD7VgtTipyCH4.cache +0 -0
  510. data/test/dummy/tmp/cache/assets/sprockets/v3.0/qiOUPHWeAQEZQJH_-VjNgBrxP-2Ioy0-9zCphvRH_Ic.cache +1 -0
  511. data/test/dummy/tmp/cache/assets/sprockets/v3.0/qv/qvF1SHTuODTYf_3RaCJV-4wA2v1qfNohhGAGZi9T2b8.cache +3 -0
  512. data/test/dummy/tmp/cache/assets/sprockets/v3.0/qynyiTsy3Rk73s653HDcm3zzTGZToT53AOkVEqibYRs.cache +0 -0
  513. data/test/dummy/tmp/cache/assets/sprockets/v3.0/r9/r9WLArK_qc33abve35vaLpEozQLZXHZ0pdeCGCqNQcw.cache +0 -0
  514. data/test/dummy/tmp/cache/assets/sprockets/v3.0/rD/rDyM9n4spNIqb1YVfai-gwcB3BNXPS3paZ0sSDEvaHY.cache +0 -0
  515. data/test/dummy/tmp/cache/assets/sprockets/v3.0/rF/rFDMi1tUyCBS5ET6eRfUQz_7W0-WHLBWBmBXQTctZ7w.cache +0 -0
  516. data/test/dummy/tmp/cache/assets/sprockets/v3.0/rF/rFSrpxiquUzwfGUwmcdv7LPMopSnttT5ISZ_II3-4iw.cache +0 -0
  517. data/test/dummy/tmp/cache/assets/sprockets/v3.0/rFDMi1tUyCBS5ET6eRfUQz_7W0-WHLBWBmBXQTctZ7w.cache +0 -0
  518. data/test/dummy/tmp/cache/assets/sprockets/v3.0/rFSrpxiquUzwfGUwmcdv7LPMopSnttT5ISZ_II3-4iw.cache +0 -0
  519. data/test/dummy/tmp/cache/assets/sprockets/v3.0/rK/rKAvTGDc88MaRJPMEb90nEwk1C-gQnszU7_WDsFykn0.cache +0 -0
  520. data/test/dummy/tmp/cache/assets/sprockets/v3.0/rb/rbb9pTENCGP5Lfz025Lhjf6KPU98Nm01fee2q8ICJhQ.cache +0 -0
  521. data/test/dummy/tmp/cache/assets/sprockets/v3.0/rh/rhx3i5B4q9-2eYK7A4o0QM7iR7Ks_cy2RiEc6ElLYsM.cache +0 -0
  522. data/test/dummy/tmp/cache/assets/sprockets/v3.0/rqsMWTANUMbK88mBDTTjb_yvicx6itwaMn94zXiwE7M.cache +1 -0
  523. data/test/dummy/tmp/cache/assets/sprockets/v3.0/rse6em2JnRLA5PA3YKVhrwyH4hmSj-C0169PEc9xFy8.cache +1 -0
  524. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ryvSBxtH354KwlIwqbXXFPTxpiiAx3HmRhsv3_IPxIo.cache +1 -0
  525. data/test/dummy/tmp/cache/assets/sprockets/v3.0/s-/s-PJ5pJwlsK4aandGCOV8Fm22nlA2ehdKqb50Vd-HMA.cache +0 -0
  526. data/test/dummy/tmp/cache/assets/sprockets/v3.0/s-1Ib4q1CrURysYRTWhydD6BpW7q01GxzKsG5kBFzzI.cache +0 -0
  527. data/test/dummy/tmp/cache/assets/sprockets/v3.0/s4vqrEk0z1I6mGD-vO5Q_Z6byJjTu32SKobG8lqzZ60.cache +0 -0
  528. data/test/dummy/tmp/cache/assets/sprockets/v3.0/sE/sEJDrCQ_y52RkfNerI6e6939_vFcWpXjx7msDfvuBLg.cache +0 -0
  529. data/test/dummy/tmp/cache/assets/sprockets/v3.0/sR5KJrL9UZSOeoMH2HIbOkPCbS3_9NdcIuY3xSInixI.cache +1 -0
  530. data/test/dummy/tmp/cache/assets/sprockets/v3.0/si/siYMj7sHLlOQIEwPQUu0aAmJswCxyu2JDJhC0sfbQso.cache +0 -0
  531. data/test/dummy/tmp/cache/assets/sprockets/v3.0/slI0bDT70KdEI4M5WAQRMSRG30upinlgEnsY_-qr1Ps.cache +0 -0
  532. data/test/dummy/tmp/cache/assets/sprockets/v3.0/sz/sz8pxhD436Hw9mXV3VMRfJ71TyYIbHHbwjo3Mvkd0YM.cache +0 -0
  533. data/test/dummy/tmp/cache/assets/sprockets/v3.0/t25LohZhrHZ8Co0GwCl4ZXbL6SLLCRTOxwPrJddW_pQ.cache +0 -0
  534. data/test/dummy/tmp/cache/assets/sprockets/v3.0/t4/t4-GKh98KqUmpVPLwlLjP6k1oNRV6jkGUK8CRlE5QXA.cache +0 -0
  535. data/test/dummy/tmp/cache/assets/sprockets/v3.0/tH/tHq11m-HsyqE0k7WMzEv0hM7Zeae8T5L73VDPeOz74A.cache +1 -0
  536. data/test/dummy/tmp/cache/assets/sprockets/v3.0/tK/tK3WFmN2TrwHfZnptNvFcCNSIwIx4h4UWmQRfzUQbe8.cache +1 -0
  537. data/test/dummy/tmp/cache/assets/sprockets/v3.0/tP/tPMaZ5vz4p04_4nkAp1zqkF9ra7P746CPI-A1UXnpOI.cache +0 -0
  538. data/test/dummy/tmp/cache/assets/sprockets/v3.0/tS/tSS1NS_c653GbolyDQD-XhkmZ4SGPqYmY4VTBJvdCoc.cache +0 -0
  539. data/test/dummy/tmp/cache/assets/sprockets/v3.0/tSxnAbWuwQNA0NjFUxr_Zg14ToJ5Lfs8lsZZm2CCuMQ.cache +0 -0
  540. data/test/dummy/tmp/cache/assets/sprockets/v3.0/tW/tWqpKa_qkxXT3sUnVvHPiv58d5f1kAekX52PrRE00uI.cache +0 -0
  541. data/test/dummy/tmp/cache/assets/sprockets/v3.0/t_/t_0attclv3V1x6eRNEkIj_S8AQTdMdTIXGVysD3yUVs.cache +3 -0
  542. data/test/dummy/tmp/cache/assets/sprockets/v3.0/tb/tbG2etHScLDBt1FkAeqskSpUil6njzEiR0aCBpSV8Pw.cache +1 -0
  543. data/test/dummy/tmp/cache/assets/sprockets/v3.0/tek5THIk7Q4RUce3SMqr0XCveRxJrkJNXHjXXnJ-hsY.cache +0 -0
  544. data/test/dummy/tmp/cache/assets/sprockets/v3.0/tizxXxwazoTPLoZE8ICSiuu7UQB-HICmCmERylvgkxY.cache +1 -0
  545. data/test/dummy/tmp/cache/assets/sprockets/v3.0/tl/tl39N3f0uzM6bx-xLSUMzJ6BNYPtZBqHsLEK8rTa2wY.cache +0 -0
  546. data/test/dummy/tmp/cache/assets/sprockets/v3.0/tx/txWHakzbB0NmNH0ZQRTHGr4TdzD2vs03zqKsEJrzDuw.cache +1 -0
  547. data/test/dummy/tmp/cache/assets/sprockets/v3.0/u4FEbkUldHaaYG2Safcz4QTjnLnTfuHw9FApjyw76TI.cache +0 -0
  548. data/test/dummy/tmp/cache/assets/sprockets/v3.0/u8llh-HiL8572RbjKdhDemsqDVNAvPYIz-gAniDGW3Y.cache +1 -0
  549. data/test/dummy/tmp/cache/assets/sprockets/v3.0/uG/uGSZitt3vylQuFZ-HPivvJf1Y0mmGh_Xo643bx4zLJw.cache +0 -0
  550. data/test/dummy/tmp/cache/assets/sprockets/v3.0/uHQpxKKSkCJH9_L9uJVW4i1RvpgrocdFfCcKy-t-QAg.cache +0 -0
  551. data/test/dummy/tmp/cache/assets/sprockets/v3.0/uY/uY3zFZhlsxWUi87E2yb6XSbcYevxH0LawwPas57ugBs.cache +0 -0
  552. data/test/dummy/tmp/cache/assets/sprockets/v3.0/uY0rZgscoc3ROXbgdv0PVsL1palciQ5UlszICERLqBQ.cache +2 -0
  553. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ua_TcehEEYfPTYGHqwlGC2SFt7gcw0InpU4qjzPzWZc.cache +0 -0
  554. data/test/dummy/tmp/cache/assets/sprockets/v3.0/uw/uwOj3q_SYrVtvrlRbyPzbE32hiku_Jf52K3M1fk3lx8.cache +1 -0
  555. data/test/dummy/tmp/cache/assets/sprockets/v3.0/v-R2MGUcYWVPG2vatnh0O-kqcUStGbeWB6PSxQa4W44.cache +1 -0
  556. data/test/dummy/tmp/cache/assets/sprockets/v3.0/v9tZtV9WNOfncFO7HKkeTqPO-sQfik6azAvQ3Uk0izo.cache +0 -0
  557. data/test/dummy/tmp/cache/assets/sprockets/v3.0/vS0L0lfqxLNMdAUtkwnFYwJcH9KxYGZfc28GVm3cIc0.cache +0 -0
  558. data/test/dummy/tmp/cache/assets/sprockets/v3.0/vT/vT0tBMK_FUYq0CZalkoYp9Matu54tfl11M9Qm1wWTnk.cache +0 -0
  559. data/test/dummy/tmp/cache/assets/sprockets/v3.0/vWCpMX4rEN9aLq2dWWOJ3qof8w261OFX1GBAe4tu3x8.cache +1 -0
  560. data/test/dummy/tmp/cache/assets/sprockets/v3.0/vj/vjqo4NZN1W94hR-QIyK1StCShcLVIypmPbUgoLmjr-o.cache +0 -0
  561. data/test/dummy/tmp/cache/assets/sprockets/v3.0/w1ZjUoNzPR9asx4cgqG50KS1TrSBSWwWp7Yq0QM_YEo.cache +1 -0
  562. data/test/dummy/tmp/cache/assets/sprockets/v3.0/w4/w4_HmBzXyVYxgSdSP6W7wj550whrllNzowltHnTsDNY.cache +0 -0
  563. data/test/dummy/tmp/cache/assets/sprockets/v3.0/wNKdiQIIrcDscrE4zZeLEaf0IXj9ak5SeE4qaJuANY0.cache +1 -0
  564. data/test/dummy/tmp/cache/assets/sprockets/v3.0/wR/wRgYuwImbyTZSmnhjONNi9uDZZ8em7SRyxG3BScqWk0.cache +1 -0
  565. data/test/dummy/tmp/cache/assets/sprockets/v3.0/wS/wSe8Jz_GtqbI8kq0d3a0HT1t4rjEygS0Cs0xaeD8ONA.cache +0 -0
  566. data/test/dummy/tmp/cache/assets/sprockets/v3.0/wT/wTDnqLoUnAOcDu7THYoajIw8YA9ZKnqQW-fr7pEqAnI.cache +0 -0
  567. data/test/dummy/tmp/cache/assets/sprockets/v3.0/wTiVk562Cgr5uj76qz146YgrWHwZM6uTcbSOLuX4IAc.cache +0 -0
  568. data/test/dummy/tmp/cache/assets/sprockets/v3.0/wU/wUGc41kCFaxwL6jE-8YWBtRUo4vONTXE57zzrYXDXhc.cache +1 -0
  569. data/test/dummy/tmp/cache/assets/sprockets/v3.0/w_TnmDPe4VnPBK_pY16jNRvfm2Jt9gp8aALKBS6ZsvM.cache +0 -0
  570. data/test/dummy/tmp/cache/assets/sprockets/v3.0/wb/wbaYhXCRKB_Eq5u1JITvaxOmM_QvgFXCOvU9DUq-qOE.cache +1 -0
  571. data/test/dummy/tmp/cache/assets/sprockets/v3.0/wj/wjeh0w_yfdBO7D5GeO_LM7c2Ps04vnKxj8eTL8nyGU8.cache +1 -0
  572. data/test/dummy/tmp/cache/assets/sprockets/v3.0/wqX7ojndq_mQ2ejgYdsPAI37xCkvtR7HkVTgZjuqGng.cache +1 -0
  573. data/test/dummy/tmp/cache/assets/sprockets/v3.0/wx/wxRrFgbfF3OD2GXH7aGgwJq5hy648qmt1K7LZjcI9Qk.cache +1 -0
  574. data/test/dummy/tmp/cache/assets/sprockets/v3.0/x8XN1SFBQCWliO6FHCipgH5U_pu0SDl4Rb_gpG6m764.cache +1 -0
  575. data/test/dummy/tmp/cache/assets/sprockets/v3.0/xE1OaLecRV5xXN1DNznv_Lp9aKbqwEoJTZCfHl_KgqQ.cache +1 -0
  576. data/test/dummy/tmp/cache/assets/sprockets/v3.0/xFKT1knr_6nYNZg3ramWchkUbSmi5j3Ru8Y-zPMy68I.cache +1 -0
  577. data/test/dummy/tmp/cache/assets/sprockets/v3.0/xTH_0nKO6GnlqGrZ2rlY98pPwX_8-PYKR-fLyLB9Clw.cache +0 -0
  578. data/test/dummy/tmp/cache/assets/sprockets/v3.0/xXt_BS4oXQc84erZT8AjOuQY3bTFb03ckd0SzlKlFQI.cache +1 -0
  579. data/test/dummy/tmp/cache/assets/sprockets/v3.0/xh/xhlyLquI8CYQN9uQrIvPrTwRU6fLC81RU7cNnAa8TU0.cache +0 -0
  580. data/test/dummy/tmp/cache/assets/sprockets/v3.0/xkDIKCy2QKodt3-3TqW2H8vS5swmfunGLwgfm8MPYqM.cache +1 -0
  581. data/test/dummy/tmp/cache/assets/sprockets/v3.0/xlQeMzy32wF4GFYUI0K6YA-WOzGWdWL6yExLITyoDmk.cache +0 -0
  582. data/test/dummy/tmp/cache/assets/sprockets/v3.0/xuXY0ffIGyoCW-ePsWYu2NSnjGWurZ1JQ46HugV4I1U.cache +2 -0
  583. data/test/dummy/tmp/cache/assets/sprockets/v3.0/xzlVziuE1ZImKgV79OPaKkZDe9S_CJmhdy3Xbon5TkQ.cache +1 -0
  584. data/test/dummy/tmp/cache/assets/sprockets/v3.0/y9/y9m5zlFpBtCLT6OlzwhvdHxltzQblI3msUPeo8rRAWc.cache +1 -0
  585. data/test/dummy/tmp/cache/assets/sprockets/v3.0/yM6gg69eLY5HCy5qBOhC-ZKoTkFZF3xsi094Y8bc64k.cache +0 -0
  586. data/test/dummy/tmp/cache/assets/sprockets/v3.0/yd/ydSk-zTOTHP3RgADvlu8Bp8l1I7dCiFr9Ju89FBMVGw.cache +1 -0
  587. data/test/dummy/tmp/cache/assets/sprockets/v3.0/yhbKSU4pxvSvflurUhGtxa2Bf-SuW4kTuL5-6cpsBJo.cache +1 -0
  588. data/test/dummy/tmp/cache/assets/sprockets/v3.0/yk/ykytG_OcbU4noE15sRNBSuoVlX8MwT2n4xbxHPlUX3A.cache +0 -0
  589. data/test/dummy/tmp/cache/assets/sprockets/v3.0/yw/ywKUXHU6AonscdOH94Tyq3eh5wUbZUvQd4d253oHHgA.cache +3 -0
  590. data/test/dummy/tmp/cache/assets/sprockets/v3.0/z7cXoD_uCBncZakRWj4io0JwkrjQVTBkZYgNFOdwJyU.cache +0 -0
  591. data/test/dummy/tmp/cache/assets/sprockets/v3.0/zLoFSoYF8WcDJoXH6VGJjqFv53n0etuLTXOgXIx8IXA.cache +0 -0
  592. data/test/dummy/tmp/cache/assets/sprockets/v3.0/z_BMT6ZcB55i2KuobDH_O8mjNBQ7n7PBB5b6jqqcgyc.cache +0 -0
  593. data/test/dummy/tmp/cache/assets/sprockets/v3.0/zd/zdarW0NVOT-gwKlQAtwqh56M0kTNuwbdCH0RevwxEb4.cache +1 -0
  594. data/test/dummy/tmp/cache/assets/sprockets/v3.0/zh_JL-ScPcBV6JIDeNO-OVM_CDF3BVLJNDYpuwZOvhQ.cache +2 -0
  595. data/test/dummy/tmp/cache/assets/sprockets/v3.0/zo6KWXPy4SFFuaNHxbFscFfa3IR15UMdaoIiMF4LjM4.cache +2 -0
  596. data/test/dummy/tmp/cache/assets/sprockets/v3.0/zq0zdYWXk2TIxPwWLadAa5ZmfGwAadTs9cWmoB-ecPc.cache +1 -0
  597. data/test/dummy/tmp/cache/assets/sprockets/v3.0/zs/zsbxzssSW33AMBPwdA0D7ISy6ImHDmR7WdGQBlXoQzQ.cache +1 -0
  598. data/test/helpers/ndr_ui/bootstrap/dropdown_helper_test.rb +35 -0
  599. data/test/helpers/ndr_ui/bootstrap/modal_helper_test.rb +49 -0
  600. data/test/helpers/ndr_ui/bootstrap/panel_helper_test.rb +61 -0
  601. data/test/helpers/ndr_ui/bootstrap_helper_test.rb +299 -0
  602. data/test/helpers/ndr_ui/css_helper_test.rb +50 -0
  603. data/test/helpers/ndr_ui/timeago_helper_test.rb +67 -0
  604. data/test/integration/navigation_test.rb +7 -0
  605. data/test/models/post_test.rb +9 -0
  606. data/test/ndr_ui_test.rb +11 -0
  607. data/test/test_helper.rb +32 -0
  608. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/css/bootstrap-datepicker.css +474 -0
  609. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/css/bootstrap-datepicker.css.map +1 -0
  610. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/css/bootstrap-datepicker.min.css +9 -0
  611. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/css/bootstrap-datepicker.min.css.map +1 -0
  612. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/css/bootstrap-datepicker.standalone.css +507 -0
  613. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/css/bootstrap-datepicker.standalone.css.map +1 -0
  614. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/css/bootstrap-datepicker.standalone.min.css +9 -0
  615. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/css/bootstrap-datepicker.standalone.min.css.map +1 -0
  616. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/css/bootstrap-datepicker3.css +681 -0
  617. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/css/bootstrap-datepicker3.css.map +1 -0
  618. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/css/bootstrap-datepicker3.min.css +9 -0
  619. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/css/bootstrap-datepicker3.min.css.map +1 -0
  620. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/css/bootstrap-datepicker3.standalone.css +710 -0
  621. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/css/bootstrap-datepicker3.standalone.css.map +1 -0
  622. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/css/bootstrap-datepicker3.standalone.min.css +9 -0
  623. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/css/bootstrap-datepicker3.standalone.min.css.map +1 -0
  624. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/js/bootstrap-datepicker.js +2125 -0
  625. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/js/bootstrap-datepicker.min.js +9 -0
  626. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.ar.min.js +1 -0
  627. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.az.min.js +1 -0
  628. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.bg.min.js +1 -0
  629. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.bs.min.js +1 -0
  630. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.ca.min.js +1 -0
  631. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.cs.min.js +1 -0
  632. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.cy.min.js +1 -0
  633. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.da.min.js +1 -0
  634. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.de.min.js +1 -0
  635. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.el.min.js +1 -0
  636. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.en-AU.min.js +1 -0
  637. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.en-GB.min.js +1 -0
  638. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.eo.min.js +1 -0
  639. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.es.min.js +1 -0
  640. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.et.min.js +1 -0
  641. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.eu.min.js +1 -0
  642. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.fa.min.js +1 -0
  643. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.fi.min.js +1 -0
  644. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.fo.min.js +1 -0
  645. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.fr-CH.min.js +1 -0
  646. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.fr.min.js +1 -0
  647. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.gl.min.js +1 -0
  648. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.he.min.js +1 -0
  649. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.hr.min.js +1 -0
  650. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.hu.min.js +1 -0
  651. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.hy.min.js +1 -0
  652. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.id.min.js +1 -0
  653. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.is.min.js +1 -0
  654. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.it-CH.min.js +1 -0
  655. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.it.min.js +1 -0
  656. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.ja.min.js +1 -0
  657. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.ka.min.js +1 -0
  658. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.kh.min.js +1 -0
  659. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.kk.min.js +1 -0
  660. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.ko.min.js +1 -0
  661. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.kr.min.js +1 -0
  662. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.lt.min.js +1 -0
  663. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.lv.min.js +1 -0
  664. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.me.min.js +1 -0
  665. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.mk.min.js +1 -0
  666. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.mn.min.js +1 -0
  667. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.ms.min.js +1 -0
  668. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.nb.min.js +1 -0
  669. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.nl-BE.min.js +1 -0
  670. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.nl.min.js +1 -0
  671. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.no.min.js +1 -0
  672. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.pl.min.js +1 -0
  673. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.pt-BR.min.js +1 -0
  674. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.pt.min.js +1 -0
  675. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.ro.min.js +1 -0
  676. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.rs-latin.min.js +1 -0
  677. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.rs.min.js +1 -0
  678. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.ru.min.js +1 -0
  679. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.sk.min.js +1 -0
  680. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.sl.min.js +1 -0
  681. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.sq.min.js +1 -0
  682. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.sr-latin.min.js +1 -0
  683. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.sr.min.js +1 -0
  684. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.sv.min.js +1 -0
  685. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.sw.min.js +1 -0
  686. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.th.min.js +1 -0
  687. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.tr.min.js +1 -0
  688. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.uk.min.js +1 -0
  689. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.vi.min.js +1 -0
  690. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.zh-CN.min.js +1 -0
  691. data/vendor/assets/bootstrap-datepicker-1.6.0-dist/locales/bootstrap-datepicker.zh-TW.min.js +1 -0
  692. data/vendor/assets/jquery-timeago-1.5.3/jquery.timeago.js +229 -0
  693. data/vendor/assets/jquery-timeago-1.5.3/locales/README.md +27 -0
  694. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.af.js +20 -0
  695. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.ar.js +96 -0
  696. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.az-short.js +20 -0
  697. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.az.js +20 -0
  698. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.bg.js +18 -0
  699. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.bs.js +49 -0
  700. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.ca.js +18 -0
  701. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.cs.js +24 -0
  702. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.cy.js +20 -0
  703. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.da.js +18 -0
  704. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.de-short.js +20 -0
  705. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.de.js +18 -0
  706. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.dv.js +22 -0
  707. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.el.js +18 -0
  708. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.en-short.js +20 -0
  709. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.en.js +20 -0
  710. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.es-short.js +20 -0
  711. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.es.js +18 -0
  712. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.et.js +18 -0
  713. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.eu.js +17 -0
  714. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.fa-short.js +20 -0
  715. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.fa.js +22 -0
  716. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.fi.js +28 -0
  717. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.fr-short.js +16 -0
  718. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.fr.js +17 -0
  719. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.gl.js +18 -0
  720. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.he.js +16 -0
  721. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.hr.js +49 -0
  722. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.hu.js +18 -0
  723. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.hy.js +18 -0
  724. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.id.js +18 -0
  725. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.is.js +19 -0
  726. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.it-short.js +20 -0
  727. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.it.js +16 -0
  728. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.ja.js +19 -0
  729. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.jv.js +18 -0
  730. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.ko.js +20 -0
  731. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.ky.js +34 -0
  732. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.lt.js +20 -0
  733. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.lv.js +20 -0
  734. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.mk.js +20 -0
  735. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.nl.js +20 -0
  736. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.no.js +18 -0
  737. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.pl.js +31 -0
  738. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.pt-br-short.js +20 -0
  739. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.pt-br.js +18 -0
  740. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.pt-short.js +20 -0
  741. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.pt.js +16 -0
  742. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.ro.js +18 -0
  743. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.rs.js +49 -0
  744. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.ru.js +34 -0
  745. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.rw.js +20 -0
  746. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.si.js +18 -0
  747. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.sk.js +18 -0
  748. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.sl.js +40 -0
  749. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.sr.js +49 -0
  750. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.sv.js +18 -0
  751. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.th.js +20 -0
  752. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.tr-short.js +20 -0
  753. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.tr.js +16 -0
  754. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.uk.js +34 -0
  755. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.uz.js +19 -0
  756. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.vi.js +20 -0
  757. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.zh-CN.js +20 -0
  758. data/vendor/assets/jquery-timeago-1.5.3/locales/jquery.timeago.zh-TW.js +20 -0
  759. metadata +1532 -0
@@ -0,0 +1,2125 @@
1
+ /*!
2
+ * Datepicker for Bootstrap v1.6.0 (https://github.com/eternicode/bootstrap-datepicker)
3
+ *
4
+ * Copyright 2012 Stefan Petre
5
+ * Improvements by Andrew Rowls
6
+ * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)
7
+ */(function(factory){
8
+ if (typeof define === "function" && define.amd) {
9
+ define(["jquery"], factory);
10
+ } else if (typeof exports === 'object') {
11
+ factory(require('jquery'));
12
+ } else {
13
+ factory(jQuery);
14
+ }
15
+ }(function($, undefined){
16
+
17
+ function UTCDate(){
18
+ return new Date(Date.UTC.apply(Date, arguments));
19
+ }
20
+ function UTCToday(){
21
+ var today = new Date();
22
+ return UTCDate(today.getFullYear(), today.getMonth(), today.getDate());
23
+ }
24
+ function isUTCEquals(date1, date2) {
25
+ return (
26
+ date1.getUTCFullYear() === date2.getUTCFullYear() &&
27
+ date1.getUTCMonth() === date2.getUTCMonth() &&
28
+ date1.getUTCDate() === date2.getUTCDate()
29
+ );
30
+ }
31
+ function alias(method){
32
+ return function(){
33
+ return this[method].apply(this, arguments);
34
+ };
35
+ }
36
+ function isValidDate(d) {
37
+ return d && !isNaN(d.getTime());
38
+ }
39
+
40
+ var DateArray = (function(){
41
+ var extras = {
42
+ get: function(i){
43
+ return this.slice(i)[0];
44
+ },
45
+ contains: function(d){
46
+ // Array.indexOf is not cross-browser;
47
+ // $.inArray doesn't work with Dates
48
+ var val = d && d.valueOf();
49
+ for (var i=0, l=this.length; i < l; i++)
50
+ if (this[i].valueOf() === val)
51
+ return i;
52
+ return -1;
53
+ },
54
+ remove: function(i){
55
+ this.splice(i,1);
56
+ },
57
+ replace: function(new_array){
58
+ if (!new_array)
59
+ return;
60
+ if (!$.isArray(new_array))
61
+ new_array = [new_array];
62
+ this.clear();
63
+ this.push.apply(this, new_array);
64
+ },
65
+ clear: function(){
66
+ this.length = 0;
67
+ },
68
+ copy: function(){
69
+ var a = new DateArray();
70
+ a.replace(this);
71
+ return a;
72
+ }
73
+ };
74
+
75
+ return function(){
76
+ var a = [];
77
+ a.push.apply(a, arguments);
78
+ $.extend(a, extras);
79
+ return a;
80
+ };
81
+ })();
82
+
83
+
84
+ // Picker object
85
+
86
+ var Datepicker = function(element, options){
87
+ $(element).data('datepicker', this);
88
+ this._process_options(options);
89
+
90
+ this.dates = new DateArray();
91
+ this.viewDate = this.o.defaultViewDate;
92
+ this.focusDate = null;
93
+
94
+ this.element = $(element);
95
+ this.isInline = false;
96
+ this.isInput = this.element.is('input');
97
+ this.component = this.element.hasClass('date') ? this.element.find('.add-on, .input-group-addon, .btn') : false;
98
+ this.hasInput = this.component && this.element.find('input').length;
99
+ if (this.component && this.component.length === 0)
100
+ this.component = false;
101
+
102
+ this.picker = $(DPGlobal.template);
103
+
104
+ // Checking templates and inserting
105
+ if (this._check_template(this.o.templates.leftArrow)) {
106
+ this.picker.find('.prev').html(this.o.templates.leftArrow);
107
+ }
108
+ if (this._check_template(this.o.templates.rightArrow)) {
109
+ this.picker.find('.next').html(this.o.templates.rightArrow);
110
+ }
111
+
112
+ this._buildEvents();
113
+ this._attachEvents();
114
+
115
+ if (this.isInline){
116
+ this.picker.addClass('datepicker-inline').appendTo(this.element);
117
+ }
118
+ else {
119
+ this.picker.addClass('datepicker-dropdown dropdown-menu');
120
+ }
121
+
122
+ if (this.o.rtl){
123
+ this.picker.addClass('datepicker-rtl');
124
+ }
125
+
126
+ this.viewMode = this.o.startView;
127
+
128
+ if (this.o.calendarWeeks)
129
+ this.picker.find('thead .datepicker-title, tfoot .today, tfoot .clear')
130
+ .attr('colspan', function(i, val){
131
+ return parseInt(val) + 1;
132
+ });
133
+
134
+ this._allow_update = false;
135
+
136
+ this.setStartDate(this._o.startDate);
137
+ this.setEndDate(this._o.endDate);
138
+ this.setDaysOfWeekDisabled(this.o.daysOfWeekDisabled);
139
+ this.setDaysOfWeekHighlighted(this.o.daysOfWeekHighlighted);
140
+ this.setDatesDisabled(this.o.datesDisabled);
141
+
142
+ this.fillDow();
143
+ this.fillMonths();
144
+
145
+ this._allow_update = true;
146
+
147
+ this.update();
148
+ this.showMode();
149
+
150
+ if (this.isInline){
151
+ this.show();
152
+ }
153
+ };
154
+
155
+ Datepicker.prototype = {
156
+ constructor: Datepicker,
157
+
158
+ _resolveViewName: function(view, default_value){
159
+ if (view === 0 || view === 'days' || view === 'month') {
160
+ return 0;
161
+ }
162
+ if (view === 1 || view === 'months' || view === 'year') {
163
+ return 1;
164
+ }
165
+ if (view === 2 || view === 'years' || view === 'decade') {
166
+ return 2;
167
+ }
168
+ if (view === 3 || view === 'decades' || view === 'century') {
169
+ return 3;
170
+ }
171
+ if (view === 4 || view === 'centuries' || view === 'millennium') {
172
+ return 4;
173
+ }
174
+ return default_value === undefined ? false : default_value;
175
+ },
176
+
177
+ _check_template: function(tmp){
178
+ try {
179
+ // If empty
180
+ if (tmp === undefined || tmp === "") {
181
+ return false;
182
+ }
183
+ // If no html, everything ok
184
+ if ((tmp.match(/[<>]/g) || []).length <= 0) {
185
+ return true;
186
+ }
187
+ // Checking if html is fine
188
+ var jDom = $(tmp);
189
+ return jDom.length > 0;
190
+ }
191
+ catch (ex) {
192
+ return false;
193
+ }
194
+ },
195
+
196
+ _process_options: function(opts){
197
+ // Store raw options for reference
198
+ this._o = $.extend({}, this._o, opts);
199
+ // Processed options
200
+ var o = this.o = $.extend({}, this._o);
201
+
202
+ // Check if "de-DE" style date is available, if not language should
203
+ // fallback to 2 letter code eg "de"
204
+ var lang = o.language;
205
+ if (!dates[lang]){
206
+ lang = lang.split('-')[0];
207
+ if (!dates[lang])
208
+ lang = defaults.language;
209
+ }
210
+ o.language = lang;
211
+
212
+ // Retrieve view index from any aliases
213
+ o.startView = this._resolveViewName(o.startView, 0);
214
+ o.minViewMode = this._resolveViewName(o.minViewMode, 0);
215
+ o.maxViewMode = this._resolveViewName(o.maxViewMode, 4);
216
+
217
+ // Check that the start view is between min and max
218
+ o.startView = Math.min(o.startView, o.maxViewMode);
219
+ o.startView = Math.max(o.startView, o.minViewMode);
220
+
221
+ // true, false, or Number > 0
222
+ if (o.multidate !== true){
223
+ o.multidate = Number(o.multidate) || false;
224
+ if (o.multidate !== false)
225
+ o.multidate = Math.max(0, o.multidate);
226
+ }
227
+ o.multidateSeparator = String(o.multidateSeparator);
228
+
229
+ o.weekStart %= 7;
230
+ o.weekEnd = (o.weekStart + 6) % 7;
231
+
232
+ var format = DPGlobal.parseFormat(o.format);
233
+ if (o.startDate !== -Infinity){
234
+ if (!!o.startDate){
235
+ if (o.startDate instanceof Date)
236
+ o.startDate = this._local_to_utc(this._zero_time(o.startDate));
237
+ else
238
+ o.startDate = DPGlobal.parseDate(o.startDate, format, o.language, o.assumeNearbyYear);
239
+ }
240
+ else {
241
+ o.startDate = -Infinity;
242
+ }
243
+ }
244
+ if (o.endDate !== Infinity){
245
+ if (!!o.endDate){
246
+ if (o.endDate instanceof Date)
247
+ o.endDate = this._local_to_utc(this._zero_time(o.endDate));
248
+ else
249
+ o.endDate = DPGlobal.parseDate(o.endDate, format, o.language, o.assumeNearbyYear);
250
+ }
251
+ else {
252
+ o.endDate = Infinity;
253
+ }
254
+ }
255
+
256
+ o.daysOfWeekDisabled = o.daysOfWeekDisabled||[];
257
+ if (!$.isArray(o.daysOfWeekDisabled))
258
+ o.daysOfWeekDisabled = o.daysOfWeekDisabled.split(/[,\s]*/);
259
+ o.daysOfWeekDisabled = $.map(o.daysOfWeekDisabled, function(d){
260
+ return parseInt(d, 10);
261
+ });
262
+
263
+ o.daysOfWeekHighlighted = o.daysOfWeekHighlighted||[];
264
+ if (!$.isArray(o.daysOfWeekHighlighted))
265
+ o.daysOfWeekHighlighted = o.daysOfWeekHighlighted.split(/[,\s]*/);
266
+ o.daysOfWeekHighlighted = $.map(o.daysOfWeekHighlighted, function(d){
267
+ return parseInt(d, 10);
268
+ });
269
+
270
+ o.datesDisabled = o.datesDisabled||[];
271
+ if (!$.isArray(o.datesDisabled)) {
272
+ var datesDisabled = [];
273
+ datesDisabled.push(DPGlobal.parseDate(o.datesDisabled, format, o.language, o.assumeNearbyYear));
274
+ o.datesDisabled = datesDisabled;
275
+ }
276
+ o.datesDisabled = $.map(o.datesDisabled,function(d){
277
+ return DPGlobal.parseDate(d, format, o.language, o.assumeNearbyYear);
278
+ });
279
+
280
+ var plc = String(o.orientation).toLowerCase().split(/\s+/g),
281
+ _plc = o.orientation.toLowerCase();
282
+ plc = $.grep(plc, function(word){
283
+ return /^auto|left|right|top|bottom$/.test(word);
284
+ });
285
+ o.orientation = {x: 'auto', y: 'auto'};
286
+ if (!_plc || _plc === 'auto')
287
+ ; // no action
288
+ else if (plc.length === 1){
289
+ switch (plc[0]){
290
+ case 'top':
291
+ case 'bottom':
292
+ o.orientation.y = plc[0];
293
+ break;
294
+ case 'left':
295
+ case 'right':
296
+ o.orientation.x = plc[0];
297
+ break;
298
+ }
299
+ }
300
+ else {
301
+ _plc = $.grep(plc, function(word){
302
+ return /^left|right$/.test(word);
303
+ });
304
+ o.orientation.x = _plc[0] || 'auto';
305
+
306
+ _plc = $.grep(plc, function(word){
307
+ return /^top|bottom$/.test(word);
308
+ });
309
+ o.orientation.y = _plc[0] || 'auto';
310
+ }
311
+ if (o.defaultViewDate) {
312
+ var year = o.defaultViewDate.year || new Date().getFullYear();
313
+ var month = o.defaultViewDate.month || 0;
314
+ var day = o.defaultViewDate.day || 1;
315
+ o.defaultViewDate = UTCDate(year, month, day);
316
+ } else {
317
+ o.defaultViewDate = UTCToday();
318
+ }
319
+ },
320
+ _events: [],
321
+ _secondaryEvents: [],
322
+ _applyEvents: function(evs){
323
+ for (var i=0, el, ch, ev; i < evs.length; i++){
324
+ el = evs[i][0];
325
+ if (evs[i].length === 2){
326
+ ch = undefined;
327
+ ev = evs[i][1];
328
+ }
329
+ else if (evs[i].length === 3){
330
+ ch = evs[i][1];
331
+ ev = evs[i][2];
332
+ }
333
+ el.on(ev, ch);
334
+ }
335
+ },
336
+ _unapplyEvents: function(evs){
337
+ for (var i=0, el, ev, ch; i < evs.length; i++){
338
+ el = evs[i][0];
339
+ if (evs[i].length === 2){
340
+ ch = undefined;
341
+ ev = evs[i][1];
342
+ }
343
+ else if (evs[i].length === 3){
344
+ ch = evs[i][1];
345
+ ev = evs[i][2];
346
+ }
347
+ el.off(ev, ch);
348
+ }
349
+ },
350
+ _buildEvents: function(){
351
+ var events = {
352
+ keyup: $.proxy(function(e){
353
+ if ($.inArray(e.keyCode, [27, 37, 39, 38, 40, 32, 13, 9]) === -1)
354
+ this.update();
355
+ }, this),
356
+ keydown: $.proxy(this.keydown, this),
357
+ paste: $.proxy(this.paste, this)
358
+ };
359
+
360
+ if (this.o.showOnFocus === true) {
361
+ events.focus = $.proxy(this.show, this);
362
+ }
363
+
364
+ if (this.isInput) { // single input
365
+ this._events = [
366
+ [this.element, events]
367
+ ];
368
+ }
369
+ else if (this.component && this.hasInput) { // component: input + button
370
+ this._events = [
371
+ // For components that are not readonly, allow keyboard nav
372
+ [this.element.find('input'), events],
373
+ [this.component, {
374
+ click: $.proxy(this.show, this)
375
+ }]
376
+ ];
377
+ }
378
+ else if (this.element.is('div')){ // inline datepicker
379
+ this.isInline = true;
380
+ }
381
+ else {
382
+ this._events = [
383
+ [this.element, {
384
+ click: $.proxy(this.show, this)
385
+ }]
386
+ ];
387
+ }
388
+ this._events.push(
389
+ // Component: listen for blur on element descendants
390
+ [this.element, '*', {
391
+ blur: $.proxy(function(e){
392
+ this._focused_from = e.target;
393
+ }, this)
394
+ }],
395
+ // Input: listen for blur on element
396
+ [this.element, {
397
+ blur: $.proxy(function(e){
398
+ this._focused_from = e.target;
399
+ }, this)
400
+ }]
401
+ );
402
+
403
+ if (this.o.immediateUpdates) {
404
+ // Trigger input updates immediately on changed year/month
405
+ this._events.push([this.element, {
406
+ 'changeYear changeMonth': $.proxy(function(e){
407
+ this.update(e.date);
408
+ }, this)
409
+ }]);
410
+ }
411
+
412
+ this._secondaryEvents = [
413
+ [this.picker, {
414
+ click: $.proxy(this.click, this)
415
+ }],
416
+ [$(window), {
417
+ resize: $.proxy(this.place, this)
418
+ }],
419
+ [$(document), {
420
+ mousedown: $.proxy(function(e){
421
+ // Clicked outside the datepicker, hide it
422
+ if (!(
423
+ this.element.is(e.target) ||
424
+ this.element.find(e.target).length ||
425
+ this.picker.is(e.target) ||
426
+ this.picker.find(e.target).length ||
427
+ this.picker.hasClass('datepicker-inline')
428
+ )){
429
+ this.hide();
430
+ }
431
+ }, this)
432
+ }]
433
+ ];
434
+ },
435
+ _attachEvents: function(){
436
+ this._detachEvents();
437
+ this._applyEvents(this._events);
438
+ },
439
+ _detachEvents: function(){
440
+ this._unapplyEvents(this._events);
441
+ },
442
+ _attachSecondaryEvents: function(){
443
+ this._detachSecondaryEvents();
444
+ this._applyEvents(this._secondaryEvents);
445
+ },
446
+ _detachSecondaryEvents: function(){
447
+ this._unapplyEvents(this._secondaryEvents);
448
+ },
449
+ _trigger: function(event, altdate){
450
+ var date = altdate || this.dates.get(-1),
451
+ local_date = this._utc_to_local(date);
452
+
453
+ this.element.trigger({
454
+ type: event,
455
+ date: local_date,
456
+ dates: $.map(this.dates, this._utc_to_local),
457
+ format: $.proxy(function(ix, format){
458
+ if (arguments.length === 0){
459
+ ix = this.dates.length - 1;
460
+ format = this.o.format;
461
+ }
462
+ else if (typeof ix === 'string'){
463
+ format = ix;
464
+ ix = this.dates.length - 1;
465
+ }
466
+ format = format || this.o.format;
467
+ var date = this.dates.get(ix);
468
+ return DPGlobal.formatDate(date, format, this.o.language);
469
+ }, this)
470
+ });
471
+ },
472
+
473
+ show: function(){
474
+ var element = this.component ? this.element.find('input') : this.element;
475
+ if (element.attr('readonly') && this.o.enableOnReadonly === false)
476
+ return;
477
+ if (!this.isInline)
478
+ this.picker.appendTo(this.o.container);
479
+ this.place();
480
+ this.picker.show();
481
+ this._attachSecondaryEvents();
482
+ this._trigger('show');
483
+ if ((window.navigator.msMaxTouchPoints || 'ontouchstart' in document) && this.o.disableTouchKeyboard) {
484
+ $(this.element).blur();
485
+ }
486
+ return this;
487
+ },
488
+
489
+ hide: function(){
490
+ if (this.isInline)
491
+ return this;
492
+ if (!this.picker.is(':visible'))
493
+ return this;
494
+ this.focusDate = null;
495
+ this.picker.hide().detach();
496
+ this._detachSecondaryEvents();
497
+ this.viewMode = this.o.startView;
498
+ this.showMode();
499
+
500
+ if (
501
+ this.o.forceParse &&
502
+ (
503
+ this.isInput && this.element.val() ||
504
+ this.hasInput && this.element.find('input').val()
505
+ )
506
+ )
507
+ this.setValue();
508
+ this._trigger('hide');
509
+ return this;
510
+ },
511
+
512
+ destroy: function(){
513
+ this.hide();
514
+ this._detachEvents();
515
+ this._detachSecondaryEvents();
516
+ this.picker.remove();
517
+ delete this.element.data().datepicker;
518
+ if (!this.isInput){
519
+ delete this.element.data().date;
520
+ }
521
+ return this;
522
+ },
523
+
524
+ paste: function(evt){
525
+ var dateString;
526
+ if (evt.originalEvent.clipboardData && evt.originalEvent.clipboardData.types
527
+ && $.inArray('text/plain', evt.originalEvent.clipboardData.types) !== -1) {
528
+ dateString = evt.originalEvent.clipboardData.getData('text/plain');
529
+ }
530
+ else if (window.clipboardData) {
531
+ dateString = window.clipboardData.getData('Text');
532
+ }
533
+ else {
534
+ return;
535
+ }
536
+ this.setDate(dateString);
537
+ this.update();
538
+ evt.preventDefault();
539
+ },
540
+
541
+ _utc_to_local: function(utc){
542
+ return utc && new Date(utc.getTime() + (utc.getTimezoneOffset()*60000));
543
+ },
544
+ _local_to_utc: function(local){
545
+ return local && new Date(local.getTime() - (local.getTimezoneOffset()*60000));
546
+ },
547
+ _zero_time: function(local){
548
+ return local && new Date(local.getFullYear(), local.getMonth(), local.getDate());
549
+ },
550
+ _zero_utc_time: function(utc){
551
+ return utc && new Date(Date.UTC(utc.getUTCFullYear(), utc.getUTCMonth(), utc.getUTCDate()));
552
+ },
553
+
554
+ getDates: function(){
555
+ return $.map(this.dates, this._utc_to_local);
556
+ },
557
+
558
+ getUTCDates: function(){
559
+ return $.map(this.dates, function(d){
560
+ return new Date(d);
561
+ });
562
+ },
563
+
564
+ getDate: function(){
565
+ return this._utc_to_local(this.getUTCDate());
566
+ },
567
+
568
+ getUTCDate: function(){
569
+ var selected_date = this.dates.get(-1);
570
+ if (typeof selected_date !== 'undefined') {
571
+ return new Date(selected_date);
572
+ } else {
573
+ return null;
574
+ }
575
+ },
576
+
577
+ clearDates: function(){
578
+ var element;
579
+ if (this.isInput) {
580
+ element = this.element;
581
+ } else if (this.component) {
582
+ element = this.element.find('input');
583
+ }
584
+
585
+ if (element) {
586
+ element.val('');
587
+ }
588
+
589
+ this.update();
590
+ this._trigger('changeDate');
591
+
592
+ if (this.o.autoclose) {
593
+ this.hide();
594
+ }
595
+ },
596
+ setDates: function(){
597
+ var args = $.isArray(arguments[0]) ? arguments[0] : arguments;
598
+ this.update.apply(this, args);
599
+ this._trigger('changeDate');
600
+ this.setValue();
601
+ return this;
602
+ },
603
+
604
+ setUTCDates: function(){
605
+ var args = $.isArray(arguments[0]) ? arguments[0] : arguments;
606
+ this.update.apply(this, $.map(args, this._utc_to_local));
607
+ this._trigger('changeDate');
608
+ this.setValue();
609
+ return this;
610
+ },
611
+
612
+ setDate: alias('setDates'),
613
+ setUTCDate: alias('setUTCDates'),
614
+ remove: alias('destroy'),
615
+
616
+ setValue: function(){
617
+ var formatted = this.getFormattedDate();
618
+ if (!this.isInput){
619
+ if (this.component){
620
+ this.element.find('input').val(formatted);
621
+ }
622
+ }
623
+ else {
624
+ this.element.val(formatted);
625
+ }
626
+ return this;
627
+ },
628
+
629
+ getFormattedDate: function(format){
630
+ if (format === undefined)
631
+ format = this.o.format;
632
+
633
+ var lang = this.o.language;
634
+ return $.map(this.dates, function(d){
635
+ return DPGlobal.formatDate(d, format, lang);
636
+ }).join(this.o.multidateSeparator);
637
+ },
638
+
639
+ getStartDate: function(){
640
+ return this.o.startDate;
641
+ },
642
+
643
+ setStartDate: function(startDate){
644
+ this._process_options({startDate: startDate});
645
+ this.update();
646
+ this.updateNavArrows();
647
+ return this;
648
+ },
649
+
650
+ getEndDate: function(){
651
+ return this.o.endDate;
652
+ },
653
+
654
+ setEndDate: function(endDate){
655
+ this._process_options({endDate: endDate});
656
+ this.update();
657
+ this.updateNavArrows();
658
+ return this;
659
+ },
660
+
661
+ setDaysOfWeekDisabled: function(daysOfWeekDisabled){
662
+ this._process_options({daysOfWeekDisabled: daysOfWeekDisabled});
663
+ this.update();
664
+ this.updateNavArrows();
665
+ return this;
666
+ },
667
+
668
+ setDaysOfWeekHighlighted: function(daysOfWeekHighlighted){
669
+ this._process_options({daysOfWeekHighlighted: daysOfWeekHighlighted});
670
+ this.update();
671
+ return this;
672
+ },
673
+
674
+ setDatesDisabled: function(datesDisabled){
675
+ this._process_options({datesDisabled: datesDisabled});
676
+ this.update();
677
+ this.updateNavArrows();
678
+ },
679
+
680
+ place: function(){
681
+ if (this.isInline)
682
+ return this;
683
+ var calendarWidth = this.picker.outerWidth(),
684
+ calendarHeight = this.picker.outerHeight(),
685
+ visualPadding = 10,
686
+ container = $(this.o.container),
687
+ windowWidth = container.width(),
688
+ scrollTop = this.o.container === 'body' ? $(document).scrollTop() : container.scrollTop(),
689
+ appendOffset = container.offset();
690
+
691
+ var parentsZindex = [];
692
+ this.element.parents().each(function(){
693
+ var itemZIndex = $(this).css('z-index');
694
+ if (itemZIndex !== 'auto' && itemZIndex !== 0) parentsZindex.push(parseInt(itemZIndex));
695
+ });
696
+ var zIndex = Math.max.apply(Math, parentsZindex) + this.o.zIndexOffset;
697
+ var offset = this.component ? this.component.parent().offset() : this.element.offset();
698
+ var height = this.component ? this.component.outerHeight(true) : this.element.outerHeight(false);
699
+ var width = this.component ? this.component.outerWidth(true) : this.element.outerWidth(false);
700
+ var left = offset.left - appendOffset.left,
701
+ top = offset.top - appendOffset.top;
702
+
703
+ if (this.o.container !== 'body') {
704
+ top += scrollTop;
705
+ }
706
+
707
+ this.picker.removeClass(
708
+ 'datepicker-orient-top datepicker-orient-bottom '+
709
+ 'datepicker-orient-right datepicker-orient-left'
710
+ );
711
+
712
+ if (this.o.orientation.x !== 'auto'){
713
+ this.picker.addClass('datepicker-orient-' + this.o.orientation.x);
714
+ if (this.o.orientation.x === 'right')
715
+ left -= calendarWidth - width;
716
+ }
717
+ // auto x orientation is best-placement: if it crosses a window
718
+ // edge, fudge it sideways
719
+ else {
720
+ if (offset.left < 0) {
721
+ // component is outside the window on the left side. Move it into visible range
722
+ this.picker.addClass('datepicker-orient-left');
723
+ left -= offset.left - visualPadding;
724
+ } else if (left + calendarWidth > windowWidth) {
725
+ // the calendar passes the widow right edge. Align it to component right side
726
+ this.picker.addClass('datepicker-orient-right');
727
+ left += width - calendarWidth;
728
+ } else {
729
+ // Default to left
730
+ this.picker.addClass('datepicker-orient-left');
731
+ }
732
+ }
733
+
734
+ // auto y orientation is best-situation: top or bottom, no fudging,
735
+ // decision based on which shows more of the calendar
736
+ var yorient = this.o.orientation.y,
737
+ top_overflow;
738
+ if (yorient === 'auto'){
739
+ top_overflow = -scrollTop + top - calendarHeight;
740
+ yorient = top_overflow < 0 ? 'bottom' : 'top';
741
+ }
742
+
743
+ this.picker.addClass('datepicker-orient-' + yorient);
744
+ if (yorient === 'top')
745
+ top -= calendarHeight + parseInt(this.picker.css('padding-top'));
746
+ else
747
+ top += height;
748
+
749
+ if (this.o.rtl) {
750
+ var right = windowWidth - (left + width);
751
+ this.picker.css({
752
+ top: top,
753
+ right: right,
754
+ zIndex: zIndex
755
+ });
756
+ } else {
757
+ this.picker.css({
758
+ top: top,
759
+ left: left,
760
+ zIndex: zIndex
761
+ });
762
+ }
763
+ return this;
764
+ },
765
+
766
+ _allow_update: true,
767
+ update: function(){
768
+ if (!this._allow_update)
769
+ return this;
770
+
771
+ var oldDates = this.dates.copy(),
772
+ dates = [],
773
+ fromArgs = false;
774
+ if (arguments.length){
775
+ $.each(arguments, $.proxy(function(i, date){
776
+ if (date instanceof Date)
777
+ date = this._local_to_utc(date);
778
+ dates.push(date);
779
+ }, this));
780
+ fromArgs = true;
781
+ }
782
+ else {
783
+ dates = this.isInput
784
+ ? this.element.val()
785
+ : this.element.data('date') || this.element.find('input').val();
786
+ if (dates && this.o.multidate)
787
+ dates = dates.split(this.o.multidateSeparator);
788
+ else
789
+ dates = [dates];
790
+ delete this.element.data().date;
791
+ }
792
+
793
+ dates = $.map(dates, $.proxy(function(date){
794
+ return DPGlobal.parseDate(date, this.o.format, this.o.language, this.o.assumeNearbyYear);
795
+ }, this));
796
+ dates = $.grep(dates, $.proxy(function(date){
797
+ return (
798
+ !this.dateWithinRange(date) ||
799
+ !date
800
+ );
801
+ }, this), true);
802
+ this.dates.replace(dates);
803
+
804
+ if (this.dates.length)
805
+ this.viewDate = new Date(this.dates.get(-1));
806
+ else if (this.viewDate < this.o.startDate)
807
+ this.viewDate = new Date(this.o.startDate);
808
+ else if (this.viewDate > this.o.endDate)
809
+ this.viewDate = new Date(this.o.endDate);
810
+ else
811
+ this.viewDate = this.o.defaultViewDate;
812
+
813
+ if (fromArgs){
814
+ // setting date by clicking
815
+ this.setValue();
816
+ }
817
+ else if (dates.length){
818
+ // setting date by typing
819
+ if (String(oldDates) !== String(this.dates))
820
+ this._trigger('changeDate');
821
+ }
822
+ if (!this.dates.length && oldDates.length)
823
+ this._trigger('clearDate');
824
+
825
+ this.fill();
826
+ this.element.change();
827
+ return this;
828
+ },
829
+
830
+ fillDow: function(){
831
+ var dowCnt = this.o.weekStart,
832
+ html = '<tr>';
833
+ if (this.o.calendarWeeks){
834
+ this.picker.find('.datepicker-days .datepicker-switch')
835
+ .attr('colspan', function(i, val){
836
+ return parseInt(val) + 1;
837
+ });
838
+ html += '<th class="cw">&#160;</th>';
839
+ }
840
+ while (dowCnt < this.o.weekStart + 7){
841
+ html += '<th class="dow';
842
+ if ($.inArray(dowCnt, this.o.daysOfWeekDisabled) > -1)
843
+ html += ' disabled';
844
+ html += '">'+dates[this.o.language].daysMin[(dowCnt++)%7]+'</th>';
845
+ }
846
+ html += '</tr>';
847
+ this.picker.find('.datepicker-days thead').append(html);
848
+ },
849
+
850
+ fillMonths: function(){
851
+ var localDate = this._utc_to_local(this.viewDate);
852
+ var html = '',
853
+ i = 0;
854
+ while (i < 12){
855
+ var focused = localDate && localDate.getMonth() === i ? ' focused' : '';
856
+ html += '<span class="month' + focused + '">' + dates[this.o.language].monthsShort[i++]+'</span>';
857
+ }
858
+ this.picker.find('.datepicker-months td').html(html);
859
+ },
860
+
861
+ setRange: function(range){
862
+ if (!range || !range.length)
863
+ delete this.range;
864
+ else
865
+ this.range = $.map(range, function(d){
866
+ return d.valueOf();
867
+ });
868
+ this.fill();
869
+ },
870
+
871
+ getClassNames: function(date){
872
+ var cls = [],
873
+ year = this.viewDate.getUTCFullYear(),
874
+ month = this.viewDate.getUTCMonth(),
875
+ today = new Date();
876
+ if (date.getUTCFullYear() < year || (date.getUTCFullYear() === year && date.getUTCMonth() < month)){
877
+ cls.push('old');
878
+ }
879
+ else if (date.getUTCFullYear() > year || (date.getUTCFullYear() === year && date.getUTCMonth() > month)){
880
+ cls.push('new');
881
+ }
882
+ if (this.focusDate && date.valueOf() === this.focusDate.valueOf())
883
+ cls.push('focused');
884
+ // Compare internal UTC date with local today, not UTC today
885
+ if (this.o.todayHighlight &&
886
+ date.getUTCFullYear() === today.getFullYear() &&
887
+ date.getUTCMonth() === today.getMonth() &&
888
+ date.getUTCDate() === today.getDate()){
889
+ cls.push('today');
890
+ }
891
+ if (this.dates.contains(date) !== -1)
892
+ cls.push('active');
893
+ if (!this.dateWithinRange(date) || this.dateIsDisabled(date)){
894
+ cls.push('disabled');
895
+ }
896
+ if ($.inArray(date.getUTCDay(), this.o.daysOfWeekHighlighted) !== -1){
897
+ cls.push('highlighted');
898
+ }
899
+
900
+ if (this.range){
901
+ if (date > this.range[0] && date < this.range[this.range.length-1]){
902
+ cls.push('range');
903
+ }
904
+ if ($.inArray(date.valueOf(), this.range) !== -1){
905
+ cls.push('selected');
906
+ }
907
+ if (date.valueOf() === this.range[0]){
908
+ cls.push('range-start');
909
+ }
910
+ if (date.valueOf() === this.range[this.range.length-1]){
911
+ cls.push('range-end');
912
+ }
913
+ }
914
+ return cls;
915
+ },
916
+
917
+ _fill_yearsView: function(selector, cssClass, factor, step, currentYear, startYear, endYear, callback){
918
+ var html, view, year, steps, startStep, endStep, thisYear, i, classes, tooltip, before;
919
+
920
+ html = '';
921
+ view = this.picker.find(selector);
922
+ year = parseInt(currentYear / factor, 10) * factor;
923
+ startStep = parseInt(startYear / step, 10) * step;
924
+ endStep = parseInt(endYear / step, 10) * step;
925
+ steps = $.map(this.dates, function(d){
926
+ return parseInt(d.getUTCFullYear() / step, 10) * step;
927
+ });
928
+
929
+ view.find('.datepicker-switch').text(year + '-' + (year + step * 9));
930
+
931
+ thisYear = year - step;
932
+ for (i = -1; i < 11; i += 1) {
933
+ classes = [cssClass];
934
+ tooltip = null;
935
+
936
+ if (i === -1) {
937
+ classes.push('old');
938
+ } else if (i === 10) {
939
+ classes.push('new');
940
+ }
941
+ if ($.inArray(thisYear, steps) !== -1) {
942
+ classes.push('active');
943
+ }
944
+ if (thisYear < startStep || thisYear > endStep) {
945
+ classes.push('disabled');
946
+ }
947
+ if (thisYear === this.viewDate.getFullYear()) {
948
+ classes.push('focused');
949
+ }
950
+
951
+ if (callback !== $.noop) {
952
+ before = callback(new Date(thisYear, 0, 1));
953
+ if (before === undefined) {
954
+ before = {};
955
+ } else if (typeof(before) === 'boolean') {
956
+ before = {enabled: before};
957
+ } else if (typeof(before) === 'string') {
958
+ before = {classes: before};
959
+ }
960
+ if (before.enabled === false) {
961
+ classes.push('disabled');
962
+ }
963
+ if (before.classes) {
964
+ classes = classes.concat(before.classes.split(/\s+/));
965
+ }
966
+ if (before.tooltip) {
967
+ tooltip = before.tooltip;
968
+ }
969
+ }
970
+
971
+ html += '<span class="' + classes.join(' ') + '"' + (tooltip ? ' title="' + tooltip + '"' : '') + '>' + thisYear + '</span>';
972
+ thisYear += step;
973
+ }
974
+ view.find('td').html(html);
975
+ },
976
+
977
+ fill: function(){
978
+ var d = new Date(this.viewDate),
979
+ year = d.getUTCFullYear(),
980
+ month = d.getUTCMonth(),
981
+ startYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity,
982
+ startMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity,
983
+ endYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity,
984
+ endMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity,
985
+ todaytxt = dates[this.o.language].today || dates['en'].today || '',
986
+ cleartxt = dates[this.o.language].clear || dates['en'].clear || '',
987
+ titleFormat = dates[this.o.language].titleFormat || dates['en'].titleFormat,
988
+ tooltip,
989
+ before;
990
+ if (isNaN(year) || isNaN(month))
991
+ return;
992
+ this.picker.find('.datepicker-days .datepicker-switch')
993
+ .text(DPGlobal.formatDate(d, titleFormat, this.o.language));
994
+ this.picker.find('tfoot .today')
995
+ .text(todaytxt)
996
+ .toggle(this.o.todayBtn !== false);
997
+ this.picker.find('tfoot .clear')
998
+ .text(cleartxt)
999
+ .toggle(this.o.clearBtn !== false);
1000
+ this.picker.find('thead .datepicker-title')
1001
+ .text(this.o.title)
1002
+ .toggle(this.o.title !== '');
1003
+ this.updateNavArrows();
1004
+ this.fillMonths();
1005
+ var prevMonth = UTCDate(year, month-1, 28),
1006
+ day = DPGlobal.getDaysInMonth(prevMonth.getUTCFullYear(), prevMonth.getUTCMonth());
1007
+ prevMonth.setUTCDate(day);
1008
+ prevMonth.setUTCDate(day - (prevMonth.getUTCDay() - this.o.weekStart + 7)%7);
1009
+ var nextMonth = new Date(prevMonth);
1010
+ if (prevMonth.getUTCFullYear() < 100){
1011
+ nextMonth.setUTCFullYear(prevMonth.getUTCFullYear());
1012
+ }
1013
+ nextMonth.setUTCDate(nextMonth.getUTCDate() + 42);
1014
+ nextMonth = nextMonth.valueOf();
1015
+ var html = [];
1016
+ var clsName;
1017
+ while (prevMonth.valueOf() < nextMonth){
1018
+ if (prevMonth.getUTCDay() === this.o.weekStart){
1019
+ html.push('<tr>');
1020
+ if (this.o.calendarWeeks){
1021
+ // ISO 8601: First week contains first thursday.
1022
+ // ISO also states week starts on Monday, but we can be more abstract here.
1023
+ var
1024
+ // Start of current week: based on weekstart/current date
1025
+ ws = new Date(+prevMonth + (this.o.weekStart - prevMonth.getUTCDay() - 7) % 7 * 864e5),
1026
+ // Thursday of this week
1027
+ th = new Date(Number(ws) + (7 + 4 - ws.getUTCDay()) % 7 * 864e5),
1028
+ // First Thursday of year, year from thursday
1029
+ yth = new Date(Number(yth = UTCDate(th.getUTCFullYear(), 0, 1)) + (7 + 4 - yth.getUTCDay())%7*864e5),
1030
+ // Calendar week: ms between thursdays, div ms per day, div 7 days
1031
+ calWeek = (th - yth) / 864e5 / 7 + 1;
1032
+ html.push('<td class="cw">'+ calWeek +'</td>');
1033
+
1034
+ }
1035
+ }
1036
+ clsName = this.getClassNames(prevMonth);
1037
+ clsName.push('day');
1038
+
1039
+ if (this.o.beforeShowDay !== $.noop){
1040
+ before = this.o.beforeShowDay(this._utc_to_local(prevMonth));
1041
+ if (before === undefined)
1042
+ before = {};
1043
+ else if (typeof(before) === 'boolean')
1044
+ before = {enabled: before};
1045
+ else if (typeof(before) === 'string')
1046
+ before = {classes: before};
1047
+ if (before.enabled === false)
1048
+ clsName.push('disabled');
1049
+ if (before.classes)
1050
+ clsName = clsName.concat(before.classes.split(/\s+/));
1051
+ if (before.tooltip)
1052
+ tooltip = before.tooltip;
1053
+ }
1054
+
1055
+ clsName = $.unique(clsName);
1056
+ html.push('<td class="'+clsName.join(' ')+'"' + (tooltip ? ' title="'+tooltip+'"' : '') + '>'+prevMonth.getUTCDate() + '</td>');
1057
+ tooltip = null;
1058
+ if (prevMonth.getUTCDay() === this.o.weekEnd){
1059
+ html.push('</tr>');
1060
+ }
1061
+ prevMonth.setUTCDate(prevMonth.getUTCDate()+1);
1062
+ }
1063
+ this.picker.find('.datepicker-days tbody').empty().append(html.join(''));
1064
+
1065
+ var monthsTitle = dates[this.o.language].monthsTitle || dates['en'].monthsTitle || 'Months';
1066
+ var months = this.picker.find('.datepicker-months')
1067
+ .find('.datepicker-switch')
1068
+ .text(this.o.maxViewMode < 2 ? monthsTitle : year)
1069
+ .end()
1070
+ .find('span').removeClass('active');
1071
+
1072
+ $.each(this.dates, function(i, d){
1073
+ if (d.getUTCFullYear() === year)
1074
+ months.eq(d.getUTCMonth()).addClass('active');
1075
+ });
1076
+
1077
+ if (year < startYear || year > endYear){
1078
+ months.addClass('disabled');
1079
+ }
1080
+ if (year === startYear){
1081
+ months.slice(0, startMonth).addClass('disabled');
1082
+ }
1083
+ if (year === endYear){
1084
+ months.slice(endMonth+1).addClass('disabled');
1085
+ }
1086
+
1087
+ if (this.o.beforeShowMonth !== $.noop){
1088
+ var that = this;
1089
+ $.each(months, function(i, month){
1090
+ var moDate = new Date(year, i, 1);
1091
+ var before = that.o.beforeShowMonth(moDate);
1092
+ if (before === undefined)
1093
+ before = {};
1094
+ else if (typeof(before) === 'boolean')
1095
+ before = {enabled: before};
1096
+ else if (typeof(before) === 'string')
1097
+ before = {classes: before};
1098
+ if (before.enabled === false && !$(month).hasClass('disabled'))
1099
+ $(month).addClass('disabled');
1100
+ if (before.classes)
1101
+ $(month).addClass(before.classes);
1102
+ if (before.tooltip)
1103
+ $(month).prop('title', before.tooltip);
1104
+ });
1105
+ }
1106
+
1107
+ // Generating decade/years picker
1108
+ this._fill_yearsView(
1109
+ '.datepicker-years',
1110
+ 'year',
1111
+ 10,
1112
+ 1,
1113
+ year,
1114
+ startYear,
1115
+ endYear,
1116
+ this.o.beforeShowYear
1117
+ );
1118
+
1119
+ // Generating century/decades picker
1120
+ this._fill_yearsView(
1121
+ '.datepicker-decades',
1122
+ 'decade',
1123
+ 100,
1124
+ 10,
1125
+ year,
1126
+ startYear,
1127
+ endYear,
1128
+ this.o.beforeShowDecade
1129
+ );
1130
+
1131
+ // Generating millennium/centuries picker
1132
+ this._fill_yearsView(
1133
+ '.datepicker-centuries',
1134
+ 'century',
1135
+ 1000,
1136
+ 100,
1137
+ year,
1138
+ startYear,
1139
+ endYear,
1140
+ this.o.beforeShowCentury
1141
+ );
1142
+ },
1143
+
1144
+ updateNavArrows: function(){
1145
+ if (!this._allow_update)
1146
+ return;
1147
+
1148
+ var d = new Date(this.viewDate),
1149
+ year = d.getUTCFullYear(),
1150
+ month = d.getUTCMonth();
1151
+ switch (this.viewMode){
1152
+ case 0:
1153
+ if (this.o.startDate !== -Infinity && year <= this.o.startDate.getUTCFullYear() && month <= this.o.startDate.getUTCMonth()){
1154
+ this.picker.find('.prev').css({visibility: 'hidden'});
1155
+ }
1156
+ else {
1157
+ this.picker.find('.prev').css({visibility: 'visible'});
1158
+ }
1159
+ if (this.o.endDate !== Infinity && year >= this.o.endDate.getUTCFullYear() && month >= this.o.endDate.getUTCMonth()){
1160
+ this.picker.find('.next').css({visibility: 'hidden'});
1161
+ }
1162
+ else {
1163
+ this.picker.find('.next').css({visibility: 'visible'});
1164
+ }
1165
+ break;
1166
+ case 1:
1167
+ case 2:
1168
+ case 3:
1169
+ case 4:
1170
+ if (this.o.startDate !== -Infinity && year <= this.o.startDate.getUTCFullYear() || this.o.maxViewMode < 2){
1171
+ this.picker.find('.prev').css({visibility: 'hidden'});
1172
+ }
1173
+ else {
1174
+ this.picker.find('.prev').css({visibility: 'visible'});
1175
+ }
1176
+ if (this.o.endDate !== Infinity && year >= this.o.endDate.getUTCFullYear() || this.o.maxViewMode < 2){
1177
+ this.picker.find('.next').css({visibility: 'hidden'});
1178
+ }
1179
+ else {
1180
+ this.picker.find('.next').css({visibility: 'visible'});
1181
+ }
1182
+ break;
1183
+ }
1184
+ },
1185
+
1186
+ click: function(e){
1187
+ e.preventDefault();
1188
+ e.stopPropagation();
1189
+
1190
+ var target, dir, day, year, month, monthChanged, yearChanged;
1191
+ target = $(e.target);
1192
+
1193
+ // Clicked on the switch
1194
+ if (target.hasClass('datepicker-switch')){
1195
+ this.showMode(1);
1196
+ }
1197
+
1198
+ // Clicked on prev or next
1199
+ var navArrow = target.closest('.prev, .next');
1200
+ if (navArrow.length > 0) {
1201
+ dir = DPGlobal.modes[this.viewMode].navStep * (navArrow.hasClass('prev') ? -1 : 1);
1202
+ if (this.viewMode === 0){
1203
+ this.viewDate = this.moveMonth(this.viewDate, dir);
1204
+ this._trigger('changeMonth', this.viewDate);
1205
+ } else {
1206
+ this.viewDate = this.moveYear(this.viewDate, dir);
1207
+ if (this.viewMode === 1){
1208
+ this._trigger('changeYear', this.viewDate);
1209
+ }
1210
+ }
1211
+ this.fill();
1212
+ }
1213
+
1214
+ // Clicked on today button
1215
+ if (target.hasClass('today')){
1216
+ this.showMode(-2);
1217
+ this._setDate(UTCToday(), this.o.todayBtn === 'linked' ? null : 'view');
1218
+ }
1219
+
1220
+ // Clicked on clear button
1221
+ if (target.hasClass('clear')){
1222
+ this.clearDates();
1223
+ }
1224
+
1225
+ if (!target.hasClass('disabled')){
1226
+ // Clicked on a day
1227
+ if (target.hasClass('day')){
1228
+ day = parseInt(target.text(), 10) || 1;
1229
+ year = this.viewDate.getUTCFullYear();
1230
+ month = this.viewDate.getUTCMonth();
1231
+
1232
+ // From last month
1233
+ if (target.hasClass('old')){
1234
+ if (month === 0) {
1235
+ month = 11;
1236
+ year = year - 1;
1237
+ monthChanged = true;
1238
+ yearChanged = true;
1239
+ } else {
1240
+ month = month - 1;
1241
+ monthChanged = true;
1242
+ }
1243
+ }
1244
+
1245
+ // From next month
1246
+ if (target.hasClass('new')) {
1247
+ if (month === 11){
1248
+ month = 0;
1249
+ year = year + 1;
1250
+ monthChanged = true;
1251
+ yearChanged = true;
1252
+ } else {
1253
+ month = month + 1;
1254
+ monthChanged = true;
1255
+ }
1256
+ }
1257
+ this._setDate(UTCDate(year, month, day));
1258
+ if (yearChanged) {
1259
+ this._trigger('changeYear', this.viewDate);
1260
+ }
1261
+ if (monthChanged) {
1262
+ this._trigger('changeMonth', this.viewDate);
1263
+ }
1264
+ }
1265
+
1266
+ // Clicked on a month
1267
+ if (target.hasClass('month')) {
1268
+ this.viewDate.setUTCDate(1);
1269
+ day = 1;
1270
+ month = target.parent().find('span').index(target);
1271
+ year = this.viewDate.getUTCFullYear();
1272
+ this.viewDate.setUTCMonth(month);
1273
+ this._trigger('changeMonth', this.viewDate);
1274
+ if (this.o.minViewMode === 1){
1275
+ this._setDate(UTCDate(year, month, day));
1276
+ this.showMode();
1277
+ } else {
1278
+ this.showMode(-1);
1279
+ }
1280
+ this.fill();
1281
+ }
1282
+
1283
+ // Clicked on a year
1284
+ if (target.hasClass('year')
1285
+ || target.hasClass('decade')
1286
+ || target.hasClass('century')) {
1287
+ this.viewDate.setUTCDate(1);
1288
+
1289
+ day = 1;
1290
+ month = 0;
1291
+ year = parseInt(target.text(), 10)||0;
1292
+ this.viewDate.setUTCFullYear(year);
1293
+
1294
+ if (target.hasClass('year')){
1295
+ this._trigger('changeYear', this.viewDate);
1296
+ if (this.o.minViewMode === 2){
1297
+ this._setDate(UTCDate(year, month, day));
1298
+ }
1299
+ }
1300
+ if (target.hasClass('decade')){
1301
+ this._trigger('changeDecade', this.viewDate);
1302
+ if (this.o.minViewMode === 3){
1303
+ this._setDate(UTCDate(year, month, day));
1304
+ }
1305
+ }
1306
+ if (target.hasClass('century')){
1307
+ this._trigger('changeCentury', this.viewDate);
1308
+ if (this.o.minViewMode === 4){
1309
+ this._setDate(UTCDate(year, month, day));
1310
+ }
1311
+ }
1312
+
1313
+ this.showMode(-1);
1314
+ this.fill();
1315
+ }
1316
+ }
1317
+
1318
+ if (this.picker.is(':visible') && this._focused_from){
1319
+ $(this._focused_from).focus();
1320
+ }
1321
+ delete this._focused_from;
1322
+ },
1323
+
1324
+ _toggle_multidate: function(date){
1325
+ var ix = this.dates.contains(date);
1326
+ if (!date){
1327
+ this.dates.clear();
1328
+ }
1329
+
1330
+ if (ix !== -1){
1331
+ if (this.o.multidate === true || this.o.multidate > 1 || this.o.toggleActive){
1332
+ this.dates.remove(ix);
1333
+ }
1334
+ } else if (this.o.multidate === false) {
1335
+ this.dates.clear();
1336
+ this.dates.push(date);
1337
+ }
1338
+ else {
1339
+ this.dates.push(date);
1340
+ }
1341
+
1342
+ if (typeof this.o.multidate === 'number')
1343
+ while (this.dates.length > this.o.multidate)
1344
+ this.dates.remove(0);
1345
+ },
1346
+
1347
+ _setDate: function(date, which){
1348
+ if (!which || which === 'date')
1349
+ this._toggle_multidate(date && new Date(date));
1350
+ if (!which || which === 'view')
1351
+ this.viewDate = date && new Date(date);
1352
+
1353
+ this.fill();
1354
+ this.setValue();
1355
+ if (!which || which !== 'view') {
1356
+ this._trigger('changeDate');
1357
+ }
1358
+ var element;
1359
+ if (this.isInput){
1360
+ element = this.element;
1361
+ }
1362
+ else if (this.component){
1363
+ element = this.element.find('input');
1364
+ }
1365
+ if (element){
1366
+ element.change();
1367
+ }
1368
+ if (this.o.autoclose && (!which || which === 'date')){
1369
+ this.hide();
1370
+ }
1371
+ },
1372
+
1373
+ moveDay: function(date, dir){
1374
+ var newDate = new Date(date);
1375
+ newDate.setUTCDate(date.getUTCDate() + dir);
1376
+
1377
+ return newDate;
1378
+ },
1379
+
1380
+ moveWeek: function(date, dir){
1381
+ return this.moveDay(date, dir * 7);
1382
+ },
1383
+
1384
+ moveMonth: function(date, dir){
1385
+ if (!isValidDate(date))
1386
+ return this.o.defaultViewDate;
1387
+ if (!dir)
1388
+ return date;
1389
+ var new_date = new Date(date.valueOf()),
1390
+ day = new_date.getUTCDate(),
1391
+ month = new_date.getUTCMonth(),
1392
+ mag = Math.abs(dir),
1393
+ new_month, test;
1394
+ dir = dir > 0 ? 1 : -1;
1395
+ if (mag === 1){
1396
+ test = dir === -1
1397
+ // If going back one month, make sure month is not current month
1398
+ // (eg, Mar 31 -> Feb 31 == Feb 28, not Mar 02)
1399
+ ? function(){
1400
+ return new_date.getUTCMonth() === month;
1401
+ }
1402
+ // If going forward one month, make sure month is as expected
1403
+ // (eg, Jan 31 -> Feb 31 == Feb 28, not Mar 02)
1404
+ : function(){
1405
+ return new_date.getUTCMonth() !== new_month;
1406
+ };
1407
+ new_month = month + dir;
1408
+ new_date.setUTCMonth(new_month);
1409
+ // Dec -> Jan (12) or Jan -> Dec (-1) -- limit expected date to 0-11
1410
+ if (new_month < 0 || new_month > 11)
1411
+ new_month = (new_month + 12) % 12;
1412
+ }
1413
+ else {
1414
+ // For magnitudes >1, move one month at a time...
1415
+ for (var i=0; i < mag; i++)
1416
+ // ...which might decrease the day (eg, Jan 31 to Feb 28, etc)...
1417
+ new_date = this.moveMonth(new_date, dir);
1418
+ // ...then reset the day, keeping it in the new month
1419
+ new_month = new_date.getUTCMonth();
1420
+ new_date.setUTCDate(day);
1421
+ test = function(){
1422
+ return new_month !== new_date.getUTCMonth();
1423
+ };
1424
+ }
1425
+ // Common date-resetting loop -- if date is beyond end of month, make it
1426
+ // end of month
1427
+ while (test()){
1428
+ new_date.setUTCDate(--day);
1429
+ new_date.setUTCMonth(new_month);
1430
+ }
1431
+ return new_date;
1432
+ },
1433
+
1434
+ moveYear: function(date, dir){
1435
+ return this.moveMonth(date, dir*12);
1436
+ },
1437
+
1438
+ moveAvailableDate: function(date, dir, fn){
1439
+ do {
1440
+ date = this[fn](date, dir);
1441
+
1442
+ if (!this.dateWithinRange(date))
1443
+ return false;
1444
+
1445
+ fn = 'moveDay';
1446
+ }
1447
+ while (this.dateIsDisabled(date));
1448
+
1449
+ return date;
1450
+ },
1451
+
1452
+ weekOfDateIsDisabled: function(date){
1453
+ return $.inArray(date.getUTCDay(), this.o.daysOfWeekDisabled) !== -1;
1454
+ },
1455
+
1456
+ dateIsDisabled: function(date){
1457
+ return (
1458
+ this.weekOfDateIsDisabled(date) ||
1459
+ $.grep(this.o.datesDisabled, function(d){
1460
+ return isUTCEquals(date, d);
1461
+ }).length > 0
1462
+ );
1463
+ },
1464
+
1465
+ dateWithinRange: function(date){
1466
+ return date >= this.o.startDate && date <= this.o.endDate;
1467
+ },
1468
+
1469
+ keydown: function(e){
1470
+ if (!this.picker.is(':visible')){
1471
+ if (e.keyCode === 40 || e.keyCode === 27) { // allow down to re-show picker
1472
+ this.show();
1473
+ e.stopPropagation();
1474
+ }
1475
+ return;
1476
+ }
1477
+ var dateChanged = false,
1478
+ dir, newViewDate,
1479
+ focusDate = this.focusDate || this.viewDate;
1480
+ switch (e.keyCode){
1481
+ case 27: // escape
1482
+ if (this.focusDate){
1483
+ this.focusDate = null;
1484
+ this.viewDate = this.dates.get(-1) || this.viewDate;
1485
+ this.fill();
1486
+ }
1487
+ else
1488
+ this.hide();
1489
+ e.preventDefault();
1490
+ e.stopPropagation();
1491
+ break;
1492
+ case 37: // left
1493
+ case 38: // up
1494
+ case 39: // right
1495
+ case 40: // down
1496
+ if (!this.o.keyboardNavigation || this.o.daysOfWeekDisabled.length === 7)
1497
+ break;
1498
+ dir = e.keyCode === 37 || e.keyCode === 38 ? -1 : 1;
1499
+ if (this.viewMode === 0) {
1500
+ if (e.ctrlKey){
1501
+ newViewDate = this.moveAvailableDate(focusDate, dir, 'moveYear');
1502
+
1503
+ if (newViewDate)
1504
+ this._trigger('changeYear', this.viewDate);
1505
+ }
1506
+ else if (e.shiftKey){
1507
+ newViewDate = this.moveAvailableDate(focusDate, dir, 'moveMonth');
1508
+
1509
+ if (newViewDate)
1510
+ this._trigger('changeMonth', this.viewDate);
1511
+ }
1512
+ else if (e.keyCode === 37 || e.keyCode === 39){
1513
+ newViewDate = this.moveAvailableDate(focusDate, dir, 'moveDay');
1514
+ }
1515
+ else if (!this.weekOfDateIsDisabled(focusDate)){
1516
+ newViewDate = this.moveAvailableDate(focusDate, dir, 'moveWeek');
1517
+ }
1518
+ } else if (this.viewMode === 1) {
1519
+ if (e.keyCode === 38 || e.keyCode === 40) {
1520
+ dir = dir * 4;
1521
+ }
1522
+ newViewDate = this.moveAvailableDate(focusDate, dir, 'moveMonth');
1523
+ } else if (this.viewMode === 2) {
1524
+ if (e.keyCode === 38 || e.keyCode === 40) {
1525
+ dir = dir * 4;
1526
+ }
1527
+ newViewDate = this.moveAvailableDate(focusDate, dir, 'moveYear');
1528
+ }
1529
+ if (newViewDate){
1530
+ this.focusDate = this.viewDate = newViewDate;
1531
+ this.setValue();
1532
+ this.fill();
1533
+ e.preventDefault();
1534
+ }
1535
+ break;
1536
+ case 13: // enter
1537
+ if (!this.o.forceParse)
1538
+ break;
1539
+ focusDate = this.focusDate || this.dates.get(-1) || this.viewDate;
1540
+ if (this.o.keyboardNavigation) {
1541
+ this._toggle_multidate(focusDate);
1542
+ dateChanged = true;
1543
+ }
1544
+ this.focusDate = null;
1545
+ this.viewDate = this.dates.get(-1) || this.viewDate;
1546
+ this.setValue();
1547
+ this.fill();
1548
+ if (this.picker.is(':visible')){
1549
+ e.preventDefault();
1550
+ e.stopPropagation();
1551
+ if (this.o.autoclose)
1552
+ this.hide();
1553
+ }
1554
+ break;
1555
+ case 9: // tab
1556
+ this.focusDate = null;
1557
+ this.viewDate = this.dates.get(-1) || this.viewDate;
1558
+ this.fill();
1559
+ this.hide();
1560
+ break;
1561
+ }
1562
+ if (dateChanged){
1563
+ if (this.dates.length)
1564
+ this._trigger('changeDate');
1565
+ else
1566
+ this._trigger('clearDate');
1567
+ var element;
1568
+ if (this.isInput){
1569
+ element = this.element;
1570
+ }
1571
+ else if (this.component){
1572
+ element = this.element.find('input');
1573
+ }
1574
+ if (element){
1575
+ element.change();
1576
+ }
1577
+ }
1578
+ },
1579
+
1580
+ showMode: function(dir){
1581
+ if (dir){
1582
+ this.viewMode = Math.max(this.o.minViewMode, Math.min(this.o.maxViewMode, this.viewMode + dir));
1583
+ }
1584
+ this.picker
1585
+ .children('div')
1586
+ .hide()
1587
+ .filter('.datepicker-' + DPGlobal.modes[this.viewMode].clsName)
1588
+ .show();
1589
+ this.updateNavArrows();
1590
+ }
1591
+ };
1592
+
1593
+ var DateRangePicker = function(element, options){
1594
+ $(element).data('datepicker', this);
1595
+ this.element = $(element);
1596
+ this.inputs = $.map(options.inputs, function(i){
1597
+ return i.jquery ? i[0] : i;
1598
+ });
1599
+ delete options.inputs;
1600
+
1601
+ datepickerPlugin.call($(this.inputs), options)
1602
+ .on('changeDate', $.proxy(this.dateUpdated, this));
1603
+
1604
+ this.pickers = $.map(this.inputs, function(i){
1605
+ return $(i).data('datepicker');
1606
+ });
1607
+ this.updateDates();
1608
+ };
1609
+ DateRangePicker.prototype = {
1610
+ updateDates: function(){
1611
+ this.dates = $.map(this.pickers, function(i){
1612
+ return i.getUTCDate();
1613
+ });
1614
+ this.updateRanges();
1615
+ },
1616
+ updateRanges: function(){
1617
+ var range = $.map(this.dates, function(d){
1618
+ return d.valueOf();
1619
+ });
1620
+ $.each(this.pickers, function(i, p){
1621
+ p.setRange(range);
1622
+ });
1623
+ },
1624
+ dateUpdated: function(e){
1625
+ // `this.updating` is a workaround for preventing infinite recursion
1626
+ // between `changeDate` triggering and `setUTCDate` calling. Until
1627
+ // there is a better mechanism.
1628
+ if (this.updating)
1629
+ return;
1630
+ this.updating = true;
1631
+
1632
+ var dp = $(e.target).data('datepicker');
1633
+
1634
+ if (typeof(dp) === "undefined") {
1635
+ return;
1636
+ }
1637
+
1638
+ var new_date = dp.getUTCDate(),
1639
+ i = $.inArray(e.target, this.inputs),
1640
+ j = i - 1,
1641
+ k = i + 1,
1642
+ l = this.inputs.length;
1643
+ if (i === -1)
1644
+ return;
1645
+
1646
+ $.each(this.pickers, function(i, p){
1647
+ if (!p.getUTCDate())
1648
+ p.setUTCDate(new_date);
1649
+ });
1650
+
1651
+ if (new_date < this.dates[j]){
1652
+ // Date being moved earlier/left
1653
+ while (j >= 0 && new_date < this.dates[j]){
1654
+ this.pickers[j--].setUTCDate(new_date);
1655
+ }
1656
+ }
1657
+ else if (new_date > this.dates[k]){
1658
+ // Date being moved later/right
1659
+ while (k < l && new_date > this.dates[k]){
1660
+ this.pickers[k++].setUTCDate(new_date);
1661
+ }
1662
+ }
1663
+ this.updateDates();
1664
+
1665
+ delete this.updating;
1666
+ },
1667
+ remove: function(){
1668
+ $.map(this.pickers, function(p){ p.remove(); });
1669
+ delete this.element.data().datepicker;
1670
+ }
1671
+ };
1672
+
1673
+ function opts_from_el(el, prefix){
1674
+ // Derive options from element data-attrs
1675
+ var data = $(el).data(),
1676
+ out = {}, inkey,
1677
+ replace = new RegExp('^' + prefix.toLowerCase() + '([A-Z])');
1678
+ prefix = new RegExp('^' + prefix.toLowerCase());
1679
+ function re_lower(_,a){
1680
+ return a.toLowerCase();
1681
+ }
1682
+ for (var key in data)
1683
+ if (prefix.test(key)){
1684
+ inkey = key.replace(replace, re_lower);
1685
+ out[inkey] = data[key];
1686
+ }
1687
+ return out;
1688
+ }
1689
+
1690
+ function opts_from_locale(lang){
1691
+ // Derive options from locale plugins
1692
+ var out = {};
1693
+ // Check if "de-DE" style date is available, if not language should
1694
+ // fallback to 2 letter code eg "de"
1695
+ if (!dates[lang]){
1696
+ lang = lang.split('-')[0];
1697
+ if (!dates[lang])
1698
+ return;
1699
+ }
1700
+ var d = dates[lang];
1701
+ $.each(locale_opts, function(i,k){
1702
+ if (k in d)
1703
+ out[k] = d[k];
1704
+ });
1705
+ return out;
1706
+ }
1707
+
1708
+ var old = $.fn.datepicker;
1709
+ var datepickerPlugin = function(option){
1710
+ var args = Array.apply(null, arguments);
1711
+ args.shift();
1712
+ var internal_return;
1713
+ this.each(function(){
1714
+ var $this = $(this),
1715
+ data = $this.data('datepicker'),
1716
+ options = typeof option === 'object' && option;
1717
+ if (!data){
1718
+ var elopts = opts_from_el(this, 'date'),
1719
+ // Preliminary otions
1720
+ xopts = $.extend({}, defaults, elopts, options),
1721
+ locopts = opts_from_locale(xopts.language),
1722
+ // Options priority: js args, data-attrs, locales, defaults
1723
+ opts = $.extend({}, defaults, locopts, elopts, options);
1724
+ if ($this.hasClass('input-daterange') || opts.inputs){
1725
+ $.extend(opts, {
1726
+ inputs: opts.inputs || $this.find('input').toArray()
1727
+ });
1728
+ data = new DateRangePicker(this, opts);
1729
+ }
1730
+ else {
1731
+ data = new Datepicker(this, opts);
1732
+ }
1733
+ $this.data('datepicker', data);
1734
+ }
1735
+ if (typeof option === 'string' && typeof data[option] === 'function'){
1736
+ internal_return = data[option].apply(data, args);
1737
+ }
1738
+ });
1739
+
1740
+ if (
1741
+ internal_return === undefined ||
1742
+ internal_return instanceof Datepicker ||
1743
+ internal_return instanceof DateRangePicker
1744
+ )
1745
+ return this;
1746
+
1747
+ if (this.length > 1)
1748
+ throw new Error('Using only allowed for the collection of a single element (' + option + ' function)');
1749
+ else
1750
+ return internal_return;
1751
+ };
1752
+ $.fn.datepicker = datepickerPlugin;
1753
+
1754
+ var defaults = $.fn.datepicker.defaults = {
1755
+ assumeNearbyYear: false,
1756
+ autoclose: false,
1757
+ beforeShowDay: $.noop,
1758
+ beforeShowMonth: $.noop,
1759
+ beforeShowYear: $.noop,
1760
+ beforeShowDecade: $.noop,
1761
+ beforeShowCentury: $.noop,
1762
+ calendarWeeks: false,
1763
+ clearBtn: false,
1764
+ toggleActive: false,
1765
+ daysOfWeekDisabled: [],
1766
+ daysOfWeekHighlighted: [],
1767
+ datesDisabled: [],
1768
+ endDate: Infinity,
1769
+ forceParse: true,
1770
+ format: 'mm/dd/yyyy',
1771
+ keyboardNavigation: true,
1772
+ language: 'en',
1773
+ minViewMode: 0,
1774
+ maxViewMode: 4,
1775
+ multidate: false,
1776
+ multidateSeparator: ',',
1777
+ orientation: "auto",
1778
+ rtl: false,
1779
+ startDate: -Infinity,
1780
+ startView: 0,
1781
+ todayBtn: false,
1782
+ todayHighlight: false,
1783
+ weekStart: 0,
1784
+ disableTouchKeyboard: false,
1785
+ enableOnReadonly: true,
1786
+ showOnFocus: true,
1787
+ zIndexOffset: 10,
1788
+ container: 'body',
1789
+ immediateUpdates: false,
1790
+ title: '',
1791
+ templates: {
1792
+ leftArrow: '&laquo;',
1793
+ rightArrow: '&raquo;'
1794
+ }
1795
+ };
1796
+ var locale_opts = $.fn.datepicker.locale_opts = [
1797
+ 'format',
1798
+ 'rtl',
1799
+ 'weekStart'
1800
+ ];
1801
+ $.fn.datepicker.Constructor = Datepicker;
1802
+ var dates = $.fn.datepicker.dates = {
1803
+ en: {
1804
+ days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
1805
+ daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
1806
+ daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
1807
+ months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
1808
+ monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
1809
+ today: "Today",
1810
+ clear: "Clear",
1811
+ titleFormat: "MM yyyy"
1812
+ }
1813
+ };
1814
+
1815
+ var DPGlobal = {
1816
+ modes: [
1817
+ {
1818
+ clsName: 'days',
1819
+ navFnc: 'Month',
1820
+ navStep: 1
1821
+ },
1822
+ {
1823
+ clsName: 'months',
1824
+ navFnc: 'FullYear',
1825
+ navStep: 1
1826
+ },
1827
+ {
1828
+ clsName: 'years',
1829
+ navFnc: 'FullYear',
1830
+ navStep: 10
1831
+ },
1832
+ {
1833
+ clsName: 'decades',
1834
+ navFnc: 'FullDecade',
1835
+ navStep: 100
1836
+ },
1837
+ {
1838
+ clsName: 'centuries',
1839
+ navFnc: 'FullCentury',
1840
+ navStep: 1000
1841
+ }],
1842
+ isLeapYear: function(year){
1843
+ return (((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0));
1844
+ },
1845
+ getDaysInMonth: function(year, month){
1846
+ return [31, (DPGlobal.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];
1847
+ },
1848
+ validParts: /dd?|DD?|mm?|MM?|yy(?:yy)?/g,
1849
+ nonpunctuation: /[^ -\/:-@\u5e74\u6708\u65e5\[-`{-~\t\n\r]+/g,
1850
+ parseFormat: function(format){
1851
+ if (typeof format.toValue === 'function' && typeof format.toDisplay === 'function')
1852
+ return format;
1853
+ // IE treats \0 as a string end in inputs (truncating the value),
1854
+ // so it's a bad format delimiter, anyway
1855
+ var separators = format.replace(this.validParts, '\0').split('\0'),
1856
+ parts = format.match(this.validParts);
1857
+ if (!separators || !separators.length || !parts || parts.length === 0){
1858
+ throw new Error("Invalid date format.");
1859
+ }
1860
+ return {separators: separators, parts: parts};
1861
+ },
1862
+ parseDate: function(date, format, language, assumeNearby){
1863
+ if (!date)
1864
+ return undefined;
1865
+ if (date instanceof Date)
1866
+ return date;
1867
+ if (typeof format === 'string')
1868
+ format = DPGlobal.parseFormat(format);
1869
+ if (format.toValue)
1870
+ return format.toValue(date, format, language);
1871
+ var part_re = /([\-+]\d+)([dmwy])/,
1872
+ parts = date.match(/([\-+]\d+)([dmwy])/g),
1873
+ fn_map = {
1874
+ d: 'moveDay',
1875
+ m: 'moveMonth',
1876
+ w: 'moveWeek',
1877
+ y: 'moveYear'
1878
+ },
1879
+ dateAliases = {
1880
+ yesterday: '-1d',
1881
+ today: '+0d',
1882
+ tomorrow: '+1d'
1883
+ },
1884
+ part, dir, i, fn;
1885
+ if (/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/.test(date)){
1886
+ date = new Date();
1887
+ for (i=0; i < parts.length; i++){
1888
+ part = part_re.exec(parts[i]);
1889
+ dir = parseInt(part[1]);
1890
+ fn = fn_map[part[2]];
1891
+ date = Datepicker.prototype[fn](date, dir);
1892
+ }
1893
+ return UTCDate(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());
1894
+ }
1895
+
1896
+ if (typeof dateAliases[date] !== 'undefined') {
1897
+ date = dateAliases[date];
1898
+ parts = date.match(/([\-+]\d+)([dmwy])/g);
1899
+
1900
+ if (/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/.test(date)){
1901
+ date = new Date();
1902
+ for (i=0; i < parts.length; i++){
1903
+ part = part_re.exec(parts[i]);
1904
+ dir = parseInt(part[1]);
1905
+ fn = fn_map[part[2]];
1906
+ date = Datepicker.prototype[fn](date, dir);
1907
+ }
1908
+
1909
+ return UTCDate(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());
1910
+ }
1911
+ }
1912
+
1913
+ parts = date && date.match(this.nonpunctuation) || [];
1914
+ date = new Date();
1915
+
1916
+ function applyNearbyYear(year, threshold){
1917
+ if (threshold === true)
1918
+ threshold = 10;
1919
+
1920
+ // if year is 2 digits or less, than the user most likely is trying to get a recent century
1921
+ if (year < 100){
1922
+ year += 2000;
1923
+ // if the new year is more than threshold years in advance, use last century
1924
+ if (year > ((new Date()).getFullYear()+threshold)){
1925
+ year -= 100;
1926
+ }
1927
+ }
1928
+
1929
+ return year;
1930
+ }
1931
+
1932
+ var parsed = {},
1933
+ setters_order = ['yyyy', 'yy', 'M', 'MM', 'm', 'mm', 'd', 'dd'],
1934
+ setters_map = {
1935
+ yyyy: function(d,v){
1936
+ return d.setUTCFullYear(assumeNearby ? applyNearbyYear(v, assumeNearby) : v);
1937
+ },
1938
+ yy: function(d,v){
1939
+ return d.setUTCFullYear(assumeNearby ? applyNearbyYear(v, assumeNearby) : v);
1940
+ },
1941
+ m: function(d,v){
1942
+ if (isNaN(d))
1943
+ return d;
1944
+ v -= 1;
1945
+ while (v < 0) v += 12;
1946
+ v %= 12;
1947
+ d.setUTCMonth(v);
1948
+ while (d.getUTCMonth() !== v)
1949
+ d.setUTCDate(d.getUTCDate()-1);
1950
+ return d;
1951
+ },
1952
+ d: function(d,v){
1953
+ return d.setUTCDate(v);
1954
+ }
1955
+ },
1956
+ val, filtered;
1957
+ setters_map['M'] = setters_map['MM'] = setters_map['mm'] = setters_map['m'];
1958
+ setters_map['dd'] = setters_map['d'];
1959
+ date = UTCToday();
1960
+ var fparts = format.parts.slice();
1961
+ // Remove noop parts
1962
+ if (parts.length !== fparts.length){
1963
+ fparts = $(fparts).filter(function(i,p){
1964
+ return $.inArray(p, setters_order) !== -1;
1965
+ }).toArray();
1966
+ }
1967
+ // Process remainder
1968
+ function match_part(){
1969
+ var m = this.slice(0, parts[i].length),
1970
+ p = parts[i].slice(0, m.length);
1971
+ return m.toLowerCase() === p.toLowerCase();
1972
+ }
1973
+ if (parts.length === fparts.length){
1974
+ var cnt;
1975
+ for (i=0, cnt = fparts.length; i < cnt; i++){
1976
+ val = parseInt(parts[i], 10);
1977
+ part = fparts[i];
1978
+ if (isNaN(val)){
1979
+ switch (part){
1980
+ case 'MM':
1981
+ filtered = $(dates[language].months).filter(match_part);
1982
+ val = $.inArray(filtered[0], dates[language].months) + 1;
1983
+ break;
1984
+ case 'M':
1985
+ filtered = $(dates[language].monthsShort).filter(match_part);
1986
+ val = $.inArray(filtered[0], dates[language].monthsShort) + 1;
1987
+ break;
1988
+ }
1989
+ }
1990
+ parsed[part] = val;
1991
+ }
1992
+ var _date, s;
1993
+ for (i=0; i < setters_order.length; i++){
1994
+ s = setters_order[i];
1995
+ if (s in parsed && !isNaN(parsed[s])){
1996
+ _date = new Date(date);
1997
+ setters_map[s](_date, parsed[s]);
1998
+ if (!isNaN(_date))
1999
+ date = _date;
2000
+ }
2001
+ }
2002
+ }
2003
+ return date;
2004
+ },
2005
+ formatDate: function(date, format, language){
2006
+ if (!date)
2007
+ return '';
2008
+ if (typeof format === 'string')
2009
+ format = DPGlobal.parseFormat(format);
2010
+ if (format.toDisplay)
2011
+ return format.toDisplay(date, format, language);
2012
+ var val = {
2013
+ d: date.getUTCDate(),
2014
+ D: dates[language].daysShort[date.getUTCDay()],
2015
+ DD: dates[language].days[date.getUTCDay()],
2016
+ m: date.getUTCMonth() + 1,
2017
+ M: dates[language].monthsShort[date.getUTCMonth()],
2018
+ MM: dates[language].months[date.getUTCMonth()],
2019
+ yy: date.getUTCFullYear().toString().substring(2),
2020
+ yyyy: date.getUTCFullYear()
2021
+ };
2022
+ val.dd = (val.d < 10 ? '0' : '') + val.d;
2023
+ val.mm = (val.m < 10 ? '0' : '') + val.m;
2024
+ date = [];
2025
+ var seps = $.extend([], format.separators);
2026
+ for (var i=0, cnt = format.parts.length; i <= cnt; i++){
2027
+ if (seps.length)
2028
+ date.push(seps.shift());
2029
+ date.push(val[format.parts[i]]);
2030
+ }
2031
+ return date.join('');
2032
+ },
2033
+ headTemplate: '<thead>'+
2034
+ '<tr>'+
2035
+ '<th colspan="7" class="datepicker-title"></th>'+
2036
+ '</tr>'+
2037
+ '<tr>'+
2038
+ '<th class="prev">&laquo;</th>'+
2039
+ '<th colspan="5" class="datepicker-switch"></th>'+
2040
+ '<th class="next">&raquo;</th>'+
2041
+ '</tr>'+
2042
+ '</thead>',
2043
+ contTemplate: '<tbody><tr><td colspan="7"></td></tr></tbody>',
2044
+ footTemplate: '<tfoot>'+
2045
+ '<tr>'+
2046
+ '<th colspan="7" class="today"></th>'+
2047
+ '</tr>'+
2048
+ '<tr>'+
2049
+ '<th colspan="7" class="clear"></th>'+
2050
+ '</tr>'+
2051
+ '</tfoot>'
2052
+ };
2053
+ DPGlobal.template = '<div class="datepicker">'+
2054
+ '<div class="datepicker-days">'+
2055
+ '<table class=" table-condensed">'+
2056
+ DPGlobal.headTemplate+
2057
+ '<tbody></tbody>'+
2058
+ DPGlobal.footTemplate+
2059
+ '</table>'+
2060
+ '</div>'+
2061
+ '<div class="datepicker-months">'+
2062
+ '<table class="table-condensed">'+
2063
+ DPGlobal.headTemplate+
2064
+ DPGlobal.contTemplate+
2065
+ DPGlobal.footTemplate+
2066
+ '</table>'+
2067
+ '</div>'+
2068
+ '<div class="datepicker-years">'+
2069
+ '<table class="table-condensed">'+
2070
+ DPGlobal.headTemplate+
2071
+ DPGlobal.contTemplate+
2072
+ DPGlobal.footTemplate+
2073
+ '</table>'+
2074
+ '</div>'+
2075
+ '<div class="datepicker-decades">'+
2076
+ '<table class="table-condensed">'+
2077
+ DPGlobal.headTemplate+
2078
+ DPGlobal.contTemplate+
2079
+ DPGlobal.footTemplate+
2080
+ '</table>'+
2081
+ '</div>'+
2082
+ '<div class="datepicker-centuries">'+
2083
+ '<table class="table-condensed">'+
2084
+ DPGlobal.headTemplate+
2085
+ DPGlobal.contTemplate+
2086
+ DPGlobal.footTemplate+
2087
+ '</table>'+
2088
+ '</div>'+
2089
+ '</div>';
2090
+
2091
+ $.fn.datepicker.DPGlobal = DPGlobal;
2092
+
2093
+
2094
+ /* DATEPICKER NO CONFLICT
2095
+ * =================== */
2096
+
2097
+ $.fn.datepicker.noConflict = function(){
2098
+ $.fn.datepicker = old;
2099
+ return this;
2100
+ };
2101
+
2102
+ /* DATEPICKER VERSION
2103
+ * =================== */
2104
+ $.fn.datepicker.version = '1.6.0';
2105
+
2106
+ /* DATEPICKER DATA-API
2107
+ * ================== */
2108
+
2109
+ $(document).on(
2110
+ 'focus.datepicker.data-api click.datepicker.data-api',
2111
+ '[data-provide="datepicker"]',
2112
+ function(e){
2113
+ var $this = $(this);
2114
+ if ($this.data('datepicker'))
2115
+ return;
2116
+ e.preventDefault();
2117
+ // component click requires us to explicitly show it
2118
+ datepickerPlugin.call($this, 'show');
2119
+ }
2120
+ );
2121
+ $(function(){
2122
+ datepickerPlugin.call($('[data-provide="datepicker-inline"]'));
2123
+ });
2124
+
2125
+ }));